diff --git a/.eslintignore b/.eslintignore deleted file mode 100644 index 72f98eb5..00000000 --- a/.eslintignore +++ /dev/null @@ -1 +0,0 @@ -src/proto/* diff --git a/.eslintrc b/.eslintrc index 3fe5e4c3..92813260 100644 --- a/.eslintrc +++ b/.eslintrc @@ -7,18 +7,18 @@ "jest": true }, "parser": "@typescript-eslint/parser", + "parserOptions": { + "project": "tsconfig.json", + "sourceType": "module" + }, + "plugins": [ + "import" + ], "extends": [ "eslint:recommended", "plugin:@typescript-eslint/recommended", "plugin:prettier/recommended" ], - "plugins": [ - "import" - ], - "parserOptions": { - "project": "tsconfig.json", - "sourceType": "module" - }, "rules": { "linebreak-style": ["error", "unix"], "no-empty": 1, diff --git a/README.md b/README.md index 79f462fe..29357f4f 100644 --- a/README.md +++ b/README.md @@ -96,7 +96,7 @@ npm install # build the dist npm run build # run the repl (this allows you to import from ./src) -npm run ts-node +npm run tsx # run the tests npm run test # lint the source code diff --git a/jest.config.js b/jest.config.mjs similarity index 65% rename from jest.config.js rename to jest.config.mjs index fe962ed8..5e22648d 100644 --- a/jest.config.js +++ b/jest.config.mjs @@ -1,26 +1,18 @@ -const os = require('os'); -const path = require('path'); -const fs = require('fs'); -const process = require('process'); -const { pathsToModuleNameMapper } = require('ts-jest'); -const { compilerOptions } = require('./tsconfig'); +import path from 'node:path'; +import url from 'node:url'; +import os from 'node:os'; +import process from 'node:process'; +import tsconfigJSON from './tsconfig.json' assert { type: "json" }; -const moduleNameMapper = pathsToModuleNameMapper(compilerOptions.paths, { - prefix: '/src/', -}); +const projectPath = path.dirname(url.fileURLToPath(import.meta.url)); // Global variables that are shared across the jest worker pool // These variables must be static and serializable -if ((process.env.PK_TEST_PLATFORM != null) !== (process.env.PK_TEST_COMMAND != null)) throw Error('Both PK_TEST_PLATFORM and PK_TEST_COMMAND must be set together.') const globals = { // Absolute directory to the project root - projectDir: __dirname, + projectDir: projectPath, // Absolute directory to the test root - testDir: path.join(__dirname, 'tests'), - // Default global data directory - dataDir: fs.mkdtempSync( - path.join(os.tmpdir(), 'polykey-test-global-'), - ), + testDir: path.join(projectPath, 'tests'), // Default asynchronous test timeout defaultTimeout: 20000, failedConnectionTimeout: 50000, @@ -31,10 +23,11 @@ const globals = { // The `globalSetup` and `globalTeardown` cannot access the `globals` // They run in their own process context -// They can receive process environment +// They can however receive the process environment +// Use `process.env` to set variables process.env['GLOBAL_DATA_DIR'] = globals.dataDir; -module.exports = { +const config = { testEnvironment: 'node', verbose: true, collectCoverage: false, @@ -46,15 +39,15 @@ module.exports = { "^.+\\.(t|j)sx?$": [ "@swc/jest", { - "jsc": { - "parser": { - "syntax": "typescript", - "dynamicImport": true, - "tsx": true, - "decorators": compilerOptions.experimentalDecorators, + jsc: { + parser: { + syntax: "typescript", + tsx: true, + decorators: tsconfigJSON.compilerOptions.experimentalDecorators, + dynamicImport: true, }, - "target": compilerOptions.target.toLowerCase(), - "keepClassNames": true, + target: tsconfigJSON.compilerOptions.target.toLowerCase(), + keepClassNames: true, }, } ], @@ -87,5 +80,10 @@ module.exports = { 'jest-extended/all', '/tests/setupAfterEnv.ts' ], - moduleNameMapper: moduleNameMapper, + moduleNameMapper: { + "^(\\.{1,2}/.*)\\.js$": "$1", + }, + extensionsToTreatAsEsm: ['.ts', '.tsx', '.mts'], }; + +export default config; diff --git a/npmDepsHash b/npmDepsHash index a3ea0abb..fb53342e 100644 --- a/npmDepsHash +++ b/npmDepsHash @@ -1 +1 @@ -sha256-LHQ8nB8ewWjKMgdkS1oguQKaFk1IsAroYdZ21Z7bnME= +sha256-HhXB5SIRl0Z8RUGozF7NHcaOQsvMmUG90iZlUBcbyng= diff --git a/package-lock.json b/package-lock.json index 5e487505..677f7610 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,13 +13,13 @@ "polykey": "dist/polykey.js" }, "devDependencies": { - "@fast-check/jest": "^1.1.0", - "@matrixai/errors": "^1.2.0", - "@matrixai/exec": "^0.1.4", - "@matrixai/logger": "^3.1.0", + "@fast-check/jest": "^2.1.1", + "@matrixai/errors": "^2.1.3", + "@matrixai/exec": "^1.0.3", + "@matrixai/logger": "^4.0.3", "@swc/core": "1.3.82", "@swc/jest": "^0.2.29", - "@types/jest": "^29.5.2", + "@types/jest": "^29.5.14", "@types/nexpect": "^0.4.31", "@types/node": "^20.5.7", "@typescript-eslint/eslint-plugin": "^5.61.0", @@ -32,7 +32,7 @@ "eslint-config-prettier": "^8.8.0", "eslint-plugin-import": "^2.27.5", "eslint-plugin-prettier": "^5.0.0-alpha.2", - "fast-check": "^3.0.1", + "fast-check": "^4.0.1", "jest": "^29.6.2", "jest-extended": "^4.0.0", "jest-junit": "^16.0.0", @@ -40,16 +40,13 @@ "jest-mock-props": "^1.9.1", "mocked-env": "^1.3.5", "nexpect": "^0.6.0", - "node-gyp-build": "^4.4.0", + "node-gyp-build": "^4.8.4", "nodemon": "^3.0.1", - "polykey": "^1.21.4", + "polykey": "^2.0.4", "prettier": "^3.0.0", "shelljs": "^0.8.5", "shx": "^0.3.4", - "threads": "^1.6.5", - "ts-jest": "^29.1.1", - "ts-node": "^10.9.1", - "tsconfig-paths": "^3.9.0", + "tsx": "^3.12.7", "typedoc": "^0.24.8", "typescript": "^5.1.6" }, @@ -62,8 +59,7 @@ "@matrixai/quic-linux-x64": "*", "@matrixai/quic-win32-x64": "*", "fd-lock": "*", - "sodium-native": "*", - "threads": "*" + "sodium-native": "*" } }, "node_modules/@aashutoshrathi/word-wrap": { @@ -741,7 +737,7 @@ "version": "0.8.1", "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", - "dev": true, + "devOptional": true, "dependencies": { "@jridgewell/trace-mapping": "0.3.9" }, @@ -753,12 +749,252 @@ "version": "0.3.9", "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", - "dev": true, + "devOptional": true, "dependencies": { "@jridgewell/resolve-uri": "^3.0.3", "@jridgewell/sourcemap-codec": "^1.4.10" } }, + "node_modules/@esbuild/android-arm": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz", + "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz", + "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz", + "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz", + "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz", + "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz", + "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz", + "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz", + "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz", + "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz", + "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz", + "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz", + "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz", + "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz", + "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz", + "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, "node_modules/@esbuild/linux-x64": { "version": "0.19.4", "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.4.tgz", @@ -775,6 +1011,102 @@ "node": ">=12" } }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz", + "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz", + "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz", + "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz", + "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz", + "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz", + "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, "node_modules/@eslint-community/eslint-utils": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", @@ -832,9 +1164,9 @@ } }, "node_modules/@fast-check/jest": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/@fast-check/jest/-/jest-1.8.2.tgz", - "integrity": "sha512-+UgQKZ0og0olUZXWgZ5Zcw42eN+3OB0Nfw0CU9OnlHBhHFnd8xppUYviX5HriAyUsAko1t/li5LZ9mSIIakmhg==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@fast-check/jest/-/jest-2.1.1.tgz", + "integrity": "sha512-t9m3u3tikj/+Ph+gRLGb7fFS/aqnIafsAc6qhXIFJytkqOFRSF70Y5yUUyTtR0idcb6Ald7AnC0AChLCLxv2Tg==", "dev": true, "funding": [ { @@ -847,10 +1179,10 @@ } ], "dependencies": { - "fast-check": "^3.0.0" + "fast-check": "^3.0.0 || ^4.0.0" }, "peerDependencies": { - "@fast-check/worker": ">=0.0.7 <0.5.0", + "@fast-check/worker": ">=0.0.7 <0.6.0", "@jest/expect": ">=28.0.0", "@jest/globals": ">=25.5.2" }, @@ -1337,7 +1669,7 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", - "dev": true, + "devOptional": true, "engines": { "node": ">=6.0.0" } @@ -1355,7 +1687,7 @@ "version": "1.4.15", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true + "devOptional": true }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.19", @@ -1368,62 +1700,61 @@ } }, "node_modules/@matrixai/async-cancellable": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@matrixai/async-cancellable/-/async-cancellable-1.1.1.tgz", - "integrity": "sha512-f0yxu7dHwvffZ++7aCm2WIcCJn18uLcOTdCCwEA3R3KVHYE3TG/JNoTWD9/mqBkAV1AI5vBfJzg27WnF9rOUXQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@matrixai/async-cancellable/-/async-cancellable-2.0.1.tgz", + "integrity": "sha512-4oZC7RMehzZCfyVLk33fOZpW1Nz4WFxuHzznrjFDBre6FmGb63jc2uWjwn+BKplqyby1J/sdJbjO0iqNcweWHg==", "devOptional": true }, "node_modules/@matrixai/async-init": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/@matrixai/async-init/-/async-init-1.10.0.tgz", - "integrity": "sha512-JjUFu6rqd+dtTHFJ6z8bjbceuFGBj/APWfJByVsfbEH1DJsOgWERFcW3DBUrS0mgTph4Vl518tsNcsSwKT5Y+g==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@matrixai/async-init/-/async-init-2.1.2.tgz", + "integrity": "sha512-i8Hj9Q/FGM725/LpsUyXk2APHn6y7yV9VmPoayAMkzM54+7p9ylmyxIwpYzw1A2zslrgUUvszg++uSM4a+5REw==", "devOptional": true, "dependencies": { - "@matrixai/async-locks": "^4.0.0", - "@matrixai/errors": "^1.2.0", - "@matrixai/events": "^3.2.0" + "@matrixai/async-locks": "^5.0.1", + "@matrixai/errors": "^2.1.0", + "@matrixai/events": "^4.0.0" } }, "node_modules/@matrixai/async-locks": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@matrixai/async-locks/-/async-locks-4.0.0.tgz", - "integrity": "sha512-u/3fOdtjOKcDYF8dDoPR1/+7nmOkhxo42eBpXTEgfI0hLPGI37PoW7tjLvwy+O51Quy1HGOwhsR/Dgr4x+euug==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/@matrixai/async-locks/-/async-locks-5.0.2.tgz", + "integrity": "sha512-YX3LUt4okyXPnDpx78PgPQybn8duh/FvWKx0t3UTaJW/0HL0/ZOQEEOsX1qefV1fQps1nKUHfjK1VeqZciCvXQ==", "devOptional": true, "dependencies": { - "@matrixai/async-cancellable": "^1.1.1", - "@matrixai/errors": "^1.1.7", - "@matrixai/resources": "^1.1.5", - "@matrixai/timer": "^1.1.1" + "@matrixai/async-cancellable": "^2.0.0", + "@matrixai/errors": "^2.0.1", + "@matrixai/resources": "^2.0.0", + "@matrixai/timer": "^2.0.0" } }, "node_modules/@matrixai/contexts": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@matrixai/contexts/-/contexts-1.2.0.tgz", - "integrity": "sha512-MR/B02Kf4UoliP9b/gMMKsvWV6QM4JSPKTIqrhQP2tbOl3FwLI+AIhL3vgYEj1Xw+PP8bY5cr8ontJ8x6AJyMg==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@matrixai/contexts/-/contexts-2.0.2.tgz", + "integrity": "sha512-nI29nv2UP43s+hO+N8SDNxlDHHfj0Evypg5IxZ/Y04o6/InDhCQmZErxMu4ZAOTtt21yuI4zssPRcBQdhtQygA==", "dev": true, "dependencies": { - "@matrixai/async-cancellable": "^1.1.1", - "@matrixai/async-locks": "^4.0.0", - "@matrixai/errors": "^1.1.7", - "@matrixai/resources": "^1.1.5", - "@matrixai/timer": "^1.1.1" + "@matrixai/async-cancellable": "^2.0.0", + "@matrixai/async-locks": "^5.0.1", + "@matrixai/errors": "^2.1.2", + "@matrixai/resources": "^2.0.0", + "@matrixai/timer": "^2.1.0" } }, "node_modules/@matrixai/db": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/@matrixai/db/-/db-5.3.0.tgz", - "integrity": "sha512-MI43pA/XjkNceSUwTvj1ohOzcR/7pCRuhvmhT7u39NnUGQN1kpdxPfHKxDlX2B/zatExRkVNA+sPIhE3+sThYg==", + "version": "6.0.21", + "resolved": "https://registry.npmjs.org/@matrixai/db/-/db-6.0.21.tgz", + "integrity": "sha512-1Wd0PCc8VUo1x0iH8/aS0JVC2ZHBErI4csfG4wzgmroXEv+FQJL/rg6BvaOyh1V6YR5mCScnQ2iBFMHknUGGmg==", "devOptional": true, "hasInstallScript": true, "dependencies": { - "@matrixai/async-init": "^1.9.1", - "@matrixai/async-locks": "^4.0.0", - "@matrixai/errors": "^1.2.0", - "@matrixai/logger": "^3.1.0", - "@matrixai/resources": "^1.1.5", - "@matrixai/workers": "^1.4.0", - "node-gyp-build": "4.4.0", - "threads": "^1.6.5" + "@matrixai/async-init": "^2.0.0", + "@matrixai/async-locks": "^5.0.1", + "@matrixai/errors": "^2.0.1", + "@matrixai/logger": "^4.0.1", + "@matrixai/resources": "^2.0.0", + "@matrixai/workers": "^2.0.0", + "node-gyp-build": "4.4.0" }, "engines": { "msvs": "2019", @@ -1442,36 +1773,36 @@ } }, "node_modules/@matrixai/errors": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@matrixai/errors/-/errors-1.2.0.tgz", - "integrity": "sha512-eZHPHFla5GFmi0O0yGgbtkca+ZjwpDbMz+60NC3y+DzQq6BMoe4gHmPjDalAHTxyxv0+Q+AWJTuV8Ows+IqBfQ==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@matrixai/errors/-/errors-2.1.3.tgz", + "integrity": "sha512-uPH09OHLykjCdX17Piyc1P0kw3pkJC8l2ydr6LzcWUPmP8i38oO9oq2AqX21UeyeBhGvDcBzQk890GUMb6iOIA==", "devOptional": true, "dependencies": { "ts-custom-error": "3.2.2" } }, "node_modules/@matrixai/events": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/@matrixai/events/-/events-3.2.3.tgz", - "integrity": "sha512-bZrNCwzYeFalGQpn8qa/jgD10mUAwLRbv6xGMI7gGz1f+vE65d3GPoJ6JoFOJSg9iCmRSayQJ+IipH3LMATvDA==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@matrixai/events/-/events-4.0.1.tgz", + "integrity": "sha512-75hH7ZTmhM/VXeICXCPiVr/ZxQSoBwXh2HOI3AhD8AGYDDsEJsm4tnDSr/6vT3vS0ryZb3kb9mpAmCeibdrF3w==", "devOptional": true }, "node_modules/@matrixai/exec": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@matrixai/exec/-/exec-0.1.4.tgz", - "integrity": "sha512-lHALlATIzhC5aiMCbBe18owcRqQTaGJ8lZqqrHEctJuN+gkJ54NsMHw/Zzzr7vZwY2qrfXgcGlwWPjmjxaYmJQ==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@matrixai/exec/-/exec-1.0.3.tgz", + "integrity": "sha512-fvw66OsF7WC69M3uzXzB6zVNOoFxJskfV8n1LkJRMCAod5sGXuZ1nMotcNcsUGn1XnoTsv+cMrQy89jXtf/0QQ==", "dev": true, "optionalDependencies": { - "@matrixai/exec-darwin-arm64": "0.1.4", - "@matrixai/exec-darwin-universal": "0.1.4", - "@matrixai/exec-darwin-x64": "0.1.4", - "@matrixai/exec-linux-x64": "0.1.4" + "@matrixai/exec-darwin-arm64": "1.0.3", + "@matrixai/exec-darwin-universal": "1.0.3", + "@matrixai/exec-darwin-x64": "1.0.3", + "@matrixai/exec-linux-x64": "1.0.3" } }, "node_modules/@matrixai/exec-darwin-arm64": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@matrixai/exec-darwin-arm64/-/exec-darwin-arm64-0.1.4.tgz", - "integrity": "sha512-0ou2CRMh5draTorZBQ+hjsORmSKT6fTjCIZ2UXZ8IwW1WYDkA/cv9LTRnskvvkplW3LPCIF9Gy7eDE/lViL8Og==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@matrixai/exec-darwin-arm64/-/exec-darwin-arm64-1.0.3.tgz", + "integrity": "sha512-I8VuBPH/SF9Mo+5Jw/veBXKh5eQQ9AvsDnzx5Cle7b9A7Eju69ymxZM8NW6GMuXXLcKOZouSmxDgDjZJaCv6eQ==", "cpu": [ "arm64" ], @@ -1482,9 +1813,9 @@ ] }, "node_modules/@matrixai/exec-darwin-universal": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@matrixai/exec-darwin-universal/-/exec-darwin-universal-0.1.4.tgz", - "integrity": "sha512-QzyjLA6aIVFWeGV3WutIzPHOJhTUPKL4k6hKd1Hqt5FRRnCsUg/3uWccinaMwPzTbpnk9Piknod1UHPHXx/DJQ==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@matrixai/exec-darwin-universal/-/exec-darwin-universal-1.0.3.tgz", + "integrity": "sha512-ESJluVrUFV9GGAy2ULgOPyNYgR2ykswvf1TpLDZRdnAnmxOJSD393j7Pv7/gIeGijwvociR9HnC+8/kBkH4BCA==", "cpu": [ "x64", "arm64" @@ -1495,9 +1826,9 @@ ] }, "node_modules/@matrixai/exec-darwin-x64": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@matrixai/exec-darwin-x64/-/exec-darwin-x64-0.1.4.tgz", - "integrity": "sha512-nMCqzj2dgwZl44byAR8++/dtzPfpwmAnrEX0AgusymnFtO0euKVFsETOMz6m7Y3BCfAmRSCeEjNcSo+x2I5CEw==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@matrixai/exec-darwin-x64/-/exec-darwin-x64-1.0.3.tgz", + "integrity": "sha512-RMR1bJ/air1XtHO+5qdy2VwsVNpww3azrr2FJpyclaOwyO5clACkKjpQVCPPLiSAsoa5CTgT7yW8Ltusi47R4g==", "cpu": [ "x64" ], @@ -1508,9 +1839,9 @@ ] }, "node_modules/@matrixai/exec-linux-x64": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/@matrixai/exec-linux-x64/-/exec-linux-x64-0.1.4.tgz", - "integrity": "sha512-e6fm+ntgM8bqfrylCgyeaYBjw/YT+1EJjq0oTLAOhHnGeGoq3X0jgEzIhQMizMOIYbcWKIoD7ruhS14qXGqKhg==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@matrixai/exec-linux-x64/-/exec-linux-x64-1.0.3.tgz", + "integrity": "sha512-Sy9m0XxY+EFJJc00Yk6UEIQpAkMHzhNsNUWE6gzOYWLOrIP9fQhAQc0MoUXr+9MGV+9O8HWTiKKO4GRjhzeUEg==", "cpu": [ "x64" ], @@ -1520,37 +1851,37 @@ ] }, "node_modules/@matrixai/id": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/@matrixai/id/-/id-3.3.6.tgz", - "integrity": "sha512-BpHX/iYxTMuRYtuTzPxKdf6DSwJNVE/EMjLgf/4DSCLGjhT0RQJ8FKKfZReDfb2cx+BsvqL6/LSFM6lfG8v2dw==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@matrixai/id/-/id-4.0.0.tgz", + "integrity": "sha512-xLwYlK4d75wnpfIF+A0XRS5VmX/aDj/4E/XFkwrYsSDxoiWj7DoRRVSs/ryorwZHgufs/kL8aS1eTKadUQRevg==", "dev": true, "dependencies": { - "multiformats": "^9.4.8", + "multiformats": "^13.3.2", "uuid": "^8.3.2" } }, "node_modules/@matrixai/logger": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@matrixai/logger/-/logger-3.1.2.tgz", - "integrity": "sha512-nNliLCnbg6hGS2+gGtQfeeyVNJzOmvqz90AbrQsHPNiE08l3YsENL2JQt9d454SorD1Ud51ymZdDCkeMLWY93A==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@matrixai/logger/-/logger-4.0.3.tgz", + "integrity": "sha512-cu7e82iwN32H+K8HxsrvrWEYSEj7+RP/iVFhJ4RuacC8/BSOLFOYxry3EchVjrx4FP5G7QP1HnKYXAGpZN/46w==", "devOptional": true }, "node_modules/@matrixai/mdns": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@matrixai/mdns/-/mdns-1.2.6.tgz", - "integrity": "sha512-D42oPeGqMi9mC957N1bN3c+W0N2Vyk5GjXtsk/B2AnKilXtQyzjzFEuQXrMBsL7/nsM/ovv3cy/J7V86rwyShQ==", + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@matrixai/mdns/-/mdns-2.0.7.tgz", + "integrity": "sha512-b2aGHOAIgA+pws6IShqsyNnCck3yuyrEQABuilz0yhcqvg1h0f4G10Fr+5XH7NsVrIdC7s3wM0h/wpCXJPuPTA==", "dev": true, "hasInstallScript": true, "dependencies": { - "@matrixai/async-cancellable": "^1.1.1", - "@matrixai/async-init": "^1.10.0", - "@matrixai/contexts": "^1.1.0", - "@matrixai/errors": "^1.1.7", - "@matrixai/events": "^3.2.0", - "@matrixai/logger": "^3.1.0", - "@matrixai/table": "^1.2.0", - "@matrixai/timer": "^1.1.1", - "canonicalize": "^2.0.0", + "@matrixai/async-cancellable": "^2.0.1", + "@matrixai/async-init": "^2.1.2", + "@matrixai/contexts": "^2.0.2", + "@matrixai/errors": "^2.1.3", + "@matrixai/events": "^4.0.1", + "@matrixai/logger": "^4.0.3", + "@matrixai/table": "^2.0.0", + "@matrixai/timer": "^2.1.1", + "canonicalize": "^2.1.0", "ip-num": "^1.5.1" }, "engines": { @@ -1558,13 +1889,13 @@ "node": "^20.5.1" }, "optionalDependencies": { - "@matrixai/mdns-linux-x64": "1.2.6" + "@matrixai/mdns-linux-x64": "2.0.7" } }, "node_modules/@matrixai/mdns-linux-x64": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@matrixai/mdns-linux-x64/-/mdns-linux-x64-1.2.6.tgz", - "integrity": "sha512-2VjyuEz853l8QDZ9vWbVCjZFtReblJl5vsGdjk76ZanLb2ipCX5/JI3HvKUehaWGn+x1gbdJbvUP8gibWhbNRQ==", + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@matrixai/mdns-linux-x64/-/mdns-linux-x64-2.0.7.tgz", + "integrity": "sha512-yuSJ+nFZhbmmmoAB9Cl2O3evdCBOQGT2GMHLzoUn4UgGqZuwb9NJ8tMXei90WdGIfEuTj5YBzusFEfMJNPmC/g==", "cpu": [ "x64" ], @@ -1574,34 +1905,34 @@ ] }, "node_modules/@matrixai/quic": { - "version": "1.3.13", - "resolved": "https://registry.npmjs.org/@matrixai/quic/-/quic-1.3.13.tgz", - "integrity": "sha512-hZ2ojPyfih4wfVf8ayG2SHonue83Id/W5HPCEYMMeBXc5W9saV99MG2mKrPnLUmOR+im78Bgi3XrVcVrB0uNDw==", - "dev": true, - "dependencies": { - "@matrixai/async-cancellable": "^1.1.1", - "@matrixai/async-init": "^1.10.0", - "@matrixai/async-locks": "^4.0.0", - "@matrixai/contexts": "^1.2.0", - "@matrixai/errors": "^1.2.0", - "@matrixai/events": "^3.2.3", - "@matrixai/logger": "^3.1.2", - "@matrixai/resources": "^1.1.5", - "@matrixai/timer": "^1.1.3", + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/@matrixai/quic/-/quic-2.0.9.tgz", + "integrity": "sha512-3Ld/RTZsqOVTggOYalt0U9yCmoseY9IfzUM+QOSU5+nxCs23ds4ol7dmbXon9NcGXsuePs6UkVFsNwwL7x9ZlQ==", + "dev": true, + "dependencies": { + "@matrixai/async-cancellable": "^2.0.1", + "@matrixai/async-init": "^2.1.2", + "@matrixai/async-locks": "^5.0.2", + "@matrixai/contexts": "^2.0.2", + "@matrixai/errors": "^2.1.3", + "@matrixai/events": "^4.0.1", + "@matrixai/logger": "^4.0.3", + "@matrixai/resources": "^2.0.1", + "@matrixai/timer": "^2.1.1", "ip-num": "^1.5.0" }, "optionalDependencies": { - "@matrixai/quic-darwin-arm64": "1.3.13", - "@matrixai/quic-darwin-universal": "1.3.13", - "@matrixai/quic-darwin-x64": "1.3.13", - "@matrixai/quic-linux-x64": "1.3.13", - "@matrixai/quic-win32-x64": "1.3.13" + "@matrixai/quic-darwin-arm64": "2.0.9", + "@matrixai/quic-darwin-universal": "2.0.9", + "@matrixai/quic-darwin-x64": "2.0.9", + "@matrixai/quic-linux-x64": "2.0.9", + "@matrixai/quic-win32-x64": "2.0.9" } }, "node_modules/@matrixai/quic-darwin-arm64": { - "version": "1.3.13", - "resolved": "https://registry.npmjs.org/@matrixai/quic-darwin-arm64/-/quic-darwin-arm64-1.3.13.tgz", - "integrity": "sha512-cnosZctgd6W8KaTHMnxiy/0eWmLjN7ciuOLzmYooZeOCXKGCTxyKpHYBXylSKvL1i8Jm0725tk9InbEegViJmw==", + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/@matrixai/quic-darwin-arm64/-/quic-darwin-arm64-2.0.9.tgz", + "integrity": "sha512-PLJvRXmeTJ2OLPnnDP8GBbXjGns2ltouZOcZqJB60DTIR+ijH6LAflvCw+0JT6a6jByD3gjRqSUIGsPbK7OMWg==", "cpu": [ "arm64" ], @@ -1612,9 +1943,9 @@ ] }, "node_modules/@matrixai/quic-darwin-universal": { - "version": "1.3.13", - "resolved": "https://registry.npmjs.org/@matrixai/quic-darwin-universal/-/quic-darwin-universal-1.3.13.tgz", - "integrity": "sha512-pnoPZFD2FPrtPKa7mvho6c1YKKXBeIT5KlJ4QNMfx3UKh8XZCYGXWSJs8NlhAl6VdzN/3ik9glIGxTPLHtJjSQ==", + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/@matrixai/quic-darwin-universal/-/quic-darwin-universal-2.0.9.tgz", + "integrity": "sha512-WjhxEoHIrIVpxBrIJH1Iy9jXDJygniXZxqGKTJd5+VrBttPn7ab9Ywe2SEly6DTH+rk8UlhTQpSgqz1Z+v5eww==", "cpu": [ "x64", "arm64" @@ -1625,9 +1956,9 @@ ] }, "node_modules/@matrixai/quic-darwin-x64": { - "version": "1.3.13", - "resolved": "https://registry.npmjs.org/@matrixai/quic-darwin-x64/-/quic-darwin-x64-1.3.13.tgz", - "integrity": "sha512-wsLmrr98Ae4104LTlx/Tgt5WN4rs0uzUpYFlvAiW2KmoS5tVEXm8eBwUj2HHp6xmuKrlT5ERU06HFhZFsGmXuA==", + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/@matrixai/quic-darwin-x64/-/quic-darwin-x64-2.0.9.tgz", + "integrity": "sha512-J/RAWtbz7UMcaUTsgbbvBeXSwfZpq+DMkhfXhsqECgUwBAAsDW5UyZlemD/5mgYhYyFiwcaybOkttj11bKqyOg==", "cpu": [ "x64" ], @@ -1638,9 +1969,9 @@ ] }, "node_modules/@matrixai/quic-linux-x64": { - "version": "1.3.13", - "resolved": "https://registry.npmjs.org/@matrixai/quic-linux-x64/-/quic-linux-x64-1.3.13.tgz", - "integrity": "sha512-dCMnMQf8t0qy7no3vyuETw9abKUtia7UGN0sGAZygjscYWRXtLMuoNyiHNSTaORP0pVIYl3rPDD39BuevcqtrA==", + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/@matrixai/quic-linux-x64/-/quic-linux-x64-2.0.9.tgz", + "integrity": "sha512-2m2mBp2c+qdlh3mBbHT7iHqLGPksFJGxxKWcJRJXiHUnyeh9M5gMXia2bWc7VXty0n6eGZak4txD8CPaeINDRQ==", "cpu": [ "x64" ], @@ -1650,9 +1981,9 @@ ] }, "node_modules/@matrixai/quic-win32-x64": { - "version": "1.3.13", - "resolved": "https://registry.npmjs.org/@matrixai/quic-win32-x64/-/quic-win32-x64-1.3.13.tgz", - "integrity": "sha512-mmDv7B0kkF2E64DnZ2OXLYDCbWy148uG7cgtgyf+d7iWbCrx90uX4vSsyUTbg74/xjPKxX+tJOJFRnEeMlfV6w==", + "version": "2.0.9", + "resolved": "https://registry.npmjs.org/@matrixai/quic-win32-x64/-/quic-win32-x64-2.0.9.tgz", + "integrity": "sha512-VNdEh74Db/pX2BByuYaZ/3haGCejrAfDmVe+7OD/FKlHyIJkicKWjhNaeTDK2Nh2laaRF54MDZV+1FqO6TGePg==", "cpu": [ "x64" ], @@ -1662,71 +1993,71 @@ ] }, "node_modules/@matrixai/resources": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/@matrixai/resources/-/resources-1.1.5.tgz", - "integrity": "sha512-m/DEZEe3wHqWEPTyoBtzFF6U9vWYhEnQtGgwvqiAlTxTM0rk96UBpWjDZCTF/vYG11ZlmlQFtg5H+zGgbjaB3Q==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@matrixai/resources/-/resources-2.0.1.tgz", + "integrity": "sha512-qP7wDz1HnQY7wV4NxybAE+A+488D7bGkkdgk2TIRaw8/fTWENi9Y/AFvOJrdKt3q5rDybB4OeTJIkN5qULE35A==", "devOptional": true }, "node_modules/@matrixai/rpc": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/@matrixai/rpc/-/rpc-0.6.3.tgz", - "integrity": "sha512-jLR+SpAnv6NR2xRtXGBnyBGipLBv/Nnn/8b6OYx2loyNT4WHoxtqh51U6QwKCHU6qZii/K/2L5XRRKxYUgmmVg==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@matrixai/rpc/-/rpc-1.0.0.tgz", + "integrity": "sha512-VwplA8PLxoRs4YdkoVM5YsRWBtdpv/R4gookK3jmZSsymI4KSEHs/mP6ndotimy/qbajnzMtbJwHt7DEH0tW5w==", "dev": true, "dependencies": { - "@matrixai/async-init": "^1.10.0", - "@matrixai/contexts": "^1.2.0", - "@matrixai/errors": "^1.2.0", - "@matrixai/events": "^3.2.3", - "@matrixai/logger": "^3.1.2", + "@matrixai/async-init": "^2.1.2", + "@matrixai/contexts": "^2.0.2", + "@matrixai/errors": "^2.1.3", + "@matrixai/events": "^4.0.1", + "@matrixai/logger": "^4.0.3", "@streamparser/json": "^0.0.17" } }, "node_modules/@matrixai/table": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@matrixai/table/-/table-1.2.0.tgz", - "integrity": "sha512-vMj9YygnigmtBVgbzhKQdchtRuPqGL6vutqRGTC0tcZKHYiNh08N6AGQMXoIUe+iYP9A1WNYg2M3LXZZ54xvGg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@matrixai/table/-/table-2.0.0.tgz", + "integrity": "sha512-DpgPQhtn3eNiDC+HCLRruipv7I3CCBo71U0Yw562FgpGB+fa3YNjvl9+nXULkrUS+3OIWa81vnhjVU0rXyfMBw==", "dev": true, "dependencies": { "resource-counter": "^1.2.4" } }, "node_modules/@matrixai/timer": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@matrixai/timer/-/timer-1.1.3.tgz", - "integrity": "sha512-BG5bAZMIt7qxc9iqAOCk2zm7V0+yNQLwp+WhsWVkP25Nvd1klqKpScE1lGwoLA27ygxEi+8IRU3wa8PLrhs0DQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@matrixai/timer/-/timer-2.1.1.tgz", + "integrity": "sha512-8N4t3eISASJttKIuQKitVfCNxfaUp1Tritg9/92biGDxVwoP+Err8FVrjG30yWz56K/H+T9xUcZ58AH/mk15Sw==", "devOptional": true, "dependencies": { - "@matrixai/async-cancellable": "^1.1.1", - "@matrixai/errors": "^1.1.7" + "@matrixai/async-cancellable": "^2.0.0", + "@matrixai/errors": "^2.0.1" } }, "node_modules/@matrixai/workers": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@matrixai/workers/-/workers-1.4.0.tgz", - "integrity": "sha512-2WPVPChVWNPFBoabd/4/46kLhe2cnwP9yx1h9D4+Fj9Ctm4r9h+AvnB1jAJ1OgKDTRl22WNsZDfa6Aj1cyzI0Q==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@matrixai/workers/-/workers-2.0.0.tgz", + "integrity": "sha512-hko/uZHxc7ps57gW3ZQCFTlgz7XFeUVgaY9aRaVFxyVLpCfTL59n0PKAxwbXyb67y+Tb3wayBoejgCbtB7k6YA==", "devOptional": true, "dependencies": { - "@matrixai/async-init": "^1.9.1", - "@matrixai/errors": "^1.2.0", - "@matrixai/logger": "^3.1.0", - "threads": "^1.6.5" + "@matrixai/async-init": "^2.1.2", + "@matrixai/errors": "^2.1.3", + "@matrixai/logger": "^4.0.3", + "rxjs": "^7.8.2", + "ts-node": "^10.9.1" } }, "node_modules/@matrixai/ws": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/@matrixai/ws/-/ws-1.1.7.tgz", - "integrity": "sha512-VISB1o6FdlPS0MJAJuMQq6dnfpltVVtYThaFsS3m21UMKShM/Y7+eIyCcuQaDCFWcKa3FBEQSHYmjK5/oBtwwQ==", - "dev": true, - "dependencies": { - "@matrixai/async-cancellable": "^1.1.1", - "@matrixai/async-init": "^1.10.0", - "@matrixai/async-locks": "^4.0.0", - "@matrixai/contexts": "^1.2.0", - "@matrixai/errors": "^1.2.0", - "@matrixai/events": "^3.2.0", - "@matrixai/logger": "^3.1.0", - "@matrixai/resources": "^1.1.5", - "@matrixai/timer": "^1.1.1", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@matrixai/ws/-/ws-2.0.5.tgz", + "integrity": "sha512-0dvLlQw06lSVm/+JWlOVN/F7YJyTdgdtT40rSGWgLm8weGoFm5iY6kcHRSH4PLL9vkRrNEAtaxpbpam3/9A8VA==", + "dev": true, + "dependencies": { + "@matrixai/async-cancellable": "^2.0.1", + "@matrixai/async-init": "^2.1.2", + "@matrixai/async-locks": "^5.0.2", + "@matrixai/contexts": "^2.0.2", + "@matrixai/errors": "^2.1.3", + "@matrixai/events": "^4.0.1", + "@matrixai/logger": "^4.0.3", + "@matrixai/timer": "^2.1.1", "ip-num": "^1.5.0", "resource-counter": "^1.2.4", "ws": "^8.13.0" @@ -2029,7 +2360,7 @@ "version": "1.3.82", "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.3.82.tgz", "integrity": "sha512-jpC1a18HMH67018Ij2jh+hT7JBFu7ZKcQVfrZ8K6JuEY+kjXmbea07P9MbQUZbAe0FB+xi3CqEVCP73MebodJQ==", - "dev": true, + "devOptional": true, "hasInstallScript": true, "dependencies": { "@swc/types": "^0.1.4" @@ -2069,7 +2400,6 @@ "cpu": [ "x64" ], - "dev": true, "optional": true, "os": [ "linux" @@ -2085,7 +2415,6 @@ "cpu": [ "x64" ], - "dev": true, "optional": true, "os": [ "linux" @@ -2114,31 +2443,31 @@ "version": "0.1.5", "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.5.tgz", "integrity": "sha512-myfUej5naTBWnqOCc/MdVOLVjXUXtIA+NpDrDBKJtLLg2shUjBu3cZmB/85RyitKc55+lUUyl7oRfLOvkr2hsw==", - "dev": true + "devOptional": true }, "node_modules/@tsconfig/node10": { "version": "1.0.9", "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", - "dev": true + "devOptional": true }, "node_modules/@tsconfig/node12": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", - "dev": true + "devOptional": true }, "node_modules/@tsconfig/node14": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", - "dev": true + "devOptional": true }, "node_modules/@tsconfig/node16": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", - "dev": true + "devOptional": true }, "node_modules/@types/babel__core": { "version": "7.20.2", @@ -2215,9 +2544,9 @@ } }, "node_modules/@types/jest": { - "version": "29.5.5", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.5.tgz", - "integrity": "sha512-ebylz2hnsWR9mYvmBFbXJXr+33UPc4+ZdxyDXh5w0FlPBTfCVN3wPL+kuOiQt3xvrK419v7XWeAs+AeOksafXg==", + "version": "29.5.14", + "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.14.tgz", + "integrity": "sha512-ZN+4sdnLUbo8EVvVc2ao0GFW6oVrQRPn4K2lglySj7APvSrgzxHiNNK99us4WDMi57xxA2yggblIAMNhXOotLQ==", "dev": true, "dependencies": { "expect": "^29.0.0", @@ -2249,7 +2578,7 @@ "version": "20.8.6", "resolved": "https://registry.npmjs.org/@types/node/-/node-20.8.6.tgz", "integrity": "sha512-eWO4K2Ji70QzKUqRy6oyJWUeB7+g2cRagT3T/nxYibYcT4y2BDL8lqolRXjTHmkZCdJfIPaY73KbJAZmcryxTQ==", - "dev": true, + "devOptional": true, "dependencies": { "undici-types": "~5.25.1" } @@ -2523,7 +2852,7 @@ "version": "8.10.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", - "dev": true, + "devOptional": true, "bin": { "acorn": "bin/acorn" }, @@ -2544,7 +2873,7 @@ "version": "8.2.0", "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", - "dev": true, + "devOptional": true, "engines": { "node": ">=0.4.0" } @@ -2651,7 +2980,7 @@ "version": "4.1.3", "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true + "devOptional": true }, "node_modules/argparse": { "version": "2.0.1", @@ -2660,13 +2989,16 @@ "dev": true }, "node_modules/array-buffer-byte-length": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", - "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", + "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "is-array-buffer": "^3.0.1" + "call-bound": "^1.0.3", + "is-array-buffer": "^3.0.5" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -2756,16 +3088,19 @@ } }, "node_modules/array.prototype.reduce": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/array.prototype.reduce/-/array.prototype.reduce-1.0.6.tgz", - "integrity": "sha512-UW+Mz8LG/sPSU8jRDCjVr6J/ZKAGpHfwrZ6kWTG5qCxIEiXdVshqGnu5vEZA8S1y6X4aCSbQZ0/EEsfvEvBiSg==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/array.prototype.reduce/-/array.prototype.reduce-1.0.8.tgz", + "integrity": "sha512-DwuEqgXFBwbmZSRqt3BpQigWNUoqw9Ml2dTWdF3B2zQlQX4OeUE0zyuzX0fX0IbTvjdkZbcBTU3idgpO78qkTw==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.9", "es-array-method-boxes-properly": "^1.0.0", - "is-string": "^1.0.7" + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "is-string": "^1.1.1" }, "engines": { "node": ">= 0.4" @@ -2775,18 +3110,18 @@ } }, "node_modules/arraybuffer.prototype.slice": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz", - "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", + "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", "dev": true, "dependencies": { - "array-buffer-byte-length": "^1.0.0", - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1", - "is-array-buffer": "^3.0.2", - "is-shared-array-buffer": "^1.0.2" + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "is-array-buffer": "^3.0.4" }, "engines": { "node": ">= 0.4" @@ -2809,6 +3144,15 @@ "node": ">=12.0.0" } }, + "node_modules/async-function": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz", + "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/async-lock": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/async-lock/-/async-lock-1.4.0.tgz", @@ -2825,10 +3169,13 @@ } }, "node_modules/available-typed-arrays": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", "dev": true, + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, "engines": { "node": ">= 0.4" }, @@ -3007,12 +3354,16 @@ } }, "node_modules/bitset": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/bitset/-/bitset-5.1.1.tgz", - "integrity": "sha512-oKaRp6mzXedJ1Npo86PKhWfDelI6HxxJo+it9nAcBB0HLVvYVp+5i6yj6DT5hfFgo+TS5T57MRWtw8zhwdTs3g==", + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/bitset/-/bitset-5.2.3.tgz", + "integrity": "sha512-uZ7++Z60MC9cZ+7YzQ1v9yPDydcjhmcMjGx2yoGTjjSXBoVMmTr2LCRbkpI19S9P/C75hhP7Bsakj+gVzVUDbQ==", "dev": true, "engines": { "node": "*" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/rawify" } }, "node_modules/bl": { @@ -3112,18 +3463,6 @@ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, - "node_modules/bs-logger": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz", - "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==", - "dev": true, - "dependencies": { - "fast-json-stable-stringify": "2.x" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/bser": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", @@ -3179,13 +3518,47 @@ } }, "node_modules/call-bind": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", + "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", + "dev": true, + "dependencies": { + "call-bind-apply-helpers": "^1.0.0", + "es-define-property": "^1.0.0", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/call-bind-apply-helpers": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", "dev": true, "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -3195,7 +3568,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "devOptional": true, + "dev": true, "engines": { "node": ">=6" } @@ -3230,10 +3603,13 @@ ] }, "node_modules/canonicalize": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/canonicalize/-/canonicalize-2.0.0.tgz", - "integrity": "sha512-ulDEYPv7asdKvqahuAY35c1selLdzDwHqugK92hfkzvlDCwXRRelDkR+Er33md/PtnpqHemgkuDPanZ4fiYZ8w==", - "dev": true + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/canonicalize/-/canonicalize-2.1.0.tgz", + "integrity": "sha512-F705O3xrsUtgt98j7leetNhTWPe+5S72rlL5O4jA1pKqBVQ/dT1O1D6PFxmSXvc0SUOinWS57DKx0I3CHrXJHQ==", + "dev": true, + "bin": { + "canonicalize": "bin/canonicalize.js" + } }, "node_modules/chalk": { "version": "4.1.2", @@ -3496,7 +3872,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "dev": true + "devOptional": true }, "node_modules/cross-env": { "version": "7.0.3", @@ -3567,11 +3943,62 @@ "url": "https://github.com/sponsors/fb55" } }, + "node_modules/data-view-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", + "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", + "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/inspect-js" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", + "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "devOptional": true, + "dev": true, "dependencies": { "ms": "2.1.2" }, @@ -3782,17 +4209,20 @@ } }, "node_modules/define-data-property": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", - "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", "dev": true, "dependencies": { - "get-intrinsic": "^1.2.1", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0" + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" }, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/define-lazy-prop": { @@ -3846,7 +4276,7 @@ "version": "4.0.2", "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true, + "devOptional": true, "engines": { "node": ">=0.3.1" } @@ -3945,6 +4375,20 @@ "url": "https://github.com/fb55/domutils?sponsor=1" } }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "dev": true, + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/electron-to-chromium": { "version": "1.4.554", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.554.tgz", @@ -3958,229 +4402,607 @@ "dev": true, "engines": { "node": ">=12" - }, - "funding": { - "url": "https://github.com/sindresorhus/emittery?sponsor=1" + }, + "funding": { + "url": "https://github.com/sindresorhus/emittery?sponsor=1" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/encryptedfs": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/encryptedfs/-/encryptedfs-4.0.2.tgz", + "integrity": "sha512-ipetavt0jnWHLEmN6puzbJ2H0R7eXW/HMju8lC9z4QWC0fRjgj+OQfQoSc9YqZkKobq45sCTrl8iw4B0bxw8ow==", + "dev": true, + "dependencies": { + "@matrixai/async-init": "^2.1.2", + "@matrixai/async-locks": "^5.0.2", + "@matrixai/db": "^6.0.20", + "@matrixai/errors": "^2.1.3", + "@matrixai/logger": "^4.0.3", + "@matrixai/resources": "^2.0.1", + "@matrixai/workers": "^2.0.0", + "errno": "^0.1.7", + "lexicographic-integer": "^1.1.0", + "node-forge": "^1.3.1", + "readable-stream": "^3.6.0", + "resource-counter": "^1.2.4", + "util-callbackify": "^1.0.0" + } + }, + "node_modules/encryptedfs/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true, + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/errno": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", + "dev": true, + "dependencies": { + "prr": "~1.0.1" + }, + "bin": { + "errno": "cli.js" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-abstract": { + "version": "1.23.9", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.9.tgz", + "integrity": "sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.2", + "arraybuffer.prototype.slice": "^1.0.4", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "data-view-buffer": "^1.0.2", + "data-view-byte-length": "^1.0.2", + "data-view-byte-offset": "^1.0.1", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-set-tostringtag": "^2.1.0", + "es-to-primitive": "^1.3.0", + "function.prototype.name": "^1.1.8", + "get-intrinsic": "^1.2.7", + "get-proto": "^1.0.0", + "get-symbol-description": "^1.1.0", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "internal-slot": "^1.1.0", + "is-array-buffer": "^3.0.5", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.2", + "is-regex": "^1.2.1", + "is-shared-array-buffer": "^1.0.4", + "is-string": "^1.1.1", + "is-typed-array": "^1.1.15", + "is-weakref": "^1.1.0", + "math-intrinsics": "^1.1.0", + "object-inspect": "^1.13.3", + "object-keys": "^1.1.1", + "object.assign": "^4.1.7", + "own-keys": "^1.0.1", + "regexp.prototype.flags": "^1.5.3", + "safe-array-concat": "^1.1.3", + "safe-push-apply": "^1.0.0", + "safe-regex-test": "^1.1.0", + "set-proto": "^1.0.0", + "string.prototype.trim": "^1.2.10", + "string.prototype.trimend": "^1.0.9", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.3", + "typed-array-byte-length": "^1.0.3", + "typed-array-byte-offset": "^1.0.4", + "typed-array-length": "^1.0.7", + "unbox-primitive": "^1.1.0", + "which-typed-array": "^1.1.18" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-array-method-boxes-properly": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", + "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==", + "dev": true + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", + "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + } + }, + "node_modules/es-to-primitive": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz", + "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==", + "dev": true, + "dependencies": { + "is-callable": "^1.2.7", + "is-date-object": "^1.0.5", + "is-symbol": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/esbuild": { + "version": "0.19.4", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.4.tgz", + "integrity": "sha512-x7jL0tbRRpv4QUyuDMjONtWFciygUxWaUM1kMX2zWxI0X2YWOt7MSA0g4UdeSiHM8fcYVzpQhKYOycZwxTdZkA==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.19.4", + "@esbuild/android-arm64": "0.19.4", + "@esbuild/android-x64": "0.19.4", + "@esbuild/darwin-arm64": "0.19.4", + "@esbuild/darwin-x64": "0.19.4", + "@esbuild/freebsd-arm64": "0.19.4", + "@esbuild/freebsd-x64": "0.19.4", + "@esbuild/linux-arm": "0.19.4", + "@esbuild/linux-arm64": "0.19.4", + "@esbuild/linux-ia32": "0.19.4", + "@esbuild/linux-loong64": "0.19.4", + "@esbuild/linux-mips64el": "0.19.4", + "@esbuild/linux-ppc64": "0.19.4", + "@esbuild/linux-riscv64": "0.19.4", + "@esbuild/linux-s390x": "0.19.4", + "@esbuild/linux-x64": "0.19.4", + "@esbuild/netbsd-x64": "0.19.4", + "@esbuild/openbsd-x64": "0.19.4", + "@esbuild/sunos-x64": "0.19.4", + "@esbuild/win32-arm64": "0.19.4", + "@esbuild/win32-ia32": "0.19.4", + "@esbuild/win32-x64": "0.19.4" + } + }, + "node_modules/esbuild/node_modules/@esbuild/android-arm": { + "version": "0.19.4", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.4.tgz", + "integrity": "sha512-uBIbiYMeSsy2U0XQoOGVVcpIktjLMEKa7ryz2RLr7L/vTnANNEsPVAh4xOv7ondGz6ac1zVb0F8Jx20rQikffQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild/node_modules/@esbuild/android-arm64": { + "version": "0.19.4", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.4.tgz", + "integrity": "sha512-mRsi2vJsk4Bx/AFsNBqOH2fqedxn5L/moT58xgg51DjX1la64Z3Npicut2VbhvDFO26qjWtPMsVxCd80YTFVeg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild/node_modules/@esbuild/android-x64": { + "version": "0.19.4", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.4.tgz", + "integrity": "sha512-4iPufZ1TMOD3oBlGFqHXBpa3KFT46aLl6Vy7gwed0ZSYgHaZ/mihbYb4t7Z9etjkC9Al3ZYIoOaHrU60gcMy7g==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild/node_modules/@esbuild/darwin-arm64": { + "version": "0.19.4", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.4.tgz", + "integrity": "sha512-Lviw8EzxsVQKpbS+rSt6/6zjn9ashUZ7Tbuvc2YENgRl0yZTktGlachZ9KMJUsVjZEGFVu336kl5lBgDN6PmpA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild/node_modules/@esbuild/darwin-x64": { + "version": "0.19.4", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.4.tgz", + "integrity": "sha512-YHbSFlLgDwglFn0lAO3Zsdrife9jcQXQhgRp77YiTDja23FrC2uwnhXMNkAucthsf+Psr7sTwYEryxz6FPAVqw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild/node_modules/@esbuild/freebsd-arm64": { + "version": "0.19.4", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.4.tgz", + "integrity": "sha512-vz59ijyrTG22Hshaj620e5yhs2dU1WJy723ofc+KUgxVCM6zxQESmWdMuVmUzxtGqtj5heHyB44PjV/HKsEmuQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild/node_modules/@esbuild/freebsd-x64": { + "version": "0.19.4", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.4.tgz", + "integrity": "sha512-3sRbQ6W5kAiVQRBWREGJNd1YE7OgzS0AmOGjDmX/qZZecq8NFlQsQH0IfXjjmD0XtUYqr64e0EKNFjMUlPL3Cw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild/node_modules/@esbuild/linux-arm": { + "version": "0.19.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.4.tgz", + "integrity": "sha512-z/4ArqOo9EImzTi4b6Vq+pthLnepFzJ92BnofU1jgNlcVb+UqynVFdoXMCFreTK7FdhqAzH0vmdwW5373Hm9pg==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild/node_modules/@esbuild/linux-arm64": { + "version": "0.19.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.4.tgz", + "integrity": "sha512-ZWmWORaPbsPwmyu7eIEATFlaqm0QGt+joRE9sKcnVUG3oBbr/KYdNE2TnkzdQwX6EDRdg/x8Q4EZQTXoClUqqA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild/node_modules/@esbuild/linux-ia32": { + "version": "0.19.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.4.tgz", + "integrity": "sha512-EGc4vYM7i1GRUIMqRZNCTzJh25MHePYsnQfKDexD8uPTCm9mK56NIL04LUfX2aaJ+C9vyEp2fJ7jbqFEYgO9lQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" } }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/encryptedfs": { - "version": "3.5.8", - "resolved": "https://registry.npmjs.org/encryptedfs/-/encryptedfs-3.5.8.tgz", - "integrity": "sha512-NDTQvfeLfWGbgq5ceJwyE4fiwE1z1F5eNI6U7iMYDJLvYblEFCJ8B4x9xOR/vknBCQ3CrrvGVvamX8NPCnMOPA==", - "dev": true, - "dependencies": { - "@matrixai/async-init": "^1.8.4", - "@matrixai/async-locks": "^4.0.0", - "@matrixai/db": "^5.2.0", - "@matrixai/errors": "^1.1.7", - "@matrixai/logger": "^3.1.0", - "@matrixai/resources": "^1.1.5", - "@matrixai/workers": "^1.3.7", - "errno": "^0.1.7", - "lexicographic-integer": "^1.1.0", - "node-forge": "^1.3.1", - "readable-stream": "^3.6.0", - "resource-counter": "^1.2.4", - "threads": "^1.6.5", - "util-callbackify": "^1.0.0" + "node_modules/esbuild/node_modules/@esbuild/linux-loong64": { + "version": "0.19.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.4.tgz", + "integrity": "sha512-WVhIKO26kmm8lPmNrUikxSpXcgd6HDog0cx12BUfA2PkmURHSgx9G6vA19lrlQOMw+UjMZ+l3PpbtzffCxFDRg==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" } }, - "node_modules/encryptedfs/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "node_modules/esbuild/node_modules/@esbuild/linux-mips64el": { + "version": "0.19.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.4.tgz", + "integrity": "sha512-keYY+Hlj5w86hNp5JJPuZNbvW4jql7c1eXdBUHIJGTeN/+0QFutU3GrS+c27L+NTmzi73yhtojHk+lr2+502Mw==", + "cpu": [ + "mips64el" + ], "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">= 6" + "node": ">=12" } }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "node_modules/esbuild/node_modules/@esbuild/linux-ppc64": { + "version": "0.19.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.4.tgz", + "integrity": "sha512-tQ92n0WMXyEsCH4m32S21fND8VxNiVazUbU4IUGVXQpWiaAxOBvtOtbEt3cXIV3GEBydYsY8pyeRMJx9kn3rvw==", + "cpu": [ + "ppc64" + ], "dev": true, - "dependencies": { - "once": "^1.4.0" + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" } }, - "node_modules/entities": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "node_modules/esbuild/node_modules/@esbuild/linux-riscv64": { + "version": "0.19.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.4.tgz", + "integrity": "sha512-tRRBey6fG9tqGH6V75xH3lFPpj9E8BH+N+zjSUCnFOX93kEzqS0WdyJHkta/mmJHn7MBaa++9P4ARiU4ykjhig==", + "cpu": [ + "riscv64" + ], "dev": true, + "optional": true, + "os": [ + "linux" + ], "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" + "node": ">=12" } }, - "node_modules/errno": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", - "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", + "node_modules/esbuild/node_modules/@esbuild/linux-s390x": { + "version": "0.19.4", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.4.tgz", + "integrity": "sha512-152aLpQqKZYhThiJ+uAM4PcuLCAOxDsCekIbnGzPKVBRUDlgaaAfaUl5NYkB1hgY6WN4sPkejxKlANgVcGl9Qg==", + "cpu": [ + "s390x" + ], "dev": true, - "dependencies": { - "prr": "~1.0.1" - }, - "bin": { - "errno": "cli.js" + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" } }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "node_modules/esbuild/node_modules/@esbuild/netbsd-x64": { + "version": "0.19.4", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.4.tgz", + "integrity": "sha512-9+Wxx1i5N/CYo505CTT7T+ix4lVzEdz0uCoYGxM5JDVlP2YdDC1Bdz+Khv6IbqmisT0Si928eAxbmGkcbiuM/A==", + "cpu": [ + "x64" + ], "dev": true, - "dependencies": { - "is-arrayish": "^0.2.1" + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" } }, - "node_modules/es-abstract": { - "version": "1.22.2", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.2.tgz", - "integrity": "sha512-YoxfFcDmhjOgWPWsV13+2RNjq1F6UQnfs+8TftwNqtzlmFzEXvlUwdrNrYeaizfjQzRMxkZ6ElWMOJIFKdVqwA==", + "node_modules/esbuild/node_modules/@esbuild/openbsd-x64": { + "version": "0.19.4", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.4.tgz", + "integrity": "sha512-MFsHleM5/rWRW9EivFssop+OulYVUoVcqkyOkjiynKBCGBj9Lihl7kh9IzrreDyXa4sNkquei5/DTP4uCk25xw==", + "cpu": [ + "x64" + ], "dev": true, - "dependencies": { - "array-buffer-byte-length": "^1.0.0", - "arraybuffer.prototype.slice": "^1.0.2", - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "es-set-tostringtag": "^2.0.1", - "es-to-primitive": "^1.2.1", - "function.prototype.name": "^1.1.6", - "get-intrinsic": "^1.2.1", - "get-symbol-description": "^1.0.0", - "globalthis": "^1.0.3", - "gopd": "^1.0.1", - "has": "^1.0.3", - "has-property-descriptors": "^1.0.0", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.5", - "is-array-buffer": "^3.0.2", - "is-callable": "^1.2.7", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-typed-array": "^1.1.12", - "is-weakref": "^1.0.2", - "object-inspect": "^1.12.3", - "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.5.1", - "safe-array-concat": "^1.0.1", - "safe-regex-test": "^1.0.0", - "string.prototype.trim": "^1.2.8", - "string.prototype.trimend": "^1.0.7", - "string.prototype.trimstart": "^1.0.7", - "typed-array-buffer": "^1.0.0", - "typed-array-byte-length": "^1.0.0", - "typed-array-byte-offset": "^1.0.0", - "typed-array-length": "^1.0.4", - "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.11" - }, + "optional": true, + "os": [ + "openbsd" + ], "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=12" } }, - "node_modules/es-array-method-boxes-properly": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", - "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==", - "dev": true - }, - "node_modules/es-set-tostringtag": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", - "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", + "node_modules/esbuild/node_modules/@esbuild/sunos-x64": { + "version": "0.19.4", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.4.tgz", + "integrity": "sha512-6Xq8SpK46yLvrGxjp6HftkDwPP49puU4OF0hEL4dTxqCbfx09LyrbUj/D7tmIRMj5D5FCUPksBbxyQhp8tmHzw==", + "cpu": [ + "x64" + ], "dev": true, - "dependencies": { - "get-intrinsic": "^1.1.3", - "has": "^1.0.3", - "has-tostringtag": "^1.0.0" - }, + "optional": true, + "os": [ + "sunos" + ], "engines": { - "node": ">= 0.4" + "node": ">=12" } }, - "node_modules/es-shim-unscopables": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", - "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", + "node_modules/esbuild/node_modules/@esbuild/win32-arm64": { + "version": "0.19.4", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.4.tgz", + "integrity": "sha512-PkIl7Jq4mP6ke7QKwyg4fD4Xvn8PXisagV/+HntWoDEdmerB2LTukRZg728Yd1Fj+LuEX75t/hKXE2Ppk8Hh1w==", + "cpu": [ + "arm64" + ], "dev": true, - "dependencies": { - "has": "^1.0.3" + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" } }, - "node_modules/es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "node_modules/esbuild/node_modules/@esbuild/win32-ia32": { + "version": "0.19.4", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.4.tgz", + "integrity": "sha512-ga676Hnvw7/ycdKB53qPusvsKdwrWzEyJ+AtItHGoARszIqvjffTwaaW3b2L6l90i7MO9i+dlAW415INuRhSGg==", + "cpu": [ + "ia32" + ], "dev": true, - "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - }, + "optional": true, + "os": [ + "win32" + ], "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=12" } }, - "node_modules/esbuild": { + "node_modules/esbuild/node_modules/@esbuild/win32-x64": { "version": "0.19.4", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.4.tgz", - "integrity": "sha512-x7jL0tbRRpv4QUyuDMjONtWFciygUxWaUM1kMX2zWxI0X2YWOt7MSA0g4UdeSiHM8fcYVzpQhKYOycZwxTdZkA==", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.4.tgz", + "integrity": "sha512-HP0GDNla1T3ZL8Ko/SHAS2GgtjOg+VmWnnYLhuTksr++EnduYB0f3Y2LzHsUwb2iQ13JGoY6G3R8h6Du/WG6uA==", + "cpu": [ + "x64" + ], "dev": true, - "hasInstallScript": true, - "bin": { - "esbuild": "bin/esbuild" - }, + "optional": true, + "os": [ + "win32" + ], "engines": { "node": ">=12" - }, - "optionalDependencies": { - "@esbuild/android-arm": "0.19.4", - "@esbuild/android-arm64": "0.19.4", - "@esbuild/android-x64": "0.19.4", - "@esbuild/darwin-arm64": "0.19.4", - "@esbuild/darwin-x64": "0.19.4", - "@esbuild/freebsd-arm64": "0.19.4", - "@esbuild/freebsd-x64": "0.19.4", - "@esbuild/linux-arm": "0.19.4", - "@esbuild/linux-arm64": "0.19.4", - "@esbuild/linux-ia32": "0.19.4", - "@esbuild/linux-loong64": "0.19.4", - "@esbuild/linux-mips64el": "0.19.4", - "@esbuild/linux-ppc64": "0.19.4", - "@esbuild/linux-riscv64": "0.19.4", - "@esbuild/linux-s390x": "0.19.4", - "@esbuild/linux-x64": "0.19.4", - "@esbuild/netbsd-x64": "0.19.4", - "@esbuild/openbsd-x64": "0.19.4", - "@esbuild/sunos-x64": "0.19.4", - "@esbuild/win32-arm64": "0.19.4", - "@esbuild/win32-ia32": "0.19.4", - "@esbuild/win32-x64": "0.19.4" } }, "node_modules/escalade": { @@ -4480,15 +5302,6 @@ "node": ">=4.0" } }, - "node_modules/esm": { - "version": "3.2.25", - "resolved": "https://registry.npmjs.org/esm/-/esm-3.2.25.tgz", - "integrity": "sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==", - "optional": true, - "engines": { - "node": ">=6" - } - }, "node_modules/espree": { "version": "9.6.1", "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", @@ -4637,9 +5450,9 @@ } }, "node_modules/fast-check": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/fast-check/-/fast-check-3.13.1.tgz", - "integrity": "sha512-Xp00tFuWd83i8rbG/4wU54qU+yINjQha7bXH2N4ARNTkyOimzHtUBJ5+htpdXk7RMaCOD/j2jxSjEt9u9ZPNeQ==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/fast-check/-/fast-check-4.0.1.tgz", + "integrity": "sha512-Z91jcH02ySQBQlKrCIs3tKTEHdkzOqQhHW5Mg4aZRo4lbI39a28jrFlik6FaRUNzm823VDDTtAi5AEV6lZZprQ==", "dev": true, "funding": [ { @@ -4652,12 +5465,28 @@ } ], "dependencies": { - "pure-rand": "^6.0.0" + "pure-rand": "^7.0.0" }, "engines": { - "node": ">=8.0.0" + "node": ">=12.17.0" } }, + "node_modules/fast-check/node_modules/pure-rand": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-7.0.1.tgz", + "integrity": "sha512-oTUZM/NAZS8p7ANR3SHh30kXB+zK2r2BPcEn/awJIbOvq82WoMN4p62AWWp3Hhw50G0xMsw1mhIBLqHw64EcNQ==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/dubzzz" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fast-check" + } + ] + }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -4809,12 +5638,18 @@ "dev": true }, "node_modules/for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", + "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", "dev": true, "dependencies": { - "is-callable": "^1.1.3" + "is-callable": "^1.2.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/from2": { @@ -4854,6 +5689,20 @@ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", "dev": true }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, "node_modules/function-bind": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", @@ -4864,15 +5713,17 @@ } }, "node_modules/function.prototype.name": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", - "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz", + "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "functions-have-names": "^1.2.3" + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "functions-have-names": "^1.2.3", + "hasown": "^2.0.2", + "is-callable": "^1.2.7" }, "engines": { "node": ">= 0.4" @@ -4909,15 +5760,24 @@ } }, "node_modules/get-intrinsic": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", - "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", "dev": true, "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3" + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -4932,6 +5792,19 @@ "node": ">=8.0.0" } }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "dev": true, + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/get-stream": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", @@ -4945,13 +5818,14 @@ } }, "node_modules/get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", + "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6" }, "engines": { "node": ">= 0.4" @@ -4960,6 +5834,18 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/get-tsconfig": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.10.0.tgz", + "integrity": "sha512-kGzZ3LWWQcGIAmg6iWvXn0ei6WDtV26wzHRMwDSzmAbcXrTEXxHy6IehI6/4eT6VRKyMP1eF1VqwrVUmE/LR7A==", + "dev": true, + "dependencies": { + "resolve-pkg-maps": "^1.0.0" + }, + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + } + }, "node_modules/github-from-package": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", @@ -5014,12 +5900,13 @@ } }, "node_modules/globalthis": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", - "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", "dev": true, "dependencies": { - "define-properties": "^1.1.3" + "define-properties": "^1.2.1", + "gopd": "^1.0.1" }, "engines": { "node": ">= 0.4" @@ -5049,12 +5936,12 @@ } }, "node_modules/gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", "dev": true, - "dependencies": { - "get-intrinsic": "^1.1.3" + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -5092,10 +5979,13 @@ } }, "node_modules/has-bigints": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", + "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", "dev": true, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -5110,22 +6000,25 @@ } }, "node_modules/has-property-descriptors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", "dev": true, "dependencies": { - "get-intrinsic": "^1.1.1" + "es-define-property": "^1.0.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/has-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz", + "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", "dev": true, + "dependencies": { + "dunder-proto": "^1.0.0" + }, "engines": { "node": ">= 0.4" }, @@ -5134,9 +6027,9 @@ } }, "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", "dev": true, "engines": { "node": ">= 0.4" @@ -5146,12 +6039,12 @@ } }, "node_modules/has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", "dev": true, "dependencies": { - "has-symbols": "^1.0.2" + "has-symbols": "^1.0.3" }, "engines": { "node": ">= 0.4" @@ -5160,6 +6053,18 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/html-escaper": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", @@ -5309,14 +6214,14 @@ "dev": true }, "node_modules/internal-slot": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", - "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", + "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", "dev": true, "dependencies": { - "get-intrinsic": "^1.2.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" + "es-errors": "^1.3.0", + "hasown": "^2.0.2", + "side-channel": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -5363,14 +6268,17 @@ } }, "node_modules/is-array-buffer": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", - "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", + "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.0", - "is-typed-array": "^1.1.10" + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -5382,13 +6290,35 @@ "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", "dev": true }, + "node_modules/is-async-function": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz", + "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==", + "dev": true, + "dependencies": { + "async-function": "^1.0.0", + "call-bound": "^1.0.3", + "get-proto": "^1.0.1", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", + "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", "dev": true, "dependencies": { - "has-bigints": "^1.0.1" + "has-bigints": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -5407,13 +6337,13 @@ } }, "node_modules/is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz", + "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -5446,13 +6376,31 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-data-view": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz", + "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", + "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", "dev": true, "dependencies": { - "has-tostringtag": "^1.0.0" + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -5485,6 +6433,21 @@ "node": ">=0.10.0" } }, + "node_modules/is-finalizationregistry": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", + "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", @@ -5503,6 +6466,24 @@ "node": ">=6" } }, + "node_modules/is-generator-function": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.0.tgz", + "integrity": "sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.3", + "get-proto": "^1.0.0", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-glob": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", @@ -5533,10 +6514,10 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "node_modules/is-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", "dev": true, "engines": { "node": ">= 0.4" @@ -5555,12 +6536,13 @@ } }, "node_modules/is-number-object": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", + "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", "dev": true, "dependencies": { - "has-tostringtag": "^1.0.0" + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -5569,18 +6551,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-observable": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-observable/-/is-observable-2.1.0.tgz", - "integrity": "sha512-DailKdLb0WU+xX8K5w7VsJhapwHLZ9jjmazqCJq4X12CTgqq73TKnbRcnSLuXYPOoLQgV5IrD7ePiX/h1vnkBw==", - "devOptional": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/is-path-inside": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", @@ -5591,14 +6561,28 @@ } }, "node_modules/is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", + "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" + "call-bound": "^1.0.2", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-set": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", + "dev": true, "engines": { "node": ">= 0.4" }, @@ -5607,12 +6591,15 @@ } }, "node_modules/is-shared-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", + "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", "dev": true, "dependencies": { - "call-bind": "^1.0.2" + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -5631,12 +6618,13 @@ } }, "node_modules/is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", + "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", "dev": true, "dependencies": { - "has-tostringtag": "^1.0.0" + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -5646,12 +6634,14 @@ } }, "node_modules/is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", + "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", "dev": true, "dependencies": { - "has-symbols": "^1.0.2" + "call-bound": "^1.0.2", + "has-symbols": "^1.1.0", + "safe-regex-test": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -5661,13 +6651,25 @@ } }, "node_modules/is-typed-array": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", - "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", + "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", "dev": true, "dependencies": { - "which-typed-array": "^1.1.11" + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakmap": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", + "dev": true, "engines": { "node": ">= 0.4" }, @@ -5676,12 +6678,31 @@ } }, "node_modules/is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz", + "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", + "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.2" + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -5831,22 +6852,6 @@ "node": ">=8" } }, - "node_modules/ix": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ix/-/ix-5.0.0.tgz", - "integrity": "sha512-6LyyrHnvNrSy5pKtW/KA+KKusHrB223aBJCJlIGPN7QBfDkEEtNrAkAz9lLLShIcdJntq6BiPCHuKaCM/9wwXw==", - "dev": true, - "dependencies": { - "@types/node": "^13.7.4", - "tslib": "^2.3.0" - } - }, - "node_modules/ix/node_modules/@types/node": { - "version": "13.13.52", - "resolved": "https://registry.npmjs.org/@types/node/-/node-13.13.52.tgz", - "integrity": "sha512-s3nugnZumCC//n4moGGe6tkNMyYEdaDBitVjwPxXmR5lnMG5dHePinH2EdxkG3Rh1ghFHHixAG4NJhpJW1rthQ==", - "dev": true - }, "node_modules/jest": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", @@ -6657,12 +7662,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", - "dev": true - }, "node_modules/lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", @@ -6703,7 +7702,7 @@ "version": "1.3.6", "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true + "devOptional": true }, "node_modules/makeerror": { "version": "1.0.12", @@ -6726,6 +7725,15 @@ "node": ">= 12" } }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", @@ -6859,12 +7867,12 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "devOptional": true + "dev": true }, "node_modules/multiformats": { - "version": "9.9.0", - "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-9.9.0.tgz", - "integrity": "sha512-HoMUjhH9T8DDBNT+6xzkrd9ga/XiBI4xLr58LJACwK6G3HTOPeMz4nB4KJs33L2BelrIJa7P0VuNaVF3hMYfjg==", + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/multiformats/-/multiformats-13.3.2.tgz", + "integrity": "sha512-qbB0CQDt3QKfiAzZ5ZYjLFOs+zW43vA4uyM8g27PeEuXZybUOFyjrVdP93HPBHMoglibwfkdVwbzfUq8qGcH6g==", "dev": true }, "node_modules/multistream": { @@ -7056,9 +8064,9 @@ } }, "node_modules/node-gyp-build": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.6.1.tgz", - "integrity": "sha512-24vnklJmyRS8ViBNI8KbtK/r/DmXQMRiOMXTNz2nrTnAYUwjmEEbnnpB/+kt+yWRv73bPsSPRFddrcIbAxSiMQ==", + "version": "4.8.4", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.4.tgz", + "integrity": "sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==", "devOptional": true, "bin": { "node-gyp-build": "bin.js", @@ -7185,10 +8193,13 @@ } }, "node_modules/object-inspect": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.0.tgz", - "integrity": "sha512-HQ4J+ic8hKrgIt3mqk6cVOVrW2ozL4KdvHlqpBv9vDYWx9ysAgENAdvy4FoGF+KFdhR7nQTNm5J0ctAeOwn+3g==", + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", "dev": true, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -7203,14 +8214,16 @@ } }, "node_modules/object.assign": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", - "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", + "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "has-symbols": "^1.0.3", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0", + "has-symbols": "^1.1.0", "object-keys": "^1.1.1" }, "engines": { @@ -7238,16 +8251,18 @@ } }, "node_modules/object.getownpropertydescriptors": { - "version": "2.1.7", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.7.tgz", - "integrity": "sha512-PrJz0C2xJ58FNn11XV2lr4Jt5Gzl94qpy9Lu0JlfEj14z88sqbSBJCBEzdlNUCzY2gburhbrwOZ5BHCmuNUy0g==", + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.8.tgz", + "integrity": "sha512-qkHIGe4q0lSYMv0XI4SsBTJz3WaURhLvd0lKSgtVuOsJ2krg4SgMw3PIRQFMp07yi++UR3se2mkcLqsBNpBb/A==", "dev": true, "dependencies": { "array.prototype.reduce": "^1.0.6", - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "safe-array-concat": "^1.0.0" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0", + "gopd": "^1.0.1", + "safe-array-concat": "^1.1.2" }, "engines": { "node": ">= 0.8" @@ -7285,12 +8300,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/observable-fns": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/observable-fns/-/observable-fns-0.6.1.tgz", - "integrity": "sha512-9gRK4+sRWzeN6AOewNBTLXir7Zl/i3GB6Yl26gK4flxz8BXVpD3kt8amREmWNb0mxYOGDotvE5a4N+PtGGKdkg==", - "devOptional": true - }, "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", @@ -7350,6 +8359,23 @@ "node": ">= 0.8.0" } }, + "node_modules/own-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz", + "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.6", + "object-keys": "^1.1.1", + "safe-push-apply": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/p-is-promise": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-3.0.0.tgz", @@ -7602,27 +8628,27 @@ } }, "node_modules/polykey": { - "version": "1.21.4", - "resolved": "https://registry.npmjs.org/polykey/-/polykey-1.21.4.tgz", - "integrity": "sha512-skSEjBJ21qb8cskNpdTnJ0OPw9t+1sw2CQOj0Qnzcm4u/+uTsAizmrIgFsC/EtVBRe/QwY2Yd2HmeBCA2zibEQ==", - "dev": true, - "dependencies": { - "@matrixai/async-cancellable": "^1.1.1", - "@matrixai/async-init": "^1.10.0", - "@matrixai/async-locks": "^4.0.0", - "@matrixai/contexts": "^1.1.0", - "@matrixai/db": "^5.3.0", - "@matrixai/errors": "^1.2.0", - "@matrixai/events": "^3.2.3", - "@matrixai/id": "^3.3.6", - "@matrixai/logger": "^3.1.2", - "@matrixai/mdns": "^1.2.6", - "@matrixai/quic": "^1.3.13", - "@matrixai/resources": "^1.1.5", - "@matrixai/rpc": "^0.6.2", - "@matrixai/timer": "^1.1.3", - "@matrixai/workers": "^1.3.7", - "@matrixai/ws": "^1.1.7", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/polykey/-/polykey-2.0.4.tgz", + "integrity": "sha512-8XNHnvhmJDwd6Foe8FjI49FELWzOespl2uvxmEgFWaoV5vd2VrFZWLmHMyHFobE2ODKSbyv4VbBIt7Iua+RFVQ==", + "dev": true, + "dependencies": { + "@matrixai/async-cancellable": "^2.0.1", + "@matrixai/async-init": "^2.1.2", + "@matrixai/async-locks": "^5.0.2", + "@matrixai/contexts": "^2.0.2", + "@matrixai/db": "^6.0.20", + "@matrixai/errors": "^2.1.3", + "@matrixai/events": "^4.0.1", + "@matrixai/id": "^4.0.0", + "@matrixai/logger": "^4.0.3", + "@matrixai/mdns": "^2.0.7", + "@matrixai/quic": "^2.0.9", + "@matrixai/resources": "^2.0.1", + "@matrixai/rpc": "^1.0.0", + "@matrixai/timer": "^2.1.1", + "@matrixai/workers": "^2.0.0", + "@matrixai/ws": "^2.0.5", "@peculiar/asn1-pkcs8": "^2.3.0", "@peculiar/asn1-schema": "^2.3.0", "@peculiar/asn1-x509": "^2.3.0", @@ -7634,20 +8660,18 @@ "cheerio": "^1.0.0-rc.5", "cross-fetch": "^3.0.6", "cross-spawn": "^7.0.3", - "encryptedfs": "^3.5.6", + "encryptedfs": "^4.0.2", "fast-fuzzy": "^1.10.8", "fd-lock": "^1.2.0", "ip-num": "^1.3.3-0", "isomorphic-git": "^1.8.1", - "ix": "^5.0.0", "lexicographic-integer": "^1.1.0", "minimatch": "^10.0.1", - "multiformats": "^9.4.8", + "multiformats": "^13.3.2", "pako": "^1.0.11", "prompts": "^2.4.1", "resource-counter": "^1.2.4", - "sodium-native": "^3.4.1", - "threads": "^1.6.5" + "sodium-native": "^3.4.1" } }, "node_modules/polykey/node_modules/ajv": { @@ -7712,6 +8736,15 @@ "node-gyp-build": "^4.3.0" } }, + "node_modules/possible-typed-array-names": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", + "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/prebuild-install": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.1.tgz", @@ -7994,6 +9027,28 @@ "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==", "dev": true }, + "node_modules/reflect.getprototypeof": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", + "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.9", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.7", + "get-proto": "^1.0.1", + "which-builtin-type": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/regenerator-runtime": { "version": "0.11.1", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", @@ -8001,14 +9056,17 @@ "dev": true }, "node_modules/regexp.prototype.flags": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz", - "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==", + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", + "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "set-function-name": "^2.0.0" + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "set-function-name": "^2.0.2" }, "engines": { "node": ">= 0.4" @@ -8078,8 +9136,17 @@ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true, - "engines": { - "node": ">=4" + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "dev": true, + "funding": { + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" } }, "node_modules/resolve.exports": { @@ -8179,15 +9246,25 @@ "queue-microtask": "^1.2.2" } }, + "node_modules/rxjs": { + "version": "7.8.2", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz", + "integrity": "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==", + "devOptional": true, + "dependencies": { + "tslib": "^2.1.0" + } + }, "node_modules/safe-array-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.1.tgz", - "integrity": "sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz", + "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1", - "has-symbols": "^1.0.3", + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "has-symbols": "^1.1.0", "isarray": "^2.0.5" }, "engines": { @@ -8209,15 +9286,40 @@ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true }, - "node_modules/safe-regex-test": { + "node_modules/safe-push-apply": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", - "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz", + "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", - "is-regex": "^1.1.4" + "es-errors": "^1.3.0", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-push-apply/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + }, + "node_modules/safe-regex-test": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", + "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-regex": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -8256,15 +9358,47 @@ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dev": true, + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/set-function-name": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", - "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", "dev": true, "dependencies": { - "define-data-property": "^1.0.1", + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", "functions-have-names": "^1.2.3", - "has-property-descriptors": "^1.0.0" + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-proto": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz", + "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==", + "dev": true, + "dependencies": { + "dunder-proto": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -8350,14 +9484,72 @@ } }, "node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", "dev": true, "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -8543,14 +9735,18 @@ } }, "node_modules/string.prototype.trim": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz", - "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==", + "version": "1.2.10", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz", + "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "define-data-property": "^1.1.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-object-atoms": "^1.0.0", + "has-property-descriptors": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -8560,28 +9756,35 @@ } }, "node_modules/string.prototype.trimend": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz", - "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==", + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz", + "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/string.prototype.trimstart": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", - "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -8731,39 +9934,12 @@ "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", "dev": true }, - "node_modules/threads": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/threads/-/threads-1.7.0.tgz", - "integrity": "sha512-Mx5NBSHX3sQYR6iI9VYbgHKBLisyB+xROCBGjjWm1O9wb9vfLxdaGtmT/KCjUqMsSNW6nERzCW3T6H43LqjDZQ==", - "devOptional": true, - "dependencies": { - "callsites": "^3.1.0", - "debug": "^4.2.0", - "is-observable": "^2.1.0", - "observable-fns": "^0.6.1" - }, - "funding": { - "url": "https://github.com/andywer/threads.js?sponsor=1" - }, - "optionalDependencies": { - "tiny-worker": ">= 2" - } - }, "node_modules/tiny-inflate": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/tiny-inflate/-/tiny-inflate-1.0.3.tgz", "integrity": "sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==", "dev": true }, - "node_modules/tiny-worker": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/tiny-worker/-/tiny-worker-2.3.0.tgz", - "integrity": "sha512-pJ70wq5EAqTAEl9IkGzA+fN0836rycEuz2Cn6yeZ6FRzlVS5IDOkFHpIoEsksPRQV34GDqXm65+OlnZqUSyK2g==", - "optional": true, - "dependencies": { - "esm": "^3.2.25" - } - }, "node_modules/titleize": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/titleize/-/titleize-3.0.0.tgz", @@ -8830,54 +10006,11 @@ "node": ">=14.0.0" } }, - "node_modules/ts-jest": { - "version": "29.1.1", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.1.1.tgz", - "integrity": "sha512-D6xjnnbP17cC85nliwGiL+tpoKN0StpgE0TeOjXQTU6MVCfsB4v7aW05CgQ/1OywGb0x/oy9hHFnN+sczTiRaA==", - "dev": true, - "dependencies": { - "bs-logger": "0.x", - "fast-json-stable-stringify": "2.x", - "jest-util": "^29.0.0", - "json5": "^2.2.3", - "lodash.memoize": "4.x", - "make-error": "1.x", - "semver": "^7.5.3", - "yargs-parser": "^21.0.1" - }, - "bin": { - "ts-jest": "cli.js" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "@babel/core": ">=7.0.0-beta.0 <8", - "@jest/types": "^29.0.0", - "babel-jest": "^29.0.0", - "jest": "^29.0.0", - "typescript": ">=4.3 <6" - }, - "peerDependenciesMeta": { - "@babel/core": { - "optional": true - }, - "@jest/types": { - "optional": true - }, - "babel-jest": { - "optional": true - }, - "esbuild": { - "optional": true - } - } - }, "node_modules/ts-node": { "version": "10.9.1", "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", - "dev": true, + "devOptional": true, "dependencies": { "@cspotcode/source-map-support": "^0.8.0", "@tsconfig/node10": "^1.0.7", @@ -8953,7 +10086,7 @@ "version": "2.6.2", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", - "dev": true + "devOptional": true }, "node_modules/tsutils": { "version": "3.21.0", @@ -8976,6 +10109,86 @@ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true }, + "node_modules/tsx": { + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/tsx/-/tsx-3.14.0.tgz", + "integrity": "sha512-xHtFaKtHxM9LOklMmJdI3BEnQq/D5F73Of2E1GDrITi9sgoVkvIsrQUTY1G8FlmGtA+awCI4EBlTRRYxkL2sRg==", + "dev": true, + "dependencies": { + "esbuild": "~0.18.20", + "get-tsconfig": "^4.7.2", + "source-map-support": "^0.5.21" + }, + "bin": { + "tsx": "dist/cli.mjs" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + } + }, + "node_modules/tsx/node_modules/@esbuild/linux-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz", + "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/tsx/node_modules/esbuild": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz", + "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.18.20", + "@esbuild/android-arm64": "0.18.20", + "@esbuild/android-x64": "0.18.20", + "@esbuild/darwin-arm64": "0.18.20", + "@esbuild/darwin-x64": "0.18.20", + "@esbuild/freebsd-arm64": "0.18.20", + "@esbuild/freebsd-x64": "0.18.20", + "@esbuild/linux-arm": "0.18.20", + "@esbuild/linux-arm64": "0.18.20", + "@esbuild/linux-ia32": "0.18.20", + "@esbuild/linux-loong64": "0.18.20", + "@esbuild/linux-mips64el": "0.18.20", + "@esbuild/linux-ppc64": "0.18.20", + "@esbuild/linux-riscv64": "0.18.20", + "@esbuild/linux-s390x": "0.18.20", + "@esbuild/linux-x64": "0.18.20", + "@esbuild/netbsd-x64": "0.18.20", + "@esbuild/openbsd-x64": "0.18.20", + "@esbuild/sunos-x64": "0.18.20", + "@esbuild/win32-arm64": "0.18.20", + "@esbuild/win32-ia32": "0.18.20", + "@esbuild/win32-x64": "0.18.20" + } + }, + "node_modules/tsx/node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, "node_modules/tsyringe": { "version": "4.8.0", "resolved": "https://registry.npmjs.org/tsyringe/-/tsyringe-4.8.0.tgz", @@ -9040,29 +10253,30 @@ } }, "node_modules/typed-array-buffer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", - "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", + "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1", - "is-typed-array": "^1.1.10" + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.14" }, "engines": { "node": ">= 0.4" } }, "node_modules/typed-array-byte-length": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", - "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz", + "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", + "call-bind": "^1.0.8", "for-each": "^0.3.3", - "has-proto": "^1.0.1", - "is-typed-array": "^1.1.10" + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.14" }, "engines": { "node": ">= 0.4" @@ -9072,16 +10286,18 @@ } }, "node_modules/typed-array-byte-offset": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", - "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz", + "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==", "dev": true, "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", "for-each": "^0.3.3", - "has-proto": "^1.0.1", - "is-typed-array": "^1.1.10" + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.15", + "reflect.getprototypeof": "^1.0.9" }, "engines": { "node": ">= 0.4" @@ -9091,14 +10307,20 @@ } }, "node_modules/typed-array-length": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", - "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz", + "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", + "call-bind": "^1.0.7", "for-each": "^0.3.3", - "is-typed-array": "^1.1.9" + "gopd": "^1.0.1", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0", + "reflect.getprototypeof": "^1.0.6" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -9153,7 +10375,7 @@ "version": "5.1.6", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.1.6.tgz", "integrity": "sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==", - "dev": true, + "devOptional": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -9163,15 +10385,18 @@ } }, "node_modules/unbox-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz", + "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", + "call-bound": "^1.0.3", "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" + "has-symbols": "^1.1.0", + "which-boxed-primitive": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -9187,7 +10412,7 @@ "version": "5.25.3", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.25.3.tgz", "integrity": "sha512-Ga1jfYwRn7+cP9v8auvEXN1rX3sWqlayd4HP7OKk4mZWylEmu3KzXDUGrQUN6Ol7qo1gPvB2e5gX6udnyEPgdA==", - "dev": true + "devOptional": true }, "node_modules/unicode-trie": { "version": "2.0.0", @@ -9290,7 +10515,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", - "dev": true + "devOptional": true }, "node_modules/v8-to-istanbul": { "version": "9.1.3", @@ -9372,32 +10597,88 @@ } }, "node_modules/which-boxed-primitive": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", + "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", + "dev": true, + "dependencies": { + "is-bigint": "^1.1.0", + "is-boolean-object": "^1.2.1", + "is-number-object": "^1.1.1", + "is-string": "^1.1.1", + "is-symbol": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-builtin-type": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz", + "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==", + "dev": true, + "dependencies": { + "call-bound": "^1.0.2", + "function.prototype.name": "^1.1.6", + "has-tostringtag": "^1.0.2", + "is-async-function": "^2.0.0", + "is-date-object": "^1.1.0", + "is-finalizationregistry": "^1.1.0", + "is-generator-function": "^1.0.10", + "is-regex": "^1.2.1", + "is-weakref": "^1.0.2", + "isarray": "^2.0.5", + "which-boxed-primitive": "^1.1.0", + "which-collection": "^1.0.2", + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-builtin-type/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + }, + "node_modules/which-collection": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", "dev": true, "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" + "is-map": "^2.0.3", + "is-set": "^2.0.3", + "is-weakmap": "^2.0.2", + "is-weakset": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/which-typed-array": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.11.tgz", - "integrity": "sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==", + "version": "1.1.19", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.19.tgz", + "integrity": "sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==", "dev": true, "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "for-each": "^0.3.5", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -9443,9 +10724,9 @@ } }, "node_modules/ws": { - "version": "8.14.2", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.14.2.tgz", - "integrity": "sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g==", + "version": "8.18.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.1.tgz", + "integrity": "sha512-RKW2aJZMXeMxVpnZ6bck+RswznaxmzdULiBr6KY7XkTnW8uvt0iT9H5DkHUChXrc+uurzwa0rVI16n/Xzjdz1w==", "dev": true, "engines": { "node": ">=10.0.0" @@ -9524,7 +10805,7 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "dev": true, + "devOptional": true, "engines": { "node": ">=6" } diff --git a/package.json b/package.json index 0f8d1a23..13f38c24 100644 --- a/package.json +++ b/package.json @@ -58,8 +58,22 @@ "type": "git", "url": "https://github.com/MatrixAI/Polykey-CLI.git" }, - "main": "dist/index.js", - "types": "dist/index.d.ts", + "type": "module", + "exports": { + "./package.json": "./package.json", + ".": { + "types": "./dist/index.d.ts", + "import": "./dist/index.js" + }, + "./*.js": { + "types": "./dist/*.d.ts", + "import": "./dist/*.js" + }, + "./*": "./dist/*" + }, + "imports": { + "#*": "./build/*" + }, "bin": { "polykey": "dist/polykey.js", "pk": "dist/polykey.js" @@ -91,22 +105,22 @@ "node_modules/sodium-native/prebuilds/win32-x64/node.napi.node" ], "scripts": [ - "dist/polykeyWorker.js" + "dist/polykeyWorkerManifest.js" ] }, "scripts": { - "prepare": "node ./scripts/build.js", - "build": "node ./scripts/build.js", - "version": "node ./scripts/version.js", + "prepare": "node ./scripts/build.mjs", + "build": "node ./scripts/build.mjs", + "version": "node ./scripts/version.mjs", "postversion": "npm install --package-lock-only --ignore-scripts --silent", - "dependencies": "node ./scripts/npmDepsHash.js", - "ts-node": "ts-node", - "test": "jest", + "dependencies": "node ./scripts/npmDepsHash.mjs", + "tsx": "tsx", + "test": "node ./scripts/test.mjs", "lint": "eslint '{src,tests,scripts,benches}/**/*.{js,mjs,ts,mts,jsx,tsx}'", "lintfix": "eslint '{src,tests,scripts,benches}/**/*.{js,mjs,ts,mts,jsx,tsx}' --fix", "lint-shell": "find ./src ./tests ./scripts -type f -regextype posix-extended -regex '.*\\.(sh)' -exec shellcheck {} +", "docs": "shx rm -rf ./docs && typedoc --gitRevision master --tsconfig ./tsconfig.build.json --out ./docs src", - "pkg": "node ./scripts/pkg.js", + "pkg": "node ./scripts/pkg.mjs", "polykey": "ts-node src/polykey.ts", "start": "ts-node src/polykey.ts -- agent start --verbose", "dev": "nodemon src/polykey.ts -- agent start --verbose" @@ -120,17 +134,16 @@ "@matrixai/exec-darwin-universal": "*", "@matrixai/exec-linux-x64": "*", "fd-lock": "*", - "sodium-native": "*", - "threads": "*" + "sodium-native": "*" }, "devDependencies": { - "@matrixai/errors": "^1.2.0", - "@matrixai/logger": "^3.1.0", - "@matrixai/exec": "^0.1.4", - "@fast-check/jest": "^1.1.0", + "@matrixai/errors": "^2.1.3", + "@matrixai/logger": "^4.0.3", + "@matrixai/exec": "^1.0.3", + "@fast-check/jest": "^2.1.1", "@swc/core": "1.3.82", "@swc/jest": "^0.2.29", - "@types/jest": "^29.5.2", + "@types/jest": "^29.5.14", "@types/nexpect": "^0.4.31", "@types/node": "^20.5.7", "@typescript-eslint/eslint-plugin": "^5.61.0", @@ -143,7 +156,7 @@ "eslint-config-prettier": "^8.8.0", "eslint-plugin-import": "^2.27.5", "eslint-plugin-prettier": "^5.0.0-alpha.2", - "fast-check": "^3.0.1", + "fast-check": "^4.0.1", "jest": "^29.6.2", "jest-extended": "^4.0.0", "jest-junit": "^16.0.0", @@ -151,16 +164,13 @@ "jest-mock-props": "^1.9.1", "mocked-env": "^1.3.5", "nexpect": "^0.6.0", - "node-gyp-build": "^4.4.0", + "node-gyp-build": "^4.8.4", "nodemon": "^3.0.1", - "polykey": "^1.21.4", + "polykey": "^2.0.4", "prettier": "^3.0.0", "shelljs": "^0.8.5", "shx": "^0.3.4", - "threads": "^1.6.5", - "ts-jest": "^29.1.1", - "ts-node": "^10.9.1", - "tsconfig-paths": "^3.9.0", + "tsx": "^3.12.7", "typedoc": "^0.24.8", "typescript": "^5.1.6" } diff --git a/scripts/build.js b/scripts/build.mjs similarity index 70% rename from scripts/build.js rename to scripts/build.mjs index a5180add..acb8ebad 100755 --- a/scripts/build.js +++ b/scripts/build.mjs @@ -1,23 +1,27 @@ #!/usr/bin/env node -const os = require('os'); -const fs = require('fs'); -const path = require('path'); -const process = require('process'); -const childProcess = require('child_process'); -const esbuild = require('esbuild'); -const polykey = require('polykey'); -const packageJSON = require('../package.json'); +import os from 'node:os'; +import fs from 'node:fs'; +import path from 'node:path'; +import url from 'node:url'; +import process from 'node:process'; +import childProcess from 'node:child_process'; +import esbuild from 'esbuild'; +import config from 'polykey/config.js'; +import packageJSON from '../package.json' assert { type: 'json' }; + +const projectPath = path.dirname( + path.dirname(url.fileURLToPath(import.meta.url)), +); const platform = os.platform(); /* eslint-disable no-console */ async function main(argv = process.argv) { argv = argv.slice(2); - const projectRoot = path.join(__dirname, '..'); - const buildPath = path.join(projectRoot, 'build'); - const distPath = path.join(projectRoot, 'dist'); - const gitPath = process.env.GIT_DIR ?? path.join(projectRoot, '.git'); + const buildPath = path.join(projectPath, 'build'); + const distPath = path.join(projectPath, 'dist'); + const gitPath = process.env.GIT_DIR ?? path.join(projectPath, '.git'); await fs.promises.rm(distPath, { recursive: true, force: true, @@ -48,10 +52,10 @@ async function main(argv = process.argv) { versionMetadata: { version: packageJSON.version, commitHash: gitHead, - libVersion: polykey.config.version, - libSourceVersion: polykey.config.sourceVersion, - libStateVersion: polykey.config.stateVersion.toString(), - libNetworkVersion: polykey.config.networkVersion.toString(), + libVersion: config.version, + libSourceVersion: config.sourceVersion, + libStateVersion: config.stateVersion.toString(), + libNetworkVersion: config.networkVersion.toString(), }, }; console.error('Writing build metadata (build.json):'); @@ -67,7 +71,7 @@ async function main(argv = process.argv) { // 2 entrypoints, the main script and the worker script entryPoints: [ path.join(buildPath, 'polykey.js'), - path.join(buildPath, 'polykeyWorker.js'), + path.join(buildPath, 'polykeyWorkerManifest.js'), ], sourceRoot: buildPath, bundle: true, @@ -78,8 +82,11 @@ async function main(argv = process.argv) { // External source map for debugging sourcemap: true, // Minify and keep the original names - minify: true, + minify: false, keepNames: true, + // Supporting ESM + format: 'esm', + inject: [path.join(projectPath, './shims/require-shim.mjs')], }; console.error('Running esbuild:'); console.error(esbuildOptions); diff --git a/scripts/npmDepsHash.js b/scripts/npmDepsHash.mjs similarity index 62% rename from scripts/npmDepsHash.js rename to scripts/npmDepsHash.mjs index f5467ced..d4c504d1 100755 --- a/scripts/npmDepsHash.js +++ b/scripts/npmDepsHash.mjs @@ -1,11 +1,15 @@ #!/usr/bin/env node -const fs = require('fs'); -const path = require('path'); -const childProcess = require('child_process'); +import fs from 'node:fs'; +import path from 'node:path'; +import childProcess from 'node:child_process'; +import url from 'node:url'; + +const projectPath = path.dirname( + path.dirname(url.fileURLToPath(import.meta.url)), +); async function main(_argv = process.argv) { - const projectRoot = path.join(__dirname, '..'); try { const hash = childProcess.execFileSync( 'prefetch-npm-deps', @@ -15,7 +19,7 @@ async function main(_argv = process.argv) { encoding: 'utf-8', }, ); - await fs.promises.writeFile(path.join(projectRoot, 'npmDepsHash'), hash); + await fs.promises.writeFile(path.join(projectPath, 'npmDepsHash'), hash); } catch (e) { // eslint-disable-next-line no-console console.error( diff --git a/scripts/pkg.js b/scripts/pkg.mjs similarity index 89% rename from scripts/pkg.js rename to scripts/pkg.mjs index 253c2ddd..71f3d4ae 100755 --- a/scripts/pkg.js +++ b/scripts/pkg.mjs @@ -1,11 +1,16 @@ #!/usr/bin/env node -const os = require('os'); -const fs = require('fs'); -const path = require('path'); -const process = require('process'); -const childProcess = require('child_process'); -const packageJSON = require('../package.json'); +import os from 'node:os'; +import fs from 'node:fs'; +import path from 'node:path'; +import process from 'node:process'; +import childProcess from 'node:child_process'; +import url from 'node:url'; +import packageJSON from '../package.json' assert { type: 'json' }; + +const projectPath = path.dirname( + path.dirname(url.fileURLToPath(import.meta.url)), +); /** * Supported platforms @@ -95,7 +100,7 @@ async function main(argv = process.argv) { os.arch = () => arch; // Ensure that `node-gyp-build` only finds prebuilds process.env.PREBUILDS_ONLY = '1'; - const nodeGypBuild = require('node-gyp-build'); + const nodeGypBuild = await import('node-gyp-build'); const pkgConfig = packageJSON.pkg ?? {}; pkgConfig.assets = pkgConfig.assets ?? {}; const npmLsOut = childProcess.execFileSync( @@ -108,7 +113,6 @@ async function main(argv = process.argv) { }, ); const nodePackages = npmLsOut.trim().split('\n'); - const projectRoot = path.join(__dirname, '..'); // This will only find native addons that is using `node-gyp-build` for (const nodePackage of nodePackages) { // If `build` or `prebuilds` directory exists with a `.node` file @@ -122,7 +126,7 @@ async function main(argv = process.argv) { let nativeAddonPath = nodeGypBuild.path(nodePackage); // Must use relative paths // so that assets are added relative to the project - nativeAddonPath = path.relative(projectRoot, nativeAddonPath); + nativeAddonPath = path.relative(projectPath, nativeAddonPath); pkgConfig.assets.push(nativeAddonPath); } } @@ -130,7 +134,7 @@ async function main(argv = process.argv) { console.error(pkgConfig); // The pkg config must be in the same directory as the `package.json` // otherwise the relative paths won't work - const pkgConfigPath = path.join(projectRoot, 'pkg.json'); + const pkgConfigPath = path.join(projectPath, 'pkg.json'); await fs.promises.writeFile(pkgConfigPath, JSON.stringify(pkgConfig)); const pkgPlatform = platforms[platform]; const pkgArch = archs[arch]; diff --git a/scripts/test.mjs b/scripts/test.mjs new file mode 100644 index 00000000..35db5645 --- /dev/null +++ b/scripts/test.mjs @@ -0,0 +1,48 @@ +#!/usr/bin/env node + +import os from 'node:os'; +import path from 'node:path'; +import url from 'node:url'; +import process from 'node:process'; +import childProcess from 'node:child_process'; + +const projectPath = path.dirname( + path.dirname(url.fileURLToPath(import.meta.url)), +); + +const platform = os.platform(); + +/* eslint-disable no-console */ +async function main(argv = process.argv) { + argv = argv.slice(2); + const tscArgs = [`-p`, path.join(projectPath, 'tsconfig.build.json')]; + console.error('Running tsc:'); + console.error(['tsc', ...tscArgs].join(' ')); + childProcess.execFileSync('tsc', tscArgs, { + stdio: ['inherit', 'inherit', 'inherit'], + windowsHide: true, + encoding: 'utf-8', + shell: platform === 'win32' ? true : false, + }); + const jestArgs = [...argv]; + console.error('Running jest:'); + console.error(['jest', ...jestArgs].join(' ')); + childProcess.execFileSync('jest', jestArgs, { + env: { + ...process.env, + NODE_OPTIONS: '--experimental-vm-modules', + }, + stdio: ['inherit', 'inherit', 'inherit'], + windowsHide: true, + encoding: 'utf-8', + shell: platform === 'win32' ? true : false, + }); +} +/* eslint-enable no-console */ + +if (import.meta.url.startsWith('file:')) { + const modulePath = url.fileURLToPath(import.meta.url); + if (process.argv[1] === modulePath) { + void main(); + } +} diff --git a/scripts/version.js b/scripts/version.mjs similarity index 55% rename from scripts/version.js rename to scripts/version.mjs index e854c143..201adbd0 100755 --- a/scripts/version.js +++ b/scripts/version.mjs @@ -5,24 +5,32 @@ * This will call `npmDepsHash.js` to make sure it's correct after updating the version. */ -const path = require('path'); -const os = require('os'); -const childProcess = require('child_process'); +import os from 'node:os'; +import path from 'node:path'; +import childProcess from 'node:child_process'; +import url from 'node:url'; + +const projectPath = path.dirname( + path.dirname(url.fileURLToPath(import.meta.url)), +); const platform = os.platform(); /* eslint-disable no-console */ async function main() { - const projectRoot = path.join(__dirname, '..'); - const npmDepsHashPath = path.join(projectRoot, 'npmDepsHash'); + const npmDepsHashPath = path.join(projectPath, 'npmDepsHash'); console.error('Updating the npmDepsHash after version change'); - childProcess.execFileSync(path.join(__dirname, 'npmDepsHash.js'), [], { - stdio: ['inherit', 'inherit', 'inherit'], - windowsHide: true, - encoding: 'utf-8', - shell: platform === 'win32' ? true : false, - }); + childProcess.execFileSync( + path.join(projectPath, 'scripts/npmDepsHash.js'), + [], + { + stdio: ['inherit', 'inherit', 'inherit'], + windowsHide: true, + encoding: 'utf-8', + shell: platform === 'win32' ? true : false, + }, + ); console.error('Staging npmDepsHash'); childProcess.execFileSync('git', ['add', npmDepsHashPath], { diff --git a/scripts/wait-for-deploy.js b/scripts/wait-for-deploy.mjs similarity index 91% rename from scripts/wait-for-deploy.js rename to scripts/wait-for-deploy.mjs index 756a9390..fbf7e41e 100755 --- a/scripts/wait-for-deploy.js +++ b/scripts/wait-for-deploy.mjs @@ -1,7 +1,8 @@ #!/usr/bin/env node -const process = require('process'); -const childProcess = require('child_process'); -const { default: config } = require('polykey/dist/config'); +import process from 'node:process'; +import childProcess from 'node:child_process'; +import config from 'polykey/dist/config.js'; + const versionTarget = config.version; async function main(argv = process.argv) { // Test getting the hash diff --git a/shims/require-shim.mjs b/shims/require-shim.mjs new file mode 100644 index 00000000..26d04b07 --- /dev/null +++ b/shims/require-shim.mjs @@ -0,0 +1,8 @@ +/** + * This shim replaces the `require` in the global scope. + * ESM does not provide a global `require` that is synchronous and can be used dynamically. + * Some libraries that support ESM still use `require` which is causing problems in esbuild. + */ +import { createRequire } from 'node:module'; +// eslint-disable-next-line no-global-assign +require = createRequire(import.meta.url); diff --git a/src/CommandPolykey.ts b/src/CommandPolykey.ts index ddba4f21..07428a12 100644 --- a/src/CommandPolykey.ts +++ b/src/CommandPolykey.ts @@ -1,14 +1,15 @@ -import type { FileSystem } from 'polykey/dist/types'; -import commander from 'commander'; +import type { FileSystem } from 'polykey/types.js'; +import type { OptionValues } from 'commander'; +import { Command } from 'commander'; import Logger, { StreamHandler, formatting, levelToString, evalLogDataValue, } from '@matrixai/logger'; -import * as binUtils from './utils'; -import * as binOptions from './utils/options'; -import * as errors from './errors'; +import * as binUtils from './utils/index.js'; +import * as binOptions from './utils/options.js'; +import * as errors from './errors.js'; /** * Singleton logger constructed once for all commands @@ -18,17 +19,17 @@ const logger = new Logger('polykey', undefined, [new StreamHandler()]); /** * Base class for all commands */ -class CommandPolykey extends commander.Command { +class CommandPolykey extends Command { protected logger: Logger = logger; protected fs: FileSystem; protected exitHandlers: binUtils.ExitHandlers; public constructor({ exitHandlers, - fs = require('fs'), + fs, }: { exitHandlers: binUtils.ExitHandlers; - fs?: FileSystem; + fs: FileSystem; }) { super(); this.fs = fs; @@ -51,7 +52,7 @@ class CommandPolykey extends commander.Command { /** * Overrides opts to return all options set in the command hierarchy */ - public opts(): T { + public opts(): T { const opts = super.opts(); if (this.parent != null) { // Override the current options with parent options diff --git a/src/agent/CommandAgent.ts b/src/agent/CommandAgent.ts index 8e83ac63..2e1870f7 100644 --- a/src/agent/CommandAgent.ts +++ b/src/agent/CommandAgent.ts @@ -1,10 +1,10 @@ -import CommandLock from './CommandLock'; -import CommandLockAll from './CommandLockAll'; -import CommandStart from './CommandStart'; -import CommandStatus from './CommandStatus'; -import CommandStop from './CommandStop'; -import CommandUnlock from './CommandUnlock'; -import CommandPolykey from '../CommandPolykey'; +import CommandLock from './CommandLock.js'; +import CommandLockAll from './CommandLockAll.js'; +import CommandStart from './CommandStart.js'; +import CommandStatus from './CommandStatus.js'; +import CommandStop from './CommandStop.js'; +import CommandUnlock from './CommandUnlock.js'; +import CommandPolykey from '../CommandPolykey.js'; class CommandAgent extends CommandPolykey { constructor(...args: ConstructorParameters) { diff --git a/src/agent/CommandLock.ts b/src/agent/CommandLock.ts index 895acd56..55e35ca9 100644 --- a/src/agent/CommandLock.ts +++ b/src/agent/CommandLock.ts @@ -1,6 +1,6 @@ -import path from 'path'; -import config from 'polykey/dist/config'; -import CommandPolykey from '../CommandPolykey'; +import path from 'node:path'; +import config from 'polykey/config.js'; +import CommandPolykey from '../CommandPolykey.js'; class CommandLock extends CommandPolykey { constructor(...args: ConstructorParameters) { @@ -8,9 +8,7 @@ class CommandLock extends CommandPolykey { this.name('lock'); this.description('Lock the Client and Clear the Existing Token'); this.action(async (options) => { - const { default: Session } = await import( - 'polykey/dist/sessions/Session' - ); + const { default: Session } = await import('polykey/sessions/Session.js'); const session = new Session({ sessionTokenPath: path.join(options.nodePath, config.paths.tokenBase), fs: this.fs, diff --git a/src/agent/CommandLockAll.ts b/src/agent/CommandLockAll.ts index 18b7cf52..df398d10 100644 --- a/src/agent/CommandLockAll.ts +++ b/src/agent/CommandLockAll.ts @@ -1,10 +1,10 @@ -import type PolykeyClient from 'polykey/dist/PolykeyClient'; -import path from 'path'; -import config from 'polykey/dist/config'; -import CommandPolykey from '../CommandPolykey'; -import * as binUtils from '../utils'; -import * as binOptions from '../utils/options'; -import * as binProcessors from '../utils/processors'; +import type PolykeyClient from 'polykey/PolykeyClient.js'; +import path from 'node:path'; +import config from 'polykey/config.js'; +import CommandPolykey from '../CommandPolykey.js'; +import * as binUtils from '../utils/index.js'; +import * as binOptions from '../utils/options.js'; +import * as binProcessors from '../utils/processors.js'; class CommandLockAll extends CommandPolykey { constructor(...args: ConstructorParameters) { @@ -16,11 +16,9 @@ class CommandLockAll extends CommandPolykey { this.addOption(binOptions.clientPort); this.action(async (options) => { const { default: PolykeyClient } = await import( - 'polykey/dist/PolykeyClient' - ); - const { default: Session } = await import( - 'polykey/dist/sessions/Session' + 'polykey/PolykeyClient.js' ); + const { default: Session } = await import('polykey/sessions/Session.js'); const clientOptions = await binProcessors.processClientOptions( options.nodePath, options.nodeId, diff --git a/src/agent/CommandStart.ts b/src/agent/CommandStart.ts index ea833ef3..6f47a5a0 100644 --- a/src/agent/CommandStart.ts +++ b/src/agent/CommandStart.ts @@ -1,27 +1,27 @@ -import type { StdioOptions } from 'child_process'; +import type { StdioOptions } from 'node:child_process'; import type { AgentStatusLiveData, AgentChildProcessInput, AgentChildProcessOutput, -} from '../types'; +} from '../types.js'; import type { default as PolykeyAgent, PolykeyAgentOptions, -} from 'polykey/dist/PolykeyAgent'; -import type { DeepPartial } from 'polykey/dist/types'; -import type { RecoveryCode } from 'polykey/dist/keys/types'; -import childProcess from 'child_process'; -import process from 'process'; -import fs from 'fs'; -import config from 'polykey/dist/config'; -import * as keysErrors from 'polykey/dist/keys/errors'; -import * as polykeyEvents from 'polykey/dist/events'; -import * as polykeyUtils from 'polykey/dist/utils'; -import CommandPolykey from '../CommandPolykey'; -import * as binUtils from '../utils'; -import * as binOptions from '../utils/options'; -import * as binProcessors from '../utils/processors'; -import * as errors from '../errors'; +} from 'polykey/PolykeyAgent.js'; +import type { DeepPartial } from 'polykey/types.js'; +import type { RecoveryCode } from 'polykey/keys/types.js'; +import childProcess from 'node:child_process'; +import process from 'node:process'; +import fs from 'node:fs'; +import config from 'polykey/config.js'; +import * as keysErrors from 'polykey/keys/errors.js'; +import * as polykeyEvents from 'polykey/events.js'; +import * as polykeyUtils from 'polykey/utils/index.js'; +import CommandPolykey from '../CommandPolykey.js'; +import * as binUtils from '../utils/index.js'; +import * as binOptions from '../utils/options.js'; +import * as binProcessors from '../utils/processors.js'; +import * as errors from '../errors.js'; class CommandStart extends CommandPolykey { constructor(...args: ConstructorParameters) { @@ -51,11 +51,9 @@ class CommandStart extends CommandPolykey { options.clientHost ?? config.defaultsUser.clientServiceHost; options.clientPort = options.clientPort ?? config.defaultsUser.clientServicePort; - const { default: PolykeyAgent } = await import( - 'polykey/dist/PolykeyAgent' - ); - const nodesUtils = await import('polykey/dist/nodes/utils'); - const keysUtils = await import('polykey/dist/keys/utils'); + const { default: PolykeyAgent } = await import('polykey/PolykeyAgent.js'); + const nodesUtils = await import('polykey/nodes/utils.js'); + const keysUtils = await import('polykey/keys/utils/index.js'); let password: string | undefined; if (options.fresh) { // If fresh, then get a new password diff --git a/src/agent/CommandStatus.ts b/src/agent/CommandStatus.ts index 3805e4c7..b77780c5 100644 --- a/src/agent/CommandStatus.ts +++ b/src/agent/CommandStatus.ts @@ -1,9 +1,9 @@ -import type PolykeyClient from 'polykey/dist/PolykeyClient'; -import type { StatusResultMessage } from 'polykey/dist/client/types'; -import CommandPolykey from '../CommandPolykey'; -import * as binUtils from '../utils'; -import * as binOptions from '../utils/options'; -import * as binProcessors from '../utils/processors'; +import type PolykeyClient from 'polykey/PolykeyClient.js'; +import type { StatusResultMessage } from 'polykey/client/types.js'; +import CommandPolykey from '../CommandPolykey.js'; +import * as binUtils from '../utils/index.js'; +import * as binOptions from '../utils/options.js'; +import * as binProcessors from '../utils/processors.js'; class CommandStatus extends CommandPolykey { constructor(...args: ConstructorParameters) { @@ -15,9 +15,9 @@ class CommandStatus extends CommandPolykey { this.addOption(binOptions.clientPort); this.action(async (options) => { const { default: PolykeyClient } = await import( - 'polykey/dist/PolykeyClient' + 'polykey/PolykeyClient.js' ); - const { getUnixtime } = await import('polykey/dist/utils/utils'); + const { getUnixtime } = await import('polykey/utils/utils.js'); const clientStatus = await binProcessors.processClientStatus( options.nodePath, options.nodeId, diff --git a/src/agent/CommandStop.ts b/src/agent/CommandStop.ts index cee40f90..f33a2627 100644 --- a/src/agent/CommandStop.ts +++ b/src/agent/CommandStop.ts @@ -1,9 +1,9 @@ -import type PolykeyClient from 'polykey/dist/PolykeyClient'; -import CommandPolykey from '../CommandPolykey'; -import * as binUtils from '../utils'; -import * as binOptions from '../utils/options'; -import * as binProcessors from '../utils/processors'; -import * as errors from '../errors'; +import type PolykeyClient from 'polykey/PolykeyClient.js'; +import CommandPolykey from '../CommandPolykey.js'; +import * as binUtils from '../utils/index.js'; +import * as binOptions from '../utils/options.js'; +import * as binProcessors from '../utils/processors.js'; +import * as errors from '../errors.js'; class CommandStop extends CommandPolykey { constructor(...args: ConstructorParameters) { @@ -15,7 +15,7 @@ class CommandStop extends CommandPolykey { this.addOption(binOptions.clientPort); this.action(async (options) => { const { default: PolykeyClient } = await import( - 'polykey/dist/PolykeyClient' + 'polykey/PolykeyClient.js' ); const clientStatus = await binProcessors.processClientStatus( options.nodePath, diff --git a/src/agent/CommandUnlock.ts b/src/agent/CommandUnlock.ts index c9ca19a8..0d2480bc 100644 --- a/src/agent/CommandUnlock.ts +++ b/src/agent/CommandUnlock.ts @@ -1,8 +1,8 @@ -import type PolykeyClient from 'polykey/dist/PolykeyClient'; -import CommandPolykey from '../CommandPolykey'; -import * as binUtils from '../utils'; -import * as binOptions from '../utils/options'; -import * as binProcessors from '../utils/processors'; +import type PolykeyClient from 'polykey/PolykeyClient.js'; +import CommandPolykey from '../CommandPolykey.js'; +import * as binUtils from '../utils/index.js'; +import * as binOptions from '../utils/options.js'; +import * as binProcessors from '../utils/processors.js'; class CommandUnlock extends CommandPolykey { constructor(...args: ConstructorParameters) { @@ -14,7 +14,7 @@ class CommandUnlock extends CommandPolykey { this.addOption(binOptions.clientPort); this.action(async (options) => { const { default: PolykeyClient } = await import( - 'polykey/dist/PolykeyClient' + 'polykey/PolykeyClient.js' ); const clientOptions = await binProcessors.processClientOptions( options.nodePath, diff --git a/src/agent/index.ts b/src/agent/index.ts index bb8b521a..0e130d76 100644 --- a/src/agent/index.ts +++ b/src/agent/index.ts @@ -1 +1 @@ -export { default } from './CommandAgent'; +export { default } from './CommandAgent.js'; diff --git a/src/audit/CommandAudit.ts b/src/audit/CommandAudit.ts index 77379c37..07073f62 100644 --- a/src/audit/CommandAudit.ts +++ b/src/audit/CommandAudit.ts @@ -1,8 +1,8 @@ -import type PolykeyClient from 'polykey/dist/PolykeyClient'; -import * as binOptions from '../utils/options'; -import * as binProcessors from '../utils/processors'; -import * as binUtils from '../utils'; -import CommandPolykey from '../CommandPolykey'; +import type PolykeyClient from 'polykey/PolykeyClient.js'; +import * as binOptions from '../utils/options.js'; +import * as binProcessors from '../utils/processors.js'; +import * as binUtils from '../utils/index.js'; +import CommandPolykey from '../CommandPolykey.js'; class CommandIdentities extends CommandPolykey { constructor(...args: ConstructorParameters) { @@ -20,9 +20,9 @@ class CommandIdentities extends CommandPolykey { this.addOption(binOptions.order); this.action(async (options) => { const { default: PolykeyClient } = await import( - 'polykey/dist/PolykeyClient' + 'polykey/PolykeyClient.js' ); - const auditUtils = await import('polykey/dist/audit/utils'); + const auditUtils = await import('polykey/audit/utils.js'); const clientOptions = await binProcessors.processClientOptions( options.nodePath, options.nodeId, diff --git a/src/audit/index.ts b/src/audit/index.ts index b08d99a0..3786eb9e 100644 --- a/src/audit/index.ts +++ b/src/audit/index.ts @@ -1 +1 @@ -export { default } from './CommandAudit'; +export { default } from './CommandAudit.js'; diff --git a/src/bootstrap/CommandBootstrap.ts b/src/bootstrap/CommandBootstrap.ts index c4125326..dfaaaa58 100644 --- a/src/bootstrap/CommandBootstrap.ts +++ b/src/bootstrap/CommandBootstrap.ts @@ -1,9 +1,9 @@ -import process from 'process'; -import fs from 'fs'; -import CommandPolykey from '../CommandPolykey'; -import * as binUtils from '../utils'; -import * as binOptions from '../utils/options'; -import * as binProcessors from '../utils/processors'; +import process from 'node:process'; +import fs from 'node:fs'; +import CommandPolykey from '../CommandPolykey.js'; +import * as binUtils from '../utils/index.js'; +import * as binOptions from '../utils/options.js'; +import * as binProcessors from '../utils/processors.js'; class CommandBootstrap extends CommandPolykey { constructor(...args: ConstructorParameters) { @@ -17,8 +17,8 @@ class CommandBootstrap extends CommandPolykey { this.addOption(binOptions.passwordOpsLimit); this.addOption(binOptions.passwordMemLimit); this.action(async (options) => { - const bootstrapUtils = await import('polykey/dist/bootstrap/utils'); - const keysUtils = await import('polykey/dist/keys/utils'); + const bootstrapUtils = await import('polykey/bootstrap/utils.js'); + const keysUtils = await import('polykey/keys/utils/index.js'); const password = await binProcessors.processNewPassword( options.passwordFile, this.fs, diff --git a/src/bootstrap/index.ts b/src/bootstrap/index.ts index 30c5ebcf..fc8df66f 100644 --- a/src/bootstrap/index.ts +++ b/src/bootstrap/index.ts @@ -1 +1 @@ -export { default } from './CommandBootstrap'; +export { default } from './CommandBootstrap.js'; diff --git a/src/errors.ts b/src/errors.ts index a3854fc0..75744c18 100644 --- a/src/errors.ts +++ b/src/errors.ts @@ -1,6 +1,6 @@ import type { Class } from '@matrixai/errors'; import { AbstractError } from '@matrixai/errors'; -import sysexits from 'polykey/dist/utils/sysexits'; +import sysexits from 'polykey/utils/sysexits.js'; /** * Root error for Polykey CLI. diff --git a/src/identities/CommandAllow.ts b/src/identities/CommandAllow.ts index b17edc51..a4eb25d4 100644 --- a/src/identities/CommandAllow.ts +++ b/src/identities/CommandAllow.ts @@ -1,10 +1,10 @@ -import type PolykeyClient from 'polykey/dist/PolykeyClient'; -import type { GestaltId } from 'polykey/dist/gestalts/types'; -import CommandPolykey from '../CommandPolykey'; -import * as binUtils from '../utils'; -import * as binOptions from '../utils/options'; -import * as binParsers from '../utils/parsers'; -import * as binProcessors from '../utils/processors'; +import type PolykeyClient from 'polykey/PolykeyClient.js'; +import type { GestaltId } from 'polykey/gestalts/types.js'; +import CommandPolykey from '../CommandPolykey.js'; +import * as binUtils from '../utils/index.js'; +import * as binOptions from '../utils/options.js'; +import * as binParsers from '../utils/parsers.js'; +import * as binProcessors from '../utils/processors.js'; class CommandAllow extends CommandPolykey { constructor(...args: ConstructorParameters) { @@ -26,10 +26,10 @@ class CommandAllow extends CommandPolykey { this.addOption(binOptions.clientPort); this.action(async (gestaltId: GestaltId, permission, options) => { const { default: PolykeyClient } = await import( - 'polykey/dist/PolykeyClient' + 'polykey/PolykeyClient.js' ); - const utils = await import('polykey/dist/utils'); - const nodesUtils = await import('polykey/dist/nodes/utils'); + const utils = await import('polykey/utils/index.js'); + const nodesUtils = await import('polykey/nodes/utils.js'); const clientOptions = await binProcessors.processClientOptions( options.nodePath, options.nodeId, diff --git a/src/identities/CommandAuthenticate.ts b/src/identities/CommandAuthenticate.ts index 15deef90..2f7c8d95 100644 --- a/src/identities/CommandAuthenticate.ts +++ b/src/identities/CommandAuthenticate.ts @@ -1,13 +1,12 @@ -import type PolykeyClient from 'polykey/dist/PolykeyClient'; -import type { ClientRPCResponseResult } from 'polykey/dist/client/types'; -import type { AuthProcessMessage } from 'polykey/dist/client/types'; +import type PolykeyClient from 'polykey/PolykeyClient.js'; +import type { ClientRPCResponseResult } from 'polykey/client/types.js'; +import type { AuthProcessMessage } from 'polykey/client/types.js'; import type { ReadableStream } from 'stream/web'; -import * as identitiesUtils from 'polykey/dist/identities/utils'; -import CommandPolykey from '../CommandPolykey'; -import * as binUtils from '../utils'; -import * as binOptions from '../utils/options'; -import * as binParsers from '../utils/parsers'; -import * as binProcessors from '../utils/processors'; +import CommandPolykey from '../CommandPolykey.js'; +import * as binUtils from '../utils/index.js'; +import * as binOptions from '../utils/options.js'; +import * as binParsers from '../utils/parsers.js'; +import * as binProcessors from '../utils/processors.js'; class CommandAuthenticate extends CommandPolykey { constructor(...args: ConstructorParameters) { @@ -24,9 +23,10 @@ class CommandAuthenticate extends CommandPolykey { this.addOption(binOptions.clientPort); this.action(async (providerId, options) => { const { default: PolykeyClient } = await import( - 'polykey/dist/PolykeyClient' + 'polykey/PolykeyClient.js' ); - const { never } = await import('polykey/dist/utils'); + const { never } = await import('polykey/utils/index.js'); + const identitiesUtils = await import('polykey/identities/utils.js'); const clientOptions = await binProcessors.processClientOptions( options.nodePath, options.nodeId, diff --git a/src/identities/CommandAuthenticated.ts b/src/identities/CommandAuthenticated.ts index e3d4999d..1133c6fb 100644 --- a/src/identities/CommandAuthenticated.ts +++ b/src/identities/CommandAuthenticated.ts @@ -1,9 +1,9 @@ -import type PolykeyClient from 'polykey/dist/PolykeyClient'; -import CommandPolykey from '../CommandPolykey'; -import * as binOptions from '../utils/options'; -import * as binUtils from '../utils'; -import * as binParsers from '../utils/parsers'; -import * as binProcessors from '../utils/processors'; +import type PolykeyClient from 'polykey/PolykeyClient.js'; +import CommandPolykey from '../CommandPolykey.js'; +import * as binOptions from '../utils/options.js'; +import * as binUtils from '../utils/index.js'; +import * as binParsers from '../utils/parsers.js'; +import * as binProcessors from '../utils/processors.js'; class CommandAuthenticated extends CommandPolykey { constructor(...args: ConstructorParameters) { @@ -20,7 +20,7 @@ class CommandAuthenticated extends CommandPolykey { this.addOption(binOptions.clientPort); this.action(async (options) => { const { default: PolykeyClient } = await import( - 'polykey/dist/PolykeyClient' + 'polykey/PolykeyClient.js' ); const clientOptions = await binProcessors.processClientOptions( options.nodePath, diff --git a/src/identities/CommandClaim.ts b/src/identities/CommandClaim.ts index 5f2679fc..20170bd0 100644 --- a/src/identities/CommandClaim.ts +++ b/src/identities/CommandClaim.ts @@ -1,10 +1,10 @@ -import type PolykeyClient from 'polykey/dist/PolykeyClient'; -import type { ProviderIdentityId } from 'polykey/dist/ids'; -import CommandPolykey from '../CommandPolykey'; -import * as binUtils from '../utils'; -import * as binOptions from '../utils/options'; -import * as binParsers from '../utils/parsers'; -import * as binProcessors from '../utils/processors'; +import type PolykeyClient from 'polykey/PolykeyClient.js'; +import type { ProviderIdentityId } from 'polykey/ids/index.js'; +import CommandPolykey from '../CommandPolykey.js'; +import * as binUtils from '../utils/index.js'; +import * as binOptions from '../utils/options.js'; +import * as binParsers from '../utils/parsers.js'; +import * as binProcessors from '../utils/processors.js'; class CommandClaim extends CommandPolykey { constructor(...args: ConstructorParameters) { @@ -22,7 +22,7 @@ class CommandClaim extends CommandPolykey { this.action( async (providerIdentityId: ['identity', ProviderIdentityId], options) => { const { default: PolykeyClient } = await import( - 'polykey/dist/PolykeyClient' + 'polykey/PolykeyClient.js' ); const clientOptions = await binProcessors.processClientOptions( options.nodePath, diff --git a/src/identities/CommandDisallow.ts b/src/identities/CommandDisallow.ts index cf0f88c0..8f218551 100644 --- a/src/identities/CommandDisallow.ts +++ b/src/identities/CommandDisallow.ts @@ -1,10 +1,10 @@ -import type PolykeyClient from 'polykey/dist/PolykeyClient'; -import type { GestaltId } from 'polykey/dist/gestalts/types'; -import CommandPolykey from '../CommandPolykey'; -import * as binOptions from '../utils/options'; -import * as binUtils from '../utils'; -import * as binParsers from '../utils/parsers'; -import * as binProcessors from '../utils/processors'; +import type PolykeyClient from 'polykey/PolykeyClient.js'; +import type { GestaltId } from 'polykey/gestalts/types.js'; +import CommandPolykey from '../CommandPolykey.js'; +import * as binOptions from '../utils/options.js'; +import * as binUtils from '../utils/index.js'; +import * as binParsers from '../utils/parsers.js'; +import * as binProcessors from '../utils/processors.js'; class CommandDisallow extends CommandPolykey { constructor(...args: ConstructorParameters) { @@ -26,10 +26,10 @@ class CommandDisallow extends CommandPolykey { this.addOption(binOptions.clientPort); this.action(async (gestaltId: GestaltId, permission, options) => { const { default: PolykeyClient } = await import( - 'polykey/dist/PolykeyClient' + 'polykey/PolykeyClient.js' ); - const utils = await import('polykey/dist/utils'); - const nodesUtils = await import('polykey/dist/nodes/utils'); + const utils = await import('polykey/utils/index.js'); + const nodesUtils = await import('polykey/nodes/utils.js'); const clientOptions = await binProcessors.processClientOptions( options.nodePath, options.nodeId, diff --git a/src/identities/CommandDiscover.ts b/src/identities/CommandDiscover.ts index e6d6f2b6..d9159e3c 100644 --- a/src/identities/CommandDiscover.ts +++ b/src/identities/CommandDiscover.ts @@ -1,14 +1,14 @@ -import type PolykeyClient from 'polykey/dist/PolykeyClient'; -import type { GestaltId } from 'polykey/dist/gestalts/types'; +import type PolykeyClient from 'polykey/PolykeyClient.js'; +import type { GestaltId } from 'polykey/gestalts/types.js'; import type { AuditEventDiscoveryVertex, AuditEventToAuditEventSerialized, -} from 'polykey/dist/audit/types'; -import CommandPolykey from '../CommandPolykey'; -import * as binOptions from '../utils/options'; -import * as binUtils from '../utils'; -import * as binParsers from '../utils/parsers'; -import * as binProcessors from '../utils/processors'; +} from 'polykey/audit/types.js'; +import CommandPolykey from '../CommandPolykey.js'; +import * as binOptions from '../utils/options.js'; +import * as binUtils from '../utils/index.js'; +import * as binParsers from '../utils/parsers.js'; +import * as binProcessors from '../utils/processors.js'; class CommandDiscover extends CommandPolykey { constructor(...args: ConstructorParameters) { @@ -26,11 +26,11 @@ class CommandDiscover extends CommandPolykey { this.addOption(binOptions.discoveryMonitor); this.action(async (gestaltId: GestaltId, options) => { const { default: PolykeyClient } = await import( - 'polykey/dist/PolykeyClient' + 'polykey/PolykeyClient.js' ); - const utils = await import('polykey/dist/utils'); - const nodesUtils = await import('polykey/dist/nodes/utils'); - const gestaltUtils = await import('polykey/dist/gestalts/utils'); + const utils = await import('polykey/utils/index.js'); + const nodesUtils = await import('polykey/nodes/utils.js'); + const gestaltUtils = await import('polykey/gestalts/utils.js'); const clientOptions = await binProcessors.processClientOptions( options.nodePath, options.nodeId, diff --git a/src/identities/CommandGet.ts b/src/identities/CommandGet.ts index 03b42539..6dadee8b 100644 --- a/src/identities/CommandGet.ts +++ b/src/identities/CommandGet.ts @@ -1,11 +1,11 @@ -import type PolykeyClient from 'polykey/dist/PolykeyClient'; -import type { GestaltId } from 'polykey/dist/gestalts/types'; -import type { GestaltMessage } from 'polykey/dist/client/types'; -import CommandPolykey from '../CommandPolykey'; -import * as binOptions from '../utils/options'; -import * as binUtils from '../utils'; -import * as binParsers from '../utils/parsers'; -import * as binProcessors from '../utils/processors'; +import type PolykeyClient from 'polykey/PolykeyClient.js'; +import type { GestaltId } from 'polykey/gestalts/types.js'; +import type { GestaltMessage } from 'polykey/client/types.js'; +import CommandPolykey from '../CommandPolykey.js'; +import * as binOptions from '../utils/options.js'; +import * as binUtils from '../utils/index.js'; +import * as binParsers from '../utils/parsers.js'; +import * as binProcessors from '../utils/processors.js'; class CommandGet extends CommandPolykey { constructor(...args: ConstructorParameters) { @@ -24,10 +24,10 @@ class CommandGet extends CommandPolykey { this.addOption(binOptions.clientPort); this.action(async (gestaltId: GestaltId, options) => { const { default: PolykeyClient } = await import( - 'polykey/dist/PolykeyClient' + 'polykey/PolykeyClient.js' ); - const utils = await import('polykey/dist/utils'); - const nodesUtils = await import('polykey/dist/nodes/utils'); + const utils = await import('polykey/utils/index.js'); + const nodesUtils = await import('polykey/nodes/utils.js'); const clientOptions = await binProcessors.processClientOptions( options.nodePath, options.nodeId, diff --git a/src/identities/CommandIdentities.ts b/src/identities/CommandIdentities.ts index f8a5b7a2..93b5da97 100644 --- a/src/identities/CommandIdentities.ts +++ b/src/identities/CommandIdentities.ts @@ -1,18 +1,18 @@ -import CommandAllow from './CommandAllow'; -import CommandAuthenticate from './CommandAuthenticate'; -import CommandAuthenticated from './CommandAuthenticated'; -import CommandClaim from './CommandClaim'; -import CommandDisallow from './CommandDisallow'; -import CommandDiscover from './CommandDiscover'; -import CommandGet from './CommandGet'; -import CommandList from './CommandList'; -import CommandPermissions from './CommandPermissions'; -import CommandQueue from './CommandQueue'; -import CommandSearch from './CommandSearch'; -import CommandTrust from './CommandTrust'; -import CommandUntrust from './CommandUntrust'; -import CommandInvite from './CommandInvite'; -import CommandPolykey from '../CommandPolykey'; +import CommandAllow from './CommandAllow.js'; +import CommandAuthenticate from './CommandAuthenticate.js'; +import CommandAuthenticated from './CommandAuthenticated.js'; +import CommandClaim from './CommandClaim.js'; +import CommandDisallow from './CommandDisallow.js'; +import CommandDiscover from './CommandDiscover.js'; +import CommandGet from './CommandGet.js'; +import CommandList from './CommandList.js'; +import CommandPermissions from './CommandPermissions.js'; +import CommandQueue from './CommandQueue.js'; +import CommandSearch from './CommandSearch.js'; +import CommandTrust from './CommandTrust.js'; +import CommandUntrust from './CommandUntrust.js'; +import CommandInvite from './CommandInvite.js'; +import CommandPolykey from '../CommandPolykey.js'; class CommandIdentities extends CommandPolykey { constructor(...args: ConstructorParameters) { diff --git a/src/identities/CommandInvite.ts b/src/identities/CommandInvite.ts index 0d40a6ed..2e387ddd 100644 --- a/src/identities/CommandInvite.ts +++ b/src/identities/CommandInvite.ts @@ -1,10 +1,10 @@ -import type PolykeyClient from 'polykey/dist/PolykeyClient'; -import type { NodeId } from 'polykey/dist/ids/types'; -import CommandPolykey from '../CommandPolykey'; -import * as binUtils from '../utils'; -import * as binOptions from '../utils/options'; -import * as binProcessors from '../utils/processors'; -import * as binParsers from '../utils/parsers'; +import type PolykeyClient from 'polykey/PolykeyClient.js'; +import type { NodeId } from 'polykey/ids/types.js'; +import CommandPolykey from '../CommandPolykey.js'; +import * as binUtils from '../utils/index.js'; +import * as binOptions from '../utils/options.js'; +import * as binProcessors from '../utils/processors.js'; +import * as binParsers from '../utils/parsers.js'; class CommandClaim extends CommandPolykey { constructor(...args: ConstructorParameters) { @@ -21,9 +21,9 @@ class CommandClaim extends CommandPolykey { this.addOption(binOptions.clientPort); this.action(async (nodeId: NodeId, options) => { const { default: PolykeyClient } = await import( - 'polykey/dist/PolykeyClient' + 'polykey/PolykeyClient.js' ); - const nodesUtils = await import('polykey/dist/nodes/utils'); + const nodesUtils = await import('polykey/nodes/utils.js'); const clientOptions = await binProcessors.processClientOptions( options.nodePath, options.nodeId, diff --git a/src/identities/CommandList.ts b/src/identities/CommandList.ts index 07214527..4d6adcf3 100644 --- a/src/identities/CommandList.ts +++ b/src/identities/CommandList.ts @@ -1,9 +1,9 @@ -import type PolykeyClient from 'polykey/dist/PolykeyClient'; -import type { GestaltMessage } from 'polykey/dist/client/types'; -import CommandPolykey from '../CommandPolykey'; -import * as binOptions from '../utils/options'; -import * as binUtils from '../utils'; -import * as binProcessors from '../utils/processors'; +import type PolykeyClient from 'polykey/PolykeyClient.js'; +import type { GestaltMessage } from 'polykey/client/types.js'; +import CommandPolykey from '../CommandPolykey.js'; +import * as binOptions from '../utils/options.js'; +import * as binUtils from '../utils/index.js'; +import * as binProcessors from '../utils/processors.js'; class CommandList extends CommandPolykey { constructor(...args: ConstructorParameters) { @@ -15,7 +15,7 @@ class CommandList extends CommandPolykey { this.addOption(binOptions.clientPort); this.action(async (options) => { const { default: PolykeyClient } = await import( - 'polykey/dist/PolykeyClient' + 'polykey/PolykeyClient.js' ); const clientOptions = await binProcessors.processClientOptions( options.nodePath, diff --git a/src/identities/CommandPermissions.ts b/src/identities/CommandPermissions.ts index 227396be..c6099f42 100644 --- a/src/identities/CommandPermissions.ts +++ b/src/identities/CommandPermissions.ts @@ -1,10 +1,10 @@ -import type PolykeyClient from 'polykey/dist/PolykeyClient'; -import type { GestaltId } from 'polykey/dist/gestalts/types'; -import CommandPolykey from '../CommandPolykey'; -import * as binOptions from '../utils/options'; -import * as binUtils from '../utils'; -import * as binParsers from '../utils/parsers'; -import * as binProcessors from '../utils/processors'; +import type PolykeyClient from 'polykey/PolykeyClient.js'; +import type { GestaltId } from 'polykey/gestalts/types.js'; +import CommandPolykey from '../CommandPolykey.js'; +import * as binOptions from '../utils/options.js'; +import * as binUtils from '../utils/index.js'; +import * as binParsers from '../utils/parsers.js'; +import * as binProcessors from '../utils/processors.js'; class CommandPermissions extends CommandPolykey { constructor(...args: ConstructorParameters) { @@ -21,10 +21,10 @@ class CommandPermissions extends CommandPolykey { this.addOption(binOptions.clientPort); this.action(async (gestaltId: GestaltId, options) => { const { default: PolykeyClient } = await import( - 'polykey/dist/PolykeyClient' + 'polykey/PolykeyClient.js' ); - const utils = await import('polykey/dist/utils'); - const nodesUtils = await import('polykey/dist/nodes/utils'); + const utils = await import('polykey/utils/index.js'); + const nodesUtils = await import('polykey/nodes/utils.js'); const clientOptions = await binProcessors.processClientOptions( options.nodePath, options.nodeId, diff --git a/src/identities/CommandQueue.ts b/src/identities/CommandQueue.ts index 3208dc76..29fde8cc 100644 --- a/src/identities/CommandQueue.ts +++ b/src/identities/CommandQueue.ts @@ -1,8 +1,8 @@ -import type PolykeyClient from 'polykey/dist/PolykeyClient'; -import CommandPolykey from '../CommandPolykey'; -import * as binOptions from '../utils/options'; -import * as binUtils from '../utils'; -import * as binProcessors from '../utils/processors'; +import type PolykeyClient from 'polykey/PolykeyClient.js'; +import CommandPolykey from '../CommandPolykey.js'; +import * as binOptions from '../utils/options.js'; +import * as binUtils from '../utils/index.js'; +import * as binProcessors from '../utils/processors.js'; class CommandQueue extends CommandPolykey { constructor(...args: ConstructorParameters) { @@ -14,7 +14,7 @@ class CommandQueue extends CommandPolykey { this.addOption(binOptions.clientPort); this.action(async (options) => { const { default: PolykeyClient } = await import( - 'polykey/dist/PolykeyClient' + 'polykey/PolykeyClient.js' ); const clientOptions = await binProcessors.processClientOptions( options.nodePath, diff --git a/src/identities/CommandSearch.ts b/src/identities/CommandSearch.ts index d447a57f..dc9578c1 100644 --- a/src/identities/CommandSearch.ts +++ b/src/identities/CommandSearch.ts @@ -1,13 +1,13 @@ -import type PolykeyClient from 'polykey/dist/PolykeyClient'; -import type { IdentityInfoMessage } from 'polykey/dist/client/types'; +import type PolykeyClient from 'polykey/PolykeyClient.js'; +import type { IdentityInfoMessage } from 'polykey/client/types.js'; import type { ReadableStream } from 'stream/web'; -import type { ClientRPCResponseResult } from 'polykey/dist/client/types'; +import type { ClientRPCResponseResult } from 'polykey/client/types.js'; import { TransformStream } from 'stream/web'; -import CommandPolykey from '../CommandPolykey'; -import * as binOptions from '../utils/options'; -import * as binUtils from '../utils'; -import * as binParsers from '../utils/parsers'; -import * as binProcessors from '../utils/processors'; +import CommandPolykey from '../CommandPolykey.js'; +import * as binOptions from '../utils/options.js'; +import * as binUtils from '../utils/index.js'; +import * as binParsers from '../utils/parsers.js'; +import * as binProcessors from '../utils/processors.js'; class CommandSearch extends CommandPolykey { constructor(...args: ConstructorParameters) { @@ -46,7 +46,7 @@ class CommandSearch extends CommandPolykey { this.addOption(binOptions.clientPort); this.action(async (searchTerms, options) => { const { default: PolykeyClient } = await import( - 'polykey/dist/PolykeyClient' + 'polykey/PolykeyClient.js' ); const clientOptions = await binProcessors.processClientOptions( options.nodePath, diff --git a/src/identities/CommandTrust.ts b/src/identities/CommandTrust.ts index 3d6d8705..9dbfbb33 100644 --- a/src/identities/CommandTrust.ts +++ b/src/identities/CommandTrust.ts @@ -1,10 +1,10 @@ -import type PolykeyClient from 'polykey/dist/PolykeyClient'; -import type { GestaltId } from 'polykey/dist/gestalts/types'; -import CommandPolykey from '../CommandPolykey'; -import * as binOptions from '../utils/options'; -import * as binUtils from '../utils'; -import * as binParsers from '../utils/parsers'; -import * as binProcessors from '../utils/processors'; +import type PolykeyClient from 'polykey/PolykeyClient.js'; +import type { GestaltId } from 'polykey/gestalts/types.js'; +import CommandPolykey from '../CommandPolykey.js'; +import * as binOptions from '../utils/options.js'; +import * as binUtils from '../utils/index.js'; +import * as binParsers from '../utils/parsers.js'; +import * as binProcessors from '../utils/processors.js'; class CommandTrust extends CommandPolykey { constructor(...args: ConstructorParameters) { @@ -21,10 +21,10 @@ class CommandTrust extends CommandPolykey { this.addOption(binOptions.clientPort); this.action(async (gestaltId: GestaltId, options) => { const { default: PolykeyClient } = await import( - 'polykey/dist/PolykeyClient' + 'polykey/PolykeyClient.js' ); - const utils = await import('polykey/dist/utils'); - const nodesUtils = await import('polykey/dist/nodes/utils'); + const utils = await import('polykey/utils/index.js'); + const nodesUtils = await import('polykey/nodes/utils.js'); const clientOptions = await binProcessors.processClientOptions( options.nodePath, options.nodeId, diff --git a/src/identities/CommandUntrust.ts b/src/identities/CommandUntrust.ts index 72984012..1986f70f 100644 --- a/src/identities/CommandUntrust.ts +++ b/src/identities/CommandUntrust.ts @@ -1,10 +1,10 @@ -import type PolykeyClient from 'polykey/dist/PolykeyClient'; -import type { GestaltId } from 'polykey/dist/gestalts/types'; -import CommandPolykey from '../CommandPolykey'; -import * as binOptions from '../utils/options'; -import * as binUtils from '../utils'; -import * as binParsers from '../utils/parsers'; -import * as binProcessors from '../utils/processors'; +import type PolykeyClient from 'polykey/PolykeyClient.js'; +import type { GestaltId } from 'polykey/gestalts/types.js'; +import CommandPolykey from '../CommandPolykey.js'; +import * as binOptions from '../utils/options.js'; +import * as binUtils from '../utils/index.js'; +import * as binParsers from '../utils/parsers.js'; +import * as binProcessors from '../utils/processors.js'; class CommandUntrust extends CommandPolykey { constructor(...args: ConstructorParameters) { @@ -21,10 +21,10 @@ class CommandUntrust extends CommandPolykey { this.addOption(binOptions.clientPort); this.action(async (gestaltId: GestaltId, options) => { const { default: PolykeyClient } = await import( - 'polykey/dist/PolykeyClient' + 'polykey/PolykeyClient.js' ); - const utils = await import('polykey/dist/utils'); - const nodesUtils = await import('polykey/dist/nodes/utils'); + const utils = await import('polykey/utils/index.js'); + const nodesUtils = await import('polykey/nodes/utils.js'); const clientOptions = await binProcessors.processClientOptions( options.nodePath, options.nodeId, diff --git a/src/identities/index.ts b/src/identities/index.ts index 71818327..4db8f89b 100644 --- a/src/identities/index.ts +++ b/src/identities/index.ts @@ -1 +1 @@ -export { default } from './CommandIdentities'; +export { default } from './CommandIdentities.js'; diff --git a/src/index.ts b/src/index.ts index a593c36c..1abfa045 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,13 +1,13 @@ -export { default as CommandPolykey } from './CommandPolykey'; -export { default as polykey } from './polykey'; -export * as agent from './agent'; -export * as bootstrap from './bootstrap'; -export * as identities from './identities'; -export * as keys from './keys'; -export * as nodes from './nodes'; -export * as notifications from './notifications'; -export * as secrets from './secrets'; -export * as vaults from './vaults'; -export * as utils from './utils'; -export * as errors from './errors'; -export * from './types'; +export { default as CommandPolykey } from './CommandPolykey.js'; +export { default as polykey } from './polykey.js'; +export * as agent from './agent/index.js'; +export * as bootstrap from './bootstrap/index.js'; +export * as identities from './identities/index.js'; +export * as keys from './keys/index.js'; +export * as nodes from './nodes/index.js'; +export * as notifications from './notifications/index.js'; +export * as secrets from './secrets/index.js'; +export * as vaults from './vaults/index.js'; +export * as utils from './utils/index.js'; +export * as errors from './errors.js'; +export * from './types.js'; diff --git a/src/keys/CommandCert.ts b/src/keys/CommandCert.ts index 11659553..902586c6 100644 --- a/src/keys/CommandCert.ts +++ b/src/keys/CommandCert.ts @@ -1,8 +1,8 @@ -import type PolykeyClient from 'polykey/dist/PolykeyClient'; -import CommandPolykey from '../CommandPolykey'; -import * as binUtils from '../utils'; -import * as binOptions from '../utils/options'; -import * as binProcessors from '../utils/processors'; +import type PolykeyClient from 'polykey/PolykeyClient.js'; +import CommandPolykey from '../CommandPolykey.js'; +import * as binUtils from '../utils/index.js'; +import * as binOptions from '../utils/options.js'; +import * as binProcessors from '../utils/processors.js'; class CommandCert extends CommandPolykey { constructor(...args: ConstructorParameters) { @@ -14,7 +14,7 @@ class CommandCert extends CommandPolykey { this.addOption(binOptions.clientPort); this.action(async (options) => { const { default: PolykeyClient } = await import( - 'polykey/dist/PolykeyClient' + 'polykey/PolykeyClient.js' ); const clientOptions = await binProcessors.processClientOptions( options.nodePath, diff --git a/src/keys/CommandCertchain.ts b/src/keys/CommandCertchain.ts index 23ac4775..96ddea61 100644 --- a/src/keys/CommandCertchain.ts +++ b/src/keys/CommandCertchain.ts @@ -1,8 +1,8 @@ -import type PolykeyClient from 'polykey/dist/PolykeyClient'; -import CommandPolykey from '../CommandPolykey'; -import * as binUtils from '../utils'; -import * as binOptions from '../utils/options'; -import * as binProcessors from '../utils/processors'; +import type PolykeyClient from 'polykey/PolykeyClient.js'; +import CommandPolykey from '../CommandPolykey.js'; +import * as binUtils from '../utils/index.js'; +import * as binOptions from '../utils/options.js'; +import * as binProcessors from '../utils/processors.js'; class CommandsCertchain extends CommandPolykey { constructor(...args: ConstructorParameters) { @@ -14,7 +14,7 @@ class CommandsCertchain extends CommandPolykey { this.addOption(binOptions.clientPort); this.action(async (options) => { const { default: PolykeyClient } = await import( - 'polykey/dist/PolykeyClient' + 'polykey/PolykeyClient.js' ); const clientOptions = await binProcessors.processClientOptions( options.nodePath, diff --git a/src/keys/CommandDecrypt.ts b/src/keys/CommandDecrypt.ts index 06e2716c..3c02524c 100644 --- a/src/keys/CommandDecrypt.ts +++ b/src/keys/CommandDecrypt.ts @@ -1,9 +1,9 @@ -import type PolykeyClient from 'polykey/dist/PolykeyClient'; -import * as errors from '../errors'; -import CommandPolykey from '../CommandPolykey'; -import * as binUtils from '../utils'; -import * as binOptions from '../utils/options'; -import * as binProcessors from '../utils/processors'; +import type PolykeyClient from 'polykey/PolykeyClient.js'; +import * as errors from '../errors.js'; +import CommandPolykey from '../CommandPolykey.js'; +import * as binUtils from '../utils/index.js'; +import * as binOptions from '../utils/options.js'; +import * as binProcessors from '../utils/processors.js'; class CommandDecrypt extends CommandPolykey { constructor(...args: ConstructorParameters) { @@ -19,7 +19,7 @@ class CommandDecrypt extends CommandPolykey { this.addOption(binOptions.clientPort); this.action(async (filePath, options) => { const { default: PolykeyClient } = await import( - 'polykey/dist/PolykeyClient' + 'polykey/PolykeyClient.js' ); const clientOptions = await binProcessors.processClientOptions( options.nodePath, diff --git a/src/keys/CommandEncrypt.ts b/src/keys/CommandEncrypt.ts index 7bb2d6bb..4ee431d8 100644 --- a/src/keys/CommandEncrypt.ts +++ b/src/keys/CommandEncrypt.ts @@ -1,10 +1,10 @@ -import type PolykeyClient from 'polykey/dist/PolykeyClient'; -import type { PublicKeyJWK } from 'polykey/dist/keys/types'; -import * as errors from '../errors'; -import CommandPolykey from '../CommandPolykey'; -import * as binUtils from '../utils'; -import * as binOptions from '../utils/options'; -import * as binProcessors from '../utils/processors'; +import type PolykeyClient from 'polykey/PolykeyClient.js'; +import type { PublicKeyJWK } from 'polykey/keys/types.js'; +import * as errors from '../errors.js'; +import CommandPolykey from '../CommandPolykey.js'; +import * as binUtils from '../utils/index.js'; +import * as binOptions from '../utils/options.js'; +import * as binProcessors from '../utils/processors.js'; class CommandEncypt extends CommandPolykey { constructor(...args: ConstructorParameters) { @@ -21,10 +21,10 @@ class CommandEncypt extends CommandPolykey { this.addOption(binOptions.clientPort); this.action(async (filePath, nodeIdOrJwkFile, options) => { const { default: PolykeyClient } = await import( - 'polykey/dist/PolykeyClient' + 'polykey/PolykeyClient.js' ); - const nodesUtils = await import('polykey/dist/nodes/utils'); - const keysUtils = await import('polykey/dist/keys/utils'); + const nodesUtils = await import('polykey/nodes/utils.js'); + const keysUtils = await import('polykey/keys/utils/index.js'); const clientOptions = await binProcessors.processClientOptions( options.nodePath, options.nodeId, diff --git a/src/keys/CommandKeys.ts b/src/keys/CommandKeys.ts index bf2530a0..fdf170e6 100644 --- a/src/keys/CommandKeys.ts +++ b/src/keys/CommandKeys.ts @@ -1,16 +1,16 @@ -import CommandCert from './CommandCert'; -import CommandCertchain from './CommandCertchain'; -import CommandDecrypt from './CommandDecrypt'; -import CommandEncrypt from './CommandEncrypt'; -import CommandPassword from './CommandPassword'; -import CommandRenew from './CommandRenew'; -import CommandReset from './CommandReset'; -import CommandPublic from './CommandPublic'; -import CommandPrivate from './CommandPrivate'; -import CommandKeypair from './CommandPair'; -import CommandSign from './CommandSign'; -import CommandVerify from './CommandVerify'; -import CommandPolykey from '../CommandPolykey'; +import CommandCert from './CommandCert.js'; +import CommandCertchain from './CommandCertchain.js'; +import CommandDecrypt from './CommandDecrypt.js'; +import CommandEncrypt from './CommandEncrypt.js'; +import CommandPassword from './CommandPassword.js'; +import CommandRenew from './CommandRenew.js'; +import CommandReset from './CommandReset.js'; +import CommandPublic from './CommandPublic.js'; +import CommandPrivate from './CommandPrivate.js'; +import CommandKeypair from './CommandPair.js'; +import CommandSign from './CommandSign.js'; +import CommandVerify from './CommandVerify.js'; +import CommandPolykey from '../CommandPolykey.js'; class CommandKeys extends CommandPolykey { constructor(...args: ConstructorParameters) { diff --git a/src/keys/CommandPair.ts b/src/keys/CommandPair.ts index 2c5dfb10..add4ff4a 100644 --- a/src/keys/CommandPair.ts +++ b/src/keys/CommandPair.ts @@ -1,8 +1,8 @@ -import type PolykeyClient from 'polykey/dist/PolykeyClient'; -import CommandPolykey from '../CommandPolykey'; -import * as binUtils from '../utils'; -import * as binOptions from '../utils/options'; -import * as binProcessors from '../utils/processors'; +import type PolykeyClient from 'polykey/PolykeyClient.js'; +import CommandPolykey from '../CommandPolykey.js'; +import * as binUtils from '../utils/index.js'; +import * as binOptions from '../utils/options.js'; +import * as binProcessors from '../utils/processors.js'; class CommandKeypair extends CommandPolykey { constructor(...args: ConstructorParameters) { @@ -17,7 +17,7 @@ class CommandKeypair extends CommandPolykey { this.addOption(binOptions.passwordNewFile); this.action(async (options) => { const { default: PolykeyClient } = await import( - 'polykey/dist/PolykeyClient' + 'polykey/PolykeyClient.js' ); const clientOptions = await binProcessors.processClientOptions( options.nodePath, diff --git a/src/keys/CommandPassword.ts b/src/keys/CommandPassword.ts index 70d035b1..48882f33 100644 --- a/src/keys/CommandPassword.ts +++ b/src/keys/CommandPassword.ts @@ -1,8 +1,8 @@ -import type PolykeyClient from 'polykey/dist/PolykeyClient'; -import CommandPolykey from '../CommandPolykey'; -import * as binUtils from '../utils'; -import * as binOptions from '../utils/options'; -import * as binProcessors from '../utils/processors'; +import type PolykeyClient from 'polykey/PolykeyClient.js'; +import CommandPolykey from '../CommandPolykey.js'; +import * as binUtils from '../utils/index.js'; +import * as binOptions from '../utils/options.js'; +import * as binProcessors from '../utils/processors.js'; class CommandPassword extends CommandPolykey { constructor(...args: ConstructorParameters) { @@ -15,7 +15,7 @@ class CommandPassword extends CommandPolykey { this.addOption(binOptions.passwordNewFile); this.action(async (options) => { const { default: PolykeyClient } = await import( - 'polykey/dist/PolykeyClient' + 'polykey/PolykeyClient.js' ); const clientOptions = await binProcessors.processClientOptions( options.nodePath, diff --git a/src/keys/CommandPrivate.ts b/src/keys/CommandPrivate.ts index e873bb51..4c4fbd9c 100644 --- a/src/keys/CommandPrivate.ts +++ b/src/keys/CommandPrivate.ts @@ -1,8 +1,8 @@ -import type PolykeyClient from 'polykey/dist/PolykeyClient'; -import CommandPolykey from '../CommandPolykey'; -import * as binUtils from '../utils'; -import * as binOptions from '../utils/options'; -import * as binProcessors from '../utils/processors'; +import type PolykeyClient from 'polykey/PolykeyClient.js'; +import CommandPolykey from '../CommandPolykey.js'; +import * as binUtils from '../utils/index.js'; +import * as binOptions from '../utils/options.js'; +import * as binProcessors from '../utils/processors.js'; class CommandPrivate extends CommandPolykey { constructor(...args: ConstructorParameters) { @@ -15,7 +15,7 @@ class CommandPrivate extends CommandPolykey { this.addOption(binOptions.passwordNewFile); this.action(async (options) => { const { default: PolykeyClient } = await import( - 'polykey/dist/PolykeyClient' + 'polykey/PolykeyClient.js' ); const clientOptions = await binProcessors.processClientOptions( options.nodePath, diff --git a/src/keys/CommandPublic.ts b/src/keys/CommandPublic.ts index ae6e98d1..68f6c171 100644 --- a/src/keys/CommandPublic.ts +++ b/src/keys/CommandPublic.ts @@ -1,8 +1,8 @@ -import type PolykeyClient from 'polykey/dist/PolykeyClient'; -import CommandPolykey from '../CommandPolykey'; -import * as binUtils from '../utils'; -import * as binOptions from '../utils/options'; -import * as binProcessors from '../utils/processors'; +import type PolykeyClient from 'polykey/PolykeyClient.js'; +import CommandPolykey from '../CommandPolykey.js'; +import * as binUtils from '../utils/index.js'; +import * as binOptions from '../utils/options.js'; +import * as binProcessors from '../utils/processors.js'; class CommandPublic extends CommandPolykey { constructor(...args: ConstructorParameters) { @@ -14,7 +14,7 @@ class CommandPublic extends CommandPolykey { this.addOption(binOptions.clientPort); this.action(async (options) => { const { default: PolykeyClient } = await import( - 'polykey/dist/PolykeyClient' + 'polykey/PolykeyClient.js' ); const clientOptions = await binProcessors.processClientOptions( options.nodePath, diff --git a/src/keys/CommandRenew.ts b/src/keys/CommandRenew.ts index 06ef1033..9903e8e5 100644 --- a/src/keys/CommandRenew.ts +++ b/src/keys/CommandRenew.ts @@ -1,8 +1,8 @@ -import type PolykeyClient from 'polykey/dist/PolykeyClient'; -import CommandPolykey from '../CommandPolykey'; -import * as binUtils from '../utils'; -import * as binOptions from '../utils/options'; -import * as binProcessors from '../utils/processors'; +import type PolykeyClient from 'polykey/PolykeyClient.js'; +import CommandPolykey from '../CommandPolykey.js'; +import * as binUtils from '../utils/index.js'; +import * as binOptions from '../utils/options.js'; +import * as binProcessors from '../utils/processors.js'; class CommandRenew extends CommandPolykey { constructor(...args: ConstructorParameters) { @@ -15,7 +15,7 @@ class CommandRenew extends CommandPolykey { this.addOption(binOptions.passwordNewFile); this.action(async (options) => { const { default: PolykeyClient } = await import( - 'polykey/dist/PolykeyClient' + 'polykey/PolykeyClient.js' ); const clientOptions = await binProcessors.processClientOptions( options.nodePath, diff --git a/src/keys/CommandReset.ts b/src/keys/CommandReset.ts index 62b4b722..79b8272c 100644 --- a/src/keys/CommandReset.ts +++ b/src/keys/CommandReset.ts @@ -1,8 +1,8 @@ -import type PolykeyClient from 'polykey/dist/PolykeyClient'; -import CommandPolykey from '../CommandPolykey'; -import * as binUtils from '../utils'; -import * as binOptions from '../utils/options'; -import * as binProcessors from '../utils/processors'; +import type PolykeyClient from 'polykey/PolykeyClient.js'; +import CommandPolykey from '../CommandPolykey.js'; +import * as binUtils from '../utils/index.js'; +import * as binOptions from '../utils/options.js'; +import * as binProcessors from '../utils/processors.js'; class CommandReset extends CommandPolykey { constructor(...args: ConstructorParameters) { @@ -15,7 +15,7 @@ class CommandReset extends CommandPolykey { this.addOption(binOptions.passwordNewFile); this.action(async (options) => { const { default: PolykeyClient } = await import( - 'polykey/dist/PolykeyClient' + 'polykey/PolykeyClient.js' ); const clientOptions = await binProcessors.processClientOptions( options.nodePath, diff --git a/src/keys/CommandSign.ts b/src/keys/CommandSign.ts index fbdd7c60..98f27ab0 100644 --- a/src/keys/CommandSign.ts +++ b/src/keys/CommandSign.ts @@ -1,9 +1,9 @@ -import type PolykeyClient from 'polykey/dist/PolykeyClient'; -import * as errors from '../errors'; -import CommandPolykey from '../CommandPolykey'; -import * as binUtils from '../utils'; -import * as binOptions from '../utils/options'; -import * as binProcessors from '../utils/processors'; +import type PolykeyClient from 'polykey/PolykeyClient.js'; +import * as errors from '../errors.js'; +import CommandPolykey from '../CommandPolykey.js'; +import * as binUtils from '../utils/index.js'; +import * as binOptions from '../utils/options.js'; +import * as binProcessors from '../utils/processors.js'; class CommandSign extends CommandPolykey { constructor(...args: ConstructorParameters) { @@ -19,7 +19,7 @@ class CommandSign extends CommandPolykey { this.addOption(binOptions.clientPort); this.action(async (filePath, options) => { const { default: PolykeyClient } = await import( - 'polykey/dist/PolykeyClient' + 'polykey/PolykeyClient.js' ); const clientOptions = await binProcessors.processClientOptions( options.nodePath, diff --git a/src/keys/CommandVerify.ts b/src/keys/CommandVerify.ts index 4703696d..57a65876 100644 --- a/src/keys/CommandVerify.ts +++ b/src/keys/CommandVerify.ts @@ -1,10 +1,10 @@ -import type PolykeyClient from 'polykey/dist/PolykeyClient'; -import type { PublicKeyJWK } from 'polykey/dist/keys/types'; -import * as errors from '../errors'; -import CommandPolykey from '../CommandPolykey'; -import * as binUtils from '../utils'; -import * as binOptions from '../utils/options'; -import * as binProcessors from '../utils/processors'; +import type PolykeyClient from 'polykey/PolykeyClient.js'; +import type { PublicKeyJWK } from 'polykey/keys/types.js'; +import * as errors from '../errors.js'; +import CommandPolykey from '../CommandPolykey.js'; +import * as binUtils from '../utils/index.js'; +import * as binOptions from '../utils/options.js'; +import * as binProcessors from '../utils/processors.js'; class CommandVerify extends CommandPolykey { constructor(...args: ConstructorParameters) { @@ -25,10 +25,10 @@ class CommandVerify extends CommandPolykey { this.addOption(binOptions.clientPort); this.action(async (filePath, signaturePath, nodeIdOrJwkFile, options) => { const { default: PolykeyClient } = await import( - 'polykey/dist/PolykeyClient' + 'polykey/PolykeyClient.js' ); - const nodesUtils = await import('polykey/dist/nodes/utils'); - const keysUtils = await import('polykey/dist/keys/utils'); + const nodesUtils = await import('polykey/nodes/utils.js'); + const keysUtils = await import('polykey/keys/utils/index.js'); const clientOptions = await binProcessors.processClientOptions( options.nodePath, options.nodeId, diff --git a/src/keys/index.ts b/src/keys/index.ts index 11736eb1..f873fbc9 100644 --- a/src/keys/index.ts +++ b/src/keys/index.ts @@ -1 +1 @@ -export { default } from './CommandKeys'; +export { default } from './CommandKeys.js'; diff --git a/src/nodes/CommandAdd.ts b/src/nodes/CommandAdd.ts index 116af9fb..e7702948 100644 --- a/src/nodes/CommandAdd.ts +++ b/src/nodes/CommandAdd.ts @@ -1,11 +1,11 @@ -import type PolykeyClient from 'polykey/dist/PolykeyClient'; -import type { NodeId } from 'polykey/dist/ids/types'; -import type { Host, Port } from 'polykey/dist/network/types'; -import CommandPolykey from '../CommandPolykey'; -import * as binUtils from '../utils/utils'; -import * as binProcessors from '../utils/processors'; -import * as binOptions from '../utils/options'; -import * as binParsers from '../utils/parsers'; +import type PolykeyClient from 'polykey/PolykeyClient.js'; +import type { NodeId } from 'polykey/ids/types.js'; +import type { Host, Port } from 'polykey/network/types.js'; +import CommandPolykey from '../CommandPolykey.js'; +import * as binUtils from '../utils/utils.js'; +import * as binProcessors from '../utils/processors.js'; +import * as binOptions from '../utils/options.js'; +import * as binParsers from '../utils/parsers.js'; class CommandAdd extends CommandPolykey { constructor(...args: ConstructorParameters) { @@ -22,9 +22,9 @@ class CommandAdd extends CommandPolykey { this.addOption(binOptions.noPing); this.action(async (nodeId: NodeId, host: Host, port: Port, options) => { const { default: PolykeyClient } = await import( - 'polykey/dist/PolykeyClient' + 'polykey/PolykeyClient.js' ); - const nodesUtils = await import('polykey/dist/nodes/utils'); + const nodesUtils = await import('polykey/nodes/utils.js'); const clientOptions = await binProcessors.processClientOptions( options.nodePath, options.nodeId, diff --git a/src/nodes/CommandClaim.ts b/src/nodes/CommandClaim.ts index d5e8c7bf..5328d28a 100644 --- a/src/nodes/CommandClaim.ts +++ b/src/nodes/CommandClaim.ts @@ -1,10 +1,10 @@ -import type PolykeyClient from 'polykey/dist/PolykeyClient'; -import type { NodeId } from 'polykey/dist/ids/types'; -import CommandPolykey from '../CommandPolykey'; -import * as binUtils from '../utils'; -import * as binOptions from '../utils/options'; -import * as binProcessors from '../utils/processors'; -import * as binParsers from '../utils/parsers'; +import type PolykeyClient from 'polykey/PolykeyClient.js'; +import type { NodeId } from 'polykey/ids/types.js'; +import CommandPolykey from '../CommandPolykey.js'; +import * as binUtils from '../utils/index.js'; +import * as binOptions from '../utils/options.js'; +import * as binProcessors from '../utils/processors.js'; +import * as binParsers from '../utils/parsers.js'; class CommandClaim extends CommandPolykey { constructor(...args: ConstructorParameters) { @@ -25,9 +25,9 @@ class CommandClaim extends CommandPolykey { this.addOption(binOptions.clientPort); this.action(async (nodeId: NodeId, options) => { const { default: PolykeyClient } = await import( - 'polykey/dist/PolykeyClient' + 'polykey/PolykeyClient.js' ); - const nodesUtils = await import('polykey/dist/nodes/utils'); + const nodesUtils = await import('polykey/nodes/utils.js'); const clientOptions = await binProcessors.processClientOptions( options.nodePath, options.nodeId, diff --git a/src/nodes/CommandConnections.ts b/src/nodes/CommandConnections.ts index 5c3155f3..d189346a 100644 --- a/src/nodes/CommandConnections.ts +++ b/src/nodes/CommandConnections.ts @@ -1,8 +1,8 @@ -import type PolykeyClient from 'polykey/dist/PolykeyClient'; -import type { NodeConnectionMessage } from 'polykey/dist/client/types'; -import CommandPolykey from '../CommandPolykey'; -import * as binUtils from '../utils/utils'; -import * as binProcessors from '../utils/processors'; +import type PolykeyClient from 'polykey/PolykeyClient.js'; +import type { NodeConnectionMessage } from 'polykey/client/types.js'; +import CommandPolykey from '../CommandPolykey.js'; +import * as binUtils from '../utils/utils.js'; +import * as binProcessors from '../utils/processors.js'; class CommandAdd extends CommandPolykey { constructor(...args: ConstructorParameters) { @@ -11,7 +11,7 @@ class CommandAdd extends CommandPolykey { this.description('list all active node connections'); this.action(async (options) => { const { default: PolykeyClient } = await import( - 'polykey/dist/PolykeyClient' + 'polykey/PolykeyClient.js' ); const clientOptions = await binProcessors.processClientOptions( options.nodePath, diff --git a/src/nodes/CommandFind.ts b/src/nodes/CommandFind.ts index 1af6a050..491289cd 100644 --- a/src/nodes/CommandFind.ts +++ b/src/nodes/CommandFind.ts @@ -1,12 +1,12 @@ -import type PolykeyClient from 'polykey/dist/PolykeyClient'; -import type { NodeId } from 'polykey/dist/ids/types'; -import type { Host, Hostname, Port } from 'polykey/dist/network/types'; -import CommandPolykey from '../CommandPolykey'; -import * as binUtils from '../utils'; -import * as binOptions from '../utils/options'; -import * as binProcessors from '../utils/processors'; -import * as binParsers from '../utils/parsers'; -import * as errors from '../errors'; +import type PolykeyClient from 'polykey/PolykeyClient.js'; +import type { NodeId } from 'polykey/ids/types.js'; +import type { Host, Hostname, Port } from 'polykey/network/types.js'; +import CommandPolykey from '../CommandPolykey.js'; +import * as binUtils from '../utils/index.js'; +import * as binOptions from '../utils/options.js'; +import * as binProcessors from '../utils/processors.js'; +import * as binParsers from '../utils/parsers.js'; +import * as errors from '../errors.js'; class CommandFind extends CommandPolykey { constructor(...args: ConstructorParameters) { @@ -19,11 +19,11 @@ class CommandFind extends CommandPolykey { this.addOption(binOptions.clientPort); this.action(async (nodeId: NodeId, options) => { const { default: PolykeyClient } = await import( - 'polykey/dist/PolykeyClient' + 'polykey/PolykeyClient.js' ); - const nodesUtils = await import('polykey/dist/nodes/utils'); - const networkUtils = await import('polykey/dist/network/utils'); - const nodesErrors = await import('polykey/dist/nodes/errors'); + const nodesUtils = await import('polykey/nodes/utils.js'); + const networkUtils = await import('polykey/network/utils.js'); + const nodesErrors = await import('polykey/nodes/errors.js'); const clientOptions = await binProcessors.processClientOptions( options.nodePath, options.nodeId, diff --git a/src/nodes/CommandGetAll.ts b/src/nodes/CommandGetAll.ts index 1a7f43af..6b031a7b 100644 --- a/src/nodes/CommandGetAll.ts +++ b/src/nodes/CommandGetAll.ts @@ -1,9 +1,9 @@ -import type PolykeyClient from 'polykey/dist/PolykeyClient'; -import type { NodesGetMessage } from 'polykey/dist/client/types'; -import CommandPolykey from '../CommandPolykey'; -import * as binUtils from '../utils'; -import * as binOptions from '../utils/options'; -import * as binProcessors from '../utils/processors'; +import type PolykeyClient from 'polykey/PolykeyClient.js'; +import type { NodesGetMessage } from 'polykey/client/types.js'; +import CommandPolykey from '../CommandPolykey.js'; +import * as binUtils from '../utils/index.js'; +import * as binOptions from '../utils/options.js'; +import * as binProcessors from '../utils/processors.js'; class CommandGetAll extends CommandPolykey { constructor(...args: ConstructorParameters) { @@ -15,7 +15,7 @@ class CommandGetAll extends CommandPolykey { this.addOption(binOptions.clientPort); this.action(async (options) => { const { default: PolykeyClient } = await import( - 'polykey/dist/PolykeyClient' + 'polykey/PolykeyClient.js' ); const clientOptions = await binProcessors.processClientOptions( options.nodePath, diff --git a/src/nodes/CommandNodes.ts b/src/nodes/CommandNodes.ts index 145aeee3..0c3eff4e 100644 --- a/src/nodes/CommandNodes.ts +++ b/src/nodes/CommandNodes.ts @@ -1,10 +1,10 @@ -import CommandAdd from './CommandAdd'; -import CommandClaim from './CommandClaim'; -import CommandFind from './CommandFind'; -import CommandPing from './CommandPing'; -import CommandGetAll from './CommandGetAll'; -import CommandConnections from './CommandConnections'; -import CommandPolykey from '../CommandPolykey'; +import CommandAdd from './CommandAdd.js'; +import CommandClaim from './CommandClaim.js'; +import CommandFind from './CommandFind.js'; +import CommandPing from './CommandPing.js'; +import CommandGetAll from './CommandGetAll.js'; +import CommandConnections from './CommandConnections.js'; +import CommandPolykey from '../CommandPolykey.js'; class CommandNodes extends CommandPolykey { constructor(...args: ConstructorParameters) { diff --git a/src/nodes/CommandPing.ts b/src/nodes/CommandPing.ts index 88fee3ce..357a3b71 100644 --- a/src/nodes/CommandPing.ts +++ b/src/nodes/CommandPing.ts @@ -1,11 +1,11 @@ -import type PolykeyClient from 'polykey/dist/PolykeyClient'; -import type { NodeId } from 'polykey/dist/ids/types'; -import CommandPolykey from '../CommandPolykey'; -import * as binUtils from '../utils'; -import * as binOptions from '../utils/options'; -import * as binProcessors from '../utils/processors'; -import * as binParsers from '../utils/parsers'; -import * as errors from '../errors'; +import type PolykeyClient from 'polykey/PolykeyClient.js'; +import type { NodeId } from 'polykey/ids/types.js'; +import CommandPolykey from '../CommandPolykey.js'; +import * as binUtils from '../utils/index.js'; +import * as binOptions from '../utils/options.js'; +import * as binProcessors from '../utils/processors.js'; +import * as binParsers from '../utils/parsers.js'; +import * as errors from '../errors.js'; class CommandPing extends CommandPolykey { constructor(...args: ConstructorParameters) { @@ -18,9 +18,9 @@ class CommandPing extends CommandPolykey { this.addOption(binOptions.clientPort); this.action(async (nodeId: NodeId, options) => { const { default: PolykeyClient } = await import( - 'polykey/dist/PolykeyClient' + 'polykey/PolykeyClient.js' ); - const nodesUtils = await import('polykey/dist/nodes/utils'); + const nodesUtils = await import('polykey/nodes/utils.js'); const clientOptions = await binProcessors.processClientOptions( options.nodePath, options.nodeId, diff --git a/src/nodes/index.ts b/src/nodes/index.ts index b604b303..868d0ab1 100644 --- a/src/nodes/index.ts +++ b/src/nodes/index.ts @@ -1 +1 @@ -export { default } from './CommandNodes'; +export { default } from './CommandNodes.js'; diff --git a/src/notifications/CommandNotifications.ts b/src/notifications/CommandNotifications.ts index 2a88fe6e..b096b136 100644 --- a/src/notifications/CommandNotifications.ts +++ b/src/notifications/CommandNotifications.ts @@ -1,7 +1,7 @@ -import CommandInbox from './inbox'; -import CommandOutbox from './outbox'; -import CommandSend from './CommandSend'; -import CommandPolykey from '../CommandPolykey'; +import CommandInbox from './inbox/index.js'; +import CommandOutbox from './outbox/index.js'; +import CommandSend from './CommandSend.js'; +import CommandPolykey from '../CommandPolykey.js'; class CommandNotifications extends CommandPolykey { constructor(...args: ConstructorParameters) { diff --git a/src/notifications/CommandSend.ts b/src/notifications/CommandSend.ts index ec001af2..7bd198d5 100644 --- a/src/notifications/CommandSend.ts +++ b/src/notifications/CommandSend.ts @@ -1,10 +1,10 @@ -import type PolykeyClient from 'polykey/dist/PolykeyClient'; -import type { NodeId } from 'polykey/dist/ids/types'; -import CommandPolykey from '../CommandPolykey'; -import * as binUtils from '../utils'; -import * as binOptions from '../utils/options'; -import * as binProcessors from '../utils/processors'; -import * as binParsers from '../utils/parsers'; +import type PolykeyClient from 'polykey/PolykeyClient.js'; +import type { NodeId } from 'polykey/ids/types.js'; +import CommandPolykey from '../CommandPolykey.js'; +import * as binUtils from '../utils/index.js'; +import * as binOptions from '../utils/options.js'; +import * as binProcessors from '../utils/processors.js'; +import * as binParsers from '../utils/parsers.js'; class CommandSend extends CommandPolykey { constructor(...args: ConstructorParameters) { @@ -26,9 +26,9 @@ class CommandSend extends CommandPolykey { this.addOption(binOptions.clientPort); this.action(async (nodeId: NodeId, message, options) => { const { default: PolykeyClient } = await import( - 'polykey/dist/PolykeyClient' + 'polykey/PolykeyClient.js' ); - const nodesUtils = await import('polykey/dist/nodes/utils'); + const nodesUtils = await import('polykey/nodes/utils.js'); const clientOptions = await binProcessors.processClientOptions( options.nodePath, options.nodeId, diff --git a/src/notifications/inbox/CommandClear.ts b/src/notifications/inbox/CommandClear.ts index 1f8fc153..0ab27614 100644 --- a/src/notifications/inbox/CommandClear.ts +++ b/src/notifications/inbox/CommandClear.ts @@ -1,8 +1,8 @@ -import type PolykeyClient from 'polykey/dist/PolykeyClient'; -import CommandPolykey from '../../CommandPolykey'; -import * as binUtils from '../../utils'; -import * as binOptions from '../../utils/options'; -import * as binProcessors from '../../utils/processors'; +import type PolykeyClient from 'polykey/PolykeyClient.js'; +import CommandPolykey from '../../CommandPolykey.js'; +import * as binUtils from '../../utils/index.js'; +import * as binOptions from '../../utils/options.js'; +import * as binProcessors from '../../utils/processors.js'; class CommandClear extends CommandPolykey { constructor(...args: ConstructorParameters) { @@ -14,7 +14,7 @@ class CommandClear extends CommandPolykey { this.addOption(binOptions.clientPort); this.action(async (options) => { const { default: PolykeyClient } = await import( - 'polykey/dist/PolykeyClient' + 'polykey/PolykeyClient.js' ); const clientOptions = await binProcessors.processClientOptions( options.nodePath, diff --git a/src/notifications/inbox/CommandRead.ts b/src/notifications/inbox/CommandRead.ts index 68d62a70..77cf08e1 100644 --- a/src/notifications/inbox/CommandRead.ts +++ b/src/notifications/inbox/CommandRead.ts @@ -1,9 +1,9 @@ -import type { Notification } from 'polykey/dist/notifications/types'; -import type PolykeyClient from 'polykey/dist/PolykeyClient'; -import CommandPolykey from '../../CommandPolykey'; -import * as binUtils from '../../utils'; -import * as binOptions from '../../utils/options'; -import * as binProcessors from '../../utils/processors'; +import type { Notification } from 'polykey/notifications/types.js'; +import type PolykeyClient from 'polykey/PolykeyClient.js'; +import CommandPolykey from '../../CommandPolykey.js'; +import * as binUtils from '../../utils/index.js'; +import * as binOptions from '../../utils/options.js'; +import * as binProcessors from '../../utils/processors.js'; class CommandRead extends CommandPolykey { constructor(...args: ConstructorParameters) { @@ -28,11 +28,9 @@ class CommandRead extends CommandPolykey { this.addOption(binOptions.clientPort); this.action(async (options) => { const { default: PolykeyClient } = await import( - 'polykey/dist/PolykeyClient' - ); - const notificationsUtils = await import( - 'polykey/dist/notifications/utils' + 'polykey/PolykeyClient.js' ); + const notificationsUtils = await import('polykey/notifications/utils.js'); const clientOptions = await binProcessors.processClientOptions( options.nodePath, options.nodeId, diff --git a/src/notifications/inbox/CommandRemove.ts b/src/notifications/inbox/CommandRemove.ts index c189088e..fc68acff 100644 --- a/src/notifications/inbox/CommandRemove.ts +++ b/src/notifications/inbox/CommandRemove.ts @@ -1,10 +1,10 @@ -import type PolykeyClient from 'polykey/dist/PolykeyClient'; -import * as notificationsUtils from 'polykey/dist/notifications/utils'; -import CommandPolykey from '../../CommandPolykey'; -import * as binUtils from '../../utils'; -import * as binOptions from '../../utils/options'; -import * as binProcessors from '../../utils/processors'; -import * as binParsers from '../../utils/parsers'; +import type PolykeyClient from 'polykey/PolykeyClient.js'; +import * as notificationsUtils from 'polykey/notifications/utils.js'; +import CommandPolykey from '../../CommandPolykey.js'; +import * as binUtils from '../../utils/index.js'; +import * as binOptions from '../../utils/options.js'; +import * as binProcessors from '../../utils/processors.js'; +import * as binParsers from '../../utils/parsers.js'; class CommandRemove extends CommandPolykey { constructor(...args: ConstructorParameters) { @@ -21,7 +21,7 @@ class CommandRemove extends CommandPolykey { this.addOption(binOptions.clientPort); this.action(async (notificationId, options) => { const { default: PolykeyClient } = await import( - 'polykey/dist/PolykeyClient' + 'polykey/PolykeyClient.js' ); const clientOptions = await binProcessors.processClientOptions( options.nodePath, diff --git a/src/notifications/inbox/index.ts b/src/notifications/inbox/index.ts index 3783ebf4..62ecbea9 100644 --- a/src/notifications/inbox/index.ts +++ b/src/notifications/inbox/index.ts @@ -1,7 +1,7 @@ -import CommandClear from './CommandClear'; -import CommandRead from './CommandRead'; -import CommandRemove from './CommandRemove'; -import CommandPolykey from '../../CommandPolykey'; +import CommandClear from './CommandClear.js'; +import CommandRead from './CommandRead.js'; +import CommandRemove from './CommandRemove.js'; +import CommandPolykey from '../../CommandPolykey.js'; class CommandInbox extends CommandPolykey { constructor(...args: ConstructorParameters) { diff --git a/src/notifications/index.ts b/src/notifications/index.ts index 67ef993d..2e369b12 100644 --- a/src/notifications/index.ts +++ b/src/notifications/index.ts @@ -1 +1 @@ -export { default } from './CommandNotifications'; +export { default } from './CommandNotifications.js'; diff --git a/src/notifications/outbox/CommandClear.ts b/src/notifications/outbox/CommandClear.ts index 28d5ac37..b0b5047f 100644 --- a/src/notifications/outbox/CommandClear.ts +++ b/src/notifications/outbox/CommandClear.ts @@ -1,8 +1,8 @@ -import type PolykeyClient from 'polykey/dist/PolykeyClient'; -import CommandPolykey from '../../CommandPolykey'; -import * as binUtils from '../../utils'; -import * as binOptions from '../../utils/options'; -import * as binProcessors from '../../utils/processors'; +import type PolykeyClient from 'polykey/PolykeyClient.js'; +import CommandPolykey from '../../CommandPolykey.js'; +import * as binUtils from '../../utils/index.js'; +import * as binOptions from '../../utils/options.js'; +import * as binProcessors from '../../utils/processors.js'; class CommandClear extends CommandPolykey { constructor(...args: ConstructorParameters) { @@ -14,7 +14,7 @@ class CommandClear extends CommandPolykey { this.addOption(binOptions.clientPort); this.action(async (options) => { const { default: PolykeyClient } = await import( - 'polykey/dist/PolykeyClient' + 'polykey/PolykeyClient.js' ); const clientOptions = await binProcessors.processClientOptions( options.nodePath, diff --git a/src/notifications/outbox/CommandRead.ts b/src/notifications/outbox/CommandRead.ts index fbabf65a..e107b042 100644 --- a/src/notifications/outbox/CommandRead.ts +++ b/src/notifications/outbox/CommandRead.ts @@ -1,10 +1,10 @@ -import type { Notification } from 'polykey/dist/notifications/types'; -import type PolykeyClient from 'polykey/dist/PolykeyClient'; -import type { NotificationOutboxMessage } from 'polykey/dist/client/types'; -import CommandPolykey from '../../CommandPolykey'; -import * as binUtils from '../../utils'; -import * as binOptions from '../../utils/options'; -import * as binProcessors from '../../utils/processors'; +import type { Notification } from 'polykey/notifications/types.js'; +import type PolykeyClient from 'polykey/PolykeyClient.js'; +import type { NotificationOutboxMessage } from 'polykey/client/types.js'; +import CommandPolykey from '../../CommandPolykey.js'; +import * as binUtils from '../../utils/index.js'; +import * as binOptions from '../../utils/options.js'; +import * as binProcessors from '../../utils/processors.js'; class CommandRead extends CommandPolykey { constructor(...args: ConstructorParameters) { @@ -25,11 +25,9 @@ class CommandRead extends CommandPolykey { this.addOption(binOptions.clientPort); this.action(async (options) => { const { default: PolykeyClient } = await import( - 'polykey/dist/PolykeyClient' - ); - const notificationsUtils = await import( - 'polykey/dist/notifications/utils' + 'polykey/PolykeyClient.js' ); + const notificationsUtils = await import('polykey/notifications/utils.js'); const clientOptions = await binProcessors.processClientOptions( options.nodePath, options.nodeId, diff --git a/src/notifications/outbox/CommandRemove.ts b/src/notifications/outbox/CommandRemove.ts index 8861c748..9307b10f 100644 --- a/src/notifications/outbox/CommandRemove.ts +++ b/src/notifications/outbox/CommandRemove.ts @@ -1,10 +1,10 @@ -import type PolykeyClient from 'polykey/dist/PolykeyClient'; -import * as notificationsUtils from 'polykey/dist/notifications/utils'; -import CommandPolykey from '../../CommandPolykey'; -import * as binUtils from '../../utils'; -import * as binOptions from '../../utils/options'; -import * as binProcessors from '../../utils/processors'; -import * as binParsers from '../../utils/parsers'; +import type PolykeyClient from 'polykey/PolykeyClient.js'; +import * as notificationsUtils from 'polykey/notifications/utils.js'; +import CommandPolykey from '../../CommandPolykey.js'; +import * as binUtils from '../../utils/index.js'; +import * as binOptions from '../../utils/options.js'; +import * as binProcessors from '../../utils/processors.js'; +import * as binParsers from '../../utils/parsers.js'; class CommandRemove extends CommandPolykey { constructor(...args: ConstructorParameters) { @@ -21,7 +21,7 @@ class CommandRemove extends CommandPolykey { this.addOption(binOptions.clientPort); this.action(async (notificationId, options) => { const { default: PolykeyClient } = await import( - 'polykey/dist/PolykeyClient' + 'polykey/PolykeyClient.js' ); const clientOptions = await binProcessors.processClientOptions( options.nodePath, diff --git a/src/notifications/outbox/index.ts b/src/notifications/outbox/index.ts index 5c3fbe96..e14de768 100644 --- a/src/notifications/outbox/index.ts +++ b/src/notifications/outbox/index.ts @@ -1,7 +1,7 @@ -import CommandClear from './CommandClear'; -import CommandRead from './CommandRead'; -import CommandRemove from './CommandRemove'; -import CommandPolykey from '../../CommandPolykey'; +import CommandClear from './CommandClear.js'; +import CommandRead from './CommandRead.js'; +import CommandRemove from './CommandRemove.js'; +import CommandPolykey from '../../CommandPolykey.js'; class CommandOutbox extends CommandPolykey { constructor(...args: ConstructorParameters) { diff --git a/src/polykey.ts b/src/polykey.ts index 26d722a1..8b19c378 100755 --- a/src/polykey.ts +++ b/src/polykey.ts @@ -1,9 +1,13 @@ #!/usr/bin/env node -import type { AgentChildProcessInput, AgentChildProcessOutput } from './types'; -import type PolykeyAgent from 'polykey/dist/PolykeyAgent'; -import fs from 'fs'; -import process from 'process'; +import type { + AgentChildProcessInput, + AgentChildProcessOutput, +} from './types.js'; +import type { PolykeyAgent } from 'polykey'; +import fs from 'node:fs'; +import process from 'node:process'; +import { fileURLToPath } from 'node:url'; /** * Hack for wiping out the threads signal handlers * See: https://github.com/andywer/threads.js/issues/388 @@ -12,7 +16,7 @@ import process from 'process'; * in the entire codebase for this hack to work * If the worker manager is used, it must be stopped gracefully with the PolykeyAgent */ -import 'threads'; +import url from 'node:url'; process.removeAllListeners('SIGINT'); process.removeAllListeners('SIGTERM'); @@ -21,7 +25,8 @@ process.removeAllListeners('SIGTERM'); * This can be referred to globally. * For ESM, change to using `import.meta.url`. */ -globalThis.PK_MAIN_EXECUTABLE = __filename; +const filename = fileURLToPath(import.meta.url); +globalThis.PK_MAIN_EXECUTABLE = filename; async function polykeyAgentMain(): Promise { const { @@ -29,12 +34,12 @@ async function polykeyAgentMain(): Promise { StreamHandler, formatting, } = await import('@matrixai/logger'); - const { default: PolykeyAgent } = await import('polykey/dist/PolykeyAgent'); - const { default: ErrorPolykey } = await import('polykey/dist/ErrorPolykey'); - const nodesUtils = await import('polykey/dist/nodes/utils'); - const polykeyUtils = await import('polykey/dist/utils'); - const binUtils = await import('./utils'); - const binErrors = await import('./errors'); + const { default: PolykeyAgent } = await import('polykey/PolykeyAgent.js'); + const { default: ErrorPolykey } = await import('polykey/ErrorPolykey.js'); + const nodesUtils = await import('polykey/nodes/utils.js'); + const polykeyUtils = await import('polykey/utils/index.js'); + const binUtils = await import('./utils/index.js'); + const binErrors = await import('./errors.js'); const logger = new Logger('polykey-agent', undefined, [new StreamHandler()]); const exitHandlers = new binUtils.ExitHandlers(); const processSend = polykeyUtils.promisify(process.send!.bind(process)); @@ -142,20 +147,22 @@ async function polykeyAgentMain(): Promise { } async function polykeyMain(argv: Array): Promise { - const { default: commander } = await import('commander'); - const { default: ErrorPolykey } = await import('polykey/dist/ErrorPolykey'); - const { default: CommandBootstrap } = await import('./bootstrap'); - const { default: CommandAgent } = await import('./agent'); - const { default: CommandAudit } = await import('./audit'); - const { default: CommandVaults } = await import('./vaults'); - const { default: CommandSecrets } = await import('./secrets'); - const { default: CommandKeys } = await import('./keys'); - const { default: CommandNodes } = await import('./nodes'); - const { default: CommandIdentities } = await import('./identities'); - const { default: CommandNotifications } = await import('./notifications'); - const { default: CommandPolykey } = await import('./CommandPolykey'); - const binUtils = await import('./utils'); - const binErrors = await import('./errors'); + const { CommanderError } = await import('commander'); + const { default: ErrorPolykey } = await import('polykey/ErrorPolykey.js'); + const { default: CommandBootstrap } = await import('./bootstrap/index.js'); + const { default: CommandAgent } = await import('./agent/index.js'); + const { default: CommandAudit } = await import('./audit/index.js'); + const { default: CommandVaults } = await import('./vaults/index.js'); + const { default: CommandSecrets } = await import('./secrets/index.js'); + const { default: CommandKeys } = await import('./keys/index.js'); + const { default: CommandNodes } = await import('./nodes/index.js'); + const { default: CommandIdentities } = await import('./identities/index.js'); + const { default: CommandNotifications } = await import( + './notifications/index.js' + ); + const { default: CommandPolykey } = await import('./CommandPolykey.js'); + const binUtils = await import('./utils/index.js'); + const binErrors = await import('./errors.js'); // Registers signal and process error handler // Any resource cleanup must be resolved within their try-catch block // Leaf commands may register exit handlers in case of signal exits @@ -188,7 +195,7 @@ async function polykeyMain(argv: Array): Promise { process.exitCode = 0; } catch (e) { const errFormat = rootCommand.opts().format === 'json' ? 'json' : 'error'; - if (e instanceof commander.CommanderError) { + if (e instanceof CommanderError) { // Commander writes help and error messages on stderr automatically if ( e.code === 'commander.help' || @@ -249,8 +256,11 @@ async function main(argv = process.argv): Promise { } } -if (require.main === module) { - void main(); +if (import.meta.url.startsWith('file:')) { + const modulePath = url.fileURLToPath(import.meta.url); + if (process.argv[1] === modulePath) { + void main(); + } } export default main; diff --git a/src/polykeyWorker.ts b/src/polykeyWorkerManifest.ts similarity index 64% rename from src/polykeyWorker.ts rename to src/polykeyWorkerManifest.ts index fb67cd9e..f18e5243 100644 --- a/src/polykeyWorker.ts +++ b/src/polykeyWorkerManifest.ts @@ -1,8 +1,8 @@ /** - * This re-exports the `polykeyWorker` script. + * This re-exports the `polykeyWorkerManifest` script. * When bundling, the loading for the worker script is relative to the main script directory. * This ensures that the worker script can be referenced by the bundler as an entry point. * @module */ -export * from 'polykey/dist/workers/polykeyWorker'; +export * from 'polykey/workers/polykeyWorkerManifest.js'; diff --git a/src/secrets/CommandCat.ts b/src/secrets/CommandCat.ts index 84e49a92..b40ad293 100644 --- a/src/secrets/CommandCat.ts +++ b/src/secrets/CommandCat.ts @@ -1,10 +1,10 @@ -import type PolykeyClient from 'polykey/dist/PolykeyClient'; -import CommandPolykey from '../CommandPolykey'; -import * as binUtils from '../utils'; -import * as binOptions from '../utils/options'; -import * as binParsers from '../utils/parsers'; -import * as binProcessors from '../utils/processors'; -import * as errors from '../errors'; +import type PolykeyClient from 'polykey/PolykeyClient.js'; +import CommandPolykey from '../CommandPolykey.js'; +import * as binUtils from '../utils/index.js'; +import * as binOptions from '../utils/options.js'; +import * as binParsers from '../utils/parsers.js'; +import * as binProcessors from '../utils/processors.js'; +import * as errors from '../errors.js'; class CommandGet extends CommandPolykey { constructor(...args: ConstructorParameters) { @@ -25,9 +25,9 @@ class CommandGet extends CommandPolykey { binParsers.parseSecretPath(path), ); const { default: PolykeyClient } = await import( - 'polykey/dist/PolykeyClient' + 'polykey/PolykeyClient.js' ); - const { never } = await import('polykey/dist/utils'); + const { never } = await import('polykey/utils/index.js'); const clientOptions = await binProcessors.processClientOptions( options.nodePath, options.nodeId, diff --git a/src/secrets/CommandCreate.ts b/src/secrets/CommandCreate.ts index 2476e197..18128f9c 100644 --- a/src/secrets/CommandCreate.ts +++ b/src/secrets/CommandCreate.ts @@ -1,11 +1,11 @@ -import type PolykeyClient from 'polykey/dist/PolykeyClient'; -import path from 'path'; -import * as errors from '../errors'; -import CommandPolykey from '../CommandPolykey'; -import * as binUtils from '../utils'; -import * as binOptions from '../utils/options'; -import * as binParsers from '../utils/parsers'; -import * as binProcessors from '../utils/processors'; +import type PolykeyClient from 'polykey/PolykeyClient.js'; +import path from 'node:path'; +import * as errors from '../errors.js'; +import CommandPolykey from '../CommandPolykey.js'; +import * as binUtils from '../utils/index.js'; +import * as binOptions from '../utils/options.js'; +import * as binParsers from '../utils/parsers.js'; +import * as binProcessors from '../utils/processors.js'; class CommandCreate extends CommandPolykey { constructor(...args: ConstructorParameters) { @@ -26,9 +26,9 @@ class CommandCreate extends CommandPolykey { this.addOption(binOptions.clientPort); this.action(async (directoryPath, secretPath, options) => { const { default: PolykeyClient } = await import( - 'polykey/dist/PolykeyClient' + 'polykey/PolykeyClient.js' ); - const { never } = await import('polykey/dist/utils'); + const { never } = await import('polykey/utils/index.js'); const clientOptions = await binProcessors.processClientOptions( options.nodePath, options.nodeId, diff --git a/src/secrets/CommandDir.ts b/src/secrets/CommandDir.ts index a9009d47..8bd76116 100644 --- a/src/secrets/CommandDir.ts +++ b/src/secrets/CommandDir.ts @@ -1,8 +1,8 @@ -import type PolykeyClient from 'polykey/dist/PolykeyClient'; -import CommandPolykey from '../CommandPolykey'; -import * as binUtils from '../utils'; -import * as binOptions from '../utils/options'; -import * as binProcessors from '../utils/processors'; +import type PolykeyClient from 'polykey/PolykeyClient.js'; +import CommandPolykey from '../CommandPolykey.js'; +import * as binUtils from '../utils/index.js'; +import * as binOptions from '../utils/options.js'; +import * as binProcessors from '../utils/processors.js'; class CommandDir extends CommandPolykey { constructor(...args: ConstructorParameters) { @@ -19,7 +19,7 @@ class CommandDir extends CommandPolykey { this.addOption(binOptions.clientPort); this.action(async (directoryPath, vaultName, options) => { const { default: PolykeyClient } = await import( - 'polykey/dist/PolykeyClient' + 'polykey/PolykeyClient.js' ); const clientOptions = await binProcessors.processClientOptions( options.nodePath, diff --git a/src/secrets/CommandEdit.ts b/src/secrets/CommandEdit.ts index fc652d52..2ea5d3ff 100644 --- a/src/secrets/CommandEdit.ts +++ b/src/secrets/CommandEdit.ts @@ -1,12 +1,12 @@ -import type PolykeyClient from 'polykey/dist/PolykeyClient'; -import fs from 'fs'; -import path from 'path'; -import CommandPolykey from '../CommandPolykey'; -import * as errors from '../errors'; -import * as binUtils from '../utils'; -import * as binOptions from '../utils/options'; -import * as binParsers from '../utils/parsers'; -import * as binProcessors from '../utils/processors'; +import type PolykeyClient from 'polykey/PolykeyClient.js'; +import fs from 'node:fs'; +import path from 'node:path'; +import CommandPolykey from '../CommandPolykey.js'; +import * as errors from '../errors.js'; +import * as binUtils from '../utils/index.js'; +import * as binOptions from '../utils/options.js'; +import * as binParsers from '../utils/parsers.js'; +import * as binProcessors from '../utils/processors.js'; class CommandEdit extends CommandPolykey { constructor(...args: ConstructorParameters) { @@ -25,12 +25,12 @@ class CommandEdit extends CommandPolykey { this.action(async (fullSecretPath, options) => { const vaultName = fullSecretPath[0]; const secretPath = fullSecretPath[1] ?? '/'; - const os = await import('os'); - const { spawn } = await import('child_process'); + const os = await import('node:os'); + const { spawn } = await import('node:child_process'); const { default: PolykeyClient } = await import( - 'polykey/dist/PolykeyClient' + 'polykey/PolykeyClient.js' ); - const { never } = await import('polykey/dist/utils'); + const { never } = await import('polykey/utils/index.js'); const clientOptions = await binProcessors.processClientOptions( options.nodePath, options.nodeId, diff --git a/src/secrets/CommandEnv.ts b/src/secrets/CommandEnv.ts index 9ae35e9c..0bc041b2 100644 --- a/src/secrets/CommandEnv.ts +++ b/src/secrets/CommandEnv.ts @@ -1,15 +1,15 @@ -import type PolykeyClient from 'polykey/dist/PolykeyClient'; -import type { ParsedSecretPathValue } from '../types'; -import path from 'path'; -import os from 'os'; -import commander from 'commander'; -import * as utils from 'polykey/dist/utils'; -import CommandPolykey from '../CommandPolykey'; -import * as binProcessors from '../utils/processors'; -import * as binUtils from '../utils'; -import * as binErrors from '../errors'; -import * as binOptions from '../utils/options'; -import * as binParsers from '../utils/parsers'; +import type PolykeyClient from 'polykey/PolykeyClient.js'; +import type { ParsedSecretPathValue } from '../types.js'; +import path from 'node:path'; +import os from 'node:os'; +import { InvalidArgumentError } from 'commander'; +import * as utils from 'polykey/utils/index.js'; +import CommandPolykey from '../CommandPolykey.js'; +import * as binProcessors from '../utils/processors.js'; +import * as binUtils from '../utils/index.js'; +import * as binErrors from '../errors.js'; +import * as binOptions from '../utils/options.js'; +import * as binParsers from '../utils/parsers.js'; class CommandEnv extends CommandPolykey { constructor(...args: ConstructorParameters) { @@ -32,7 +32,7 @@ class CommandEnv extends CommandPolykey { ); this.action(async (args, options) => { const { default: PolykeyClient } = await import( - 'polykey/dist/PolykeyClient' + 'polykey/PolykeyClient.js' ); const { envInvalid, @@ -86,7 +86,7 @@ class CommandEnv extends CommandPolykey { if (envVariables.length === 0) { this.addHelpText('before', 'You must provide at least 1 secret path'); this.outputHelp(); - throw new commander.InvalidArgumentError( + throw new InvalidArgumentError( 'You must provide at least 1 secret path', ); } @@ -257,7 +257,7 @@ class CommandEnv extends CommandPolykey { } break; default: { - const { spawnSync } = await import('child_process'); + const { spawnSync } = await import('node:child_process'); const result = spawnSync(cmd, argv, { env: { ...process.env, diff --git a/src/secrets/CommandList.ts b/src/secrets/CommandList.ts index 07adb691..d1aeb7b7 100644 --- a/src/secrets/CommandList.ts +++ b/src/secrets/CommandList.ts @@ -1,9 +1,9 @@ -import type PolykeyClient from 'polykey/dist/PolykeyClient'; -import CommandPolykey from '../CommandPolykey'; -import * as binUtils from '../utils'; -import * as binOptions from '../utils/options'; -import * as binProcessors from '../utils/processors'; -import * as binParsers from '../utils/parsers'; +import type PolykeyClient from 'polykey/PolykeyClient.js'; +import CommandPolykey from '../CommandPolykey.js'; +import * as binUtils from '../utils/index.js'; +import * as binOptions from '../utils/options.js'; +import * as binProcessors from '../utils/processors.js'; +import * as binParsers from '../utils/parsers.js'; class CommandList extends CommandPolykey { constructor(...args: ConstructorParameters) { @@ -21,7 +21,7 @@ class CommandList extends CommandPolykey { this.addOption(binOptions.clientPort); this.action(async (secretPath, options) => { const { default: PolykeyClient } = await import( - 'polykey/dist/PolykeyClient' + 'polykey/PolykeyClient.js' ); const clientOptions = await binProcessors.processClientOptions( options.nodePath, diff --git a/src/secrets/CommandMkdir.ts b/src/secrets/CommandMkdir.ts index d03bded0..1c6f0d37 100644 --- a/src/secrets/CommandMkdir.ts +++ b/src/secrets/CommandMkdir.ts @@ -1,10 +1,10 @@ -import type PolykeyClient from 'polykey/dist/PolykeyClient'; -import CommandPolykey from '../CommandPolykey'; -import * as binUtils from '../utils'; -import * as binOptions from '../utils/options'; -import * as binParsers from '../utils/parsers'; -import * as binProcessors from '../utils/processors'; -import { ErrorPolykeyCLIMakeDirectory } from '../errors'; +import type PolykeyClient from 'polykey/PolykeyClient.js'; +import CommandPolykey from '../CommandPolykey.js'; +import * as binUtils from '../utils/index.js'; +import * as binOptions from '../utils/options.js'; +import * as binParsers from '../utils/parsers.js'; +import * as binProcessors from '../utils/processors.js'; +import { ErrorPolykeyCLIMakeDirectory } from '../errors.js'; class CommandMkdir extends CommandPolykey { constructor(...args: ConstructorParameters) { @@ -26,7 +26,7 @@ class CommandMkdir extends CommandPolykey { binParsers.parseSecretPath(path), ); const { default: PolykeyClient } = await import( - 'polykey/dist/PolykeyClient' + 'polykey/PolykeyClient.js' ); const clientOptions = await binProcessors.processClientOptions( options.nodePath, diff --git a/src/secrets/CommandRemove.ts b/src/secrets/CommandRemove.ts index 391ea0b4..80e492d2 100644 --- a/src/secrets/CommandRemove.ts +++ b/src/secrets/CommandRemove.ts @@ -1,10 +1,10 @@ -import type PolykeyClient from 'polykey/dist/PolykeyClient'; -import CommandPolykey from '../CommandPolykey'; -import * as binUtils from '../utils'; -import * as binOptions from '../utils/options'; -import * as binParsers from '../utils/parsers'; -import * as binProcessors from '../utils/processors'; -import * as errors from '../errors'; +import type PolykeyClient from 'polykey/PolykeyClient.js'; +import CommandPolykey from '../CommandPolykey.js'; +import * as binUtils from '../utils/index.js'; +import * as binOptions from '../utils/options.js'; +import * as binParsers from '../utils/parsers.js'; +import * as binProcessors from '../utils/processors.js'; +import * as errors from '../errors.js'; class CommandRemove extends CommandPolykey { constructor(...args: ConstructorParameters) { @@ -25,7 +25,7 @@ class CommandRemove extends CommandPolykey { binParsers.parseSecretPath(path), ); const { default: PolykeyClient } = await import( - 'polykey/dist/PolykeyClient' + 'polykey/PolykeyClient.js' ); const clientOptions = await binProcessors.processClientOptions( options.nodePath, diff --git a/src/secrets/CommandRename.ts b/src/secrets/CommandRename.ts index 7582c345..ce6e18d7 100644 --- a/src/secrets/CommandRename.ts +++ b/src/secrets/CommandRename.ts @@ -1,10 +1,10 @@ -import type PolykeyClient from 'polykey/dist/PolykeyClient'; -import CommandPolykey from '../CommandPolykey'; -import * as binUtils from '../utils'; -import * as binOptions from '../utils/options'; -import * as binParsers from '../utils/parsers'; -import * as binProcessors from '../utils/processors'; -import * as errors from '../errors'; +import type PolykeyClient from 'polykey/PolykeyClient.js'; +import CommandPolykey from '../CommandPolykey.js'; +import * as binUtils from '../utils/index.js'; +import * as binOptions from '../utils/options.js'; +import * as binParsers from '../utils/parsers.js'; +import * as binProcessors from '../utils/processors.js'; +import * as errors from '../errors.js'; class CommandRename extends CommandPolykey { constructor(...args: ConstructorParameters) { @@ -28,7 +28,7 @@ class CommandRename extends CommandPolykey { ); } const { default: PolykeyClient } = await import( - 'polykey/dist/PolykeyClient' + 'polykey/PolykeyClient.js' ); const clientOptions = await binProcessors.processClientOptions( options.nodePath, diff --git a/src/secrets/CommandSecrets.ts b/src/secrets/CommandSecrets.ts index 295f8177..31ff31e2 100644 --- a/src/secrets/CommandSecrets.ts +++ b/src/secrets/CommandSecrets.ts @@ -1,16 +1,16 @@ -import CommandCreate from './CommandCreate'; -import CommandCat from './CommandCat'; -import CommandDir from './CommandDir'; -import CommandEdit from './CommandEdit'; -import CommandEnv from './CommandEnv'; -import CommandList from './CommandList'; -import CommandMkdir from './CommandMkdir'; -import CommandRename from './CommandRename'; -import CommandRemove from './CommandRemove'; -import CommandStat from './CommandStat'; -import CommandTouch from './CommandTouch'; -import CommandWrite from './CommandWrite'; -import CommandPolykey from '../CommandPolykey'; +import CommandCreate from './CommandCreate.js'; +import CommandCat from './CommandCat.js'; +import CommandDir from './CommandDir.js'; +import CommandEdit from './CommandEdit.js'; +import CommandEnv from './CommandEnv.js'; +import CommandList from './CommandList.js'; +import CommandMkdir from './CommandMkdir.js'; +import CommandRename from './CommandRename.js'; +import CommandRemove from './CommandRemove.js'; +import CommandStat from './CommandStat.js'; +import CommandTouch from './CommandTouch.js'; +import CommandWrite from './CommandWrite.js'; +import CommandPolykey from '../CommandPolykey.js'; class CommandSecrets extends CommandPolykey { constructor(...args: ConstructorParameters) { diff --git a/src/secrets/CommandStat.ts b/src/secrets/CommandStat.ts index dea14582..d63fbd75 100644 --- a/src/secrets/CommandStat.ts +++ b/src/secrets/CommandStat.ts @@ -1,9 +1,9 @@ -import type PolykeyClient from 'polykey/dist/PolykeyClient'; -import CommandPolykey from '../CommandPolykey'; -import * as binProcessors from '../utils/processors'; -import * as binParsers from '../utils/parsers'; -import * as binUtils from '../utils'; -import * as binOptions from '../utils/options'; +import type PolykeyClient from 'polykey/PolykeyClient.js'; +import CommandPolykey from '../CommandPolykey.js'; +import * as binProcessors from '../utils/processors.js'; +import * as binParsers from '../utils/parsers.js'; +import * as binUtils from '../utils/index.js'; +import * as binOptions from '../utils/options.js'; class CommandStat extends CommandPolykey { constructor(...args: ConstructorParameters) { @@ -20,7 +20,7 @@ class CommandStat extends CommandPolykey { this.addOption(binOptions.clientPort); this.action(async (secretPath, options) => { const { default: PolykeyClient } = await import( - 'polykey/dist/PolykeyClient' + 'polykey/PolykeyClient.js' ); const clientOptions = await binProcessors.processClientOptions( options.nodePath, diff --git a/src/secrets/CommandTouch.ts b/src/secrets/CommandTouch.ts index 0aa2b6b9..9d26dfd2 100644 --- a/src/secrets/CommandTouch.ts +++ b/src/secrets/CommandTouch.ts @@ -1,10 +1,10 @@ -import type PolykeyClient from 'polykey/dist/PolykeyClient'; -import CommandPolykey from '../CommandPolykey'; -import * as binProcessors from '../utils/processors'; -import * as binParsers from '../utils/parsers'; -import * as binUtils from '../utils'; -import * as binOptions from '../utils/options'; -import * as errors from '../errors'; +import type PolykeyClient from 'polykey/PolykeyClient.js'; +import CommandPolykey from '../CommandPolykey.js'; +import * as binProcessors from '../utils/processors.js'; +import * as binParsers from '../utils/parsers.js'; +import * as binUtils from '../utils/index.js'; +import * as binOptions from '../utils/options.js'; +import * as errors from '../errors.js'; class CommandTouch extends CommandPolykey { constructor(...args: ConstructorParameters) { @@ -23,7 +23,7 @@ class CommandTouch extends CommandPolykey { binParsers.parseSecretPath(path), ); const { default: PolykeyClient } = await import( - 'polykey/dist/PolykeyClient' + 'polykey/PolykeyClient.js' ); const clientOptions = await binProcessors.processClientOptions( options.nodePath, diff --git a/src/secrets/CommandWrite.ts b/src/secrets/CommandWrite.ts index 9543f726..f2eff29b 100644 --- a/src/secrets/CommandWrite.ts +++ b/src/secrets/CommandWrite.ts @@ -1,9 +1,9 @@ -import type PolykeyClient from 'polykey/dist/PolykeyClient'; -import CommandPolykey from '../CommandPolykey'; -import * as binProcessors from '../utils/processors'; -import * as binParsers from '../utils/parsers'; -import * as binUtils from '../utils'; -import * as binOptions from '../utils/options'; +import type PolykeyClient from 'polykey/PolykeyClient.js'; +import CommandPolykey from '../CommandPolykey.js'; +import * as binProcessors from '../utils/processors.js'; +import * as binParsers from '../utils/parsers.js'; +import * as binUtils from '../utils/index.js'; +import * as binOptions from '../utils/options.js'; class CommandWrite extends CommandPolykey { constructor(...args: ConstructorParameters) { @@ -20,7 +20,7 @@ class CommandWrite extends CommandPolykey { this.addOption(binOptions.clientPort); this.action(async (secretPath, options) => { const { default: PolykeyClient } = await import( - 'polykey/dist/PolykeyClient' + 'polykey/PolykeyClient.js' ); const clientOptions = await binProcessors.processClientOptions( options.nodePath, diff --git a/src/secrets/index.ts b/src/secrets/index.ts index 1f4ef08a..9786d4f9 100644 --- a/src/secrets/index.ts +++ b/src/secrets/index.ts @@ -1 +1 @@ -export { default } from './CommandSecrets'; +export { default } from './CommandSecrets.js'; diff --git a/src/types.ts b/src/types.ts index ab9c8ee7..acf2bdea 100644 --- a/src/types.ts +++ b/src/types.ts @@ -1,9 +1,9 @@ import type { LogLevel } from '@matrixai/logger'; -import type { PolykeyAgentOptions } from 'polykey/dist/PolykeyAgent'; -import type { POJO, DeepPartial } from 'polykey/dist/types'; -import type { RecoveryCode } from 'polykey/dist/keys/types'; -import type { StatusLive } from 'polykey/dist/status/types'; -import type { NodeIdEncoded } from 'polykey/dist/ids/types'; +import type { PolykeyAgentOptions } from 'polykey/PolykeyAgent.js'; +import type { POJO, DeepPartial } from 'polykey/types.js'; +import type { RecoveryCode } from 'polykey/keys/types.js'; +import type { StatusLive } from 'polykey/status/types.js'; +import type { NodeIdEncoded } from 'polykey/ids/types.js'; type TableRow = Record; diff --git a/src/utils/ExitHandlers.ts b/src/utils/ExitHandlers.ts index 609e6443..5d4205a1 100644 --- a/src/utils/ExitHandlers.ts +++ b/src/utils/ExitHandlers.ts @@ -1,7 +1,7 @@ -import process from 'process'; -import ErrorPolykey from 'polykey/dist/ErrorPolykey'; -import * as binUtils from './utils'; -import * as errors from '../errors'; +import process from 'node:process'; +import ErrorPolykey from 'polykey/ErrorPolykey.js'; +import * as binUtils from './utils.js'; +import * as errors from '../errors.js'; class ExitHandlers { /** diff --git a/src/utils/index.ts b/src/utils/index.ts index 4555c33f..4868e90f 100644 --- a/src/utils/index.ts +++ b/src/utils/index.ts @@ -1,5 +1,5 @@ -export * from './utils'; -export * as options from './options'; -export * as parsers from './parsers'; -export * as processors from './processors'; -export { default as ExitHandlers } from './ExitHandlers'; +export * from './utils.js'; +export * as options from './options.js'; +export * as parsers from './parsers.js'; +export * as processors from './processors.js'; +export { default as ExitHandlers } from './ExitHandlers.js'; diff --git a/src/utils/options.ts b/src/utils/options.ts index 2ef68c7b..d3fa9fea 100644 --- a/src/utils/options.ts +++ b/src/utils/options.ts @@ -5,9 +5,9 @@ * but not the default value * @module */ -import commander from 'commander'; -import config from 'polykey/dist/config'; -import * as binParsers from '../utils/parsers'; +import { Option, InvalidArgumentError } from 'commander'; +import config from 'polykey/config.js'; +import * as binParsers from '../utils/parsers.js'; /** * Node path is the path to node state @@ -16,23 +16,20 @@ import * as binParsers from '../utils/parsers'; * platform-specific default node path * On unknown platforms the default is undefined */ -const nodePath = new commander.Option( - '-np, --node-path ', - 'Path to Node State', -) +const nodePath = new Option('-np, --node-path ', 'Path to Node State') .env('PK_NODE_PATH') .default(config.defaultsUser.nodePath); /** * Formatting choice of human, json, defaults to human */ -const format = new commander.Option('-f, --format ', 'Output Format') +const format = new Option('-f, --format ', 'Output Format') .choices(['human', 'json']) .default('human'); /** * Sets log level, defaults to 0, multiple uses will increase verbosity level */ -const verbose = new commander.Option('-v, --verbose', 'Log Verbose Messages') +const verbose = new Option('-v, --verbose', 'Log Verbose Messages') .argParser((_, p: number) => { return p + 1; }) @@ -41,7 +38,7 @@ const verbose = new commander.Option('-v, --verbose', 'Log Verbose Messages') /** * Ignore any existing state during side-effectual construction */ -const fresh = new commander.Option( +const fresh = new Option( '--fresh', 'Ignore existing state during construction', ).default(false); @@ -49,14 +46,14 @@ const fresh = new commander.Option( /** * Node ID used for connecting to a remote agent */ -const nodeId = new commander.Option('-ni, --node-id ') +const nodeId = new Option('-ni, --node-id ') .env('PK_NODE_ID') .argParser(binParsers.parseNodeId); /** * Client host used for connecting to remote agent */ -const clientHost = new commander.Option( +const clientHost = new Option( '-ch, --client-host ', 'Client Host Address', ) @@ -66,24 +63,21 @@ const clientHost = new commander.Option( /** * Client port used for connecting to remote agent */ -const clientPort = new commander.Option( - '-cp, --client-port ', - 'Client Port', -) +const clientPort = new Option('-cp, --client-port ', 'Client Port') .env('PK_CLIENT_PORT') .argParser(binParsers.parsePort); -const agentHost = new commander.Option('-ah, --agent-host ', 'Agent host') +const agentHost = new Option('-ah, --agent-host ', 'Agent host') .env('PK_AGENT_HOST') .argParser(binParsers.parseHost) .default(config.defaultsUser.agentServiceHost); -const agentPort = new commander.Option('-ap, --agent-port ', 'Agent Port') +const agentPort = new Option('-ap, --agent-port ', 'Agent Port') .env('PK_AGENT_PORT') .argParser(binParsers.parsePort) .default(config.defaultsUser.agentServicePort); -const dnsServers = new commander.Option( +const dnsServers = new Option( '--dns-servers [addresses...]', 'List of dns servers used for dns resolution', ) @@ -91,49 +85,49 @@ const dnsServers = new commander.Option( .argParser(binParsers.parseAddresses) .default(undefined); -const connConnectTime = new commander.Option( +const connConnectTime = new Option( '--connection-timeout ', 'Timeout value for connection establishment between nodes', ) .argParser(binParsers.parseInteger) .default(config.defaultsSystem.nodesConnectionConnectTimeoutTime); -const passwordFile = new commander.Option( +const passwordFile = new Option( '-pf, --password-file ', 'Path to Password', ); -const passwordNewFile = new commander.Option( +const passwordNewFile = new Option( '-pnf, --password-new-file ', 'Path to new Password', ); -const recoveryCodeFile = new commander.Option( +const recoveryCodeFile = new Option( '-rcf, --recovery-code-file ', 'Path to a file used to load the Recovery Code from', ); -const recoveryCodeOutFile = new commander.Option( +const recoveryCodeOutFile = new Option( '-rcof, --recovery-code-out-file ', 'Path used to write the Recovery Code if one was generated, if none was generated then this is ignored', ); -const background = new commander.Option( +const background = new Option( '-b, --background', 'Starts the agent as a background process', ); -const backgroundOutFile = new commander.Option( +const backgroundOutFile = new Option( '-bof, --background-out-file ', 'Path to STDOUT for agent process', ); -const backgroundErrFile = new commander.Option( +const backgroundErrFile = new Option( '-bef, --background-err-file ', 'Path to STDERR for agent process', ); -const seedNodes = new commander.Option( +const seedNodes = new Option( '-sn, --seed-nodes [nodeId1@host:port;nodeId2@host:port;...]', 'Seed node address mappings', ) @@ -141,33 +135,31 @@ const seedNodes = new commander.Option( .env('PK_SEED_NODES') .default([{}, true]); -const network = new commander.Option( +const network = new Option( '-n --network ', 'Hostname of the desired default network.', ) .env('PK_NETWORK') .default(config.network.mainnet); -const workers = new commander.Option( +const workers = new Option( '-w --workers ', 'Number of workers to use, defaults to number of cores with `all`, 0 means all cores, `false`|`null`|`none`|`no` means no multi-threading', ) .argParser(binParsers.parseCoreCount) .default(0, 'all'); -const pullVault = new commander.Option( +const pullVault = new Option( '-pv, --pull-vault ', 'Name or Id of the vault to pull from', ); -const forceNodeAdd = new commander.Option( +const forceNodeAdd = new Option( '--force', 'Force adding node to nodeGraph', ).default(false); -const noPing = new commander.Option('--no-ping', 'Skip ping step').default( - true, -); +const noPing = new Option('--no-ping', 'Skip ping step').default(true); // We can't reference the object here, so we recreate the list of choices const passwordLimitChoices = [ @@ -178,7 +170,7 @@ const passwordLimitChoices = [ 'sensitive', ]; -const passwordOpsLimit = new commander.Option( +const passwordOpsLimit = new Option( '--password-ops-limit ', 'Limit the password generation operations', ) @@ -186,7 +178,7 @@ const passwordOpsLimit = new commander.Option( .env('PK_PASSWORD_OPS_LIMIT') .default('moderate'); -const passwordMemLimit = new commander.Option( +const passwordMemLimit = new Option( '--password-mem-limit ', 'Limit the password generation memory', ) @@ -194,29 +186,29 @@ const passwordMemLimit = new commander.Option( .env('PK_PASSWORD_MEM_LIMIT') .default('moderate'); -const privateKeyFile = new commander.Option( +const privateKeyFile = new Option( '--private-key-file ', 'Override key creation with a private key JWE from a file', ); -const depth = new commander.Option( +const depth = new Option( '-d, --depth [depth]', 'The number of commits to retrieve', ).argParser(parseInt); -const commitId = new commander.Option( +const commitId = new Option( '-ci, --commit-id [commitId]', 'Id for a specific commit to read from', ); -const envVariables = new commander.Option('-e --env ', 'specify envs') +const envVariables = new Option('-e --env ', 'specify envs') .makeOptionMandatory(true) .argParser( (value: string, previous: Array<[string, string, string?]> | undefined) => { const acc = previous ?? []; const [vault, secret, val] = binParsers.parseSecretPathEnv(value); if (secret == null) { - throw new commander.InvalidArgumentError( + throw new InvalidArgumentError( 'You must provide at least one secret path', ); } @@ -225,33 +217,33 @@ const envVariables = new commander.Option('-e --env ', 'specify envs') }, ); -const envFormat = new commander.Option( +const envFormat = new Option( '-ef --env-format ', 'Select how the env variables are formatted on stdout if no command is specified', ) .choices(['auto', 'json', 'unix', 'cmd', 'powershell']) .default('auto'); -const envInvalid = new commander.Option( +const envInvalid = new Option( '-ei --env-invalid ', 'How invalid env variable names are handled when retrieving secrets. `error` will throw, `warn` will log a warning and drop and `ignore` will silently drop.', ) .choices(['error', 'warn', 'ignore']) .default('error'); -const envDuplicate = new commander.Option( +const envDuplicate = new Option( '-ed --env-duplicate ', 'How duplicate env variable names are handled. `keep` will keep the exising secret, `overwrite` will overwrite existing with the new secret, `warn` will log a warning and overwrite and `error` will throw.', ) .choices(['keep', 'overwrite', 'warn', 'error']) .default('overwrite'); -const envExport = new commander.Option( +const envExport = new Option( '-ee --env-export', 'If enabled, exports the set environment variables to child environments', ).default(false); -const discoveryMonitor = new commander.Option( +const discoveryMonitor = new Option( '--monitor', 'Enabling monitoring will cause discover to output discovery events as they happen and will exit once all children are processed', ).default(false); @@ -263,26 +255,23 @@ const parseDate = (value: string): number => { return date; }; -const seekStart = new commander.Option( +const seekStart = new Option( '--seek-start [seekStart]', `time to start seeking from`, ) .argParser(parseDate) .default(0); -const seekEnd = new commander.Option( - '--seek-end [seekEnd]', - `time to seek until`, -) +const seekEnd = new Option('--seek-end [seekEnd]', `time to seek until`) .argParser(parseDate) .default(undefined); -const follow = new commander.Option( +const follow = new Option( '--follow', 'If enabled, future events will be outputted as they happen', ).default(false); -const events = new commander.Option( +const events = new Option( '--events [events...]', 'Filter for specified event paths', ) @@ -299,31 +288,28 @@ const events = new commander.Option( ) .default(undefined); -const limit = new commander.Option( +const limit = new Option( '--limit [limit]', 'Limit the number of emitted events', ) .argParser(parseInt) .default(undefined); -const order = new commander.Option( - '--order [order]', - 'Filter for specified events', -) +const order = new Option('--order [order]', 'Filter for specified events') .choices(['asc', 'desc']) .default('asc'); -const recursive = new commander.Option( +const recursive = new Option( '--recursive', 'If enabled, specified operation will be applied recursively to the directory and its contents', ).default(false); -const parents = new commander.Option( +const parents = new Option( '--parents', 'If enabled, create all parent directories as well. If the directories exist, do nothing.', ).default(false); -const preserveNewline = new commander.Option( +const preserveNewline = new Option( '--preserve-newline ', 'Preserve the last trailing newline for the secret content', ) diff --git a/src/utils/parsers.ts b/src/utils/parsers.ts index 2b461292..39eec37a 100644 --- a/src/utils/parsers.ts +++ b/src/utils/parsers.ts @@ -1,13 +1,13 @@ -import type { Host, Hostname, Port } from 'polykey/dist/network/types'; -import type { SeedNodes } from 'polykey/dist/nodes/types'; -import type { ParsedSecretPathValue } from '../types'; -import commander from 'commander'; -import * as validationUtils from 'polykey/dist/validation/utils'; -import * as validationErrors from 'polykey/dist/validation/errors'; -import * as ids from 'polykey/dist/ids'; -import * as gestaltsUtils from 'polykey/dist/gestalts/utils'; -import * as networkUtils from 'polykey/dist/network/utils'; -import * as nodesUtils from 'polykey/dist/nodes/utils'; +import type { Host, Hostname, Port } from 'polykey/network/types.js'; +import type { SeedNodes } from 'polykey/nodes/types.js'; +import type { ParsedSecretPathValue } from '../types.js'; +import { InvalidArgumentError } from 'commander'; +import * as validationUtils from 'polykey/validation/utils.js'; +import * as validationErrors from 'polykey/validation/errors.js'; +import * as ids from 'polykey/ids/index.js'; +import * as gestaltsUtils from 'polykey/gestalts/utils.js'; +import * as networkUtils from 'polykey/network/utils.js'; +import * as nodesUtils from 'polykey/nodes/utils.js'; const vaultNameRegex = /^(?!.*[:])[ -~\t\n]*$/s; const secretPathRegex = /^(?!.*[=])[ -~\t\n]*$/s; @@ -25,7 +25,7 @@ function validateParserToArgParser( return validate(data); } catch (e) { if (e instanceof validationErrors.ErrorParse) { - throw new commander.InvalidArgumentError(e.message); + throw new InvalidArgumentError(e.message); } else { throw e; } @@ -45,7 +45,7 @@ function validateParserToArgListParser( return data.split(' ').map(validate); } catch (e) { if (e instanceof validationErrors.ErrorParse) { - throw new commander.InvalidArgumentError(e.message); + throw new InvalidArgumentError(e.message); } else { throw e; } @@ -69,9 +69,7 @@ function parseCoreCount(v: string): number | undefined { function parseVaultName(vaultName: string): string { if (!vaultNameRegex.test(vaultName)) { - throw new commander.InvalidArgumentError( - `${vaultName} is not a valid vault name`, - ); + throw new InvalidArgumentError(`${vaultName} is not a valid vault name`); } return vaultName; } @@ -107,7 +105,7 @@ function parseSecretPath(inputPath: string): ParsedSecretPathValue { // If secretPath exists but it doesn't pass the regex test, then the path is // malformed. if (secretPath != null && !secretPathRegex.test(secretPath)) { - throw new commander.InvalidArgumentError( + throw new InvalidArgumentError( `${inputPath} is not of the format [:][=]`, ); } @@ -120,9 +118,7 @@ function parseSecretPath(inputPath: string): ParsedSecretPathValue { function parseSecretPathValue(secretPath: string): ParsedSecretPathValue { const [vaultName, directoryPath, value] = parseSecretPath(secretPath); if (value != null && !secretPathValueRegex.test(value)) { - throw new commander.InvalidArgumentError( - `${value} is not a valid value name`, - ); + throw new InvalidArgumentError(`${value} is not a valid value name`); } return [vaultName, directoryPath, value]; } @@ -130,7 +126,7 @@ function parseSecretPathValue(secretPath: string): ParsedSecretPathValue { function parseSecretPathEnv(secretPath: string): ParsedSecretPathValue { const [vaultName, directoryPath, value] = parseSecretPath(secretPath); if (value != null && !environmentVariableRegex.test(value)) { - throw new commander.InvalidArgumentError( + throw new InvalidArgumentError( `${value} is not a valid environment variable name`, ); } diff --git a/src/utils/processors.ts b/src/utils/processors.ts index 662a43f7..a4fd2046 100644 --- a/src/utils/processors.ts +++ b/src/utils/processors.ts @@ -1,22 +1,22 @@ -import type { FileSystem } from 'polykey/dist/types'; -import type { RecoveryCode } from 'polykey/dist/keys/types'; -import type { NodeId } from 'polykey/dist/ids/types'; +import type { FileSystem } from 'polykey/types.js'; +import type { RecoveryCode } from 'polykey/keys/types.js'; +import type { NodeId } from 'polykey/ids/types.js'; import type { StatusStarting, StatusLive, StatusStopping, StatusDead, -} from 'polykey/dist/status/types'; -import type { ObjectEmpty } from 'polykey/dist/types'; -import type { SessionToken } from 'polykey/dist/sessions/types'; -import path from 'path'; -import prompts from 'prompts'; +} from 'polykey/status/types.js'; +import type { ObjectEmpty } from 'polykey/types.js'; +import type { SessionToken } from 'polykey/sessions/types.js'; +import path from 'node:path'; import Logger from '@matrixai/logger'; -import Status from 'polykey/dist/status/Status'; -import * as clientUtils from 'polykey/dist/client/utils'; -import { arrayZip, promise } from 'polykey/dist/utils'; -import config from 'polykey/dist/config'; -import * as errors from '../errors'; +import Status from 'polykey/status/Status.js'; +import * as clientUtils from 'polykey/client/utils.js'; +import { arrayZip, promise } from 'polykey/utils/index.js'; +import config from 'polykey/config.js'; +import * as utils from './utils.js'; +import * as errors from '../errors.js'; /** * Prompts for existing password @@ -24,6 +24,7 @@ import * as errors from '../errors'; * When SIGINT is received this will return undefined */ async function promptPassword(): Promise { + const { default: prompts } = await import('prompts'); let cancelled = false; // Creating promise for end of stdin const { p: endP, resolveP: endResolveP } = promise(); @@ -70,6 +71,7 @@ async function promptPassword(): Promise { * When SIGINT is received this will return undefined */ async function promptNewPassword(): Promise { + const { default: prompts } = await import('prompts'); while (true) { let cancelled = false; // Creating promise for end of stdin @@ -133,7 +135,7 @@ async function promptNewPassword(): Promise { */ async function processPassword( passwordFile?: string, - fs: FileSystem = require('fs'), + fs: FileSystem = require('node:fs'), ): Promise { let password: string | undefined; if (passwordFile != null) { @@ -175,9 +177,10 @@ async function processPassword( */ async function processNewPassword( passwordNewFile?: string, - fs: FileSystem = require('fs'), + fs?: FileSystem, existing: boolean = false, ): Promise { + fs = await utils.importFS(fs); let passwordNew: string | undefined; if (passwordNewFile != null) { try { @@ -217,8 +220,9 @@ async function processNewPassword( */ async function processRecoveryCode( recoveryCodeFile?: string, - fs: FileSystem = require('fs'), + fs?: FileSystem, ): Promise { + fs = await utils.importFS(fs); let recoveryCode: string | undefined; if (recoveryCodeFile != null) { try { @@ -258,13 +262,14 @@ async function processClientOptions( nodeId?: NodeId, clientHost?: string, clientPort?: number, - fs = require('fs'), + fs?: FileSystem, logger = new Logger(processClientOptions.name), ): Promise<{ nodeId: NodeId; clientHost: string; clientPort: number; }> { + fs = await utils.importFS(fs); if (nodeId != null && clientHost != null && clientPort != null) { return { nodeId, @@ -321,7 +326,7 @@ async function processClientStatus( nodeId?: NodeId, clientHost?: string, clientPort?: number, - fs = require('fs'), + fs?: FileSystem, logger = new Logger(processClientStatus.name), ): Promise< | { @@ -346,6 +351,7 @@ async function processClientStatus( clientPort: number; } > { + fs = await utils.importFS(fs); if (nodeId != null && clientHost != null && clientPort != null) { return { statusInfo: undefined, @@ -426,8 +432,9 @@ async function processClientStatus( */ async function processAuthentication( passwordFile?: string, - fs: FileSystem = require('fs'), + fs?: FileSystem, ): Promise<{ authorization?: string }> { + fs = await utils.importFS(fs); if (passwordFile != null) { let password; try { diff --git a/src/utils/utils.ts b/src/utils/utils.ts index 425c0c8d..55e8dba8 100644 --- a/src/utils/utils.ts +++ b/src/utils/utils.ts @@ -1,22 +1,23 @@ -import type { POJO } from 'polykey/dist/types'; +import type { FileSystem } from 'polykey/types.js'; +import type { POJO } from 'polykey/types.js'; import type { TableRow, TableOptions, DictOptions, PromiseDeconstructed, -} from '../types'; -import process from 'process'; +} from '../types.js'; +import process from 'node:process'; import { LogLevel } from '@matrixai/logger'; -import ErrorPolykey from 'polykey/dist/ErrorPolykey'; -import * as clientUtils from 'polykey/dist/client/utils'; -import * as clientErrors from 'polykey/dist/client/errors'; -import * as networkErrors from 'polykey/dist/network/errors'; -import * as utils from 'polykey/dist/utils'; -import polykeyConfig from 'polykey/dist/config'; -import * as binProcessors from './processors'; -import * as errors from '../errors'; +import ErrorPolykey from 'polykey/ErrorPolykey.js'; +import * as clientUtils from 'polykey/client/utils.js'; +import * as clientErrors from 'polykey/client/errors.js'; +import * as networkErrors from 'polykey/network/errors.js'; +import * as utils from 'polykey/utils/index.js'; +import polykeyConfig from 'polykey/config.js'; +import * as binProcessors from './processors.js'; +import * as errors from '../errors.js'; // @ts-ignore package.json is outside rootDir -import { version as versionCLI } from '../../package.json'; +import packageJson from '../../package.json' assert { type: 'json' }; /** * Convert verbosity to LogLevel @@ -606,7 +607,7 @@ const validEnvRegex = /[a-zA-Z_]+[a-zA-Z0-9_]*/; */ function generateVersionString(): string { const version = [ - versionCLI, + packageJson.version, polykeyConfig.sourceVersion, `${polykeyConfig.networkVersion}`, `${polykeyConfig.stateVersion}`, @@ -630,6 +631,12 @@ function promise(): PromiseDeconstructed { }; } +async function importFS(fs?: FileSystem): Promise { + if (fs != null) return fs; + const { default: fsImported } = await import('node:fs'); + return fsImported; +} + export { verboseToLogLevel, standardErrorReplacer, @@ -652,6 +659,7 @@ export { validEnvRegex, generateVersionString, promise, + importFS, }; export type { OutputObject }; diff --git a/src/vaults/CommandClone.ts b/src/vaults/CommandClone.ts index 0dd7a059..1b0f0757 100644 --- a/src/vaults/CommandClone.ts +++ b/src/vaults/CommandClone.ts @@ -1,10 +1,10 @@ -import type PolykeyClient from 'polykey/dist/PolykeyClient'; -import type { NodeId } from 'polykey/dist/ids/types'; -import CommandPolykey from '../CommandPolykey'; -import * as binUtils from '../utils'; -import * as binOptions from '../utils/options'; -import * as binProcessors from '../utils/processors'; -import * as binParsers from '../utils/parsers'; +import type PolykeyClient from 'polykey/PolykeyClient.js'; +import type { NodeId } from 'polykey/ids/types.js'; +import CommandPolykey from '../CommandPolykey.js'; +import * as binUtils from '../utils/index.js'; +import * as binOptions from '../utils/options.js'; +import * as binProcessors from '../utils/processors.js'; +import * as binParsers from '../utils/parsers.js'; class CommandClone extends CommandPolykey { constructor(...args: ConstructorParameters) { @@ -26,9 +26,9 @@ class CommandClone extends CommandPolykey { this.addOption(binOptions.clientPort); this.action(async (vaultNameOrId, nodeId: NodeId, options) => { const { default: PolykeyClient } = await import( - 'polykey/dist/PolykeyClient' + 'polykey/PolykeyClient.js' ); - const nodesUtils = await import('polykey/dist/nodes/utils'); + const nodesUtils = await import('polykey/nodes/utils.js'); const clientOptions = await binProcessors.processClientOptions( options.nodePath, options.nodeId, diff --git a/src/vaults/CommandCreate.ts b/src/vaults/CommandCreate.ts index 56880db2..a44310cb 100644 --- a/src/vaults/CommandCreate.ts +++ b/src/vaults/CommandCreate.ts @@ -1,10 +1,10 @@ -import type PolykeyClient from 'polykey/dist/PolykeyClient'; -import process from 'process'; -import CommandPolykey from '../CommandPolykey'; -import * as binUtils from '../utils'; -import * as binOptions from '../utils/options'; -import * as binProcessors from '../utils/processors'; -import * as binParsers from '../utils/parsers'; +import type PolykeyClient from 'polykey/PolykeyClient.js'; +import process from 'node:process'; +import CommandPolykey from '../CommandPolykey.js'; +import * as binUtils from '../utils/index.js'; +import * as binOptions from '../utils/options.js'; +import * as binProcessors from '../utils/processors.js'; +import * as binParsers from '../utils/parsers.js'; class CommandCreate extends CommandPolykey { constructor(...args: ConstructorParameters) { @@ -21,7 +21,7 @@ class CommandCreate extends CommandPolykey { this.addOption(binOptions.clientPort); this.action(async (vaultName, options) => { const { default: PolykeyClient } = await import( - 'polykey/dist/PolykeyClient' + 'polykey/PolykeyClient.js' ); const clientOptions = await binProcessors.processClientOptions( options.nodePath, diff --git a/src/vaults/CommandList.ts b/src/vaults/CommandList.ts index adb94f03..a5cd2e90 100644 --- a/src/vaults/CommandList.ts +++ b/src/vaults/CommandList.ts @@ -1,9 +1,9 @@ -import type PolykeyClient from 'polykey/dist/PolykeyClient'; -import process from 'process'; -import CommandPolykey from '../CommandPolykey'; -import * as binUtils from '../utils'; -import * as binOptions from '../utils/options'; -import * as binProcessors from '../utils/processors'; +import type PolykeyClient from 'polykey/PolykeyClient.js'; +import process from 'node:process'; +import CommandPolykey from '../CommandPolykey.js'; +import * as binUtils from '../utils/index.js'; +import * as binOptions from '../utils/options.js'; +import * as binProcessors from '../utils/processors.js'; class CommandList extends CommandPolykey { constructor(...args: ConstructorParameters) { @@ -16,7 +16,7 @@ class CommandList extends CommandPolykey { this.addOption(binOptions.clientPort); this.action(async (options) => { const { default: PolykeyClient } = await import( - 'polykey/dist/PolykeyClient' + 'polykey/PolykeyClient.js' ); const clientOptions = await binProcessors.processClientOptions( options.nodePath, diff --git a/src/vaults/CommandLog.ts b/src/vaults/CommandLog.ts index 7e2e5b77..f95fd934 100644 --- a/src/vaults/CommandLog.ts +++ b/src/vaults/CommandLog.ts @@ -1,10 +1,10 @@ -import type PolykeyClient from 'polykey/dist/PolykeyClient'; -import process from 'process'; -import CommandPolykey from '../CommandPolykey'; -import * as binUtils from '../utils'; -import * as binOptions from '../utils/options'; -import * as binProcessors from '../utils/processors'; -import * as binParsers from '../utils/parsers'; +import type PolykeyClient from 'polykey/PolykeyClient.js'; +import process from 'node:process'; +import CommandPolykey from '../CommandPolykey.js'; +import * as binUtils from '../utils/index.js'; +import * as binOptions from '../utils/options.js'; +import * as binProcessors from '../utils/processors.js'; +import * as binParsers from '../utils/parsers.js'; class CommandLog extends CommandPolykey { constructor(...args: ConstructorParameters) { @@ -23,7 +23,7 @@ class CommandLog extends CommandPolykey { this.addOption(binOptions.clientPort); this.action(async (vault, options) => { const { default: PolykeyClient } = await import( - 'polykey/dist/PolykeyClient' + 'polykey/PolykeyClient.js' ); const clientOptions = await binProcessors.processClientOptions( options.nodePath, diff --git a/src/vaults/CommandPermissions.ts b/src/vaults/CommandPermissions.ts index d69add09..ebead913 100644 --- a/src/vaults/CommandPermissions.ts +++ b/src/vaults/CommandPermissions.ts @@ -1,9 +1,9 @@ -import type PolykeyClient from 'polykey/dist/PolykeyClient'; -import * as binProcessors from '../utils/processors'; -import * as binUtils from '../utils'; -import CommandPolykey from '../CommandPolykey'; -import * as binOptions from '../utils/options'; -import * as binParsers from '../utils/parsers'; +import type PolykeyClient from 'polykey/PolykeyClient.js'; +import * as binProcessors from '../utils/processors.js'; +import * as binUtils from '../utils/index.js'; +import CommandPolykey from '../CommandPolykey.js'; +import * as binOptions from '../utils/options.js'; +import * as binParsers from '../utils/parsers.js'; class CommandPermissions extends CommandPolykey { constructor(...args: ConstructorParameters) { @@ -17,7 +17,7 @@ class CommandPermissions extends CommandPolykey { this.addOption(binOptions.clientPort); this.action(async (vaultName, options) => { const { default: PolykeyClient } = await import( - 'polykey/dist/PolykeyClient' + 'polykey/PolykeyClient.js' ); const clientOptions = await binProcessors.processClientOptions( options.nodePath, diff --git a/src/vaults/CommandPull.ts b/src/vaults/CommandPull.ts index 1a2b25f9..66e86929 100644 --- a/src/vaults/CommandPull.ts +++ b/src/vaults/CommandPull.ts @@ -1,10 +1,10 @@ -import type PolykeyClient from 'polykey/dist/PolykeyClient'; -import type { NodeId } from 'polykey/dist/ids/types'; -import CommandPolykey from '../CommandPolykey'; -import * as binUtils from '../utils'; -import * as binOptions from '../utils/options'; -import * as binProcessors from '../utils/processors'; -import * as binParsers from '../utils/parsers'; +import type PolykeyClient from 'polykey/PolykeyClient.js'; +import type { NodeId } from 'polykey/ids/types.js'; +import CommandPolykey from '../CommandPolykey.js'; +import * as binUtils from '../utils/index.js'; +import * as binOptions from '../utils/options.js'; +import * as binProcessors from '../utils/processors.js'; +import * as binParsers from '../utils/parsers.js'; class CommandPull extends CommandPolykey { constructor(...args: ConstructorParameters) { @@ -28,9 +28,9 @@ class CommandPull extends CommandPolykey { this.action( async (vaultNameOrId, targetNodeId: NodeId | undefined, options) => { const { default: PolykeyClient } = await import( - 'polykey/dist/PolykeyClient' + 'polykey/PolykeyClient.js' ); - const nodesUtils = await import('polykey/dist/nodes/utils'); + const nodesUtils = await import('polykey/nodes/utils.js'); const clientOptions = await binProcessors.processClientOptions( options.nodePath, options.nodeId, diff --git a/src/vaults/CommandRemove.ts b/src/vaults/CommandRemove.ts index 04cc7172..b8daa225 100644 --- a/src/vaults/CommandRemove.ts +++ b/src/vaults/CommandRemove.ts @@ -1,9 +1,9 @@ -import type PolykeyClient from 'polykey/dist/PolykeyClient'; -import CommandPolykey from '../CommandPolykey'; -import * as binUtils from '../utils'; -import * as binOptions from '../utils/options'; -import * as binProcessors from '../utils/processors'; -import * as binParsers from '../utils/parsers'; +import type PolykeyClient from 'polykey/PolykeyClient.js'; +import CommandPolykey from '../CommandPolykey.js'; +import * as binUtils from '../utils/index.js'; +import * as binOptions from '../utils/options.js'; +import * as binProcessors from '../utils/processors.js'; +import * as binParsers from '../utils/parsers.js'; class CommandDelete extends CommandPolykey { constructor(...args: ConstructorParameters) { @@ -21,7 +21,7 @@ class CommandDelete extends CommandPolykey { this.addOption(binOptions.clientPort); this.action(async (vaultName, options) => { const { default: PolykeyClient } = await import( - 'polykey/dist/PolykeyClient' + 'polykey/PolykeyClient.js' ); const clientOptions = await binProcessors.processClientOptions( options.nodePath, diff --git a/src/vaults/CommandRename.ts b/src/vaults/CommandRename.ts index 63af2e7d..4bfc3b7b 100644 --- a/src/vaults/CommandRename.ts +++ b/src/vaults/CommandRename.ts @@ -1,9 +1,9 @@ -import type PolykeyClient from 'polykey/dist/PolykeyClient'; -import CommandPolykey from '../CommandPolykey'; -import * as binUtils from '../utils'; -import * as binOptions from '../utils/options'; -import * as binProcessors from '../utils/processors'; -import * as binParsers from '../utils/parsers'; +import type PolykeyClient from 'polykey/PolykeyClient.js'; +import CommandPolykey from '../CommandPolykey.js'; +import * as binUtils from '../utils/index.js'; +import * as binOptions from '../utils/options.js'; +import * as binProcessors from '../utils/processors.js'; +import * as binParsers from '../utils/parsers.js'; class CommandRename extends CommandPolykey { constructor(...args: ConstructorParameters) { @@ -25,7 +25,7 @@ class CommandRename extends CommandPolykey { this.addOption(binOptions.clientPort); this.action(async (vaultName, newVaultName, options) => { const { default: PolykeyClient } = await import( - 'polykey/dist/PolykeyClient' + 'polykey/PolykeyClient.js' ); const clientOptions = await binProcessors.processClientOptions( options.nodePath, diff --git a/src/vaults/CommandScan.ts b/src/vaults/CommandScan.ts index e40db368..a477a4ab 100644 --- a/src/vaults/CommandScan.ts +++ b/src/vaults/CommandScan.ts @@ -1,8 +1,8 @@ -import type PolykeyClient from 'polykey/dist/PolykeyClient'; -import CommandPolykey from '../CommandPolykey'; -import * as binUtils from '../utils'; -import * as binOptions from '../utils/options'; -import * as binProcessors from '../utils/processors'; +import type PolykeyClient from 'polykey/PolykeyClient.js'; +import CommandPolykey from '../CommandPolykey.js'; +import * as binUtils from '../utils/index.js'; +import * as binOptions from '../utils/options.js'; +import * as binProcessors from '../utils/processors.js'; class CommandScan extends CommandPolykey { constructor(...args: ConstructorParameters) { @@ -15,7 +15,7 @@ class CommandScan extends CommandPolykey { this.addOption(binOptions.clientPort); this.action(async (nodeId, options) => { const { default: PolykeyClient } = await import( - 'polykey/dist/PolykeyClient' + 'polykey/PolykeyClient.js' ); const clientOptions = await binProcessors.processClientOptions( options.nodePath, diff --git a/src/vaults/CommandShare.ts b/src/vaults/CommandShare.ts index a6572567..ae7aeb95 100644 --- a/src/vaults/CommandShare.ts +++ b/src/vaults/CommandShare.ts @@ -1,10 +1,10 @@ -import type PolykeyClient from 'polykey/dist/PolykeyClient'; -import type { NodeId } from 'polykey/dist/ids/types'; -import CommandPolykey from '../CommandPolykey'; -import * as binUtils from '../utils'; -import * as binOptions from '../utils/options'; -import * as binProcessors from '../utils/processors'; -import * as binParsers from '../utils/parsers'; +import type PolykeyClient from 'polykey/PolykeyClient.js'; +import type { NodeId } from 'polykey/ids/types.js'; +import CommandPolykey from '../CommandPolykey.js'; +import * as binUtils from '../utils/index.js'; +import * as binOptions from '../utils/options.js'; +import * as binProcessors from '../utils/processors.js'; +import * as binParsers from '../utils/parsers.js'; class CommandShare extends CommandPolykey { constructor(...args: ConstructorParameters) { @@ -26,9 +26,9 @@ class CommandShare extends CommandPolykey { this.addOption(binOptions.clientPort); this.action(async (vaultName, nodeId: NodeId, options) => { const { default: PolykeyClient } = await import( - 'polykey/dist/PolykeyClient' + 'polykey/PolykeyClient.js' ); - const nodesUtils = await import('polykey/dist/nodes/utils'); + const nodesUtils = await import('polykey/nodes/utils.js'); const clientOptions = await binProcessors.processClientOptions( options.nodePath, options.nodeId, diff --git a/src/vaults/CommandUnshare.ts b/src/vaults/CommandUnshare.ts index 65ab2d5e..5a1ca99f 100644 --- a/src/vaults/CommandUnshare.ts +++ b/src/vaults/CommandUnshare.ts @@ -1,10 +1,10 @@ -import type PolykeyClient from 'polykey/dist/PolykeyClient'; -import type { NodeId } from 'polykey/dist/ids/types'; -import CommandPolykey from '../CommandPolykey'; -import * as binUtils from '../utils'; -import * as binOptions from '../utils/options'; -import * as binProcessors from '../utils/processors'; -import * as binParsers from '../utils/parsers'; +import type PolykeyClient from 'polykey/PolykeyClient.js'; +import type { NodeId } from 'polykey/ids/types.js'; +import CommandPolykey from '../CommandPolykey.js'; +import * as binUtils from '../utils/index.js'; +import * as binOptions from '../utils/options.js'; +import * as binProcessors from '../utils/processors.js'; +import * as binParsers from '../utils/parsers.js'; class CommandUnshare extends CommandPolykey { constructor(...args: ConstructorParameters) { @@ -26,9 +26,9 @@ class CommandUnshare extends CommandPolykey { this.addOption(binOptions.clientPort); this.action(async (vaultName, nodeId: NodeId, options) => { const { default: PolykeyClient } = await import( - 'polykey/dist/PolykeyClient' + 'polykey/PolykeyClient.js' ); - const nodesUtils = await import('polykey/dist/nodes/utils'); + const nodesUtils = await import('polykey/nodes/utils.js'); const clientOptions = await binProcessors.processClientOptions( options.nodePath, options.nodeId, diff --git a/src/vaults/CommandVaults.ts b/src/vaults/CommandVaults.ts index 7e433674..2933320e 100644 --- a/src/vaults/CommandVaults.ts +++ b/src/vaults/CommandVaults.ts @@ -1,16 +1,16 @@ -import CommandClone from './CommandClone'; -import CommandCreate from './CommandCreate'; -import CommandList from './CommandList'; -import CommandLog from './CommandLog'; -import CommandScan from './CommandScan'; -import CommandPermissions from './CommandPermissions'; -import CommandPull from './CommandPull'; -import CommandRemove from './CommandRemove'; -import CommandRename from './CommandRename'; -import CommandShare from './CommandShare'; -import CommandUnshare from './CommandUnshare'; -import CommandVersion from './CommandVersion'; -import CommandPolykey from '../CommandPolykey'; +import CommandClone from './CommandClone.js'; +import CommandCreate from './CommandCreate.js'; +import CommandList from './CommandList.js'; +import CommandLog from './CommandLog.js'; +import CommandScan from './CommandScan.js'; +import CommandPermissions from './CommandPermissions.js'; +import CommandPull from './CommandPull.js'; +import CommandRemove from './CommandRemove.js'; +import CommandRename from './CommandRename.js'; +import CommandShare from './CommandShare.js'; +import CommandUnshare from './CommandUnshare.js'; +import CommandVersion from './CommandVersion.js'; +import CommandPolykey from '../CommandPolykey.js'; class CommandVaults extends CommandPolykey { constructor(...args: ConstructorParameters) { diff --git a/src/vaults/CommandVersion.ts b/src/vaults/CommandVersion.ts index 8eb5cb7e..7f10a57d 100644 --- a/src/vaults/CommandVersion.ts +++ b/src/vaults/CommandVersion.ts @@ -1,9 +1,9 @@ -import type PolykeyClient from 'polykey/dist/PolykeyClient'; -import CommandPolykey from '../CommandPolykey'; -import * as binUtils from '../utils'; -import * as binOptions from '../utils/options'; -import * as binProcessors from '../utils/processors'; -import * as binParsers from '../utils/parsers'; +import type PolykeyClient from 'polykey/PolykeyClient.js'; +import CommandPolykey from '../CommandPolykey.js'; +import * as binUtils from '../utils/index.js'; +import * as binOptions from '../utils/options.js'; +import * as binProcessors from '../utils/processors.js'; +import * as binParsers from '../utils/parsers.js'; class CommandVersion extends CommandPolykey { constructor(...args: ConstructorParameters) { @@ -21,7 +21,7 @@ class CommandVersion extends CommandPolykey { this.addOption(binOptions.clientPort); this.action(async (vault, versionId, options) => { const { default: PolykeyClient } = await import( - 'polykey/dist/PolykeyClient' + 'polykey/PolykeyClient.js' ); const clientOptions = await binProcessors.processClientOptions( options.nodePath, diff --git a/src/vaults/index.ts b/src/vaults/index.ts index 28bf5618..97878554 100644 --- a/src/vaults/index.ts +++ b/src/vaults/index.ts @@ -1 +1 @@ -export { default } from './CommandVaults'; +export { default } from './CommandVaults.js'; diff --git a/tests/TestProvider.ts b/tests/TestProvider.ts index ccafa5c7..6dd31de3 100644 --- a/tests/TestProvider.ts +++ b/tests/TestProvider.ts @@ -1,4 +1,4 @@ -import type { POJO } from 'polykey/dist/types'; +import type { POJO } from 'polykey/types.js'; import type { ProviderId, IdentityId, @@ -6,17 +6,17 @@ import type { IdentityData, ProviderAuthenticateRequest, ProviderPaginationToken, -} from 'polykey/dist/identities/types'; +} from 'polykey/identities/types.js'; import type { IdentitySignedClaim, ProviderIdentityClaimId, -} from 'polykey/dist/identities/types'; -import type { SignedClaim } from 'polykey/dist/claims/types'; -import type { ClaimLinkIdentity } from 'polykey/dist/claims/payloads'; -import { Provider } from 'polykey/dist/identities'; -import * as identitiesUtils from 'polykey/dist/identities/utils'; -import * as identitiesErrors from 'polykey/dist/identities/errors'; -import * as tokenUtils from 'polykey/dist/tokens/utils'; +} from 'polykey/identities/types.js'; +import type { SignedClaim } from 'polykey/claims/types.js'; +import type { ClaimLinkIdentity } from 'polykey/claims/payloads/index.js'; +import { Provider } from 'polykey/identities/index.js'; +import * as identitiesUtils from 'polykey/identities/utils.js'; +import * as identitiesErrors from 'polykey/identities/errors.js'; +import * as tokenUtils from 'polykey/tokens/utils.js'; class TestProvider extends Provider { public readonly id: ProviderId; diff --git a/tests/agent/lock.test.ts b/tests/agent/lock.test.ts index 1d507e44..751ffad1 100644 --- a/tests/agent/lock.test.ts +++ b/tests/agent/lock.test.ts @@ -1,12 +1,15 @@ -import path from 'path'; -import fs from 'fs'; -import prompts from 'prompts'; +import path from 'node:path'; +import fs from 'node:fs'; +import { jest } from '@jest/globals'; import Logger, { LogLevel, StreamHandler } from '@matrixai/logger'; -import Session from 'polykey/dist/sessions/Session'; -import config from 'polykey/dist/config'; -import * as testUtils from '../utils'; +import Session from 'polykey/sessions/Session.js'; +import config from 'polykey/config.js'; +import * as testUtils from '../utils/index.js'; -jest.mock('prompts'); +jest.unstable_mockModule('prompts', () => ({ + default: jest.fn(), +})); +const { default: prompts } = await import('prompts'); describe('lock', () => { const logger = new Logger('lock test', LogLevel.WARN, [new StreamHandler()]); @@ -14,6 +17,7 @@ describe('lock', () => { let agentPassword: string; let agentClose: () => Promise; beforeEach(async () => { + prompts.mockClear(); ({ agentDir, agentPassword, agentClose } = await testUtils.setupTestAgent(logger)); }); @@ -28,13 +32,14 @@ describe('lock', () => { }, cwd: agentDir, }); - const { exitCode } = await testUtils.pkExec(['agent', 'lock'], { - env: { - PK_NODE_PATH: agentDir, - }, - cwd: agentDir, - }); - expect(exitCode).toBe(0); + await expect( + testUtils.pkExec(['agent', 'lock'], { + env: { + PK_NODE_PATH: agentDir, + }, + cwd: agentDir, + }), + ).resolves.toMatchObject({ exitCode: 0 }); const session = await Session.createSession({ sessionTokenPath: path.join(agentDir, config.paths.tokenBase), fs, @@ -45,29 +50,33 @@ describe('lock', () => { }); test('lock ensures re-authentication is required', async () => { const password = agentPassword; - prompts.mockClear(); prompts.mockImplementation(async (_opts: any) => { return { password }; }); - await testUtils.pkStdio(['agent', 'unlock'], { - env: { - PK_NODE_PATH: agentDir, - PK_PASSWORD: agentPassword, - }, - cwd: agentDir, - }); + await expect( + testUtils.pkStdio(['agent', 'unlock'], { + env: { + PK_NODE_PATH: agentDir, + PK_PASSWORD: agentPassword, + }, + cwd: agentDir, + }), + ).resolves.toMatchObject({ exitCode: 0 }); // Session token is deleted - await testUtils.pkStdio(['agent', 'lock'], { - env: { PK_NODE_PATH: agentDir }, - cwd: agentDir, - }); + await expect( + testUtils.pkStdio(['agent', 'lock'], { + env: { PK_NODE_PATH: agentDir }, + cwd: agentDir, + }), + ).resolves.toMatchObject({ exitCode: 0 }); // Will prompt to reauthenticate - await testUtils.pkStdio(['agent', 'status'], { - env: { PK_NODE_PATH: agentDir }, - cwd: agentDir, - }); + await expect( + testUtils.pkStdio(['agent', 'status'], { + env: { PK_NODE_PATH: agentDir }, + cwd: agentDir, + }), + ).resolves.toMatchObject({ exitCode: 0 }); // Prompted for password 1 time expect(prompts.mock.calls.length).toBe(1); - prompts.mockClear(); }); }); diff --git a/tests/agent/lockall.test.ts b/tests/agent/lockall.test.ts index b0a3fcc5..94bc70ec 100644 --- a/tests/agent/lockall.test.ts +++ b/tests/agent/lockall.test.ts @@ -1,16 +1,19 @@ -import path from 'path'; -import fs from 'fs'; -import prompts from 'prompts'; +import path from 'node:path'; +import fs from 'node:fs'; +import { jest } from '@jest/globals'; import Logger, { LogLevel, StreamHandler } from '@matrixai/logger'; -import Session from 'polykey/dist/sessions/Session'; -import config from 'polykey/dist/config'; -import * as errors from 'polykey/dist/errors'; -import * as testUtils from '../utils'; +import Session from 'polykey/sessions/Session.js'; +import config from 'polykey/config.js'; +import * as errors from 'polykey/errors.js'; +import * as testUtils from '../utils/index.js'; /** * Mock prompts module which is used prompt for password */ -jest.mock('prompts'); +jest.unstable_mockModule('prompts', () => ({ + default: jest.fn(), +})); +const { default: prompts } = await import('prompts'); describe('lockall', () => { const logger = new Logger('lockall test', LogLevel.WARN, [ @@ -20,6 +23,7 @@ describe('lockall', () => { let agentPassword; let agentClose; beforeEach(async () => { + prompts.mockClear(); ({ agentDir, agentPassword, agentClose } = await testUtils.setupTestAgent(logger)); }); @@ -27,18 +31,21 @@ describe('lockall', () => { await agentClose(); }); test('lockall deletes the session token', async () => { - await testUtils.pkExec(['agent', 'unlock'], { - env: { - PK_NODE_PATH: agentDir, - PK_PASSWORD: agentPassword, - }, - cwd: agentDir, - }); - const { exitCode } = await testUtils.pkExec(['agent', 'lockall'], { - env: { PK_NODE_PATH: agentDir }, - cwd: agentDir, - }); - expect(exitCode).toBe(0); + await expect( + testUtils.pkExec(['agent', 'unlock'], { + env: { + PK_NODE_PATH: agentDir, + PK_PASSWORD: agentPassword, + }, + cwd: agentDir, + }), + ).resolves.toMatchObject({ exitCode: 0 }); + await expect( + testUtils.pkExec(['agent', 'lockall'], { + env: { PK_NODE_PATH: agentDir }, + cwd: agentDir, + }), + ).resolves.toMatchObject({ exitCode: 0 }); const session = await Session.createSession({ sessionTokenPath: path.join(agentDir, config.paths.tokenBase), fs, @@ -49,38 +56,44 @@ describe('lockall', () => { }); test('lockall ensures re-authentication is required', async () => { const password = agentPassword; - await testUtils.pkStdio(['agent', 'unlock'], { - env: { - PK_NODE_PATH: agentDir, - PK_PASSWORD: agentPassword, - }, - cwd: agentDir, - }); - await testUtils.pkStdio(['agent', 'lockall'], { - env: { PK_NODE_PATH: agentDir }, - cwd: agentDir, - }); + await expect( + testUtils.pkStdio(['agent', 'unlock'], { + env: { + PK_NODE_PATH: agentDir, + PK_PASSWORD: agentPassword, + }, + cwd: agentDir, + }), + ).resolves.toMatchObject({ exitCode: 0 }); + await expect( + testUtils.pkStdio(['agent', 'lockall'], { + env: { PK_NODE_PATH: agentDir }, + cwd: agentDir, + }), + ).resolves.toMatchObject({ exitCode: 0 }); // Token is deleted, re-authentication is required - prompts.mockClear(); prompts.mockImplementation(async (_opts: any) => { return { password }; }); - await testUtils.pkStdio(['agent', 'status'], { - env: { PK_NODE_PATH: agentDir }, - cwd: agentDir, - }); + await expect( + testUtils.pkStdio(['agent', 'status'], { + env: { PK_NODE_PATH: agentDir }, + cwd: agentDir, + }), + ).resolves.toMatchObject({ exitCode: 0 }); // Prompted for password 1 time expect(prompts.mock.calls.length).toBe(1); - prompts.mockClear(); }); test('lockall causes old session tokens to fail', async () => { - await testUtils.pkExec(['agent', 'unlock'], { - env: { - PK_NODE_PATH: agentDir, - PK_PASSWORD: agentPassword, - }, - cwd: agentDir, - }); + await expect( + testUtils.pkExec(['agent', 'unlock'], { + env: { + PK_NODE_PATH: agentDir, + PK_PASSWORD: agentPassword, + }, + cwd: agentDir, + }), + ).resolves.toMatchObject({ exitCode: 0 }); const session = await Session.createSession({ sessionTokenPath: path.join(agentDir, config.paths.tokenBase), fs, @@ -88,13 +101,15 @@ describe('lockall', () => { }); const token = await session.readToken(); await session.stop(); - await testUtils.pkExec(['agent', 'lockall'], { - env: { - PK_NODE_PATH: agentDir, - PK_PASSWORD: agentPassword, - }, - cwd: agentDir, - }); + await expect( + testUtils.pkExec(['agent', 'lockall'], { + env: { + PK_NODE_PATH: agentDir, + PK_PASSWORD: agentPassword, + }, + cwd: agentDir, + }), + ).resolves.toMatchObject({ exitCode: 0 }); // Old token is invalid const { exitCode, stderr } = await testUtils.pkExec( ['agent', 'status', '--format', 'json'], diff --git a/tests/agent/start.test.ts b/tests/agent/start.test.ts index 3151c6ac..ec446802 100644 --- a/tests/agent/start.test.ts +++ b/tests/agent/start.test.ts @@ -1,19 +1,17 @@ -import type { RecoveryCode } from 'polykey/dist/keys/types'; -import type { StatusLive } from 'polykey/dist/status/types'; -import type { NodeId } from 'polykey/dist/ids/types'; -import type { Host, Port } from 'polykey/dist/network/types'; -import path from 'path'; -import fs from 'fs'; +import type { RecoveryCode } from 'polykey/keys/types.js'; +import type { StatusLive } from 'polykey/status/types.js'; +import type { NodeId } from 'polykey/ids/types.js'; +import path from 'node:path'; +import fs from 'node:fs'; import readline from 'readline'; -import process from 'process'; +import process from 'node:process'; import Logger, { LogLevel, StreamHandler } from '@matrixai/logger'; -import Status from 'polykey/dist/status/Status'; -import * as statusErrors from 'polykey/dist/status/errors'; -import config from 'polykey/dist/config'; -import * as keysUtils from 'polykey/dist/keys/utils'; -import { promise } from 'polykey/dist/utils'; -import * as nodesUtils from 'polykey/dist/nodes/utils'; -import * as testUtils from '../utils'; +import Status from 'polykey/status/Status.js'; +import * as statusErrors from 'polykey/status/errors.js'; +import config from 'polykey/config.js'; +import * as keysUtils from 'polykey/keys/utils/index.js'; +import { promise } from 'polykey/utils/index.js'; +import * as testUtils from '../utils/index.js'; describe('start', () => { const logger = new Logger('start test', LogLevel.WARN, [new StreamHandler()]); @@ -420,7 +418,6 @@ describe('start', () => { 'none', '--seed-nodes', '', - '--verbose', ], { env: { @@ -438,7 +435,19 @@ describe('start', () => { rlOut.once('line', resolve); rlOut.once('close', () => reject(Error('closed early'))); }); + const status = new Status({ + statusPath: path.join(dataDir, 'polykey', config.paths.statusBase), + statusLockPath: path.join( + dataDir, + 'polykey', + config.paths.statusLockBase, + ), + fs, + logger, + }); + await status.waitFor('LIVE'); agentProcess1.kill('SIGHUP'); + await status.waitFor('DEAD'); const agentProcess2 = await testUtils.pkSpawn( [ 'agent', @@ -464,16 +473,6 @@ describe('start', () => { }, logger, ); - const status = new Status({ - statusPath: path.join(dataDir, 'polykey', config.paths.statusBase), - statusLockPath: path.join( - dataDir, - 'polykey', - config.paths.statusLockBase, - ), - fs, - logger, - }); await status.waitFor('LIVE'); agentProcess2.kill('SIGHUP'); // Check for graceful exit @@ -881,9 +880,9 @@ describe('start', () => { let seedNodeId1: NodeId; let seedNodeHost1: string; let seedNodePort1: number; - let seedNodeId2: NodeId; - let seedNodeHost2: string; - let seedNodePort2: number; + let _seedNodeId2: NodeId; + let _seedNodeHost2: string; + let _seedNodePort2: number; beforeEach(async () => { // Additional seed node agentDataDir = await fs.promises.mkdtemp( @@ -896,9 +895,9 @@ describe('start', () => { seedNodeId1 = agent1Status.data.nodeId; seedNodeHost1 = agent1Status.data.agentHost; seedNodePort1 = agent1Status.data.agentPort; - seedNodeId2 = agent2Status.data.nodeId; - seedNodeHost2 = agent2Status.data.agentHost; - seedNodePort2 = agent2Status.data.agentPort; + _seedNodeId2 = agent2Status.data.nodeId; + _seedNodeHost2 = agent2Status.data.agentHost; + _seedNodePort2 = agent2Status.data.agentPort; }); afterEach(async () => { await agent1Close(); @@ -921,16 +920,6 @@ describe('start', () => { fs, logger, }); - const mockedResolveSeedNodes = jest.spyOn( - nodesUtils, - 'resolveSeednodes', - ); - mockedResolveSeedNodes.mockResolvedValue({ - [nodesUtils.encodeNodeId(seedNodeId2)]: [ - seedNodeHost2 as Host, - seedNodePort2 as Port, - ], - }); // Record await testUtils.pkStdio( [ @@ -943,7 +932,7 @@ describe('start', () => { '--workers', 'none', '--seed-nodes', - `${seedNodeId1}@${seedNodeHost1}:${seedNodePort1};`, + `${seedNodeId1}@${seedNodeHost1}:${seedNodePort1};`, '--seed-nodes', '', '--verbose', @@ -967,7 +956,6 @@ describe('start', () => { }, cwd: dataDir, }); - mockedResolveSeedNodes.mockRestore(); await status.waitFor('DEAD'); }, globalThis.defaultTimeout * 2, @@ -985,16 +973,6 @@ describe('start', () => { fs, logger, }); - const mockedResolveSeedNodes = jest.spyOn( - nodesUtils, - 'resolveSeednodes', - ); - mockedResolveSeedNodes.mockResolvedValue({ - [nodesUtils.encodeNodeId(seedNodeId2)]: [ - seedNodeHost2 as Host, - seedNodePort2 as Port, - ], - }); await testUtils.pkStdio( [ 'agent', @@ -1015,7 +993,7 @@ describe('start', () => { PK_PASSWORD: password, PK_PASSWORD_OPS_LIMIT: 'min', PK_PASSWORD_MEM_LIMIT: 'min', - PK_SEED_NODES: `;${seedNodeId1}@${seedNodeHost1}:${seedNodePort1}`, + PK_SEED_NODES: `${seedNodeId1}@${seedNodeHost1}:${seedNodePort1}`, PK_NETWORK: 'testnet', }, cwd: dataDir, @@ -1030,7 +1008,6 @@ describe('start', () => { }, cwd: dataDir, }); - mockedResolveSeedNodes.mockRestore(); await status.waitFor('DEAD'); }, globalThis.defaultTimeout * 2, diff --git a/tests/agent/status.test.ts b/tests/agent/status.test.ts index e23e12bc..cb792139 100644 --- a/tests/agent/status.test.ts +++ b/tests/agent/status.test.ts @@ -1,10 +1,10 @@ -import path from 'path'; -import fs from 'fs'; +import path from 'node:path'; +import fs from 'node:fs'; import Logger, { LogLevel, StreamHandler } from '@matrixai/logger'; -import Status from 'polykey/dist/status/Status'; -import * as nodesUtils from 'polykey/dist/nodes/utils'; -import config from 'polykey/dist/config'; -import * as testUtils from '../utils'; +import Status from 'polykey/status/Status.js'; +import * as nodesUtils from 'polykey/nodes/utils.js'; +import config from 'polykey/config.js'; +import * as testUtils from '../utils/index.js'; describe('status', () => { const logger = new Logger('status test', LogLevel.WARN, [ diff --git a/tests/agent/stop.test.ts b/tests/agent/stop.test.ts index ba924f28..740c07aa 100644 --- a/tests/agent/stop.test.ts +++ b/tests/agent/stop.test.ts @@ -1,12 +1,12 @@ -import path from 'path'; -import fs from 'fs'; +import path from 'node:path'; +import fs from 'node:fs'; import Logger, { LogLevel, StreamHandler } from '@matrixai/logger'; -import Status from 'polykey/dist/status/Status'; -import config from 'polykey/dist/config'; -import { sleep } from 'polykey/dist/utils'; -import * as clientErrors from 'polykey/dist/client/errors'; -import * as binErrors from '@/errors'; -import * as testUtils from '../utils'; +import Status from 'polykey/status/Status.js'; +import config from 'polykey/config.js'; +import { sleep } from 'polykey/utils/index.js'; +import * as clientErrors from 'polykey/client/errors.js'; +import * as testUtils from '../utils/index.js'; +import * as binErrors from '#errors.js'; describe('stop', () => { const logger = new Logger('stop test', LogLevel.WARN, [new StreamHandler()]); diff --git a/tests/agent/unlock.test.ts b/tests/agent/unlock.test.ts index 408bee78..dbaf7c34 100644 --- a/tests/agent/unlock.test.ts +++ b/tests/agent/unlock.test.ts @@ -1,9 +1,9 @@ -import path from 'path'; -import fs from 'fs'; +import path from 'node:path'; +import fs from 'node:fs'; import Logger, { LogLevel, StreamHandler } from '@matrixai/logger'; -import Session from 'polykey/dist/sessions/Session'; -import config from 'polykey/dist/config'; -import * as testUtils from '../utils'; +import Session from 'polykey/sessions/Session.js'; +import config from 'polykey/config.js'; +import * as testUtils from '../utils/index.js'; describe('unlock', () => { const logger = new Logger('unlock test', LogLevel.WARN, [ diff --git a/tests/audit/audit.test.ts b/tests/audit/audit.test.ts index 9b8429e8..540500c7 100644 --- a/tests/audit/audit.test.ts +++ b/tests/audit/audit.test.ts @@ -1,16 +1,17 @@ -import type { GestaltIdEncoded } from 'polykey/dist/gestalts/types'; -import path from 'path'; -import fs from 'fs'; +import type { GestaltIdEncoded } from 'polykey/gestalts/types.js'; +import path from 'node:path'; +import fs from 'node:fs'; +import { jest } from '@jest/globals'; import Logger, { LogLevel, StreamHandler } from '@matrixai/logger'; -import PolykeyAgent from 'polykey/dist/PolykeyAgent'; -import * as identitiesUtils from 'polykey/dist/identities/utils'; -import * as keysUtils from 'polykey/dist/keys/utils'; -import * as discoveryEvents from 'polykey/dist/discovery/events'; -import { sleep } from 'polykey/dist/utils'; -import * as testUtils from '../utils'; +import PolykeyAgent from 'polykey/PolykeyAgent.js'; +import * as keysUtils from 'polykey/keys/utils/index.js'; +import * as discoveryEvents from 'polykey/discovery/events.js'; +import { sleep } from 'polykey/utils/index.js'; +import * as testUtils from '../utils/index.js'; -// @ts-ignore: stub out method -identitiesUtils.browser = () => {}; +jest.unstable_mockModule('polykey/identities/utils.js', () => ({ + browser: jest.fn().mockImplementation(() => {}), +})); describe('audit', () => { const logger = new Logger('audit test', LogLevel.WARN, [new StreamHandler()]); diff --git a/tests/bootstrap.test.ts b/tests/bootstrap.test.ts index 6a2e53b6..c5d491e9 100644 --- a/tests/bootstrap.test.ts +++ b/tests/bootstrap.test.ts @@ -1,12 +1,12 @@ import type { IChain } from 'nexpect'; -import path from 'path'; -import fs from 'fs'; +import path from 'node:path'; +import fs from 'node:fs'; import readline from 'readline'; import Logger, { LogLevel, StreamHandler } from '@matrixai/logger'; -import { errors as statusErrors } from 'polykey/dist/status'; -import { errors as bootstrapErrors } from 'polykey/dist/bootstrap'; -import * as keysUtils from 'polykey/dist/keys/utils'; -import * as testUtils from './utils'; +import { errors as statusErrors } from 'polykey/status/index.js'; +import { errors as bootstrapErrors } from 'polykey/bootstrap/index.js'; +import * as keysUtils from 'polykey/keys/utils/index.js'; +import * as testUtils from './utils/index.js'; describe('bootstrap', () => { const logger = new Logger('bootstrap test', LogLevel.WARN, [ diff --git a/tests/globalSetup.ts b/tests/globalSetup.ts index fde41220..c20d44fa 100644 --- a/tests/globalSetup.ts +++ b/tests/globalSetup.ts @@ -1,5 +1,5 @@ /* eslint-disable no-console */ -import process from 'process'; +import process from 'node:process'; /** * Global setup for all jest tests diff --git a/tests/globalTeardown.ts b/tests/globalTeardown.ts index 0e3e5d30..6c4a43db 100644 --- a/tests/globalTeardown.ts +++ b/tests/globalTeardown.ts @@ -1,5 +1,5 @@ /* eslint-disable no-console */ -import fs from 'fs'; +import fs from 'node:fs'; /** * Global teardown for all jest tests diff --git a/tests/identities/allowDisallowPermissions.test.ts b/tests/identities/allowDisallowPermissions.test.ts index 78e8806c..4b515d11 100644 --- a/tests/identities/allowDisallowPermissions.test.ts +++ b/tests/identities/allowDisallowPermissions.test.ts @@ -1,22 +1,23 @@ -import type { Host, Port } from 'polykey/dist/network/types'; -import type { IdentityId, ProviderId } from 'polykey/dist/identities/types'; -import type { NodeId } from 'polykey/dist/ids/types'; -import type { ClaimLinkIdentity } from 'polykey/dist/claims/payloads'; -import type { SignedClaim } from 'polykey/dist/claims/types'; -import path from 'path'; -import fs from 'fs'; +import type { Host, Port } from 'polykey/network/types.js'; +import type { IdentityId, ProviderId } from 'polykey/identities/types.js'; +import type { NodeId } from 'polykey/ids/types.js'; +import type { ClaimLinkIdentity } from 'polykey/claims/payloads/index.js'; +import type { SignedClaim } from 'polykey/claims/types.js'; +import path from 'node:path'; +import fs from 'node:fs'; +import { jest } from '@jest/globals'; import Logger, { LogLevel, StreamHandler } from '@matrixai/logger'; -import PolykeyAgent from 'polykey/dist/PolykeyAgent'; -import { sysexits } from 'polykey/dist/utils'; -import * as nodesUtils from 'polykey/dist/nodes/utils'; -import * as identitiesUtils from 'polykey/dist/identities/utils'; -import * as keysUtils from 'polykey/dist/keys/utils'; -import { encodeProviderIdentityId } from 'polykey/dist/identities/utils'; -import TestProvider from '../TestProvider'; -import * as testUtils from '../utils'; +import PolykeyAgent from 'polykey/PolykeyAgent.js'; +import { sysexits } from 'polykey/utils/index.js'; +import * as nodesUtils from 'polykey/nodes/utils.js'; +import * as keysUtils from 'polykey/keys/utils/index.js'; +import { encodeProviderIdentityId } from 'polykey/identities/utils.js'; +import TestProvider from '../TestProvider.js'; +import * as testUtils from '../utils/index.js'; -// @ts-ignore: stub out method -identitiesUtils.browser = () => {}; +jest.unstable_mockModule('polykey/identities/utils.js', () => ({ + browser: jest.fn().mockImplementation(() => {}), +})); describe('allow/disallow/permissions', () => { const logger = new Logger('allow/disallow/permissions test', LogLevel.WARN, [ diff --git a/tests/identities/authenticateAuthenticated.test.ts b/tests/identities/authenticateAuthenticated.test.ts index cb378296..821150fe 100644 --- a/tests/identities/authenticateAuthenticated.test.ts +++ b/tests/identities/authenticateAuthenticated.test.ts @@ -1,16 +1,17 @@ -import type { IdentityId, ProviderId } from 'polykey/dist/identities/types'; -import path from 'path'; -import fs from 'fs'; +import type { IdentityId, ProviderId } from 'polykey/identities/types.js'; +import path from 'node:path'; +import fs from 'node:fs'; import Logger, { LogLevel, StreamHandler } from '@matrixai/logger'; -import PolykeyAgent from 'polykey/dist/PolykeyAgent'; -import { sysexits } from 'polykey/dist/utils'; -import * as identitiesUtils from 'polykey/dist/identities/utils'; -import * as keysUtils from 'polykey/dist/keys/utils'; -import TestProvider from '../TestProvider'; -import * as testUtils from '../utils'; +import { jest } from '@jest/globals'; +import PolykeyAgent from 'polykey/PolykeyAgent.js'; +import { sysexits } from 'polykey/utils/index.js'; +import * as keysUtils from 'polykey/keys/utils/index.js'; +import TestProvider from '../TestProvider.js'; +import * as testUtils from '../utils/index.js'; -// @ts-ignore: stub out method -identitiesUtils.browser = () => {}; +jest.unstable_mockModule('polykey/identities/utils.js', () => ({ + browser: jest.fn().mockImplementation(() => {}), +})); describe('authenticate/authenticated', () => { const logger = new Logger('authenticate/authenticated test', LogLevel.WARN, [ diff --git a/tests/identities/claim.test.ts b/tests/identities/claim.test.ts index c35c658b..30f76723 100644 --- a/tests/identities/claim.test.ts +++ b/tests/identities/claim.test.ts @@ -2,19 +2,20 @@ import type { IdentityId, ProviderId, ProviderIdentityClaimId, -} from 'polykey/dist/identities/types'; -import path from 'path'; -import fs from 'fs'; +} from 'polykey/identities/types.js'; +import path from 'node:path'; +import fs from 'node:fs'; +import { jest } from '@jest/globals'; import Logger, { LogLevel, StreamHandler } from '@matrixai/logger'; -import PolykeyAgent from 'polykey/dist/PolykeyAgent'; -import { sysexits } from 'polykey/dist/utils'; -import * as identitiesUtils from 'polykey/dist/identities/utils'; -import * as keysUtils from 'polykey/dist/keys/utils'; -import TestProvider from '../TestProvider'; -import * as testUtils from '../utils'; +import PolykeyAgent from 'polykey/PolykeyAgent.js'; +import { sysexits } from 'polykey/utils/index.js'; +import * as keysUtils from 'polykey/keys/utils/index.js'; +import TestProvider from '../TestProvider.js'; +import * as testUtils from '../utils/index.js'; -// @ts-ignore: stub out method -identitiesUtils.browser = () => {}; +jest.unstable_mockModule('polykey/identities/utils.js', () => ({ + browser: jest.fn().mockImplementation(() => {}), +})); describe('claim', () => { const logger = new Logger('claim test', LogLevel.WARN, [new StreamHandler()]); diff --git a/tests/identities/discoverGet.test.ts b/tests/identities/discoverGet.test.ts index e22901f9..ca04c05a 100644 --- a/tests/identities/discoverGet.test.ts +++ b/tests/identities/discoverGet.test.ts @@ -1,19 +1,20 @@ -import type { IdentityId, ProviderId } from 'polykey/dist/identities/types'; -import type { Host, Port } from 'polykey/dist/network/types'; -import type { NodeId } from 'polykey/dist/ids/types'; -import path from 'path'; -import fs from 'fs'; +import type { IdentityId, ProviderId } from 'polykey/identities/types.js'; +import type { Host, Port } from 'polykey/network/types.js'; +import type { NodeId } from 'polykey/ids/types.js'; +import path from 'node:path'; +import fs from 'node:fs'; import Logger, { LogLevel, StreamHandler } from '@matrixai/logger'; -import PolykeyAgent from 'polykey/dist/PolykeyAgent'; -import { sysexits } from 'polykey/dist/utils'; -import * as nodesUtils from 'polykey/dist/nodes/utils'; -import * as identitiesUtils from 'polykey/dist/identities/utils'; -import * as keysUtils from 'polykey/dist/keys/utils'; -import TestProvider from '../TestProvider'; -import * as testUtils from '../utils'; +import { jest } from '@jest/globals'; +import PolykeyAgent from 'polykey/PolykeyAgent.js'; +import { sysexits } from 'polykey/utils/index.js'; +import * as nodesUtils from 'polykey/nodes/utils.js'; +import * as keysUtils from 'polykey/keys/utils/index.js'; +import TestProvider from '../TestProvider.js'; +import * as testUtils from '../utils/index.js'; -// @ts-ignore: stub out method -identitiesUtils.browser = () => {}; +jest.unstable_mockModule('polykey/identities/utils.js', () => ({ + browser: jest.fn().mockImplementation(() => {}), +})); describe('discover/get', () => { const logger = new Logger('discover/get test', LogLevel.WARN, [ diff --git a/tests/identities/discoverQueue.test.ts b/tests/identities/discoverQueue.test.ts index 7a062e06..3c73e079 100644 --- a/tests/identities/discoverQueue.test.ts +++ b/tests/identities/discoverQueue.test.ts @@ -1,10 +1,10 @@ -import type { IdentityId, ProviderId } from 'polykey/dist/identities/types'; -import path from 'path'; -import fs from 'fs'; +import type { IdentityId, ProviderId } from 'polykey/identities/types.js'; +import path from 'node:path'; +import fs from 'node:fs'; import Logger, { LogLevel, StreamHandler } from '@matrixai/logger'; -import PolykeyAgent from 'polykey/dist/PolykeyAgent'; -import * as keysUtils from 'polykey/dist/keys/utils'; -import * as testUtils from '../utils'; +import PolykeyAgent from 'polykey/PolykeyAgent.js'; +import * as keysUtils from 'polykey/keys/utils/index.js'; +import * as testUtils from '../utils/index.js'; describe('discovery queue', () => { const logger = new Logger('discovery queue test', LogLevel.WARN, [ diff --git a/tests/identities/search.test.ts b/tests/identities/search.test.ts index 4dc5fbe4..4c1dd977 100644 --- a/tests/identities/search.test.ts +++ b/tests/identities/search.test.ts @@ -2,19 +2,20 @@ import type { IdentityData, IdentityId, ProviderId, -} from 'polykey/dist/identities/types'; -import path from 'path'; -import fs from 'fs'; +} from 'polykey/identities/types.js'; +import path from 'node:path'; +import fs from 'node:fs'; +import { jest } from '@jest/globals'; import Logger, { LogLevel, StreamHandler } from '@matrixai/logger'; -import PolykeyAgent from 'polykey/dist/PolykeyAgent'; -import { sysexits } from 'polykey/dist/utils'; -import * as identitiesUtils from 'polykey/dist/identities/utils'; -import * as keysUtils from 'polykey/dist/keys/utils'; -import TestProvider from '../TestProvider'; -import * as testUtils from '../utils'; +import PolykeyAgent from 'polykey/PolykeyAgent.js'; +import { sysexits } from 'polykey/utils/index.js'; +import * as keysUtils from 'polykey/keys/utils/index.js'; +import TestProvider from '../TestProvider.js'; +import * as testUtils from '../utils/index.js'; -// @ts-ignore: stub out method -identitiesUtils.browser = () => {}; +jest.unstable_mockModule('polykey/identities/utils.js', () => ({ + browser: jest.fn().mockImplementation(() => {}), +})); describe('search', () => { const logger = new Logger('search test', LogLevel.WARN, [ diff --git a/tests/identities/trustUntrustList.test.ts b/tests/identities/trustUntrustList.test.ts index 57d8678b..7332816e 100644 --- a/tests/identities/trustUntrustList.test.ts +++ b/tests/identities/trustUntrustList.test.ts @@ -1,19 +1,20 @@ -import type { Host, Port } from 'polykey/dist/network/types'; -import type { IdentityId, ProviderId } from 'polykey/dist/identities/types'; -import type { NodeId } from 'polykey/dist/ids/types'; -import path from 'path'; -import fs from 'fs'; +import type { Host, Port } from 'polykey/network/types.js'; +import type { IdentityId, ProviderId } from 'polykey/identities/types.js'; +import type { NodeId } from 'polykey/ids/types.js'; +import path from 'node:path'; +import fs from 'node:fs'; +import { jest } from '@jest/globals'; import Logger, { LogLevel, StreamHandler } from '@matrixai/logger'; -import PolykeyAgent from 'polykey/dist/PolykeyAgent'; -import { sysexits } from 'polykey/dist/utils'; -import * as nodesUtils from 'polykey/dist/nodes/utils'; -import * as identitiesUtils from 'polykey/dist/identities/utils'; -import * as keysUtils from 'polykey/dist/keys/utils'; -import TestProvider from '../TestProvider'; -import * as testUtils from '../utils'; +import PolykeyAgent from 'polykey/PolykeyAgent.js'; +import { sysexits } from 'polykey/utils/index.js'; +import * as nodesUtils from 'polykey/nodes/utils.js'; +import * as keysUtils from 'polykey/keys/utils/index.js'; +import TestProvider from '../TestProvider.js'; +import * as testUtils from '../utils/index.js'; -// @ts-ignore: stub out method -identitiesUtils.browser = () => {}; +jest.unstable_mockModule('polykey/identities/utils.js', () => ({ + browser: jest.fn().mockImplementation(() => {}), +})); describe('trust/untrust/list', () => { const logger = new Logger('trust/untrust/list test', LogLevel.WARN, [ diff --git a/tests/integration/docker/docker.test.ts b/tests/integration/docker/docker.test.ts index 58f17743..1cf0f60d 100644 --- a/tests/integration/docker/docker.test.ts +++ b/tests/integration/docker/docker.test.ts @@ -1,12 +1,12 @@ -import path from 'path'; -import fs from 'fs'; +import path from 'node:path'; +import fs from 'node:fs'; import readline from 'readline'; -import { sleep } from 'polykey/dist/utils'; -import Status from 'polykey/dist/status/Status'; -import config from 'polykey/dist/config'; +import { sleep } from 'polykey/utils/index.js'; +import Status from 'polykey/status/Status.js'; +import config from 'polykey/config.js'; import Logger, { LogLevel, StreamHandler } from '@matrixai/logger'; -import { encodeNodeId } from 'polykey/dist/ids'; -import * as testUtils from '../../utils'; +import { encodeNodeId } from 'polykey/ids/index.js'; +import * as testUtils from '../../utils/index.js'; /** * These tests run against a docker image of a PolykeyAgent. diff --git a/tests/keys/cert.test.ts b/tests/keys/cert.test.ts index 7e118a8c..8db4c3e4 100644 --- a/tests/keys/cert.test.ts +++ b/tests/keys/cert.test.ts @@ -1,5 +1,5 @@ import Logger, { LogLevel, StreamHandler } from '@matrixai/logger'; -import * as testUtils from '../utils'; +import * as testUtils from '../utils/index.js'; describe('cert', () => { const logger = new Logger('cert test', LogLevel.WARN, [new StreamHandler()]); diff --git a/tests/keys/certchain.test.ts b/tests/keys/certchain.test.ts index 2dede7f2..74752896 100644 --- a/tests/keys/certchain.test.ts +++ b/tests/keys/certchain.test.ts @@ -1,5 +1,5 @@ import Logger, { LogLevel, StreamHandler } from '@matrixai/logger'; -import * as testUtils from '../utils'; +import * as testUtils from '../utils/index.js'; describe('certchain', () => { const logger = new Logger('certchain test', LogLevel.WARN, [ diff --git a/tests/keys/encryptDecrypt.test.ts b/tests/keys/encryptDecrypt.test.ts index e1197d47..5cdd74d5 100644 --- a/tests/keys/encryptDecrypt.test.ts +++ b/tests/keys/encryptDecrypt.test.ts @@ -1,11 +1,11 @@ -import type { StatusLive } from 'polykey/dist/status/types'; -import path from 'path'; -import fs from 'fs'; +import type { StatusLive } from 'polykey/status/types.js'; +import path from 'node:path'; +import fs from 'node:fs'; import Logger, { LogLevel, StreamHandler } from '@matrixai/logger'; -import * as keysUtils from 'polykey/dist/keys/utils'; -import * as nodesUtils from 'polykey/dist/nodes/utils'; -import sysexits from 'polykey/dist/utils/sysexits'; -import * as testUtils from '../utils'; +import * as keysUtils from 'polykey/keys/utils/index.js'; +import * as nodesUtils from 'polykey/nodes/utils.js'; +import sysexits from 'polykey/utils/sysexits.js'; +import * as testUtils from '../utils/index.js'; describe('encrypt-decrypt', () => { const logger = new Logger('encrypt-decrypt test', LogLevel.WARN, [ diff --git a/tests/keys/keypair.test.ts b/tests/keys/keypair.test.ts index 18a8ef06..853aa07f 100644 --- a/tests/keys/keypair.test.ts +++ b/tests/keys/keypair.test.ts @@ -1,5 +1,5 @@ import Logger, { LogLevel, StreamHandler } from '@matrixai/logger'; -import * as testUtils from '../utils'; +import * as testUtils from '../utils/index.js'; describe('keypair', () => { const logger = new Logger('keypair test', LogLevel.WARN, [ diff --git a/tests/keys/password.test.ts b/tests/keys/password.test.ts index bb568cbd..ac2de74d 100644 --- a/tests/keys/password.test.ts +++ b/tests/keys/password.test.ts @@ -1,7 +1,7 @@ -import path from 'path'; -import fs from 'fs'; +import path from 'node:path'; +import fs from 'node:fs'; import Logger, { LogLevel, StreamHandler } from '@matrixai/logger'; -import * as testUtils from '../utils'; +import * as testUtils from '../utils/index.js'; describe('password', () => { const logger = new Logger('password test', LogLevel.WARN, [ diff --git a/tests/keys/private.test.ts b/tests/keys/private.test.ts index f7dc5020..16d38b39 100644 --- a/tests/keys/private.test.ts +++ b/tests/keys/private.test.ts @@ -1,5 +1,5 @@ import Logger, { LogLevel, StreamHandler } from '@matrixai/logger'; -import * as testUtils from '../utils'; +import * as testUtils from '../utils/index.js'; describe('private', () => { const logger = new Logger('private test', LogLevel.WARN, [ diff --git a/tests/keys/public.test.ts b/tests/keys/public.test.ts index ca45c55a..9d4a215e 100644 --- a/tests/keys/public.test.ts +++ b/tests/keys/public.test.ts @@ -1,5 +1,5 @@ import Logger, { LogLevel, StreamHandler } from '@matrixai/logger'; -import * as testUtils from '../utils'; +import * as testUtils from '../utils/index.js'; describe('public', () => { const logger = new Logger('public test', LogLevel.WARN, [ diff --git a/tests/keys/renew.test.ts b/tests/keys/renew.test.ts index 938da9a6..6b2aa95a 100644 --- a/tests/keys/renew.test.ts +++ b/tests/keys/renew.test.ts @@ -1,11 +1,11 @@ -import path from 'path'; -import fs from 'fs'; +import path from 'node:path'; +import fs from 'node:fs'; import Logger, { LogLevel, StreamHandler } from '@matrixai/logger'; -import PolykeyAgent from 'polykey/dist/PolykeyAgent'; -import * as keysUtils from 'polykey/dist/keys/utils'; -import * as nodesUtils from 'polykey/dist/nodes/utils'; -import { sleep } from 'polykey/dist/utils'; -import * as testUtils from '../utils'; +import PolykeyAgent from 'polykey/PolykeyAgent.js'; +import * as keysUtils from 'polykey/keys/utils/index.js'; +import * as nodesUtils from 'polykey/nodes/utils.js'; +import { sleep } from 'polykey/utils/index.js'; +import * as testUtils from '../utils/index.js'; describe('renew', () => { const logger = new Logger('renew test', LogLevel.WARN, [new StreamHandler()]); diff --git a/tests/keys/reset.test.ts b/tests/keys/reset.test.ts index a37a099e..a4ccd4b9 100644 --- a/tests/keys/reset.test.ts +++ b/tests/keys/reset.test.ts @@ -1,11 +1,11 @@ -import path from 'path'; -import fs from 'fs'; +import path from 'node:path'; +import fs from 'node:fs'; import Logger, { LogLevel, StreamHandler } from '@matrixai/logger'; -import PolykeyAgent from 'polykey/dist/PolykeyAgent'; -import * as keysUtils from 'polykey/dist/keys/utils'; -import * as nodesUtils from 'polykey/dist/nodes/utils'; -import { sleep } from 'polykey/dist/utils'; -import * as testUtils from '../utils'; +import PolykeyAgent from 'polykey/PolykeyAgent.js'; +import * as keysUtils from 'polykey/keys/utils/index.js'; +import * as nodesUtils from 'polykey/nodes/utils.js'; +import { sleep } from 'polykey/utils/index.js'; +import * as testUtils from '../utils/index.js'; describe('reset', () => { const logger = new Logger('reset test', LogLevel.WARN, [new StreamHandler()]); diff --git a/tests/keys/signVerify.test.ts b/tests/keys/signVerify.test.ts index 2de5ab6f..29ec131e 100644 --- a/tests/keys/signVerify.test.ts +++ b/tests/keys/signVerify.test.ts @@ -1,12 +1,12 @@ -import type { StatusLive } from 'polykey/dist/status/types'; -import type { Signature } from 'polykey/dist/keys/types'; -import path from 'path'; -import fs from 'fs'; +import type { StatusLive } from 'polykey/status/types.js'; +import type { Signature } from 'polykey/keys/types.js'; +import path from 'node:path'; +import fs from 'node:fs'; import Logger, { LogLevel, StreamHandler } from '@matrixai/logger'; -import * as keysUtils from 'polykey/dist/keys/utils'; -import * as nodesUtils from 'polykey/dist/nodes/utils'; -import sysexits from 'polykey/dist/utils/sysexits'; -import * as testUtils from '../utils'; +import * as keysUtils from 'polykey/keys/utils/index.js'; +import * as nodesUtils from 'polykey/nodes/utils.js'; +import sysexits from 'polykey/utils/sysexits.js'; +import * as testUtils from '../utils/index.js'; describe('sign-verify', () => { const logger = new Logger('sign-verify test', LogLevel.WARN, [ diff --git a/tests/nat/DMZ.test.ts b/tests/nat/DMZ.test.ts index 65b7185f..c7948190 100644 --- a/tests/nat/DMZ.test.ts +++ b/tests/nat/DMZ.test.ts @@ -1,19 +1,19 @@ -import os from 'os'; -import path from 'path'; -import fs from 'fs'; +import os from 'node:os'; +import path from 'node:path'; +import fs from 'node:fs'; import readline from 'readline'; import Logger, { LogLevel, StreamHandler } from '@matrixai/logger'; -import Status from 'polykey/dist/status/Status'; -import config from 'polykey/dist/config'; -import * as testNatUtils from './utils'; -import * as testUtils from '../utils'; +import Status from 'polykey/status/Status.js'; +import config from 'polykey/config.js'; +import * as testNatUtils from './utils.js'; +import * as testUtils from '../utils/index.js'; import { isPlatformLinux, hasIp, hasIptables, hasNsenter, hasUnshare, -} from '../utils/platform'; +} from '../utils/platform.js'; const _supportsNatTesting = isPlatformLinux && hasIp && hasIptables && hasNsenter && hasUnshare; diff --git a/tests/nat/endpointDependentNAT.test.ts b/tests/nat/endpointDependentNAT.test.ts index af6d7f1a..c34d4eb0 100644 --- a/tests/nat/endpointDependentNAT.test.ts +++ b/tests/nat/endpointDependentNAT.test.ts @@ -1,9 +1,9 @@ -import os from 'os'; -import path from 'path'; -import fs from 'fs'; +import os from 'node:os'; +import path from 'node:path'; +import fs from 'node:fs'; import Logger, { LogLevel, StreamHandler } from '@matrixai/logger'; -import * as testNatUtils from './utils'; -import * as testUtils from '../utils'; +import * as testNatUtils from './utils.js'; +import * as testUtils from '../utils/index.js'; const _supportsNatTesting = testUtils.isPlatformLinux && diff --git a/tests/nat/endpointIndependentNAT.test.ts b/tests/nat/endpointIndependentNAT.test.ts index 9c724499..f87b2e84 100644 --- a/tests/nat/endpointIndependentNAT.test.ts +++ b/tests/nat/endpointIndependentNAT.test.ts @@ -1,9 +1,9 @@ -import os from 'os'; -import path from 'path'; -import fs from 'fs'; +import os from 'node:os'; +import path from 'node:path'; +import fs from 'node:fs'; import Logger, { LogLevel, StreamHandler } from '@matrixai/logger'; -import * as testNatUtils from './utils'; -import * as testUtils from '../utils'; +import * as testNatUtils from './utils.js'; +import * as testUtils from '../utils/index.js'; const _supportsNatTesting = testUtils.isPlatformLinux && diff --git a/tests/nat/utils.ts b/tests/nat/utils.ts index e2c7ed0e..5b617293 100644 --- a/tests/nat/utils.ts +++ b/tests/nat/utils.ts @@ -1,10 +1,10 @@ -import type { ChildProcess } from 'child_process'; -import os from 'os'; -import fs from 'fs'; -import path from 'path'; +import type { ChildProcess } from 'node:child_process'; +import os from 'node:os'; +import fs from 'node:fs'; +import path from 'node:path'; import readline from 'readline'; import Logger, { LogLevel, StreamHandler } from '@matrixai/logger'; -import * as testUtils from '../utils'; +import * as testUtils from '../utils/index.js'; type NATType = 'eim' | 'edm' | 'dmz'; diff --git a/tests/nodes/add.test.ts b/tests/nodes/add.test.ts index b4eac4ae..79ab3525 100644 --- a/tests/nodes/add.test.ts +++ b/tests/nodes/add.test.ts @@ -1,13 +1,14 @@ -import type { Host, Port } from 'polykey/dist/network/types'; -import path from 'path'; -import fs from 'fs'; +import type { Host, Port } from 'polykey/network/types.js'; +import path from 'node:path'; +import fs from 'node:fs'; import Logger, { LogLevel, StreamHandler } from '@matrixai/logger'; -import PolykeyAgent from 'polykey/dist/PolykeyAgent'; -import * as ids from 'polykey/dist/ids'; -import * as nodesUtils from 'polykey/dist/nodes/utils'; -import * as keysUtils from 'polykey/dist/keys/utils'; -import sysexits from 'polykey/dist/utils/sysexits'; -import * as testUtils from '../utils'; +import PolykeyAgent from 'polykey/PolykeyAgent.js'; +import * as ids from 'polykey/ids/index.js'; +import * as nodesUtils from 'polykey/nodes/utils.js'; +import * as keysUtils from 'polykey/keys/utils/index.js'; +import sysexits from 'polykey/utils/sysexits.js'; +import { jest } from '@jest/globals'; +import * as testUtils from '../utils/index.js'; describe('add', () => { const logger = new Logger('add test', LogLevel.WARN, [new StreamHandler()]); @@ -20,7 +21,9 @@ describe('add', () => { let dataDir: string; let nodePath: string; let pkAgent: PolykeyAgent; - let mockedPingNode: jest.SpyInstance; + let mockedPingNode: jest.SpiedFunction< + typeof pkAgent.nodeManager.pingNodeAddress + >; beforeEach(async () => { dataDir = await fs.promises.mkdtemp( path.join(globalThis.tmpDir, 'polykey-test-'), @@ -44,7 +47,12 @@ describe('add', () => { mockedPingNode = jest.spyOn(pkAgent.nodeManager, 'pingNodeAddress'); await pkAgent.nodeGraph.stop(); await pkAgent.nodeGraph.start({ fresh: true }); - mockedPingNode.mockImplementation(() => true); + mockedPingNode.mockImplementation( + () => + Promise.resolve(true) as ReturnType< + typeof pkAgent.nodeManager.pingNodeAddress + >, + ); }); afterEach(async () => { await pkAgent.stop(); @@ -138,7 +146,12 @@ describe('add', () => { ).toBeDefined(); }); test('fails to add node when ping fails', async () => { - mockedPingNode.mockImplementation(() => false); + mockedPingNode.mockImplementation( + () => + Promise.resolve(false) as ReturnType< + typeof pkAgent.nodeManager.pingNodeAddress + >, + ); const { exitCode } = await testUtils.pkStdio( [ 'nodes', @@ -158,7 +171,12 @@ describe('add', () => { expect(exitCode).toBe(sysexits.NOHOST); }); test('adds a node with --no-ping flag', async () => { - mockedPingNode.mockImplementation(() => false); + mockedPingNode.mockImplementation( + () => + Promise.resolve(false) as ReturnType< + typeof pkAgent.nodeManager.pingNodeAddress + >, + ); const { exitCode } = await testUtils.pkStdio( [ 'nodes', diff --git a/tests/nodes/claim.test.ts b/tests/nodes/claim.test.ts index f0fe71a3..2e84e431 100644 --- a/tests/nodes/claim.test.ts +++ b/tests/nodes/claim.test.ts @@ -1,11 +1,11 @@ -import type { NodeId, NodeIdEncoded } from 'polykey/dist/ids/types'; -import path from 'path'; -import fs from 'fs'; +import type { NodeId, NodeIdEncoded } from 'polykey/ids/types.js'; +import path from 'node:path'; +import fs from 'node:fs'; import Logger, { LogLevel, StreamHandler } from '@matrixai/logger'; -import PolykeyAgent from 'polykey/dist/PolykeyAgent'; -import * as nodesUtils from 'polykey/dist/nodes/utils'; -import * as keysUtils from 'polykey/dist/keys/utils'; -import * as testUtils from '../utils'; +import PolykeyAgent from 'polykey/PolykeyAgent.js'; +import * as nodesUtils from 'polykey/nodes/utils.js'; +import * as keysUtils from 'polykey/keys/utils/index.js'; +import * as testUtils from '../utils/index.js'; describe('claim', () => { const logger = new Logger('claim test', LogLevel.WARN, [new StreamHandler()]); diff --git a/tests/nodes/connections.test.ts b/tests/nodes/connections.test.ts index 52ab1154..6df43ad6 100644 --- a/tests/nodes/connections.test.ts +++ b/tests/nodes/connections.test.ts @@ -1,11 +1,11 @@ -import type { NodeId, NodeIdEncoded } from 'polykey/dist/ids/types'; -import path from 'path'; -import fs from 'fs'; +import type { NodeId, NodeIdEncoded } from 'polykey/ids/types.js'; +import path from 'node:path'; +import fs from 'node:fs'; import Logger, { LogLevel, StreamHandler } from '@matrixai/logger'; -import PolykeyAgent from 'polykey/dist/PolykeyAgent'; -import * as nodesUtils from 'polykey/dist/nodes/utils'; -import * as keysUtils from 'polykey/dist/keys/utils'; -import * as testUtils from '../utils'; +import PolykeyAgent from 'polykey/PolykeyAgent.js'; +import * as nodesUtils from 'polykey/nodes/utils.js'; +import * as keysUtils from 'polykey/keys/utils/index.js'; +import * as testUtils from '../utils/index.js'; describe('connections', () => { const logger = new Logger('connections test', LogLevel.WARN, [ diff --git a/tests/nodes/find.test.ts b/tests/nodes/find.test.ts index ec5fce5f..fd2a714b 100644 --- a/tests/nodes/find.test.ts +++ b/tests/nodes/find.test.ts @@ -1,13 +1,13 @@ -import type { Host, Port } from 'polykey/dist/network/types'; -import type { NodeId } from 'polykey/dist/ids/types'; -import path from 'path'; -import fs from 'fs'; +import type { Host, Port } from 'polykey/network/types.js'; +import type { NodeId } from 'polykey/ids/types.js'; +import path from 'node:path'; +import fs from 'node:fs'; import Logger, { LogLevel, StreamHandler } from '@matrixai/logger'; -import PolykeyAgent from 'polykey/dist/PolykeyAgent'; -import * as nodesUtils from 'polykey/dist/nodes/utils'; -import { sysexits } from 'polykey/dist/errors'; -import * as keysUtils from 'polykey/dist/keys/utils'; -import * as testUtils from '../utils'; +import PolykeyAgent from 'polykey/PolykeyAgent.js'; +import * as nodesUtils from 'polykey/nodes/utils.js'; +import { sysexits } from 'polykey/errors.js'; +import * as keysUtils from 'polykey/keys/utils/index.js'; +import * as testUtils from '../utils/index.js'; describe('find', () => { const logger = new Logger('find test', LogLevel.WARN, [new StreamHandler()]); diff --git a/tests/nodes/ping.test.ts b/tests/nodes/ping.test.ts index 8f252933..1a8be050 100644 --- a/tests/nodes/ping.test.ts +++ b/tests/nodes/ping.test.ts @@ -1,12 +1,12 @@ -import type { NodeId } from 'polykey/dist/ids/types'; -import path from 'path'; -import fs from 'fs'; +import type { NodeId } from 'polykey/ids/types.js'; +import path from 'node:path'; +import fs from 'node:fs'; import Logger, { LogLevel, StreamHandler } from '@matrixai/logger'; -import PolykeyAgent from 'polykey/dist/PolykeyAgent'; -import * as nodesUtils from 'polykey/dist/nodes/utils'; -import { sysexits } from 'polykey/dist/errors'; -import * as keysUtils from 'polykey/dist/keys/utils'; -import * as testUtils from '../utils'; +import PolykeyAgent from 'polykey/PolykeyAgent.js'; +import * as nodesUtils from 'polykey/nodes/utils.js'; +import { sysexits } from 'polykey/errors.js'; +import * as keysUtils from 'polykey/keys/utils/index.js'; +import * as testUtils from '../utils/index.js'; describe('ping', () => { const logger = new Logger('ping test', LogLevel.WARN, [new StreamHandler()]); diff --git a/tests/notifications/inbox/sendReadRemoveClear.test.ts b/tests/notifications/inbox/sendReadRemoveClear.test.ts index 36b4e593..8b4764d6 100644 --- a/tests/notifications/inbox/sendReadRemoveClear.test.ts +++ b/tests/notifications/inbox/sendReadRemoveClear.test.ts @@ -1,11 +1,11 @@ -import type { NodeId } from 'polykey/dist/ids/types'; -import type { Notification } from 'polykey/dist/notifications/types'; -import type { StatusLive } from 'polykey/dist/status/types'; -import path from 'path'; -import fs from 'fs'; +import type { NodeId } from 'polykey/ids/types.js'; +import type { Notification } from 'polykey/notifications/types.js'; +import type { StatusLive } from 'polykey/status/types.js'; +import path from 'node:path'; +import fs from 'node:fs'; import Logger, { LogLevel, StreamHandler } from '@matrixai/logger'; -import * as nodesUtils from 'polykey/dist/nodes/utils'; -import * as testUtils from '../../utils'; +import * as nodesUtils from 'polykey/nodes/utils.js'; +import * as testUtils from '../../utils/index.js'; describe('send/read/claim', () => { const logger = new Logger( diff --git a/tests/notifications/outbox/sendReadRemoveClear.test.ts b/tests/notifications/outbox/sendReadRemoveClear.test.ts index ef206a32..9b57b807 100644 --- a/tests/notifications/outbox/sendReadRemoveClear.test.ts +++ b/tests/notifications/outbox/sendReadRemoveClear.test.ts @@ -1,11 +1,11 @@ -import type { NodeId } from 'polykey/dist/ids/types'; -import type { Notification } from 'polykey/dist/notifications/types'; -import type { StatusLive } from 'polykey/dist/status/types'; -import path from 'path'; -import fs from 'fs'; +import type { NodeId } from 'polykey/ids/types.js'; +import type { Notification } from 'polykey/notifications/types.js'; +import type { StatusLive } from 'polykey/status/types.js'; +import path from 'node:path'; +import fs from 'node:fs'; import Logger, { LogLevel, StreamHandler } from '@matrixai/logger'; -import * as nodesUtils from 'polykey/dist/nodes/utils'; -import * as testUtils from '../../utils'; +import * as nodesUtils from 'polykey/nodes/utils.js'; +import * as testUtils from '../../utils/index.js'; describe('send/read/claim', () => { const logger = new Logger( diff --git a/tests/polykey.test.ts b/tests/polykey.test.ts index a0b10fc9..dd8ce747 100644 --- a/tests/polykey.test.ts +++ b/tests/polykey.test.ts @@ -1,8 +1,8 @@ -import fs from 'fs'; -import path from 'path'; +import fs from 'node:fs'; +import path from 'node:path'; import readline from 'readline'; import Logger, { LogLevel, StreamHandler } from '@matrixai/logger'; -import * as testUtils from './utils'; +import * as testUtils from './utils/index.js'; describe('polykey', () => { test('default help display', async () => { diff --git a/tests/secrets/cat.test.ts b/tests/secrets/cat.test.ts index 79d669b3..48e0b690 100644 --- a/tests/secrets/cat.test.ts +++ b/tests/secrets/cat.test.ts @@ -1,11 +1,11 @@ -import type { VaultName } from 'polykey/dist/vaults/types'; -import path from 'path'; -import fs from 'fs'; +import type { VaultName } from 'polykey/vaults/types.js'; +import path from 'node:path'; +import fs from 'node:fs'; import Logger, { LogLevel, StreamHandler } from '@matrixai/logger'; -import PolykeyAgent from 'polykey/dist/PolykeyAgent'; -import { vaultOps } from 'polykey/dist/vaults'; -import * as keysUtils from 'polykey/dist/keys/utils'; -import * as testUtils from '../utils'; +import PolykeyAgent from 'polykey/PolykeyAgent.js'; +import { vaultOps } from 'polykey/vaults/index.js'; +import * as keysUtils from 'polykey/keys/utils/index.js'; +import * as testUtils from '../utils/index.js'; describe('commandCatSecret', () => { const password = 'password'; diff --git a/tests/secrets/create.test.ts b/tests/secrets/create.test.ts index 17f84f25..b2632ce8 100644 --- a/tests/secrets/create.test.ts +++ b/tests/secrets/create.test.ts @@ -1,13 +1,13 @@ -import type { VaultName } from 'polykey/dist/vaults/types'; -import path from 'path'; -import fs from 'fs'; +import type { VaultName } from 'polykey/vaults/types.js'; +import path from 'node:path'; +import fs from 'node:fs'; import { test } from '@fast-check/jest'; import fc from 'fast-check'; import Logger, { LogLevel, StreamHandler } from '@matrixai/logger'; -import PolykeyAgent from 'polykey/dist/PolykeyAgent'; -import { vaultOps } from 'polykey/dist/vaults'; -import * as keysUtils from 'polykey/dist/keys/utils'; -import * as testUtils from '../utils'; +import PolykeyAgent from 'polykey/PolykeyAgent.js'; +import { vaultOps } from 'polykey/vaults/index.js'; +import * as keysUtils from 'polykey/keys/utils/index.js'; +import * as testUtils from '../utils/index.js'; describe('commandCreateSecret', () => { const password = 'password'; diff --git a/tests/secrets/edit.test.ts b/tests/secrets/edit.test.ts index f9f2d38b..56ebf296 100644 --- a/tests/secrets/edit.test.ts +++ b/tests/secrets/edit.test.ts @@ -1,11 +1,11 @@ -import type { VaultName } from 'polykey/dist/vaults/types'; -import path from 'path'; -import fs from 'fs'; +import type { VaultName } from 'polykey/vaults/types.js'; +import path from 'node:path'; +import fs from 'node:fs'; import Logger, { LogLevel, StreamHandler } from '@matrixai/logger'; -import PolykeyAgent from 'polykey/dist/PolykeyAgent'; -import { vaultOps } from 'polykey/dist/vaults'; -import * as keysUtils from 'polykey/dist/keys/utils'; -import * as testUtils from '../utils'; +import PolykeyAgent from 'polykey/PolykeyAgent.js'; +import { vaultOps } from 'polykey/vaults/index.js'; +import * as keysUtils from 'polykey/keys/utils/index.js'; +import * as testUtils from '../utils/index.js'; describe('commandEditSecret', () => { const password = 'password'; diff --git a/tests/secrets/env.test.ts b/tests/secrets/env.test.ts index aa801ce6..21cbd0d0 100644 --- a/tests/secrets/env.test.ts +++ b/tests/secrets/env.test.ts @@ -1,14 +1,14 @@ -import type { VaultName } from 'polykey/dist/vaults/types'; -import path from 'path'; -import fs from 'fs'; +import type { VaultName } from 'polykey/vaults/types.js'; +import path from 'node:path'; +import fs from 'node:fs'; import fc from 'fast-check'; import { test } from '@fast-check/jest'; import Logger, { LogLevel, StreamHandler } from '@matrixai/logger'; -import PolykeyAgent from 'polykey/dist/PolykeyAgent'; -import { vaultOps } from 'polykey/dist/vaults'; -import * as keysUtils from 'polykey/dist/keys/utils'; -import { sysexits } from 'polykey/dist/utils'; -import * as testUtils from '../utils'; +import PolykeyAgent from 'polykey/PolykeyAgent.js'; +import { vaultOps } from 'polykey/vaults/index.js'; +import * as keysUtils from 'polykey/keys/utils/index.js'; +import { sysexits } from 'polykey/utils/index.js'; +import * as testUtils from '../utils/index.js'; describe('commandEnv', () => { const logger = new Logger('CLI Test', LogLevel.WARN, [new StreamHandler()]); @@ -17,7 +17,7 @@ describe('commandEnv', () => { let dataDir: string; let polykeyAgent: PolykeyAgent; - const secretContentNewlineArb = fc.stringMatching(/^[ -~]+\n$/).noShrink(); + const secretContentNewlineArb = fc.noShrink(fc.stringMatching(/^[ -~]+\n$/)); beforeEach(async () => { dataDir = await fs.promises.mkdtemp( diff --git a/tests/secrets/list.test.ts b/tests/secrets/list.test.ts index 6a203738..c5a7eab4 100644 --- a/tests/secrets/list.test.ts +++ b/tests/secrets/list.test.ts @@ -1,12 +1,11 @@ -import type { VaultName } from 'polykey/dist/vaults/types'; -import path from 'path'; -import fs from 'fs'; +import type { VaultName } from 'polykey/vaults/types.js'; +import path from 'node:path'; +import fs from 'node:fs'; import Logger, { LogLevel, StreamHandler } from '@matrixai/logger'; -import PolykeyAgent from 'polykey/dist/PolykeyAgent'; -import { vaultOps } from 'polykey/dist/vaults'; -import * as keysUtils from 'polykey/dist/keys/utils'; -import * as testUtils from '../utils'; - +import PolykeyAgent from 'polykey/PolykeyAgent.js'; +import { vaultOps } from 'polykey/vaults/index.js'; +import * as keysUtils from 'polykey/keys/utils/index.js'; +import * as testUtils from '../utils/index.js'; describe('commandListSecrets', () => { const password = 'password'; const logger = new Logger('CLI Test', LogLevel.WARN, [new StreamHandler()]); diff --git a/tests/secrets/mkdir.test.ts b/tests/secrets/mkdir.test.ts index 103522e1..70b8a1f0 100644 --- a/tests/secrets/mkdir.test.ts +++ b/tests/secrets/mkdir.test.ts @@ -1,11 +1,11 @@ -import type { VaultName } from 'polykey/dist/vaults/types'; -import path from 'path'; -import fs from 'fs'; +import type { VaultName } from 'polykey/vaults/types.js'; +import path from 'node:path'; +import fs from 'node:fs'; import Logger, { LogLevel, StreamHandler } from '@matrixai/logger'; -import PolykeyAgent from 'polykey/dist/PolykeyAgent'; -import { vaultOps } from 'polykey/dist/vaults'; -import * as keysUtils from 'polykey/dist/keys/utils'; -import * as testUtils from '../utils'; +import PolykeyAgent from 'polykey/PolykeyAgent.js'; +import { vaultOps } from 'polykey/vaults/index.js'; +import * as keysUtils from 'polykey/keys/utils/index.js'; +import * as testUtils from '../utils/index.js'; describe('commandMkdir', () => { const password = 'password'; diff --git a/tests/secrets/newDirSecret.test.ts b/tests/secrets/newDirSecret.test.ts index d6df35fb..65dbfd5c 100644 --- a/tests/secrets/newDirSecret.test.ts +++ b/tests/secrets/newDirSecret.test.ts @@ -1,11 +1,11 @@ -import type { VaultName } from 'polykey/dist/vaults/types'; -import path from 'path'; -import fs from 'fs'; +import type { VaultName } from 'polykey/vaults/types.js'; +import path from 'node:path'; +import fs from 'node:fs'; import Logger, { LogLevel, StreamHandler } from '@matrixai/logger'; -import PolykeyAgent from 'polykey/dist/PolykeyAgent'; -import { vaultOps } from 'polykey/dist/vaults'; -import * as keysUtils from 'polykey/dist/keys/utils'; -import * as testUtils from '../utils'; +import PolykeyAgent from 'polykey/PolykeyAgent.js'; +import { vaultOps } from 'polykey/vaults/index.js'; +import * as keysUtils from 'polykey/keys/utils/index.js'; +import * as testUtils from '../utils/index.js'; describe('commandNewDirSecret', () => { const password = 'password'; diff --git a/tests/secrets/remove.test.ts b/tests/secrets/remove.test.ts index 17143e9e..f2d2dd5e 100644 --- a/tests/secrets/remove.test.ts +++ b/tests/secrets/remove.test.ts @@ -1,11 +1,11 @@ -import type { VaultName } from 'polykey/dist/vaults/types'; -import path from 'path'; -import fs from 'fs'; +import type { VaultName } from 'polykey/vaults/types.js'; +import path from 'node:path'; +import fs from 'node:fs'; import Logger, { LogLevel, StreamHandler } from '@matrixai/logger'; -import PolykeyAgent from 'polykey/dist/PolykeyAgent'; -import { vaultOps } from 'polykey/dist/vaults'; -import * as keysUtils from 'polykey/dist/keys/utils'; -import * as testUtils from '../utils'; +import PolykeyAgent from 'polykey/PolykeyAgent.js'; +import { vaultOps } from 'polykey/vaults/index.js'; +import * as keysUtils from 'polykey/keys/utils/index.js'; +import * as testUtils from '../utils/index.js'; describe('commandRemoveSecret', () => { const password = 'password'; diff --git a/tests/secrets/rename.test.ts b/tests/secrets/rename.test.ts index 71bd38b7..376cf045 100644 --- a/tests/secrets/rename.test.ts +++ b/tests/secrets/rename.test.ts @@ -1,11 +1,11 @@ -import type { VaultName } from 'polykey/dist/vaults/types'; -import path from 'path'; -import fs from 'fs'; +import type { VaultName } from 'polykey/vaults/types.js'; +import path from 'node:path'; +import fs from 'node:fs'; import Logger, { LogLevel, StreamHandler } from '@matrixai/logger'; -import PolykeyAgent from 'polykey/dist/PolykeyAgent'; -import { vaultOps } from 'polykey/dist/vaults'; -import * as keysUtils from 'polykey/dist/keys/utils'; -import * as testUtils from '../utils'; +import PolykeyAgent from 'polykey/PolykeyAgent.js'; +import { vaultOps } from 'polykey/vaults/index.js'; +import * as keysUtils from 'polykey/keys/utils/index.js'; +import * as testUtils from '../utils/index.js'; describe('commandRenameSecret', () => { const password = 'password'; diff --git a/tests/secrets/stat.test.ts b/tests/secrets/stat.test.ts index 25da704f..2283f9fa 100644 --- a/tests/secrets/stat.test.ts +++ b/tests/secrets/stat.test.ts @@ -1,10 +1,10 @@ -import path from 'path'; -import fs from 'fs'; +import path from 'node:path'; +import fs from 'node:fs'; import Logger, { LogLevel, StreamHandler } from '@matrixai/logger'; -import PolykeyAgent from 'polykey/dist/PolykeyAgent'; -import { vaultOps } from 'polykey/dist/vaults'; -import * as keysUtils from 'polykey/dist/keys/utils'; -import * as testUtils from '../utils'; +import PolykeyAgent from 'polykey/PolykeyAgent.js'; +import { vaultOps } from 'polykey/vaults/index.js'; +import * as keysUtils from 'polykey/keys/utils/index.js'; +import * as testUtils from '../utils/index.js'; describe('commandStat', () => { const password = 'password'; diff --git a/tests/secrets/touch.test.ts b/tests/secrets/touch.test.ts index 4362c88e..f0bfcb68 100644 --- a/tests/secrets/touch.test.ts +++ b/tests/secrets/touch.test.ts @@ -1,10 +1,10 @@ -import path from 'path'; -import fs from 'fs'; +import path from 'node:path'; +import fs from 'node:fs'; import Logger, { LogLevel, StreamHandler } from '@matrixai/logger'; -import PolykeyAgent from 'polykey/dist/PolykeyAgent'; -import { vaultOps } from 'polykey/dist/vaults'; -import * as keysUtils from 'polykey/dist/keys/utils'; -import * as testUtils from '../utils'; +import PolykeyAgent from 'polykey/PolykeyAgent.js'; +import { vaultOps } from 'polykey/vaults/index.js'; +import * as keysUtils from 'polykey/keys/utils/index.js'; +import * as testUtils from '../utils/index.js'; describe('commandTouch', () => { const password = 'password'; diff --git a/tests/secrets/write.test.ts b/tests/secrets/write.test.ts index a9fe7bf0..c2efeeb5 100644 --- a/tests/secrets/write.test.ts +++ b/tests/secrets/write.test.ts @@ -1,13 +1,13 @@ -import type { VaultName } from 'polykey/dist/vaults/types'; -import path from 'path'; -import fs from 'fs'; +import type { VaultName } from 'polykey/vaults/types.js'; +import path from 'node:path'; +import fs from 'node:fs'; import fc from 'fast-check'; import { test } from '@fast-check/jest'; import Logger, { LogLevel, StreamHandler } from '@matrixai/logger'; -import PolykeyAgent from 'polykey/dist/PolykeyAgent'; -import { vaultOps } from 'polykey/dist/vaults'; -import * as keysUtils from 'polykey/dist/keys/utils'; -import * as testUtils from '../utils'; +import PolykeyAgent from 'polykey/PolykeyAgent.js'; +import { vaultOps } from 'polykey/vaults/index.js'; +import * as keysUtils from 'polykey/keys/utils/index.js'; +import * as testUtils from '../utils/index.js'; describe('commandWriteFile', () => { const password = 'password'; diff --git a/tests/sessions.test.ts b/tests/sessions.test.ts index 25400982..314c9a78 100644 --- a/tests/sessions.test.ts +++ b/tests/sessions.test.ts @@ -3,17 +3,20 @@ * This is just for testing the CLI Authentication Retry Loop * @module */ -import path from 'path'; -import fs from 'fs'; -import prompts from 'prompts'; +import path from 'node:path'; +import fs from 'node:fs'; +import { jest } from '@jest/globals'; import Logger, { LogLevel, StreamHandler } from '@matrixai/logger'; -import { Session } from 'polykey/dist/sessions'; -import { sleep } from 'polykey/dist/utils'; -import config from 'polykey/dist/config'; -import * as clientErrors from 'polykey/dist/client/errors'; -import * as testUtils from './utils'; +import { Session } from 'polykey/sessions/index.js'; +import { sleep } from 'polykey/utils/index.js'; +import config from 'polykey/config.js'; +import * as clientErrors from 'polykey/client/errors.js'; +import * as testUtils from './utils/index.js'; -jest.mock('prompts'); +jest.unstable_mockModule('prompts', () => ({ + default: jest.fn(), +})); +const { default: prompts } = await import('prompts'); describe('sessions', () => { const logger = new Logger('sessions test', LogLevel.WARN, [ diff --git a/tests/setupAfterEnv.ts b/tests/setupAfterEnv.ts index 8ea8279e..dcbfa6c9 100644 --- a/tests/setupAfterEnv.ts +++ b/tests/setupAfterEnv.ts @@ -1,3 +1,4 @@ +import { jest } from '@jest/globals'; // Default timeout per test // some tests may take longer in which case you should specify the timeout // explicitly for each test by using the third parameter of test function diff --git a/tests/utils.retryAuthentication.test.ts b/tests/utils.retryAuthentication.test.ts index 3b6a9423..015ff5b7 100644 --- a/tests/utils.retryAuthentication.test.ts +++ b/tests/utils.retryAuthentication.test.ts @@ -1,21 +1,32 @@ -import prompts from 'prompts'; +import { jest } from '@jest/globals'; import mockedEnv from 'mocked-env'; -import * as clientUtils from 'polykey/dist/client/utils'; -import * as clientErrors from 'polykey/dist/client/errors'; -import * as binUtils from '@/utils'; +import * as clientUtils from 'polykey/client/utils.js'; +import * as clientErrors from 'polykey/client/errors.js'; +import * as binUtils from '#utils/index.js'; -jest.mock('prompts'); +jest.unstable_mockModule('prompts', () => ({ + default: jest.fn(), +})); +const { default: prompts } = await import('prompts'); + +type TestAuthFunction = (meta: { authorization?: string }) => Promise; describe('bin/utils retryAuthentication', () => { + beforeEach(() => { + prompts.mockClear(); + }); + test('no retry on success', async () => { - const mockCallSuccess = jest.fn().mockResolvedValue('hello world'); + const mockCallSuccess = jest + .fn() + .mockResolvedValue('hello world'); const result = await binUtils.retryAuthentication(mockCallSuccess); expect(mockCallSuccess.mock.calls.length).toBe(1); expect(result).toBe('hello world'); }); test('no retry on generic error', async () => { const error = new Error('oh no'); - const mockCallFail = jest.fn().mockRejectedValue(error); + const mockCallFail = jest.fn().mockRejectedValue(error); await expect(binUtils.retryAuthentication(mockCallFail)).rejects.toThrow( /oh no/, ); @@ -23,9 +34,9 @@ describe('bin/utils retryAuthentication', () => { }); test('no retry on unattended call with PK_TOKEN and PK_PASSWORD', async () => { const mockCallFail = jest - .fn() + .fn() .mockRejectedValue(new clientErrors.ErrorClientAuthMissing()); - const envRestore = mockedEnv({ + const envRestore = mockedEnv.default({ PK_TOKEN: 'hello', PK_PASSWORD: 'world', }); @@ -37,9 +48,9 @@ describe('bin/utils retryAuthentication', () => { }); test('no retry on unattended call with PK_TOKEN', async () => { const mockCallFail = jest - .fn() + .fn() .mockRejectedValue(new clientErrors.ErrorClientAuthMissing()); - const envRestore = mockedEnv({ + const envRestore = mockedEnv.default({ PK_TOKEN: 'hello', PK_PASSWORD: undefined, }); @@ -51,9 +62,9 @@ describe('bin/utils retryAuthentication', () => { }); test('no retry on unattended call with PK_PASSWORD', async () => { const mockCallFail = jest - .fn() + .fn() .mockRejectedValue(new clientErrors.ErrorClientAuthMissing()); - const envRestore = mockedEnv({ + const envRestore = mockedEnv.default({ PK_TOKEN: undefined, PK_PASSWORD: 'world', }); @@ -71,11 +82,11 @@ describe('bin/utils retryAuthentication', () => { }); // Call will reject with ErrorClientAuthMissing then succeed const mockCall = jest - .fn() + .fn() .mockRejectedValueOnce(new clientErrors.ErrorClientAuthMissing()) .mockResolvedValue('hello world'); // Make this an attended call - const envRestore = mockedEnv({ + const envRestore = mockedEnv.default({ PK_TOKEN: undefined, PK_PASSWORD: undefined, }); @@ -91,23 +102,21 @@ describe('bin/utils retryAuthentication', () => { const auth = mockCall.mock.calls[1][0].authorization; expect(auth).toBeDefined(); expect(auth).toBe(clientUtils.encodeAuthFromPassword(password)); - prompts.mockClear(); }); test('retry 2 times on clientErrors.ErrorClientAuthDenied', async () => { const password1 = 'first password'; const password2 = 'second password'; - prompts.mockClear(); prompts .mockResolvedValueOnce({ password: password1 }) .mockResolvedValue({ password: password2 }); // Call will reject with ErrorClientAuthMissing then succeed const mockCall = jest - .fn() + .fn() .mockRejectedValueOnce(new clientErrors.ErrorClientAuthMissing()) .mockRejectedValueOnce(new clientErrors.ErrorClientAuthDenied()) .mockResolvedValue('hello world'); // Make this an attended call - const envRestore = mockedEnv({ + const envRestore = mockedEnv.default({ PK_TOKEN: undefined, PK_PASSWORD: undefined, }); @@ -124,25 +133,23 @@ describe('bin/utils retryAuthentication', () => { expect(auth).toBeDefined(); // Second password succeeded expect(auth).toBe(clientUtils.encodeAuthFromPassword(password2)); - prompts.mockClear(); }); test('retry 2+ times on clientErrors.ErrorClientAuthDenied until generic error', async () => { const password1 = 'first password'; const password2 = 'second password'; - prompts.mockClear(); prompts .mockResolvedValueOnce({ password: password1 }) .mockResolvedValue({ password: password2 }); // Call will reject with ErrorClientAuthMissing then succeed const mockCall = jest - .fn() + .fn() .mockRejectedValueOnce(new clientErrors.ErrorClientAuthMissing()) .mockRejectedValueOnce(new clientErrors.ErrorClientAuthDenied()) .mockRejectedValueOnce(new clientErrors.ErrorClientAuthDenied()) .mockRejectedValueOnce(new clientErrors.ErrorClientAuthDenied()) .mockRejectedValue(new Error('oh no')); // Make this an attended call - const envRestore = mockedEnv({ + const envRestore = mockedEnv.default({ PK_TOKEN: undefined, PK_PASSWORD: undefined, }); @@ -156,6 +163,5 @@ describe('bin/utils retryAuthentication', () => { expect(auth).toBeDefined(); // Second password was the last used expect(auth).toBe(clientUtils.encodeAuthFromPassword(password2)); - prompts.mockClear(); }); }); diff --git a/tests/utils.test.ts b/tests/utils.test.ts index 6f2a38f6..00144dbb 100644 --- a/tests/utils.test.ts +++ b/tests/utils.test.ts @@ -1,14 +1,14 @@ -import type { Host, Port } from 'polykey/dist/network/types'; -import path from 'path'; -import ErrorPolykey from 'polykey/dist/ErrorPolykey'; +import type { Host, Port } from 'polykey/network/types.js'; +import path from 'node:path'; +import ErrorPolykey from 'polykey/ErrorPolykey.js'; import { test } from '@fast-check/jest'; -import * as ids from 'polykey/dist/ids'; -import * as nodesUtils from 'polykey/dist/nodes/utils'; -import * as polykeyErrors from 'polykey/dist/errors'; +import * as ids from 'polykey/ids/index.js'; +import * as nodesUtils from 'polykey/nodes/utils.js'; +import * as polykeyErrors from 'polykey/errors.js'; import * as fc from 'fast-check'; -import * as binUtils from '@/utils/utils'; -import * as binParsers from '@/utils/parsers'; -import * as testUtils from './utils'; +import * as testUtils from './utils/index.js'; +import * as binUtils from '#utils/utils.js'; +import * as binParsers from '#utils/parsers.js'; describe('outputFormatters', () => { const nonPrintableCharArb = fc @@ -18,9 +18,12 @@ describe('outputFormatters', () => { ) .map((code) => String.fromCharCode(code)); - const stringWithNonPrintableCharsArb = fc.stringOf( - fc.oneof(fc.char(), nonPrintableCharArb), - ); + const stringWithNonPrintableCharsArb = fc.string({ + unit: fc.oneof( + fc.string({ minLength: 1, maxLength: 1 }), + nonPrintableCharArb, + ), + }); test('list in human and json format', () => { // List @@ -330,18 +333,26 @@ describe('outputFormatters', () => { }); describe('parsers', () => { - const singleSecretPathArb = fc.stringOf( - fc.char().filter((c) => binParsers.secretPathRegex.test(c)), - { minLength: 1, maxLength: 25 }, - ); + const singleSecretPathArb = fc.string({ + unit: fc + .string({ minLength: 1, maxLength: 1 }) + .filter((c) => binParsers.secretPathRegex.test(c)), + minLength: 1, + maxLength: 25, + }); const secretPathArb = fc .array(singleSecretPathArb, { minLength: 1, maxLength: 5 }) .map((segments) => path.join(...segments)); - const valueFirstCharArb = fc.char().filter((c) => /^[a-zA-Z_]$/.test(c)); - const valueRestCharArb = fc.stringOf( - fc.char().filter((c) => /^[\w]$/.test(c)), - { minLength: 1, maxLength: 100 }, - ); + const valueFirstCharArb = fc + .string({ minLength: 1, maxLength: 1 }) + .filter((c) => /^[a-zA-Z_]$/.test(c)); + const valueRestCharArb = fc.string({ + unit: fc + .string({ minLength: 1, maxLength: 1 }) + .filter((c) => /^[\w]$/.test(c)), + minLength: 1, + maxLength: 100, + }); const valueDataArb = fc .tuple(valueFirstCharArb, valueRestCharArb) .map((components) => components.join('')); diff --git a/tests/utils/exec.ts b/tests/utils/exec.ts index 6094bd2a..5402c3e9 100644 --- a/tests/utils/exec.ts +++ b/tests/utils/exec.ts @@ -1,16 +1,16 @@ -import type { ChildProcess } from 'child_process'; -import type ErrorPolykey from 'polykey/dist/ErrorPolykey'; -import childProcess from 'child_process'; -import fs from 'fs'; -import path from 'path'; -import process from 'process'; +import type { ChildProcess } from 'node:child_process'; +import type ErrorPolykey from 'polykey/ErrorPolykey.js'; +import childProcess from 'node:child_process'; +import fs from 'node:fs'; +import path from 'node:path'; +import process from 'node:process'; import readline from 'readline'; import * as mockProcess from 'jest-mock-process'; import mockedEnv from 'mocked-env'; import nexpect from 'nexpect'; import Logger from '@matrixai/logger'; -import main from '@/polykey'; -import * as utils from '@/utils/utils'; +import main from '#polykey.js'; +import * as utils from '#utils/utils.js'; type ExecOpts = { env: Record; @@ -24,7 +24,7 @@ const tsConfigPath = path.resolve( ); const polykeyPath = path.resolve( - path.join(globalThis.projectDir ?? '', 'src/polykey.ts'), + path.join(globalThis.projectDir ?? '', 'dist/polykey.js'), ); const generateDockerArgs = (mountPath: string) => [ @@ -208,7 +208,7 @@ async function pkStdio( () => process, ); const mockCwd = mockProcess.spyOnImplementing(process, 'cwd', () => cwd!); - const envRestore = mockedEnv(opts.env); + const envRestore = mockedEnv.default(opts.env); const mockedStdout = mockProcess.mockProcessStdout(); const mockedStderr = mockProcess.mockProcessStderr(); const exitCode = await pk(args); @@ -297,16 +297,12 @@ async function pkExecWithoutShell( return new Promise((resolve, reject) => { let stdout = '', stderr = ''; - const subprocess = childProcess.spawn( - 'ts-node', - ['--project', tsConfigPath, polykeyPath, ...args], - { - env, - cwd, - windowsHide: true, - shell: opts.shell ? opts.shell : false, - }, - ); + const subprocess = childProcess.spawn('node', [polykeyPath, ...args], { + env, + cwd, + windowsHide: true, + shell: opts.shell ? opts.shell : false, + }); subprocess.stdout.on('data', (data) => { stdout += data.toString(); }); @@ -385,17 +381,13 @@ async function pkSpawnWithoutShell( ...process.env, ...opts.env, }; - const subprocess = childProcess.spawn( - 'ts-node', - ['--project', tsConfigPath, polykeyPath, ...args], - { - env, - cwd, - stdio: ['pipe', 'pipe', 'pipe'], - windowsHide: true, - shell: opts.shell ? opts.shell : false, - }, - ); + const subprocess = childProcess.spawn('node', [polykeyPath, ...args], { + env, + cwd, + stdio: ['pipe', 'pipe', 'pipe'], + windowsHide: true, + shell: opts.shell ? opts.shell : false, + }); // The readline library will trim newlines const rlOut = readline.createInterface(subprocess.stdout!); rlOut.on('line', (l) => logger.info(l)); @@ -485,15 +477,11 @@ async function pkExpect({ ...env, }; // Expect chain runs against stdout and stderr - let expectChain = nexpect.spawn( - 'ts-node', - ['--project', tsConfigPath, polykeyPath, ...args], - { - env, - cwd, - stream: 'all', - }, - ); + let expectChain = nexpect.spawn('node', [polykeyPath, ...args], { + env, + cwd, + stream: 'all', + }); // Augment the expect chain expectChain = expect(expectChain); return new Promise((resolve, reject) => { diff --git a/tests/utils/index.ts b/tests/utils/index.ts index e8ac84a3..ad8aee85 100644 --- a/tests/utils/index.ts +++ b/tests/utils/index.ts @@ -1,4 +1,4 @@ -export * from './exec'; -export * from './platform'; -export * from './testAgent'; -export * from './utils'; +export * from './exec.js'; +export * from './platform.js'; +export * from './testAgent.js'; +export * from './utils.js'; diff --git a/tests/utils/testAgent.ts b/tests/utils/testAgent.ts index d07668cd..36ba2a4f 100644 --- a/tests/utils/testAgent.ts +++ b/tests/utils/testAgent.ts @@ -1,11 +1,11 @@ -import type { StatusLive } from 'polykey/dist/status/types'; +import type { StatusLive } from 'polykey/status/types.js'; import type Logger from '@matrixai/logger'; -import fs from 'fs'; -import path from 'path'; +import fs from 'node:fs'; +import path from 'node:path'; import readline from 'readline'; -import * as utils from 'polykey/dist/utils/utils'; -import * as ids from 'polykey/dist/ids'; -import * as execUtils from './exec'; +import * as utils from 'polykey/utils/utils.js'; +import * as ids from 'polykey/ids/index.js'; +import * as execUtils from './exec.js'; async function setupTestAgent(logger: Logger) { const agentDir = await fs.promises.mkdtemp( diff --git a/tests/utils/utils.ts b/tests/utils/utils.ts index 1ce7aa84..0fd9f574 100644 --- a/tests/utils/utils.ts +++ b/tests/utils/utils.ts @@ -1,7 +1,7 @@ -import type PolykeyAgent from 'polykey/dist/PolykeyAgent'; -import { promise } from 'polykey/dist/utils/utils'; +import type PolykeyAgent from 'polykey/PolykeyAgent.js'; +import { promise } from 'polykey/utils/utils.js'; import fc from 'fast-check'; -import * as binParsers from '@/utils/parsers'; +import * as binParsers from '#utils/parsers.js'; function testIf(condition: boolean) { return condition ? test : test.skip; @@ -88,10 +88,11 @@ async function nodesConnect(localNode: PolykeyAgent, remoteNode: PolykeyAgent) { ); } -const vaultNameArb = fc - .string({ minLength: 1, maxLength: 100 }) - .filter((str) => binParsers.vaultNameRegex.test(str)) - .filter((str) => !str.startsWith('-')) - .noShrink(); +const vaultNameArb = fc.noShrink( + fc + .string({ minLength: 1, maxLength: 100 }) + .filter((str) => binParsers.vaultNameRegex.test(str)) + .filter((str) => !str.startsWith('-')), +); export { testIf, describeIf, trackTimers, nodesConnect, vaultNameArb }; diff --git a/tests/vaults/create.test.ts b/tests/vaults/create.test.ts index 64d075ed..1a0bb3ce 100644 --- a/tests/vaults/create.test.ts +++ b/tests/vaults/create.test.ts @@ -1,11 +1,11 @@ -import type { GestaltNodeInfo } from 'polykey/dist/gestalts/types'; -import path from 'path'; -import fs from 'fs'; +import type { GestaltNodeInfo } from 'polykey/gestalts/types.js'; +import path from 'node:path'; +import fs from 'node:fs'; import Logger, { LogLevel, StreamHandler } from '@matrixai/logger'; -import PolykeyAgent from 'polykey/dist/PolykeyAgent'; -import * as ids from 'polykey/dist/ids'; -import * as keysUtils from 'polykey/dist/keys/utils'; -import * as testUtils from '../utils'; +import PolykeyAgent from 'polykey/PolykeyAgent.js'; +import * as ids from 'polykey/ids/index.js'; +import * as keysUtils from 'polykey/keys/utils/index.js'; +import * as testUtils from '../utils/index.js'; describe('commandCreateVaults', () => { const password = 'password'; diff --git a/tests/vaults/list.test.ts b/tests/vaults/list.test.ts index 2d3b5ef1..03b416d6 100644 --- a/tests/vaults/list.test.ts +++ b/tests/vaults/list.test.ts @@ -1,12 +1,12 @@ -import type { VaultName } from 'polykey/dist/vaults/types'; -import type { GestaltNodeInfo } from 'polykey/dist/gestalts/types'; -import path from 'path'; -import fs from 'fs'; +import type { VaultName } from 'polykey/vaults/types.js'; +import type { GestaltNodeInfo } from 'polykey/gestalts/types.js'; +import path from 'node:path'; +import fs from 'node:fs'; import Logger, { LogLevel, StreamHandler } from '@matrixai/logger'; -import PolykeyAgent from 'polykey/dist/PolykeyAgent'; -import * as ids from 'polykey/dist/ids'; -import * as keysUtils from 'polykey/dist/keys/utils'; -import * as testUtils from '../utils'; +import PolykeyAgent from 'polykey/PolykeyAgent.js'; +import * as ids from 'polykey/ids/index.js'; +import * as keysUtils from 'polykey/keys/utils/index.js'; +import * as testUtils from '../utils/index.js'; describe('commandListVaults', () => { const password = 'password'; diff --git a/tests/vaults/log.test.ts b/tests/vaults/log.test.ts index b78aabd9..09664e95 100644 --- a/tests/vaults/log.test.ts +++ b/tests/vaults/log.test.ts @@ -1,12 +1,12 @@ -import type { VaultId, VaultName } from 'polykey/dist/vaults/types'; -import type { GestaltNodeInfo } from 'polykey/dist/gestalts/types'; -import path from 'path'; -import fs from 'fs'; +import type { VaultId, VaultName } from 'polykey/vaults/types.js'; +import type { GestaltNodeInfo } from 'polykey/gestalts/types.js'; +import path from 'node:path'; +import fs from 'node:fs'; import Logger, { LogLevel, StreamHandler } from '@matrixai/logger'; -import PolykeyAgent from 'polykey/dist/PolykeyAgent'; -import * as ids from 'polykey/dist/ids'; -import * as keysUtils from 'polykey/dist/keys/utils'; -import * as testUtils from '../utils'; +import PolykeyAgent from 'polykey/PolykeyAgent.js'; +import * as ids from 'polykey/ids/index.js'; +import * as keysUtils from 'polykey/keys/utils/index.js'; +import * as testUtils from '../utils/index.js'; describe('commandVaultLog', () => { const password = 'password'; diff --git a/tests/vaults/permissions.test.ts b/tests/vaults/permissions.test.ts index f7c2060e..8ef5a274 100644 --- a/tests/vaults/permissions.test.ts +++ b/tests/vaults/permissions.test.ts @@ -1,14 +1,14 @@ -import type { VaultName } from 'polykey/dist/vaults/types'; -import type { GestaltNodeInfo } from 'polykey/dist/gestalts/types'; -import path from 'path'; -import fs from 'fs'; +import type { VaultName } from 'polykey/vaults/types.js'; +import type { GestaltNodeInfo } from 'polykey/gestalts/types.js'; +import path from 'node:path'; +import fs from 'node:fs'; import Logger, { LogLevel, StreamHandler } from '@matrixai/logger'; -import PolykeyAgent from 'polykey/dist/PolykeyAgent'; -import * as ids from 'polykey/dist/ids'; -import * as nodesUtils from 'polykey/dist/nodes/utils'; -import * as vaultsUtils from 'polykey/dist/vaults/utils'; -import * as keysUtils from 'polykey/dist/keys/utils'; -import * as testUtils from '../utils'; +import PolykeyAgent from 'polykey/PolykeyAgent.js'; +import * as ids from 'polykey/ids/index.js'; +import * as nodesUtils from 'polykey/nodes/utils.js'; +import * as vaultsUtils from 'polykey/vaults/utils.js'; +import * as keysUtils from 'polykey/keys/utils/index.js'; +import * as testUtils from '../utils/index.js'; describe('commandPermissions', () => { const password = 'password'; diff --git a/tests/vaults/pullClone.test.ts b/tests/vaults/pullClone.test.ts index e8f14e3a..83f1ac74 100644 --- a/tests/vaults/pullClone.test.ts +++ b/tests/vaults/pullClone.test.ts @@ -1,15 +1,15 @@ -import type { VaultName } from 'polykey/dist/vaults/types'; -import type { GestaltNodeInfo } from 'polykey/dist/gestalts/types'; -import path from 'path'; -import fs from 'fs'; +import type { VaultName } from 'polykey/vaults/types.js'; +import type { GestaltNodeInfo } from 'polykey/gestalts/types.js'; +import path from 'node:path'; +import fs from 'node:fs'; import Logger, { LogLevel, StreamHandler } from '@matrixai/logger'; -import PolykeyAgent from 'polykey/dist/PolykeyAgent'; -import * as ids from 'polykey/dist/ids'; -import * as nodesUtils from 'polykey/dist/nodes/utils'; -import * as vaultsUtils from 'polykey/dist/vaults/utils'; -import sysexits from 'polykey/dist/utils/sysexits'; -import * as keysUtils from 'polykey/dist/keys/utils'; -import * as testUtils from '../utils'; +import PolykeyAgent from 'polykey/PolykeyAgent.js'; +import * as ids from 'polykey/ids/index.js'; +import * as nodesUtils from 'polykey/nodes/utils.js'; +import * as vaultsUtils from 'polykey/vaults/utils.js'; +import sysexits from 'polykey/utils/sysexits.js'; +import * as keysUtils from 'polykey/keys/utils/index.js'; +import * as testUtils from '../utils/index.js'; describe('pull and clone', () => { const password = 'password'; diff --git a/tests/vaults/remove.test.ts b/tests/vaults/remove.test.ts index 0ddf5809..8b7f1e0c 100644 --- a/tests/vaults/remove.test.ts +++ b/tests/vaults/remove.test.ts @@ -1,12 +1,12 @@ -import type { VaultName } from 'polykey/dist/vaults/types'; -import type { GestaltNodeInfo } from 'polykey/dist/gestalts/types'; -import path from 'path'; -import fs from 'fs'; +import type { VaultName } from 'polykey/vaults/types.js'; +import type { GestaltNodeInfo } from 'polykey/gestalts/types.js'; +import path from 'node:path'; +import fs from 'node:fs'; import Logger, { LogLevel, StreamHandler } from '@matrixai/logger'; -import PolykeyAgent from 'polykey/dist/PolykeyAgent'; -import * as ids from 'polykey/dist/ids'; -import * as keysUtils from 'polykey/dist/keys/utils'; -import * as testUtils from '../utils'; +import PolykeyAgent from 'polykey/PolykeyAgent.js'; +import * as ids from 'polykey/ids/index.js'; +import * as keysUtils from 'polykey/keys/utils/index.js'; +import * as testUtils from '../utils/index.js'; describe('commandRemoveVault', () => { const password = 'password'; diff --git a/tests/vaults/rename.test.ts b/tests/vaults/rename.test.ts index 16aa4dc5..f5059ddd 100644 --- a/tests/vaults/rename.test.ts +++ b/tests/vaults/rename.test.ts @@ -1,13 +1,13 @@ -import type { VaultName } from 'polykey/dist/vaults/types'; -import type { GestaltNodeInfo } from 'polykey/dist/gestalts/types'; -import path from 'path'; -import fs from 'fs'; +import type { VaultName } from 'polykey/vaults/types.js'; +import type { GestaltNodeInfo } from 'polykey/gestalts/types.js'; +import path from 'node:path'; +import fs from 'node:fs'; import Logger, { LogLevel, StreamHandler } from '@matrixai/logger'; -import PolykeyAgent from 'polykey/dist/PolykeyAgent'; -import * as ids from 'polykey/dist/ids'; -import sysexits from 'polykey/dist/utils/sysexits'; -import * as keysUtils from 'polykey/dist/keys/utils'; -import * as testUtils from '../utils'; +import PolykeyAgent from 'polykey/PolykeyAgent.js'; +import * as ids from 'polykey/ids/index.js'; +import sysexits from 'polykey/utils/sysexits.js'; +import * as keysUtils from 'polykey/keys/utils/index.js'; +import * as testUtils from '../utils/index.js'; describe('commandRenameVault', () => { const password = 'password'; diff --git a/tests/vaults/scanNode.test.ts b/tests/vaults/scanNode.test.ts index d9582b25..370cd7a1 100644 --- a/tests/vaults/scanNode.test.ts +++ b/tests/vaults/scanNode.test.ts @@ -1,15 +1,15 @@ -import type { VaultName } from 'polykey/dist/vaults/types'; -import type { GestaltNodeInfo } from 'polykey/dist/gestalts/types'; -import path from 'path'; -import fs from 'fs'; +import type { VaultName } from 'polykey/vaults/types.js'; +import type { GestaltNodeInfo } from 'polykey/gestalts/types.js'; +import path from 'node:path'; +import fs from 'node:fs'; import Logger, { LogLevel, StreamHandler } from '@matrixai/logger'; -import PolykeyAgent from 'polykey/dist/PolykeyAgent'; -import * as ids from 'polykey/dist/ids'; -import * as nodesUtils from 'polykey/dist/nodes/utils'; -import * as vaultsUtils from 'polykey/dist/vaults/utils'; -import sysexits from 'polykey/dist/utils/sysexits'; -import * as keysUtils from 'polykey/dist/keys/utils'; -import * as testUtils from '../utils'; +import PolykeyAgent from 'polykey/PolykeyAgent.js'; +import * as ids from 'polykey/ids/index.js'; +import * as nodesUtils from 'polykey/nodes/utils.js'; +import * as vaultsUtils from 'polykey/vaults/utils.js'; +import sysexits from 'polykey/utils/sysexits.js'; +import * as keysUtils from 'polykey/keys/utils/index.js'; +import * as testUtils from '../utils/index.js'; describe('commandScanNode', () => { const password = 'password'; diff --git a/tests/vaults/share.test.ts b/tests/vaults/share.test.ts index bf07ca20..d27a2d13 100644 --- a/tests/vaults/share.test.ts +++ b/tests/vaults/share.test.ts @@ -1,14 +1,14 @@ -import type { VaultName } from 'polykey/dist/vaults/types'; -import type { GestaltNodeInfo } from 'polykey/dist/gestalts/types'; -import path from 'path'; -import fs from 'fs'; +import type { VaultName } from 'polykey/vaults/types.js'; +import type { GestaltNodeInfo } from 'polykey/gestalts/types.js'; +import path from 'node:path'; +import fs from 'node:fs'; import Logger, { LogLevel, StreamHandler } from '@matrixai/logger'; -import PolykeyAgent from 'polykey/dist/PolykeyAgent'; -import * as ids from 'polykey/dist/ids'; -import * as nodesUtils from 'polykey/dist/nodes/utils'; -import * as vaultsUtils from 'polykey/dist/vaults/utils'; -import * as keysUtils from 'polykey/dist/keys/utils'; -import * as testUtils from '../utils'; +import PolykeyAgent from 'polykey/PolykeyAgent.js'; +import * as ids from 'polykey/ids/index.js'; +import * as nodesUtils from 'polykey/nodes/utils.js'; +import * as vaultsUtils from 'polykey/vaults/utils.js'; +import * as keysUtils from 'polykey/keys/utils/index.js'; +import * as testUtils from '../utils/index.js'; describe('commandShare', () => { const password = 'password'; diff --git a/tests/vaults/unshare.test.ts b/tests/vaults/unshare.test.ts index db6e8d98..a1d698c9 100644 --- a/tests/vaults/unshare.test.ts +++ b/tests/vaults/unshare.test.ts @@ -1,14 +1,14 @@ -import type { VaultName } from 'polykey/dist/vaults/types'; -import type { GestaltNodeInfo } from 'polykey/dist/gestalts/types'; -import path from 'path'; -import fs from 'fs'; +import type { VaultName } from 'polykey/vaults/types.js'; +import type { GestaltNodeInfo } from 'polykey/gestalts/types.js'; +import path from 'node:path'; +import fs from 'node:fs'; import Logger, { LogLevel, StreamHandler } from '@matrixai/logger'; -import PolykeyAgent from 'polykey/dist/PolykeyAgent'; -import * as ids from 'polykey/dist/ids'; -import * as nodesUtils from 'polykey/dist/nodes/utils'; -import * as vaultsUtils from 'polykey/dist/vaults/utils'; -import * as keysUtils from 'polykey/dist/keys/utils'; -import * as testUtils from '../utils'; +import PolykeyAgent from 'polykey/PolykeyAgent.js'; +import * as ids from 'polykey/ids/index.js'; +import * as nodesUtils from 'polykey/nodes/utils.js'; +import * as vaultsUtils from 'polykey/vaults/utils.js'; +import * as keysUtils from 'polykey/keys/utils/index.js'; +import * as testUtils from '../utils/index.js'; describe('commandUnshare', () => { const password = 'password'; diff --git a/tests/vaults/version.test.ts b/tests/vaults/version.test.ts index adbe1c88..8d968afb 100644 --- a/tests/vaults/version.test.ts +++ b/tests/vaults/version.test.ts @@ -1,13 +1,13 @@ -import type { VaultName } from 'polykey/dist/vaults/types'; -import type { GestaltNodeInfo } from 'polykey/dist/gestalts/types'; -import path from 'path'; -import fs from 'fs'; +import type { VaultName } from 'polykey/vaults/types.js'; +import type { GestaltNodeInfo } from 'polykey/gestalts/types.js'; +import path from 'node:path'; +import fs from 'node:fs'; import Logger, { LogLevel, StreamHandler } from '@matrixai/logger'; -import PolykeyAgent from 'polykey/dist/PolykeyAgent'; -import * as ids from 'polykey/dist/ids'; -import sysexits from 'polykey/dist/utils/sysexits'; -import * as keysUtils from 'polykey/dist/keys/utils'; -import * as testUtils from '../utils'; +import PolykeyAgent from 'polykey/PolykeyAgent.js'; +import * as ids from 'polykey/ids/index.js'; +import sysexits from 'polykey/utils/sysexits.js'; +import * as keysUtils from 'polykey/keys/utils/index.js'; +import * as testUtils from '../utils/index.js'; describe('commandVaultVersion', () => { const password = 'password'; diff --git a/tsconfig.json b/tsconfig.json index 7e1fc277..c98c4726 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -12,15 +12,14 @@ "esModuleInterop": true, "allowSyntheticDefaultImports": true, "resolveJsonModule": true, - "skipLibCheck": true, - "moduleResolution": "node", - "module": "CommonJS", + "moduleResolution": "NodeNext", + "module": "ESNext", "target": "ES2022", "baseUrl": "./src", "paths": { - "@": ["index"], - "@/*": ["*"] + "#*": ["*"] }, + "skipLibCheck": true, "noEmit": true }, "include": [ @@ -29,10 +28,5 @@ "./tests/**/*", "./scripts/**/*", "./benches/**/*" - ], - "ts-node": { - "require": ["tsconfig-paths/register"], - "transpileOnly": true, - "swc": true - } + ] }