From f0ba631aece67e1c16847a740efb8e990ec17cd9 Mon Sep 17 00:00:00 2001 From: Mohammad Honarvar Date: Mon, 21 Oct 2024 11:09:36 +0330 Subject: [PATCH 01/60] refactor: add the basic structure from `nanolib` --- .editorconfig | 2 +- .eslintignore | 4 + .eslintrc.json | 85 +-- .github/dependabot.yml | 12 +- .github/workflows/build-lint.yaml | 10 +- .github/workflows/codeql.yaml | 8 +- .github/workflows/dependency-review.yaml | 4 +- .github/workflows/publish-npm.yml | 9 +- .github/workflows/sync-labels.yml | 2 +- .gitignore | 8 +- .vscode/extensions.json | 1 - .vscode/settings.json | 74 +- .yarn/sdks/eslint/bin/eslint.js | 32 + .yarn/sdks/eslint/lib/api.js | 32 + .yarn/sdks/eslint/lib/unsupported-api.js | 32 + .yarn/sdks/eslint/package.json | 2 +- .yarn/sdks/prettier/bin/prettier.cjs | 16 +- .yarn/sdks/prettier/index.cjs | 16 +- .yarn/sdks/prettier/package.json | 2 +- .yarn/sdks/typescript/bin/tsc | 16 +- .yarn/sdks/typescript/bin/tsserver | 16 +- .yarn/sdks/typescript/lib/tsc.js | 32 + .yarn/sdks/typescript/lib/tsserver.js | 248 +++++++ .yarn/sdks/typescript/lib/tsserverlibrary.js | 248 +++++++ .yarn/sdks/typescript/lib/typescript.js | 32 + .yarn/sdks/typescript/package.json | 2 +- .yarnrc.yml | 2 + LICENSE | 682 ++++++++++++++++++- README.md | 42 +- lerna.json | 30 +- package.json | 77 ++- 31 files changed, 1566 insertions(+), 212 deletions(-) create mode 100755 .yarn/sdks/eslint/bin/eslint.js create mode 100644 .yarn/sdks/eslint/lib/api.js create mode 100644 .yarn/sdks/eslint/lib/unsupported-api.js create mode 100644 .yarn/sdks/typescript/lib/tsc.js create mode 100644 .yarn/sdks/typescript/lib/tsserver.js create mode 100644 .yarn/sdks/typescript/lib/tsserverlibrary.js create mode 100644 .yarn/sdks/typescript/lib/typescript.js diff --git a/.editorconfig b/.editorconfig index bab4e546..62db4248 100644 --- a/.editorconfig +++ b/.editorconfig @@ -9,7 +9,7 @@ end_of_line = lf charset = utf-8 trim_trailing_whitespace = true insert_final_newline = true -max_line_length = 120 +max_line_length = 140 [*.{js,ts}] block_comment_start = /** diff --git a/.eslintignore b/.eslintignore index 3a47a9fc..c30d5f88 100644 --- a/.eslintignore +++ b/.eslintignore @@ -1,4 +1,8 @@ *.js +*.mjs +*.cjs *.d.ts +/demo/es-bench/ +/uniquely/flight-finder-pwa node_modules _data diff --git a/.eslintrc.json b/.eslintrc.json index 7a4a4818..4682a3d5 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -1,87 +1,4 @@ { "root": true, - "extends": [ - "eslint:recommended", - "plugin:@typescript-eslint/strict", - "plugin:@typescript-eslint/stylistic", - // "plugin:@typescript-eslint/strict-type-checked", - // "plugin:@typescript-eslint/stylistic-type-checked", - "plugin:import/recommended", - "plugin:import/typescript" - ], - "env": { - "shared-node-browser": true, - "es2023": true - }, - "parser": "@typescript-eslint/parser", - "parserOptions": { - "project": true, - "ecmaVersion": 2023, - "sourceType": "module" - }, - "plugins": ["@typescript-eslint", "import"], - "settings": { - "import/resolver": { - "typescript": { - "alwaysTryTypes": true, - "ecmaVersion": 2023, - "project": ["**/tsconfig.json"], - "projectFolderIgnoreList": ["**/node_modules/**"] - }, - "node": true - } - }, - "rules": { - "max-len": ["error", {"code": 120}], - "no-eval": ["error", {"allowIndirect": true}], - "no-floating-decimal": "error", - "space-infix-ops": "error", - "new-cap": ["error", {"capIsNewExceptionPattern": "Mixin$"}], - "brace-style": ["error", "stroustrup", {"allowSingleLine": true}], - "indent": "off", - "@typescript-eslint/indent": [ - "error", - 2, - { - "SwitchCase": 1, - "VariableDeclarator": 1, - "outerIIFEBody": 1, - "MemberExpression": 1, - "FunctionDeclaration": {"parameters": 1, "body": 1}, - "FunctionExpression": {"parameters": 1, "body": 1}, - "CallExpression": {"arguments": 1}, - "ArrayExpression": 1, - "ObjectExpression": 1, - "ImportDeclaration": 1, - "flatTernaryExpressions": false, - "ignoreComments": false, - "ignoredNodes": [ - "TemplateLiteral *", - "TSTypeParameterInstantiation", - "FunctionExpression > .params[decorators.length > 0]", - "FunctionExpression > .params > :matches(Decorator, :not(:first-child))", - "ClassBody.body > PropertyDefinition[decorators.length > 0] > .key" - ] - } - ], - "operator-linebreak": ["error", "after", {"overrides": {"?": "before", ":": "before"}}], - "import/order": [ - "error", - { - "groups": ["builtin", "external", "internal", ["parent", "sibling", "index"], "object", "unknown", "type"], - "newlines-between": "always", - "warnOnUnassignedImports": true, - "alphabetize": { - "order": "asc", - "caseInsensitive": true - } - } - ], - "@typescript-eslint/prefer-string-starts-ends-with": "off", - "@typescript-eslint/no-dynamic-delete": "off", - "@typescript-eslint/no-non-null-assertion": "off", - "no-throw-literal": "off", - "require-jsdoc": "off", - "valid-jsdoc": "off" - } + "extends": "@alwatr/eslint-config" } diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 065bebdb..1f8c47e7 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -5,10 +5,14 @@ updates: - package-ecosystem: github-actions directory: / open-pull-requests-limit: 20 + commit-message: + prefix: 'deps' reviewers: - AliMD schedule: - interval: daily + interval: weekly + time: '00:30' + day: 'thursday' labels: - ci - priority-low @@ -22,10 +26,14 @@ updates: directory: / versioning-strategy: increase open-pull-requests-limit: 20 + commit-message: + prefix: 'deps' reviewers: - AliMD schedule: - interval: daily + interval: weekly + time: '00:30' + day: 'thursday' labels: - dependencies - ci diff --git a/.github/workflows/build-lint.yaml b/.github/workflows/build-lint.yaml index 30676e84..cfb47c67 100644 --- a/.github/workflows/build-lint.yaml +++ b/.github/workflows/build-lint.yaml @@ -25,10 +25,10 @@ jobs: steps: - name: ⤵️ Checkout repository - uses: actions/checkout@v4.1.1 + uses: actions/checkout@v4.2.1 - name: 🏗 Setup nodejs - uses: actions/setup-node@v4.0.0 + uses: actions/setup-node@v4.0.4 with: node-version: ${{ env.NODE_VERSION }} @@ -39,7 +39,8 @@ jobs: id: yarn_config run: echo "cache_folder=$(yarn config get cacheFolder)" >> $GITHUB_OUTPUT - - uses: actions/cache@v3.3.2 + - name: 🏗 Cache Layer + uses: actions/cache@v4.1.1 # id: yarn_cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`) with: path: ${{ steps.yarn_config.outputs.cache_folder }} @@ -55,3 +56,6 @@ jobs: - name: 🚀 Run ESLint run: yarn lint + + - name: 🚀 Run Jest + run: yarn test diff --git a/.github/workflows/codeql.yaml b/.github/workflows/codeql.yaml index ea7e09a3..cc8e13d0 100644 --- a/.github/workflows/codeql.yaml +++ b/.github/workflows/codeql.yaml @@ -32,17 +32,17 @@ jobs: steps: - name: ⤵️ Checkout repository - uses: actions/checkout@v4.1.1 + uses: actions/checkout@v4.2.1 - name: 🏗 Initialize CodeQL - uses: github/codeql-action/init@v2.22.8 + uses: github/codeql-action/init@v3.26.12 with: languages: ${{ matrix.language }} # Details on CodeQL's query packs refer to : https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs # queries: security-extended,security-and-quality - name: 🏗 Auto build - uses: github/codeql-action/autobuild@v2.22.8 + uses: github/codeql-action/autobuild@v3.26.12 - name: 🚀 Perform CodeQL Analysis - uses: github/codeql-action/analyze@v2.22.8 + uses: github/codeql-action/analyze@v3.26.12 diff --git a/.github/workflows/dependency-review.yaml b/.github/workflows/dependency-review.yaml index 83047205..c15a5269 100644 --- a/.github/workflows/dependency-review.yaml +++ b/.github/workflows/dependency-review.yaml @@ -17,7 +17,7 @@ jobs: steps: - name: ⤵️ Checkout repository - uses: actions/checkout@v4.1.1 + uses: actions/checkout@v4.2.1 - name: 🚀 Dependency Review - uses: actions/dependency-review-action@v3.1.3 + uses: actions/dependency-review-action@v4.3.4 diff --git a/.github/workflows/publish-npm.yml b/.github/workflows/publish-npm.yml index a481d1c9..b0960383 100644 --- a/.github/workflows/publish-npm.yml +++ b/.github/workflows/publish-npm.yml @@ -24,13 +24,13 @@ jobs: steps: - name: ⤵️ Checkout repository - uses: actions/checkout@v4.1.1 + uses: actions/checkout@v4.2.1 - name: 🏗 Setup nodejs - uses: actions/setup-node@v4.0.0 + uses: actions/setup-node@v4.0.4 with: node-version: ${{ env.NODE_VERSION }} - registry-url: https://registry.npmjs.org/ + registry-url: 'https://registry.npmjs.org' - name: 🏗 Setup nodejs corepack run: corepack enable @@ -39,7 +39,8 @@ jobs: id: yarn_config run: echo "cache_folder=$(yarn config get cacheFolder)" >> $GITHUB_OUTPUT - - uses: actions/cache@v3.3.2 + - name: 🏗 Cache Layer + uses: actions/cache@v4.1.1 # id: yarn_cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`) with: path: ${{ steps.yarn_config.outputs.cache_folder }} diff --git a/.github/workflows/sync-labels.yml b/.github/workflows/sync-labels.yml index 5941cdb8..c29c0770 100644 --- a/.github/workflows/sync-labels.yml +++ b/.github/workflows/sync-labels.yml @@ -22,7 +22,7 @@ jobs: steps: - name: ⤵️ Check out code from GitHub - uses: actions/checkout@v4.1.1 + uses: actions/checkout@v4.2.1 - name: 🚀 Run Label Syncer uses: micnncim/action-label-syncer@v1.3.0 diff --git a/.gitignore b/.gitignore index 089b9203..90b1523c 100644 --- a/.gitignore +++ b/.gitignore @@ -27,16 +27,14 @@ package-lock.json # Build dist -build -.tsbuildinfo +*.tsbuildinfo *.map *.d.ts -*.js -!*.config.js -!**/res/*.js # Output of 'npm pack' *.tgz # dotenv environment variables file .env + +.tmp diff --git a/.vscode/extensions.json b/.vscode/extensions.json index ad6b482e..22dcbf67 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -5,7 +5,6 @@ "dbaeumer.vscode-eslint", "editorconfig.editorconfig", "esbenp.prettier-vscode", - "humao.rest-client", "jgclark.vscode-todo-highlight", "streetsidesoftware.code-spell-checker-persian", "streetsidesoftware.code-spell-checker", diff --git a/.vscode/settings.json b/.vscode/settings.json index 74dfd5b2..95aa8d46 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,33 +1,31 @@ { - "npm.packageManager": "yarn", - "editor.wordWrapColumn": 120, - "editor.formatOnPaste": false, - "editor.formatOnSave": false, + "cSpell.language": "en,fa,fa-IR", "editor.codeActionsOnSave": { - "source.fixAll": true + "source.fixAll": "explicit" }, + "js/ts.implicitProjectConfig.checkJs": true, "editor.defaultFormatter": "esbenp.prettier-vscode", - "prettier.useEditorConfig": true, - "files.exclude": { - "**/*.map": true, - "**/*.d.ts": true, - "**/*.tsbuildinfo": true + "editor.formatOnPaste": false, + "editor.formatOnSave": false, + "editor.wordWrapColumn": 120, + "eslint.nodePath": ".yarn/sdks", + "explorer.fileNesting.enabled": true, + "explorer.fileNesting.expand": false, + "explorer.fileNesting.patterns": { + "*.js": "${capture}.js.map, ${capture}.min.js, ${capture}.d.ts, ${capture}.d.ts.map", + "*.ts": "${capture}.js, ${capture}.js.map, ${capture}.d.ts, ${capture}.d.ts.map", + "tsconfig.json": "tsconfig.*.json, *.tsbuildinfo" }, "files.associations": { - "*.mt": "routeros", - "*.conf.template": "nginx", - "ssh_config": "ssh_config", - "*.njk": "html", - "ssh-config": "ssh_config" + "*.ajs": "json", + "*.ajs.bk": "json", + "*.conf.template": "nginx" + }, + "files.exclude": { + // "**/*.map": true, + // "**/*.d.ts": true, + // "**/*.tsbuildinfo": true }, - "markdownlint.ignore": [ - "**/CHANGELOG.md" - ], - "cSpell.language": "en,fa,fa-IR", - "cSpell.words": [ - "Alwatr" - ], - "typescript.tsdk": ".yarn/sdks/typescript/lib", "git.autoStash": true, "git.branchProtection": [ "main", @@ -37,11 +35,33 @@ "main", "next" ], + "markdownlint.ignore": [ + "**/CHANGELOG.md" + ], + "npm.packageManager": "yarn", + "prettier.prettierPath": ".yarn/sdks/prettier/index.cjs", + "prettier.useEditorConfig": true, "search.exclude": { + "**/.pnp.*": true, "**/.yarn": true, - "**/.pnp.*": true + "**/*.lock": true }, - "eslint.nodePath": ".yarn/sdks", - "prettier.prettierPath": ".yarn/sdks/prettier/index.cjs", - "typescript.enablePromptUseWorkspaceTsdk": true + "typescript.enablePromptUseWorkspaceTsdk": true, + "typescript.tsdk": ".yarn/sdks/typescript/lib", + "cSpell.words": [ + "Alwatr", + "conventionalcommits", + "Deno", + "flatomise", + "Jsonifiable", + "Jsonify", + "Mihandoost", + "nanolib", + "outdir", + "outfile", + "pmpa", + "Strigifyable", + "tsbuildinfo", + "typeof" + ] } diff --git a/.yarn/sdks/eslint/bin/eslint.js b/.yarn/sdks/eslint/bin/eslint.js new file mode 100755 index 00000000..e6604ff5 --- /dev/null +++ b/.yarn/sdks/eslint/bin/eslint.js @@ -0,0 +1,32 @@ +#!/usr/bin/env node + +const {existsSync} = require(`fs`); +const {createRequire, register} = require(`module`); +const {resolve} = require(`path`); +const {pathToFileURL} = require(`url`); + +const relPnpApiPath = "../../../../.pnp.cjs"; + +const absPnpApiPath = resolve(__dirname, relPnpApiPath); +const absUserWrapperPath = resolve(__dirname, `./sdk.user.cjs`); +const absRequire = createRequire(absPnpApiPath); + +const absPnpLoaderPath = resolve(absPnpApiPath, `../.pnp.loader.mjs`); +const isPnpLoaderEnabled = existsSync(absPnpLoaderPath); + +if (existsSync(absPnpApiPath)) { + if (!process.versions.pnp) { + // Setup the environment to be able to require eslint/bin/eslint.js + require(absPnpApiPath).setup(); + if (isPnpLoaderEnabled && register) { + register(pathToFileURL(absPnpLoaderPath)); + } + } +} + +const wrapWithUserWrapper = existsSync(absUserWrapperPath) + ? exports => absRequire(absUserWrapperPath)(exports) + : exports => exports; + +// Defer to the real eslint/bin/eslint.js your application uses +module.exports = wrapWithUserWrapper(absRequire(`eslint/bin/eslint.js`)); diff --git a/.yarn/sdks/eslint/lib/api.js b/.yarn/sdks/eslint/lib/api.js new file mode 100644 index 00000000..8addf97f --- /dev/null +++ b/.yarn/sdks/eslint/lib/api.js @@ -0,0 +1,32 @@ +#!/usr/bin/env node + +const {existsSync} = require(`fs`); +const {createRequire, register} = require(`module`); +const {resolve} = require(`path`); +const {pathToFileURL} = require(`url`); + +const relPnpApiPath = "../../../../.pnp.cjs"; + +const absPnpApiPath = resolve(__dirname, relPnpApiPath); +const absUserWrapperPath = resolve(__dirname, `./sdk.user.cjs`); +const absRequire = createRequire(absPnpApiPath); + +const absPnpLoaderPath = resolve(absPnpApiPath, `../.pnp.loader.mjs`); +const isPnpLoaderEnabled = existsSync(absPnpLoaderPath); + +if (existsSync(absPnpApiPath)) { + if (!process.versions.pnp) { + // Setup the environment to be able to require eslint + require(absPnpApiPath).setup(); + if (isPnpLoaderEnabled && register) { + register(pathToFileURL(absPnpLoaderPath)); + } + } +} + +const wrapWithUserWrapper = existsSync(absUserWrapperPath) + ? exports => absRequire(absUserWrapperPath)(exports) + : exports => exports; + +// Defer to the real eslint your application uses +module.exports = wrapWithUserWrapper(absRequire(`eslint`)); diff --git a/.yarn/sdks/eslint/lib/unsupported-api.js b/.yarn/sdks/eslint/lib/unsupported-api.js new file mode 100644 index 00000000..c2b464ce --- /dev/null +++ b/.yarn/sdks/eslint/lib/unsupported-api.js @@ -0,0 +1,32 @@ +#!/usr/bin/env node + +const {existsSync} = require(`fs`); +const {createRequire, register} = require(`module`); +const {resolve} = require(`path`); +const {pathToFileURL} = require(`url`); + +const relPnpApiPath = "../../../../.pnp.cjs"; + +const absPnpApiPath = resolve(__dirname, relPnpApiPath); +const absUserWrapperPath = resolve(__dirname, `./sdk.user.cjs`); +const absRequire = createRequire(absPnpApiPath); + +const absPnpLoaderPath = resolve(absPnpApiPath, `../.pnp.loader.mjs`); +const isPnpLoaderEnabled = existsSync(absPnpLoaderPath); + +if (existsSync(absPnpApiPath)) { + if (!process.versions.pnp) { + // Setup the environment to be able to require eslint/use-at-your-own-risk + require(absPnpApiPath).setup(); + if (isPnpLoaderEnabled && register) { + register(pathToFileURL(absPnpLoaderPath)); + } + } +} + +const wrapWithUserWrapper = existsSync(absUserWrapperPath) + ? exports => absRequire(absUserWrapperPath)(exports) + : exports => exports; + +// Defer to the real eslint/use-at-your-own-risk your application uses +module.exports = wrapWithUserWrapper(absRequire(`eslint/use-at-your-own-risk`)); diff --git a/.yarn/sdks/eslint/package.json b/.yarn/sdks/eslint/package.json index 9c57132c..4110fb08 100644 --- a/.yarn/sdks/eslint/package.json +++ b/.yarn/sdks/eslint/package.json @@ -1,6 +1,6 @@ { "name": "eslint", - "version": "8.54.0-sdk", + "version": "8.57.1-sdk", "main": "./lib/api.js", "type": "commonjs", "bin": { diff --git a/.yarn/sdks/prettier/bin/prettier.cjs b/.yarn/sdks/prettier/bin/prettier.cjs index 5efad688..9a4098f7 100755 --- a/.yarn/sdks/prettier/bin/prettier.cjs +++ b/.yarn/sdks/prettier/bin/prettier.cjs @@ -1,20 +1,32 @@ #!/usr/bin/env node const {existsSync} = require(`fs`); -const {createRequire} = require(`module`); +const {createRequire, register} = require(`module`); const {resolve} = require(`path`); +const {pathToFileURL} = require(`url`); const relPnpApiPath = "../../../../.pnp.cjs"; const absPnpApiPath = resolve(__dirname, relPnpApiPath); +const absUserWrapperPath = resolve(__dirname, `./sdk.user.cjs`); const absRequire = createRequire(absPnpApiPath); +const absPnpLoaderPath = resolve(absPnpApiPath, `../.pnp.loader.mjs`); +const isPnpLoaderEnabled = existsSync(absPnpLoaderPath); + if (existsSync(absPnpApiPath)) { if (!process.versions.pnp) { // Setup the environment to be able to require prettier/bin/prettier.cjs require(absPnpApiPath).setup(); + if (isPnpLoaderEnabled && register) { + register(pathToFileURL(absPnpLoaderPath)); + } } } +const wrapWithUserWrapper = existsSync(absUserWrapperPath) + ? exports => absRequire(absUserWrapperPath)(exports) + : exports => exports; + // Defer to the real prettier/bin/prettier.cjs your application uses -module.exports = absRequire(`prettier/bin/prettier.cjs`); +module.exports = wrapWithUserWrapper(absRequire(`prettier/bin/prettier.cjs`)); diff --git a/.yarn/sdks/prettier/index.cjs b/.yarn/sdks/prettier/index.cjs index 8758e367..57cb2ab1 100644 --- a/.yarn/sdks/prettier/index.cjs +++ b/.yarn/sdks/prettier/index.cjs @@ -1,20 +1,32 @@ #!/usr/bin/env node const {existsSync} = require(`fs`); -const {createRequire} = require(`module`); +const {createRequire, register} = require(`module`); const {resolve} = require(`path`); +const {pathToFileURL} = require(`url`); const relPnpApiPath = "../../../.pnp.cjs"; const absPnpApiPath = resolve(__dirname, relPnpApiPath); +const absUserWrapperPath = resolve(__dirname, `./sdk.user.cjs`); const absRequire = createRequire(absPnpApiPath); +const absPnpLoaderPath = resolve(absPnpApiPath, `../.pnp.loader.mjs`); +const isPnpLoaderEnabled = existsSync(absPnpLoaderPath); + if (existsSync(absPnpApiPath)) { if (!process.versions.pnp) { // Setup the environment to be able to require prettier require(absPnpApiPath).setup(); + if (isPnpLoaderEnabled && register) { + register(pathToFileURL(absPnpLoaderPath)); + } } } +const wrapWithUserWrapper = existsSync(absUserWrapperPath) + ? exports => absRequire(absUserWrapperPath)(exports) + : exports => exports; + // Defer to the real prettier your application uses -module.exports = absRequire(`prettier`); +module.exports = wrapWithUserWrapper(absRequire(`prettier`)); diff --git a/.yarn/sdks/prettier/package.json b/.yarn/sdks/prettier/package.json index c61f5117..cf1b58d4 100644 --- a/.yarn/sdks/prettier/package.json +++ b/.yarn/sdks/prettier/package.json @@ -1,6 +1,6 @@ { "name": "prettier", - "version": "3.1.0-sdk", + "version": "3.3.3-sdk", "main": "./index.cjs", "type": "commonjs", "bin": "./bin/prettier.cjs" diff --git a/.yarn/sdks/typescript/bin/tsc b/.yarn/sdks/typescript/bin/tsc index 454b950b..867a7bdf 100755 --- a/.yarn/sdks/typescript/bin/tsc +++ b/.yarn/sdks/typescript/bin/tsc @@ -1,20 +1,32 @@ #!/usr/bin/env node const {existsSync} = require(`fs`); -const {createRequire} = require(`module`); +const {createRequire, register} = require(`module`); const {resolve} = require(`path`); +const {pathToFileURL} = require(`url`); const relPnpApiPath = "../../../../.pnp.cjs"; const absPnpApiPath = resolve(__dirname, relPnpApiPath); +const absUserWrapperPath = resolve(__dirname, `./sdk.user.cjs`); const absRequire = createRequire(absPnpApiPath); +const absPnpLoaderPath = resolve(absPnpApiPath, `../.pnp.loader.mjs`); +const isPnpLoaderEnabled = existsSync(absPnpLoaderPath); + if (existsSync(absPnpApiPath)) { if (!process.versions.pnp) { // Setup the environment to be able to require typescript/bin/tsc require(absPnpApiPath).setup(); + if (isPnpLoaderEnabled && register) { + register(pathToFileURL(absPnpLoaderPath)); + } } } +const wrapWithUserWrapper = existsSync(absUserWrapperPath) + ? exports => absRequire(absUserWrapperPath)(exports) + : exports => exports; + // Defer to the real typescript/bin/tsc your application uses -module.exports = absRequire(`typescript/bin/tsc`); +module.exports = wrapWithUserWrapper(absRequire(`typescript/bin/tsc`)); diff --git a/.yarn/sdks/typescript/bin/tsserver b/.yarn/sdks/typescript/bin/tsserver index d7a60568..3fc5aa31 100755 --- a/.yarn/sdks/typescript/bin/tsserver +++ b/.yarn/sdks/typescript/bin/tsserver @@ -1,20 +1,32 @@ #!/usr/bin/env node const {existsSync} = require(`fs`); -const {createRequire} = require(`module`); +const {createRequire, register} = require(`module`); const {resolve} = require(`path`); +const {pathToFileURL} = require(`url`); const relPnpApiPath = "../../../../.pnp.cjs"; const absPnpApiPath = resolve(__dirname, relPnpApiPath); +const absUserWrapperPath = resolve(__dirname, `./sdk.user.cjs`); const absRequire = createRequire(absPnpApiPath); +const absPnpLoaderPath = resolve(absPnpApiPath, `../.pnp.loader.mjs`); +const isPnpLoaderEnabled = existsSync(absPnpLoaderPath); + if (existsSync(absPnpApiPath)) { if (!process.versions.pnp) { // Setup the environment to be able to require typescript/bin/tsserver require(absPnpApiPath).setup(); + if (isPnpLoaderEnabled && register) { + register(pathToFileURL(absPnpLoaderPath)); + } } } +const wrapWithUserWrapper = existsSync(absUserWrapperPath) + ? exports => absRequire(absUserWrapperPath)(exports) + : exports => exports; + // Defer to the real typescript/bin/tsserver your application uses -module.exports = absRequire(`typescript/bin/tsserver`); +module.exports = wrapWithUserWrapper(absRequire(`typescript/bin/tsserver`)); diff --git a/.yarn/sdks/typescript/lib/tsc.js b/.yarn/sdks/typescript/lib/tsc.js new file mode 100644 index 00000000..da411bdb --- /dev/null +++ b/.yarn/sdks/typescript/lib/tsc.js @@ -0,0 +1,32 @@ +#!/usr/bin/env node + +const {existsSync} = require(`fs`); +const {createRequire, register} = require(`module`); +const {resolve} = require(`path`); +const {pathToFileURL} = require(`url`); + +const relPnpApiPath = "../../../../.pnp.cjs"; + +const absPnpApiPath = resolve(__dirname, relPnpApiPath); +const absUserWrapperPath = resolve(__dirname, `./sdk.user.cjs`); +const absRequire = createRequire(absPnpApiPath); + +const absPnpLoaderPath = resolve(absPnpApiPath, `../.pnp.loader.mjs`); +const isPnpLoaderEnabled = existsSync(absPnpLoaderPath); + +if (existsSync(absPnpApiPath)) { + if (!process.versions.pnp) { + // Setup the environment to be able to require typescript/lib/tsc.js + require(absPnpApiPath).setup(); + if (isPnpLoaderEnabled && register) { + register(pathToFileURL(absPnpLoaderPath)); + } + } +} + +const wrapWithUserWrapper = existsSync(absUserWrapperPath) + ? exports => absRequire(absUserWrapperPath)(exports) + : exports => exports; + +// Defer to the real typescript/lib/tsc.js your application uses +module.exports = wrapWithUserWrapper(absRequire(`typescript/lib/tsc.js`)); diff --git a/.yarn/sdks/typescript/lib/tsserver.js b/.yarn/sdks/typescript/lib/tsserver.js new file mode 100644 index 00000000..6249c467 --- /dev/null +++ b/.yarn/sdks/typescript/lib/tsserver.js @@ -0,0 +1,248 @@ +#!/usr/bin/env node + +const {existsSync} = require(`fs`); +const {createRequire, register} = require(`module`); +const {resolve} = require(`path`); +const {pathToFileURL} = require(`url`); + +const relPnpApiPath = "../../../../.pnp.cjs"; + +const absPnpApiPath = resolve(__dirname, relPnpApiPath); +const absUserWrapperPath = resolve(__dirname, `./sdk.user.cjs`); +const absRequire = createRequire(absPnpApiPath); + +const absPnpLoaderPath = resolve(absPnpApiPath, `../.pnp.loader.mjs`); +const isPnpLoaderEnabled = existsSync(absPnpLoaderPath); + +if (existsSync(absPnpApiPath)) { + if (!process.versions.pnp) { + // Setup the environment to be able to require typescript/lib/tsserver.js + require(absPnpApiPath).setup(); + if (isPnpLoaderEnabled && register) { + register(pathToFileURL(absPnpLoaderPath)); + } + } +} + +const wrapWithUserWrapper = existsSync(absUserWrapperPath) + ? exports => absRequire(absUserWrapperPath)(exports) + : exports => exports; + +const moduleWrapper = exports => { + return wrapWithUserWrapper(moduleWrapperFn(exports)); +}; + +const moduleWrapperFn = tsserver => { + if (!process.versions.pnp) { + return tsserver; + } + + const {isAbsolute} = require(`path`); + const pnpApi = require(`pnpapi`); + + const isVirtual = str => str.match(/\/(\$\$virtual|__virtual__)\//); + const isPortal = str => str.startsWith("portal:/"); + const normalize = str => str.replace(/\\/g, `/`).replace(/^\/?/, `/`); + + const dependencyTreeRoots = new Set(pnpApi.getDependencyTreeRoots().map(locator => { + return `${locator.name}@${locator.reference}`; + })); + + // VSCode sends the zip paths to TS using the "zip://" prefix, that TS + // doesn't understand. This layer makes sure to remove the protocol + // before forwarding it to TS, and to add it back on all returned paths. + + function toEditorPath(str) { + // We add the `zip:` prefix to both `.zip/` paths and virtual paths + if (isAbsolute(str) && !str.match(/^\^?(zip:|\/zip\/)/) && (str.match(/\.zip\//) || isVirtual(str))) { + // We also take the opportunity to turn virtual paths into physical ones; + // this makes it much easier to work with workspaces that list peer + // dependencies, since otherwise Ctrl+Click would bring us to the virtual + // file instances instead of the real ones. + // + // We only do this to modules owned by the the dependency tree roots. + // This avoids breaking the resolution when jumping inside a vendor + // with peer dep (otherwise jumping into react-dom would show resolution + // errors on react). + // + const resolved = isVirtual(str) ? pnpApi.resolveVirtual(str) : str; + if (resolved) { + const locator = pnpApi.findPackageLocator(resolved); + if (locator && (dependencyTreeRoots.has(`${locator.name}@${locator.reference}`) || isPortal(locator.reference))) { + str = resolved; + } + } + + str = normalize(str); + + if (str.match(/\.zip\//)) { + switch (hostInfo) { + // Absolute VSCode `Uri.fsPath`s need to start with a slash. + // VSCode only adds it automatically for supported schemes, + // so we have to do it manually for the `zip` scheme. + // The path needs to start with a caret otherwise VSCode doesn't handle the protocol + // + // Ref: https://github.com/microsoft/vscode/issues/105014#issuecomment-686760910 + // + // 2021-10-08: VSCode changed the format in 1.61. + // Before | ^zip:/c:/foo/bar.zip/package.json + // After | ^/zip//c:/foo/bar.zip/package.json + // + // 2022-04-06: VSCode changed the format in 1.66. + // Before | ^/zip//c:/foo/bar.zip/package.json + // After | ^/zip/c:/foo/bar.zip/package.json + // + // 2022-05-06: VSCode changed the format in 1.68 + // Before | ^/zip/c:/foo/bar.zip/package.json + // After | ^/zip//c:/foo/bar.zip/package.json + // + case `vscode <1.61`: { + str = `^zip:${str}`; + } break; + + case `vscode <1.66`: { + str = `^/zip/${str}`; + } break; + + case `vscode <1.68`: { + str = `^/zip${str}`; + } break; + + case `vscode`: { + str = `^/zip/${str}`; + } break; + + // To make "go to definition" work, + // We have to resolve the actual file system path from virtual path + // and convert scheme to supported by [vim-rzip](https://github.com/lbrayner/vim-rzip) + case `coc-nvim`: { + str = normalize(resolved).replace(/\.zip\//, `.zip::`); + str = resolve(`zipfile:${str}`); + } break; + + // Support neovim native LSP and [typescript-language-server](https://github.com/theia-ide/typescript-language-server) + // We have to resolve the actual file system path from virtual path, + // everything else is up to neovim + case `neovim`: { + str = normalize(resolved).replace(/\.zip\//, `.zip::`); + str = `zipfile://${str}`; + } break; + + default: { + str = `zip:${str}`; + } break; + } + } else { + str = str.replace(/^\/?/, process.platform === `win32` ? `` : `/`); + } + } + + return str; + } + + function fromEditorPath(str) { + switch (hostInfo) { + case `coc-nvim`: { + str = str.replace(/\.zip::/, `.zip/`); + // The path for coc-nvim is in format of //zipfile://.yarn/... + // So in order to convert it back, we use .* to match all the thing + // before `zipfile:` + return process.platform === `win32` + ? str.replace(/^.*zipfile:\//, ``) + : str.replace(/^.*zipfile:/, ``); + } break; + + case `neovim`: { + str = str.replace(/\.zip::/, `.zip/`); + // The path for neovim is in format of zipfile:////.yarn/... + return str.replace(/^zipfile:\/\//, ``); + } break; + + case `vscode`: + default: { + return str.replace(/^\^?(zip:|\/zip(\/ts-nul-authority)?)\/+/, process.platform === `win32` ? `` : `/`) + } break; + } + } + + // Force enable 'allowLocalPluginLoads' + // TypeScript tries to resolve plugins using a path relative to itself + // which doesn't work when using the global cache + // https://github.com/microsoft/TypeScript/blob/1b57a0395e0bff191581c9606aab92832001de62/src/server/project.ts#L2238 + // VSCode doesn't want to enable 'allowLocalPluginLoads' due to security concerns but + // TypeScript already does local loads and if this code is running the user trusts the workspace + // https://github.com/microsoft/vscode/issues/45856 + const ConfiguredProject = tsserver.server.ConfiguredProject; + const {enablePluginsWithOptions: originalEnablePluginsWithOptions} = ConfiguredProject.prototype; + ConfiguredProject.prototype.enablePluginsWithOptions = function() { + this.projectService.allowLocalPluginLoads = true; + return originalEnablePluginsWithOptions.apply(this, arguments); + }; + + // And here is the point where we hijack the VSCode <-> TS communications + // by adding ourselves in the middle. We locate everything that looks + // like an absolute path of ours and normalize it. + + const Session = tsserver.server.Session; + const {onMessage: originalOnMessage, send: originalSend} = Session.prototype; + let hostInfo = `unknown`; + + Object.assign(Session.prototype, { + onMessage(/** @type {string | object} */ message) { + const isStringMessage = typeof message === 'string'; + const parsedMessage = isStringMessage ? JSON.parse(message) : message; + + if ( + parsedMessage != null && + typeof parsedMessage === `object` && + parsedMessage.arguments && + typeof parsedMessage.arguments.hostInfo === `string` + ) { + hostInfo = parsedMessage.arguments.hostInfo; + if (hostInfo === `vscode` && process.env.VSCODE_IPC_HOOK) { + const [, major, minor] = (process.env.VSCODE_IPC_HOOK.match( + // The RegExp from https://semver.org/ but without the caret at the start + /(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/ + ) ?? []).map(Number) + + if (major === 1) { + if (minor < 61) { + hostInfo += ` <1.61`; + } else if (minor < 66) { + hostInfo += ` <1.66`; + } else if (minor < 68) { + hostInfo += ` <1.68`; + } + } + } + } + + const processedMessageJSON = JSON.stringify(parsedMessage, (key, value) => { + return typeof value === 'string' ? fromEditorPath(value) : value; + }); + + return originalOnMessage.call( + this, + isStringMessage ? processedMessageJSON : JSON.parse(processedMessageJSON) + ); + }, + + send(/** @type {any} */ msg) { + return originalSend.call(this, JSON.parse(JSON.stringify(msg, (key, value) => { + return typeof value === `string` ? toEditorPath(value) : value; + }))); + } + }); + + return tsserver; +}; + +const [major, minor] = absRequire(`typescript/package.json`).version.split(`.`, 2).map(value => parseInt(value, 10)); +// In TypeScript@>=5.5 the tsserver uses the public TypeScript API so that needs to be patched as well. +// Ref https://github.com/microsoft/TypeScript/pull/55326 +if (major > 5 || (major === 5 && minor >= 5)) { + moduleWrapper(absRequire(`typescript`)); +} + +// Defer to the real typescript/lib/tsserver.js your application uses +module.exports = moduleWrapper(absRequire(`typescript/lib/tsserver.js`)); diff --git a/.yarn/sdks/typescript/lib/tsserverlibrary.js b/.yarn/sdks/typescript/lib/tsserverlibrary.js new file mode 100644 index 00000000..0e50e0a2 --- /dev/null +++ b/.yarn/sdks/typescript/lib/tsserverlibrary.js @@ -0,0 +1,248 @@ +#!/usr/bin/env node + +const {existsSync} = require(`fs`); +const {createRequire, register} = require(`module`); +const {resolve} = require(`path`); +const {pathToFileURL} = require(`url`); + +const relPnpApiPath = "../../../../.pnp.cjs"; + +const absPnpApiPath = resolve(__dirname, relPnpApiPath); +const absUserWrapperPath = resolve(__dirname, `./sdk.user.cjs`); +const absRequire = createRequire(absPnpApiPath); + +const absPnpLoaderPath = resolve(absPnpApiPath, `../.pnp.loader.mjs`); +const isPnpLoaderEnabled = existsSync(absPnpLoaderPath); + +if (existsSync(absPnpApiPath)) { + if (!process.versions.pnp) { + // Setup the environment to be able to require typescript/lib/tsserverlibrary.js + require(absPnpApiPath).setup(); + if (isPnpLoaderEnabled && register) { + register(pathToFileURL(absPnpLoaderPath)); + } + } +} + +const wrapWithUserWrapper = existsSync(absUserWrapperPath) + ? exports => absRequire(absUserWrapperPath)(exports) + : exports => exports; + +const moduleWrapper = exports => { + return wrapWithUserWrapper(moduleWrapperFn(exports)); +}; + +const moduleWrapperFn = tsserver => { + if (!process.versions.pnp) { + return tsserver; + } + + const {isAbsolute} = require(`path`); + const pnpApi = require(`pnpapi`); + + const isVirtual = str => str.match(/\/(\$\$virtual|__virtual__)\//); + const isPortal = str => str.startsWith("portal:/"); + const normalize = str => str.replace(/\\/g, `/`).replace(/^\/?/, `/`); + + const dependencyTreeRoots = new Set(pnpApi.getDependencyTreeRoots().map(locator => { + return `${locator.name}@${locator.reference}`; + })); + + // VSCode sends the zip paths to TS using the "zip://" prefix, that TS + // doesn't understand. This layer makes sure to remove the protocol + // before forwarding it to TS, and to add it back on all returned paths. + + function toEditorPath(str) { + // We add the `zip:` prefix to both `.zip/` paths and virtual paths + if (isAbsolute(str) && !str.match(/^\^?(zip:|\/zip\/)/) && (str.match(/\.zip\//) || isVirtual(str))) { + // We also take the opportunity to turn virtual paths into physical ones; + // this makes it much easier to work with workspaces that list peer + // dependencies, since otherwise Ctrl+Click would bring us to the virtual + // file instances instead of the real ones. + // + // We only do this to modules owned by the the dependency tree roots. + // This avoids breaking the resolution when jumping inside a vendor + // with peer dep (otherwise jumping into react-dom would show resolution + // errors on react). + // + const resolved = isVirtual(str) ? pnpApi.resolveVirtual(str) : str; + if (resolved) { + const locator = pnpApi.findPackageLocator(resolved); + if (locator && (dependencyTreeRoots.has(`${locator.name}@${locator.reference}`) || isPortal(locator.reference))) { + str = resolved; + } + } + + str = normalize(str); + + if (str.match(/\.zip\//)) { + switch (hostInfo) { + // Absolute VSCode `Uri.fsPath`s need to start with a slash. + // VSCode only adds it automatically for supported schemes, + // so we have to do it manually for the `zip` scheme. + // The path needs to start with a caret otherwise VSCode doesn't handle the protocol + // + // Ref: https://github.com/microsoft/vscode/issues/105014#issuecomment-686760910 + // + // 2021-10-08: VSCode changed the format in 1.61. + // Before | ^zip:/c:/foo/bar.zip/package.json + // After | ^/zip//c:/foo/bar.zip/package.json + // + // 2022-04-06: VSCode changed the format in 1.66. + // Before | ^/zip//c:/foo/bar.zip/package.json + // After | ^/zip/c:/foo/bar.zip/package.json + // + // 2022-05-06: VSCode changed the format in 1.68 + // Before | ^/zip/c:/foo/bar.zip/package.json + // After | ^/zip//c:/foo/bar.zip/package.json + // + case `vscode <1.61`: { + str = `^zip:${str}`; + } break; + + case `vscode <1.66`: { + str = `^/zip/${str}`; + } break; + + case `vscode <1.68`: { + str = `^/zip${str}`; + } break; + + case `vscode`: { + str = `^/zip/${str}`; + } break; + + // To make "go to definition" work, + // We have to resolve the actual file system path from virtual path + // and convert scheme to supported by [vim-rzip](https://github.com/lbrayner/vim-rzip) + case `coc-nvim`: { + str = normalize(resolved).replace(/\.zip\//, `.zip::`); + str = resolve(`zipfile:${str}`); + } break; + + // Support neovim native LSP and [typescript-language-server](https://github.com/theia-ide/typescript-language-server) + // We have to resolve the actual file system path from virtual path, + // everything else is up to neovim + case `neovim`: { + str = normalize(resolved).replace(/\.zip\//, `.zip::`); + str = `zipfile://${str}`; + } break; + + default: { + str = `zip:${str}`; + } break; + } + } else { + str = str.replace(/^\/?/, process.platform === `win32` ? `` : `/`); + } + } + + return str; + } + + function fromEditorPath(str) { + switch (hostInfo) { + case `coc-nvim`: { + str = str.replace(/\.zip::/, `.zip/`); + // The path for coc-nvim is in format of //zipfile://.yarn/... + // So in order to convert it back, we use .* to match all the thing + // before `zipfile:` + return process.platform === `win32` + ? str.replace(/^.*zipfile:\//, ``) + : str.replace(/^.*zipfile:/, ``); + } break; + + case `neovim`: { + str = str.replace(/\.zip::/, `.zip/`); + // The path for neovim is in format of zipfile:////.yarn/... + return str.replace(/^zipfile:\/\//, ``); + } break; + + case `vscode`: + default: { + return str.replace(/^\^?(zip:|\/zip(\/ts-nul-authority)?)\/+/, process.platform === `win32` ? `` : `/`) + } break; + } + } + + // Force enable 'allowLocalPluginLoads' + // TypeScript tries to resolve plugins using a path relative to itself + // which doesn't work when using the global cache + // https://github.com/microsoft/TypeScript/blob/1b57a0395e0bff191581c9606aab92832001de62/src/server/project.ts#L2238 + // VSCode doesn't want to enable 'allowLocalPluginLoads' due to security concerns but + // TypeScript already does local loads and if this code is running the user trusts the workspace + // https://github.com/microsoft/vscode/issues/45856 + const ConfiguredProject = tsserver.server.ConfiguredProject; + const {enablePluginsWithOptions: originalEnablePluginsWithOptions} = ConfiguredProject.prototype; + ConfiguredProject.prototype.enablePluginsWithOptions = function() { + this.projectService.allowLocalPluginLoads = true; + return originalEnablePluginsWithOptions.apply(this, arguments); + }; + + // And here is the point where we hijack the VSCode <-> TS communications + // by adding ourselves in the middle. We locate everything that looks + // like an absolute path of ours and normalize it. + + const Session = tsserver.server.Session; + const {onMessage: originalOnMessage, send: originalSend} = Session.prototype; + let hostInfo = `unknown`; + + Object.assign(Session.prototype, { + onMessage(/** @type {string | object} */ message) { + const isStringMessage = typeof message === 'string'; + const parsedMessage = isStringMessage ? JSON.parse(message) : message; + + if ( + parsedMessage != null && + typeof parsedMessage === `object` && + parsedMessage.arguments && + typeof parsedMessage.arguments.hostInfo === `string` + ) { + hostInfo = parsedMessage.arguments.hostInfo; + if (hostInfo === `vscode` && process.env.VSCODE_IPC_HOOK) { + const [, major, minor] = (process.env.VSCODE_IPC_HOOK.match( + // The RegExp from https://semver.org/ but without the caret at the start + /(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/ + ) ?? []).map(Number) + + if (major === 1) { + if (minor < 61) { + hostInfo += ` <1.61`; + } else if (minor < 66) { + hostInfo += ` <1.66`; + } else if (minor < 68) { + hostInfo += ` <1.68`; + } + } + } + } + + const processedMessageJSON = JSON.stringify(parsedMessage, (key, value) => { + return typeof value === 'string' ? fromEditorPath(value) : value; + }); + + return originalOnMessage.call( + this, + isStringMessage ? processedMessageJSON : JSON.parse(processedMessageJSON) + ); + }, + + send(/** @type {any} */ msg) { + return originalSend.call(this, JSON.parse(JSON.stringify(msg, (key, value) => { + return typeof value === `string` ? toEditorPath(value) : value; + }))); + } + }); + + return tsserver; +}; + +const [major, minor] = absRequire(`typescript/package.json`).version.split(`.`, 2).map(value => parseInt(value, 10)); +// In TypeScript@>=5.5 the tsserver uses the public TypeScript API so that needs to be patched as well. +// Ref https://github.com/microsoft/TypeScript/pull/55326 +if (major > 5 || (major === 5 && minor >= 5)) { + moduleWrapper(absRequire(`typescript`)); +} + +// Defer to the real typescript/lib/tsserverlibrary.js your application uses +module.exports = moduleWrapper(absRequire(`typescript/lib/tsserverlibrary.js`)); diff --git a/.yarn/sdks/typescript/lib/typescript.js b/.yarn/sdks/typescript/lib/typescript.js new file mode 100644 index 00000000..7b6cc220 --- /dev/null +++ b/.yarn/sdks/typescript/lib/typescript.js @@ -0,0 +1,32 @@ +#!/usr/bin/env node + +const {existsSync} = require(`fs`); +const {createRequire, register} = require(`module`); +const {resolve} = require(`path`); +const {pathToFileURL} = require(`url`); + +const relPnpApiPath = "../../../../.pnp.cjs"; + +const absPnpApiPath = resolve(__dirname, relPnpApiPath); +const absUserWrapperPath = resolve(__dirname, `./sdk.user.cjs`); +const absRequire = createRequire(absPnpApiPath); + +const absPnpLoaderPath = resolve(absPnpApiPath, `../.pnp.loader.mjs`); +const isPnpLoaderEnabled = existsSync(absPnpLoaderPath); + +if (existsSync(absPnpApiPath)) { + if (!process.versions.pnp) { + // Setup the environment to be able to require typescript + require(absPnpApiPath).setup(); + if (isPnpLoaderEnabled && register) { + register(pathToFileURL(absPnpLoaderPath)); + } + } +} + +const wrapWithUserWrapper = existsSync(absUserWrapperPath) + ? exports => absRequire(absUserWrapperPath)(exports) + : exports => exports; + +// Defer to the real typescript your application uses +module.exports = wrapWithUserWrapper(absRequire(`typescript`)); diff --git a/.yarn/sdks/typescript/package.json b/.yarn/sdks/typescript/package.json index bc10fac9..a9c9401b 100644 --- a/.yarn/sdks/typescript/package.json +++ b/.yarn/sdks/typescript/package.json @@ -1,6 +1,6 @@ { "name": "typescript", - "version": "5.3.2-sdk", + "version": "5.6.3-sdk", "main": "./lib/typescript.js", "type": "commonjs", "bin": { diff --git a/.yarnrc.yml b/.yarnrc.yml index 199a7790..13a7b193 100644 --- a/.yarnrc.yml +++ b/.yarnrc.yml @@ -1 +1,3 @@ enableTelemetry: false + +preferInteractive: true diff --git a/LICENSE b/LICENSE index 58dec3f3..0ad25db4 100644 --- a/LICENSE +++ b/LICENSE @@ -1,21 +1,661 @@ -MIT License - -Copyright (c) 2022 S. Ali Mihandoost - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. + GNU AFFERO GENERAL PUBLIC LICENSE + Version 3, 19 November 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU Affero General Public License is a free, copyleft license for +software and other kinds of works, specifically designed to ensure +cooperation with the community in the case of network server software. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +our General Public Licenses are intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + Developers that use our General Public Licenses protect your rights +with two steps: (1) assert copyright on the software, and (2) offer +you this License which gives you legal permission to copy, distribute +and/or modify the software. + + A secondary benefit of defending all users' freedom is that +improvements made in alternate versions of the program, if they +receive widespread use, become available for other developers to +incorporate. Many developers of free software are heartened and +encouraged by the resulting cooperation. However, in the case of +software used on network servers, this result may fail to come about. +The GNU General Public License permits making a modified version and +letting the public access it on a server without ever releasing its +source code to the public. + + The GNU Affero General Public License is designed specifically to +ensure that, in such cases, the modified source code becomes available +to the community. It requires the operator of a network server to +provide the source code of the modified version running there to the +users of that server. Therefore, public use of a modified version, on +a publicly accessible server, gives the public access to the source +code of the modified version. + + An older license, called the Affero General Public License and +published by Affero, was designed to accomplish similar goals. This is +a different license, not a version of the Affero GPL, but Affero has +released a new version of the Affero GPL which permits relicensing under +this license. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU Affero General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Remote Network Interaction; Use with the GNU General Public License. + + Notwithstanding any other provision of this License, if you modify the +Program, your modified version must prominently offer all users +interacting with it remotely through a computer network (if your version +supports such interaction) an opportunity to receive the Corresponding +Source of your version by providing access to the Corresponding Source +from a network server at no charge, through some standard or customary +means of facilitating copying of software. This Corresponding Source +shall include the Corresponding Source for any work covered by version 3 +of the GNU General Public License that is incorporated pursuant to the +following paragraph. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the work with which it is combined will remain governed by version +3 of the GNU General Public License. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU Affero General Public License from time to time. Such new versions +will be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU Affero General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU Affero General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU Affero General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published + by the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If your software can interact with users remotely through a computer +network, you should also make sure that it provides a way for users to +get its source. For example, if your program is a web application, its +interface could display a "Source" link that leads users to an archive +of the code. There are many ways you could offer source, and different +solutions will be better for different programs; see section 13 for the +specific requirements. + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU AGPL, see +. diff --git a/README.md b/README.md index 42040d1d..44a36f95 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,41 @@ -# Alwatr Notifier +# ECMAScript Nano Libs -Alwatr Notifier Microservice +This repository contains numerous small utility packages. These packages serve various useful purposes and are written in nano ESModule without any dependencies. + +Here is a brief overview of the included libraries: + +1. [`tsconfig-base`](./packages/tsconfig-base#readme): This is a foundational TypeScript configuration used for Alwatr projects. +2. [`flat-string`](./packages/flat-string#readme): The `flat-string` function flattens the underlying C structures of a concatenated JavaScript string. +3. [`global-scope`](./packages/global-scope#readme): This TypeScript module provides a cross-platform alternative to `globalThis` named `globalScope`. This object works across different environments, including browsers (`window`), Node.js (`global`), and Web Workers (`self`). +4. [`platform-info`](./packages/platform-info#readme): This module offers a method to identify the current platform where the script is being executed. It defines a `platformInfo` constant that contains details about the current platform. +5. [`prettier-config`](./packages/prettier-config#readme): These are Alwatr's shared configurations for Prettier. +6. [`eslint-config`](./packages/eslint-config#readme): This is Alwatr's ECMAScript Style Guide presented as shareable ESLint configurations. +7. [`deep-clone`](./packages/deep-clone#readme): This function allows you to clone deeply nested objects and arrays in JavaScript. +8. [`nano-build`](./packages/nano-build#readme): This is a tool for building/bundling ECMAScript, TypeScript, and JavaScript libraries. It's user-friendly, requires no setup, follows best practices, has no dependencies, and uses esbuild for improved performance. +9. [`type-helper`](./packages/type-helper#readme): Collection of useful typescript type helpers. +10. [`wait`](./packages/wait#readme): Comprehensive toolkit for managing asynchronous operations. +11. [`exit-hook`](./packages/exit-hook#readme): A utility for registering exit handlers in Node.js. +12. [`flatomise`](./packages/flatomise#readme): A utility for creating promises that can be externally resolved or rejected. +13. [`async-queue`](./packages/async-queue#readme): A queue that executes async tasks in order like mutex and semaphore methodology for javascript and typescript. +14. [`node-fs`](./packages/node-fs#readme): Enhanced file system operations in Node.js, including reading, writing, and handling JSON files, with both synchronous and asynchronous options. +15. [`is-number`](./packages/is-number#readme): A simple utility to check if a value is a number. +16. [`parse-duration`](./packages/parse-duration#readme): A simple utility to parse a duration string into milliseconds number. +17. [`local-storage`](./packages/local-storage#readme): `localJsonStorage` is a utility object in our TypeScript package that provides methods for interacting with the local storage in a structured and versioned manner. +18. [`polyfill-has-own`](./packages/polyfill-has-own#readme): A polyfill for `Object.hasOwn`. +19. [`fetch`](./packages/fetch/README.md): Enhanced fetch API with cache strategy, retry pattern, timeout, helper methods and enhanced types. + +For more detailed information and guidelines on how to use each package, please refer to each package's README. + +## Sponsors + +The following companies, organizations, and individuals support Nanolib ongoing maintenance and development. Become a Sponsor to get your logo on our README and website. + +[![Exir Studio](https://avatars.githubusercontent.com/u/181194967?s=200&v=4)](https://exirstudio.com) + +### Contributing + +Contributions are welcome! Please read our [contribution guidelines](https://github.com/Alwatr/.github/blob/next/CONTRIBUTING.md) before submitting a pull request. + +### License + +This project is licensed under the [AGPL-3.0 License](LICENSE). diff --git a/lerna.json b/lerna.json index 4190af84..2e1f784d 100644 --- a/lerna.json +++ b/lerna.json @@ -1,6 +1,6 @@ { - "$schema": "node_modules/@lerna-lite/cli/schemas/lerna-schema.json", - "version": "1.0.0", + "$schema": "https://raw.githubusercontent.com/lerna-lite/lerna-lite/main/packages/cli/schemas/lerna-schema.json", + "version": "independent", "npmClient": "yarn", "packages": ["packages/*"], "loglevel": "verbose", @@ -8,16 +8,36 @@ "version": { "conventionalCommits": true, "changelog": true, - "changelogPreset": "conventional-changelog-angular", + "changelogPreset": { + "name": "conventionalcommits", + "types": [ + {"type": "feat", "section": "Features"}, + {"type": "feature", "section": "Features"}, + {"type": "fix", "section": "Bug Fixes"}, + {"type": "perf", "section": "Performance Improvements"}, + {"type": "revert", "section": "Reverts"}, + {"type": "refactor", "section": "Code Refactoring"}, + {"type": "chore", "section": "Miscellaneous Chores"}, + {"type": "docs", "section": "Documentation", "hidden": true}, + {"type": "doc", "section": "Documentation", "hidden": true}, + {"type": "deps", "section": "Dependencies update", "hidden": false}, + {"type": "style", "section": "Styles", "hidden": true}, + {"type": "test", "section": "Tests", "hidden": true}, + {"type": "build", "section": "Build System", "hidden": true}, + {"type": "ci", "section": "Continuous Integration", "hidden": true} + ] + }, "changelogIncludeCommitsClientLogin": " by @%l", "ignoreChanges": ["*.md"], + "skipBumpOnlyReleases": true, "message": "release:", - "private": true, + "private": false, "forceGitTag": true, "signGitTag": true, "signGitCommit": true, "push": true, - "createRelease": "github" + "createRelease": "github", + "conventionalGraduate": true }, "run": { "stream": true diff --git a/package.json b/package.json index 18aae178..a2208451 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "description": "Alwatr Notifier Microservice", "repository": "https://github.com/Alwatr/notifier", "author": "S. Ali Mihandoost (https://ali.mihandoost.com)", - "license": "MIT", + "license": "AGPL-3.0-only", "type": "module", "private": true, "engines": { @@ -13,53 +13,52 @@ "workspaces": [ "packages/*" ], + "prettier": "@alwatr/prettier-config", "scripts": { - "l": "yarn run lint", "b": "yarn run build", - "br": "run-s build build:r", - "c": "yarn run clean", - "cb": "run-s clean build", - "s": "run-s build serve", + "t": "yarn run test", "w": "yarn run watch", + "c": "yarn run clean", + "cb": "yarn run clean && yarn run build", + "l": "yarn run lint", "f": "yarn run format", - "fl": "yarn run format:eslint", - "fp": "yarn run format:prettier", - "rl": "run-s pull clean build release", - "upd": "yarn set version latest; yarn up '*'; yarn up '*' -R; yarn dlx @yarnpkg/sdks vscode;", - "lint": "run-s 'lint:*'", - "lint:ts": "eslint . --config .eslintrc.json --ext .ts", - "build": "run-s build:ts build:r", - "build:ts": "tsc --build", - "build:r": "lerna run build", - "format": "run-s format:prettier format:eslint", - "format:eslint": "yarn run lint:ts --fix", + "rl": "yarn run pull && yarn run clean && yarn run build && yarn run lint && yarn run release", + "upd": "yarn set version latest; yarn up '*'; yarn up '*' -R; yarn dlx @yarnpkg/sdks vscode; yarn dedupe", + "lint": "yarn run lint:ts && yarn run lint:es", + "lint:es": "eslint . --config .eslintrc.json --ext .ts", + "lint:ts": "lerna run build:ts", + "build": "lerna run build", + "test": "NODE_OPTIONS=\"$NODE_OPTIONS --enable-source-maps --experimental-vm-modules\" jest --verbose --passWithNoTests", + "watch": "lerna run --parallel watch", + "format": "yarn run format:prettier && yarn run format:eslint", + "format:eslint": "yarn run lint --fix", "format:prettier": "prettier . --ignore-path .gitignore --write", - "clean": "git clean -d -x -f --exclude=node_modules --exclude='*.env' --exclude=_data --exclude='.pnp*' --exclude=.yarn", - "serve": "wds", - "watch": "run-p 'watch:*' serve", - "watch:ts": "yarn run build:ts --watch --preserveWatchOutput", + "clean": "git add -v . && git clean -d -x -f --exclude=node_modules --exclude='*.env' --exclude=_data --exclude='.pnp*' --exclude=.yarn", "pull": "git pull", "release": "lerna version", "publish": "lerna publish from-package" }, "devDependencies": { - "@lerna-lite/changed": "^3.0.0", - "@lerna-lite/cli": "^3.0.0", - "@lerna-lite/diff": "^3.0.0", - "@lerna-lite/exec": "^3.0.0", - "@lerna-lite/publish": "^3.0.0", - "@lerna-lite/run": "^3.0.0", - "@lerna-lite/version": "^3.0.0", - "@types/node": "^20.10.0", - "@typescript-eslint/eslint-plugin": "^6.12.0", - "@typescript-eslint/parser": "^6.12.0", - "@web/dev-server": "^0.4.1", - "eslint": "^8.54.0", - "eslint-import-resolver-typescript": "^3.6.1", - "eslint-plugin-import": "^2.29.0", - "npm-run-all": "^4.1.5", - "prettier": "^3.1.0", - "typescript": "^5.3.2" + "@alwatr/eslint-config": "workspace:^", + "@alwatr/prettier-config": "workspace:^", + "@lerna-lite/changed": "^3.9.3", + "@lerna-lite/cli": "^3.9.3", + "@lerna-lite/diff": "^3.9.3", + "@lerna-lite/exec": "^3.9.3", + "@lerna-lite/publish": "^3.9.3", + "@lerna-lite/run": "^3.9.3", + "@lerna-lite/version": "^3.9.3", + "@types/jest": "^29.5.13", + "@typescript-eslint/eslint-plugin": "^7.15.0", + "@typescript-eslint/parser": "^7.15.0", + "conventional-changelog-conventionalcommits": "^7.0.2", + "eslint": "^8.57.1", + "eslint-import-resolver-typescript": "^3.6.3", + "eslint-plugin-import": "^2.31.0", + "eslint-plugin-require-extensions": "^0.1.3", + "jest": "^29.7.0", + "prettier": "^3.3.3", + "typescript": "^5.6.3" }, - "packageManager": "yarn@4.0.2" + "packageManager": "yarn@4.5.0" } From 6e956096cd6a8ef4d804d044a254a56329805b27 Mon Sep 17 00:00:00 2001 From: Mohammad Honarvar Date: Mon, 21 Oct 2024 13:13:14 +0330 Subject: [PATCH 02/60] refactor(telegram): fix errors & complete the structure --- packages/telegram/CHANGELOG.md | 88 --- packages/telegram/LICENSE | 661 ++++++++++++++++++ packages/telegram/package.json | 68 +- packages/telegram/src/bot/bot.ts | 5 - packages/telegram/src/bot/command/start.ts | 30 - packages/telegram/src/bot/launch.ts | 20 - packages/telegram/src/bot/send-message.ts | 59 +- packages/telegram/src/bot/start-command.ts | 82 +++ .../telegram/src/bot/unsubscribe-callback.ts | 31 + packages/telegram/src/config.ts | 27 - packages/telegram/src/index.ts | 9 - packages/telegram/src/lib/admin.ts | 14 + packages/telegram/src/lib/bot.ts | 5 + packages/telegram/src/lib/config.ts | 82 +++ packages/telegram/src/lib/i18n.ts | 16 + .../telegram/src/lib/initialize-nitrobase.ts | 8 + packages/telegram/src/lib/nano-server.ts | 5 - packages/telegram/src/lib/nitrobase.ts | 5 + .../telegram/src/lib/parse-request-body.ts | 18 + packages/telegram/src/lib/server.ts | 5 + packages/telegram/src/lib/storage.ts | 6 - packages/telegram/src/lib/type.ts | 5 - packages/telegram/src/lib/util.ts | 11 + packages/telegram/src/main.ts | 21 + packages/telegram/src/route/home.ts | 25 +- packages/telegram/src/route/notify.ts | 37 +- packages/telegram/src/type.ts | 1 + packages/telegram/tsconfig.json | 13 +- 28 files changed, 1084 insertions(+), 273 deletions(-) delete mode 100644 packages/telegram/CHANGELOG.md create mode 100644 packages/telegram/LICENSE delete mode 100644 packages/telegram/src/bot/bot.ts delete mode 100644 packages/telegram/src/bot/command/start.ts delete mode 100644 packages/telegram/src/bot/launch.ts create mode 100644 packages/telegram/src/bot/start-command.ts create mode 100644 packages/telegram/src/bot/unsubscribe-callback.ts delete mode 100644 packages/telegram/src/config.ts delete mode 100644 packages/telegram/src/index.ts create mode 100644 packages/telegram/src/lib/admin.ts create mode 100644 packages/telegram/src/lib/bot.ts create mode 100644 packages/telegram/src/lib/config.ts create mode 100644 packages/telegram/src/lib/i18n.ts create mode 100644 packages/telegram/src/lib/initialize-nitrobase.ts delete mode 100644 packages/telegram/src/lib/nano-server.ts create mode 100644 packages/telegram/src/lib/nitrobase.ts create mode 100644 packages/telegram/src/lib/parse-request-body.ts create mode 100644 packages/telegram/src/lib/server.ts delete mode 100644 packages/telegram/src/lib/storage.ts delete mode 100644 packages/telegram/src/lib/type.ts create mode 100644 packages/telegram/src/lib/util.ts create mode 100644 packages/telegram/src/main.ts create mode 100644 packages/telegram/src/type.ts diff --git a/packages/telegram/CHANGELOG.md b/packages/telegram/CHANGELOG.md deleted file mode 100644 index 63c24b78..00000000 --- a/packages/telegram/CHANGELOG.md +++ /dev/null @@ -1,88 +0,0 @@ -# Change Log - -All notable changes to this project will be documented in this file. -See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. - -## [1.0.1](https://github.com/Alwatr/notifier/compare/v1.0.0...v1.0.1) (2023-06-21) - -**Note:** Version bump only for package @alwatr/telegram-notify - -# [1.0.0](https://github.com/Alwatr/notifier/compare/v0.32.0...v1.0.0) (2023-06-14) - -### Features - -- review and cleanup all workflows ([fff7e92](https://github.com/Alwatr/notifier/commit/fff7e92c5d85a79adcc975802b949a9dc61d2ba3)) - -# [0.32.0](https://github.com/Alwatr/notifier/compare/v0.31.0...v0.32.0) (2023-05-27) - -**Note:** Version bump only for package @alwatr/telegram-notify - -# [0.31.0](https://github.com/Alwatr/notifier/compare/v0.30.0...v0.31.0) (2023-05-08) - -### Bug Fixes - -- new logger api ([9d83a7d](https://github.com/Alwatr/notifier/commit/9d83a7dc5c103bc3bb4282dacfd85fa998915300)) -- **telegram-notifier:** escaping send message ([a9814bf](https://github.com/Alwatr/notifier/commit/a9814bfca41c1260d5de7ec75e2356b3cdcbbc9d)) - -# [0.30.0](https://github.com/Alwatr/notifier/compare/v0.29.0...v0.30.0) (2023-03-06) - -### Bug Fixes - -- **telegram-notifier:** escaping special characters on sendMessage ([5507d6d](https://github.com/Alwatr/notifier/commit/5507d6dd460201979b7ee3bb1ae255e572b7cf0d)) - -# [0.29.0](https://github.com/Alwatr/notifier/compare/v0.28.0...v0.29.0) (2023-02-10) - -### Bug Fixes - -- **typescript:** rollback to 4.9.5 ([cc30f85](https://github.com/Alwatr/notifier/commit/cc30f8502bf95868ff41ba986120b2842acba36b)) - -# [0.28.0](https://github.com/Alwatr/notifier/compare/v0.27.0...v0.28.0) (2023-01-20) - -### Bug Fixes - -- **services:** app name in home page ([6feab58](https://github.com/Alwatr/notifier/commit/6feab58b5655c7a09150ec83adf9f3bd8fe976b4)) -- **services:** name and desc ([453c1b6](https://github.com/Alwatr/notifier/commit/453c1b6ff334a23bea690b7ff9dd874471b25bb9)) -- **services:** service name in first log ([879f87f](https://github.com/Alwatr/notifier/commit/879f87fd4d4b47454d608a5b71d70e47601c7cd7)) -- version in package.json ([403baa5](https://github.com/Alwatr/notifier/commit/403baa53159db2a0fff5b3651769b85e66b13191)) - -### Features - -- **type:** define constructor type ([39c5ab7](https://github.com/Alwatr/notifier/commit/39c5ab74f0a1471d5e20beff89f6885265907633)) - -# [0.27.0](https://github.com/Alwatr/notifier/compare/v0.26.0...v0.27.0) (2022-12-29) - -**Note:** Version bump only for package @alwatr/telegram-notify - -# [0.26.0](https://github.com/Alwatr/notifier/compare/v0.25.0...v0.26.0) (2022-12-22) - -### Bug Fixes - -- add esbuild to git ignore ([46b3714](https://github.com/Alwatr/notifier/commit/46b3714a4b578b6cfae9e2d17f8c39623470c1f5)) -- all import without .js ([fa739ab](https://github.com/Alwatr/notifier/commit/fa739ab23f67bae1d10bfcc146920b71377a26fc)) -- clean command ([14bafbb](https://github.com/Alwatr/notifier/commit/14bafbb01b3c92ccf516346a4e5117f1893c32e9)) -- crawler loop ([72951f9](https://github.com/Alwatr/notifier/commit/72951f904c8e8eb04ded2a485a65add99150f984)) -- inline home route ([94279c2](https://github.com/Alwatr/notifier/commit/94279c21891fc710f48642b1c8debbf02b2436d3)) -- inline home route ([ce978f6](https://github.com/Alwatr/notifier/commit/ce978f6e1e2890e853d0db351c08efca665e5fad)) -- package.json script ([e633a8c](https://github.com/Alwatr/notifier/commit/e633a8c4355bec0d2fc044f073f7f639c0fd1976)) -- remove lint dependencies from services ([f047a5b](https://github.com/Alwatr/notifier/commit/f047a5bb0d1e8277f48b55969e18dc3582d9a234)) -- services serve script ([3c62e06](https://github.com/Alwatr/notifier/commit/3c62e06ec594ec7da171fc39ec77787e3bd29a0c)) -- **services/telegram-notifier:** remove await out of fucntion ([283b58b](https://github.com/Alwatr/notifier/commit/283b58b0ebf8a9c01805e1aa6ee8222933b9dbc7)) -- **services/telegram-notifier:** remove storga-client ([c27f992](https://github.com/Alwatr/notifier/commit/c27f9927b97f4d6f2e9c78d5a0a3f0268275bc38)) -- **services/telegram-notifier:** set stroage name in config ([010fa71](https://github.com/Alwatr/notifier/commit/010fa71cf15698bffcc5378b252bd0aa564d8d6e)) -- **telegram-notifier:** build ([ecce1df](https://github.com/Alwatr/notifier/commit/ecce1df81642b329dfb863d0503c06fc40688550)) -- **telegram-notifier:** folder ([8bb0b01](https://github.com/Alwatr/notifier/commit/8bb0b016502f6e2c5b1dd588e8300d36eb24eba7)) -- **telegram-notifier:** lanch fail ([413b5fc](https://github.com/Alwatr/notifier/commit/413b5fc3753304fe3c7e3e4ff574040fe3395ae8)) -- **telegram-notifier:** prevent duplicate register ([4f41f4c](https://github.com/Alwatr/notifier/commit/4f41f4c6cca881f0fc90cc253d8d6eaa15a50c43)) -- tsconfig refrences ([cea0562](https://github.com/Alwatr/notifier/commit/cea05621ecfa499476c5b10a412e60f27ba6a06d)) -- update reply nano-server ([5a2d0e5](https://github.com/Alwatr/notifier/commit/5a2d0e5698b16cffcc5393ee4a44ffda66702425)) - -### Features - -- esbuild (: ([43c7269](https://github.com/Alwatr/notifier/commit/43c7269333cf71b142e26da1456446d42fb3f8e0)) -- **flight-crawler:** run infinite ([a0185bc](https://github.com/Alwatr/notifier/commit/a0185bc39eab40862e0621ae703f604b30998991)) -- improve error debugging ([1fba504](https://github.com/Alwatr/notifier/commit/1fba50400a1e8ececc10bbe8ea11cc8dcea2289c)) -- launchBot ([b3990f9](https://github.com/Alwatr/notifier/commit/b3990f92bba1b65d0e728615f701a4799619d821)) -- move some depndencies to devDependencies ([4e9576e](https://github.com/Alwatr/notifier/commit/4e9576e6fd55f361e08a54230931ad45832131d9)) -- new build process ([aa23ed2](https://github.com/Alwatr/notifier/commit/aa23ed256824b9b4409e51a3213d6e67f2aeb8a3)) -- **services/telegram-notifier:** dynamic storage path ([9f59240](https://github.com/Alwatr/notifier/commit/9f5924008d7b567af1c990450da2450af887404a)) -- **telegram-notifier:** esbuild config ([b1ca298](https://github.com/Alwatr/notifier/commit/b1ca298df482daddfab4d89e807c4c5654394245)) diff --git a/packages/telegram/LICENSE b/packages/telegram/LICENSE new file mode 100644 index 00000000..0ad25db4 --- /dev/null +++ b/packages/telegram/LICENSE @@ -0,0 +1,661 @@ + GNU AFFERO GENERAL PUBLIC LICENSE + Version 3, 19 November 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU Affero General Public License is a free, copyleft license for +software and other kinds of works, specifically designed to ensure +cooperation with the community in the case of network server software. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +our General Public Licenses are intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + Developers that use our General Public Licenses protect your rights +with two steps: (1) assert copyright on the software, and (2) offer +you this License which gives you legal permission to copy, distribute +and/or modify the software. + + A secondary benefit of defending all users' freedom is that +improvements made in alternate versions of the program, if they +receive widespread use, become available for other developers to +incorporate. Many developers of free software are heartened and +encouraged by the resulting cooperation. However, in the case of +software used on network servers, this result may fail to come about. +The GNU General Public License permits making a modified version and +letting the public access it on a server without ever releasing its +source code to the public. + + The GNU Affero General Public License is designed specifically to +ensure that, in such cases, the modified source code becomes available +to the community. It requires the operator of a network server to +provide the source code of the modified version running there to the +users of that server. Therefore, public use of a modified version, on +a publicly accessible server, gives the public access to the source +code of the modified version. + + An older license, called the Affero General Public License and +published by Affero, was designed to accomplish similar goals. This is +a different license, not a version of the Affero GPL, but Affero has +released a new version of the Affero GPL which permits relicensing under +this license. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU Affero General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Remote Network Interaction; Use with the GNU General Public License. + + Notwithstanding any other provision of this License, if you modify the +Program, your modified version must prominently offer all users +interacting with it remotely through a computer network (if your version +supports such interaction) an opportunity to receive the Corresponding +Source of your version by providing access to the Corresponding Source +from a network server at no charge, through some standard or customary +means of facilitating copying of software. This Corresponding Source +shall include the Corresponding Source for any work covered by version 3 +of the GNU General Public License that is incorporated pursuant to the +following paragraph. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the work with which it is combined will remain governed by version +3 of the GNU General Public License. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU Affero General Public License from time to time. Such new versions +will be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU Affero General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU Affero General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU Affero General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published + by the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If your software can interact with users remotely through a computer +network, you should also make sure that it provides a way for users to +get its source. For example, if your program is a web application, its +interface could display a "Source" link that leads users to an archive +of the code. There are many ways you could offer source, and different +solutions will be better for different programs; see section 13 for the +specific requirements. + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU AGPL, see +. diff --git a/packages/telegram/package.json b/packages/telegram/package.json index ce5e3b46..56b53271 100644 --- a/packages/telegram/package.json +++ b/packages/telegram/package.json @@ -11,12 +11,23 @@ "typescript", "alwatr" ], - "author": "S. Ali Mihandoost (https://ali.mihandoost.com)", - "license": "MIT", - "private": true, - "engines": { - "node": ">=18.16.0", - "yarn": ">=4.0.0" + "main": "./dist/main.cjs", + "module": "./dist/main.mjs", + "types": "./dist/main.d.ts", + "exports": { + ".": { + "types": "./dist/main.d.ts", + "import": "./dist/main.mjs", + "require": "./dist/main.cjs" + } + }, + "license": "AGPL-3.0-only", + "files": [ + "**/*.{js,mjs,cjs,map,d.ts,html,md}", + "!demo/**/*" + ], + "publishConfig": { + "access": "public" }, "repository": { "type": "git", @@ -27,35 +38,38 @@ "bugs": { "url": "https://github.com/Alwatr/telegram/issues" }, + "prettier": "@alwatr/prettier-config", + "nano-build": { + "external": [ + "grammy" + ] + }, "scripts": { "b": "yarn run build", - "c": "yarn run clean", - "cb": "run-s clean build", - "s": "yarn run start", + "t": "yarn run test", "w": "yarn run watch", - "start": "NODE_OPTIONS=--enable-source-maps run-s clean build serve", - "build": "yarn run build:ts", + "c": "yarn run clean", + "cb": "yarn run clean && yarn run build", + "d": "yarn run build:es && yarn node --enable-source-maps --trace-warnings", + "build": "yarn run build:ts && yarn run build:es", + "build:es": "nano-build --preset=module", "build:ts": "tsc --build", - "build:es": "esbuild src/index.ts --platform=node --target=node19 --bundle --format=esm --external:telegraf --minify --sourcemap --outdir=dist --out-extension:.js=.mjs", - "clean": "rm -rf dist build .tsbuildinfo", - "serve": "yarn node --enable-source-maps dist/index.mjs", - "serve:debug": "yarn node --inspect --enable-source-maps dist/index.mjs", - "watch": "run-s clean build && run-p watch:es watch:node", - "watch:node": "nodemon -w dist/ --enable-source-maps dist/index.mjs", - "watch:debug-node": "nodemon -w dist/ --inspect --enable-source-maps dist/index.mjs", + "test": "NODE_OPTIONS=\"$NODE_OPTIONS --enable-source-maps --experimental-vm-modules\" jest", + "watch": "yarn run watch:ts & yarn run watch:es", + "watch:es": "yarn run build:es --watch", "watch:ts": "yarn run build:ts --watch --preserveWatchOutput", - "watch:es": "yarn run build:es --watch" + "clean": "rm -rfv dist *.tsbuildinfo" }, "dependencies": { - "telegraf": "^4.15.0" + "grammy": "^1.30.0" }, "devDependencies": { - "@alwatr/logger": "^2.3.0", - "@alwatr/nano-server": "^1.2.1", - "@alwatr/storage-engine": "^4.0.0-rc.0", - "@alwatr/type": "^1.2.1", - "@types/node": "^20.10.0", - "tslib": "^2.6.2", - "typescript": "^5.3.2" + "@alwatr/nano-build": "^2.0.2", + "@alwatr/prettier-config": "^1.0.6", + "@alwatr/tsconfig-base": "^1.3.2", + "@alwatr/type-helper": "^2.0.2", + "@types/node": "^22.7.7", + "alwatr": "^2.0.3", + "typescript": "^5.6.3" } } diff --git a/packages/telegram/src/bot/bot.ts b/packages/telegram/src/bot/bot.ts deleted file mode 100644 index 320bf08c..00000000 --- a/packages/telegram/src/bot/bot.ts +++ /dev/null @@ -1,5 +0,0 @@ -import {Telegraf} from 'telegraf'; - -import {config} from '../config.js'; - -export const bot = new Telegraf(config.telegramBot.token); diff --git a/packages/telegram/src/bot/command/start.ts b/packages/telegram/src/bot/command/start.ts deleted file mode 100644 index 45125142..00000000 --- a/packages/telegram/src/bot/command/start.ts +++ /dev/null @@ -1,30 +0,0 @@ -import {logger} from '../../config.js'; -import {storage} from '../../lib/storage.js'; -import {MemberList} from '../../lib/type.js'; -import {bot} from '../bot.js'; - -bot.command('start', async (ctx): Promise => { - const chatId = ctx.chat.id; - const token = ctx.message.text.split(' ')[1]; - logger.logMethodArgs?.('command/start', {chatId, token}); - - if (token == null) { - ctx.reply('این یک بات خصوصی هستش! لطفا مزاحم نشوید.'); - return; - } - - const target: MemberList = storage.get(token, true) ?? { - id: token, - memberList: [], - }; - - if (target.memberList.indexOf(chatId) !== -1) { - ctx.reply('شما درحال حاضر عضو این لیست هستید!'); - return; - } - - target.memberList.push(chatId); - storage.set(target, true); - - await ctx.reply('شما با موفقیت در لیست ثبت شدید.'); -}); diff --git a/packages/telegram/src/bot/launch.ts b/packages/telegram/src/bot/launch.ts deleted file mode 100644 index 07b9fd34..00000000 --- a/packages/telegram/src/bot/launch.ts +++ /dev/null @@ -1,20 +0,0 @@ -import {bot} from './bot.js'; -import {sendMessage} from './send-message.js'; -import {config, logger} from '../config.js'; - -export async function launchBot(): Promise { - logger.logMethod?.('launchBot'); - try { - bot.botInfo ??= await bot.telegram.getMe(); - logger.logProperty?.('botInfo', bot.botInfo); - - bot.launch().catch((err) => { - logger.error('launchBot', 'launch_bot_failed', err); - }); - - await sendMessage(config.telegramBot.debugNotifyToken, '⚡️ Bot launched'); - } - catch (err) { - logger.error('launchBot', 'launch_bot_failed', err); - } -} diff --git a/packages/telegram/src/bot/send-message.ts b/packages/telegram/src/bot/send-message.ts index 19359d63..3bfd4833 100644 --- a/packages/telegram/src/bot/send-message.ts +++ b/packages/telegram/src/bot/send-message.ts @@ -1,29 +1,56 @@ -import {bot} from './bot.js'; -import {logger} from '../config.js'; -import {storage} from '../lib/storage.js'; +import {bot} from '../lib/bot.js'; +import {config, logger} from '../lib/config.js'; +import {message} from '../lib/i18n.js'; +import {alwatrNitrobase} from '../lib/nitrobase.js'; +import {escapeMessage} from '../lib/util.js'; -const escapeCharacter = ['_', '*', '[', ']', '(', ')', '~', '`', '>', '#', '+', '-', '=', '|', '{', '}', '.', '!']; +import type {Group} from '../type.js'; +import type {GrammyError} from 'grammy'; -export async function sendMessage(to: string, message: string): Promise { - logger.logMethodArgs?.('sendMessage', {to, message}); +/** + * Send a message to member of groupId. + * + * @param groupId - Group ID. + * @param message_ - Message to send. + */ +export async function sendMessageToGroup(groupId: string, message_: string): Promise { + logger.logMethodArgs?.('sendMessageToGroup', {groupId}); + message_ = escapeMessage(message_); - for (const character of escapeCharacter) { - message = message.replaceAll(character, `\\${character}`); - } + const groupsCollection = await alwatrNitrobase.openCollection(config.nitrobase.groupsCollection); - const target = storage.get(to); - if (target === null) { - logger.incident?.('sendMessage', 'target_not_found', 'no one registered to this toke', {to}); + if (groupsCollection.hasItem(groupId) === false) { return; } - for (const chatId of target.memberList) { + const groupData = groupsCollection.getItemData(groupId); + + for (const chatId of groupData.members) { try { - await bot.telegram.sendMessage(chatId, message, {parse_mode: 'MarkdownV2'}); + await bot.api.sendMessage(chatId, message_, { + parse_mode: 'MarkdownV2', + reply_markup: { + inline_keyboard: [ + [ + { + callback_data: `unsubscribe:${groupId}`, + text: message('unsubscribe_me_button'), + }, + ], + ], + }, + }); } catch (err) { - // TODO: handle blocked user - logger.error('sendMessage', 'error_send_message', err, {chatId}); + const err_ = err as GrammyError; + logger.error('sendMessage', 'error_send_message', err_, {chatId}); + + // remove if blocked + if (err_.error_code === 403) { + groupData.members = groupData.members.filter((id) => id !== chatId); + groupsCollection.mergeItemData(groupId, groupData); + groupsCollection.save(); + } } } } diff --git a/packages/telegram/src/bot/start-command.ts b/packages/telegram/src/bot/start-command.ts new file mode 100644 index 00000000..aa693a61 --- /dev/null +++ b/packages/telegram/src/bot/start-command.ts @@ -0,0 +1,82 @@ +import {bot} from '../lib/bot.js'; +import {config, logger} from '../lib/config.js'; +import {message} from '../lib/i18n.js'; +import {alwatrNitrobase} from '../lib/nitrobase.js'; + +import type {Group} from '../type.js'; + +/** + * `start` command. + * + * This command starts the bot. + */ +bot.command('start', async (ctx) => { + const chatId = ctx.chat.id; + const groupId = ctx.match; + logger.logMethodArgs?.('start-command', {chatId, groupId}); + + if (!groupId) { + await ctx.reply(message('private_bot_message'), { + reply_parameters: {message_id: ctx.message!.message_id}, + }); + return; + } + + const groupsCollection = await alwatrNitrobase.openCollection(config.nitrobase.groupsCollection); + + if (groupsCollection.hasItem(groupId) === false) { + groupsCollection.addItem(groupId, {members: [chatId]}); + + await ctx.reply(message('added_message'), { + reply_parameters: {message_id: ctx.message!.message_id}, + reply_markup: { + inline_keyboard: [ + [ + { + callback_data: `unsubscribe:${groupId}`, + text: message('unsubscribe_me_button'), + }, + ], + ], + }, + }); + } + else { + const groupData = groupsCollection.getItemData(groupId); + if (groupData.members.includes(chatId) === false) { + groupData.members.push(chatId); + groupsCollection.mergeItemData(groupId, groupData); + + await ctx.reply(message('added_message'), { + reply_parameters: {message_id: ctx.message!.message_id}, + reply_markup: { + inline_keyboard: [ + [ + { + callback_data: `unsubscribe:${groupId}`, + text: message('unsubscribe_me_button'), + }, + ], + ], + }, + }); + } + else { + await ctx.reply(message('added_already_message'), { + reply_parameters: {message_id: ctx.message!.message_id}, + reply_markup: { + inline_keyboard: [ + [ + { + callback_data: `unsubscribe:${groupId}`, + text: message('unsubscribe_me_button'), + }, + ], + ], + }, + }); + } + } + + groupsCollection.save(); +}); diff --git a/packages/telegram/src/bot/unsubscribe-callback.ts b/packages/telegram/src/bot/unsubscribe-callback.ts new file mode 100644 index 00000000..9cfc71e2 --- /dev/null +++ b/packages/telegram/src/bot/unsubscribe-callback.ts @@ -0,0 +1,31 @@ +import {bot} from '../lib/bot.js'; +import {config} from '../lib/config.js'; +import {message} from '../lib/i18n.js'; +import {alwatrNitrobase} from '../lib/nitrobase.js'; + +import type {Group} from '../type.js'; + +bot.callbackQuery(/^unsubscribe:.*$/, async (ctx) => { + const groupId = ctx.callbackQuery.data.split(':')[1]; + const userId = ctx.from.id; + + const groupsCollection = await alwatrNitrobase.openCollection(config.nitrobase.groupsCollection); + + if (groupsCollection.hasItem(groupId) === false) { + await ctx.reply(message('you_not_subscribed_before')); + return; + } + + const groupData = groupsCollection.getItemData(groupId); + + if (groupData.members.includes(userId) === false) { + await ctx.reply(message('you_not_subscribed_before')); + return; + } + + groupData.members = groupData.members.filter((id) => id !== userId); + groupsCollection.mergeItemData(groupId, groupData); + groupsCollection.save(); + + await ctx.reply(message('unsubscribe_message').replace('{groupId}', groupId)); +}); diff --git a/packages/telegram/src/config.ts b/packages/telegram/src/config.ts deleted file mode 100644 index 8e8719f0..00000000 --- a/packages/telegram/src/config.ts +++ /dev/null @@ -1,27 +0,0 @@ -import {createLogger} from '@alwatr/logger'; - -export const logger = createLogger('telegram-notifier'); - -const telegramBotToken = process.env.TELEGRAM_BOT_TOKEN; - -if (telegramBotToken == undefined) { - throw new Error('telegram bot token required, TELEGRAM_BOT_TOKEN="YOUR_SECRET_TOKEN" yarn start'); -} - -export const config = { - nanoServer: { - host: process.env.HOST ?? '0.0.0.0', - port: process.env.PORT != null ? +process.env.PORT : 8001, - accessToken: process.env.ACCESS_TOKEN ?? 'YOUR_SECRET_TOKEN', - }, - storage: { - path: process.env.STORAGE_PATH ?? 'db', - name: 'notifier-storage', - }, - telegramBot: { - debugNotifyToken: 'debug007', - token: telegramBotToken, - }, -}; - -logger.logProperty?.('config', config); diff --git a/packages/telegram/src/index.ts b/packages/telegram/src/index.ts deleted file mode 100644 index c3699187..00000000 --- a/packages/telegram/src/index.ts +++ /dev/null @@ -1,9 +0,0 @@ -import './bot/command/start.js'; -import {launchBot} from './bot/launch.js'; -import {logger} from './config.js'; -import './route/home.js'; -import './route/notify.js'; - -logger.banner?.('Alwatr Telegram Notify Nanoservice'); - -launchBot(); diff --git a/packages/telegram/src/lib/admin.ts b/packages/telegram/src/lib/admin.ts new file mode 100644 index 00000000..9a3bef4d --- /dev/null +++ b/packages/telegram/src/lib/admin.ts @@ -0,0 +1,14 @@ +// import {bot} from './bot.js'; +// import {config, logger} from './config.js'; +// import {message} from './i18n.js'; + +// export function notifyDebug(message: string) { +// logger.logMethod?.('notifyDebug'); +// return bot.api.sendMessage(config.bot.adminChatId, message, { +// message_thread_id: config.bot.adminThreadId, +// }); +// } + +// export async function onStart() { +// await notifyDebug(message('startup_message')); +// } diff --git a/packages/telegram/src/lib/bot.ts b/packages/telegram/src/lib/bot.ts new file mode 100644 index 00000000..7064061c --- /dev/null +++ b/packages/telegram/src/lib/bot.ts @@ -0,0 +1,5 @@ +import {Bot} from 'grammy'; + +import {config} from './config.js'; + +export const bot = new Bot(config.bot.token, {botInfo: config.bot.info}); diff --git a/packages/telegram/src/lib/config.ts b/packages/telegram/src/lib/config.ts new file mode 100644 index 00000000..3341c9f7 --- /dev/null +++ b/packages/telegram/src/lib/config.ts @@ -0,0 +1,82 @@ +import {createLogger, packageTracer} from 'alwatr/nanolib'; +import {Region, StoreFileType, type AlwatrNitrobaseConfig, type StoreFileStat} from 'alwatr/nitrobase'; + +import type {CryptoFactoryConfig, NanotronApiServerConfig} from 'alwatr/nanotron'; +import type {UserFromGetMe} from 'grammy/types'; + +__dev_mode__: packageTracer.add(__package_name__, __package_version__); + +export const logger = /* #__PURE__ */ createLogger(__package_name__); + +const env = /* #__PURE__ */ (() => { + const devConfig = { + dbPath: './db', + tokenSecret: 'DEV_SECRET', + host: '0.0.0.0', + port: 8000, + botToken: 'BOT_TOKEN', + botUsername: 'BOT_USERNAME', + botFirstName: 'BOT_FIRST_NAME', + dropPendingUpdates: '1' + } as const; + + const env_ = { + ...process.env, + ...(__dev_mode__ ? devConfig : {}), + }; + + for (const key in devConfig) { + if (!Object.hasOwn(devConfig, key)) continue; + if (!Object.hasOwn(env_, key)) throw new Error(`${key} required in production.`); + } + + return env_; +})(); + +export const config = { + token: { + secret: env.tokenSecret!, + duration: '1y', + } as CryptoFactoryConfig, + + nanotronApiServer: { + host: env.host!, + port: +env.port!, + prefix: '/api/', + // allowAllOrigin: true, + } as NanotronApiServerConfig, + + nitrobase: { + config: { + rootPath: env.dbPath!, + } as AlwatrNitrobaseConfig, + + groupsCollection: { + name: 'groups', + region: Region.Managers, + type: StoreFileType.Collection, + } as StoreFileStat, + } as const, + + bot: { + token: env.botToken!, + // adminChatId: +env.botAdminChatId!, + // adminThreadId: +env.botAdminThreadId!, + + dropPendingUpdates: process.env.dropPendingUpdates === '1', + + info: { + username: env.botUsername, + can_join_groups: true, + can_read_all_group_messages: false, + first_name: env.botFirstName, + is_bot: true, + supports_inline_queries: false, + language_code: 'fa', + } as UserFromGetMe, + } as const, + +} as const; + +__dev_mode__: logger.logProperty?.('config', config); + diff --git a/packages/telegram/src/lib/i18n.ts b/packages/telegram/src/lib/i18n.ts new file mode 100644 index 00000000..60da3cc3 --- /dev/null +++ b/packages/telegram/src/lib/i18n.ts @@ -0,0 +1,16 @@ +/* eslint-disable max-len */ + +export function message(key: keyof typeof i18nResources): string { + return i18nResources[key]; +} + +const i18nResources = { + added_message: 'شما با موفقیت به لیست اضافه شدید', + added_already_message: 'شما قبلا به این لیست اضافه شده اید.', + unsubscribe_me_button: 'لغو عضویت از این لیست 🔕', + unsubscribe_message: 'شما از لیست {groupId} حذف شدید 🚫', + you_not_subscribed_before: 'شما قبلا عضو این لیست نبوده اید!', + + startup_message: `Bot started \n\nv${__package_version__}`, + private_bot_message: 'این یک بات خصوصی هست! لطفا مزاحم نشوید', +} as const; diff --git a/packages/telegram/src/lib/initialize-nitrobase.ts b/packages/telegram/src/lib/initialize-nitrobase.ts new file mode 100644 index 00000000..61a3ac2a --- /dev/null +++ b/packages/telegram/src/lib/initialize-nitrobase.ts @@ -0,0 +1,8 @@ +import {config} from './config.js'; +import {alwatrNitrobase} from './nitrobase.js'; + +export function initializeNitrobase() { + if (alwatrNitrobase.hasStore(config.nitrobase.groupsCollection) === false) { + alwatrNitrobase.newCollection(config.nitrobase.groupsCollection); + } +} diff --git a/packages/telegram/src/lib/nano-server.ts b/packages/telegram/src/lib/nano-server.ts deleted file mode 100644 index 593467ef..00000000 --- a/packages/telegram/src/lib/nano-server.ts +++ /dev/null @@ -1,5 +0,0 @@ -import {AlwatrNanoServer} from '@alwatr/nano-server'; - -import {config} from '../config.js'; - -export const nanoServer = new AlwatrNanoServer(config.nanoServer); diff --git a/packages/telegram/src/lib/nitrobase.ts b/packages/telegram/src/lib/nitrobase.ts new file mode 100644 index 00000000..90e1a224 --- /dev/null +++ b/packages/telegram/src/lib/nitrobase.ts @@ -0,0 +1,5 @@ +import {AlwatrNitrobase} from 'alwatr/nitrobase'; + +import {config} from './config.js'; + +export const alwatrNitrobase = new AlwatrNitrobase(config.nitrobase.config); diff --git a/packages/telegram/src/lib/parse-request-body.ts b/packages/telegram/src/lib/parse-request-body.ts new file mode 100644 index 00000000..0001d6de --- /dev/null +++ b/packages/telegram/src/lib/parse-request-body.ts @@ -0,0 +1,18 @@ +import {logger} from '../lib/config.js'; + +import type {NanotronClientRequest} from 'alwatr/nanotron'; + +export async function parseBodyAsJson( + this: NanotronClientRequest>, +): Promise { + try { + const bodyBuffer = await this.getBodyRaw(); + const data = JSON.parse(bodyBuffer.toString()) as T; + logger.logMethodArgs?.('parseBodyAsJson', {data}); + + this.sharedMeta.body = data; + } + catch (error) { + logger.error?.('parseBodyAsJson', 'body_parsing_error', {error}); + } +} diff --git a/packages/telegram/src/lib/server.ts b/packages/telegram/src/lib/server.ts new file mode 100644 index 00000000..0900ba79 --- /dev/null +++ b/packages/telegram/src/lib/server.ts @@ -0,0 +1,5 @@ +import {NanotronApiServer} from 'alwatr/nanotron'; + +import {config} from './config.js'; + +export const nanotronApiServer = new NanotronApiServer(config.nanotronApiServer); diff --git a/packages/telegram/src/lib/storage.ts b/packages/telegram/src/lib/storage.ts deleted file mode 100644 index 2577a817..00000000 --- a/packages/telegram/src/lib/storage.ts +++ /dev/null @@ -1,6 +0,0 @@ -import {AlwatrStorageEngine} from '@alwatr/storage-engine'; - -import {MemberList} from './type.js'; -import {config} from '../config.js'; - -export const storage = new AlwatrStorageEngine(config.storage); diff --git a/packages/telegram/src/lib/type.ts b/packages/telegram/src/lib/type.ts deleted file mode 100644 index 580e2ef2..00000000 --- a/packages/telegram/src/lib/type.ts +++ /dev/null @@ -1,5 +0,0 @@ -import type {AlwatrDocumentObject} from '@alwatr/type'; - -export type MemberList = AlwatrDocumentObject & { - memberList: number[]; -}; diff --git a/packages/telegram/src/lib/util.ts b/packages/telegram/src/lib/util.ts new file mode 100644 index 00000000..bfffcad0 --- /dev/null +++ b/packages/telegram/src/lib/util.ts @@ -0,0 +1,11 @@ +/** + * @see https://core.telegram.org/bots/api#markdownv2-style + */ +const scapeChars = ['_', '*', '[', ']', '(', ')', '~', '`', '>', '#', '+', '-', '=', '|', '{', '}', '.', '!']; + +export function escapeMessage(message: string): string { + for (const character of scapeChars) { + message = message.replaceAll(character, `\\${character}`); + } + return message; +} diff --git a/packages/telegram/src/main.ts b/packages/telegram/src/main.ts new file mode 100644 index 00000000..f4136b5f --- /dev/null +++ b/packages/telegram/src/main.ts @@ -0,0 +1,21 @@ +// common imports +// import {notifyDebug, onStart} from './lib/admin.js'; +// bot imports +import './bot/start-command.js'; +import './bot/unsubscribe-callback.js' +import {bot} from './lib/bot.js'; +import {logger} from './lib/config.js'; +import {initializeNitrobase} from './lib/initialize-nitrobase.js'; +import './route/home.js' +import './route/notify.js' + +logger.banner('@alwatr/telegram-notifier'); + +// bot.start({onStart, drop_pending_updates: config.bot.dropPendingUpdates}); + +bot.catch(async (err: { message: unknown; }) => { + logger.error('catch', 'catch_error', err); + // await notifyDebug(`❗️ [#catch_error]: ${err.message}`); +}); + +initializeNitrobase(); diff --git a/packages/telegram/src/route/home.ts b/packages/telegram/src/route/home.ts index 4e14fc72..f9b3057b 100644 --- a/packages/telegram/src/route/home.ts +++ b/packages/telegram/src/route/home.ts @@ -1,9 +1,20 @@ -import {nanoServer} from '../lib/nano-server.js'; +import {nanotronApiServer} from '../lib/server.js'; -nanoServer.route('GET', '/', () => ({ - ok: true, - data: { - app: '..:: Alwatr Telegram Notify Nanoservice ::..', - message: 'Hello ;)', +/** + * GET `/` - Returns the welcome message. + * + * @returns `{app, message}` - An object with a welcome message and app name. + */ +nanotronApiServer.defineRoute({ + method: 'GET', + url: '/', + handler() { + this.serverResponse.replyJson({ + ok: true, + data: { + app: '..:: Telegram Notifier ::..', + message: 'Hello ;)', + }, + }); }, -})); +}); diff --git a/packages/telegram/src/route/notify.ts b/packages/telegram/src/route/notify.ts index a98bbe6e..b08b62c6 100644 --- a/packages/telegram/src/route/notify.ts +++ b/packages/telegram/src/route/notify.ts @@ -1,23 +1,20 @@ -import {sendMessage} from '../bot/send-message.js'; -import {config, logger} from '../config.js'; -import {nanoServer} from '../lib/nano-server.js'; +import {sendMessageToGroup} from '../bot/send-message.js'; +import {logger} from '../lib/config.js'; +import {parseBodyAsJson} from '../lib/parse-request-body.js'; +import {nanotronApiServer} from '../lib/server.js'; -import type {AlwatrConnection, AlwatrServiceResponse} from '@alwatr/nano-server'; +nanotronApiServer.defineRoute<{body: { groupId: string; message: string }}>({ + method: 'POST', + url: '/telegram/notify', + preHandlers: [parseBodyAsJson], + async handler() { + logger.logMethodArgs?.('defineRoute(/telegram/notify)', {body: this.sharedMeta.body}); -// Send message to admin -nanoServer.route('POST', '/', notify); + await sendMessageToGroup(this.sharedMeta.body.groupId, this.sharedMeta.body.message); -async function notify(connection: AlwatrConnection): Promise, never>> { - logger.logMethod?.('notify'); - - connection.requireToken(config.nanoServer.accessToken); - - const bodyJson = await connection.requireJsonBody<{to: string; message: string}>(); - - await sendMessage(bodyJson.to, bodyJson.message); - - return { - ok: true, - data: {}, - }; -} + this.serverResponse.replyJson({ + ok: true, + data: {}, + }); + }, +}); diff --git a/packages/telegram/src/type.ts b/packages/telegram/src/type.ts new file mode 100644 index 00000000..22ad5f1b --- /dev/null +++ b/packages/telegram/src/type.ts @@ -0,0 +1 @@ +export type Group = {members: number[]} diff --git a/packages/telegram/tsconfig.json b/packages/telegram/tsconfig.json index dfcb4868..167d573a 100644 --- a/packages/telegram/tsconfig.json +++ b/packages/telegram/tsconfig.json @@ -1,15 +1,12 @@ { - "extends": "../../tsconfig.base", + "extends": "@alwatr/tsconfig-base/tsconfig.json", "compilerOptions": { - "target": "ESNext", - "composite": true, - "tsBuildInfoFile": ".tsbuildinfo", "rootDir": "src", - "outDir": "build" - // "noEmit": true + "outDir": "dist", + "emitDeclarationOnly": true, + "composite": true, + "types": ["node", "@alwatr/nano-build", "@alwatr/type-helper"] }, - "include": ["src/**/*.ts"], - "exclude": [], "references": [] } From baa21f9aa0c069ddc9516351dc6d6626f991d437 Mon Sep 17 00:00:00 2001 From: Mohammad Honarvar Date: Mon, 21 Oct 2024 13:13:40 +0330 Subject: [PATCH 03/60] chore(.vscode): update --- .vscode/settings.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.vscode/settings.json b/.vscode/settings.json index 95aa8d46..14263aab 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -57,6 +57,8 @@ "Jsonify", "Mihandoost", "nanolib", + "nanotron", + "nitrobase", "outdir", "outfile", "pmpa", From 3cfe3745bfe1e98f69a5f761a59d022e083bf6fd Mon Sep 17 00:00:00 2001 From: Mohammad Honarvar Date: Mon, 21 Oct 2024 13:13:45 +0330 Subject: [PATCH 04/60] deps: update --- package.json | 4 +- yarn.lock | 8195 +++++++++++++++++++++++++++++--------------------- 2 files changed, 4714 insertions(+), 3485 deletions(-) diff --git a/package.json b/package.json index a2208451..e9ba8ae9 100644 --- a/package.json +++ b/package.json @@ -39,8 +39,8 @@ "publish": "lerna publish from-package" }, "devDependencies": { - "@alwatr/eslint-config": "workspace:^", - "@alwatr/prettier-config": "workspace:^", + "@alwatr/eslint-config": "^1.2.11", + "@alwatr/prettier-config": "^1.0.6", "@lerna-lite/changed": "^3.9.3", "@lerna-lite/cli": "^3.9.3", "@lerna-lite/diff": "^3.9.3", diff --git a/yarn.lock b/yarn.lock index a21c12b1..fada51a4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5,82 +5,411 @@ __metadata: version: 8 cacheKey: 10c0 -"@75lb/deep-merge@npm:^1.1.1": - version: 1.1.1 - resolution: "@75lb/deep-merge@npm:1.1.1" +"@aashutoshrathi/word-wrap@npm:^1.2.3": + version: 1.2.6 + resolution: "@aashutoshrathi/word-wrap@npm:1.2.6" + checksum: 10c0/53c2b231a61a46792b39a0d43bc4f4f776bb4542aa57ee04930676802e5501282c2fc8aac14e4cd1f1120ff8b52616b6ff5ab539ad30aa2277d726444b71619f + languageName: node + linkType: hard + +"@alwatr/async-queue@npm:^1.3.6": + version: 1.3.6 + resolution: "@alwatr/async-queue@npm:1.3.6" dependencies: - lodash.assignwith: "npm:^4.2.0" - typical: "npm:^7.1.1" - checksum: cbff3cc6410e91e268452f147fc40be660c3accb0a9cd066bff0729d52047fb7a74816a7bd02544bfa16ae0fef5ae8c92f66fa3f6db5f6785da2730617600614 + "@alwatr/flatomise": "npm:^1.2.6" + "@alwatr/package-tracer": "npm:^1.0.6" + checksum: 10c0/2f0171d4689e6636d1ee2c864cb16ce0bd1316fad8bb72245abebb88561fdba112601d4eed22e138e54f10718c20de9e4cffd7a05824b59b1d05e65c9d84822e languageName: node linkType: hard -"@aashutoshrathi/word-wrap@npm:^1.2.3": +"@alwatr/context@npm:^3.2.0": + version: 3.2.0 + resolution: "@alwatr/context@npm:3.2.0" + dependencies: + "@alwatr/nanolib": "npm:^1.2.0" + "@alwatr/observable": "npm:^3.2.0" + checksum: 10c0/0d42ee07b73c63ce505c7f8be924fbc38b58a9ff08ed2f9ce7cf5e5264f9f84e5ab65a448e23f03d543e0e8cfef1fd756835c070b69d17596c75266424845278 + languageName: node + linkType: hard + +"@alwatr/crypto@npm:^4.4.1": + version: 4.4.1 + resolution: "@alwatr/crypto@npm:4.4.1" + dependencies: + "@alwatr/nanolib": "npm:^1.3.0" + checksum: 10c0/fdee1c3ed13091c436e0322b9c80843ab9781f558a53c300e2cdd141e6e11d847e5015948102d6a4b49d12db6297a93170b554bc329ea3948e88614bd0307172 + languageName: node + linkType: hard + +"@alwatr/dedupe@npm:^1.1.6": + version: 1.1.6 + resolution: "@alwatr/dedupe@npm:1.1.6" + dependencies: + "@alwatr/global-this": "npm:^1.0.1" + "@alwatr/package-tracer": "npm:^1.0.6" + "@alwatr/polyfill-has-own": "npm:^1.1.6" + checksum: 10c0/31480ffd75d8e4a2ab66238c08ce8c958e894702dc1e39d5bba6c14f6ad5cd1477571369f750f3505d1b39f9df26af65b5c72ec7e8a8fd406ad0d2791e7fb164 + languageName: node + linkType: hard + +"@alwatr/deep-clone@npm:^1.1.6": + version: 1.1.6 + resolution: "@alwatr/deep-clone@npm:1.1.6" + dependencies: + "@alwatr/package-tracer": "npm:^1.0.6" + checksum: 10c0/6fc21fd7b0d0284a681204939623979645abe50d587534c01ac33f905b0f83e22f4ab35e6043e0bbc92dc3619d3ced30a02984d152f579fb1704449a0d9e1a00 + languageName: node + linkType: hard + +"@alwatr/delay@npm:^1.0.6": + version: 1.0.6 + resolution: "@alwatr/delay@npm:1.0.6" + dependencies: + "@alwatr/global-this": "npm:^1.0.1" + "@alwatr/package-tracer": "npm:^1.0.6" + "@alwatr/parse-duration": "npm:^1.1.6" + checksum: 10c0/be31ba34c6d55102657121a976e5a863976f5248c8d61541a6e732ecd7df56cda9306ea0d2f31fff2cec6ba3194da05c78faeb1e129d80d82855ccf336e903b8 + languageName: node + linkType: hard + +"@alwatr/eslint-config@npm:^1.2.11": + version: 1.2.11 + resolution: "@alwatr/eslint-config@npm:1.2.11" + dependencies: + esbuild: "npm:^0.24.0" + peerDependencies: + "@typescript-eslint/eslint-plugin": ">7.0.0 <8.0.0" + "@typescript-eslint/parser": ">7.0.0 <8.0.0" + eslint: ">8.0.0 <9.0.0" + eslint-import-resolver-typescript: ">3.0.0" + eslint-plugin-import: ">2.0.0" + eslint-plugin-require-extensions: ">0.1.0" + checksum: 10c0/2b6374bc0b653c08ccdcf825924400d4794fc487840adbced2c829196b739063ffc2de9f64ba2edb1f6001fcd70aaac8c55473b916b75179c44fc0140cdb5511 + languageName: node + linkType: hard + +"@alwatr/exit-hook@npm:^1.1.6": + version: 1.1.6 + resolution: "@alwatr/exit-hook@npm:1.1.6" + dependencies: + "@alwatr/package-tracer": "npm:^1.0.6" + checksum: 10c0/4f78ecbb8c9960049d1c2eb31748f691fd289db65ffd3b7c7a9b0bd96deadc913125593bc0f4d76518105acaa40a3e8e79f86222a7a3c9032b4319a082299093 + languageName: node + linkType: hard + +"@alwatr/fetch-state-machine@npm:^3.2.0": + version: 3.2.0 + resolution: "@alwatr/fetch-state-machine@npm:3.2.0" + dependencies: + "@alwatr/fsm": "npm:^3.2.0" + "@alwatr/nanolib": "npm:^1.2.0" + checksum: 10c0/1a35128acd0b84182432c32c62cdb4d3589904b7ed680779c216eda2680b7d7e8b2707e6f0e6bc839abddcf7195779b187e9368ca5229ece940471646719ef0c + languageName: node + linkType: hard + +"@alwatr/fetch@npm:^4.1.6": + version: 4.1.6 + resolution: "@alwatr/fetch@npm:4.1.6" + dependencies: + "@alwatr/delay": "npm:^1.0.6" + "@alwatr/global-this": "npm:^1.0.1" + "@alwatr/logger": "npm:^4.0.6" + "@alwatr/package-tracer": "npm:^1.0.6" + "@alwatr/parse-duration": "npm:^1.1.6" + checksum: 10c0/673c98debe07c5e5105a63c7ba6ec7b7022de92b635d1177445a7b25b4188857eb029fb8f25c8697be0f7a13d4b1375798b5789deea0843d52b80b77706da4cb + languageName: node + linkType: hard + +"@alwatr/flat-string@npm:^1.1.6": + version: 1.1.6 + resolution: "@alwatr/flat-string@npm:1.1.6" + dependencies: + "@alwatr/package-tracer": "npm:^1.0.6" + checksum: 10c0/727f33697b91a0180561a408e01f9734d27777824f77fa3963ea118e7251a504b81b99cac1653c0d695641922b0338e5010a58ea4b5668b10c914f03883f3af3 + languageName: node + linkType: hard + +"@alwatr/flatomise@npm:^1.2.6": version: 1.2.6 - resolution: "@aashutoshrathi/word-wrap@npm:1.2.6" - checksum: 53c2b231a61a46792b39a0d43bc4f4f776bb4542aa57ee04930676802e5501282c2fc8aac14e4cd1f1120ff8b52616b6ff5ab539ad30aa2277d726444b71619f + resolution: "@alwatr/flatomise@npm:1.2.6" + dependencies: + "@alwatr/package-tracer": "npm:^1.0.6" + checksum: 10c0/85fe7d31c75bfad993395966b60cd605afec2a5e230bf35e57e08c2333656ba6ce1c59074746aad05237ed212dc406591ab365a9fd9139fbc81261bde2ba1d8a languageName: node linkType: hard -"@alwatr/logger@npm:^2.1.3": - version: 2.1.3 - resolution: "@alwatr/logger@npm:2.1.3" +"@alwatr/flux@npm:^3.2.0": + version: 3.2.0 + resolution: "@alwatr/flux@npm:3.2.0" dependencies: - tslib: "npm:^2.6.2" - checksum: 7f2e43eb2a324a63b7603e205900c66f922cf81668d692368bb63cb6070a21a52fafc6d82e553c3ebc43f340feeac3ef1dd13871f989e317b61c6951786e294a + "@alwatr/context": "npm:^3.2.0" + "@alwatr/fetch-state-machine": "npm:^3.2.0" + "@alwatr/fsm": "npm:^3.2.0" + "@alwatr/observable": "npm:^3.2.0" + "@alwatr/remote-context": "npm:^3.2.0" + "@alwatr/signal": "npm:^3.2.0" + checksum: 10c0/8a1184c938685f472d61515bc8a47ede4d54073efe2868bf6ecca61172efd1de1e587a774aaa777cfba49e7fe668d9a3fe13f46af89c1dd5085d1ca66a679eb3 languageName: node linkType: hard -"@alwatr/logger@npm:^2.3.0": - version: 2.3.0 - resolution: "@alwatr/logger@npm:2.3.0" +"@alwatr/fsm@npm:^3.2.0": + version: 3.2.0 + resolution: "@alwatr/fsm@npm:3.2.0" dependencies: - tslib: "npm:^2.6.2" - checksum: b3cda1eeb2fd0d8f16c26ded5931277fd34b303205d02a7dd2731c44b5f86cdaa9cc17b77d285fd77959e75637ac641ef0ff4081b1c34a5bde8c7e9c27ba0452 + "@alwatr/nanolib": "npm:^1.2.0" + "@alwatr/observable": "npm:^3.2.0" + checksum: 10c0/60a2ae3a46091c1d7ee2eae794d699e0ae8a71c0ced27869cf4c3aef89e17b62358f21b33b402fa333862abc088440b45ee7cd6fe551ea85b70faeb6da690f81 languageName: node linkType: hard -"@alwatr/math@npm:^1.1.12": - version: 1.1.12 - resolution: "@alwatr/math@npm:1.1.12" +"@alwatr/global-this@npm:^1.0.1": + version: 1.0.1 + resolution: "@alwatr/global-this@npm:1.0.1" dependencies: - "@alwatr/logger": "npm:^2.1.3" - tslib: "npm:^2.6.2" - checksum: 10b8016dc63241edbe1b2ab4a9cc02d5a5d9c0cf373f5ecb3f4f17484dfaff422c901ef6b8bbda07db6819753b75740d9129afdb34df11c031d922aa06c3ab30 + "@alwatr/package-tracer": "npm:^1.0.6" + checksum: 10c0/4ea58394f498162482a97ef72fb7d44be33ccb45e3f3c5e17375e9a93a114aacaa0af49aeadae247225ce9bd4e8d8026ef4062dd8deac2ef1af460a187f740d7 languageName: node linkType: hard -"@alwatr/math@npm:^1.2.1": - version: 1.2.1 - resolution: "@alwatr/math@npm:1.2.1" +"@alwatr/is-number@npm:^1.1.6": + version: 1.1.6 + resolution: "@alwatr/is-number@npm:1.1.6" dependencies: - "@alwatr/logger": "npm:^2.3.0" - tslib: "npm:^2.6.2" - checksum: de52896895deca06e59eb28eb1fa58375ab266ad17741bc69485999c74a43065f9a615e2dbe2dbf5f91a011367ca4c693a5adbb11c40a76fc643b532e103401f + "@alwatr/package-tracer": "npm:^1.0.6" + checksum: 10c0/24278b63193740cbe2fc21f7c809ea540c853150c1aa34e73c3e539ea5481cfb8ef15a84ede0eb7cdd1d679a9bbf17382ed57b800c83af8b6d79a6a7f60d99f7 languageName: node linkType: hard -"@alwatr/nano-server@npm:^1.2.1": - version: 1.2.1 - resolution: "@alwatr/nano-server@npm:1.2.1" +"@alwatr/local-storage@npm:^1.1.6": + version: 1.1.6 + resolution: "@alwatr/local-storage@npm:1.1.6" + dependencies: + "@alwatr/package-tracer": "npm:^1.0.6" + checksum: 10c0/f70d22d1260399959d6ea109bb4e649491abd4cf880a8923ed651f93514ed6488f5945e228441561444a876b23db7e96a73b2311f5b0af700de278945ed0d511 + languageName: node + linkType: hard + +"@alwatr/logger@npm:^4.0.6": + version: 4.0.6 + resolution: "@alwatr/logger@npm:4.0.6" + dependencies: + "@alwatr/package-tracer": "npm:^1.0.6" + "@alwatr/platform-info": "npm:^1.2.6" + checksum: 10c0/2f2e4557dcfe7df80886582ac8ba2365dd7a21a20ef78750f1cfb21cfc678b47964be6e21d783fe31109699f8e94e135f7a577cf162101d4a9e0627dc4f088c6 + languageName: node + linkType: hard + +"@alwatr/nano-build@npm:^2.0.2": + version: 2.0.2 + resolution: "@alwatr/nano-build@npm:2.0.2" + dependencies: + esbuild: "npm:^0.24.0" + bin: + nano-build: ./nano-build.cjs + checksum: 10c0/e36b8e0807a2096a883f9b534543fce7b46bebe2e062b5ab2ec5d1b83ab534205b55146aa7393ecf3237552f5ab2fa22f2889003039417da089bacc1af8d61df + languageName: node + linkType: hard + +"@alwatr/nanolib@npm:^1.2.0, @alwatr/nanolib@npm:^1.3.0": + version: 1.3.0 + resolution: "@alwatr/nanolib@npm:1.3.0" + dependencies: + "@alwatr/async-queue": "npm:^1.3.6" + "@alwatr/dedupe": "npm:^1.1.6" + "@alwatr/deep-clone": "npm:^1.1.6" + "@alwatr/delay": "npm:^1.0.6" + "@alwatr/exit-hook": "npm:^1.1.6" + "@alwatr/fetch": "npm:^4.1.6" + "@alwatr/flat-string": "npm:^1.1.6" + "@alwatr/flatomise": "npm:^1.2.6" + "@alwatr/is-number": "npm:^1.1.6" + "@alwatr/local-storage": "npm:^1.1.6" + "@alwatr/logger": "npm:^4.0.6" + "@alwatr/node-fs": "npm:^1.1.6" + "@alwatr/package-tracer": "npm:^1.0.6" + "@alwatr/parse-duration": "npm:^1.1.6" + "@alwatr/platform-info": "npm:^1.2.6" + "@alwatr/render-state": "npm:^1.0.6" + "@alwatr/resolve-url": "npm:^1.0.0" + "@alwatr/unicode-digits": "npm:^1.1.1" + checksum: 10c0/39e05f09ad6985ae7ca1b2bcce4d279a0b6207f8f5febdb558262492823df65e1ed843c902ba5ad83a871a414a4b2f14d11b339b26da49e2893f91945700d4a5 + languageName: node + linkType: hard + +"@alwatr/nanotron-api-server@npm:^4.4.1": + version: 4.4.1 + resolution: "@alwatr/nanotron-api-server@npm:4.4.1" + dependencies: + "@alwatr/nanolib": "npm:^1.3.0" + checksum: 10c0/3745ca5b789b8899153db3fd1fe5dc3fdd8bdc7e360f68ba25a32704f40a5f2ca409d69ee21838e96b4f9f5ec57d3a398455c60f244d4f234f4b6a521965e61b + languageName: node + linkType: hard + +"@alwatr/nanotron@npm:^4.4.1": + version: 4.4.1 + resolution: "@alwatr/nanotron@npm:4.4.1" + dependencies: + "@alwatr/crypto": "npm:^4.4.1" + "@alwatr/nanolib": "npm:^1.3.0" + "@alwatr/nanotron-api-server": "npm:^4.4.1" + checksum: 10c0/d323d5f55e7cd42d34a3d06bf2a0035dd78ce1c890329a551b6698f457f8acd38812fb78f84d9c2e436bcf8c9f11ff764e83c795d0b214b32cfa6e93450d2779 + languageName: node + linkType: hard + +"@alwatr/nitrobase-engine@npm:^7.3.0": + version: 7.3.0 + resolution: "@alwatr/nitrobase-engine@npm:7.3.0" + dependencies: + "@alwatr/nanolib": "npm:^1.2.0" + "@alwatr/nitrobase-helper": "npm:^7.3.0" + "@alwatr/nitrobase-reference": "npm:^7.3.0" + "@alwatr/nitrobase-types": "npm:^7.3.0" + checksum: 10c0/0009ee814457e6fc758e9f32d0184890bd26eccd613f75ba0098eca71e8e58b1c1636c355b365d55686ce69ac87a3eca93f28b26d62d4f7717d8baa24fb01059 + languageName: node + linkType: hard + +"@alwatr/nitrobase-helper@npm:^7.3.0": + version: 7.3.0 + resolution: "@alwatr/nitrobase-helper@npm:7.3.0" + dependencies: + "@alwatr/nanolib": "npm:^1.2.0" + "@alwatr/nitrobase-types": "npm:^7.3.0" + checksum: 10c0/c871e9a60ce48d12f670c1caf145fe26d64b718d127d1b36f6e0352fab5573b354b2a9a1a8936ebb23fbb50c701bd33ad34a48f02df962e6e30e8af9d90f0a57 + languageName: node + linkType: hard + +"@alwatr/nitrobase-reference@npm:^7.3.0": + version: 7.3.0 + resolution: "@alwatr/nitrobase-reference@npm:7.3.0" + dependencies: + "@alwatr/nanolib": "npm:^1.2.0" + "@alwatr/nitrobase-helper": "npm:^7.3.0" + "@alwatr/nitrobase-types": "npm:^7.3.0" + checksum: 10c0/ca0278fd0106e147b70608dd622bb1c96f28b0a84edbfadfab45f094c46d24a20286a480b372ef3b803ee004de9484dadc1675edaa7a6267c2646a4112aaa230 + languageName: node + linkType: hard + +"@alwatr/nitrobase-types@npm:^7.3.0": + version: 7.3.0 + resolution: "@alwatr/nitrobase-types@npm:7.3.0" + dependencies: + "@alwatr/nanolib": "npm:^1.2.0" + checksum: 10c0/371a867195fdb1ccb31b15f85c5a9f03094e5dafc0b5cb881b54d52a36eb4218fcf5bda39e68fb7a1d0b4cbc39c82ed88360db5f0e1b00f627026e5a07d049a2 + languageName: node + linkType: hard + +"@alwatr/nitrobase@npm:^7.3.0": + version: 7.3.0 + resolution: "@alwatr/nitrobase@npm:7.3.0" + dependencies: + "@alwatr/nanolib": "npm:^1.2.0" + "@alwatr/nitrobase-engine": "npm:^7.3.0" + "@alwatr/nitrobase-helper": "npm:^7.3.0" + "@alwatr/nitrobase-reference": "npm:^7.3.0" + "@alwatr/nitrobase-types": "npm:^7.3.0" + checksum: 10c0/314727eb4275fb972e239ab829a041c7b98b8bd905698b83f1e9003516a29d3bff270437d695e2cce9645dcef9466966de74e8f3dcde9cf4269b7a42a0bfa0ce + languageName: node + linkType: hard + +"@alwatr/node-fs@npm:^1.1.6": + version: 1.1.6 + resolution: "@alwatr/node-fs@npm:1.1.6" + dependencies: + "@alwatr/async-queue": "npm:^1.3.6" + "@alwatr/flat-string": "npm:^1.1.6" + "@alwatr/logger": "npm:^4.0.6" + "@alwatr/package-tracer": "npm:^1.0.6" + checksum: 10c0/0a43dda71004f32cb008c3a4faaa38139ed8e0257600f86817fc1054be11470980d0d35c5897f714d0fe1383ae08d7a6974cd2eb1f0e8e4cb8af97058fef884e + languageName: node + linkType: hard + +"@alwatr/observable@npm:^3.2.0": + version: 3.2.0 + resolution: "@alwatr/observable@npm:3.2.0" + dependencies: + "@alwatr/nanolib": "npm:^1.2.0" + checksum: 10c0/2466603cabfac76b6941b7ae3eb19af784255abef393810dc8b950398a8d4b48747ffe2c19fb9a3b058cb17765c3d983d8e65cb2a17631bc82d6bc9049672bdb + languageName: node + linkType: hard + +"@alwatr/package-tracer@npm:^1.0.6": + version: 1.0.6 + resolution: "@alwatr/package-tracer@npm:1.0.6" + checksum: 10c0/5483c61d4099bc7d0af5b4ffe8e043335cea31c581cd55b60f4e0e1b47d8005cc57c8209d8e0ca34b8b310777e9d14bfde04242745cadabb60f8c80bf89fe7c5 + languageName: node + linkType: hard + +"@alwatr/parse-duration@npm:^1.1.6": + version: 1.1.6 + resolution: "@alwatr/parse-duration@npm:1.1.6" + dependencies: + "@alwatr/is-number": "npm:^1.1.6" + "@alwatr/package-tracer": "npm:^1.0.6" + checksum: 10c0/a12c6043b11e2155ba4b0157431b66b6a7af5f5a1d11e6e0b50be66ff8aff26c63cfc54cc32825e4b9cdce2cbea9684083b9554f2762adec3f63589dee974f50 + languageName: node + linkType: hard + +"@alwatr/platform-info@npm:^1.2.6": + version: 1.2.6 + resolution: "@alwatr/platform-info@npm:1.2.6" + dependencies: + "@alwatr/package-tracer": "npm:^1.0.6" + checksum: 10c0/b644a830561ee4a5df445e1474f27892d782e5ae42b166d3dfc4320bc12083a3f3b68017d5390c93e6fac0015f83d95ebceb7eef28ef53e1a7d44f82cd36268e + languageName: node + linkType: hard + +"@alwatr/polyfill-has-own@npm:^1.1.6": + version: 1.1.6 + resolution: "@alwatr/polyfill-has-own@npm:1.1.6" + dependencies: + "@alwatr/package-tracer": "npm:^1.0.6" + checksum: 10c0/899d74182b53deafb78c1e80aaf5325c599bb153217df4b363b152ece995965be8bf351bb50625b2b82edc26be9e7dc6f0b4561de472f3e668a0a5d2e6cef267 + languageName: node + linkType: hard + +"@alwatr/prettier-config@npm:^1.0.6": + version: 1.0.6 + resolution: "@alwatr/prettier-config@npm:1.0.6" + checksum: 10c0/f1e04e2414dafe8c6dc3576c5f709d81eca57a4fe7b35518da08376dfe5e045061bc4e5cfeba16f6063ace45f177b23fb3063a337c8e263b1e79da682d49aa87 + languageName: node + linkType: hard + +"@alwatr/remote-context@npm:^3.2.0": + version: 3.2.0 + resolution: "@alwatr/remote-context@npm:3.2.0" + dependencies: + "@alwatr/fetch-state-machine": "npm:^3.2.0" + "@alwatr/nanolib": "npm:^1.2.0" + checksum: 10c0/494d89357736889ec43f753848c0ba867dd1921fdd01c635506896068254438591c1ebeef26c21a30e3bead3fdeb2ead1868145a851e9c68638fa042f49b8af2 + languageName: node + linkType: hard + +"@alwatr/render-state@npm:^1.0.6": + version: 1.0.6 + resolution: "@alwatr/render-state@npm:1.0.6" + dependencies: + "@alwatr/logger": "npm:^4.0.6" + "@alwatr/package-tracer": "npm:^1.0.6" + checksum: 10c0/5f6935289681340f978b09f4d067f2181cb436581eeefb9ed114a584817437cf58768350ba7c6409526f4f370f0750b5e7885ce5d001358cc3053b175aad15ed + languageName: node + linkType: hard + +"@alwatr/resolve-url@npm:^1.0.0": + version: 1.0.0 + resolution: "@alwatr/resolve-url@npm:1.0.0" dependencies: - "@alwatr/logger": "npm:^2.3.0" - "@alwatr/math": "npm:^1.2.1" - "@alwatr/util": "npm:^1.3.1" - tslib: "npm:^2.6.2" - checksum: 3de176c8e8a958e1942ae31a62d48fa50462597af94ec81d82a9405957844fca340a674592fc713a49ef0f6bcf906a3aa4101e7570ea8cde94c3e68b92680bed + "@alwatr/package-tracer": "npm:^1.0.6" + checksum: 10c0/01b3d1acabe8dd799f230146cdaae2d57383007811f48824d663a0ecf10057c19d69a99bc8620a9b1f36a195fe0215b4a3fcd1917722ed1068a33f7811d9124e languageName: node linkType: hard -"@alwatr/storage-engine@npm:^4.0.0-rc.0": - version: 4.0.0-rc.0 - resolution: "@alwatr/storage-engine@npm:4.0.0-rc.0" +"@alwatr/signal@npm:^3.2.0": + version: 3.2.0 + resolution: "@alwatr/signal@npm:3.2.0" dependencies: - "@alwatr/logger": "npm:^2.1.3" - "@alwatr/util": "npm:^1.2.10" - exit-hook: "npm:^4.0.0" - tslib: "npm:^2.6.2" - checksum: 796a04065ac15fedcf050f62ceb5c6d7aa5225d7a4d457b54b5f583cfdea78e9ca1bd2dc16976db106d177f947d3050ea23883ac01b5b827e5b147aedb602437 + "@alwatr/nanolib": "npm:^1.2.0" + "@alwatr/observable": "npm:^3.2.0" + checksum: 10c0/7eb3536cf57052699a5e57db1551162980c024706421939d681bd94aeee14b0cf0bb2da36b615298a343fc0d05d5a7a3fe45a16d709ced01544fe045a4c3a4c8 languageName: node linkType: hard @@ -88,201 +417,1128 @@ __metadata: version: 0.0.0-use.local resolution: "@alwatr/telegram-notifier-api@workspace:packages/telegram" dependencies: - "@alwatr/logger": "npm:^2.3.0" - "@alwatr/nano-server": "npm:^1.2.1" - "@alwatr/storage-engine": "npm:^4.0.0-rc.0" - "@alwatr/type": "npm:^1.2.1" - "@types/node": "npm:^20.10.0" - telegraf: "npm:^4.15.0" - tslib: "npm:^2.6.2" - typescript: "npm:^5.3.2" + "@alwatr/nano-build": "npm:^2.0.2" + "@alwatr/prettier-config": "npm:^1.0.6" + "@alwatr/tsconfig-base": "npm:^1.3.2" + "@alwatr/type-helper": "npm:^2.0.2" + "@types/node": "npm:^22.7.7" + alwatr: "npm:^2.0.3" + grammy: "npm:^1.30.0" + typescript: "npm:^5.6.3" languageName: unknown linkType: soft -"@alwatr/type@npm:^1.1.5": - version: 1.1.5 - resolution: "@alwatr/type@npm:1.1.5" - checksum: d87587dfd9dff8ceb42dbe187f3db4313877930da802c269596ebcdb1e3541ae0264e91f708882ddbc43a0cff5003583ab543593e080fcd051408e5998f3cdf6 +"@alwatr/tsconfig-base@npm:^1.3.2": + version: 1.3.2 + resolution: "@alwatr/tsconfig-base@npm:1.3.2" + checksum: 10c0/d92d80881d380502249a4febfd78dc8051f0b77ce92069f7f31e091cfbb504e58dce1c456ce2a3b069d5773238dcfe1ee912623a954c48a6d6df0385d4048cd2 languageName: node linkType: hard -"@alwatr/type@npm:^1.2.1": - version: 1.2.1 - resolution: "@alwatr/type@npm:1.2.1" - checksum: e0c999599c4213ce07b087a64dd0c2ba2cb5a83c3255b91995d55e9fc94489e0a14d737cbe18843370d43af52a0f49aac5a43a15b402d65047080b28483799e8 +"@alwatr/type-helper@npm:^2.0.2": + version: 2.0.2 + resolution: "@alwatr/type-helper@npm:2.0.2" + checksum: 10c0/0ea8ac7b531737d3e832c447dc62e2ff74f79e856f8d98790ee34a57fcd88db81a05eb1306a54a9a4f805eee9059a7721a3b543ea10fc27f7ee29b5c732ec207 languageName: node linkType: hard -"@alwatr/util@npm:^1.2.10": - version: 1.2.10 - resolution: "@alwatr/util@npm:1.2.10" +"@alwatr/unicode-digits@npm:^1.1.1": + version: 1.1.1 + resolution: "@alwatr/unicode-digits@npm:1.1.1" dependencies: - "@alwatr/math": "npm:^1.1.12" - "@alwatr/type": "npm:^1.1.5" - tslib: "npm:^2.6.2" - checksum: c7f345ad11634aba9900fd59da1eb69998a2b7484b08ed672a081b012965380f4b7075ec0f99a5e917eb455312942db15c4c0416829808b532d38e303f0972f6 + "@alwatr/package-tracer": "npm:^1.0.6" + checksum: 10c0/011b6e66dfc5fc74e4c51bd6326a5bcb091d3d0a785656b38b7e05169789148c264a8bf18a27991bbdd34c27ec6e6dc1e624c639c28552b99a93416e99fa9ba4 languageName: node linkType: hard -"@alwatr/util@npm:^1.3.1": - version: 1.3.1 - resolution: "@alwatr/util@npm:1.3.1" +"@ampproject/remapping@npm:^2.2.0": + version: 2.3.0 + resolution: "@ampproject/remapping@npm:2.3.0" dependencies: - "@alwatr/logger": "npm:^2.3.0" - "@alwatr/math": "npm:^1.2.1" - "@alwatr/type": "npm:^1.2.1" - "@alwatr/util": "npm:^1.3.1" - tslib: "npm:^2.6.2" - checksum: 898d1159c997b26a55b3dec9da3a96d1dcbbe0df1f38b5e823ac2ae3b48dc6a7a527341d8a95db587e289382b52468b0b05b91910551e4351f0855bfe288818b + "@jridgewell/gen-mapping": "npm:^0.3.5" + "@jridgewell/trace-mapping": "npm:^0.3.24" + checksum: 10c0/81d63cca5443e0f0c72ae18b544cc28c7c0ec2cea46e7cb888bb0e0f411a1191d0d6b7af798d54e30777d8d1488b2ec0732aac2be342d3d7d3ffd271c6f489ed languageName: node linkType: hard -"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.12.11, @babel/code-frame@npm:^7.21.4": +"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.21.4": version: 7.22.13 resolution: "@babel/code-frame@npm:7.22.13" dependencies: "@babel/highlight": "npm:^7.22.13" chalk: "npm:^2.4.2" - checksum: f4cc8ae1000265677daf4845083b72f88d00d311adb1a93c94eb4b07bf0ed6828a81ae4ac43ee7d476775000b93a28a9cddec18fbdc5796212d8dcccd5de72bd + checksum: 10c0/f4cc8ae1000265677daf4845083b72f88d00d311adb1a93c94eb4b07bf0ed6828a81ae4ac43ee7d476775000b93a28a9cddec18fbdc5796212d8dcccd5de72bd + languageName: node + linkType: hard + +"@babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.22.13, @babel/code-frame@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/code-frame@npm:7.25.7" + dependencies: + "@babel/highlight": "npm:^7.25.7" + picocolors: "npm:^1.0.0" + checksum: 10c0/14825c298bdec914caf3d24d1383b6d4cd6b030714686004992f4fc251831ecf432236652896f99d5d341f17170ae9a07b58d8d7b15aa0df8cfa1c5a7d5474bc + languageName: node + linkType: hard + +"@babel/compat-data@npm:^7.25.7": + version: 7.25.8 + resolution: "@babel/compat-data@npm:7.25.8" + checksum: 10c0/8b81c17580e5fb4cbb6a3c52079f8c283fc59c0c6bd2fe14cfcf9c44b32d2eaab71b02c5633e2c679f5896f73f8ac4036ba2e67a4c806e8f428e4b11f526d7f4 + languageName: node + linkType: hard + +"@babel/core@npm:^7.11.6, @babel/core@npm:^7.12.3, @babel/core@npm:^7.23.9": + version: 7.25.8 + resolution: "@babel/core@npm:7.25.8" + dependencies: + "@ampproject/remapping": "npm:^2.2.0" + "@babel/code-frame": "npm:^7.25.7" + "@babel/generator": "npm:^7.25.7" + "@babel/helper-compilation-targets": "npm:^7.25.7" + "@babel/helper-module-transforms": "npm:^7.25.7" + "@babel/helpers": "npm:^7.25.7" + "@babel/parser": "npm:^7.25.8" + "@babel/template": "npm:^7.25.7" + "@babel/traverse": "npm:^7.25.7" + "@babel/types": "npm:^7.25.8" + convert-source-map: "npm:^2.0.0" + debug: "npm:^4.1.0" + gensync: "npm:^1.0.0-beta.2" + json5: "npm:^2.2.3" + semver: "npm:^6.3.1" + checksum: 10c0/8411ea506e6f7c8a39ab5c1524b00589fa3b087edb47389708f7fe07170929192171734666e3ea10b95a951643a531a6d09eedfe071572c9ea28516646265086 + languageName: node + linkType: hard + +"@babel/generator@npm:^7.25.7, @babel/generator@npm:^7.7.2": + version: 7.25.7 + resolution: "@babel/generator@npm:7.25.7" + dependencies: + "@babel/types": "npm:^7.25.7" + "@jridgewell/gen-mapping": "npm:^0.3.5" + "@jridgewell/trace-mapping": "npm:^0.3.25" + jsesc: "npm:^3.0.2" + checksum: 10c0/c03a26c79864d60d04ce36b649c3fa0d6fd7b2bf6a22e22854a0457aa09206508392dd73ee40e7bc8d50b3602f9ff068afa47770cda091d332e7db1ca382ee96 + languageName: node + linkType: hard + +"@babel/helper-compilation-targets@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/helper-compilation-targets@npm:7.25.7" + dependencies: + "@babel/compat-data": "npm:^7.25.7" + "@babel/helper-validator-option": "npm:^7.25.7" + browserslist: "npm:^4.24.0" + lru-cache: "npm:^5.1.1" + semver: "npm:^6.3.1" + checksum: 10c0/705be7e5274a3fdade68e3e2cf42e2b600316ab52794e13b91299a16f16c926f15886b6e9d6df20eb943ccc1cdba5a363d4766f8d01e47b8e6f4e01175f5e66c + languageName: node + linkType: hard + +"@babel/helper-module-imports@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/helper-module-imports@npm:7.25.7" + dependencies: + "@babel/traverse": "npm:^7.25.7" + "@babel/types": "npm:^7.25.7" + checksum: 10c0/0fd0c3673835e5bf75558e184bcadc47c1f6dd2fe2016d53ebe1e5a6ae931a44e093015c2f9a6651c1a89f25c76d9246710c2b0b460b95ee069c464f2837fa2c + languageName: node + linkType: hard + +"@babel/helper-module-transforms@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/helper-module-transforms@npm:7.25.7" + dependencies: + "@babel/helper-module-imports": "npm:^7.25.7" + "@babel/helper-simple-access": "npm:^7.25.7" + "@babel/helper-validator-identifier": "npm:^7.25.7" + "@babel/traverse": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10c0/f37fa7d1d4df21690535b278468cbd5faf0133a3080f282000cfa4f3ffc9462a1458f866b04b6a2f2d1eec4691236cba9a867da61270dab3ab19846e62f05090 + languageName: node + linkType: hard + +"@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.25.7, @babel/helper-plugin-utils@npm:^7.8.0": + version: 7.25.7 + resolution: "@babel/helper-plugin-utils@npm:7.25.7" + checksum: 10c0/241f8cf3c5b7700e91cab7cfe5b432a3c710ae3cd5bb96dc554da536a6d25f5b9f000cc0c0917501ceb4f76ba92599ee3beb25e10adaf96be59f8df89a842faf + languageName: node + linkType: hard + +"@babel/helper-simple-access@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/helper-simple-access@npm:7.25.7" + dependencies: + "@babel/traverse": "npm:^7.25.7" + "@babel/types": "npm:^7.25.7" + checksum: 10c0/eed1b499bfb4f613c18debd61517e3de77b6da2727ca025aa05ac81599e0269f1dddb5237db04e8bb598115d015874752e0a7f11ff38672d74a4976097417059 + languageName: node + linkType: hard + +"@babel/helper-string-parser@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/helper-string-parser@npm:7.25.7" + checksum: 10c0/73ef2ceb81f8294678a0afe8ab0103729c0370cac2e830e0d5128b03be5f6a2635838af31d391d763e3c5a4460ed96f42fd7c9b552130670d525be665913bc4c + languageName: node + linkType: hard + +"@babel/helper-validator-identifier@npm:^7.22.20": + version: 7.22.20 + resolution: "@babel/helper-validator-identifier@npm:7.22.20" + checksum: 10c0/dcad63db345fb110e032de46c3688384b0008a42a4845180ce7cd62b1a9c0507a1bed727c4d1060ed1a03ae57b4d918570259f81724aaac1a5b776056f37504e + languageName: node + linkType: hard + +"@babel/helper-validator-identifier@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/helper-validator-identifier@npm:7.25.7" + checksum: 10c0/07438e5bf01ab2882a15027fdf39ac3b0ba1b251774a5130917907014684e2f70fef8fd620137ca062c4c4eedc388508d2ea7a3a7d9936a32785f4fe116c68c0 + languageName: node + linkType: hard + +"@babel/helper-validator-option@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/helper-validator-option@npm:7.25.7" + checksum: 10c0/12ed418c8e3ed9ed44c8c80d823f4e42d399b5eb2e423adccb975e31a31a008cd3b5d8eab688b31f740caff4a1bb28fe06ea2fa7d635aee34cc0ad6995d50f0a + languageName: node + linkType: hard + +"@babel/helpers@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/helpers@npm:7.25.7" + dependencies: + "@babel/template": "npm:^7.25.7" + "@babel/types": "npm:^7.25.7" + checksum: 10c0/3b3ae9e373bd785414195ef8f59976a69d5a6ebe0ef2165fdcc5165e5c3ee09e0fcee94bb457df2ddb8c0532e4146d0a9b7a96b3497399a4bff4ffe196b30228 + languageName: node + linkType: hard + +"@babel/highlight@npm:^7.22.13": + version: 7.22.20 + resolution: "@babel/highlight@npm:7.22.20" + dependencies: + "@babel/helper-validator-identifier": "npm:^7.22.20" + chalk: "npm:^2.4.2" + js-tokens: "npm:^4.0.0" + checksum: 10c0/f3c3a193afad23434297d88e81d1d6c0c2cf02423de2139ada7ce0a7fc62d8559abf4cc996533c1a9beca7fc990010eb8d544097f75e818ac113bf39ed810aa2 + languageName: node + linkType: hard + +"@babel/highlight@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/highlight@npm:7.25.7" + dependencies: + "@babel/helper-validator-identifier": "npm:^7.25.7" + chalk: "npm:^2.4.2" + js-tokens: "npm:^4.0.0" + picocolors: "npm:^1.0.0" + checksum: 10c0/1f5894fdb0a0af6101fb2822369b2eeeae32cbeae2ef73ff73fc6a0a4a20471565cd9cfa589f54ed69df66adeca7c57266031ca9134b7bd244d023a488d419aa + languageName: node + linkType: hard + +"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.23.9, @babel/parser@npm:^7.25.7, @babel/parser@npm:^7.25.8": + version: 7.25.8 + resolution: "@babel/parser@npm:7.25.8" + dependencies: + "@babel/types": "npm:^7.25.8" + bin: + parser: ./bin/babel-parser.js + checksum: 10c0/a1a13845b7e8dda4c970791814a4bbf60004969882f18f470e260ad822d2e1f8941948f851e9335895563610f240fa6c98481ce8019865e469502bbf21daafa4 + languageName: node + linkType: hard + +"@babel/plugin-syntax-async-generators@npm:^7.8.4": + version: 7.8.4 + resolution: "@babel/plugin-syntax-async-generators@npm:7.8.4" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.8.0" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/d13efb282838481348c71073b6be6245b35d4f2f964a8f71e4174f235009f929ef7613df25f8d2338e2d3e44bc4265a9f8638c6aaa136d7a61fe95985f9725c8 + languageName: node + linkType: hard + +"@babel/plugin-syntax-bigint@npm:^7.8.3": + version: 7.8.3 + resolution: "@babel/plugin-syntax-bigint@npm:7.8.3" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.8.0" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/686891b81af2bc74c39013655da368a480f17dd237bf9fbc32048e5865cb706d5a8f65438030da535b332b1d6b22feba336da8fa931f663b6b34e13147d12dde + languageName: node + linkType: hard + +"@babel/plugin-syntax-class-properties@npm:^7.12.13": + version: 7.12.13 + resolution: "@babel/plugin-syntax-class-properties@npm:7.12.13" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.12.13" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/95168fa186416195280b1264fb18afcdcdcea780b3515537b766cb90de6ce042d42dd6a204a39002f794ae5845b02afb0fd4861a3308a861204a55e68310a120 + languageName: node + linkType: hard + +"@babel/plugin-syntax-class-static-block@npm:^7.14.5": + version: 7.14.5 + resolution: "@babel/plugin-syntax-class-static-block@npm:7.14.5" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.14.5" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/4464bf9115f4a2d02ce1454411baf9cfb665af1da53709c5c56953e5e2913745b0fcce82982a00463d6facbdd93445c691024e310b91431a1e2f024b158f6371 + languageName: node + linkType: hard + +"@babel/plugin-syntax-import-attributes@npm:^7.24.7": + version: 7.25.7 + resolution: "@babel/plugin-syntax-import-attributes@npm:7.25.7" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/fe00cdb96fd289ab126830a98e1dcf5ab7b529a6ef1c01a72506b5e7b1197d6e46c3c4d029cd90d1d61eb9a15ef77c282d156d0c02c7e32f168bb09d84150db4 + languageName: node + linkType: hard + +"@babel/plugin-syntax-import-meta@npm:^7.10.4": + version: 7.10.4 + resolution: "@babel/plugin-syntax-import-meta@npm:7.10.4" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.10.4" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/0b08b5e4c3128523d8e346f8cfc86824f0da2697b1be12d71af50a31aff7a56ceb873ed28779121051475010c28d6146a6bfea8518b150b71eeb4e46190172ee + languageName: node + linkType: hard + +"@babel/plugin-syntax-json-strings@npm:^7.8.3": + version: 7.8.3 + resolution: "@babel/plugin-syntax-json-strings@npm:7.8.3" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.8.0" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/e98f31b2ec406c57757d115aac81d0336e8434101c224edd9a5c93cefa53faf63eacc69f3138960c8b25401315af03df37f68d316c151c4b933136716ed6906e + languageName: node + linkType: hard + +"@babel/plugin-syntax-jsx@npm:^7.7.2": + version: 7.25.7 + resolution: "@babel/plugin-syntax-jsx@npm:7.25.7" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/17db499c31fcfaa94d5408726d943955d51d478353d1e2dd84eda6024f7e3d104b9456a77f8aabfae0db7f4dc32f810d08357112f7fcbe305e7c9fcf5b3cac13 + languageName: node + linkType: hard + +"@babel/plugin-syntax-logical-assignment-operators@npm:^7.10.4": + version: 7.10.4 + resolution: "@babel/plugin-syntax-logical-assignment-operators@npm:7.10.4" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.10.4" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/2594cfbe29411ad5bc2ad4058de7b2f6a8c5b86eda525a993959438615479e59c012c14aec979e538d60a584a1a799b60d1b8942c3b18468cb9d99b8fd34cd0b + languageName: node + linkType: hard + +"@babel/plugin-syntax-nullish-coalescing-operator@npm:^7.8.3": + version: 7.8.3 + resolution: "@babel/plugin-syntax-nullish-coalescing-operator@npm:7.8.3" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.8.0" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/2024fbb1162899094cfc81152449b12bd0cc7053c6d4bda8ac2852545c87d0a851b1b72ed9560673cbf3ef6248257262c3c04aabf73117215c1b9cc7dd2542ce + languageName: node + linkType: hard + +"@babel/plugin-syntax-numeric-separator@npm:^7.10.4": + version: 7.10.4 + resolution: "@babel/plugin-syntax-numeric-separator@npm:7.10.4" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.10.4" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/c55a82b3113480942c6aa2fcbe976ff9caa74b7b1109ff4369641dfbc88d1da348aceb3c31b6ed311c84d1e7c479440b961906c735d0ab494f688bf2fd5b9bb9 + languageName: node + linkType: hard + +"@babel/plugin-syntax-object-rest-spread@npm:^7.8.3": + version: 7.8.3 + resolution: "@babel/plugin-syntax-object-rest-spread@npm:7.8.3" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.8.0" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/ee1eab52ea6437e3101a0a7018b0da698545230015fc8ab129d292980ec6dff94d265e9e90070e8ae5fed42f08f1622c14c94552c77bcac784b37f503a82ff26 + languageName: node + linkType: hard + +"@babel/plugin-syntax-optional-catch-binding@npm:^7.8.3": + version: 7.8.3 + resolution: "@babel/plugin-syntax-optional-catch-binding@npm:7.8.3" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.8.0" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/27e2493ab67a8ea6d693af1287f7e9acec206d1213ff107a928e85e173741e1d594196f99fec50e9dde404b09164f39dec5864c767212154ffe1caa6af0bc5af + languageName: node + linkType: hard + +"@babel/plugin-syntax-optional-chaining@npm:^7.8.3": + version: 7.8.3 + resolution: "@babel/plugin-syntax-optional-chaining@npm:7.8.3" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.8.0" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/46edddf2faa6ebf94147b8e8540dfc60a5ab718e2de4d01b2c0bdf250a4d642c2bd47cbcbb739febcb2bf75514dbcefad3c52208787994b8d0f8822490f55e81 + languageName: node + linkType: hard + +"@babel/plugin-syntax-private-property-in-object@npm:^7.14.5": + version: 7.14.5 + resolution: "@babel/plugin-syntax-private-property-in-object@npm:7.14.5" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.14.5" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/69822772561706c87f0a65bc92d0772cea74d6bc0911537904a676d5ff496a6d3ac4e05a166d8125fce4a16605bace141afc3611074e170a994e66e5397787f3 + languageName: node + linkType: hard + +"@babel/plugin-syntax-top-level-await@npm:^7.14.5": + version: 7.14.5 + resolution: "@babel/plugin-syntax-top-level-await@npm:7.14.5" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.14.5" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/14bf6e65d5bc1231ffa9def5f0ef30b19b51c218fcecaa78cd1bdf7939dfdf23f90336080b7f5196916368e399934ce5d581492d8292b46a2fb569d8b2da106f + languageName: node + linkType: hard + +"@babel/plugin-syntax-typescript@npm:^7.7.2": + version: 7.25.7 + resolution: "@babel/plugin-syntax-typescript@npm:7.25.7" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.7" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/ed51fd81a5cf571a89fc4cf4c0e3b0b91285c367237374c133d2e5e718f3963cfa61b81997df39220a8837dc99f9e9a8ab7701d259c09fae379e4843d9db60c2 + languageName: node + linkType: hard + +"@babel/template@npm:^7.25.7, @babel/template@npm:^7.3.3": + version: 7.25.7 + resolution: "@babel/template@npm:7.25.7" + dependencies: + "@babel/code-frame": "npm:^7.25.7" + "@babel/parser": "npm:^7.25.7" + "@babel/types": "npm:^7.25.7" + checksum: 10c0/8ae9e36e4330ee83d4832531d1d9bec7dc2ef6a2a8afa1ef1229506fd60667abcb17f306d1c3d7e582251270597022990c845d5d69e7add70a5aea66720decb9 + languageName: node + linkType: hard + +"@babel/traverse@npm:^7.25.7": + version: 7.25.7 + resolution: "@babel/traverse@npm:7.25.7" + dependencies: + "@babel/code-frame": "npm:^7.25.7" + "@babel/generator": "npm:^7.25.7" + "@babel/parser": "npm:^7.25.7" + "@babel/template": "npm:^7.25.7" + "@babel/types": "npm:^7.25.7" + debug: "npm:^4.3.1" + globals: "npm:^11.1.0" + checksum: 10c0/75d73e52c507a7a7a4c7971d6bf4f8f26fdd094e0d3a0193d77edf6a5efa36fc3db91ec5cc48e8b94e6eb5d5ad21af0a1040e71309172851209415fd105efb1a + languageName: node + linkType: hard + +"@babel/types@npm:^7.0.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.25.7, @babel/types@npm:^7.25.8, @babel/types@npm:^7.3.3": + version: 7.25.8 + resolution: "@babel/types@npm:7.25.8" + dependencies: + "@babel/helper-string-parser": "npm:^7.25.7" + "@babel/helper-validator-identifier": "npm:^7.25.7" + to-fast-properties: "npm:^2.0.0" + checksum: 10c0/55ca2d6df6426c98db2769ce884ce5e9de83a512ea2dd7bcf56c811984dc14351cacf42932a723630c5afcff2455809323decd645820762182f10b7b5252b59f + languageName: node + linkType: hard + +"@bcoe/v8-coverage@npm:^0.2.3": + version: 0.2.3 + resolution: "@bcoe/v8-coverage@npm:0.2.3" + checksum: 10c0/6b80ae4cb3db53f486da2dc63b6e190a74c8c3cca16bb2733f234a0b6a9382b09b146488ae08e2b22cf00f6c83e20f3e040a2f7894f05c045c946d6a090b1d52 + languageName: node + linkType: hard + +"@esbuild/aix-ppc64@npm:0.24.0": + version: 0.24.0 + resolution: "@esbuild/aix-ppc64@npm:0.24.0" + conditions: os=aix & cpu=ppc64 + languageName: node + linkType: hard + +"@esbuild/android-arm64@npm:0.24.0": + version: 0.24.0 + resolution: "@esbuild/android-arm64@npm:0.24.0" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/android-arm@npm:0.24.0": + version: 0.24.0 + resolution: "@esbuild/android-arm@npm:0.24.0" + conditions: os=android & cpu=arm + languageName: node + linkType: hard + +"@esbuild/android-x64@npm:0.24.0": + version: 0.24.0 + resolution: "@esbuild/android-x64@npm:0.24.0" + conditions: os=android & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/darwin-arm64@npm:0.24.0": + version: 0.24.0 + resolution: "@esbuild/darwin-arm64@npm:0.24.0" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/darwin-x64@npm:0.24.0": + version: 0.24.0 + resolution: "@esbuild/darwin-x64@npm:0.24.0" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/freebsd-arm64@npm:0.24.0": + version: 0.24.0 + resolution: "@esbuild/freebsd-arm64@npm:0.24.0" + conditions: os=freebsd & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/freebsd-x64@npm:0.24.0": + version: 0.24.0 + resolution: "@esbuild/freebsd-x64@npm:0.24.0" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/linux-arm64@npm:0.24.0": + version: 0.24.0 + resolution: "@esbuild/linux-arm64@npm:0.24.0" + conditions: os=linux & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/linux-arm@npm:0.24.0": + version: 0.24.0 + resolution: "@esbuild/linux-arm@npm:0.24.0" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + +"@esbuild/linux-ia32@npm:0.24.0": + version: 0.24.0 + resolution: "@esbuild/linux-ia32@npm:0.24.0" + conditions: os=linux & cpu=ia32 + languageName: node + linkType: hard + +"@esbuild/linux-loong64@npm:0.24.0": + version: 0.24.0 + resolution: "@esbuild/linux-loong64@npm:0.24.0" + conditions: os=linux & cpu=loong64 + languageName: node + linkType: hard + +"@esbuild/linux-mips64el@npm:0.24.0": + version: 0.24.0 + resolution: "@esbuild/linux-mips64el@npm:0.24.0" + conditions: os=linux & cpu=mips64el + languageName: node + linkType: hard + +"@esbuild/linux-ppc64@npm:0.24.0": + version: 0.24.0 + resolution: "@esbuild/linux-ppc64@npm:0.24.0" + conditions: os=linux & cpu=ppc64 + languageName: node + linkType: hard + +"@esbuild/linux-riscv64@npm:0.24.0": + version: 0.24.0 + resolution: "@esbuild/linux-riscv64@npm:0.24.0" + conditions: os=linux & cpu=riscv64 + languageName: node + linkType: hard + +"@esbuild/linux-s390x@npm:0.24.0": + version: 0.24.0 + resolution: "@esbuild/linux-s390x@npm:0.24.0" + conditions: os=linux & cpu=s390x + languageName: node + linkType: hard + +"@esbuild/linux-x64@npm:0.24.0": + version: 0.24.0 + resolution: "@esbuild/linux-x64@npm:0.24.0" + conditions: os=linux & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/netbsd-x64@npm:0.24.0": + version: 0.24.0 + resolution: "@esbuild/netbsd-x64@npm:0.24.0" + conditions: os=netbsd & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/openbsd-arm64@npm:0.24.0": + version: 0.24.0 + resolution: "@esbuild/openbsd-arm64@npm:0.24.0" + conditions: os=openbsd & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/openbsd-x64@npm:0.24.0": + version: 0.24.0 + resolution: "@esbuild/openbsd-x64@npm:0.24.0" + conditions: os=openbsd & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/sunos-x64@npm:0.24.0": + version: 0.24.0 + resolution: "@esbuild/sunos-x64@npm:0.24.0" + conditions: os=sunos & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/win32-arm64@npm:0.24.0": + version: 0.24.0 + resolution: "@esbuild/win32-arm64@npm:0.24.0" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/win32-ia32@npm:0.24.0": + version: 0.24.0 + resolution: "@esbuild/win32-ia32@npm:0.24.0" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + +"@esbuild/win32-x64@npm:0.24.0": + version: 0.24.0 + resolution: "@esbuild/win32-x64@npm:0.24.0" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + +"@eslint-community/eslint-utils@npm:^4.2.0, @eslint-community/eslint-utils@npm:^4.4.0": + version: 4.4.0 + resolution: "@eslint-community/eslint-utils@npm:4.4.0" + dependencies: + eslint-visitor-keys: "npm:^3.3.0" + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + checksum: 10c0/7e559c4ce59cd3a06b1b5a517b593912e680a7f981ae7affab0d01d709e99cd5647019be8fafa38c350305bc32f1f7d42c7073edde2ab536c745e365f37b607e + languageName: node + linkType: hard + +"@eslint-community/regexpp@npm:^4.10.0": + version: 4.11.1 + resolution: "@eslint-community/regexpp@npm:4.11.1" + checksum: 10c0/fbcc1cb65ef5ed5b92faa8dc542e035269065e7ebcc0b39c81a4fe98ad35cfff20b3c8df048641de15a7757e07d69f85e2579c1a5055f993413ba18c055654f8 + languageName: node + linkType: hard + +"@eslint-community/regexpp@npm:^4.6.1": + version: 4.10.0 + resolution: "@eslint-community/regexpp@npm:4.10.0" + checksum: 10c0/c5f60ef1f1ea7649fa7af0e80a5a79f64b55a8a8fa5086de4727eb4c86c652aedee407a9c143b8995d2c0b2d75c1222bec9ba5d73dbfc1f314550554f0979ef4 + languageName: node + linkType: hard + +"@eslint/eslintrc@npm:^2.1.4": + version: 2.1.4 + resolution: "@eslint/eslintrc@npm:2.1.4" + dependencies: + ajv: "npm:^6.12.4" + debug: "npm:^4.3.2" + espree: "npm:^9.6.0" + globals: "npm:^13.19.0" + ignore: "npm:^5.2.0" + import-fresh: "npm:^3.2.1" + js-yaml: "npm:^4.1.0" + minimatch: "npm:^3.1.2" + strip-json-comments: "npm:^3.1.1" + checksum: 10c0/32f67052b81768ae876c84569ffd562491ec5a5091b0c1e1ca1e0f3c24fb42f804952fdd0a137873bc64303ba368a71ba079a6f691cee25beee9722d94cc8573 + languageName: node + linkType: hard + +"@eslint/js@npm:8.57.1": + version: 8.57.1 + resolution: "@eslint/js@npm:8.57.1" + checksum: 10c0/b489c474a3b5b54381c62e82b3f7f65f4b8a5eaaed126546520bf2fede5532a8ed53212919fed1e9048dcf7f37167c8561d58d0ba4492a4244004e7793805223 + languageName: node + linkType: hard + +"@grammyjs/types@npm:3.14.0": + version: 3.14.0 + resolution: "@grammyjs/types@npm:3.14.0" + checksum: 10c0/39bb85a59d6c4345eae2e5629e40c7f9d3b9c3c8e7c08f8b73eefd60d2b8caf8ee40560b605225185d8fb7bbe36199fdd8d1005435d1dfff18389ed23bb804a5 + languageName: node + linkType: hard + +"@humanwhocodes/config-array@npm:^0.13.0": + version: 0.13.0 + resolution: "@humanwhocodes/config-array@npm:0.13.0" + dependencies: + "@humanwhocodes/object-schema": "npm:^2.0.3" + debug: "npm:^4.3.1" + minimatch: "npm:^3.0.5" + checksum: 10c0/205c99e756b759f92e1f44a3dc6292b37db199beacba8f26c2165d4051fe73a4ae52fdcfd08ffa93e7e5cb63da7c88648f0e84e197d154bbbbe137b2e0dd332e + languageName: node + linkType: hard + +"@humanwhocodes/module-importer@npm:^1.0.1": + version: 1.0.1 + resolution: "@humanwhocodes/module-importer@npm:1.0.1" + checksum: 10c0/909b69c3b86d482c26b3359db16e46a32e0fb30bd306a3c176b8313b9e7313dba0f37f519de6aa8b0a1921349e505f259d19475e123182416a506d7f87e7f529 + languageName: node + linkType: hard + +"@humanwhocodes/object-schema@npm:^2.0.3": + version: 2.0.3 + resolution: "@humanwhocodes/object-schema@npm:2.0.3" + checksum: 10c0/80520eabbfc2d32fe195a93557cef50dfe8c8905de447f022675aaf66abc33ae54098f5ea78548d925aa671cd4ab7c7daa5ad704fe42358c9b5e7db60f80696c + languageName: node + linkType: hard + +"@hutson/parse-repository-url@npm:^5.0.0": + version: 5.0.0 + resolution: "@hutson/parse-repository-url@npm:5.0.0" + checksum: 10c0/068c5c9e38fecc10e3aa6f6eee5818db6f3f29a70d01fec64e9ec0ee985e8995a0cf79ec5f7c80530f1fb27d99668ee2f38d8929b712b82d5100ebd2c9153e85 + languageName: node + linkType: hard + +"@inquirer/core@npm:^10.0.0": + version: 10.0.0 + resolution: "@inquirer/core@npm:10.0.0" + dependencies: + "@inquirer/figures": "npm:^1.0.7" + "@inquirer/type": "npm:^3.0.0" + ansi-escapes: "npm:^4.3.2" + cli-width: "npm:^4.1.0" + mute-stream: "npm:^2.0.0" + signal-exit: "npm:^4.1.0" + strip-ansi: "npm:^6.0.1" + wrap-ansi: "npm:^6.2.0" + yoctocolors-cjs: "npm:^2.1.2" + checksum: 10c0/628dc3c7e21c7fbc1238f4a3b6de0c99885a53c16e829bd8c7fb820e54f1406612e6c7d008bd0dc0f649aed9f4ce5589876aabd5404144c0761f3967d3f98702 + languageName: node + linkType: hard + +"@inquirer/expand@npm:^4.0.0": + version: 4.0.0 + resolution: "@inquirer/expand@npm:4.0.0" + dependencies: + "@inquirer/core": "npm:^10.0.0" + "@inquirer/type": "npm:^3.0.0" + yoctocolors-cjs: "npm:^2.1.2" + checksum: 10c0/8d3a469286c3927262437ac42aa2f3b0c838bbe574f1cbcb9298fa9054afc165a1ea9b6a5bca8460d0110f23704f3ada64dab46b287d690594348c0dec9890ad + languageName: node + linkType: hard + +"@inquirer/figures@npm:^1.0.7": + version: 1.0.7 + resolution: "@inquirer/figures@npm:1.0.7" + checksum: 10c0/d7b4cfcd38dd43d1ac79da52c4478aa89145207004a471aa2083856f1d9b99adef45563f09d66c09d6457b09200fcf784527804b70ad3bd517cbc5e11142c2df + languageName: node + linkType: hard + +"@inquirer/input@npm:^4.0.0": + version: 4.0.0 + resolution: "@inquirer/input@npm:4.0.0" + dependencies: + "@inquirer/core": "npm:^10.0.0" + "@inquirer/type": "npm:^3.0.0" + checksum: 10c0/25d3d1031fae17764896ae5a13ea4ed70226d28f633852e4f0b9e584972cb1d6fe2dc599fedea29653369143177de0cc207ed2d118bae2df9c1e20f83a910180 + languageName: node + linkType: hard + +"@inquirer/select@npm:^4.0.0": + version: 4.0.0 + resolution: "@inquirer/select@npm:4.0.0" + dependencies: + "@inquirer/core": "npm:^10.0.0" + "@inquirer/figures": "npm:^1.0.7" + "@inquirer/type": "npm:^3.0.0" + ansi-escapes: "npm:^4.3.2" + yoctocolors-cjs: "npm:^2.1.2" + checksum: 10c0/fca9e4e725e74a9c8f2c9860f210b55acb9cec644f8e471459674bb396690a3ae1c250675370b855c331ad2dd519a19ff03d9ead17acc985acc409769dc68079 + languageName: node + linkType: hard + +"@inquirer/type@npm:^3.0.0": + version: 3.0.0 + resolution: "@inquirer/type@npm:3.0.0" + peerDependencies: + "@types/node": ">=18" + checksum: 10c0/4c26595749782e3dfbfea0c7a19b1db603485e0fce4a9d4fe52be1c9c05fcb2cc3afbc849d03bddbde47896786df93d6f02657eeeae5dbc8cdc78cd8a4f80123 + languageName: node + linkType: hard + +"@isaacs/cliui@npm:^8.0.2": + version: 8.0.2 + resolution: "@isaacs/cliui@npm:8.0.2" + dependencies: + string-width: "npm:^5.1.2" + string-width-cjs: "npm:string-width@^4.2.0" + strip-ansi: "npm:^7.0.1" + strip-ansi-cjs: "npm:strip-ansi@^6.0.1" + wrap-ansi: "npm:^8.1.0" + wrap-ansi-cjs: "npm:wrap-ansi@^7.0.0" + checksum: 10c0/b1bf42535d49f11dc137f18d5e4e63a28c5569de438a221c369483731e9dac9fb797af554e8bf02b6192d1e5eba6e6402cf93900c3d0ac86391d00d04876789e + languageName: node + linkType: hard + +"@isaacs/string-locale-compare@npm:^1.1.0": + version: 1.1.0 + resolution: "@isaacs/string-locale-compare@npm:1.1.0" + checksum: 10c0/d67226ff7ac544a495c77df38187e69e0e3a0783724777f86caadafb306e2155dc3b5787d5927916ddd7fb4a53561ac8f705448ac3235d18ea60da5854829fdf + languageName: node + linkType: hard + +"@istanbuljs/load-nyc-config@npm:^1.0.0": + version: 1.1.0 + resolution: "@istanbuljs/load-nyc-config@npm:1.1.0" + dependencies: + camelcase: "npm:^5.3.1" + find-up: "npm:^4.1.0" + get-package-type: "npm:^0.1.0" + js-yaml: "npm:^3.13.1" + resolve-from: "npm:^5.0.0" + checksum: 10c0/dd2a8b094887da5a1a2339543a4933d06db2e63cbbc2e288eb6431bd832065df0c099d091b6a67436e71b7d6bf85f01ce7c15f9253b4cbebcc3b9a496165ba42 + languageName: node + linkType: hard + +"@istanbuljs/schema@npm:^0.1.2, @istanbuljs/schema@npm:^0.1.3": + version: 0.1.3 + resolution: "@istanbuljs/schema@npm:0.1.3" + checksum: 10c0/61c5286771676c9ca3eb2bd8a7310a9c063fb6e0e9712225c8471c582d157392c88f5353581c8c9adbe0dff98892317d2fdfc56c3499aa42e0194405206a963a + languageName: node + linkType: hard + +"@jest/console@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/console@npm:29.7.0" + dependencies: + "@jest/types": "npm:^29.6.3" + "@types/node": "npm:*" + chalk: "npm:^4.0.0" + jest-message-util: "npm:^29.7.0" + jest-util: "npm:^29.7.0" + slash: "npm:^3.0.0" + checksum: 10c0/7be408781d0a6f657e969cbec13b540c329671819c2f57acfad0dae9dbfe2c9be859f38fe99b35dba9ff1536937dc6ddc69fdcd2794812fa3c647a1619797f6c + languageName: node + linkType: hard + +"@jest/core@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/core@npm:29.7.0" + dependencies: + "@jest/console": "npm:^29.7.0" + "@jest/reporters": "npm:^29.7.0" + "@jest/test-result": "npm:^29.7.0" + "@jest/transform": "npm:^29.7.0" + "@jest/types": "npm:^29.6.3" + "@types/node": "npm:*" + ansi-escapes: "npm:^4.2.1" + chalk: "npm:^4.0.0" + ci-info: "npm:^3.2.0" + exit: "npm:^0.1.2" + graceful-fs: "npm:^4.2.9" + jest-changed-files: "npm:^29.7.0" + jest-config: "npm:^29.7.0" + jest-haste-map: "npm:^29.7.0" + jest-message-util: "npm:^29.7.0" + jest-regex-util: "npm:^29.6.3" + jest-resolve: "npm:^29.7.0" + jest-resolve-dependencies: "npm:^29.7.0" + jest-runner: "npm:^29.7.0" + jest-runtime: "npm:^29.7.0" + jest-snapshot: "npm:^29.7.0" + jest-util: "npm:^29.7.0" + jest-validate: "npm:^29.7.0" + jest-watcher: "npm:^29.7.0" + micromatch: "npm:^4.0.4" + pretty-format: "npm:^29.7.0" + slash: "npm:^3.0.0" + strip-ansi: "npm:^6.0.0" + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + checksum: 10c0/934f7bf73190f029ac0f96662c85cd276ec460d407baf6b0dbaec2872e157db4d55a7ee0b1c43b18874602f662b37cb973dda469a4e6d88b4e4845b521adeeb2 + languageName: node + linkType: hard + +"@jest/environment@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/environment@npm:29.7.0" + dependencies: + "@jest/fake-timers": "npm:^29.7.0" + "@jest/types": "npm:^29.6.3" + "@types/node": "npm:*" + jest-mock: "npm:^29.7.0" + checksum: 10c0/c7b1b40c618f8baf4d00609022d2afa086d9c6acc706f303a70bb4b67275868f620ad2e1a9efc5edd418906157337cce50589a627a6400bbdf117d351b91ef86 + languageName: node + linkType: hard + +"@jest/expect-utils@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/expect-utils@npm:29.7.0" + dependencies: + jest-get-type: "npm:^29.6.3" + checksum: 10c0/60b79d23a5358dc50d9510d726443316253ecda3a7fb8072e1526b3e0d3b14f066ee112db95699b7a43ad3f0b61b750c72e28a5a1cac361d7a2bb34747fa938a + languageName: node + linkType: hard + +"@jest/expect@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/expect@npm:29.7.0" + dependencies: + expect: "npm:^29.7.0" + jest-snapshot: "npm:^29.7.0" + checksum: 10c0/b41f193fb697d3ced134349250aed6ccea075e48c4f803159db102b826a4e473397c68c31118259868fd69a5cba70e97e1c26d2c2ff716ca39dc73a2ccec037e + languageName: node + linkType: hard + +"@jest/fake-timers@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/fake-timers@npm:29.7.0" + dependencies: + "@jest/types": "npm:^29.6.3" + "@sinonjs/fake-timers": "npm:^10.0.2" + "@types/node": "npm:*" + jest-message-util: "npm:^29.7.0" + jest-mock: "npm:^29.7.0" + jest-util: "npm:^29.7.0" + checksum: 10c0/cf0a8bcda801b28dc2e2b2ba36302200ee8104a45ad7a21e6c234148932f826cb3bc57c8df3b7b815aeea0861d7b6ca6f0d4778f93b9219398ef28749e03595c + languageName: node + linkType: hard + +"@jest/globals@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/globals@npm:29.7.0" + dependencies: + "@jest/environment": "npm:^29.7.0" + "@jest/expect": "npm:^29.7.0" + "@jest/types": "npm:^29.6.3" + jest-mock: "npm:^29.7.0" + checksum: 10c0/a385c99396878fe6e4460c43bd7bb0a5cc52befb462cc6e7f2a3810f9e7bcce7cdeb51908fd530391ee452dc856c98baa2c5f5fa8a5b30b071d31ef7f6955cea languageName: node linkType: hard -"@babel/helper-validator-identifier@npm:^7.22.20": - version: 7.22.20 - resolution: "@babel/helper-validator-identifier@npm:7.22.20" - checksum: dcad63db345fb110e032de46c3688384b0008a42a4845180ce7cd62b1a9c0507a1bed727c4d1060ed1a03ae57b4d918570259f81724aaac1a5b776056f37504e +"@jest/reporters@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/reporters@npm:29.7.0" + dependencies: + "@bcoe/v8-coverage": "npm:^0.2.3" + "@jest/console": "npm:^29.7.0" + "@jest/test-result": "npm:^29.7.0" + "@jest/transform": "npm:^29.7.0" + "@jest/types": "npm:^29.6.3" + "@jridgewell/trace-mapping": "npm:^0.3.18" + "@types/node": "npm:*" + chalk: "npm:^4.0.0" + collect-v8-coverage: "npm:^1.0.0" + exit: "npm:^0.1.2" + glob: "npm:^7.1.3" + graceful-fs: "npm:^4.2.9" + istanbul-lib-coverage: "npm:^3.0.0" + istanbul-lib-instrument: "npm:^6.0.0" + istanbul-lib-report: "npm:^3.0.0" + istanbul-lib-source-maps: "npm:^4.0.0" + istanbul-reports: "npm:^3.1.3" + jest-message-util: "npm:^29.7.0" + jest-util: "npm:^29.7.0" + jest-worker: "npm:^29.7.0" + slash: "npm:^3.0.0" + string-length: "npm:^4.0.1" + strip-ansi: "npm:^6.0.0" + v8-to-istanbul: "npm:^9.0.1" + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + checksum: 10c0/a754402a799541c6e5aff2c8160562525e2a47e7d568f01ebfc4da66522de39cbb809bbb0a841c7052e4270d79214e70aec3c169e4eae42a03bc1a8a20cb9fa2 languageName: node linkType: hard -"@babel/highlight@npm:^7.22.13": - version: 7.22.20 - resolution: "@babel/highlight@npm:7.22.20" +"@jest/schemas@npm:^29.6.3": + version: 29.6.3 + resolution: "@jest/schemas@npm:29.6.3" dependencies: - "@babel/helper-validator-identifier": "npm:^7.22.20" - chalk: "npm:^2.4.2" - js-tokens: "npm:^4.0.0" - checksum: f3c3a193afad23434297d88e81d1d6c0c2cf02423de2139ada7ce0a7fc62d8559abf4cc996533c1a9beca7fc990010eb8d544097f75e818ac113bf39ed810aa2 + "@sinclair/typebox": "npm:^0.27.8" + checksum: 10c0/b329e89cd5f20b9278ae1233df74016ebf7b385e0d14b9f4c1ad18d096c4c19d1e687aa113a9c976b16ec07f021ae53dea811fb8c1248a50ac34fbe009fdf6be languageName: node linkType: hard -"@eslint-community/eslint-utils@npm:^4.2.0, @eslint-community/eslint-utils@npm:^4.4.0": - version: 4.4.0 - resolution: "@eslint-community/eslint-utils@npm:4.4.0" +"@jest/source-map@npm:^29.6.3": + version: 29.6.3 + resolution: "@jest/source-map@npm:29.6.3" dependencies: - eslint-visitor-keys: "npm:^3.3.0" - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - checksum: 7e559c4ce59cd3a06b1b5a517b593912e680a7f981ae7affab0d01d709e99cd5647019be8fafa38c350305bc32f1f7d42c7073edde2ab536c745e365f37b607e + "@jridgewell/trace-mapping": "npm:^0.3.18" + callsites: "npm:^3.0.0" + graceful-fs: "npm:^4.2.9" + checksum: 10c0/a2f177081830a2e8ad3f2e29e20b63bd40bade294880b595acf2fc09ec74b6a9dd98f126a2baa2bf4941acd89b13a4ade5351b3885c224107083a0059b60a219 languageName: node linkType: hard -"@eslint-community/regexpp@npm:^4.5.1, @eslint-community/regexpp@npm:^4.6.1": - version: 4.10.0 - resolution: "@eslint-community/regexpp@npm:4.10.0" - checksum: c5f60ef1f1ea7649fa7af0e80a5a79f64b55a8a8fa5086de4727eb4c86c652aedee407a9c143b8995d2c0b2d75c1222bec9ba5d73dbfc1f314550554f0979ef4 +"@jest/test-result@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/test-result@npm:29.7.0" + dependencies: + "@jest/console": "npm:^29.7.0" + "@jest/types": "npm:^29.6.3" + "@types/istanbul-lib-coverage": "npm:^2.0.0" + collect-v8-coverage: "npm:^1.0.0" + checksum: 10c0/7de54090e54a674ca173470b55dc1afdee994f2d70d185c80236003efd3fa2b753fff51ffcdda8e2890244c411fd2267529d42c4a50a8303755041ee493e6a04 languageName: node linkType: hard -"@eslint/eslintrc@npm:^2.1.3": - version: 2.1.3 - resolution: "@eslint/eslintrc@npm:2.1.3" +"@jest/test-sequencer@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/test-sequencer@npm:29.7.0" dependencies: - ajv: "npm:^6.12.4" - debug: "npm:^4.3.2" - espree: "npm:^9.6.0" - globals: "npm:^13.19.0" - ignore: "npm:^5.2.0" - import-fresh: "npm:^3.2.1" - js-yaml: "npm:^4.1.0" - minimatch: "npm:^3.1.2" - strip-json-comments: "npm:^3.1.1" - checksum: f4103f4346126292eb15581c5a1d12bef03410fd3719dedbdb92e1f7031d46a5a2d60de8566790445d5d4b70b75ba050876799a11f5fff8265a91ee3fa77dab0 + "@jest/test-result": "npm:^29.7.0" + graceful-fs: "npm:^4.2.9" + jest-haste-map: "npm:^29.7.0" + slash: "npm:^3.0.0" + checksum: 10c0/593a8c4272797bb5628984486080cbf57aed09c7cfdc0a634e8c06c38c6bef329c46c0016e84555ee55d1cd1f381518cf1890990ff845524c1123720c8c1481b languageName: node linkType: hard -"@eslint/js@npm:8.54.0": - version: 8.54.0 - resolution: "@eslint/js@npm:8.54.0" - checksum: d61fb4a0be6af2d8cb290121c329697664a75d6255a29926d5454fb02aeb02b87112f67fdf218d10abac42f90c570ac366126751baefc5405d0e017ed0c946c5 +"@jest/transform@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/transform@npm:29.7.0" + dependencies: + "@babel/core": "npm:^7.11.6" + "@jest/types": "npm:^29.6.3" + "@jridgewell/trace-mapping": "npm:^0.3.18" + babel-plugin-istanbul: "npm:^6.1.1" + chalk: "npm:^4.0.0" + convert-source-map: "npm:^2.0.0" + fast-json-stable-stringify: "npm:^2.1.0" + graceful-fs: "npm:^4.2.9" + jest-haste-map: "npm:^29.7.0" + jest-regex-util: "npm:^29.6.3" + jest-util: "npm:^29.7.0" + micromatch: "npm:^4.0.4" + pirates: "npm:^4.0.4" + slash: "npm:^3.0.0" + write-file-atomic: "npm:^4.0.2" + checksum: 10c0/7f4a7f73dcf45dfdf280c7aa283cbac7b6e5a904813c3a93ead7e55873761fc20d5c4f0191d2019004fac6f55f061c82eb3249c2901164ad80e362e7a7ede5a6 languageName: node linkType: hard -"@humanwhocodes/config-array@npm:^0.11.13": - version: 0.11.13 - resolution: "@humanwhocodes/config-array@npm:0.11.13" +"@jest/types@npm:^29.6.3": + version: 29.6.3 + resolution: "@jest/types@npm:29.6.3" dependencies: - "@humanwhocodes/object-schema": "npm:^2.0.1" - debug: "npm:^4.1.1" - minimatch: "npm:^3.0.5" - checksum: d76ca802d853366094d0e98ff0d0994117fc8eff96649cd357b15e469e428228f597cd2e929d54ab089051684949955f16ee905bb19f7b2f0446fb377157be7a + "@jest/schemas": "npm:^29.6.3" + "@types/istanbul-lib-coverage": "npm:^2.0.0" + "@types/istanbul-reports": "npm:^3.0.0" + "@types/node": "npm:*" + "@types/yargs": "npm:^17.0.8" + chalk: "npm:^4.0.0" + checksum: 10c0/ea4e493dd3fb47933b8ccab201ae573dcc451f951dc44ed2a86123cd8541b82aa9d2b1031caf9b1080d6673c517e2dcc25a44b2dc4f3fbc37bfc965d444888c0 languageName: node linkType: hard -"@humanwhocodes/module-importer@npm:^1.0.1": - version: 1.0.1 - resolution: "@humanwhocodes/module-importer@npm:1.0.1" - checksum: 909b69c3b86d482c26b3359db16e46a32e0fb30bd306a3c176b8313b9e7313dba0f37f519de6aa8b0a1921349e505f259d19475e123182416a506d7f87e7f529 +"@jridgewell/gen-mapping@npm:^0.3.5": + version: 0.3.5 + resolution: "@jridgewell/gen-mapping@npm:0.3.5" + dependencies: + "@jridgewell/set-array": "npm:^1.2.1" + "@jridgewell/sourcemap-codec": "npm:^1.4.10" + "@jridgewell/trace-mapping": "npm:^0.3.24" + checksum: 10c0/1be4fd4a6b0f41337c4f5fdf4afc3bd19e39c3691924817108b82ffcb9c9e609c273f936932b9fba4b3a298ce2eb06d9bff4eb1cc3bd81c4f4ee1b4917e25feb languageName: node linkType: hard -"@humanwhocodes/object-schema@npm:^2.0.1": - version: 2.0.1 - resolution: "@humanwhocodes/object-schema@npm:2.0.1" - checksum: 9dba24e59fdb4041829d92b693aacb778add3b6f612aaa9c0774f3b650c11a378cc64f042a59da85c11dae33df456580a3c36837b953541aed6ff94294f97fac +"@jridgewell/resolve-uri@npm:^3.1.0": + version: 3.1.2 + resolution: "@jridgewell/resolve-uri@npm:3.1.2" + checksum: 10c0/d502e6fb516b35032331406d4e962c21fe77cdf1cbdb49c6142bcbd9e30507094b18972778a6e27cbad756209cfe34b1a27729e6fa08a2eb92b33943f680cf1e languageName: node linkType: hard -"@hutson/parse-repository-url@npm:^3.0.0": - version: 3.0.2 - resolution: "@hutson/parse-repository-url@npm:3.0.2" - checksum: d9197757ecad2df18d29d3e1d1fe0716d458fd88b849c71cbec9e78239f911074c97e8d764dfd8ed890431c1137e52dd7a337207fd65be20ce0784f7860ae4d1 +"@jridgewell/set-array@npm:^1.2.1": + version: 1.2.1 + resolution: "@jridgewell/set-array@npm:1.2.1" + checksum: 10c0/2a5aa7b4b5c3464c895c802d8ae3f3d2b92fcbe84ad12f8d0bfbb1f5ad006717e7577ee1fd2eac00c088abe486c7adb27976f45d2941ff6b0b92b2c3302c60f4 languageName: node linkType: hard -"@isaacs/cliui@npm:^8.0.2": - version: 8.0.2 - resolution: "@isaacs/cliui@npm:8.0.2" - dependencies: - string-width: "npm:^5.1.2" - string-width-cjs: "npm:string-width@^4.2.0" - strip-ansi: "npm:^7.0.1" - strip-ansi-cjs: "npm:strip-ansi@^6.0.1" - wrap-ansi: "npm:^8.1.0" - wrap-ansi-cjs: "npm:wrap-ansi@^7.0.0" - checksum: b1bf42535d49f11dc137f18d5e4e63a28c5569de438a221c369483731e9dac9fb797af554e8bf02b6192d1e5eba6e6402cf93900c3d0ac86391d00d04876789e +"@jridgewell/sourcemap-codec@npm:^1.4.10, @jridgewell/sourcemap-codec@npm:^1.4.14": + version: 1.5.0 + resolution: "@jridgewell/sourcemap-codec@npm:1.5.0" + checksum: 10c0/2eb864f276eb1096c3c11da3e9bb518f6d9fc0023c78344cdc037abadc725172c70314bdb360f2d4b7bffec7f5d657ce006816bc5d4ecb35e61b66132db00c18 languageName: node linkType: hard -"@isaacs/string-locale-compare@npm:^1.1.0": - version: 1.1.0 - resolution: "@isaacs/string-locale-compare@npm:1.1.0" - checksum: d67226ff7ac544a495c77df38187e69e0e3a0783724777f86caadafb306e2155dc3b5787d5927916ddd7fb4a53561ac8f705448ac3235d18ea60da5854829fdf +"@jridgewell/trace-mapping@npm:^0.3.12, @jridgewell/trace-mapping@npm:^0.3.18, @jridgewell/trace-mapping@npm:^0.3.24, @jridgewell/trace-mapping@npm:^0.3.25": + version: 0.3.25 + resolution: "@jridgewell/trace-mapping@npm:0.3.25" + dependencies: + "@jridgewell/resolve-uri": "npm:^3.1.0" + "@jridgewell/sourcemap-codec": "npm:^1.4.14" + checksum: 10c0/3d1ce6ebc69df9682a5a8896b414c6537e428a1d68b02fcc8363b04284a8ca0df04d0ee3013132252ab14f2527bc13bea6526a912ecb5658f0e39fd2860b4df4 languageName: node linkType: hard -"@lerna-lite/changed@npm:^3.0.0": - version: 3.0.0 - resolution: "@lerna-lite/changed@npm:3.0.0" +"@lerna-lite/changed@npm:^3.9.3": + version: 3.10.0 + resolution: "@lerna-lite/changed@npm:3.10.0" dependencies: - "@lerna-lite/cli": "npm:3.0.0" - "@lerna-lite/core": "npm:3.0.0" - "@lerna-lite/list": "npm:3.0.0" - "@lerna-lite/listable": "npm:3.0.0" - checksum: 41e15382c00923ba0852b1825061d864ebff392811a658bfb0b9c685582fab86b25ae3a4670d25440478128cd5321c10ffdc6b14e25666bd359cc553af3ab7e6 + "@lerna-lite/cli": "npm:3.10.0" + "@lerna-lite/core": "npm:3.10.0" + "@lerna-lite/list": "npm:3.10.0" + "@lerna-lite/listable": "npm:3.10.0" + checksum: 10c0/7e65f1ae8c70be97f346b990784a61d0739dd28e5f8133b99e87b12b25b8fbdcd3072a11a3c40da19ad2ca069ee686011f4c594341e962e14b73b7a4c2e7cc11 languageName: node linkType: hard -"@lerna-lite/cli@npm:3.0.0, @lerna-lite/cli@npm:^3.0.0": - version: 3.0.0 - resolution: "@lerna-lite/cli@npm:3.0.0" +"@lerna-lite/cli@npm:3.10.0, @lerna-lite/cli@npm:^3.9.3": + version: 3.10.0 + resolution: "@lerna-lite/cli@npm:3.10.0" dependencies: - "@lerna-lite/core": "npm:3.0.0" - "@lerna-lite/init": "npm:3.0.0" - dedent: "npm:^1.5.1" - dotenv: "npm:^16.3.1" - import-local: "npm:^3.1.0" + "@lerna-lite/core": "npm:3.10.0" + "@lerna-lite/init": "npm:3.10.0" + "@lerna-lite/npmlog": "npm:3.10.0" + dedent: "npm:^1.5.3" + dotenv: "npm:^16.4.5" + import-local: "npm:^3.2.0" load-json-file: "npm:^7.0.1" - npmlog: "npm:^7.0.1" yargs: "npm:^17.7.2" peerDependenciesMeta: "@lerna-lite/exec": @@ -299,224 +1555,221 @@ __metadata: optional: true bin: lerna: dist/cli.js - checksum: 1bf31eafd436c90398020e2a27b1655532e693f8a5534c499e753db58cbb7db80f1a00f0f14f2ec0bbd0d75c29fce621f97de456dbfbb603d5b5011d967cea6a + checksum: 10c0/a5b7777b0e4dc4004ba0d92bfea6afaeea46f665978bec5c236d9eb05bc716854400b1682fdd4c6abebeb26bc8dfbabec8170ff2aea86252e9bcc562219b6af1 languageName: node linkType: hard -"@lerna-lite/core@npm:3.0.0": - version: 3.0.0 - resolution: "@lerna-lite/core@npm:3.0.0" +"@lerna-lite/core@npm:3.10.0": + version: 3.10.0 + resolution: "@lerna-lite/core@npm:3.10.0" dependencies: - "@npmcli/run-script": "npm:^7.0.2" - chalk: "npm:^5.3.0" + "@inquirer/expand": "npm:^4.0.0" + "@inquirer/input": "npm:^4.0.0" + "@inquirer/select": "npm:^4.0.0" + "@lerna-lite/npmlog": "npm:3.10.0" + "@npmcli/run-script": "npm:^8.1.0" clone-deep: "npm:^4.0.1" config-chain: "npm:^1.1.13" - cosmiconfig: "npm:^8.3.6" - dedent: "npm:^1.5.1" + cosmiconfig: "npm:^9.0.0" + dedent: "npm:^1.5.3" execa: "npm:^8.0.1" - fs-extra: "npm:^11.1.1" + fs-extra: "npm:^11.2.0" glob-parent: "npm:^6.0.2" - globby: "npm:^14.0.0" - inquirer: "npm:^9.2.12" is-ci: "npm:^3.0.1" json5: "npm:^2.2.3" load-json-file: "npm:^7.0.1" - minimatch: "npm:^9.0.3" - npm-package-arg: "npm:^11.0.1" - npmlog: "npm:^7.0.1" - p-map: "npm:^6.0.0" - p-queue: "npm:^7.4.1" + minimatch: "npm:^9.0.5" + multimatch: "npm:^7.0.0" + npm-package-arg: "npm:^11.0.3" + p-map: "npm:^7.0.2" + p-queue: "npm:^8.0.1" resolve-from: "npm:^5.0.0" - semver: "npm:^7.5.4" + semver: "npm:^7.6.3" slash: "npm:^5.1.0" strong-log-transformer: "npm:^2.1.0" + tinyglobby: "npm:^0.2.9" + tinyrainbow: "npm:^1.2.0" write-file-atomic: "npm:^5.0.1" - write-json-file: "npm:^5.0.0" - write-pkg: "npm:^6.0.1" - checksum: 8ee52010197134c681c14a933f444c65c5f493564216b9dcec662b9b35d200aa29f07bc7056d55f9222fa2550867e5826d02289d571f1f59d0ac13f6a234a39e + write-json-file: "npm:^6.0.0" + write-package: "npm:^7.1.0" + checksum: 10c0/e01147e92d13c28fb91d90bdc5cda53f81bf389b30f4a23cf8af111a292ed62bec43f2d5256034cada7ee7f4119f8d2a189d7071bc6776410dd1a07b27c0f008 languageName: node linkType: hard -"@lerna-lite/diff@npm:^3.0.0": - version: 3.0.0 - resolution: "@lerna-lite/diff@npm:3.0.0" +"@lerna-lite/diff@npm:^3.9.3": + version: 3.10.0 + resolution: "@lerna-lite/diff@npm:3.10.0" dependencies: - "@lerna-lite/cli": "npm:3.0.0" - "@lerna-lite/core": "npm:3.0.0" - checksum: 73174084b5a2f6feb9a66341f656a011d2e337d92c899a9019177c7c365a5c5cb955ecd41bd6c9773cf8a618e59158e257ddc2d4f5fd16b7cd54e077f010540d + "@lerna-lite/cli": "npm:3.10.0" + "@lerna-lite/core": "npm:3.10.0" + "@lerna-lite/npmlog": "npm:^3.10.0" + checksum: 10c0/5f75e2db43c0e051d1f16f70d7a98c6d2dc82e9ee4566a463cc1005561f8b9ea209ce3b760d3237c4d61ab7202d158db2a6ff28213f403d25c488a660a9b3623 languageName: node linkType: hard -"@lerna-lite/exec@npm:^3.0.0": - version: 3.0.0 - resolution: "@lerna-lite/exec@npm:3.0.0" +"@lerna-lite/exec@npm:^3.9.3": + version: 3.10.0 + resolution: "@lerna-lite/exec@npm:3.10.0" dependencies: - "@lerna-lite/cli": "npm:3.0.0" - "@lerna-lite/core": "npm:3.0.0" - "@lerna-lite/filter-packages": "npm:3.0.0" - "@lerna-lite/profiler": "npm:3.0.0" - chalk: "npm:^5.3.0" - dotenv: "npm:^16.3.1" - npmlog: "npm:^7.0.1" - p-map: "npm:^6.0.0" - checksum: bdd23a0930d9a3311ecc33f4d165e81b69cb3c793b6fddc99ea512eca66d536bade4966dfe4fe7c85546c074496c9665da47f836a8c1a72093f85a16ec9e121a + "@lerna-lite/cli": "npm:3.10.0" + "@lerna-lite/core": "npm:3.10.0" + "@lerna-lite/profiler": "npm:3.10.0" + dotenv: "npm:^16.4.5" + p-map: "npm:^7.0.2" + tinyrainbow: "npm:^1.2.0" + checksum: 10c0/5e5d40345394975a1214003317b9564379994b83c59f86c190b8e9d027a5ddcc938d4d0994ef7b05a0bf42e9fea8e7fbbf64dc5f2e9c30b246338431c1a1ed22 languageName: node linkType: hard -"@lerna-lite/filter-packages@npm:3.0.0": - version: 3.0.0 - resolution: "@lerna-lite/filter-packages@npm:3.0.0" +"@lerna-lite/init@npm:3.10.0": + version: 3.10.0 + resolution: "@lerna-lite/init@npm:3.10.0" dependencies: - "@lerna-lite/core": "npm:3.0.0" - multimatch: "npm:6.0.0" - npmlog: "npm:^7.0.1" - checksum: fc271dee2a1cf6b64eefff52e7f3c97e7f52b1cd137d11225f7baba03194f6dc1681f53d9c7a9481388c5ab4248627d643cb8d389c5618b919233f25cdf617a2 + "@lerna-lite/core": "npm:3.10.0" + fs-extra: "npm:^11.2.0" + p-map: "npm:^7.0.2" + write-json-file: "npm:^6.0.0" + checksum: 10c0/0ea3344f375498d2945a8fa321edeb4a2a5d286a27d045f2f929ac3f517e366f1860c0f909ff986d047f387e6c3964df7ce93f9d5505e885e5fe3f3d61887880 languageName: node linkType: hard -"@lerna-lite/init@npm:3.0.0": - version: 3.0.0 - resolution: "@lerna-lite/init@npm:3.0.0" +"@lerna-lite/list@npm:3.10.0": + version: 3.10.0 + resolution: "@lerna-lite/list@npm:3.10.0" dependencies: - "@lerna-lite/core": "npm:3.0.0" - fs-extra: "npm:^11.1.1" - p-map: "npm:^6.0.0" - write-json-file: "npm:^5.0.0" - checksum: 918b6acb0209f5990c6f59f24de865b4f4d246fdca100595f1d7d91adbd719208e2796c07d8c6672fc003e1f388add072a958039e95ab866ad6b5284a141dc8c + "@lerna-lite/cli": "npm:3.10.0" + "@lerna-lite/core": "npm:3.10.0" + "@lerna-lite/listable": "npm:3.10.0" + checksum: 10c0/08c971f627872e65b32d03ecc9e144a7076af2651a5e3a4f42c0fc63b076450878cf395f0d3fb0d088dc5fd039a529361955cba450e77475a777ce5b790891f0 languageName: node linkType: hard -"@lerna-lite/list@npm:3.0.0": - version: 3.0.0 - resolution: "@lerna-lite/list@npm:3.0.0" +"@lerna-lite/listable@npm:3.10.0": + version: 3.10.0 + resolution: "@lerna-lite/listable@npm:3.10.0" dependencies: - "@lerna-lite/cli": "npm:3.0.0" - "@lerna-lite/core": "npm:3.0.0" - "@lerna-lite/filter-packages": "npm:3.0.0" - "@lerna-lite/listable": "npm:3.0.0" - checksum: ac6135762c3c603b37e0569cede3601fb69595472cf57d2251507eb8f7879e622644a6640f2d9ab6ccedb37d7e497c320ac798c055742480366f572b2c8a3958 + "@lerna-lite/core": "npm:3.10.0" + columnify: "npm:^1.6.0" + tinyrainbow: "npm:^1.2.0" + checksum: 10c0/99dd6a03cb6f4d7d086aad7c2bea16fe85d5626afb86899623f0bde90c1cfb893c6ed922e801f870f9573ff962a94652d84c2914c9d2b9d7674241e625eeedfc languageName: node linkType: hard -"@lerna-lite/listable@npm:3.0.0": - version: 3.0.0 - resolution: "@lerna-lite/listable@npm:3.0.0" +"@lerna-lite/npmlog@npm:3.10.0, @lerna-lite/npmlog@npm:^3.10.0": + version: 3.10.0 + resolution: "@lerna-lite/npmlog@npm:3.10.0" dependencies: - "@lerna-lite/core": "npm:3.0.0" - chalk: "npm:^5.3.0" - columnify: "npm:^1.6.0" - checksum: d2e4dd61fe5c41b18056226409b9ff08e731011037f233ec0d58c9a8801499bef57cc62724955448a80d37b5748a73d3c82cd270abfa99f911baa291e03d348e + aproba: "npm:^2.0.0" + color-support: "npm:^1.1.3" + console-control-strings: "npm:^1.1.0" + has-unicode: "npm:^2.0.1" + set-blocking: "npm:^2.0.0" + signal-exit: "npm:^4.1.0" + string-width: "npm:^7.2.0" + strip-ansi: "npm:^7.1.0" + wide-align: "npm:^1.1.5" + checksum: 10c0/0fdaaad3fea9d01e39f9b6fef4d89732688c355fde41f54e1dd5c92a4c08f51085cee9a90cc017c713d8fbb3f4fdf242dcc1daf0c24351fcb7cd2e9d8492ee7f languageName: node linkType: hard -"@lerna-lite/profiler@npm:3.0.0": - version: 3.0.0 - resolution: "@lerna-lite/profiler@npm:3.0.0" +"@lerna-lite/profiler@npm:3.10.0": + version: 3.10.0 + resolution: "@lerna-lite/profiler@npm:3.10.0" dependencies: - "@lerna-lite/core": "npm:3.0.0" - fs-extra: "npm:^11.1.1" - npmlog: "npm:^7.0.1" + "@lerna-lite/core": "npm:3.10.0" + "@lerna-lite/npmlog": "npm:3.10.0" + fs-extra: "npm:^11.2.0" upath: "npm:^2.0.1" - checksum: 5e3bcf433039c8f2e56d01470e7fdb1162e45d376d579fcf517f7a601637947d382d3b24abf8d0c867c5456e9ac5f07b662538baacba7701799566f5db4ca8b5 + checksum: 10c0/778207347ad999c9199e980b36575266e23161a01b8f958d8bd24d03f833cfce772e174e91186b5aabe639101189f3381f337473d5743c3e9adc199d0bc24b79 languageName: node linkType: hard -"@lerna-lite/publish@npm:^3.0.0": - version: 3.0.0 - resolution: "@lerna-lite/publish@npm:3.0.0" - dependencies: - "@lerna-lite/cli": "npm:3.0.0" - "@lerna-lite/core": "npm:3.0.0" - "@lerna-lite/version": "npm:3.0.0" - "@npmcli/arborist": "npm:^7.2.1" - byte-size: "npm:^8.1.1" - chalk: "npm:^5.3.0" +"@lerna-lite/publish@npm:^3.9.3": + version: 3.10.0 + resolution: "@lerna-lite/publish@npm:3.10.0" + dependencies: + "@lerna-lite/cli": "npm:3.10.0" + "@lerna-lite/core": "npm:3.10.0" + "@lerna-lite/npmlog": "npm:3.10.0" + "@lerna-lite/version": "npm:3.10.0" + "@npmcli/arborist": "npm:^7.5.4" + "@npmcli/package-json": "npm:^5.2.1" + byte-size: "npm:^9.0.0" columnify: "npm:^1.6.0" - fs-extra: "npm:^11.1.1" - glob: "npm:^10.3.10" + fs-extra: "npm:^11.2.0" has-unicode: "npm:^2.0.1" - libnpmaccess: "npm:^8.0.1" - libnpmpublish: "npm:^9.0.2" + libnpmaccess: "npm:^8.0.6" + libnpmpublish: "npm:^9.0.9" normalize-path: "npm:^3.0.0" - npm-package-arg: "npm:^11.0.1" - npm-packlist: "npm:^8.0.0" - npm-registry-fetch: "npm:^16.1.0" - npmlog: "npm:^7.0.1" - p-map: "npm:^6.0.0" + npm-package-arg: "npm:^11.0.3" + npm-packlist: "npm:^8.0.2" + npm-registry-fetch: "npm:^17.1.0" + p-map: "npm:^7.0.2" p-pipe: "npm:^4.0.0" - pacote: "npm:^17.0.4" - pify: "npm:^6.1.0" - read-package-json: "npm:^7.0.0" - semver: "npm:^7.5.4" - ssri: "npm:^10.0.5" - tar: "npm:^6.2.0" + pacote: "npm:^18.0.6" + semver: "npm:^7.6.3" + ssri: "npm:^11.0.0" + tar: "npm:^6.2.1" temp-dir: "npm:^3.0.0" - checksum: 0517f77a4249fb3f327e1436003cc7465fe6cefc6bd2f9da6888f67b65c5f54866905d7c2b41598a2f49ba33681cf2ef1e6683d2f2ee4df053a721ad70f6438f + tinyglobby: "npm:^0.2.9" + tinyrainbow: "npm:^1.2.0" + checksum: 10c0/d474d0cb360385b208648e20cc2eab0c1c51d0db14fffb33b97f7393ccf242428bef2e26db389376d03c5313b5548c195508cf0b6d52cd33fc836bad6ebb8b8e languageName: node linkType: hard -"@lerna-lite/run@npm:^3.0.0": - version: 3.0.0 - resolution: "@lerna-lite/run@npm:3.0.0" +"@lerna-lite/run@npm:^3.9.3": + version: 3.10.0 + resolution: "@lerna-lite/run@npm:3.10.0" dependencies: - "@lerna-lite/cli": "npm:3.0.0" - "@lerna-lite/core": "npm:3.0.0" - "@lerna-lite/filter-packages": "npm:3.0.0" - "@lerna-lite/profiler": "npm:3.0.0" - chalk: "npm:^5.3.0" - fs-extra: "npm:^11.1.1" - npmlog: "npm:^7.0.1" - p-map: "npm:^6.0.0" - checksum: 99f5a5307ad3785a36ad265cfb0f01717ea349daead06c3b52b560dadf7a8e234d97fef20f586879398bd296760307de37c1fd3eca8c368f3c2cc6164a4f0507 + "@lerna-lite/cli": "npm:3.10.0" + "@lerna-lite/core": "npm:3.10.0" + "@lerna-lite/npmlog": "npm:3.10.0" + "@lerna-lite/profiler": "npm:3.10.0" + fs-extra: "npm:^11.2.0" + p-map: "npm:^7.0.2" + tinyrainbow: "npm:^1.2.0" + checksum: 10c0/fe5e10098cc54ab33c4bca9016f8aad39a0f3963a9e58fa9efa7170e0a9e23c5c6dcd845da601b9c7118b33b6620efd8c68672568b838e0e64175476a95e0a77 languageName: node linkType: hard -"@lerna-lite/version@npm:3.0.0, @lerna-lite/version@npm:^3.0.0": - version: 3.0.0 - resolution: "@lerna-lite/version@npm:3.0.0" +"@lerna-lite/version@npm:3.10.0, @lerna-lite/version@npm:^3.9.3": + version: 3.10.0 + resolution: "@lerna-lite/version@npm:3.10.0" dependencies: - "@lerna-lite/cli": "npm:3.0.0" - "@lerna-lite/core": "npm:3.0.0" + "@lerna-lite/cli": "npm:3.10.0" + "@lerna-lite/core": "npm:3.10.0" + "@lerna-lite/npmlog": "npm:3.10.0" "@octokit/plugin-enterprise-rest": "npm:^6.0.1" - "@octokit/rest": "npm:^20.0.2" - chalk: "npm:^5.3.0" + "@octokit/rest": "npm:^21.0.2" conventional-changelog-angular: "npm:^7.0.0" - conventional-changelog-core: "npm:^5.0.2" - conventional-changelog-writer: "npm:^6.0.1" + conventional-changelog-core: "npm:^7.0.0" + conventional-changelog-writer: "npm:^7.0.1" conventional-commits-parser: "npm:^5.0.0" - conventional-recommended-bump: "npm:^7.0.1" - dedent: "npm:^1.5.1" - fs-extra: "npm:^11.1.1" - get-stream: "npm:^8.0.1" - git-url-parse: "npm:^13.1.1" + conventional-recommended-bump: "npm:^9.0.0" + dedent: "npm:^1.5.3" + fs-extra: "npm:^11.2.0" + get-stream: "npm:^9.0.1" + git-url-parse: "npm:^15.0.0" graceful-fs: "npm:^4.2.11" - is-stream: "npm:^3.0.0" + is-stream: "npm:^4.0.1" load-json-file: "npm:^7.0.1" - make-dir: "npm:^4.0.0" - minimatch: "npm:^9.0.3" + make-dir: "npm:^5.0.0" + minimatch: "npm:^9.0.5" new-github-release-url: "npm:^2.0.0" node-fetch: "npm:^3.3.2" - npm-package-arg: "npm:^11.0.1" - npmlog: "npm:^7.0.1" - p-map: "npm:^6.0.0" + npm-package-arg: "npm:^11.0.3" + p-limit: "npm:^6.1.0" + p-map: "npm:^7.0.2" p-pipe: "npm:^4.0.0" p-reduce: "npm:^3.0.0" pify: "npm:^6.1.0" - semver: "npm:^7.5.4" + semver: "npm:^7.6.3" slash: "npm:^5.1.0" temp-dir: "npm:^3.0.0" - uuid: "npm:^9.0.1" - write-json-file: "npm:^5.0.0" - checksum: ee7baa212de2f19dea2046787d1d57fdeabffc20c1a8247cffe532be1b0e4a9e75415f76d987bcbf0c69b275df045acfd92bf653175662f12acc5b03548de6d7 - languageName: node - linkType: hard - -"@ljharb/through@npm:^2.3.11": - version: 2.3.11 - resolution: "@ljharb/through@npm:2.3.11" - dependencies: - call-bind: "npm:^1.0.2" - checksum: 19cdaa9e4ba16aea9bb9dafbdd1c111febc0e5ce07b0959b049d7fda8a7247726603bb06b391f2d57227cf4ad081636d6f9e08dc138813225d54a6c81a04b679 + tinyrainbow: "npm:^1.2.0" + uuid: "npm:^10.0.0" + write-json-file: "npm:^6.0.0" + checksum: 10c0/4e4c8c8502bde87082c5f33027c6f657ff16f8fca3cf5c88de01ae4e2233cf383d9ddd595081aef99ca3b464be18f2452b291bd45be9a66f78218a6f974e9c92 languageName: node linkType: hard @@ -526,14 +1779,14 @@ __metadata: dependencies: "@nodelib/fs.stat": "npm:2.0.5" run-parallel: "npm:^1.1.9" - checksum: 732c3b6d1b1e967440e65f284bd06e5821fedf10a1bea9ed2bb75956ea1f30e08c44d3def9d6a230666574edbaf136f8cfd319c14fd1f87c66e6a44449afb2eb + checksum: 10c0/732c3b6d1b1e967440e65f284bd06e5821fedf10a1bea9ed2bb75956ea1f30e08c44d3def9d6a230666574edbaf136f8cfd319c14fd1f87c66e6a44449afb2eb languageName: node linkType: hard "@nodelib/fs.stat@npm:2.0.5, @nodelib/fs.stat@npm:^2.0.2": version: 2.0.5 resolution: "@nodelib/fs.stat@npm:2.0.5" - checksum: 88dafe5e3e29a388b07264680dc996c17f4bda48d163a9d4f5c1112979f0ce8ec72aa7116122c350b4e7976bc5566dc3ddb579be1ceaacc727872eb4ed93926d + checksum: 10c0/88dafe5e3e29a388b07264680dc996c17f4bda48d163a9d4f5c1112979f0ce8ec72aa7116122c350b4e7976bc5566dc3ddb579be1ceaacc727872eb4ed93926d languageName: node linkType: hard @@ -543,7 +1796,14 @@ __metadata: dependencies: "@nodelib/fs.scandir": "npm:2.1.5" fastq: "npm:^1.6.0" - checksum: db9de047c3bb9b51f9335a7bb46f4fcfb6829fb628318c12115fbaf7d369bfce71c15b103d1fc3b464812d936220ee9bc1c8f762d032c9f6be9acc99249095b1 + checksum: 10c0/db9de047c3bb9b51f9335a7bb46f4fcfb6829fb628318c12115fbaf7d369bfce71c15b103d1fc3b464812d936220ee9bc1c8f762d032c9f6be9acc99249095b1 + languageName: node + linkType: hard + +"@nolyfill/is-core-module@npm:1.0.39": + version: 1.0.39 + resolution: "@nolyfill/is-core-module@npm:1.0.39" + checksum: 10c0/34ab85fdc2e0250879518841f74a30c276bca4f6c3e13526d2d1fe515e1adf6d46c25fcd5989d22ea056d76f7c39210945180b4859fc83b050e2da411aa86289 languageName: node linkType: hard @@ -556,50 +1816,52 @@ __metadata: https-proxy-agent: "npm:^7.0.1" lru-cache: "npm:^10.0.1" socks-proxy-agent: "npm:^8.0.1" - checksum: 7b89590598476dda88e79c473766b67c682aae6e0ab0213491daa6083dcc0c171f86b3868f5506f22c09aa5ea69ad7dfb78f4bf39a8dca375d89a42f408645b3 + checksum: 10c0/7b89590598476dda88e79c473766b67c682aae6e0ab0213491daa6083dcc0c171f86b3868f5506f22c09aa5ea69ad7dfb78f4bf39a8dca375d89a42f408645b3 languageName: node linkType: hard -"@npmcli/arborist@npm:^7.2.1": - version: 7.2.1 - resolution: "@npmcli/arborist@npm:7.2.1" +"@npmcli/arborist@npm:^7.5.4": + version: 7.5.4 + resolution: "@npmcli/arborist@npm:7.5.4" dependencies: "@isaacs/string-locale-compare": "npm:^1.1.0" - "@npmcli/fs": "npm:^3.1.0" - "@npmcli/installed-package-contents": "npm:^2.0.2" + "@npmcli/fs": "npm:^3.1.1" + "@npmcli/installed-package-contents": "npm:^2.1.0" "@npmcli/map-workspaces": "npm:^3.0.2" - "@npmcli/metavuln-calculator": "npm:^7.0.0" + "@npmcli/metavuln-calculator": "npm:^7.1.1" "@npmcli/name-from-folder": "npm:^2.0.0" "@npmcli/node-gyp": "npm:^3.0.0" - "@npmcli/package-json": "npm:^5.0.0" - "@npmcli/query": "npm:^3.0.1" - "@npmcli/run-script": "npm:^7.0.2" - bin-links: "npm:^4.0.1" - cacache: "npm:^18.0.0" + "@npmcli/package-json": "npm:^5.1.0" + "@npmcli/query": "npm:^3.1.0" + "@npmcli/redact": "npm:^2.0.0" + "@npmcli/run-script": "npm:^8.1.0" + bin-links: "npm:^4.0.4" + cacache: "npm:^18.0.3" common-ancestor-path: "npm:^1.0.1" - hosted-git-info: "npm:^7.0.1" - json-parse-even-better-errors: "npm:^3.0.0" + hosted-git-info: "npm:^7.0.2" + json-parse-even-better-errors: "npm:^3.0.2" json-stringify-nice: "npm:^1.1.4" - minimatch: "npm:^9.0.0" - nopt: "npm:^7.0.0" + lru-cache: "npm:^10.2.2" + minimatch: "npm:^9.0.4" + nopt: "npm:^7.2.1" npm-install-checks: "npm:^6.2.0" - npm-package-arg: "npm:^11.0.1" - npm-pick-manifest: "npm:^9.0.0" - npm-registry-fetch: "npm:^16.0.0" - npmlog: "npm:^7.0.1" - pacote: "npm:^17.0.4" + npm-package-arg: "npm:^11.0.2" + npm-pick-manifest: "npm:^9.0.1" + npm-registry-fetch: "npm:^17.0.1" + pacote: "npm:^18.0.6" parse-conflict-json: "npm:^3.0.0" - proc-log: "npm:^3.0.0" + proc-log: "npm:^4.2.0" + proggy: "npm:^2.0.0" promise-all-reject-late: "npm:^1.0.0" - promise-call-limit: "npm:^1.0.2" + promise-call-limit: "npm:^3.0.1" read-package-json-fast: "npm:^3.0.2" semver: "npm:^7.3.7" - ssri: "npm:^10.0.5" + ssri: "npm:^10.0.6" treeverse: "npm:^3.0.0" walk-up-path: "npm:^3.0.1" bin: arborist: bin/index.js - checksum: 9e7201cb54ea390f61855ee437f021617bdeb1176e937948796e0b986fccf4f735f9f7a6bcf196ca02111766cc17bc5364b07e4fcde4dbb5db11674380334383 + checksum: 10c0/22417b804872e68b6486187bb769eabef7245c5d3fa055d5473f84a7088580543235f34af3047a0e9b357e70fccd768e8ef5c6c8664ed6909f659d07607ad955 languageName: node linkType: hard @@ -608,7 +1870,16 @@ __metadata: resolution: "@npmcli/fs@npm:3.1.0" dependencies: semver: "npm:^7.3.5" - checksum: 162b4a0b8705cd6f5c2470b851d1dc6cd228c86d2170e1769d738c1fbb69a87160901411c3c035331e9e99db72f1f1099a8b734bf1637cc32b9a5be1660e4e1e + checksum: 10c0/162b4a0b8705cd6f5c2470b851d1dc6cd228c86d2170e1769d738c1fbb69a87160901411c3c035331e9e99db72f1f1099a8b734bf1637cc32b9a5be1660e4e1e + languageName: node + linkType: hard + +"@npmcli/fs@npm:^3.1.1": + version: 3.1.1 + resolution: "@npmcli/fs@npm:3.1.1" + dependencies: + semver: "npm:^7.3.5" + checksum: 10c0/c37a5b4842bfdece3d14dfdb054f73fe15ed2d3da61b34ff76629fb5b1731647c49166fd2a8bf8b56fcfa51200382385ea8909a3cbecdad612310c114d3f6c99 languageName: node linkType: hard @@ -624,11 +1895,11 @@ __metadata: promise-retry: "npm:^2.0.1" semver: "npm:^7.3.5" which: "npm:^4.0.0" - checksum: dab301d06f037cf92b66547c4a702901c4efd42be470ab72457cc2f9617f47aca0bb59a44566cf65c1170d6489bd58be96b87269f83782b63323272059a9e4e2 + checksum: 10c0/dab301d06f037cf92b66547c4a702901c4efd42be470ab72457cc2f9617f47aca0bb59a44566cf65c1170d6489bd58be96b87269f83782b63323272059a9e4e2 languageName: node linkType: hard -"@npmcli/installed-package-contents@npm:^2.0.1, @npmcli/installed-package-contents@npm:^2.0.2": +"@npmcli/installed-package-contents@npm:^2.0.1": version: 2.0.2 resolution: "@npmcli/installed-package-contents@npm:2.0.2" dependencies: @@ -636,7 +1907,19 @@ __metadata: npm-normalize-package-bin: "npm:^3.0.0" bin: installed-package-contents: lib/index.js - checksum: 03efadb365997e3b54d1d1ea30ef3555729a68939ab2b7b7800a4a2750afb53da222f52be36bd7c44950434c3e26cbe7be28dac093efdf7b1bbe9e025ab62a07 + checksum: 10c0/03efadb365997e3b54d1d1ea30ef3555729a68939ab2b7b7800a4a2750afb53da222f52be36bd7c44950434c3e26cbe7be28dac093efdf7b1bbe9e025ab62a07 + languageName: node + linkType: hard + +"@npmcli/installed-package-contents@npm:^2.1.0": + version: 2.1.0 + resolution: "@npmcli/installed-package-contents@npm:2.1.0" + dependencies: + npm-bundled: "npm:^3.0.0" + npm-normalize-package-bin: "npm:^3.0.0" + bin: + installed-package-contents: bin/index.js + checksum: 10c0/f5ecba0d45fc762f3e0d5def29fbfabd5d55e8147b01ae0a101769245c2e0038bc82a167836513a98aaed0a15c3d81fcdb232056bb8a962972a432533e518fce languageName: node linkType: hard @@ -648,33 +1931,34 @@ __metadata: glob: "npm:^10.2.2" minimatch: "npm:^9.0.0" read-package-json-fast: "npm:^3.0.0" - checksum: caeb5f911d9b7ae0be01436442e6ec6b25aef750fe923de7a653eb62999d35b9f8be67c3f856790350ac86d9cea4a52532859b621eea81738f576302ecdd7475 + checksum: 10c0/caeb5f911d9b7ae0be01436442e6ec6b25aef750fe923de7a653eb62999d35b9f8be67c3f856790350ac86d9cea4a52532859b621eea81738f576302ecdd7475 languageName: node linkType: hard -"@npmcli/metavuln-calculator@npm:^7.0.0": - version: 7.0.0 - resolution: "@npmcli/metavuln-calculator@npm:7.0.0" +"@npmcli/metavuln-calculator@npm:^7.1.1": + version: 7.1.1 + resolution: "@npmcli/metavuln-calculator@npm:7.1.1" dependencies: cacache: "npm:^18.0.0" json-parse-even-better-errors: "npm:^3.0.0" - pacote: "npm:^17.0.0" + pacote: "npm:^18.0.0" + proc-log: "npm:^4.1.0" semver: "npm:^7.3.5" - checksum: ae9084c333a678f3c1f2e30fefbd4cae25b5b5d0b1c27c3c3f92919cf1da85da24c2b3f3112bd53a184f711b2c165c4d709cd6283f5662cefb80903265ca7c81 + checksum: 10c0/27402cab124bb1fca56af7549f730c38c0ab40de60cbef6264a4193c26c2d28cefb2adac29ed27f368031795704f9f8fe0c547c4c8cb0c0fa94d72330d56ac80 languageName: node linkType: hard "@npmcli/name-from-folder@npm:^2.0.0": version: 2.0.0 resolution: "@npmcli/name-from-folder@npm:2.0.0" - checksum: 1aa551771d98ab366d4cb06b33efd3bb62b609942f6d9c3bb667c10e5bb39a223d3e330022bc980a44402133e702ae67603862099ac8254dad11f90e77409827 + checksum: 10c0/1aa551771d98ab366d4cb06b33efd3bb62b609942f6d9c3bb667c10e5bb39a223d3e330022bc980a44402133e702ae67603862099ac8254dad11f90e77409827 languageName: node linkType: hard "@npmcli/node-gyp@npm:^3.0.0": version: 3.0.0 resolution: "@npmcli/node-gyp@npm:3.0.0" - checksum: 5d0ac17dacf2dd6e45312af2c1ae2749bb0730fcc82da101c37d3a4fd963a5e1c5d39781e5e1e5e5828df4ab1ad4e3fdbab1d69b7cd0abebad9983efb87df985 + checksum: 10c0/5d0ac17dacf2dd6e45312af2c1ae2749bb0730fcc82da101c37d3a4fd963a5e1c5d39781e5e1e5e5828df4ab1ad4e3fdbab1d69b7cd0abebad9983efb87df985 languageName: node linkType: hard @@ -689,7 +1973,22 @@ __metadata: normalize-package-data: "npm:^6.0.0" proc-log: "npm:^3.0.0" semver: "npm:^7.5.3" - checksum: 489b0e42d05c1c3c43ba94b6435c062ae28bee3e8ebf3b8e0977fe4ab8eb37fe6ab019203b38f39b54a592d85df2a602c0d700fc23adc630f4e7bfb0207a8a9e + checksum: 10c0/489b0e42d05c1c3c43ba94b6435c062ae28bee3e8ebf3b8e0977fe4ab8eb37fe6ab019203b38f39b54a592d85df2a602c0d700fc23adc630f4e7bfb0207a8a9e + languageName: node + linkType: hard + +"@npmcli/package-json@npm:^5.1.0, @npmcli/package-json@npm:^5.2.1": + version: 5.2.1 + resolution: "@npmcli/package-json@npm:5.2.1" + dependencies: + "@npmcli/git": "npm:^5.0.0" + glob: "npm:^10.2.2" + hosted-git-info: "npm:^7.0.0" + json-parse-even-better-errors: "npm:^3.0.0" + normalize-package-data: "npm:^6.0.0" + proc-log: "npm:^4.0.0" + semver: "npm:^7.5.3" + checksum: 10c0/b852e31e3121a0afe5fa20bbf4faa701a59dbc9d9dd7141f7fd57b8e919ce22c1285dcdfea490851fe410fa0f7bc9c397cafba0d268aaa53420a12d7c561dde1 languageName: node linkType: hard @@ -698,528 +1997,380 @@ __metadata: resolution: "@npmcli/promise-spawn@npm:7.0.0" dependencies: which: "npm:^4.0.0" - checksum: a8d310d4f0f033ea8be19e956db35dd11d1f80774e85ba97eafb3b41f7f92813ef3ae29215a14028dacf6b4d3b2357ae5935a0899c33546dd24bb629a6d5c1e8 + checksum: 10c0/a8d310d4f0f033ea8be19e956db35dd11d1f80774e85ba97eafb3b41f7f92813ef3ae29215a14028dacf6b4d3b2357ae5935a0899c33546dd24bb629a6d5c1e8 languageName: node linkType: hard -"@npmcli/query@npm:^3.0.1": - version: 3.0.1 - resolution: "@npmcli/query@npm:3.0.1" +"@npmcli/query@npm:^3.1.0": + version: 3.1.0 + resolution: "@npmcli/query@npm:3.1.0" dependencies: postcss-selector-parser: "npm:^6.0.10" - checksum: 497f03887121df13dbbc7a008772708746ecb9d8b9dbb1d8a8cdc5eb03ff6dbce0e78cbc48102e7cd3d2f3abc2faf22fd5348bb3c33efd13e2077faf8d71efde + checksum: 10c0/9a099677dd188a2d9eb7a49e32c69d315b09faea59e851b7c2013b5bda915a38434efa7295565c40a1098916c06ebfa1840f68d831180e36842f48c24f4c5186 languageName: node linkType: hard -"@npmcli/run-script@npm:^7.0.0, @npmcli/run-script@npm:^7.0.2": - version: 7.0.2 - resolution: "@npmcli/run-script@npm:7.0.2" +"@npmcli/redact@npm:^2.0.0": + version: 2.0.1 + resolution: "@npmcli/redact@npm:2.0.1" + checksum: 10c0/5f346f7ef224b44c90009939f93c446a865a3d9e5a7ebe0246cdb0ebd03219de3962ee6c6e9197298d8c6127ea33535e8c44814276e4941394dc1cdf1f30f6bc + languageName: node + linkType: hard + +"@npmcli/run-script@npm:^8.0.0, @npmcli/run-script@npm:^8.1.0": + version: 8.1.0 + resolution: "@npmcli/run-script@npm:8.1.0" dependencies: "@npmcli/node-gyp": "npm:^3.0.0" + "@npmcli/package-json": "npm:^5.0.0" "@npmcli/promise-spawn": "npm:^7.0.0" node-gyp: "npm:^10.0.0" - read-package-json-fast: "npm:^3.0.0" + proc-log: "npm:^4.0.0" which: "npm:^4.0.0" - checksum: 5b2b92d9dcedf9f0263861288f9ab9dbb54474bb326578e5fed635994ccdc31d56084c2768475652761cb88f88273bc04db79d2d5a3a35b91389c6fb9d272880 - languageName: node - linkType: hard - -"@octokit/auth-token@npm:^4.0.0": - version: 4.0.0 - resolution: "@octokit/auth-token@npm:4.0.0" - checksum: 57acaa6c394c5abab2f74e8e1dcf4e7a16b236f713c77a54b8f08e2d14114de94b37946259e33ec2aab0566b26f724c2b71d2602352b59e541a9854897618f3c - languageName: node - linkType: hard - -"@octokit/core@npm:^5.0.0": - version: 5.0.2 - resolution: "@octokit/core@npm:5.0.2" - dependencies: - "@octokit/auth-token": "npm:^4.0.0" - "@octokit/graphql": "npm:^7.0.0" - "@octokit/request": "npm:^8.0.2" - "@octokit/request-error": "npm:^5.0.0" - "@octokit/types": "npm:^12.0.0" - before-after-hook: "npm:^2.2.0" - universal-user-agent: "npm:^6.0.0" - checksum: f3b3cb72f8f374e763e60922eacad56cb08fc05ee0be26f2a7b61937f89a377a8fd1b54f3d621a2b9627a9402c595d4b7e24900602e401b8a8edaffd995fa98f - languageName: node - linkType: hard - -"@octokit/endpoint@npm:^9.0.0": - version: 9.0.3 - resolution: "@octokit/endpoint@npm:9.0.3" - dependencies: - "@octokit/types": "npm:^12.0.0" - universal-user-agent: "npm:^6.0.0" - checksum: 82dceb0ab8018f82f230e76ecc7ce188e1bd6267b1dead8dcbf0be007063ce6020786a648ed02f97f874121777cf84ed10e0983a8b635baed0836e78f1c31c28 - languageName: node - linkType: hard - -"@octokit/graphql@npm:^7.0.0": - version: 7.0.2 - resolution: "@octokit/graphql@npm:7.0.2" - dependencies: - "@octokit/request": "npm:^8.0.1" - "@octokit/types": "npm:^12.0.0" - universal-user-agent: "npm:^6.0.0" - checksum: 96e5d6b970be60877134cc147b9249534f3a79d691b9932d731d453426fa1e1a0a36111a1b0a6ab43d61309c630903a65db5559b5c800300dc26cf588f50fea8 - languageName: node - linkType: hard - -"@octokit/openapi-types@npm:^19.0.2": - version: 19.0.2 - resolution: "@octokit/openapi-types@npm:19.0.2" - checksum: e003a3b7471edfa970911252c19ce9331d935699cc1e91a1e151316b585c3b2f5251bc5ba137b7e14aed8a9b3890fdf67edc5cc5af4805bf4b44f5869544e678 - languageName: node - linkType: hard - -"@octokit/plugin-enterprise-rest@npm:^6.0.1": - version: 6.0.1 - resolution: "@octokit/plugin-enterprise-rest@npm:6.0.1" - checksum: 26bd0a30582954efcd29b41e16698db79e9d20e3f88c4069b43b183223cee69862621f18b6a7a1c9257b1cd07c24477e403b75c74688660ecf31d467b9d8fd9e - languageName: node - linkType: hard - -"@octokit/plugin-paginate-rest@npm:^9.0.0": - version: 9.1.4 - resolution: "@octokit/plugin-paginate-rest@npm:9.1.4" - dependencies: - "@octokit/types": "npm:^12.3.0" - peerDependencies: - "@octokit/core": ">=5" - checksum: a36c90444921254f8987319e8eb7c23756914acb4511532d250db24810233bb33f11f1eeba1c53ade7b62515f5741872037051f67cf2931d26a20d01ee277caa - languageName: node - linkType: hard - -"@octokit/plugin-request-log@npm:^4.0.0": - version: 4.0.0 - resolution: "@octokit/plugin-request-log@npm:4.0.0" - peerDependencies: - "@octokit/core": ">=5" - checksum: ca6db112f288326d2f11de5170e7d6429ba54f04a22dc1e5d06c8d626f72bd2effeb0218a8f73bc9e23657b5a89194cd297964ace54693d2dfdfba3828920b45 - languageName: node - linkType: hard - -"@octokit/plugin-rest-endpoint-methods@npm:^10.0.0": - version: 10.1.5 - resolution: "@octokit/plugin-rest-endpoint-methods@npm:10.1.5" - dependencies: - "@octokit/types": "npm:^12.3.0" - peerDependencies: - "@octokit/core": ">=5" - checksum: 1a2f01c6a3d9374f91ac322a2439175d494e86ff198266fd49528d40d9ec0cbd56c01b938d889bda7cd44b0384509d21bf9997e936f96745e33c61ac59f1f097 - languageName: node - linkType: hard - -"@octokit/request-error@npm:^5.0.0": - version: 5.0.1 - resolution: "@octokit/request-error@npm:5.0.1" - dependencies: - "@octokit/types": "npm:^12.0.0" - deprecation: "npm:^2.0.0" - once: "npm:^1.4.0" - checksum: e72a4627120de345b54876a1f007664095e5be9d624fce2e14fccf7668cd8f5e4929d444d8fc085d48e1fb5cd548538453974aab129a669101110d6679dce6c6 - languageName: node - linkType: hard - -"@octokit/request@npm:^8.0.1, @octokit/request@npm:^8.0.2": - version: 8.1.6 - resolution: "@octokit/request@npm:8.1.6" - dependencies: - "@octokit/endpoint": "npm:^9.0.0" - "@octokit/request-error": "npm:^5.0.0" - "@octokit/types": "npm:^12.0.0" - universal-user-agent: "npm:^6.0.0" - checksum: ef84418e0b1f28335c105bca2b1518b04797791761024d26f80f60a528cdcf468baf9897fd34f535c42af0643a598884f882bc832e68edbfe1ea530c2df563a4 - languageName: node - linkType: hard - -"@octokit/rest@npm:^20.0.2": - version: 20.0.2 - resolution: "@octokit/rest@npm:20.0.2" - dependencies: - "@octokit/core": "npm:^5.0.0" - "@octokit/plugin-paginate-rest": "npm:^9.0.0" - "@octokit/plugin-request-log": "npm:^4.0.0" - "@octokit/plugin-rest-endpoint-methods": "npm:^10.0.0" - checksum: e9bfc617d0e0bfb0ba9dea3d1e0a19167c5a255beac622dd34280e1754dfab7688323b3251f8e8c85494b39548ecc52385e8b84e21ce0627f58176562a6e2fae - languageName: node - linkType: hard - -"@octokit/types@npm:^12.0.0, @octokit/types@npm:^12.3.0": - version: 12.3.0 - resolution: "@octokit/types@npm:12.3.0" - dependencies: - "@octokit/openapi-types": "npm:^19.0.2" - checksum: 083f33d8df492ef4029b94b1b5ac5ac422bc5787fe6c086d4738007f207e2b8fa523a1397ecc902d808ba235ec7bf7e38f4659cae177d40002e43eadf3b6f3d8 - languageName: node - linkType: hard - -"@pkgjs/parseargs@npm:^0.11.0": - version: 0.11.0 - resolution: "@pkgjs/parseargs@npm:0.11.0" - checksum: 5bd7576bb1b38a47a7fc7b51ac9f38748e772beebc56200450c4a817d712232b8f1d3ef70532c80840243c657d491cf6a6be1e3a214cff907645819fdc34aadd - languageName: node - linkType: hard - -"@rollup/plugin-node-resolve@npm:^15.0.1": - version: 15.2.3 - resolution: "@rollup/plugin-node-resolve@npm:15.2.3" - dependencies: - "@rollup/pluginutils": "npm:^5.0.1" - "@types/resolve": "npm:1.20.2" - deepmerge: "npm:^4.2.2" - is-builtin-module: "npm:^3.2.1" - is-module: "npm:^1.0.0" - resolve: "npm:^1.22.1" - peerDependencies: - rollup: ^2.78.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - checksum: 598c15615086f26e28c4b3dbf966682af7fb0e5bc277cc4e57f559668a3be675a63ab261eb34729ce9569c3a51342c48863e50b5efe02e0fc1571828f0113f9d - languageName: node - linkType: hard - -"@rollup/pluginutils@npm:^5.0.1": - version: 5.0.5 - resolution: "@rollup/pluginutils@npm:5.0.5" - dependencies: - "@types/estree": "npm:^1.0.0" - estree-walker: "npm:^2.0.2" - picomatch: "npm:^2.3.1" - peerDependencies: - rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 - peerDependenciesMeta: - rollup: - optional: true - checksum: 18a1f5a9afa993a76663cc2102169cd546786b39a3e92bdc8a2a0b408b509d070a02b20970a30daa9d5d0b1b591b5e7734add84b3aaf263178aef5a26cfab2cf - languageName: node - linkType: hard - -"@rollup/rollup-android-arm-eabi@npm:4.5.2": - version: 4.5.2 - resolution: "@rollup/rollup-android-arm-eabi@npm:4.5.2" - conditions: os=android & cpu=arm - languageName: node - linkType: hard - -"@rollup/rollup-android-arm64@npm:4.5.2": - version: 4.5.2 - resolution: "@rollup/rollup-android-arm64@npm:4.5.2" - conditions: os=android & cpu=arm64 - languageName: node - linkType: hard - -"@rollup/rollup-darwin-arm64@npm:4.5.2": - version: 4.5.2 - resolution: "@rollup/rollup-darwin-arm64@npm:4.5.2" - conditions: os=darwin & cpu=arm64 - languageName: node - linkType: hard - -"@rollup/rollup-darwin-x64@npm:4.5.2": - version: 4.5.2 - resolution: "@rollup/rollup-darwin-x64@npm:4.5.2" - conditions: os=darwin & cpu=x64 + checksum: 10c0/f9f40ecff0406a9ce1b77c9f714fc7c71b561289361efc6e2e0e48ca2d630aa98d277cbbf269750f9467a40eaaac79e78766d67c458046aa9507c8c354650fee languageName: node linkType: hard -"@rollup/rollup-linux-arm-gnueabihf@npm:4.5.2": - version: 4.5.2 - resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.5.2" - conditions: os=linux & cpu=arm +"@octokit/auth-token@npm:^5.0.0": + version: 5.1.1 + resolution: "@octokit/auth-token@npm:5.1.1" + checksum: 10c0/1e6117c5170de9a5532ffb85e0bda153f4dffdd66871c42de952828eddd9029fe5161a2a8bf20b57f0d45c80f8fb9ddc69aa639e0fa6b776829efb1b0881b154 languageName: node linkType: hard -"@rollup/rollup-linux-arm64-gnu@npm:4.5.2": - version: 4.5.2 - resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.5.2" - conditions: os=linux & cpu=arm64 & libc=glibc +"@octokit/core@npm:^6.1.2": + version: 6.1.2 + resolution: "@octokit/core@npm:6.1.2" + dependencies: + "@octokit/auth-token": "npm:^5.0.0" + "@octokit/graphql": "npm:^8.0.0" + "@octokit/request": "npm:^9.0.0" + "@octokit/request-error": "npm:^6.0.1" + "@octokit/types": "npm:^13.0.0" + before-after-hook: "npm:^3.0.2" + universal-user-agent: "npm:^7.0.0" + checksum: 10c0/f73be16a8013f69197b7744de75537d869f3a2061dda25dcde746d23b87f305bbdc7adbfe044ab0755eec32e6d54d61c73f4ca788d214eba8e88648a3133733e languageName: node linkType: hard -"@rollup/rollup-linux-arm64-musl@npm:4.5.2": - version: 4.5.2 - resolution: "@rollup/rollup-linux-arm64-musl@npm:4.5.2" - conditions: os=linux & cpu=arm64 & libc=musl +"@octokit/endpoint@npm:^10.0.0": + version: 10.1.1 + resolution: "@octokit/endpoint@npm:10.1.1" + dependencies: + "@octokit/types": "npm:^13.0.0" + universal-user-agent: "npm:^7.0.2" + checksum: 10c0/946517241b33db075e7b3fd8abc6952b9e32be312197d07d415dbefb35b93d26afd508f64315111de7cabc2638d4790a9b0b366cf6cc201de5ec6997c7944c8b languageName: node linkType: hard -"@rollup/rollup-linux-x64-gnu@npm:4.5.2": - version: 4.5.2 - resolution: "@rollup/rollup-linux-x64-gnu@npm:4.5.2" - conditions: os=linux & cpu=x64 & libc=glibc +"@octokit/graphql@npm:^8.0.0": + version: 8.1.1 + resolution: "@octokit/graphql@npm:8.1.1" + dependencies: + "@octokit/request": "npm:^9.0.0" + "@octokit/types": "npm:^13.0.0" + universal-user-agent: "npm:^7.0.0" + checksum: 10c0/fe68b89b21416f56bc9c0d19bba96a9a8ee567312b6fb764b05ea0649a5e44bec71665a0013e7c34304eb77c20ad7e7a7cf43b87ea27c280350229d71034c131 languageName: node linkType: hard -"@rollup/rollup-linux-x64-musl@npm:4.5.2": - version: 4.5.2 - resolution: "@rollup/rollup-linux-x64-musl@npm:4.5.2" - conditions: os=linux & cpu=x64 & libc=musl +"@octokit/openapi-types@npm:^22.2.0": + version: 22.2.0 + resolution: "@octokit/openapi-types@npm:22.2.0" + checksum: 10c0/a45bfc735611e836df0729f5922bbd5811d401052b972d1e3bc1278a2d2403e00f4552ce9d1f2793f77f167d212da559c5cb9f1b02c935114ad6d898779546ee languageName: node linkType: hard -"@rollup/rollup-win32-arm64-msvc@npm:4.5.2": - version: 4.5.2 - resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.5.2" - conditions: os=win32 & cpu=arm64 +"@octokit/plugin-enterprise-rest@npm:^6.0.1": + version: 6.0.1 + resolution: "@octokit/plugin-enterprise-rest@npm:6.0.1" + checksum: 10c0/26bd0a30582954efcd29b41e16698db79e9d20e3f88c4069b43b183223cee69862621f18b6a7a1c9257b1cd07c24477e403b75c74688660ecf31d467b9d8fd9e languageName: node linkType: hard -"@rollup/rollup-win32-ia32-msvc@npm:4.5.2": - version: 4.5.2 - resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.5.2" - conditions: os=win32 & cpu=ia32 +"@octokit/plugin-paginate-rest@npm:^11.0.0": + version: 11.3.5 + resolution: "@octokit/plugin-paginate-rest@npm:11.3.5" + dependencies: + "@octokit/types": "npm:^13.6.0" + peerDependencies: + "@octokit/core": ">=6" + checksum: 10c0/c3a1f4a3ce95d9035e58aa9984ba51fd72aaed0505fef0656feb236c91a4de15b00752b9eabbdfced53826857a26c8e96d2db8d629ba0a476057935f2b318e50 languageName: node linkType: hard -"@rollup/rollup-win32-x64-msvc@npm:4.5.2": - version: 4.5.2 - resolution: "@rollup/rollup-win32-x64-msvc@npm:4.5.2" - conditions: os=win32 & cpu=x64 +"@octokit/plugin-request-log@npm:^5.3.1": + version: 5.3.1 + resolution: "@octokit/plugin-request-log@npm:5.3.1" + peerDependencies: + "@octokit/core": ">=6" + checksum: 10c0/2f959934b8285cf39a1d1d0b92ec881b3ae171ae74738225f87b89381afd72a32bc7ea9c04d2dcee74f74ad24c22cce0c5f3e5b4333d531ea67b985e4ee90cb0 languageName: node linkType: hard -"@sigstore/bundle@npm:^2.1.0": - version: 2.1.0 - resolution: "@sigstore/bundle@npm:2.1.0" +"@octokit/plugin-rest-endpoint-methods@npm:^13.0.0": + version: 13.2.6 + resolution: "@octokit/plugin-rest-endpoint-methods@npm:13.2.6" dependencies: - "@sigstore/protobuf-specs": "npm:^0.2.1" - checksum: 785b48d9def9cde91880bfd656b32e5808861a3f81e1513041635bbab5763c35cfd5c854d0d7dd7283a5c6aeadac036ead4396281aa0cbb356e1311bd239eff5 + "@octokit/types": "npm:^13.6.1" + peerDependencies: + "@octokit/core": ">=6" + checksum: 10c0/9b38187c8fb72cb43c77808d737580e5d71c8cf2133b1975badff36663754485bc999987e173201f6485f514287f22b36535dc1ec7e55575932e4494d780e366 languageName: node linkType: hard -"@sigstore/protobuf-specs@npm:^0.2.1": - version: 0.2.1 - resolution: "@sigstore/protobuf-specs@npm:0.2.1" - checksum: 756b3bc64e7f21d966473208cd3920fcde6744025f7deb1d3be1d2b6261b825178b393db7458cd191b2eab947e516eacd6f91aa2f4545d8c045431fb699ac357 +"@octokit/request-error@npm:^6.0.1": + version: 6.1.5 + resolution: "@octokit/request-error@npm:6.1.5" + dependencies: + "@octokit/types": "npm:^13.0.0" + checksum: 10c0/37afef6c072d987ddf50b3438bcc974741a22ee7f788172876f92b5228ed43f5c4c1556a1d73153508d6c8d3a3d2344c7fefb6cde8678c7f63c2115b8629c49b languageName: node linkType: hard -"@sigstore/sign@npm:^2.1.0": - version: 2.2.0 - resolution: "@sigstore/sign@npm:2.2.0" +"@octokit/request@npm:^9.0.0": + version: 9.1.3 + resolution: "@octokit/request@npm:9.1.3" dependencies: - "@sigstore/bundle": "npm:^2.1.0" - "@sigstore/protobuf-specs": "npm:^0.2.1" - make-fetch-happen: "npm:^13.0.0" - checksum: f3a24809940688b2e7dac1ec7097caf73cc25a440efc67d138227f73154ecd7c95d1962b4cb11fe7de1495659c4784c068002d7f8a14fdc6099d830e50a7bc08 + "@octokit/endpoint": "npm:^10.0.0" + "@octokit/request-error": "npm:^6.0.1" + "@octokit/types": "npm:^13.1.0" + universal-user-agent: "npm:^7.0.2" + checksum: 10c0/41c26387ca9b5b3081a17eebea0c7d6b0122f6b2cb21c2fd7ef63ca587a828448e40b33973416f615fed139c659598f2ae7a1370cc103738f0f6f3297b5fc4ab languageName: node linkType: hard -"@sigstore/tuf@npm:^2.1.0": - version: 2.2.0 - resolution: "@sigstore/tuf@npm:2.2.0" +"@octokit/rest@npm:^21.0.2": + version: 21.0.2 + resolution: "@octokit/rest@npm:21.0.2" dependencies: - "@sigstore/protobuf-specs": "npm:^0.2.1" - tuf-js: "npm:^2.1.0" - checksum: d20c0fd1c13e7054b9569eb70b427439546cfd864e891f8dce48e6c59b782b1dede109e02e3ac33ce381a3fd8b8fbffd6719a17cdcaca18972c2c5a000ba816e + "@octokit/core": "npm:^6.1.2" + "@octokit/plugin-paginate-rest": "npm:^11.0.0" + "@octokit/plugin-request-log": "npm:^5.3.1" + "@octokit/plugin-rest-endpoint-methods": "npm:^13.0.0" + checksum: 10c0/4c7f0cf2797a7da5a6e3d8d7a7cfcc47b36de20a8d3e23289cc5dff2a32228254a6db459b0196f71efe229ef59fa6696591182c6c3bee7a4d658f2a0ef4c26bc languageName: node linkType: hard -"@sindresorhus/merge-streams@npm:^1.0.0": - version: 1.0.0 - resolution: "@sindresorhus/merge-streams@npm:1.0.0" - checksum: 43d077170845dc621002e9730aea567e6e126e84b3bbff01b8575266efdb2c81d223939d3bec24020e53960c154b4640bef7746aeb245abd94c5d32972dd6854 +"@octokit/types@npm:^13.0.0, @octokit/types@npm:^13.1.0, @octokit/types@npm:^13.6.0, @octokit/types@npm:^13.6.1": + version: 13.6.1 + resolution: "@octokit/types@npm:13.6.1" + dependencies: + "@octokit/openapi-types": "npm:^22.2.0" + checksum: 10c0/891334b5786ba6aef953384cec05d53e05132dd577c0c22db124d55eaa69609362d1e3147853b46e91bf226e046ba24d615c55214c8f8f4e7c3a5c38429b38e9 languageName: node linkType: hard -"@telegraf/types@npm:^6.9.1": - version: 6.9.1 - resolution: "@telegraf/types@npm:6.9.1" - checksum: ad018e4f6c46fa952b0d0d45a20a055555f995231922740b3d2961af5c7d94c75df4ef48f24354ab5bc47bd3e3f3e0b791d316db5ca83b40422ae9d9d66333b6 +"@pkgjs/parseargs@npm:^0.11.0": + version: 0.11.0 + resolution: "@pkgjs/parseargs@npm:0.11.0" + checksum: 10c0/5bd7576bb1b38a47a7fc7b51ac9f38748e772beebc56200450c4a817d712232b8f1d3ef70532c80840243c657d491cf6a6be1e3a214cff907645819fdc34aadd languageName: node linkType: hard -"@tufjs/canonical-json@npm:2.0.0": - version: 2.0.0 - resolution: "@tufjs/canonical-json@npm:2.0.0" - checksum: 52c5ffaef1483ed5c3feedfeba26ca9142fa386eea54464e70ff515bd01c5e04eab05d01eff8c2593291dcaf2397ca7d9c512720e11f52072b04c47a5c279415 +"@rtsao/scc@npm:^1.1.0": + version: 1.1.0 + resolution: "@rtsao/scc@npm:1.1.0" + checksum: 10c0/b5bcfb0d87f7d1c1c7c0f7693f53b07866ed9fec4c34a97a8c948fb9a7c0082e416ce4d3b60beb4f5e167cbe04cdeefbf6771320f3ede059b9ce91188c409a5b languageName: node linkType: hard -"@tufjs/models@npm:2.0.0": - version: 2.0.0 - resolution: "@tufjs/models@npm:2.0.0" - dependencies: - "@tufjs/canonical-json": "npm:2.0.0" - minimatch: "npm:^9.0.3" - checksum: 252f525b05526077430920b30b125e197a3d711f4c6d1ceeee9cea5044035e4d94e57db481d96bd8e9d1ce5ee23fcc9fe989e7e0c9c2aec7e1edc27326ee16e6 +"@sec-ant/readable-stream@npm:^0.4.1": + version: 0.4.1 + resolution: "@sec-ant/readable-stream@npm:0.4.1" + checksum: 10c0/64e9e9cf161e848067a5bf60cdc04d18495dc28bb63a8d9f8993e4dd99b91ad34e4b563c85de17d91ffb177ec17a0664991d2e115f6543e73236a906068987af languageName: node linkType: hard -"@types/accepts@npm:*": - version: 1.3.7 - resolution: "@types/accepts@npm:1.3.7" +"@sigstore/bundle@npm:^2.3.2": + version: 2.3.2 + resolution: "@sigstore/bundle@npm:2.3.2" dependencies: - "@types/node": "npm:*" - checksum: 7b21efc78b98ed57063ac31588f871f11501c080cd1201ca3743cf02ee0aee74bdb5a634183bc0987dc8dc582b26316789fd203650319ccc89a66cf88311d64f + "@sigstore/protobuf-specs": "npm:^0.3.2" + checksum: 10c0/872a95928236bd9950a2ecc66af1c60a82f6b482a62a20d0f817392d568a60739a2432cad70449ac01e44e9eaf85822d6d9ebc6ade6cb3e79a7d62226622eb5d languageName: node linkType: hard -"@types/body-parser@npm:*": - version: 1.19.5 - resolution: "@types/body-parser@npm:1.19.5" - dependencies: - "@types/connect": "npm:*" - "@types/node": "npm:*" - checksum: aebeb200f25e8818d8cf39cd0209026750d77c9b85381cdd8deeb50913e4d18a1ebe4b74ca9b0b4d21952511eeaba5e9fbbf739b52731a2061e206ec60d568df +"@sigstore/core@npm:^1.0.0, @sigstore/core@npm:^1.1.0": + version: 1.1.0 + resolution: "@sigstore/core@npm:1.1.0" + checksum: 10c0/3b3420c1bd17de0371e1ac7c8f07a2cbcd24d6b49ace5bbf2b63f559ee08c4a80622a4d1c0ae42f2c9872166e9cb111f33f78bff763d47e5ef1efc62b8e457ea languageName: node linkType: hard -"@types/command-line-args@npm:^5.0.0": - version: 5.2.3 - resolution: "@types/command-line-args@npm:5.2.3" - checksum: 3a9bc58fd26e546391f6369dd28c03d59349dc4ac39eada1a5c39cc3578e02e4aac222615170e0db79b198ffba2af84fdbdda46e08c6edc4da42bc17ea85200f +"@sigstore/protobuf-specs@npm:^0.3.2": + version: 0.3.2 + resolution: "@sigstore/protobuf-specs@npm:0.3.2" + checksum: 10c0/108eed419181ff599763f2d28ff5087e7bce9d045919de548677520179fe77fb2e2b7290216c93c7a01bdb2972b604bf44599273c991bbdf628fbe1b9b70aacb languageName: node linkType: hard -"@types/connect@npm:*": - version: 3.4.38 - resolution: "@types/connect@npm:3.4.38" +"@sigstore/sign@npm:^2.3.2": + version: 2.3.2 + resolution: "@sigstore/sign@npm:2.3.2" dependencies: - "@types/node": "npm:*" - checksum: 2e1cdba2c410f25649e77856505cd60223250fa12dff7a503e492208dbfdd25f62859918f28aba95315251fd1f5e1ffbfca1e25e73037189ab85dd3f8d0a148c + "@sigstore/bundle": "npm:^2.3.2" + "@sigstore/core": "npm:^1.0.0" + "@sigstore/protobuf-specs": "npm:^0.3.2" + make-fetch-happen: "npm:^13.0.1" + proc-log: "npm:^4.2.0" + promise-retry: "npm:^2.0.1" + checksum: 10c0/a1e7908f3e4898f04db4d713fa10ddb3ae4f851592c9b554f1269073211e1417528b5088ecee60f27039fde5a5426ae573481d77cfd7e4395d2a0ddfcf5f365f languageName: node linkType: hard -"@types/content-disposition@npm:*": - version: 0.5.8 - resolution: "@types/content-disposition@npm:0.5.8" - checksum: f10baeab2ec44579012c1170763851687e740ea30531a80cd7a403475730ce7d7ead4f88927cea6970cc2d5e74fa7af38cdf4f039c5f115fba1bb98ec0014977 +"@sigstore/tuf@npm:^2.3.4": + version: 2.3.4 + resolution: "@sigstore/tuf@npm:2.3.4" + dependencies: + "@sigstore/protobuf-specs": "npm:^0.3.2" + tuf-js: "npm:^2.2.1" + checksum: 10c0/97839882d787196517933df5505fae4634975807cc7adcd1783c7840c2a9729efb83ada47556ec326d544b9cb0d1851af990dc46eebb5fe7ea17bf7ce1fc0b8c languageName: node linkType: hard -"@types/cookies@npm:*": - version: 0.7.10 - resolution: "@types/cookies@npm:0.7.10" +"@sigstore/verify@npm:^1.2.1": + version: 1.2.1 + resolution: "@sigstore/verify@npm:1.2.1" dependencies: - "@types/connect": "npm:*" - "@types/express": "npm:*" - "@types/keygrip": "npm:*" - "@types/node": "npm:*" - checksum: 09f245abbcd9e348ef8a5747a1a7210b21412124cf69add28313f0ac34ad73bc23c03ea8b83aa1708dd1a8e1bbc65bfc167eb9ae8324ecbedc3ec168e2fda2bf + "@sigstore/bundle": "npm:^2.3.2" + "@sigstore/core": "npm:^1.1.0" + "@sigstore/protobuf-specs": "npm:^0.3.2" + checksum: 10c0/af06580a8d5357c31259da1ac7323137054e0ac41e933278d95a4bc409a4463620125cb4c00b502f6bc32fdd68c2293019391b0d31ed921ee3852a9e84358628 languageName: node linkType: hard -"@types/estree@npm:^1.0.0": - version: 1.0.5 - resolution: "@types/estree@npm:1.0.5" - checksum: b3b0e334288ddb407c7b3357ca67dbee75ee22db242ca7c56fe27db4e1a31989cb8af48a84dd401deb787fe10cc6b2ab1ee82dc4783be87ededbe3d53c79c70d +"@sinclair/typebox@npm:^0.27.8": + version: 0.27.8 + resolution: "@sinclair/typebox@npm:0.27.8" + checksum: 10c0/ef6351ae073c45c2ac89494dbb3e1f87cc60a93ce4cde797b782812b6f97da0d620ae81973f104b43c9b7eaa789ad20ba4f6a1359f1cc62f63729a55a7d22d4e languageName: node linkType: hard -"@types/express-serve-static-core@npm:^4.17.33": - version: 4.17.41 - resolution: "@types/express-serve-static-core@npm:4.17.41" +"@sinonjs/commons@npm:^3.0.0": + version: 3.0.1 + resolution: "@sinonjs/commons@npm:3.0.1" dependencies: - "@types/node": "npm:*" - "@types/qs": "npm:*" - "@types/range-parser": "npm:*" - "@types/send": "npm:*" - checksum: dc166cbf4475c00a81fbcab120bf7477c527184be11ae149df7f26d9c1082114c68f8d387a2926fe80291b06477c8bbd9231ff4f5775de328e887695aefce269 + type-detect: "npm:4.0.8" + checksum: 10c0/1227a7b5bd6c6f9584274db996d7f8cee2c8c350534b9d0141fc662eaf1f292ea0ae3ed19e5e5271c8fd390d27e492ca2803acd31a1978be2cdc6be0da711403 languageName: node linkType: hard -"@types/express@npm:*": - version: 4.17.21 - resolution: "@types/express@npm:4.17.21" +"@sinonjs/fake-timers@npm:^10.0.2": + version: 10.3.0 + resolution: "@sinonjs/fake-timers@npm:10.3.0" dependencies: - "@types/body-parser": "npm:*" - "@types/express-serve-static-core": "npm:^4.17.33" - "@types/qs": "npm:*" - "@types/serve-static": "npm:*" - checksum: 12e562c4571da50c7d239e117e688dc434db1bac8be55613294762f84fd77fbd0658ccd553c7d3ab02408f385bc93980992369dd30e2ecd2c68c358e6af8fabf + "@sinonjs/commons": "npm:^3.0.0" + checksum: 10c0/2e2fb6cc57f227912814085b7b01fede050cd4746ea8d49a1e44d5a0e56a804663b0340ae2f11af7559ea9bf4d087a11f2f646197a660ea3cb04e19efc04aa63 languageName: node linkType: hard -"@types/http-assert@npm:*": - version: 1.5.5 - resolution: "@types/http-assert@npm:1.5.5" - checksum: 02e7ba584d6d14bdb4dad05dd36ecbc4a2f4209472287e6d558e222c93182214445a0c6cd096f114bfc88446be03d82ef6db24ecda13922b0d697918c76b4067 +"@tufjs/canonical-json@npm:2.0.0": + version: 2.0.0 + resolution: "@tufjs/canonical-json@npm:2.0.0" + checksum: 10c0/52c5ffaef1483ed5c3feedfeba26ca9142fa386eea54464e70ff515bd01c5e04eab05d01eff8c2593291dcaf2397ca7d9c512720e11f52072b04c47a5c279415 languageName: node linkType: hard -"@types/http-errors@npm:*": - version: 2.0.4 - resolution: "@types/http-errors@npm:2.0.4" - checksum: 494670a57ad4062fee6c575047ad5782506dd35a6b9ed3894cea65830a94367bd84ba302eb3dde331871f6d70ca287bfedb1b2cf658e6132cd2cbd427ab56836 +"@tufjs/models@npm:2.0.1": + version: 2.0.1 + resolution: "@tufjs/models@npm:2.0.1" + dependencies: + "@tufjs/canonical-json": "npm:2.0.0" + minimatch: "npm:^9.0.4" + checksum: 10c0/ad9e82fd921954501fd90ed34ae062254637595577ad13fdc1e076405c0ea5ee7d8aebad09e63032972fd92b07f1786c15b24a195a171fc8ac470ca8e2ffbcc4 languageName: node linkType: hard -"@types/json-schema@npm:^7.0.12": - version: 7.0.15 - resolution: "@types/json-schema@npm:7.0.15" - checksum: a996a745e6c5d60292f36731dd41341339d4eeed8180bb09226e5c8d23759067692b1d88e5d91d72ee83dfc00d3aca8e7bd43ea120516c17922cbcb7c3e252db +"@types/babel__core@npm:^7.1.14": + version: 7.20.5 + resolution: "@types/babel__core@npm:7.20.5" + dependencies: + "@babel/parser": "npm:^7.20.7" + "@babel/types": "npm:^7.20.7" + "@types/babel__generator": "npm:*" + "@types/babel__template": "npm:*" + "@types/babel__traverse": "npm:*" + checksum: 10c0/bdee3bb69951e833a4b811b8ee9356b69a61ed5b7a23e1a081ec9249769117fa83aaaf023bb06562a038eb5845155ff663e2d5c75dd95c1d5ccc91db012868ff languageName: node linkType: hard -"@types/json5@npm:^0.0.29": - version: 0.0.29 - resolution: "@types/json5@npm:0.0.29" - checksum: 6bf5337bc447b706bb5b4431d37686aa2ea6d07cfd6f79cc31de80170d6ff9b1c7384a9c0ccbc45b3f512bae9e9f75c2e12109806a15331dc94e8a8db6dbb4ac +"@types/babel__generator@npm:*": + version: 7.6.8 + resolution: "@types/babel__generator@npm:7.6.8" + dependencies: + "@babel/types": "npm:^7.0.0" + checksum: 10c0/f0ba105e7d2296bf367d6e055bb22996886c114261e2cb70bf9359556d0076c7a57239d019dee42bb063f565bade5ccb46009bce2044b2952d964bf9a454d6d2 languageName: node linkType: hard -"@types/keygrip@npm:*": - version: 1.0.5 - resolution: "@types/keygrip@npm:1.0.5" - checksum: db7bf519d3aaad5ac4a7601b43d818859c4be14ad5d5c40ba6df779b5016958a540878f2ef271da61163ff05d896ed87ec08c919f426868377caecb5a975850e +"@types/babel__template@npm:*": + version: 7.4.4 + resolution: "@types/babel__template@npm:7.4.4" + dependencies: + "@babel/parser": "npm:^7.1.0" + "@babel/types": "npm:^7.0.0" + checksum: 10c0/cc84f6c6ab1eab1427e90dd2b76ccee65ce940b778a9a67be2c8c39e1994e6f5bbc8efa309f6cea8dc6754994524cd4d2896558df76d92e7a1f46ecffee7112b languageName: node linkType: hard -"@types/koa-compose@npm:*": - version: 3.2.8 - resolution: "@types/koa-compose@npm:3.2.8" +"@types/babel__traverse@npm:*, @types/babel__traverse@npm:^7.0.6": + version: 7.20.6 + resolution: "@types/babel__traverse@npm:7.20.6" dependencies: - "@types/koa": "npm:*" - checksum: f2bfb7376c1e9075e8df7a46a5fce073159b01b94ec7dcca6e9f68627d48ea86a726bcfbd06491e1c99f68c0f27b8174b498081f9a3e4f976694452b5d0b5f01 + "@babel/types": "npm:^7.20.7" + checksum: 10c0/7ba7db61a53e28cac955aa99af280d2600f15a8c056619c05b6fc911cbe02c61aa4f2823299221b23ce0cce00b294c0e5f618ec772aa3f247523c2e48cf7b888 languageName: node linkType: hard -"@types/koa@npm:*, @types/koa@npm:^2.11.6": - version: 2.13.11 - resolution: "@types/koa@npm:2.13.11" +"@types/graceful-fs@npm:^4.1.3": + version: 4.1.9 + resolution: "@types/graceful-fs@npm:4.1.9" dependencies: - "@types/accepts": "npm:*" - "@types/content-disposition": "npm:*" - "@types/cookies": "npm:*" - "@types/http-assert": "npm:*" - "@types/http-errors": "npm:*" - "@types/keygrip": "npm:*" - "@types/koa-compose": "npm:*" "@types/node": "npm:*" - checksum: f1df820dc5f12cb116a75314e032b5cf655017af8a5f927f4941c0d1a9c3e7d0799fdcac7eb04108e0546276a775336f5878ab65ef3686dd8931515d8f1480b7 + checksum: 10c0/235d2fc69741448e853333b7c3d1180a966dd2b8972c8cbcd6b2a0c6cd7f8d582ab2b8e58219dbc62cce8f1b40aa317ff78ea2201cdd8249da5025adebed6f0b languageName: node linkType: hard -"@types/mime@npm:*": - version: 3.0.4 - resolution: "@types/mime@npm:3.0.4" - checksum: db478bc0f99e40f7b3e01d356a9bdf7817060808a294978111340317bcd80ca35382855578c5b60fbc84ae449674bd9bb38427b18417e1f8f19e4f72f8b242cd +"@types/istanbul-lib-coverage@npm:*, @types/istanbul-lib-coverage@npm:^2.0.0, @types/istanbul-lib-coverage@npm:^2.0.1": + version: 2.0.6 + resolution: "@types/istanbul-lib-coverage@npm:2.0.6" + checksum: 10c0/3948088654f3eeb45363f1db158354fb013b362dba2a5c2c18c559484d5eb9f6fd85b23d66c0a7c2fcfab7308d0a585b14dadaca6cc8bf89ebfdc7f8f5102fb7 languageName: node linkType: hard -"@types/mime@npm:^1": - version: 1.3.5 - resolution: "@types/mime@npm:1.3.5" - checksum: c2ee31cd9b993804df33a694d5aa3fa536511a49f2e06eeab0b484fef59b4483777dbb9e42a4198a0809ffbf698081fdbca1e5c2218b82b91603dfab10a10fbc +"@types/istanbul-lib-report@npm:*": + version: 3.0.3 + resolution: "@types/istanbul-lib-report@npm:3.0.3" + dependencies: + "@types/istanbul-lib-coverage": "npm:*" + checksum: 10c0/247e477bbc1a77248f3c6de5dadaae85ff86ac2d76c5fc6ab1776f54512a745ff2a5f791d22b942e3990ddbd40f3ef5289317c4fca5741bedfaa4f01df89051c languageName: node linkType: hard -"@types/minimatch@npm:^3.0.5": - version: 3.0.5 - resolution: "@types/minimatch@npm:3.0.5" - checksum: a1a19ba342d6f39b569510f621ae4bbe972dc9378d15e9a5e47904c440ee60744f5b09225bc73be1c6490e3a9c938eee69eb53debf55ce1f15761201aa965f97 +"@types/istanbul-reports@npm:^3.0.0": + version: 3.0.4 + resolution: "@types/istanbul-reports@npm:3.0.4" + dependencies: + "@types/istanbul-lib-report": "npm:*" + checksum: 10c0/1647fd402aced5b6edac87274af14ebd6b3a85447ef9ad11853a70fd92a98d35f81a5d3ea9fcb5dbb5834e800c6e35b64475e33fcae6bfa9acc70d61497c54ee languageName: node linkType: hard -"@types/minimist@npm:^1.2.0": - version: 1.2.5 - resolution: "@types/minimist@npm:1.2.5" - checksum: 3f791258d8e99a1d7d0ca2bda1ca6ea5a94e5e7b8fc6cde84dd79b0552da6fb68ade750f0e17718f6587783c24254bbca0357648dd59dc3812c150305cabdc46 +"@types/jest@npm:^29.5.13": + version: 29.5.13 + resolution: "@types/jest@npm:29.5.13" + dependencies: + expect: "npm:^29.0.0" + pretty-format: "npm:^29.0.0" + checksum: 10c0/9c31af0b155387b9860908830de63c6b79011d7c87c8b61b39da124e26e55423dd51b006749aafe4f0ef3a065016619a1f93ef4b055157d43727f448e67824b7 + languageName: node + linkType: hard + +"@types/json5@npm:^0.0.29": + version: 0.0.29 + resolution: "@types/json5@npm:0.0.29" + checksum: 10c0/6bf5337bc447b706bb5b4431d37686aa2ea6d07cfd6f79cc31de80170d6ff9b1c7384a9c0ccbc45b3f512bae9e9f75c2e12109806a15331dc94e8a8db6dbb4ac languageName: node linkType: hard @@ -1228,299 +2379,171 @@ __metadata: resolution: "@types/node@npm:20.9.0" dependencies: undici-types: "npm:~5.26.4" - checksum: 755d07de735eafda4e20af75ad9d03bdbfddef327d790e9a896142eac7493db5d8501591376e1c8227aa12eeb88e522bc727c6024504842ed40e539e8a466db9 + checksum: 10c0/755d07de735eafda4e20af75ad9d03bdbfddef327d790e9a896142eac7493db5d8501591376e1c8227aa12eeb88e522bc727c6024504842ed40e539e8a466db9 languageName: node linkType: hard -"@types/node@npm:^20.10.0": - version: 20.10.0 - resolution: "@types/node@npm:20.10.0" +"@types/node@npm:^22.7.7": + version: 22.7.7 + resolution: "@types/node@npm:22.7.7" dependencies: - undici-types: "npm:~5.26.4" - checksum: f379e57d9d28cb5f3d8eab943de0c54a0ca2f95ee356e1fe2a1a4fa718b740103ae522c50ce107cffd52c3642ef3244cfc55bf5369081dd6c48369c8587b21ae + undici-types: "npm:~6.19.2" + checksum: 10c0/07268a1e990ad9d9b1865092881317ea679a46eb6706d83a8874eec75fdddae6cfd6452e4e68b651561183e2a8f8548276f3155744bc402c2545978c19b70d65 languageName: node linkType: hard -"@types/normalize-package-data@npm:^2.4.0, @types/normalize-package-data@npm:^2.4.1": +"@types/normalize-package-data@npm:^2.4.1, @types/normalize-package-data@npm:^2.4.3": version: 2.4.4 resolution: "@types/normalize-package-data@npm:2.4.4" - checksum: aef7bb9b015883d6f4119c423dd28c4bdc17b0e8a0ccf112c78b4fe0e91fbc4af7c6204b04bba0e199a57d2f3fbbd5b4a14bf8739bf9d2a39b2a0aad545e0f86 - languageName: node - linkType: hard - -"@types/parse5@npm:^6.0.1": - version: 6.0.3 - resolution: "@types/parse5@npm:6.0.3" - checksum: a7c7ef6625974b74b93c1105953003a2291897e453369efcadc569b907de2784d61d4e6905de3ef959fa07f3278f41ed0c22ead0173776023fc43b6ed31042d0 - languageName: node - linkType: hard - -"@types/qs@npm:*": - version: 6.9.10 - resolution: "@types/qs@npm:6.9.10" - checksum: 6be12e5f062d1b41eb037d59bf9cb65bc9410cedd5e6da832dfd7c8e2b3f4c91e81c9b90b51811140770e5052c6c4e8361181bd9437ddcd4515dc128b7c00353 - languageName: node - linkType: hard - -"@types/range-parser@npm:*": - version: 1.2.7 - resolution: "@types/range-parser@npm:1.2.7" - checksum: 361bb3e964ec5133fa40644a0b942279ed5df1949f21321d77de79f48b728d39253e5ce0408c9c17e4e0fd95ca7899da36841686393b9f7a1e209916e9381a3c + checksum: 10c0/aef7bb9b015883d6f4119c423dd28c4bdc17b0e8a0ccf112c78b4fe0e91fbc4af7c6204b04bba0e199a57d2f3fbbd5b4a14bf8739bf9d2a39b2a0aad545e0f86 languageName: node linkType: hard -"@types/resolve@npm:1.20.2": - version: 1.20.2 - resolution: "@types/resolve@npm:1.20.2" - checksum: c5b7e1770feb5ccfb6802f6ad82a7b0d50874c99331e0c9b259e415e55a38d7a86ad0901c57665d93f75938be2a6a0bc9aa06c9749192cadb2e4512800bbc6e6 - languageName: node - linkType: hard - -"@types/semver@npm:^7.5.0": - version: 7.5.5 - resolution: "@types/semver@npm:7.5.5" - checksum: bb1b525221d93c9e7b45914af5ed1729a5bfdfa80927d6b02bcb4550ff7015f8c713152c32cb679ffcc79e77c0dda66d1f972ff5ee8d2205336729c51198bb18 - languageName: node - linkType: hard - -"@types/send@npm:*": - version: 0.17.4 - resolution: "@types/send@npm:0.17.4" - dependencies: - "@types/mime": "npm:^1" - "@types/node": "npm:*" - checksum: 7f17fa696cb83be0a104b04b424fdedc7eaba1c9a34b06027239aba513b398a0e2b7279778af521f516a397ced417c96960e5f50fcfce40c4bc4509fb1a5883c +"@types/stack-utils@npm:^2.0.0": + version: 2.0.3 + resolution: "@types/stack-utils@npm:2.0.3" + checksum: 10c0/1f4658385ae936330581bcb8aa3a066df03867d90281cdf89cc356d404bd6579be0f11902304e1f775d92df22c6dd761d4451c804b0a4fba973e06211e9bd77c languageName: node linkType: hard -"@types/serve-static@npm:*": - version: 1.15.5 - resolution: "@types/serve-static@npm:1.15.5" - dependencies: - "@types/http-errors": "npm:*" - "@types/mime": "npm:*" - "@types/node": "npm:*" - checksum: 811d1a2f7e74a872195e7a013bcd87a2fb1edf07eaedcb9dcfd20c1eb4bc56ad4ea0d52141c13192c91ccda7c8aeb8a530d8a7e60b9c27f5990d7e62e0fecb03 +"@types/yargs-parser@npm:*": + version: 21.0.3 + resolution: "@types/yargs-parser@npm:21.0.3" + checksum: 10c0/e71c3bd9d0b73ca82e10bee2064c384ab70f61034bbfb78e74f5206283fc16a6d85267b606b5c22cb2a3338373586786fed595b2009825d6a9115afba36560a0 languageName: node linkType: hard -"@types/ws@npm:^7.4.0": - version: 7.4.7 - resolution: "@types/ws@npm:7.4.7" +"@types/yargs@npm:^17.0.8": + version: 17.0.33 + resolution: "@types/yargs@npm:17.0.33" dependencies: - "@types/node": "npm:*" - checksum: f1f53febd8623a85cef2652949acd19d83967e350ea15a851593e3033501750a1e04f418552e487db90a3d48611a1cff3ffcf139b94190c10f2fd1e1dc95ff10 + "@types/yargs-parser": "npm:*" + checksum: 10c0/d16937d7ac30dff697801c3d6f235be2166df42e4a88bf730fa6dc09201de3727c0a9500c59a672122313341de5f24e45ee0ff579c08ce91928e519090b7906b languageName: node linkType: hard -"@typescript-eslint/eslint-plugin@npm:^6.12.0": - version: 6.12.0 - resolution: "@typescript-eslint/eslint-plugin@npm:6.12.0" +"@typescript-eslint/eslint-plugin@npm:^7.15.0": + version: 7.18.0 + resolution: "@typescript-eslint/eslint-plugin@npm:7.18.0" dependencies: - "@eslint-community/regexpp": "npm:^4.5.1" - "@typescript-eslint/scope-manager": "npm:6.12.0" - "@typescript-eslint/type-utils": "npm:6.12.0" - "@typescript-eslint/utils": "npm:6.12.0" - "@typescript-eslint/visitor-keys": "npm:6.12.0" - debug: "npm:^4.3.4" + "@eslint-community/regexpp": "npm:^4.10.0" + "@typescript-eslint/scope-manager": "npm:7.18.0" + "@typescript-eslint/type-utils": "npm:7.18.0" + "@typescript-eslint/utils": "npm:7.18.0" + "@typescript-eslint/visitor-keys": "npm:7.18.0" graphemer: "npm:^1.4.0" - ignore: "npm:^5.2.4" + ignore: "npm:^5.3.1" natural-compare: "npm:^1.4.0" - semver: "npm:^7.5.4" - ts-api-utils: "npm:^1.0.1" + ts-api-utils: "npm:^1.3.0" peerDependencies: - "@typescript-eslint/parser": ^6.0.0 || ^6.0.0-alpha - eslint: ^7.0.0 || ^8.0.0 + "@typescript-eslint/parser": ^7.0.0 + eslint: ^8.56.0 peerDependenciesMeta: typescript: optional: true - checksum: 98e07a00c95a3b786d3fe073e9181015c7f37d375caccc74892626a9d8107be0965d50c1da57087dd0fb4c4e35612a51740c944a8ff1adfd7ff6a4c029d13f6e + checksum: 10c0/2b37948fa1b0dab77138909dabef242a4d49ab93e4019d4ef930626f0a7d96b03e696cd027fa0087881c20e73be7be77c942606b4a76fa599e6b37f6985304c3 languageName: node linkType: hard -"@typescript-eslint/parser@npm:^6.12.0": - version: 6.12.0 - resolution: "@typescript-eslint/parser@npm:6.12.0" +"@typescript-eslint/parser@npm:^7.15.0": + version: 7.18.0 + resolution: "@typescript-eslint/parser@npm:7.18.0" dependencies: - "@typescript-eslint/scope-manager": "npm:6.12.0" - "@typescript-eslint/types": "npm:6.12.0" - "@typescript-eslint/typescript-estree": "npm:6.12.0" - "@typescript-eslint/visitor-keys": "npm:6.12.0" + "@typescript-eslint/scope-manager": "npm:7.18.0" + "@typescript-eslint/types": "npm:7.18.0" + "@typescript-eslint/typescript-estree": "npm:7.18.0" + "@typescript-eslint/visitor-keys": "npm:7.18.0" debug: "npm:^4.3.4" peerDependencies: - eslint: ^7.0.0 || ^8.0.0 + eslint: ^8.56.0 peerDependenciesMeta: typescript: optional: true - checksum: 63a29b37c0c39773617df70d8f006b093c67fe2b67966cb3e8cc07476eaf79ee196f214bdfa320075f7950b5d5e8d228aaae6f3e6fac3be269503a96f49bc724 + checksum: 10c0/370e73fca4278091bc1b657f85e7d74cd52b24257ea20c927a8e17546107ce04fbf313fec99aed0cc2a145ddbae1d3b12e9cc2c1320117636dc1281bcfd08059 languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:6.12.0": - version: 6.12.0 - resolution: "@typescript-eslint/scope-manager@npm:6.12.0" +"@typescript-eslint/scope-manager@npm:7.18.0": + version: 7.18.0 + resolution: "@typescript-eslint/scope-manager@npm:7.18.0" dependencies: - "@typescript-eslint/types": "npm:6.12.0" - "@typescript-eslint/visitor-keys": "npm:6.12.0" - checksum: d6316ba59479b4a764d56eee887a5e22b59811bead351d5a61618c34bf3159afead289f68661739575dd1b1da768dfe7967e429ec07a310e1b7831c396eacf80 + "@typescript-eslint/types": "npm:7.18.0" + "@typescript-eslint/visitor-keys": "npm:7.18.0" + checksum: 10c0/038cd58c2271de146b3a594afe2c99290034033326d57ff1f902976022c8b0138ffd3cb893ae439ae41003b5e4bcc00cabf6b244ce40e8668f9412cc96d97b8e languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:6.12.0": - version: 6.12.0 - resolution: "@typescript-eslint/type-utils@npm:6.12.0" +"@typescript-eslint/type-utils@npm:7.18.0": + version: 7.18.0 + resolution: "@typescript-eslint/type-utils@npm:7.18.0" dependencies: - "@typescript-eslint/typescript-estree": "npm:6.12.0" - "@typescript-eslint/utils": "npm:6.12.0" + "@typescript-eslint/typescript-estree": "npm:7.18.0" + "@typescript-eslint/utils": "npm:7.18.0" debug: "npm:^4.3.4" - ts-api-utils: "npm:^1.0.1" + ts-api-utils: "npm:^1.3.0" peerDependencies: - eslint: ^7.0.0 || ^8.0.0 + eslint: ^8.56.0 peerDependenciesMeta: typescript: optional: true - checksum: 35f8dfbacb43df4378876669835b580549c50d7c1af642d39b9b3146e6085c9dab8d982151e21598af42870971b76ce76c12fb93d2913e4bdbd647fbe54fa0f5 + checksum: 10c0/ad92a38007be620f3f7036f10e234abdc2fdc518787b5a7227e55fd12896dacf56e8b34578723fbf9bea8128df2510ba8eb6739439a3879eda9519476d5783fd languageName: node linkType: hard -"@typescript-eslint/types@npm:6.12.0": - version: 6.12.0 - resolution: "@typescript-eslint/types@npm:6.12.0" - checksum: 04abe31222d8d50211001a337516944a6561f23a8fe2dce4010aae9b0770d5e4550fc3a72eadbe6d7eeabacb3de8b278cdd93184aa70a5316ca54a90c38f4414 +"@typescript-eslint/types@npm:7.18.0": + version: 7.18.0 + resolution: "@typescript-eslint/types@npm:7.18.0" + checksum: 10c0/eb7371ac55ca77db8e59ba0310b41a74523f17e06f485a0ef819491bc3dd8909bb930120ff7d30aaf54e888167e0005aa1337011f3663dc90fb19203ce478054 languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:6.12.0": - version: 6.12.0 - resolution: "@typescript-eslint/typescript-estree@npm:6.12.0" +"@typescript-eslint/typescript-estree@npm:7.18.0": + version: 7.18.0 + resolution: "@typescript-eslint/typescript-estree@npm:7.18.0" dependencies: - "@typescript-eslint/types": "npm:6.12.0" - "@typescript-eslint/visitor-keys": "npm:6.12.0" + "@typescript-eslint/types": "npm:7.18.0" + "@typescript-eslint/visitor-keys": "npm:7.18.0" debug: "npm:^4.3.4" globby: "npm:^11.1.0" is-glob: "npm:^4.0.3" - semver: "npm:^7.5.4" - ts-api-utils: "npm:^1.0.1" + minimatch: "npm:^9.0.4" + semver: "npm:^7.6.0" + ts-api-utils: "npm:^1.3.0" peerDependenciesMeta: typescript: optional: true - checksum: 48400894fbf7d4402ef368b9da4f2cc3d44f09df29ce43c37fa4cc7045b8f1dc6973b0fbc8c98ed346de57f47fd66cc58428fbaaf135918c80d13ce30a87cb24 + checksum: 10c0/0c7f109a2e460ec8a1524339479cf78ff17814d23c83aa5112c77fb345e87b3642616291908dcddea1e671da63686403dfb712e4a4435104f92abdfddf9aba81 languageName: node linkType: hard -"@typescript-eslint/utils@npm:6.12.0": - version: 6.12.0 - resolution: "@typescript-eslint/utils@npm:6.12.0" +"@typescript-eslint/utils@npm:7.18.0": + version: 7.18.0 + resolution: "@typescript-eslint/utils@npm:7.18.0" dependencies: "@eslint-community/eslint-utils": "npm:^4.4.0" - "@types/json-schema": "npm:^7.0.12" - "@types/semver": "npm:^7.5.0" - "@typescript-eslint/scope-manager": "npm:6.12.0" - "@typescript-eslint/types": "npm:6.12.0" - "@typescript-eslint/typescript-estree": "npm:6.12.0" - semver: "npm:^7.5.4" + "@typescript-eslint/scope-manager": "npm:7.18.0" + "@typescript-eslint/types": "npm:7.18.0" + "@typescript-eslint/typescript-estree": "npm:7.18.0" peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - checksum: af9159395847a675e270f56364089e3326ba26f2a0b45ef042ab8508f61f92edd24c60ec8ccca42f0883bbbd233d6e9dcc9c2304ef9694336459c26c38bbbdc7 + eslint: ^8.56.0 + checksum: 10c0/a25a6d50eb45c514469a01ff01f215115a4725fb18401055a847ddf20d1b681409c4027f349033a95c4ff7138d28c3b0a70253dfe8262eb732df4b87c547bd1e languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:6.12.0": - version: 6.12.0 - resolution: "@typescript-eslint/visitor-keys@npm:6.12.0" +"@typescript-eslint/visitor-keys@npm:7.18.0": + version: 7.18.0 + resolution: "@typescript-eslint/visitor-keys@npm:7.18.0" dependencies: - "@typescript-eslint/types": "npm:6.12.0" - eslint-visitor-keys: "npm:^3.4.1" - checksum: a96102bed6d645780d2858c13f6808e43f5565eb74066df2853db7506aa3a15034380c1ec94192ad44c77d7c8541d4e86c707203d33d1c3f3f3e4c1d9dfb5fc6 + "@typescript-eslint/types": "npm:7.18.0" + eslint-visitor-keys: "npm:^3.4.3" + checksum: 10c0/538b645f8ff1d9debf264865c69a317074eaff0255e63d7407046176b0f6a6beba34a6c51d511f12444bae12a98c69891eb6f403c9f54c6c2e2849d1c1cb73c0 languageName: node linkType: hard "@ungap/structured-clone@npm:^1.2.0": version: 1.2.0 resolution: "@ungap/structured-clone@npm:1.2.0" - checksum: 8209c937cb39119f44eb63cf90c0b73e7c754209a6411c707be08e50e29ee81356dca1a848a405c8bdeebfe2f5e4f831ad310ae1689eeef65e7445c090c6657d - languageName: node - linkType: hard - -"@web/config-loader@npm:^0.3.0": - version: 0.3.1 - resolution: "@web/config-loader@npm:0.3.1" - checksum: b9422c1e5a5bc352ebff412e5b104990d526b07750e2b295fa3586eb1ca5e1155510c21584dac9de5c10eb0905fc8350dac7a29ed313f9656289a7ba3f590db6 - languageName: node - linkType: hard - -"@web/dev-server-core@npm:^0.7.0": - version: 0.7.0 - resolution: "@web/dev-server-core@npm:0.7.0" - dependencies: - "@types/koa": "npm:^2.11.6" - "@types/ws": "npm:^7.4.0" - "@web/parse5-utils": "npm:^2.1.0" - chokidar: "npm:^3.4.3" - clone: "npm:^2.1.2" - es-module-lexer: "npm:^1.0.0" - get-stream: "npm:^6.0.0" - is-stream: "npm:^2.0.0" - isbinaryfile: "npm:^5.0.0" - koa: "npm:^2.13.0" - koa-etag: "npm:^4.0.0" - koa-send: "npm:^5.0.1" - koa-static: "npm:^5.0.0" - lru-cache: "npm:^8.0.4" - mime-types: "npm:^2.1.27" - parse5: "npm:^6.0.1" - picomatch: "npm:^2.2.2" - ws: "npm:^7.4.2" - checksum: a546b1ebb5d0691ff6d68acdbf828d2b1aa5e35cdeb290bcecfd5004567cfcf9ee60a85781ef3dfd2f72e6168f4152c431a9109deddb251f30eb946dfc650588 - languageName: node - linkType: hard - -"@web/dev-server-rollup@npm:^0.6.1": - version: 0.6.1 - resolution: "@web/dev-server-rollup@npm:0.6.1" - dependencies: - "@rollup/plugin-node-resolve": "npm:^15.0.1" - "@web/dev-server-core": "npm:^0.7.0" - nanocolors: "npm:^0.2.1" - parse5: "npm:^6.0.1" - rollup: "npm:^4.4.0" - whatwg-url: "npm:^11.0.0" - checksum: e65a7c44614ce3793f7658e70a7916648ec6fafec42c4c3fdd9ed2296161e1a17d87925683ea9b5c1f77f1b4c221d4dda6dd47a524bdc78d8406dbf6edad6ead - languageName: node - linkType: hard - -"@web/dev-server@npm:^0.4.1": - version: 0.4.1 - resolution: "@web/dev-server@npm:0.4.1" - dependencies: - "@babel/code-frame": "npm:^7.12.11" - "@types/command-line-args": "npm:^5.0.0" - "@web/config-loader": "npm:^0.3.0" - "@web/dev-server-core": "npm:^0.7.0" - "@web/dev-server-rollup": "npm:^0.6.1" - camelcase: "npm:^6.2.0" - command-line-args: "npm:^5.1.1" - command-line-usage: "npm:^7.0.1" - debounce: "npm:^1.2.0" - deepmerge: "npm:^4.2.2" - ip: "npm:^1.1.5" - nanocolors: "npm:^0.2.1" - open: "npm:^8.0.2" - portfinder: "npm:^1.0.32" - bin: - wds: dist/bin.js - web-dev-server: dist/bin.js - checksum: 9cf58108f837135c90c53d9c3f661ede44016b2763df73515feaf8604ac5b8a80d6809254f3e8d6ecb50fec6992a664c5cc599ed4fac58b9b7eba9b2fb8dd2a0 - languageName: node - linkType: hard - -"@web/parse5-utils@npm:^2.1.0": - version: 2.1.0 - resolution: "@web/parse5-utils@npm:2.1.0" - dependencies: - "@types/parse5": "npm:^6.0.1" - parse5: "npm:^6.0.1" - checksum: 9eedec69b38efd0d03640d55584e1ccc24de7818db077bd01420995014aa0bf994bd20616e4b728bc123eaca0c1572b629b29403da4c1a90c71dc91bada58667 + checksum: 10c0/8209c937cb39119f44eb63cf90c0b73e7c754209a6411c707be08e50e29ee81356dca1a848a405c8bdeebfe2f5e4f831ad310ae1689eeef65e7445c090c6657d languageName: node linkType: hard @@ -1532,14 +2555,14 @@ __metadata: through: "npm:>=2.2.7 <3" bin: JSONStream: ./bin.js - checksum: 0f54694da32224d57b715385d4a6b668d2117379d1f3223dc758459246cca58fdc4c628b83e8a8883334e454a0a30aa198ede77c788b55537c1844f686a751f2 + checksum: 10c0/0f54694da32224d57b715385d4a6b668d2117379d1f3223dc758459246cca58fdc4c628b83e8a8883334e454a0a30aa198ede77c788b55537c1844f686a751f2 languageName: node linkType: hard "abbrev@npm:^2.0.0": version: 2.0.0 resolution: "abbrev@npm:2.0.0" - checksum: f742a5a107473946f426c691c08daba61a1d15942616f300b5d32fd735be88fef5cba24201757b6c407fd564555fb48c751cfa33519b2605c8a7aadd22baf372 + checksum: 10c0/f742a5a107473946f426c691c08daba61a1d15942616f300b5d32fd735be88fef5cba24201757b6c407fd564555fb48c751cfa33519b2605c8a7aadd22baf372 languageName: node linkType: hard @@ -1548,17 +2571,7 @@ __metadata: resolution: "abort-controller@npm:3.0.0" dependencies: event-target-shim: "npm:^5.0.0" - checksum: 90ccc50f010250152509a344eb2e71977fbf8db0ab8f1061197e3275ddf6c61a41a6edfd7b9409c664513131dd96e962065415325ef23efa5db931b382d24ca5 - languageName: node - linkType: hard - -"accepts@npm:^1.3.5": - version: 1.3.8 - resolution: "accepts@npm:1.3.8" - dependencies: - mime-types: "npm:~2.1.34" - negotiator: "npm:0.6.3" - checksum: 3a35c5f5586cfb9a21163ca47a5f77ac34fa8ceb5d17d2fa2c0d81f41cbd7f8c6fa52c77e2c039acc0f4d09e71abdc51144246900f6bef5e3c4b333f77d89362 + checksum: 10c0/90ccc50f010250152509a344eb2e71977fbf8db0ab8f1061197e3275ddf6c61a41a6edfd7b9409c664513131dd96e962065415325ef23efa5db931b382d24ca5 languageName: node linkType: hard @@ -1567,7 +2580,7 @@ __metadata: resolution: "acorn-jsx@npm:5.3.2" peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - checksum: 4c54868fbef3b8d58927d5e33f0a4de35f59012fe7b12cf9dfbb345fb8f46607709e1c4431be869a23fb63c151033d84c4198fa9f79385cec34fcb1dd53974c1 + checksum: 10c0/4c54868fbef3b8d58927d5e33f0a4de35f59012fe7b12cf9dfbb345fb8f46607709e1c4431be869a23fb63c151033d84c4198fa9f79385cec34fcb1dd53974c1 languageName: node linkType: hard @@ -1576,14 +2589,14 @@ __metadata: resolution: "acorn@npm:8.11.2" bin: acorn: bin/acorn - checksum: a3ed76c761b75ec54b1ec3068fb7f113a182e95aea7f322f65098c2958d232e3d211cb6dac35ff9c647024b63714bc528a26d54a925d1fef2c25585b4c8e4017 + checksum: 10c0/a3ed76c761b75ec54b1ec3068fb7f113a182e95aea7f322f65098c2958d232e3d211cb6dac35ff9c647024b63714bc528a26d54a925d1fef2c25585b4c8e4017 languageName: node linkType: hard "add-stream@npm:^1.0.0": version: 1.0.0 resolution: "add-stream@npm:1.0.0" - checksum: 985014a14e76ca4cb24e0fc58bb1556794cf38c5c8937de335a10584f50a371dc48e1c34a59391c7eb9c1fc908b4b86764df5d2756f701df6ba95d1ca2f63ddc + checksum: 10c0/985014a14e76ca4cb24e0fc58bb1556794cf38c5c8937de335a10584f50a371dc48e1c34a59391c7eb9c1fc908b4b86764df5d2756f701df6ba95d1ca2f63ddc languageName: node linkType: hard @@ -1592,7 +2605,7 @@ __metadata: resolution: "agent-base@npm:7.1.0" dependencies: debug: "npm:^4.3.4" - checksum: fc974ab57ffdd8421a2bc339644d312a9cca320c20c3393c9d8b1fd91731b9bbabdb985df5fc860f5b79d81c3e350daa3fcb31c5c07c0bb385aafc817df004ce + checksum: 10c0/fc974ab57ffdd8421a2bc339644d312a9cca320c20c3393c9d8b1fd91731b9bbabdb985df5fc860f5b79d81c3e350daa3fcb31c5c07c0bb385aafc817df004ce languageName: node linkType: hard @@ -1602,7 +2615,7 @@ __metadata: dependencies: clean-stack: "npm:^2.0.0" indent-string: "npm:^4.0.0" - checksum: a42f67faa79e3e6687a4923050e7c9807db3848a037076f791d10e092677d65c1d2d863b7848560699f40fc0502c19f40963fb1cd1fb3d338a7423df8e45e039 + checksum: 10c0/a42f67faa79e3e6687a4923050e7c9807db3848a037076f791d10e092677d65c1d2d863b7848560699f40fc0502c19f40963fb1cd1fb3d338a7423df8e45e039 languageName: node linkType: hard @@ -1614,7 +2627,7 @@ __metadata: fast-json-stable-stringify: "npm:^2.0.0" json-schema-traverse: "npm:^0.4.1" uri-js: "npm:^4.2.2" - checksum: 41e23642cbe545889245b9d2a45854ebba51cda6c778ebced9649420d9205f2efb39cb43dbc41e358409223b1ea43303ae4839db682c848b891e4811da1a5a71 + checksum: 10c0/41e23642cbe545889245b9d2a45854ebba51cda6c778ebced9649420d9205f2efb39cb43dbc41e358409223b1ea43303ae4839db682c848b891e4811da1a5a71 languageName: node linkType: hard @@ -1622,46 +2635,61 @@ __metadata: version: 0.0.0-use.local resolution: "alwatr-notifier@workspace:." dependencies: - "@lerna-lite/changed": "npm:^3.0.0" - "@lerna-lite/cli": "npm:^3.0.0" - "@lerna-lite/diff": "npm:^3.0.0" - "@lerna-lite/exec": "npm:^3.0.0" - "@lerna-lite/publish": "npm:^3.0.0" - "@lerna-lite/run": "npm:^3.0.0" - "@lerna-lite/version": "npm:^3.0.0" - "@types/node": "npm:^20.10.0" - "@typescript-eslint/eslint-plugin": "npm:^6.12.0" - "@typescript-eslint/parser": "npm:^6.12.0" - "@web/dev-server": "npm:^0.4.1" - eslint: "npm:^8.54.0" - eslint-import-resolver-typescript: "npm:^3.6.1" - eslint-plugin-import: "npm:^2.29.0" - npm-run-all: "npm:^4.1.5" - prettier: "npm:^3.1.0" - typescript: "npm:^5.3.2" + "@alwatr/eslint-config": "npm:^1.2.11" + "@alwatr/prettier-config": "npm:^1.0.6" + "@lerna-lite/changed": "npm:^3.9.3" + "@lerna-lite/cli": "npm:^3.9.3" + "@lerna-lite/diff": "npm:^3.9.3" + "@lerna-lite/exec": "npm:^3.9.3" + "@lerna-lite/publish": "npm:^3.9.3" + "@lerna-lite/run": "npm:^3.9.3" + "@lerna-lite/version": "npm:^3.9.3" + "@types/jest": "npm:^29.5.13" + "@typescript-eslint/eslint-plugin": "npm:^7.15.0" + "@typescript-eslint/parser": "npm:^7.15.0" + conventional-changelog-conventionalcommits: "npm:^7.0.2" + eslint: "npm:^8.57.1" + eslint-import-resolver-typescript: "npm:^3.6.3" + eslint-plugin-import: "npm:^2.31.0" + eslint-plugin-require-extensions: "npm:^0.1.3" + jest: "npm:^29.7.0" + prettier: "npm:^3.3.3" + typescript: "npm:^5.6.3" languageName: unknown linkType: soft -"ansi-escapes@npm:^4.3.2": +"alwatr@npm:^2.0.3": + version: 2.0.3 + resolution: "alwatr@npm:2.0.3" + dependencies: + "@alwatr/flux": "npm:^3.2.0" + "@alwatr/nanolib": "npm:^1.3.0" + "@alwatr/nanotron": "npm:^4.4.1" + "@alwatr/nitrobase": "npm:^7.3.0" + checksum: 10c0/2540d94c96952ccc8bd1bedbb11af93e8a18716628e0f1290ecb4bf0f05ee24a9ac8678f131a003607edc27750554af46ed029ceb4feb225bc36dc58def7dfbe + languageName: node + linkType: hard + +"ansi-escapes@npm:^4.2.1, ansi-escapes@npm:^4.3.2": version: 4.3.2 resolution: "ansi-escapes@npm:4.3.2" dependencies: type-fest: "npm:^0.21.3" - checksum: da917be01871525a3dfcf925ae2977bc59e8c513d4423368645634bf5d4ceba5401574eb705c1e92b79f7292af5a656f78c5725a4b0e1cec97c4b413705c1d50 + checksum: 10c0/da917be01871525a3dfcf925ae2977bc59e8c513d4423368645634bf5d4ceba5401574eb705c1e92b79f7292af5a656f78c5725a4b0e1cec97c4b413705c1d50 languageName: node linkType: hard "ansi-regex@npm:^5.0.1": version: 5.0.1 resolution: "ansi-regex@npm:5.0.1" - checksum: 9a64bb8627b434ba9327b60c027742e5d17ac69277960d041898596271d992d4d52ba7267a63ca10232e29f6107fc8a835f6ce8d719b88c5f8493f8254813737 + checksum: 10c0/9a64bb8627b434ba9327b60c027742e5d17ac69277960d041898596271d992d4d52ba7267a63ca10232e29f6107fc8a835f6ce8d719b88c5f8493f8254813737 languageName: node linkType: hard "ansi-regex@npm:^6.0.1": version: 6.0.1 resolution: "ansi-regex@npm:6.0.1" - checksum: cbe16dbd2c6b2735d1df7976a7070dd277326434f0212f43abf6d87674095d247968209babdaad31bb00882fa68807256ba9be340eec2f1004de14ca75f52a08 + checksum: 10c0/cbe16dbd2c6b2735d1df7976a7070dd277326434f0212f43abf6d87674095d247968209babdaad31bb00882fa68807256ba9be340eec2f1004de14ca75f52a08 languageName: node linkType: hard @@ -1670,7 +2698,7 @@ __metadata: resolution: "ansi-styles@npm:3.2.1" dependencies: color-convert: "npm:^1.9.0" - checksum: ece5a8ef069fcc5298f67e3f4771a663129abd174ea2dfa87923a2be2abf6cd367ef72ac87942da00ce85bd1d651d4cd8595aebdb1b385889b89b205860e977b + checksum: 10c0/ece5a8ef069fcc5298f67e3f4771a663129abd174ea2dfa87923a2be2abf6cd367ef72ac87942da00ce85bd1d651d4cd8595aebdb1b385889b89b205860e977b languageName: node linkType: hard @@ -1679,62 +2707,54 @@ __metadata: resolution: "ansi-styles@npm:4.3.0" dependencies: color-convert: "npm:^2.0.1" - checksum: 895a23929da416f2bd3de7e9cb4eabd340949328ab85ddd6e484a637d8f6820d485f53933446f5291c3b760cbc488beb8e88573dd0f9c7daf83dccc8fe81b041 + checksum: 10c0/895a23929da416f2bd3de7e9cb4eabd340949328ab85ddd6e484a637d8f6820d485f53933446f5291c3b760cbc488beb8e88573dd0f9c7daf83dccc8fe81b041 + languageName: node + linkType: hard + +"ansi-styles@npm:^5.0.0": + version: 5.2.0 + resolution: "ansi-styles@npm:5.2.0" + checksum: 10c0/9c4ca80eb3c2fb7b33841c210d2f20807f40865d27008d7c3f707b7f95cab7d67462a565e2388ac3285b71cb3d9bb2173de8da37c57692a362885ec34d6e27df languageName: node linkType: hard "ansi-styles@npm:^6.1.0": version: 6.2.1 resolution: "ansi-styles@npm:6.2.1" - checksum: 5d1ec38c123984bcedd996eac680d548f31828bd679a66db2bdf11844634dde55fec3efa9c6bb1d89056a5e79c1ac540c4c784d592ea1d25028a92227d2f2d5c + checksum: 10c0/5d1ec38c123984bcedd996eac680d548f31828bd679a66db2bdf11844634dde55fec3efa9c6bb1d89056a5e79c1ac540c4c784d592ea1d25028a92227d2f2d5c languageName: node linkType: hard -"anymatch@npm:~3.1.2": +"anymatch@npm:^3.0.3": version: 3.1.3 resolution: "anymatch@npm:3.1.3" dependencies: normalize-path: "npm:^3.0.0" picomatch: "npm:^2.0.4" - checksum: 57b06ae984bc32a0d22592c87384cd88fe4511b1dd7581497831c56d41939c8a001b28e7b853e1450f2bf61992dfcaa8ae2d0d161a0a90c4fb631ef07098fbac + checksum: 10c0/57b06ae984bc32a0d22592c87384cd88fe4511b1dd7581497831c56d41939c8a001b28e7b853e1450f2bf61992dfcaa8ae2d0d161a0a90c4fb631ef07098fbac languageName: node linkType: hard -"aproba@npm:^1.0.3 || ^2.0.0": +"aproba@npm:^2.0.0": version: 2.0.0 resolution: "aproba@npm:2.0.0" - checksum: d06e26384a8f6245d8c8896e138c0388824e259a329e0c9f196b4fa533c82502a6fd449586e3604950a0c42921832a458bb3aa0aa9f0ba449cfd4f50fd0d09b5 + checksum: 10c0/d06e26384a8f6245d8c8896e138c0388824e259a329e0c9f196b4fa533c82502a6fd449586e3604950a0c42921832a458bb3aa0aa9f0ba449cfd4f50fd0d09b5 languageName: node linkType: hard -"are-we-there-yet@npm:^4.0.0": - version: 4.0.1 - resolution: "are-we-there-yet@npm:4.0.1" +"argparse@npm:^1.0.7": + version: 1.0.10 + resolution: "argparse@npm:1.0.10" dependencies: - delegates: "npm:^1.0.0" - readable-stream: "npm:^4.1.0" - checksum: ca4c89c08236a7ecbb909c29d0a7b9e02e1df9b0e438a75b317aa6bdcd0392bb20ce5365c4af571923a6c8c835aa85d50bf1f80c60453b794ee3b02dcdfd39bb + sprintf-js: "npm:~1.0.2" + checksum: 10c0/b2972c5c23c63df66bca144dbc65d180efa74f25f8fd9b7d9a0a6c88ae839db32df3d54770dcb6460cf840d232b60695d1a6b1053f599d84e73f7437087712de languageName: node linkType: hard "argparse@npm:^2.0.1": version: 2.0.1 resolution: "argparse@npm:2.0.1" - checksum: c5640c2d89045371c7cedd6a70212a04e360fd34d6edeae32f6952c63949e3525ea77dbec0289d8213a99bbaeab5abfa860b5c12cf88a2e6cf8106e90dd27a7e - languageName: node - linkType: hard - -"array-back@npm:^3.0.1, array-back@npm:^3.1.0": - version: 3.1.0 - resolution: "array-back@npm:3.1.0" - checksum: bb1fe86aa8b39c21e73c68c7abf8b05ed939b8951a3b17527217f6a2a84e00e4cfa4fdec823081689c5e216709bf1f214a4f5feeee6726eaff83897fa1a7b8ee - languageName: node - linkType: hard - -"array-back@npm:^6.2.2": - version: 6.2.2 - resolution: "array-back@npm:6.2.2" - checksum: c98a6e43b669400f58e2fba478336d5d02aac970566ffae3af0cb9b5585ec3811a1e010c76e34fb809a9762e6822a43a9c9a1b99f2a35f43b11a9e198e782818 + checksum: 10c0/c5640c2d89045371c7cedd6a70212a04e360fd34d6edeae32f6952c63949e3525ea77dbec0289d8213a99bbaeab5abfa860b5c12cf88a2e6cf8106e90dd27a7e languageName: node linkType: hard @@ -1744,61 +2764,73 @@ __metadata: dependencies: call-bind: "npm:^1.0.2" is-array-buffer: "npm:^3.0.1" - checksum: 12f84f6418b57a954caa41654e5e63e019142a4bbb2c6829ba86d1ba65d31ccfaf1461d1743556fd32b091fac34ff44d9dfbdb001402361c45c373b2c86f5c20 + checksum: 10c0/12f84f6418b57a954caa41654e5e63e019142a4bbb2c6829ba86d1ba65d31ccfaf1461d1743556fd32b091fac34ff44d9dfbdb001402361c45c373b2c86f5c20 + languageName: node + linkType: hard + +"array-buffer-byte-length@npm:^1.0.1": + version: 1.0.1 + resolution: "array-buffer-byte-length@npm:1.0.1" + dependencies: + call-bind: "npm:^1.0.5" + is-array-buffer: "npm:^3.0.4" + checksum: 10c0/f5cdf54527cd18a3d2852ddf73df79efec03829e7373a8322ef5df2b4ef546fb365c19c71d6b42d641cb6bfe0f1a2f19bc0ece5b533295f86d7c3d522f228917 languageName: node linkType: hard "array-differ@npm:^4.0.0": version: 4.0.0 resolution: "array-differ@npm:4.0.0" - checksum: 72c035c505a7629d2983827a16654d73db6a9a2d6340ba9d0803aed516f46a202f3b7042c5a4a57534952f7477ca5394f3b65ecb9be5192e5d269f445f066d75 + checksum: 10c0/72c035c505a7629d2983827a16654d73db6a9a2d6340ba9d0803aed516f46a202f3b7042c5a4a57534952f7477ca5394f3b65ecb9be5192e5d269f445f066d75 languageName: node linkType: hard "array-ify@npm:^1.0.0": version: 1.0.0 resolution: "array-ify@npm:1.0.0" - checksum: 75c9c072faac47bd61779c0c595e912fe660d338504ac70d10e39e1b8a4a0c9c87658703d619b9d1b70d324177ae29dc8d07dda0d0a15d005597bc4c5a59c70c + checksum: 10c0/75c9c072faac47bd61779c0c595e912fe660d338504ac70d10e39e1b8a4a0c9c87658703d619b9d1b70d324177ae29dc8d07dda0d0a15d005597bc4c5a59c70c languageName: node linkType: hard -"array-includes@npm:^3.1.7": - version: 3.1.7 - resolution: "array-includes@npm:3.1.7" +"array-includes@npm:^3.1.8": + version: 3.1.8 + resolution: "array-includes@npm:3.1.8" dependencies: - call-bind: "npm:^1.0.2" - define-properties: "npm:^1.2.0" - es-abstract: "npm:^1.22.1" - get-intrinsic: "npm:^1.2.1" + call-bind: "npm:^1.0.7" + define-properties: "npm:^1.2.1" + es-abstract: "npm:^1.23.2" + es-object-atoms: "npm:^1.0.0" + get-intrinsic: "npm:^1.2.4" is-string: "npm:^1.0.7" - checksum: 692907bd7f19d06dc58ccb761f34b58f5dc0b437d2b47a8fe42a1501849a5cf5c27aed3d521a9702667827c2c85a7e75df00a402c438094d87fc43f39ebf9b2b + checksum: 10c0/5b1004d203e85873b96ddc493f090c9672fd6c80d7a60b798da8a14bff8a670ff95db5aafc9abc14a211943f05220dacf8ea17638ae0af1a6a47b8c0b48ce370 languageName: node linkType: hard "array-union@npm:^2.1.0": version: 2.1.0 resolution: "array-union@npm:2.1.0" - checksum: 429897e68110374f39b771ec47a7161fc6a8fc33e196857c0a396dc75df0b5f65e4d046674db764330b6bb66b39ef48dd7c53b6a2ee75cfb0681e0c1a7033962 + checksum: 10c0/429897e68110374f39b771ec47a7161fc6a8fc33e196857c0a396dc75df0b5f65e4d046674db764330b6bb66b39ef48dd7c53b6a2ee75cfb0681e0c1a7033962 languageName: node linkType: hard "array-union@npm:^3.0.1": version: 3.0.1 resolution: "array-union@npm:3.0.1" - checksum: b5271d7e5688d2d1932928b271796dbbddc422448557ab05ef6f34a9f84fb645eb855384feec6234bf59c226053a0e21b8a00b0e6cd588874b90a5c13dbeb64e + checksum: 10c0/b5271d7e5688d2d1932928b271796dbbddc422448557ab05ef6f34a9f84fb645eb855384feec6234bf59c226053a0e21b8a00b0e6cd588874b90a5c13dbeb64e languageName: node linkType: hard -"array.prototype.findlastindex@npm:^1.2.3": - version: 1.2.3 - resolution: "array.prototype.findlastindex@npm:1.2.3" +"array.prototype.findlastindex@npm:^1.2.5": + version: 1.2.5 + resolution: "array.prototype.findlastindex@npm:1.2.5" dependencies: - call-bind: "npm:^1.0.2" - define-properties: "npm:^1.2.0" - es-abstract: "npm:^1.22.1" - es-shim-unscopables: "npm:^1.0.0" - get-intrinsic: "npm:^1.2.1" - checksum: 2c5c4d3f07512d6729f728f6260a314c00f2eb0a243123092661fa1bc65dce90234c3b483b5f978396eccef6f69c50f0bea248448aaf9cdfcd1cedad6217acbb + call-bind: "npm:^1.0.7" + define-properties: "npm:^1.2.1" + es-abstract: "npm:^1.23.2" + es-errors: "npm:^1.3.0" + es-object-atoms: "npm:^1.0.0" + es-shim-unscopables: "npm:^1.0.2" + checksum: 10c0/962189487728b034f3134802b421b5f39e42ee2356d13b42d2ddb0e52057ffdcc170b9524867f4f0611a6f638f4c19b31e14606e8bcbda67799e26685b195aa3 languageName: node linkType: hard @@ -1810,7 +2842,7 @@ __metadata: define-properties: "npm:^1.2.0" es-abstract: "npm:^1.22.1" es-shim-unscopables: "npm:^1.0.0" - checksum: a578ed836a786efbb6c2db0899ae80781b476200617f65a44846cb1ed8bd8b24c8821b83703375d8af639c689497b7b07277060024b9919db94ac3e10dc8a49b + checksum: 10c0/a578ed836a786efbb6c2db0899ae80781b476200617f65a44846cb1ed8bd8b24c8821b83703375d8af639c689497b7b07277060024b9919db94ac3e10dc8a49b languageName: node linkType: hard @@ -1822,7 +2854,7 @@ __metadata: define-properties: "npm:^1.2.0" es-abstract: "npm:^1.22.1" es-shim-unscopables: "npm:^1.0.0" - checksum: 67b3f1d602bb73713265145853128b1ad77cc0f9b833c7e1e056b323fbeac41a4ff1c9c99c7b9445903caea924d9ca2450578d9011913191aa88cc3c3a4b54f4 + checksum: 10c0/67b3f1d602bb73713265145853128b1ad77cc0f9b833c7e1e056b323fbeac41a4ff1c9c99c7b9445903caea924d9ca2450578d9011913191aa88cc3c3a4b54f4 languageName: node linkType: hard @@ -1837,81 +2869,144 @@ __metadata: get-intrinsic: "npm:^1.2.1" is-array-buffer: "npm:^3.0.2" is-shared-array-buffer: "npm:^1.0.2" - checksum: 96b6e40e439678ffb7fa266398510074d33c3980fbb475490b69980cca60adec3b0777047ef377068a29862157f83edef42efc64ce48ce38977d04d68de5b7fb - languageName: node - linkType: hard - -"arrify@npm:^1.0.1": - version: 1.0.1 - resolution: "arrify@npm:1.0.1" - checksum: c35c8d1a81bcd5474c0c57fe3f4bad1a4d46a5fa353cedcff7a54da315df60db71829e69104b859dff96c5d68af46bd2be259fe5e50dc6aa9df3b36bea0383ab + checksum: 10c0/96b6e40e439678ffb7fa266398510074d33c3980fbb475490b69980cca60adec3b0777047ef377068a29862157f83edef42efc64ce48ce38977d04d68de5b7fb languageName: node linkType: hard -"async@npm:^2.6.4": - version: 2.6.4 - resolution: "async@npm:2.6.4" +"arraybuffer.prototype.slice@npm:^1.0.3": + version: 1.0.3 + resolution: "arraybuffer.prototype.slice@npm:1.0.3" dependencies: - lodash: "npm:^4.17.14" - checksum: 0ebb3273ef96513389520adc88e0d3c45e523d03653cc9b66f5c46f4239444294899bfd13d2b569e7dbfde7da2235c35cf5fd3ece9524f935d41bbe4efccdad0 + array-buffer-byte-length: "npm:^1.0.1" + call-bind: "npm:^1.0.5" + define-properties: "npm:^1.2.1" + es-abstract: "npm:^1.22.3" + es-errors: "npm:^1.2.1" + get-intrinsic: "npm:^1.2.3" + is-array-buffer: "npm:^3.0.4" + is-shared-array-buffer: "npm:^1.0.2" + checksum: 10c0/d32754045bcb2294ade881d45140a5e52bda2321b9e98fa514797b7f0d252c4c5ab0d1edb34112652c62fa6a9398def568da63a4d7544672229afea283358c36 languageName: node linkType: hard "available-typed-arrays@npm:^1.0.5": version: 1.0.5 resolution: "available-typed-arrays@npm:1.0.5" - checksum: c4df567ca72d2754a6cbad20088f5f98b1065b3360178169fa9b44ea101af62c0f423fc3854fa820fd6895b6b9171b8386e71558203103ff8fc2ad503fdcc660 + checksum: 10c0/c4df567ca72d2754a6cbad20088f5f98b1065b3360178169fa9b44ea101af62c0f423fc3854fa820fd6895b6b9171b8386e71558203103ff8fc2ad503fdcc660 languageName: node linkType: hard -"balanced-match@npm:^1.0.0": - version: 1.0.2 - resolution: "balanced-match@npm:1.0.2" - checksum: 9308baf0a7e4838a82bbfd11e01b1cb0f0cf2893bc1676c27c2a8c0e70cbae1c59120c3268517a8ae7fb6376b4639ef81ca22582611dbee4ed28df945134aaee +"available-typed-arrays@npm:^1.0.7": + version: 1.0.7 + resolution: "available-typed-arrays@npm:1.0.7" + dependencies: + possible-typed-array-names: "npm:^1.0.0" + checksum: 10c0/d07226ef4f87daa01bd0fe80f8f310982e345f372926da2e5296aecc25c41cab440916bbaa4c5e1034b453af3392f67df5961124e4b586df1e99793a1374bdb2 languageName: node linkType: hard -"base64-js@npm:^1.3.1": - version: 1.5.1 - resolution: "base64-js@npm:1.5.1" - checksum: f23823513b63173a001030fae4f2dabe283b99a9d324ade3ad3d148e218134676f1ee8568c877cd79ec1c53158dcf2d2ba527a97c606618928ba99dd930102bf +"babel-jest@npm:^29.7.0": + version: 29.7.0 + resolution: "babel-jest@npm:29.7.0" + dependencies: + "@jest/transform": "npm:^29.7.0" + "@types/babel__core": "npm:^7.1.14" + babel-plugin-istanbul: "npm:^6.1.1" + babel-preset-jest: "npm:^29.6.3" + chalk: "npm:^4.0.0" + graceful-fs: "npm:^4.2.9" + slash: "npm:^3.0.0" + peerDependencies: + "@babel/core": ^7.8.0 + checksum: 10c0/2eda9c1391e51936ca573dd1aedfee07b14c59b33dbe16ef347873ddd777bcf6e2fc739681e9e9661ab54ef84a3109a03725be2ac32cd2124c07ea4401cbe8c1 languageName: node linkType: hard -"before-after-hook@npm:^2.2.0": - version: 2.2.3 - resolution: "before-after-hook@npm:2.2.3" - checksum: 0488c4ae12df758ca9d49b3bb27b47fd559677965c52cae7b335784724fb8bf96c42b6e5ba7d7afcbc31facb0e294c3ef717cc41c5bc2f7bd9e76f8b90acd31c +"babel-plugin-istanbul@npm:^6.1.1": + version: 6.1.1 + resolution: "babel-plugin-istanbul@npm:6.1.1" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.0.0" + "@istanbuljs/load-nyc-config": "npm:^1.0.0" + "@istanbuljs/schema": "npm:^0.1.2" + istanbul-lib-instrument: "npm:^5.0.4" + test-exclude: "npm:^6.0.0" + checksum: 10c0/1075657feb705e00fd9463b329921856d3775d9867c5054b449317d39153f8fbcebd3e02ebf00432824e647faff3683a9ca0a941325ef1afe9b3c4dd51b24beb languageName: node linkType: hard -"bin-links@npm:^4.0.1": - version: 4.0.3 - resolution: "bin-links@npm:4.0.3" +"babel-plugin-jest-hoist@npm:^29.6.3": + version: 29.6.3 + resolution: "babel-plugin-jest-hoist@npm:29.6.3" dependencies: - cmd-shim: "npm:^6.0.0" - npm-normalize-package-bin: "npm:^3.0.0" - read-cmd-shim: "npm:^4.0.0" - write-file-atomic: "npm:^5.0.0" - checksum: 66668e005743e7e8df2ecf3018c0f06c5a87043647280e334abb4577bdef124df2893cd0c61eb7261d24ed9a6a1dc35fd8c4f930c89200251974840b3286236f + "@babel/template": "npm:^7.3.3" + "@babel/types": "npm:^7.3.3" + "@types/babel__core": "npm:^7.1.14" + "@types/babel__traverse": "npm:^7.0.6" + checksum: 10c0/7e6451caaf7dce33d010b8aafb970e62f1b0c0b57f4978c37b0d457bbcf0874d75a395a102daf0bae0bd14eafb9f6e9a165ee5e899c0a4f1f3bb2e07b304ed2e languageName: node linkType: hard -"binary-extensions@npm:^2.0.0": - version: 2.2.0 - resolution: "binary-extensions@npm:2.2.0" - checksum: d73d8b897238a2d3ffa5f59c0241870043aa7471335e89ea5e1ff48edb7c2d0bb471517a3e4c5c3f4c043615caa2717b5f80a5e61e07503d51dc85cb848e665d +"babel-preset-current-node-syntax@npm:^1.0.0": + version: 1.1.0 + resolution: "babel-preset-current-node-syntax@npm:1.1.0" + dependencies: + "@babel/plugin-syntax-async-generators": "npm:^7.8.4" + "@babel/plugin-syntax-bigint": "npm:^7.8.3" + "@babel/plugin-syntax-class-properties": "npm:^7.12.13" + "@babel/plugin-syntax-class-static-block": "npm:^7.14.5" + "@babel/plugin-syntax-import-attributes": "npm:^7.24.7" + "@babel/plugin-syntax-import-meta": "npm:^7.10.4" + "@babel/plugin-syntax-json-strings": "npm:^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators": "npm:^7.10.4" + "@babel/plugin-syntax-nullish-coalescing-operator": "npm:^7.8.3" + "@babel/plugin-syntax-numeric-separator": "npm:^7.10.4" + "@babel/plugin-syntax-object-rest-spread": "npm:^7.8.3" + "@babel/plugin-syntax-optional-catch-binding": "npm:^7.8.3" + "@babel/plugin-syntax-optional-chaining": "npm:^7.8.3" + "@babel/plugin-syntax-private-property-in-object": "npm:^7.14.5" + "@babel/plugin-syntax-top-level-await": "npm:^7.14.5" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10c0/0b838d4412e3322cb4436f246e24e9c00bebcedfd8f00a2f51489db683bd35406bbd55a700759c28d26959c6e03f84dd6a1426f576f440267c1d7a73c5717281 languageName: node linkType: hard -"bl@npm:^4.1.0": - version: 4.1.0 - resolution: "bl@npm:4.1.0" +"babel-preset-jest@npm:^29.6.3": + version: 29.6.3 + resolution: "babel-preset-jest@npm:29.6.3" + dependencies: + babel-plugin-jest-hoist: "npm:^29.6.3" + babel-preset-current-node-syntax: "npm:^1.0.0" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10c0/ec5fd0276b5630b05f0c14bb97cc3815c6b31600c683ebb51372e54dcb776cff790bdeeabd5b8d01ede375a040337ccbf6a3ccd68d3a34219125945e167ad943 + languageName: node + linkType: hard + +"balanced-match@npm:^1.0.0": + version: 1.0.2 + resolution: "balanced-match@npm:1.0.2" + checksum: 10c0/9308baf0a7e4838a82bbfd11e01b1cb0f0cf2893bc1676c27c2a8c0e70cbae1c59120c3268517a8ae7fb6376b4639ef81ca22582611dbee4ed28df945134aaee + languageName: node + linkType: hard + +"before-after-hook@npm:^3.0.2": + version: 3.0.2 + resolution: "before-after-hook@npm:3.0.2" + checksum: 10c0/dea640f9e88a1085372c9bcc974b7bf379267490693da92ec102a7d8b515dd1e95f00ef575a146b83ca638104c57406c3427d37bdf082f602dde4b56d05bba14 + languageName: node + linkType: hard + +"bin-links@npm:^4.0.4": + version: 4.0.4 + resolution: "bin-links@npm:4.0.4" dependencies: - buffer: "npm:^5.5.0" - inherits: "npm:^2.0.4" - readable-stream: "npm:^3.4.0" - checksum: 02847e1d2cb089c9dc6958add42e3cdeaf07d13f575973963335ac0fdece563a50ac770ac4c8fa06492d2dd276f6cc3b7f08c7cd9c7a7ad0f8d388b2a28def5f + cmd-shim: "npm:^6.0.0" + npm-normalize-package-bin: "npm:^3.0.0" + read-cmd-shim: "npm:^4.0.0" + write-file-atomic: "npm:^5.0.0" + checksum: 10c0/feb664e786429289d189c19c193b28d855c2898bc53b8391306cbad2273b59ccecb91fd31a433020019552c3bad3a1e0eeecca1c12e739a12ce2ca94f7553a17 languageName: node linkType: hard @@ -1921,7 +3016,7 @@ __metadata: dependencies: balanced-match: "npm:^1.0.0" concat-map: "npm:0.0.1" - checksum: 695a56cd058096a7cb71fb09d9d6a7070113c7be516699ed361317aca2ec169f618e28b8af352e02ab4233fb54eb0168460a40dc320bab0034b36ab59aaad668 + checksum: 10c0/695a56cd058096a7cb71fb09d9d6a7070113c7be516699ed361317aca2ec169f618e28b8af352e02ab4233fb54eb0168460a40dc320bab0034b36ab59aaad668 languageName: node linkType: hard @@ -1930,74 +3025,46 @@ __metadata: resolution: "brace-expansion@npm:2.0.1" dependencies: balanced-match: "npm:^1.0.0" - checksum: b358f2fe060e2d7a87aa015979ecea07f3c37d4018f8d6deb5bd4c229ad3a0384fe6029bb76cd8be63c81e516ee52d1a0673edbe2023d53a5191732ae3c3e49f + checksum: 10c0/b358f2fe060e2d7a87aa015979ecea07f3c37d4018f8d6deb5bd4c229ad3a0384fe6029bb76cd8be63c81e516ee52d1a0673edbe2023d53a5191732ae3c3e49f languageName: node linkType: hard -"braces@npm:^3.0.2, braces@npm:~3.0.2": +"braces@npm:^3.0.2": version: 3.0.2 resolution: "braces@npm:3.0.2" dependencies: fill-range: "npm:^7.0.1" - checksum: 321b4d675791479293264019156ca322163f02dc06e3c4cab33bb15cd43d80b51efef69b0930cfde3acd63d126ebca24cd0544fa6f261e093a0fb41ab9dda381 - languageName: node - linkType: hard - -"buffer-alloc-unsafe@npm:^1.1.0": - version: 1.1.0 - resolution: "buffer-alloc-unsafe@npm:1.1.0" - checksum: 06b9298c9369621a830227c3797ceb3ff5535e323946d7b39a7398fed8b3243798259b3c85e287608c5aad35ccc551cec1a0a5190cc8f39652e8eee25697fc9c + checksum: 10c0/321b4d675791479293264019156ca322163f02dc06e3c4cab33bb15cd43d80b51efef69b0930cfde3acd63d126ebca24cd0544fa6f261e093a0fb41ab9dda381 languageName: node linkType: hard -"buffer-alloc@npm:^1.2.0": - version: 1.2.0 - resolution: "buffer-alloc@npm:1.2.0" +"browserslist@npm:^4.24.0": + version: 4.24.0 + resolution: "browserslist@npm:4.24.0" dependencies: - buffer-alloc-unsafe: "npm:^1.1.0" - buffer-fill: "npm:^1.0.0" - checksum: 09d87dd53996342ccfbeb2871257d8cdb25ce9ee2259adc95c6490200cd6e528c5fbae8f30bcc323fe8d8efb0fe541e4ac3bbe9ee3f81c6b7c4b27434cc02ab4 + caniuse-lite: "npm:^1.0.30001663" + electron-to-chromium: "npm:^1.5.28" + node-releases: "npm:^2.0.18" + update-browserslist-db: "npm:^1.1.0" + bin: + browserslist: cli.js + checksum: 10c0/95e76ad522753c4c470427f6e3c8a4bb5478ff448841e22b3d3e53f89ecaf17b6984666d6c7e715c370f1e7fa0cf684f42e34e554236a8b2fab38ea76b9e4c52 languageName: node linkType: hard -"buffer-fill@npm:^1.0.0": - version: 1.0.0 - resolution: "buffer-fill@npm:1.0.0" - checksum: 55b5654fbbf2d7ceb4991bb537f5e5b5b5b9debca583fee416a74fcec47c16d9e7a90c15acd27577da7bd750b7fa6396e77e7c221e7af138b6d26242381c6e4d +"bser@npm:2.1.1": + version: 2.1.1 + resolution: "bser@npm:2.1.1" + dependencies: + node-int64: "npm:^0.4.0" + checksum: 10c0/24d8dfb7b6d457d73f32744e678a60cc553e4ec0e9e1a01cf614b44d85c3c87e188d3cc78ef0442ce5032ee6818de20a0162ba1074725c0d08908f62ea979227 languageName: node linkType: hard "buffer-from@npm:^1.0.0": version: 1.1.2 resolution: "buffer-from@npm:1.1.2" - checksum: 124fff9d66d691a86d3b062eff4663fe437a9d9ee4b47b1b9e97f5a5d14f6d5399345db80f796827be7c95e70a8e765dd404b7c3ff3b3324f98e9b0c8826cc34 - languageName: node - linkType: hard - -"buffer@npm:^5.5.0": - version: 5.7.1 - resolution: "buffer@npm:5.7.1" - dependencies: - base64-js: "npm:^1.3.1" - ieee754: "npm:^1.1.13" - checksum: 27cac81cff434ed2876058d72e7c4789d11ff1120ef32c9de48f59eab58179b66710c488987d295ae89a228f835fc66d088652dffeb8e3ba8659f80eb091d55e - languageName: node - linkType: hard - -"buffer@npm:^6.0.3": - version: 6.0.3 - resolution: "buffer@npm:6.0.3" - dependencies: - base64-js: "npm:^1.3.1" - ieee754: "npm:^1.2.1" - checksum: 2a905fbbcde73cc5d8bd18d1caa23715d5f83a5935867c2329f0ac06104204ba7947be098fe1317fbd8830e26090ff8e764f08cd14fefc977bb248c3487bcbd0 - languageName: node - linkType: hard - -"builtin-modules@npm:^3.3.0": - version: 3.3.0 - resolution: "builtin-modules@npm:3.3.0" - checksum: 2cb3448b4f7306dc853632a4fcddc95e8d4e4b9868c139400027b71938fc6806d4ff44007deffb362ac85724bd40c2c6452fb6a0aa4531650eeddb98d8e5ee8a + checksum: 10c0/124fff9d66d691a86d3b062eff4663fe437a9d9ee4b47b1b9e97f5a5d14f6d5399345db80f796827be7c95e70a8e765dd404b7c3ff3b3324f98e9b0c8826cc34 languageName: node linkType: hard @@ -2006,14 +3073,14 @@ __metadata: resolution: "builtins@npm:5.0.1" dependencies: semver: "npm:^7.0.0" - checksum: 9390a51a9abbc0233dac79c66715f927508b9d0c62cb7a42448fe8c52def60c707e6e9eb2cc4c9b7aba11601899935bca4e4064ae5e19c04c7e1bb9309e69134 + checksum: 10c0/9390a51a9abbc0233dac79c66715f927508b9d0c62cb7a42448fe8c52def60c707e6e9eb2cc4c9b7aba11601899935bca4e4064ae5e19c04c7e1bb9309e69134 languageName: node linkType: hard -"byte-size@npm:^8.1.1": - version: 8.1.1 - resolution: "byte-size@npm:8.1.1" - checksum: 83170a16820fde48ebaef93bf6b2e86c5f72041f76e44eba1f3c738cceb699aeadf11088198944d5d7c6f970b465ab1e3dddc2e60bfb49a74374f3447a8db5b9 +"byte-size@npm:^9.0.0": + version: 9.0.0 + resolution: "byte-size@npm:9.0.0" + checksum: 10c0/1ae27afb966981e8e8347657a5b81b407c03386026b502237bfc0c0c253f26def6795b0f3bf44788286c6c49d1cf562398f5646e4f3ceba48b964b4852d83b33 languageName: node linkType: hard @@ -2033,17 +3100,27 @@ __metadata: ssri: "npm:^10.0.0" tar: "npm:^6.1.11" unique-filename: "npm:^3.0.0" - checksum: e359823778d712ad365740cef3f488d4f74c62cc79be5935896d9597a7d81033e50c54c15898fa9cc018620879307ab30d1dddc476ae705bfd5b29c145ae6938 + checksum: 10c0/e359823778d712ad365740cef3f488d4f74c62cc79be5935896d9597a7d81033e50c54c15898fa9cc018620879307ab30d1dddc476ae705bfd5b29c145ae6938 languageName: node linkType: hard -"cache-content-type@npm:^1.0.0": - version: 1.0.1 - resolution: "cache-content-type@npm:1.0.1" +"cacache@npm:^18.0.3": + version: 18.0.4 + resolution: "cacache@npm:18.0.4" dependencies: - mime-types: "npm:^2.1.18" - ylru: "npm:^1.2.0" - checksum: 59b50e29e64a24bb52a16e5d35b69ad27ef14313701acc5e462b0aeebf2f09ff87fb6538eb0c0f0de4de05c8a1eecaef47f455f5b4928079e68f607f816a0843 + "@npmcli/fs": "npm:^3.1.0" + fs-minipass: "npm:^3.0.0" + glob: "npm:^10.2.2" + lru-cache: "npm:^10.0.1" + minipass: "npm:^7.0.3" + minipass-collect: "npm:^2.0.1" + minipass-flush: "npm:^1.0.5" + minipass-pipeline: "npm:^1.2.4" + p-map: "npm:^4.0.0" + ssri: "npm:^10.0.0" + tar: "npm:^6.1.11" + unique-filename: "npm:^3.0.0" + checksum: 10c0/6c055bafed9de4f3dcc64ac3dc7dd24e863210902b7c470eb9ce55a806309b3efff78033e3d8b4f7dcc5d467f2db43c6a2857aaaf26f0094b8a351d44c42179f languageName: node linkType: hard @@ -2054,164 +3131,118 @@ __metadata: function-bind: "npm:^1.1.2" get-intrinsic: "npm:^1.2.1" set-function-length: "npm:^1.1.1" - checksum: a6172c168fd6dacf744fcde745099218056bd755c50415b592655dcd6562157ed29f130f56c3f6db2250f67e4bd62e5c218cdc56d7bfd76e0bda50770fce2d10 + checksum: 10c0/a6172c168fd6dacf744fcde745099218056bd755c50415b592655dcd6562157ed29f130f56c3f6db2250f67e4bd62e5c218cdc56d7bfd76e0bda50770fce2d10 languageName: node linkType: hard -"callsites@npm:^3.0.0": - version: 3.1.0 - resolution: "callsites@npm:3.1.0" - checksum: fff92277400eb06c3079f9e74f3af120db9f8ea03bad0e84d9aede54bbe2d44a56cccb5f6cf12211f93f52306df87077ecec5b712794c5a9b5dac6d615a3f301 +"call-bind@npm:^1.0.6, call-bind@npm:^1.0.7": + version: 1.0.7 + resolution: "call-bind@npm:1.0.7" + dependencies: + es-define-property: "npm:^1.0.0" + es-errors: "npm:^1.3.0" + function-bind: "npm:^1.1.2" + get-intrinsic: "npm:^1.2.4" + set-function-length: "npm:^1.2.1" + checksum: 10c0/a3ded2e423b8e2a265983dba81c27e125b48eefb2655e7dfab6be597088da3d47c47976c24bc51b8fd9af1061f8f87b4ab78a314f3c77784b2ae2ba535ad8b8d languageName: node linkType: hard -"camelcase-keys@npm:^6.2.2": - version: 6.2.2 - resolution: "camelcase-keys@npm:6.2.2" - dependencies: - camelcase: "npm:^5.3.1" - map-obj: "npm:^4.0.0" - quick-lru: "npm:^4.0.1" - checksum: bf1a28348c0f285c6c6f68fb98a9d088d3c0269fed0cdff3ea680d5a42df8a067b4de374e7a33e619eb9d5266a448fe66c2dd1f8e0c9209ebc348632882a3526 +"callsites@npm:^3.0.0": + version: 3.1.0 + resolution: "callsites@npm:3.1.0" + checksum: 10c0/fff92277400eb06c3079f9e74f3af120db9f8ea03bad0e84d9aede54bbe2d44a56cccb5f6cf12211f93f52306df87077ecec5b712794c5a9b5dac6d615a3f301 languageName: node linkType: hard "camelcase@npm:^5.3.1": version: 5.3.1 resolution: "camelcase@npm:5.3.1" - checksum: 92ff9b443bfe8abb15f2b1513ca182d16126359ad4f955ebc83dc4ddcc4ef3fdd2c078bc223f2673dc223488e75c99b16cc4d056624374b799e6a1555cf61b23 + checksum: 10c0/92ff9b443bfe8abb15f2b1513ca182d16126359ad4f955ebc83dc4ddcc4ef3fdd2c078bc223f2673dc223488e75c99b16cc4d056624374b799e6a1555cf61b23 languageName: node linkType: hard "camelcase@npm:^6.2.0": version: 6.3.0 resolution: "camelcase@npm:6.3.0" - checksum: 0d701658219bd3116d12da3eab31acddb3f9440790c0792e0d398f0a520a6a4058018e546862b6fba89d7ae990efaeb97da71e1913e9ebf5a8b5621a3d55c710 + checksum: 10c0/0d701658219bd3116d12da3eab31acddb3f9440790c0792e0d398f0a520a6a4058018e546862b6fba89d7ae990efaeb97da71e1913e9ebf5a8b5621a3d55c710 languageName: node linkType: hard -"chalk-template@npm:^0.4.0": - version: 0.4.0 - resolution: "chalk-template@npm:0.4.0" - dependencies: - chalk: "npm:^4.1.2" - checksum: 6a4cb4252966475f0bd3ee1cd8780146e1ba69f445e59c565cab891ac18708c8143515d23e2b0fb7e192574fb7608d429ea5b28f3b7b9507770ad6fccd3467e3 +"caniuse-lite@npm:^1.0.30001663": + version: 1.0.30001669 + resolution: "caniuse-lite@npm:1.0.30001669" + checksum: 10c0/f125f23440d3dbb6c25ffb8d55f4ce48af36a84d0932b152b3b74f143a4170cbe92e02b0a9676209c86609bf7bf34119ff10cc2bc7c1b7ea40e936cc16598408 languageName: node linkType: hard -"chalk@npm:^2.4.1, chalk@npm:^2.4.2": +"chalk@npm:^2.4.2": version: 2.4.2 resolution: "chalk@npm:2.4.2" dependencies: ansi-styles: "npm:^3.2.1" escape-string-regexp: "npm:^1.0.5" supports-color: "npm:^5.3.0" - checksum: e6543f02ec877732e3a2d1c3c3323ddb4d39fbab687c23f526e25bd4c6a9bf3b83a696e8c769d078e04e5754921648f7821b2a2acfd16c550435fd630026e073 + checksum: 10c0/e6543f02ec877732e3a2d1c3c3323ddb4d39fbab687c23f526e25bd4c6a9bf3b83a696e8c769d078e04e5754921648f7821b2a2acfd16c550435fd630026e073 languageName: node linkType: hard -"chalk@npm:^4.0.0, chalk@npm:^4.1.0, chalk@npm:^4.1.2": +"chalk@npm:^4.0.0": version: 4.1.2 resolution: "chalk@npm:4.1.2" dependencies: ansi-styles: "npm:^4.1.0" supports-color: "npm:^7.1.0" - checksum: 4a3fef5cc34975c898ffe77141450f679721df9dde00f6c304353fa9c8b571929123b26a0e4617bde5018977eb655b31970c297b91b63ee83bb82aeb04666880 - languageName: node - linkType: hard - -"chalk@npm:^5.3.0": - version: 5.3.0 - resolution: "chalk@npm:5.3.0" - checksum: 8297d436b2c0f95801103ff2ef67268d362021b8210daf8ddbe349695333eb3610a71122172ff3b0272f1ef2cf7cc2c41fdaa4715f52e49ffe04c56340feed09 - languageName: node - linkType: hard - -"chardet@npm:^0.7.0": - version: 0.7.0 - resolution: "chardet@npm:0.7.0" - checksum: 96e4731b9ec8050cbb56ab684e8c48d6c33f7826b755802d14e3ebfdc51c57afeece3ea39bc6b09acc359e4363525388b915e16640c1378053820f5e70d0f27d + checksum: 10c0/4a3fef5cc34975c898ffe77141450f679721df9dde00f6c304353fa9c8b571929123b26a0e4617bde5018977eb655b31970c297b91b63ee83bb82aeb04666880 languageName: node linkType: hard -"chokidar@npm:^3.4.3": - version: 3.5.3 - resolution: "chokidar@npm:3.5.3" - dependencies: - anymatch: "npm:~3.1.2" - braces: "npm:~3.0.2" - fsevents: "npm:~2.3.2" - glob-parent: "npm:~5.1.2" - is-binary-path: "npm:~2.1.0" - is-glob: "npm:~4.0.1" - normalize-path: "npm:~3.0.0" - readdirp: "npm:~3.6.0" - dependenciesMeta: - fsevents: - optional: true - checksum: 1076953093e0707c882a92c66c0f56ba6187831aa51bb4de878c1fec59ae611a3bf02898f190efec8e77a086b8df61c2b2a3ea324642a0558bdf8ee6c5dc9ca1 +"char-regex@npm:^1.0.2": + version: 1.0.2 + resolution: "char-regex@npm:1.0.2" + checksum: 10c0/57a09a86371331e0be35d9083ba429e86c4f4648ecbe27455dbfb343037c16ee6fdc7f6b61f433a57cc5ded5561d71c56a150e018f40c2ffb7bc93a26dae341e languageName: node linkType: hard "chownr@npm:^2.0.0": version: 2.0.0 resolution: "chownr@npm:2.0.0" - checksum: 594754e1303672171cc04e50f6c398ae16128eb134a88f801bf5354fd96f205320f23536a045d9abd8b51024a149696e51231565891d4efdab8846021ecf88e6 + checksum: 10c0/594754e1303672171cc04e50f6c398ae16128eb134a88f801bf5354fd96f205320f23536a045d9abd8b51024a149696e51231565891d4efdab8846021ecf88e6 languageName: node linkType: hard "ci-info@npm:^3.2.0": version: 3.9.0 resolution: "ci-info@npm:3.9.0" - checksum: 6f0109e36e111684291d46123d491bc4e7b7a1934c3a20dea28cba89f1d4a03acd892f5f6a81ed3855c38647e285a150e3c9ba062e38943bef57fee6c1554c3a + checksum: 10c0/6f0109e36e111684291d46123d491bc4e7b7a1934c3a20dea28cba89f1d4a03acd892f5f6a81ed3855c38647e285a150e3c9ba062e38943bef57fee6c1554c3a languageName: node linkType: hard "ci-info@npm:^4.0.0": version: 4.0.0 resolution: "ci-info@npm:4.0.0" - checksum: ecc003e5b60580bd081d83dd61d398ddb8607537f916313e40af4667f9c92a1243bd8e8a591a5aa78e418afec245dbe8e90a0e26e39ca0825129a99b978dd3f9 - languageName: node - linkType: hard - -"clean-stack@npm:^2.0.0": - version: 2.2.0 - resolution: "clean-stack@npm:2.2.0" - checksum: 1f90262d5f6230a17e27d0c190b09d47ebe7efdd76a03b5a1127863f7b3c9aec4c3e6c8bb3a7bbf81d553d56a1fd35728f5a8ef4c63f867ac8d690109742a8c1 + checksum: 10c0/ecc003e5b60580bd081d83dd61d398ddb8607537f916313e40af4667f9c92a1243bd8e8a591a5aa78e418afec245dbe8e90a0e26e39ca0825129a99b978dd3f9 languageName: node linkType: hard -"cli-cursor@npm:^3.1.0": - version: 3.1.0 - resolution: "cli-cursor@npm:3.1.0" - dependencies: - restore-cursor: "npm:^3.1.0" - checksum: 92a2f98ff9037d09be3dfe1f0d749664797fb674bf388375a2207a1203b69d41847abf16434203e0089212479e47a358b13a0222ab9fccfe8e2644a7ccebd111 +"cjs-module-lexer@npm:^1.0.0": + version: 1.4.1 + resolution: "cjs-module-lexer@npm:1.4.1" + checksum: 10c0/5a7d8279629c9ba8ccf38078c2fed75b7737973ced22b9b5a54180efa57fb2fe2bb7bec6aec55e3b8f3f5044f5d7b240347ad9bd285e7c3d0ee5b0a1d0504dfc languageName: node linkType: hard -"cli-spinners@npm:^2.5.0": - version: 2.9.2 - resolution: "cli-spinners@npm:2.9.2" - checksum: 907a1c227ddf0d7a101e7ab8b300affc742ead4b4ebe920a5bf1bc6d45dce2958fcd195eb28fa25275062fe6fa9b109b93b63bc8033396ed3bcb50297008b3a3 +"clean-stack@npm:^2.0.0": + version: 2.2.0 + resolution: "clean-stack@npm:2.2.0" + checksum: 10c0/1f90262d5f6230a17e27d0c190b09d47ebe7efdd76a03b5a1127863f7b3c9aec4c3e6c8bb3a7bbf81d553d56a1fd35728f5a8ef4c63f867ac8d690109742a8c1 languageName: node linkType: hard "cli-width@npm:^4.1.0": version: 4.1.0 resolution: "cli-width@npm:4.1.0" - checksum: 1fbd56413578f6117abcaf858903ba1f4ad78370a4032f916745fa2c7e390183a9d9029cf837df320b0fdce8137668e522f60a30a5f3d6529ff3872d265a955f - languageName: node - linkType: hard - -"cliui@npm:^7.0.2": - version: 7.0.4 - resolution: "cliui@npm:7.0.4" - dependencies: - string-width: "npm:^4.2.0" - strip-ansi: "npm:^6.0.0" - wrap-ansi: "npm:^7.0.0" - checksum: 6035f5daf7383470cef82b3d3db00bec70afb3423538c50394386ffbbab135e26c3689c41791f911fa71b62d13d3863c712fdd70f0fbdffd938a1e6fd09aac00 + checksum: 10c0/1fbd56413578f6117abcaf858903ba1f4ad78370a4032f916745fa2c7e390183a9d9029cf837df320b0fdce8137668e522f60a30a5f3d6529ff3872d265a955f languageName: node linkType: hard @@ -2222,7 +3253,7 @@ __metadata: string-width: "npm:^4.2.0" strip-ansi: "npm:^6.0.1" wrap-ansi: "npm:^7.0.0" - checksum: 4bda0f09c340cbb6dfdc1ed508b3ca080f12992c18d68c6be4d9cf51756033d5266e61ec57529e610dacbf4da1c634423b0c1b11037709cc6b09045cbd815df5 + checksum: 10c0/4bda0f09c340cbb6dfdc1ed508b3ca080f12992c18d68c6be4d9cf51756033d5266e61ec57529e610dacbf4da1c634423b0c1b11037709cc6b09045cbd815df5 languageName: node linkType: hard @@ -2233,35 +3264,35 @@ __metadata: is-plain-object: "npm:^2.0.4" kind-of: "npm:^6.0.2" shallow-clone: "npm:^3.0.0" - checksum: 637753615aa24adf0f2d505947a1bb75e63964309034a1cf56ba4b1f30af155201edd38d26ffe26911adaae267a3c138b344a4947d39f5fc1b6d6108125aa758 + checksum: 10c0/637753615aa24adf0f2d505947a1bb75e63964309034a1cf56ba4b1f30af155201edd38d26ffe26911adaae267a3c138b344a4947d39f5fc1b6d6108125aa758 languageName: node linkType: hard "clone@npm:^1.0.2": version: 1.0.4 resolution: "clone@npm:1.0.4" - checksum: 2176952b3649293473999a95d7bebfc9dc96410f6cbd3d2595cf12fd401f63a4bf41a7adbfd3ab2ff09ed60cb9870c58c6acdd18b87767366fabfc163700f13b - languageName: node - linkType: hard - -"clone@npm:^2.1.2": - version: 2.1.2 - resolution: "clone@npm:2.1.2" - checksum: ed0601cd0b1606bc7d82ee7175b97e68d1dd9b91fd1250a3617b38d34a095f8ee0431d40a1a611122dcccb4f93295b4fdb94942aa763392b5fe44effa50c2d5e + checksum: 10c0/2176952b3649293473999a95d7bebfc9dc96410f6cbd3d2595cf12fd401f63a4bf41a7adbfd3ab2ff09ed60cb9870c58c6acdd18b87767366fabfc163700f13b languageName: node linkType: hard "cmd-shim@npm:^6.0.0": version: 6.0.2 resolution: "cmd-shim@npm:6.0.2" - checksum: c34cadcfa32ee923fd055fc6edbd933e56432228b7d8078ea0120e24949343fbc1b24066f817eb4f58a66141443463591c545c0d08cf461203bf20d0f8c55ff2 + checksum: 10c0/c34cadcfa32ee923fd055fc6edbd933e56432228b7d8078ea0120e24949343fbc1b24066f817eb4f58a66141443463591c545c0d08cf461203bf20d0f8c55ff2 languageName: node linkType: hard "co@npm:^4.6.0": version: 4.6.0 resolution: "co@npm:4.6.0" - checksum: c0e85ea0ca8bf0a50cbdca82efc5af0301240ca88ebe3644a6ffb8ffe911f34d40f8fbcf8f1d52c5ddd66706abd4d3bfcd64259f1e8e2371d4f47573b0dc8c28 + checksum: 10c0/c0e85ea0ca8bf0a50cbdca82efc5af0301240ca88ebe3644a6ffb8ffe911f34d40f8fbcf8f1d52c5ddd66706abd4d3bfcd64259f1e8e2371d4f47573b0dc8c28 + languageName: node + linkType: hard + +"collect-v8-coverage@npm:^1.0.0": + version: 1.0.2 + resolution: "collect-v8-coverage@npm:1.0.2" + checksum: 10c0/ed7008e2e8b6852c5483b444a3ae6e976e088d4335a85aa0a9db2861c5f1d31bd2d7ff97a60469b3388deeba661a619753afbe201279fb159b4b9548ab8269a1 languageName: node linkType: hard @@ -2270,7 +3301,7 @@ __metadata: resolution: "color-convert@npm:1.9.3" dependencies: color-name: "npm:1.1.3" - checksum: 5ad3c534949a8c68fca8fbc6f09068f435f0ad290ab8b2f76841b9e6af7e0bb57b98cb05b0e19fe33f5d91e5a8611ad457e5f69e0a484caad1f7487fd0e8253c + checksum: 10c0/5ad3c534949a8c68fca8fbc6f09068f435f0ad290ab8b2f76841b9e6af7e0bb57b98cb05b0e19fe33f5d91e5a8611ad457e5f69e0a484caad1f7487fd0e8253c languageName: node linkType: hard @@ -2279,21 +3310,21 @@ __metadata: resolution: "color-convert@npm:2.0.1" dependencies: color-name: "npm:~1.1.4" - checksum: 37e1150172f2e311fe1b2df62c6293a342ee7380da7b9cfdba67ea539909afbd74da27033208d01d6d5cfc65ee7868a22e18d7e7648e004425441c0f8a15a7d7 + checksum: 10c0/37e1150172f2e311fe1b2df62c6293a342ee7380da7b9cfdba67ea539909afbd74da27033208d01d6d5cfc65ee7868a22e18d7e7648e004425441c0f8a15a7d7 languageName: node linkType: hard "color-name@npm:1.1.3": version: 1.1.3 resolution: "color-name@npm:1.1.3" - checksum: 566a3d42cca25b9b3cd5528cd7754b8e89c0eb646b7f214e8e2eaddb69994ac5f0557d9c175eb5d8f0ad73531140d9c47525085ee752a91a2ab15ab459caf6d6 + checksum: 10c0/566a3d42cca25b9b3cd5528cd7754b8e89c0eb646b7f214e8e2eaddb69994ac5f0557d9c175eb5d8f0ad73531140d9c47525085ee752a91a2ab15ab459caf6d6 languageName: node linkType: hard "color-name@npm:~1.1.4": version: 1.1.4 resolution: "color-name@npm:1.1.4" - checksum: a1a3f914156960902f46f7f56bc62effc6c94e84b2cae157a526b1c1f74b677a47ec602bf68a61abfa2b42d15b7c5651c6dbe72a43af720bc588dff885b10f95 + checksum: 10c0/a1a3f914156960902f46f7f56bc62effc6c94e84b2cae157a526b1c1f74b677a47ec602bf68a61abfa2b42d15b7c5651c6dbe72a43af720bc588dff885b10f95 languageName: node linkType: hard @@ -2302,7 +3333,7 @@ __metadata: resolution: "color-support@npm:1.1.3" bin: color-support: bin.js - checksum: 8ffeaa270a784dc382f62d9be0a98581db43e11eee301af14734a6d089bd456478b1a8b3e7db7ca7dc5b18a75f828f775c44074020b51c05fc00e6d0992b1cc6 + checksum: 10c0/8ffeaa270a784dc382f62d9be0a98581db43e11eee301af14734a6d089bd456478b1a8b3e7db7ca7dc5b18a75f828f775c44074020b51c05fc00e6d0992b1cc6 languageName: node linkType: hard @@ -2312,38 +3343,14 @@ __metadata: dependencies: strip-ansi: "npm:^6.0.1" wcwidth: "npm:^1.0.0" - checksum: 25b90b59129331bbb8b0c838f8df69924349b83e8eab9549f431062a20a39094b8d744bb83265be38fd5d03140ce4bfbd85837c293f618925e83157ae9535f1d - languageName: node - linkType: hard - -"command-line-args@npm:^5.1.1, command-line-args@npm:^5.2.1": - version: 5.2.1 - resolution: "command-line-args@npm:5.2.1" - dependencies: - array-back: "npm:^3.1.0" - find-replace: "npm:^3.0.0" - lodash.camelcase: "npm:^4.3.0" - typical: "npm:^4.0.0" - checksum: a4f6a23a1e420441bd1e44dee24efd12d2e49af7efe6e21eb32fca4e843ca3d5501ddebad86a4e9d99aa626dd6dcb64c04a43695388be54e3a803dbc326cc89f - languageName: node - linkType: hard - -"command-line-usage@npm:^7.0.0, command-line-usage@npm:^7.0.1": - version: 7.0.1 - resolution: "command-line-usage@npm:7.0.1" - dependencies: - array-back: "npm:^6.2.2" - chalk-template: "npm:^0.4.0" - table-layout: "npm:^3.0.0" - typical: "npm:^7.1.1" - checksum: 195f0fcec49c5fae67ede6de2f810ca708c4e9d550b70f714767ee3e7a153cdcfb2c5234578c843e63494632f68d651173dd108a271bb286b24a72fba5ded61c + checksum: 10c0/25b90b59129331bbb8b0c838f8df69924349b83e8eab9549f431062a20a39094b8d744bb83265be38fd5d03140ce4bfbd85837c293f618925e83157ae9535f1d languageName: node linkType: hard "common-ancestor-path@npm:^1.0.1": version: 1.0.1 resolution: "common-ancestor-path@npm:1.0.1" - checksum: 390c08d2a67a7a106d39499c002d827d2874966d938012453fd7ca34cd306881e2b9d604f657fa7a8e6e4896d67f39ebc09bf1bfd8da8ff318e0fb7a8752c534 + checksum: 10c0/390c08d2a67a7a106d39499c002d827d2874966d938012453fd7ca34cd306881e2b9d604f657fa7a8e6e4896d67f39ebc09bf1bfd8da8ff318e0fb7a8752c534 languageName: node linkType: hard @@ -2353,26 +3360,14 @@ __metadata: dependencies: array-ify: "npm:^1.0.0" dot-prop: "npm:^5.1.0" - checksum: 78bd4dd4ed311a79bd264c9e13c36ed564cde657f1390e699e0f04b8eee1fc06ffb8698ce2dfb5fbe7342d509579c82d4e248f08915b708f77f7b72234086cc3 + checksum: 10c0/78bd4dd4ed311a79bd264c9e13c36ed564cde657f1390e699e0f04b8eee1fc06ffb8698ce2dfb5fbe7342d509579c82d4e248f08915b708f77f7b72234086cc3 languageName: node linkType: hard "concat-map@npm:0.0.1": version: 0.0.1 resolution: "concat-map@npm:0.0.1" - checksum: c996b1cfdf95b6c90fee4dae37e332c8b6eb7d106430c17d538034c0ad9a1630cb194d2ab37293b1bdd4d779494beee7786d586a50bd9376fd6f7bcc2bd4c98f - languageName: node - linkType: hard - -"concat-stream@npm:^2.0.0": - version: 2.0.0 - resolution: "concat-stream@npm:2.0.0" - dependencies: - buffer-from: "npm:^1.0.0" - inherits: "npm:^2.0.3" - readable-stream: "npm:^3.0.2" - typedarray: "npm:^0.0.6" - checksum: 29565dd9198fe1d8cf57f6cc71527dbc6ad67e12e4ac9401feb389c53042b2dceedf47034cbe702dfc4fd8df3ae7e6bfeeebe732cc4fa2674e484c13f04c219a + checksum: 10c0/c996b1cfdf95b6c90fee4dae37e332c8b6eb7d106430c17d538034c0ad9a1630cb194d2ab37293b1bdd4d779494beee7786d586a50bd9376fd6f7bcc2bd4c98f languageName: node linkType: hard @@ -2382,106 +3377,80 @@ __metadata: dependencies: ini: "npm:^1.3.4" proto-list: "npm:~1.2.1" - checksum: 39d1df18739d7088736cc75695e98d7087aea43646351b028dfabd5508d79cf6ef4c5bcd90471f52cd87ae470d1c5490c0a8c1a292fbe6ee9ff688061ea0963e + checksum: 10c0/39d1df18739d7088736cc75695e98d7087aea43646351b028dfabd5508d79cf6ef4c5bcd90471f52cd87ae470d1c5490c0a8c1a292fbe6ee9ff688061ea0963e languageName: node linkType: hard "console-control-strings@npm:^1.1.0": version: 1.1.0 resolution: "console-control-strings@npm:1.1.0" - checksum: 7ab51d30b52d461412cd467721bb82afe695da78fff8f29fe6f6b9cbaac9a2328e27a22a966014df9532100f6dd85370460be8130b9c677891ba36d96a343f50 + checksum: 10c0/7ab51d30b52d461412cd467721bb82afe695da78fff8f29fe6f6b9cbaac9a2328e27a22a966014df9532100f6dd85370460be8130b9c677891ba36d96a343f50 languageName: node linkType: hard -"content-disposition@npm:~0.5.2": - version: 0.5.4 - resolution: "content-disposition@npm:0.5.4" +"conventional-changelog-angular@npm:^7.0.0": + version: 7.0.0 + resolution: "conventional-changelog-angular@npm:7.0.0" dependencies: - safe-buffer: "npm:5.2.1" - checksum: bac0316ebfeacb8f381b38285dc691c9939bf0a78b0b7c2d5758acadad242d04783cee5337ba7d12a565a19075af1b3c11c728e1e4946de73c6ff7ce45f3f1bb - languageName: node - linkType: hard - -"content-type@npm:^1.0.4": - version: 1.0.5 - resolution: "content-type@npm:1.0.5" - checksum: b76ebed15c000aee4678c3707e0860cb6abd4e680a598c0a26e17f0bfae723ec9cc2802f0ff1bc6e4d80603719010431d2231018373d4dde10f9ccff9dadf5af + compare-func: "npm:^2.0.0" + checksum: 10c0/90e73e25e224059b02951b6703b5f8742dc2a82c1fea62163978e6735fd3ab04350897a8fc6f443ec6b672d6b66e28a0820e833e544a0101f38879e5e6289b7e languageName: node linkType: hard -"conventional-changelog-angular@npm:^7.0.0": - version: 7.0.0 - resolution: "conventional-changelog-angular@npm:7.0.0" +"conventional-changelog-conventionalcommits@npm:^7.0.2": + version: 7.0.2 + resolution: "conventional-changelog-conventionalcommits@npm:7.0.2" dependencies: compare-func: "npm:^2.0.0" - checksum: 90e73e25e224059b02951b6703b5f8742dc2a82c1fea62163978e6735fd3ab04350897a8fc6f443ec6b672d6b66e28a0820e833e544a0101f38879e5e6289b7e + checksum: 10c0/3cb1eab35e37fc973cfb3aed0e159f54414e49b222988da1c2aa86cc8a87fe7531491bbb7657fe5fc4dc0e25f5b50e2065ba8ac71cc4c08eed9189102a2b81bd languageName: node linkType: hard -"conventional-changelog-core@npm:^5.0.2": - version: 5.0.2 - resolution: "conventional-changelog-core@npm:5.0.2" +"conventional-changelog-core@npm:^7.0.0": + version: 7.0.0 + resolution: "conventional-changelog-core@npm:7.0.0" dependencies: + "@hutson/parse-repository-url": "npm:^5.0.0" add-stream: "npm:^1.0.0" - conventional-changelog-writer: "npm:^6.0.0" - conventional-commits-parser: "npm:^4.0.0" - dateformat: "npm:^3.0.3" - get-pkg-repo: "npm:^4.2.1" - git-raw-commits: "npm:^3.0.0" - git-remote-origin-url: "npm:^2.0.0" - git-semver-tags: "npm:^5.0.0" - normalize-package-data: "npm:^3.0.3" - read-pkg: "npm:^3.0.0" - read-pkg-up: "npm:^3.0.0" - checksum: 2356fdeb793fd089b2540d5f3ece6937ffe49ff0588ffdc13ceb94b6b708227ce9a8f54555a08ff762573dcd428c201e86dade90b7af85df71d2abe1256b7f73 + conventional-changelog-writer: "npm:^7.0.0" + conventional-commits-parser: "npm:^5.0.0" + git-raw-commits: "npm:^4.0.0" + git-semver-tags: "npm:^7.0.0" + hosted-git-info: "npm:^7.0.0" + normalize-package-data: "npm:^6.0.0" + read-pkg: "npm:^8.0.0" + read-pkg-up: "npm:^10.0.0" + checksum: 10c0/3d5119faf3c154e57e2574b87320892637f4a26cf047827ec8917c227b7e1b3a6ee0ea00247e548f65100db013174d355744ff5b4b90c7c45855db109c24aa2a languageName: node linkType: hard -"conventional-changelog-preset-loader@npm:^3.0.0": - version: 3.0.0 - resolution: "conventional-changelog-preset-loader@npm:3.0.0" - checksum: 5de23c4aa8b8526c3542fd5abe9758d56eed79821f32cc16d1fdf480cecc44855edbe4680113f229509dcaf4b97cc41e786ac8e3b0822b44fd9d0b98542ed0e0 +"conventional-changelog-preset-loader@npm:^4.1.0": + version: 4.1.0 + resolution: "conventional-changelog-preset-loader@npm:4.1.0" + checksum: 10c0/7854ddeca740d2e478f0e8aa6591dd224c7e094863cbefada2f219459d8e267580ab73d0a0f566a7f37382896ec0f502e9908123af866fd6d7fbc560edd1ee68 languageName: node linkType: hard -"conventional-changelog-writer@npm:^6.0.0, conventional-changelog-writer@npm:^6.0.1": - version: 6.0.1 - resolution: "conventional-changelog-writer@npm:6.0.1" +"conventional-changelog-writer@npm:^7.0.0, conventional-changelog-writer@npm:^7.0.1": + version: 7.0.1 + resolution: "conventional-changelog-writer@npm:7.0.1" dependencies: - conventional-commits-filter: "npm:^3.0.0" - dateformat: "npm:^3.0.3" + conventional-commits-filter: "npm:^4.0.0" handlebars: "npm:^4.7.7" json-stringify-safe: "npm:^5.0.1" - meow: "npm:^8.1.2" - semver: "npm:^7.0.0" - split: "npm:^1.0.1" + meow: "npm:^12.0.1" + semver: "npm:^7.5.2" + split2: "npm:^4.0.0" bin: - conventional-changelog-writer: cli.js - checksum: 50790b0d92e06c5ab1c02cc4eb2ecd74575244d31cfacea1885d7c8afeae1bc7bbc169140fe062f2438b9952400762240b796e59521c0246278859296b323338 - languageName: node - linkType: hard - -"conventional-commits-filter@npm:^3.0.0": - version: 3.0.0 - resolution: "conventional-commits-filter@npm:3.0.0" - dependencies: - lodash.ismatch: "npm:^4.4.0" - modify-values: "npm:^1.0.1" - checksum: 9d43cf9029bf39b70b394c551846a57b6f0473028ba5628c38bd447672655cc27bb80ba502d9a7e41335f63ad62b754cb26579f3d4bae7398dfc092acbb32578 + conventional-changelog-writer: cli.mjs + checksum: 10c0/ec51708c33860777f2b85f1df588aed918cab08919146cdfac8f271e31c0caee22c5c50df78e4ce358022e58f65c8de77fd6a5fb529f4bb5ba27c2d1e072750f languageName: node linkType: hard -"conventional-commits-parser@npm:^4.0.0": +"conventional-commits-filter@npm:^4.0.0": version: 4.0.0 - resolution: "conventional-commits-parser@npm:4.0.0" - dependencies: - JSONStream: "npm:^1.3.5" - is-text-path: "npm:^1.0.1" - meow: "npm:^8.1.2" - split2: "npm:^3.2.2" - bin: - conventional-commits-parser: cli.js - checksum: 12e390cc80ad8a825c5775a329b95e11cf47a6df7b8a3875d375e28b8cb27c4f32955842ea73e4e357cff9757a6be99fdffe4fda87a23e9d8e73f983425537a0 + resolution: "conventional-commits-filter@npm:4.0.0" + checksum: 10c0/b26ea11ebb38218cb3cbbaf7d68b0f7c3b0eb7ad69afe9c9431d91e784acbebaeda7a095127ae5a7f8b75087d62b44e8e69d63426ff02b49f7dd504755934247 languageName: node linkType: hard @@ -2495,71 +3464,64 @@ __metadata: split2: "npm:^4.0.0" bin: conventional-commits-parser: cli.mjs - checksum: c9e542f4884119a96a6bf3311ff62cdee55762d8547f4c745ae3ebdc50afe4ba7691e165e34827d5cf63283cbd93ab69917afd7922423075b123d5d9a7a82ed2 - languageName: node - linkType: hard - -"conventional-recommended-bump@npm:^7.0.1": - version: 7.0.1 - resolution: "conventional-recommended-bump@npm:7.0.1" - dependencies: - concat-stream: "npm:^2.0.0" - conventional-changelog-preset-loader: "npm:^3.0.0" - conventional-commits-filter: "npm:^3.0.0" - conventional-commits-parser: "npm:^4.0.0" - git-raw-commits: "npm:^3.0.0" - git-semver-tags: "npm:^5.0.0" - meow: "npm:^8.1.2" - bin: - conventional-recommended-bump: cli.js - checksum: ff751a256ddfbec62efd5a32de059b01659e945073793c6766143a8242864fd8099804a90bbf1e6a61928ade3d12292d6f66f721a113630de392d54eb7f0b0c3 + checksum: 10c0/c9e542f4884119a96a6bf3311ff62cdee55762d8547f4c745ae3ebdc50afe4ba7691e165e34827d5cf63283cbd93ab69917afd7922423075b123d5d9a7a82ed2 languageName: node linkType: hard -"cookies@npm:~0.8.0": - version: 0.8.0 - resolution: "cookies@npm:0.8.0" +"conventional-recommended-bump@npm:^9.0.0": + version: 9.0.0 + resolution: "conventional-recommended-bump@npm:9.0.0" dependencies: - depd: "npm:~2.0.0" - keygrip: "npm:~1.1.0" - checksum: 0af32f30d1ece0596efc05782c66b9d61659e20c6cc5b695452abf5ceb51883ef43c5c73d86badd7d028a0da7d39f864c95f33640aef04f97fad70f35986bea3 + conventional-changelog-preset-loader: "npm:^4.1.0" + conventional-commits-filter: "npm:^4.0.0" + conventional-commits-parser: "npm:^5.0.0" + git-raw-commits: "npm:^4.0.0" + git-semver-tags: "npm:^7.0.0" + meow: "npm:^12.0.1" + bin: + conventional-recommended-bump: cli.mjs + checksum: 10c0/ceec7dcfddfc6508d0ba3debef471b47d4db3a2112e269d5d736202b226651b31fcbd4790c9403b5b14e6501365527b8c2c4ce8836c6a09faf07cb7d03c1fe07 languageName: node linkType: hard -"core-util-is@npm:~1.0.0": - version: 1.0.3 - resolution: "core-util-is@npm:1.0.3" - checksum: 90a0e40abbddfd7618f8ccd63a74d88deea94e77d0e8dbbea059fa7ebebb8fbb4e2909667fe26f3a467073de1a542ebe6ae4c73a73745ac5833786759cd906c9 +"convert-source-map@npm:^2.0.0": + version: 2.0.0 + resolution: "convert-source-map@npm:2.0.0" + checksum: 10c0/8f2f7a27a1a011cc6cc88cc4da2d7d0cfa5ee0369508baae3d98c260bb3ac520691464e5bbe4ae7cdf09860c1d69ecc6f70c63c6e7c7f7e3f18ec08484dc7d9b languageName: node linkType: hard -"cosmiconfig@npm:^8.3.6": - version: 8.3.6 - resolution: "cosmiconfig@npm:8.3.6" +"cosmiconfig@npm:^9.0.0": + version: 9.0.0 + resolution: "cosmiconfig@npm:9.0.0" dependencies: + env-paths: "npm:^2.2.1" import-fresh: "npm:^3.3.0" js-yaml: "npm:^4.1.0" parse-json: "npm:^5.2.0" - path-type: "npm:^4.0.0" peerDependencies: typescript: ">=4.9.5" peerDependenciesMeta: typescript: optional: true - checksum: 0382a9ed13208f8bfc22ca2f62b364855207dffdb73dc26e150ade78c3093f1cf56172df2dd460c8caf2afa91c0ed4ec8a88c62f8f9cd1cf423d26506aa8797a + checksum: 10c0/1c1703be4f02a250b1d6ca3267e408ce16abfe8364193891afc94c2d5c060b69611fdc8d97af74b7e6d5d1aac0ab2fb94d6b079573146bc2d756c2484ce5f0ee languageName: node linkType: hard -"cross-spawn@npm:^6.0.5": - version: 6.0.5 - resolution: "cross-spawn@npm:6.0.5" +"create-jest@npm:^29.7.0": + version: 29.7.0 + resolution: "create-jest@npm:29.7.0" dependencies: - nice-try: "npm:^1.0.4" - path-key: "npm:^2.0.1" - semver: "npm:^5.5.0" - shebang-command: "npm:^1.2.0" - which: "npm:^1.2.9" - checksum: e05544722e9d7189b4292c66e42b7abeb21db0d07c91b785f4ae5fefceb1f89e626da2703744657b287e86dcd4af57b54567cef75159957ff7a8a761d9055012 + "@jest/types": "npm:^29.6.3" + chalk: "npm:^4.0.0" + exit: "npm:^0.1.2" + graceful-fs: "npm:^4.2.9" + jest-config: "npm:^29.7.0" + jest-util: "npm:^29.7.0" + prompts: "npm:^2.0.1" + bin: + create-jest: bin/create-jest.js + checksum: 10c0/e7e54c280692470d3398f62a6238fd396327e01c6a0757002833f06d00afc62dd7bfe04ff2b9cd145264460e6b4d1eb8386f2925b7e567f97939843b7b0e812f languageName: node linkType: hard @@ -2570,7 +3532,7 @@ __metadata: path-key: "npm:^3.1.0" shebang-command: "npm:^2.0.0" which: "npm:^2.0.1" - checksum: 5738c312387081c98d69c98e105b6327b069197f864a60593245d64c8089c8a0a744e16349281210d56835bb9274130d825a78b2ad6853ca13cfbeffc0c31750 + checksum: 10c0/5738c312387081c98d69c98e105b6327b069197f864a60593245d64c8089c8a0a744e16349281210d56835bb9274130d825a78b2ad6853ca13cfbeffc0c31750 languageName: node linkType: hard @@ -2579,35 +3541,54 @@ __metadata: resolution: "cssesc@npm:3.0.0" bin: cssesc: bin/cssesc - checksum: 6bcfd898662671be15ae7827120472c5667afb3d7429f1f917737f3bf84c4176003228131b643ae74543f17a394446247df090c597bb9a728cce298606ed0aa7 + checksum: 10c0/6bcfd898662671be15ae7827120472c5667afb3d7429f1f917737f3bf84c4176003228131b643ae74543f17a394446247df090c597bb9a728cce298606ed0aa7 languageName: node linkType: hard -"dargs@npm:^7.0.0": - version: 7.0.0 - resolution: "dargs@npm:7.0.0" - checksum: ec7f6a8315a8fa2f8b12d39207615bdf62b4d01f631b96fbe536c8ad5469ab9ed710d55811e564d0d5c1d548fc8cb6cc70bf0939f2415790159f5a75e0f96c92 +"dargs@npm:^8.0.0": + version: 8.1.0 + resolution: "dargs@npm:8.1.0" + checksum: 10c0/08cbd1ee4ac1a16fb7700e761af2e3e22d1bdc04ac4f851926f552dde8f9e57714c0d04013c2cca1cda0cba8fb637e0f93ad15d5285547a939dd1989ee06a82d languageName: node linkType: hard "data-uri-to-buffer@npm:^4.0.0": version: 4.0.1 resolution: "data-uri-to-buffer@npm:4.0.1" - checksum: 20a6b93107597530d71d4cb285acee17f66bcdfc03fd81040921a81252f19db27588d87fc8fc69e1950c55cfb0bf8ae40d0e5e21d907230813eb5d5a7f9eb45b + checksum: 10c0/20a6b93107597530d71d4cb285acee17f66bcdfc03fd81040921a81252f19db27588d87fc8fc69e1950c55cfb0bf8ae40d0e5e21d907230813eb5d5a7f9eb45b languageName: node linkType: hard -"dateformat@npm:^3.0.3": - version: 3.0.3 - resolution: "dateformat@npm:3.0.3" - checksum: 2effb8bef52ff912f87a05e4adbeacff46353e91313ad1ea9ed31412db26849f5a0fcc7e3ce36dbfb84fc6c881a986d5694f84838ad0da7000d5150693e78678 +"data-view-buffer@npm:^1.0.1": + version: 1.0.1 + resolution: "data-view-buffer@npm:1.0.1" + dependencies: + call-bind: "npm:^1.0.6" + es-errors: "npm:^1.3.0" + is-data-view: "npm:^1.0.1" + checksum: 10c0/8984119e59dbed906a11fcfb417d7d861936f16697a0e7216fe2c6c810f6b5e8f4a5281e73f2c28e8e9259027190ac4a33e2a65fdd7fa86ac06b76e838918583 languageName: node linkType: hard -"debounce@npm:^1.2.0": - version: 1.2.1 - resolution: "debounce@npm:1.2.1" - checksum: 6c9320aa0973fc42050814621a7a8a78146c1975799b5b3cc1becf1f77ba9a5aa583987884230da0842a03f385def452fad5d60db97c3d1c8b824e38a8edf500 +"data-view-byte-length@npm:^1.0.1": + version: 1.0.1 + resolution: "data-view-byte-length@npm:1.0.1" + dependencies: + call-bind: "npm:^1.0.7" + es-errors: "npm:^1.3.0" + is-data-view: "npm:^1.0.1" + checksum: 10c0/b7d9e48a0cf5aefed9ab7d123559917b2d7e0d65531f43b2fd95b9d3a6b46042dd3fca597c42bba384e66b70d7ad66ff23932f8367b241f53d93af42cfe04ec2 + languageName: node + linkType: hard + +"data-view-byte-offset@npm:^1.0.0": + version: 1.0.0 + resolution: "data-view-byte-offset@npm:1.0.0" + dependencies: + call-bind: "npm:^1.0.6" + es-errors: "npm:^1.3.0" + is-data-view: "npm:^1.0.1" + checksum: 10c0/21b0d2e53fd6e20cc4257c873bf6d36d77bd6185624b84076c0a1ddaa757b49aaf076254006341d35568e89f52eecd1ccb1a502cfb620f2beca04f48a6a62a8f languageName: node linkType: hard @@ -2619,73 +3600,61 @@ __metadata: peerDependenciesMeta: supports-color: optional: true - checksum: cedbec45298dd5c501d01b92b119cd3faebe5438c3917ff11ae1bff86a6c722930ac9c8659792824013168ba6db7c4668225d845c633fbdafbbf902a6389f736 + checksum: 10c0/cedbec45298dd5c501d01b92b119cd3faebe5438c3917ff11ae1bff86a6c722930ac9c8659792824013168ba6db7c4668225d845c633fbdafbbf902a6389f736 languageName: node linkType: hard -"debug@npm:^3.1.0, debug@npm:^3.2.7": +"debug@npm:^3.2.7": version: 3.2.7 resolution: "debug@npm:3.2.7" dependencies: ms: "npm:^2.1.1" - checksum: 37d96ae42cbc71c14844d2ae3ba55adf462ec89fd3a999459dec3833944cd999af6007ff29c780f1c61153bcaaf2c842d1e4ce1ec621e4fc4923244942e4a02a + checksum: 10c0/37d96ae42cbc71c14844d2ae3ba55adf462ec89fd3a999459dec3833944cd999af6007ff29c780f1c61153bcaaf2c842d1e4ce1ec621e4fc4923244942e4a02a languageName: node linkType: hard -"decamelize-keys@npm:^1.1.0": - version: 1.1.1 - resolution: "decamelize-keys@npm:1.1.1" +"debug@npm:^4.1.0, debug@npm:^4.3.1, debug@npm:^4.3.5": + version: 4.3.7 + resolution: "debug@npm:4.3.7" dependencies: - decamelize: "npm:^1.1.0" - map-obj: "npm:^1.0.0" - checksum: 4ca385933127437658338c65fb9aead5f21b28d3dd3ccd7956eb29aab0953b5d3c047fbc207111672220c71ecf7a4d34f36c92851b7bbde6fca1a02c541bdd7d - languageName: node - linkType: hard - -"decamelize@npm:^1.1.0": - version: 1.2.0 - resolution: "decamelize@npm:1.2.0" - checksum: 85c39fe8fbf0482d4a1e224ef0119db5c1897f8503bcef8b826adff7a1b11414972f6fef2d7dec2ee0b4be3863cf64ac1439137ae9e6af23a3d8dcbe26a5b4b2 + ms: "npm:^2.1.3" + peerDependenciesMeta: + supports-color: + optional: true + checksum: 10c0/1471db19c3b06d485a622d62f65947a19a23fbd0dd73f7fd3eafb697eec5360cde447fb075919987899b1a2096e85d35d4eb5a4de09a57600ac9cf7e6c8e768b languageName: node linkType: hard -"dedent@npm:^1.5.1": - version: 1.5.1 - resolution: "dedent@npm:1.5.1" +"dedent@npm:^1.0.0, dedent@npm:^1.5.3": + version: 1.5.3 + resolution: "dedent@npm:1.5.3" peerDependencies: babel-plugin-macros: ^3.1.0 peerDependenciesMeta: babel-plugin-macros: optional: true - checksum: f8612cd5b00aab58b18bb95572dca08dc2d49720bfa7201a444c3dae430291e8a06d4928614a6ec8764d713927f44bce9c990d3b8238fca2f430990ddc17c070 - languageName: node - linkType: hard - -"deep-equal@npm:~1.0.1": - version: 1.0.1 - resolution: "deep-equal@npm:1.0.1" - checksum: bef838ef9824e124d10335deb9c7540bfc9f2f0eab17ad1bb870d0eee83ee4e7e6f6f892e5eebc2bd82759a76676926ad5246180097e28e57752176ff7dae888 + checksum: 10c0/d94bde6e6f780be4da4fd760288fcf755ec368872f4ac5218197200d86430aeb8d90a003a840bff1c20221188e3f23adced0119cb811c6873c70d0ac66d12832 languageName: node linkType: hard "deep-is@npm:^0.1.3": version: 0.1.4 resolution: "deep-is@npm:0.1.4" - checksum: 7f0ee496e0dff14a573dc6127f14c95061b448b87b995fc96c017ce0a1e66af1675e73f1d6064407975bc4ea6ab679497a29fff7b5b9c4e99cb10797c1ad0b4c + checksum: 10c0/7f0ee496e0dff14a573dc6127f14c95061b448b87b995fc96c017ce0a1e66af1675e73f1d6064407975bc4ea6ab679497a29fff7b5b9c4e99cb10797c1ad0b4c languageName: node linkType: hard -"deepmerge-ts@npm:^5.1.0": - version: 5.1.0 - resolution: "deepmerge-ts@npm:5.1.0" - checksum: 28f810e6f3c638020922c3abfb4f20bc8fff00262dbc5a1f5283ecae0b8ffd3b3b95aaca3c8992d8680eb5754c11d87edff1915235e145c5afdc53102665418f +"deepmerge-ts@npm:^7.1.0": + version: 7.1.3 + resolution: "deepmerge-ts@npm:7.1.3" + checksum: 10c0/c9cfe7742a2c8f785302378b004381e1b831e3307ffe0c17be4b98fd87f347cb52a550aa9ff9ee0608b97f25400972ab79484f3836d77ec733828b10c8dcc522 languageName: node linkType: hard "deepmerge@npm:^4.2.2": version: 4.3.1 resolution: "deepmerge@npm:4.3.1" - checksum: e53481aaf1aa2c4082b5342be6b6d8ad9dfe387bc92ce197a66dea08bd4265904a087e75e464f14d1347cf2ac8afe1e4c16b266e0561cc5df29382d3c5f80044 + checksum: 10c0/e53481aaf1aa2c4082b5342be6b6d8ad9dfe387bc92ce197a66dea08bd4265904a087e75e464f14d1347cf2ac8afe1e4c16b266e0561cc5df29382d3c5f80044 languageName: node linkType: hard @@ -2694,7 +3663,7 @@ __metadata: resolution: "defaults@npm:1.0.4" dependencies: clone: "npm:^1.0.2" - checksum: 9cfbe498f5c8ed733775db62dfd585780387d93c17477949e1670bfcfb9346e0281ce8c4bf9f4ac1fc0f9b851113bd6dc9e41182ea1644ccd97de639fa13c35a + checksum: 10c0/9cfbe498f5c8ed733775db62dfd585780387d93c17477949e1670bfcfb9346e0281ce8c4bf9f4ac1fc0f9b851113bd6dc9e41182ea1644ccd97de639fa13c35a languageName: node linkType: hard @@ -2705,67 +3674,50 @@ __metadata: get-intrinsic: "npm:^1.2.1" gopd: "npm:^1.0.1" has-property-descriptors: "npm:^1.0.0" - checksum: 77ef6e0bceb515e05b5913ab635a84d537cee84f8a7c37c77fdcb31fc5b80f6dbe81b33375e4b67d96aa04e6a0d8d4ea099e431d83f089af8d93adfb584bcb94 + checksum: 10c0/77ef6e0bceb515e05b5913ab635a84d537cee84f8a7c37c77fdcb31fc5b80f6dbe81b33375e4b67d96aa04e6a0d8d4ea099e431d83f089af8d93adfb584bcb94 languageName: node linkType: hard -"define-lazy-prop@npm:^2.0.0": - version: 2.0.0 - resolution: "define-lazy-prop@npm:2.0.0" - checksum: db6c63864a9d3b7dc9def55d52764968a5af296de87c1b2cc71d8be8142e445208071953649e0386a8cc37cfcf9a2067a47207f1eb9ff250c2a269658fdae422 +"define-data-property@npm:^1.1.4": + version: 1.1.4 + resolution: "define-data-property@npm:1.1.4" + dependencies: + es-define-property: "npm:^1.0.0" + es-errors: "npm:^1.3.0" + gopd: "npm:^1.0.1" + checksum: 10c0/dea0606d1483eb9db8d930d4eac62ca0fa16738b0b3e07046cddfacf7d8c868bbe13fa0cb263eb91c7d0d527960dc3f2f2471a69ed7816210307f6744fe62e37 languageName: node linkType: hard -"define-properties@npm:^1.1.3, define-properties@npm:^1.1.4, define-properties@npm:^1.2.0": +"define-properties@npm:^1.1.3, define-properties@npm:^1.1.4, define-properties@npm:^1.2.0, define-properties@npm:^1.2.1": version: 1.2.1 resolution: "define-properties@npm:1.2.1" dependencies: define-data-property: "npm:^1.0.1" has-property-descriptors: "npm:^1.0.0" object-keys: "npm:^1.1.1" - checksum: 88a152319ffe1396ccc6ded510a3896e77efac7a1bfbaa174a7b00414a1747377e0bb525d303794a47cf30e805c2ec84e575758512c6e44a993076d29fd4e6c3 - languageName: node - linkType: hard - -"delegates@npm:^1.0.0": - version: 1.0.0 - resolution: "delegates@npm:1.0.0" - checksum: ba05874b91148e1db4bf254750c042bf2215febd23a6d3cda2e64896aef79745fbd4b9996488bd3cafb39ce19dbce0fd6e3b6665275638befffe1c9b312b91b5 - languageName: node - linkType: hard - -"depd@npm:^2.0.0, depd@npm:~2.0.0": - version: 2.0.0 - resolution: "depd@npm:2.0.0" - checksum: 58bd06ec20e19529b06f7ad07ddab60e504d9e0faca4bd23079fac2d279c3594334d736508dc350e06e510aba5e22e4594483b3a6562ce7c17dd797f4cc4ad2c - languageName: node - linkType: hard - -"depd@npm:~1.1.2": - version: 1.1.2 - resolution: "depd@npm:1.1.2" - checksum: acb24aaf936ef9a227b6be6d495f0d2eb20108a9a6ad40585c5bda1a897031512fef6484e4fdbb80bd249fdaa82841fa1039f416ece03188e677ba11bcfda249 + checksum: 10c0/88a152319ffe1396ccc6ded510a3896e77efac7a1bfbaa174a7b00414a1747377e0bb525d303794a47cf30e805c2ec84e575758512c6e44a993076d29fd4e6c3 languageName: node linkType: hard -"deprecation@npm:^2.0.0": - version: 2.3.1 - resolution: "deprecation@npm:2.3.1" - checksum: 23d688ba66b74d09b908c40a76179418acbeeb0bfdf218c8075c58ad8d0c315130cb91aa3dffb623aa3a411a3569ce56c6460de6c8d69071c17fe6dd2442f032 +"detect-indent@npm:^7.0.1": + version: 7.0.1 + resolution: "detect-indent@npm:7.0.1" + checksum: 10c0/47b6e3e3dda603c386e73b129f3e84844ae59bc2615f5072becf3cc02eab400bed5a4e6379c49d0b18cf630e80c2b07e87e0038b777addbc6ef793ad77dd05bc languageName: node linkType: hard -"destroy@npm:^1.0.4": - version: 1.2.0 - resolution: "destroy@npm:1.2.0" - checksum: bd7633942f57418f5a3b80d5cb53898127bcf53e24cdf5d5f4396be471417671f0fee48a4ebe9a1e9defbde2a31280011af58a57e090ff822f589b443ed4e643 +"detect-newline@npm:^3.0.0": + version: 3.1.0 + resolution: "detect-newline@npm:3.1.0" + checksum: 10c0/c38cfc8eeb9fda09febb44bcd85e467c970d4e3bf526095394e5a4f18bc26dd0cf6b22c69c1fa9969261521c593836db335c2795218f6d781a512aea2fb8209d languageName: node linkType: hard -"detect-indent@npm:^7.0.0": - version: 7.0.1 - resolution: "detect-indent@npm:7.0.1" - checksum: 47b6e3e3dda603c386e73b129f3e84844ae59bc2615f5072becf3cc02eab400bed5a4e6379c49d0b18cf630e80c2b07e87e0038b777addbc6ef793ad77dd05bc +"diff-sequences@npm:^29.6.3": + version: 29.6.3 + resolution: "diff-sequences@npm:29.6.3" + checksum: 10c0/32e27ac7dbffdf2fb0eb5a84efd98a9ad084fbabd5ac9abb8757c6770d5320d2acd172830b28c4add29bb873d59420601dfc805ac4064330ce59b1adfd0593b2 languageName: node linkType: hard @@ -2774,7 +3726,7 @@ __metadata: resolution: "dir-glob@npm:3.0.1" dependencies: path-type: "npm:^4.0.0" - checksum: dcac00920a4d503e38bb64001acb19df4efc14536ada475725e12f52c16777afdee4db827f55f13a908ee7efc0cb282e2e3dbaeeb98c0993dd93d1802d3bf00c + checksum: 10c0/dcac00920a4d503e38bb64001acb19df4efc14536ada475725e12f52c16777afdee4db827f55f13a908ee7efc0cb282e2e3dbaeeb98c0993dd93d1802d3bf00c languageName: node linkType: hard @@ -2783,7 +3735,7 @@ __metadata: resolution: "doctrine@npm:2.1.0" dependencies: esutils: "npm:^2.0.2" - checksum: b6416aaff1f380bf56c3b552f31fdf7a69b45689368deca72d28636f41c16bb28ec3ebc40ace97db4c1afc0ceeb8120e8492fe0046841c94c2933b2e30a7d5ac + checksum: 10c0/b6416aaff1f380bf56c3b552f31fdf7a69b45689368deca72d28636f41c16bb28ec3ebc40ace97db4c1afc0ceeb8120e8492fe0046841c94c2933b2e30a7d5ac languageName: node linkType: hard @@ -2792,7 +3744,7 @@ __metadata: resolution: "doctrine@npm:3.0.0" dependencies: esutils: "npm:^2.0.2" - checksum: c96bdccabe9d62ab6fea9399fdff04a66e6563c1d6fb3a3a063e8d53c3bb136ba63e84250bbf63d00086a769ad53aef92d2bd483f03f837fc97b71cbee6b2520 + checksum: 10c0/c96bdccabe9d62ab6fea9399fdff04a66e6563c1d6fb3a3a063e8d53c3bb136ba63e84250bbf63d00086a769ad53aef92d2bd483f03f837fc97b71cbee6b2520 languageName: node linkType: hard @@ -2801,56 +3753,63 @@ __metadata: resolution: "dot-prop@npm:5.3.0" dependencies: is-obj: "npm:^2.0.0" - checksum: 93f0d343ef87fe8869320e62f2459f7e70f49c6098d948cc47e060f4a3f827d0ad61e83cb82f2bd90cd5b9571b8d334289978a43c0f98fea4f0e99ee8faa0599 + checksum: 10c0/93f0d343ef87fe8869320e62f2459f7e70f49c6098d948cc47e060f4a3f827d0ad61e83cb82f2bd90cd5b9571b8d334289978a43c0f98fea4f0e99ee8faa0599 languageName: node linkType: hard -"dotenv@npm:^16.3.1": - version: 16.3.1 - resolution: "dotenv@npm:16.3.1" - checksum: b95ff1bbe624ead85a3cd70dbd827e8e06d5f05f716f2d0cbc476532d54c7c9469c3bc4dd93ea519f6ad711cb522c00ac9a62b6eb340d5affae8008facc3fbd7 +"dotenv@npm:^16.4.5": + version: 16.4.5 + resolution: "dotenv@npm:16.4.5" + checksum: 10c0/48d92870076832af0418b13acd6e5a5a3e83bb00df690d9812e94b24aff62b88ade955ac99a05501305b8dc8f1b0ee7638b18493deb6fe93d680e5220936292f languageName: node linkType: hard "duplexer@npm:^0.1.1": version: 0.1.2 resolution: "duplexer@npm:0.1.2" - checksum: c57bcd4bdf7e623abab2df43a7b5b23d18152154529d166c1e0da6bee341d84c432d157d7e97b32fecb1bf3a8b8857dd85ed81a915789f550637ed25b8e64fc2 + checksum: 10c0/c57bcd4bdf7e623abab2df43a7b5b23d18152154529d166c1e0da6bee341d84c432d157d7e97b32fecb1bf3a8b8857dd85ed81a915789f550637ed25b8e64fc2 languageName: node linkType: hard "eastasianwidth@npm:^0.2.0": version: 0.2.0 resolution: "eastasianwidth@npm:0.2.0" - checksum: 26f364ebcdb6395f95124fda411f63137a4bfb5d3a06453f7f23dfe52502905bd84e0488172e0f9ec295fdc45f05c23d5d91baf16bd26f0fe9acd777a188dc39 + checksum: 10c0/26f364ebcdb6395f95124fda411f63137a4bfb5d3a06453f7f23dfe52502905bd84e0488172e0f9ec295fdc45f05c23d5d91baf16bd26f0fe9acd777a188dc39 languageName: node linkType: hard -"ee-first@npm:1.1.1": - version: 1.1.1 - resolution: "ee-first@npm:1.1.1" - checksum: b5bb125ee93161bc16bfe6e56c6b04de5ad2aa44234d8f644813cc95d861a6910903132b05093706de2b706599367c4130eb6d170f6b46895686b95f87d017b7 +"electron-to-chromium@npm:^1.5.28": + version: 1.5.41 + resolution: "electron-to-chromium@npm:1.5.41" + checksum: 10c0/97b82383963029e6ed0bd7a71eb527f640c8cf658c9e43c776b0257b3c65e366590ac54135683a21e4474a156b8be78717d6e94d3c1def84b69f92bf48f2390f + languageName: node + linkType: hard + +"emittery@npm:^0.13.1": + version: 0.13.1 + resolution: "emittery@npm:0.13.1" + checksum: 10c0/1573d0ae29ab34661b6c63251ff8f5facd24ccf6a823f19417ae8ba8c88ea450325788c67f16c99edec8de4b52ce93a10fe441ece389fd156e88ee7dab9bfa35 + languageName: node + linkType: hard + +"emoji-regex@npm:^10.3.0": + version: 10.4.0 + resolution: "emoji-regex@npm:10.4.0" + checksum: 10c0/a3fcedfc58bfcce21a05a5f36a529d81e88d602100145fcca3dc6f795e3c8acc4fc18fe773fbf9b6d6e9371205edb3afa2668ec3473fa2aa7fd47d2a9d46482d languageName: node linkType: hard "emoji-regex@npm:^8.0.0": version: 8.0.0 resolution: "emoji-regex@npm:8.0.0" - checksum: b6053ad39951c4cf338f9092d7bfba448cdfd46fe6a2a034700b149ac9ffbc137e361cbd3c442297f86bed2e5f7576c1b54cc0a6bf8ef5106cc62f496af35010 + checksum: 10c0/b6053ad39951c4cf338f9092d7bfba448cdfd46fe6a2a034700b149ac9ffbc137e361cbd3c442297f86bed2e5f7576c1b54cc0a6bf8ef5106cc62f496af35010 languageName: node linkType: hard "emoji-regex@npm:^9.2.2": version: 9.2.2 resolution: "emoji-regex@npm:9.2.2" - checksum: af014e759a72064cf66e6e694a7fc6b0ed3d8db680427b021a89727689671cefe9d04151b2cad51dbaf85d5ba790d061cd167f1cf32eb7b281f6368b3c181639 - languageName: node - linkType: hard - -"encodeurl@npm:^1.0.2": - version: 1.0.2 - resolution: "encodeurl@npm:1.0.2" - checksum: f6c2387379a9e7c1156c1c3d4f9cb7bb11cf16dd4c1682e1f6746512564b053df5781029b6061296832b59fb22f459dbe250386d217c2f6e203601abb2ee0bec + checksum: 10c0/af014e759a72064cf66e6e694a7fc6b0ed3d8db680427b021a89727689671cefe9d04151b2cad51dbaf85d5ba790d061cd167f1cf32eb7b281f6368b3c181639 languageName: node linkType: hard @@ -2859,31 +3818,31 @@ __metadata: resolution: "encoding@npm:0.1.13" dependencies: iconv-lite: "npm:^0.6.2" - checksum: 36d938712ff00fe1f4bac88b43bcffb5930c1efa57bbcdca9d67e1d9d6c57cfb1200fb01efe0f3109b2ce99b231f90779532814a81370a1bd3274a0f58585039 + checksum: 10c0/36d938712ff00fe1f4bac88b43bcffb5930c1efa57bbcdca9d67e1d9d6c57cfb1200fb01efe0f3109b2ce99b231f90779532814a81370a1bd3274a0f58585039 languageName: node linkType: hard -"enhanced-resolve@npm:^5.12.0": - version: 5.15.0 - resolution: "enhanced-resolve@npm:5.15.0" +"enhanced-resolve@npm:^5.15.0": + version: 5.17.1 + resolution: "enhanced-resolve@npm:5.17.1" dependencies: graceful-fs: "npm:^4.2.4" tapable: "npm:^2.2.0" - checksum: 69984a7990913948b4150855aed26a84afb4cb1c5a94fb8e3a65bd00729a73fc2eaff6871fb8e345377f294831afe349615c93560f2f54d61b43cdfdf668f19a + checksum: 10c0/81a0515675eca17efdba2cf5bad87abc91a528fc1191aad50e275e74f045b41506167d420099022da7181c8d787170ea41e4a11a0b10b7a16f6237daecb15370 languageName: node linkType: hard -"env-paths@npm:^2.2.0": +"env-paths@npm:^2.2.0, env-paths@npm:^2.2.1": version: 2.2.1 resolution: "env-paths@npm:2.2.1" - checksum: 285325677bf00e30845e330eec32894f5105529db97496ee3f598478e50f008c5352a41a30e5e72ec9de8a542b5a570b85699cd63bd2bc646dbcb9f311d83bc4 + checksum: 10c0/285325677bf00e30845e330eec32894f5105529db97496ee3f598478e50f008c5352a41a30e5e72ec9de8a542b5a570b85699cd63bd2bc646dbcb9f311d83bc4 languageName: node linkType: hard "err-code@npm:^2.0.2": version: 2.0.3 resolution: "err-code@npm:2.0.3" - checksum: b642f7b4dd4a376e954947550a3065a9ece6733ab8e51ad80db727aaae0817c2e99b02a97a3d6cecc648a97848305e728289cf312d09af395403a90c9d4d8a66 + checksum: 10c0/b642f7b4dd4a376e954947550a3065a9ece6733ab8e51ad80db727aaae0817c2e99b02a97a3d6cecc648a97848305e728289cf312d09af395403a90c9d4d8a66 languageName: node linkType: hard @@ -2892,7 +3851,7 @@ __metadata: resolution: "error-ex@npm:1.3.2" dependencies: is-arrayish: "npm:^0.2.1" - checksum: ba827f89369b4c93382cfca5a264d059dfefdaa56ecc5e338ffa58a6471f5ed93b71a20add1d52290a4873d92381174382658c885ac1a2305f7baca363ce9cce + checksum: 10c0/ba827f89369b4c93382cfca5a264d059dfefdaa56ecc5e338ffa58a6471f5ed93b71a20add1d52290a4873d92381174382658c885ac1a2305f7baca363ce9cce languageName: node linkType: hard @@ -2939,14 +3898,86 @@ __metadata: typed-array-length: "npm:^1.0.4" unbox-primitive: "npm:^1.0.2" which-typed-array: "npm:^1.1.13" - checksum: da31ec43b1c8eb47ba8a17693cac143682a1078b6c3cd883ce0e2062f135f532e93d873694ef439670e1f6ca03195118f43567ba6f33fb0d6c7daae750090236 + checksum: 10c0/da31ec43b1c8eb47ba8a17693cac143682a1078b6c3cd883ce0e2062f135f532e93d873694ef439670e1f6ca03195118f43567ba6f33fb0d6c7daae750090236 languageName: node linkType: hard -"es-module-lexer@npm:^1.0.0": - version: 1.4.1 - resolution: "es-module-lexer@npm:1.4.1" - checksum: b7260a138668554d3f0ddcc728cb4b60c2fa463f15545cf155ecbdd5450a1348952d58298a7f48642e900ee579f21d7f5304b6b3c61b3d9fc2d4b2109b5a9dff +"es-abstract@npm:^1.22.3, es-abstract@npm:^1.23.0, es-abstract@npm:^1.23.2": + version: 1.23.3 + resolution: "es-abstract@npm:1.23.3" + dependencies: + array-buffer-byte-length: "npm:^1.0.1" + arraybuffer.prototype.slice: "npm:^1.0.3" + available-typed-arrays: "npm:^1.0.7" + call-bind: "npm:^1.0.7" + data-view-buffer: "npm:^1.0.1" + data-view-byte-length: "npm:^1.0.1" + data-view-byte-offset: "npm:^1.0.0" + es-define-property: "npm:^1.0.0" + es-errors: "npm:^1.3.0" + es-object-atoms: "npm:^1.0.0" + es-set-tostringtag: "npm:^2.0.3" + es-to-primitive: "npm:^1.2.1" + function.prototype.name: "npm:^1.1.6" + get-intrinsic: "npm:^1.2.4" + get-symbol-description: "npm:^1.0.2" + globalthis: "npm:^1.0.3" + gopd: "npm:^1.0.1" + has-property-descriptors: "npm:^1.0.2" + has-proto: "npm:^1.0.3" + has-symbols: "npm:^1.0.3" + hasown: "npm:^2.0.2" + internal-slot: "npm:^1.0.7" + is-array-buffer: "npm:^3.0.4" + is-callable: "npm:^1.2.7" + is-data-view: "npm:^1.0.1" + is-negative-zero: "npm:^2.0.3" + is-regex: "npm:^1.1.4" + is-shared-array-buffer: "npm:^1.0.3" + is-string: "npm:^1.0.7" + is-typed-array: "npm:^1.1.13" + is-weakref: "npm:^1.0.2" + object-inspect: "npm:^1.13.1" + object-keys: "npm:^1.1.1" + object.assign: "npm:^4.1.5" + regexp.prototype.flags: "npm:^1.5.2" + safe-array-concat: "npm:^1.1.2" + safe-regex-test: "npm:^1.0.3" + string.prototype.trim: "npm:^1.2.9" + string.prototype.trimend: "npm:^1.0.8" + string.prototype.trimstart: "npm:^1.0.8" + typed-array-buffer: "npm:^1.0.2" + typed-array-byte-length: "npm:^1.0.1" + typed-array-byte-offset: "npm:^1.0.2" + typed-array-length: "npm:^1.0.6" + unbox-primitive: "npm:^1.0.2" + which-typed-array: "npm:^1.1.15" + checksum: 10c0/d27e9afafb225c6924bee9971a7f25f20c314f2d6cb93a63cada4ac11dcf42040896a6c22e5fb8f2a10767055ed4ddf400be3b1eb12297d281726de470b75666 + languageName: node + linkType: hard + +"es-define-property@npm:^1.0.0": + version: 1.0.0 + resolution: "es-define-property@npm:1.0.0" + dependencies: + get-intrinsic: "npm:^1.2.4" + checksum: 10c0/6bf3191feb7ea2ebda48b577f69bdfac7a2b3c9bcf97307f55fd6ef1bbca0b49f0c219a935aca506c993d8c5d8bddd937766cb760cd5e5a1071351f2df9f9aa4 + languageName: node + linkType: hard + +"es-errors@npm:^1.2.1, es-errors@npm:^1.3.0": + version: 1.3.0 + resolution: "es-errors@npm:1.3.0" + checksum: 10c0/0a61325670072f98d8ae3b914edab3559b6caa980f08054a3b872052640d91da01d38df55df797fcc916389d77fc92b8d5906cf028f4db46d7e3003abecbca85 + languageName: node + linkType: hard + +"es-object-atoms@npm:^1.0.0": + version: 1.0.0 + resolution: "es-object-atoms@npm:1.0.0" + dependencies: + es-errors: "npm:^1.3.0" + checksum: 10c0/1fed3d102eb27ab8d983337bb7c8b159dd2a1e63ff833ec54eea1311c96d5b08223b433060ba240541ca8adba9eee6b0a60cdbf2f80634b784febc9cc8b687b4 languageName: node linkType: hard @@ -2957,16 +3988,27 @@ __metadata: get-intrinsic: "npm:^1.2.2" has-tostringtag: "npm:^1.0.0" hasown: "npm:^2.0.0" - checksum: 176d6bd1be31dd0145dcceee62bb78d4a5db7f81db437615a18308a6f62bcffe45c15081278413455e8cf0aad4ea99079de66f8de389605942dfdacbad74c2d5 + checksum: 10c0/176d6bd1be31dd0145dcceee62bb78d4a5db7f81db437615a18308a6f62bcffe45c15081278413455e8cf0aad4ea99079de66f8de389605942dfdacbad74c2d5 + languageName: node + linkType: hard + +"es-set-tostringtag@npm:^2.0.3": + version: 2.0.3 + resolution: "es-set-tostringtag@npm:2.0.3" + dependencies: + get-intrinsic: "npm:^1.2.4" + has-tostringtag: "npm:^1.0.2" + hasown: "npm:^2.0.1" + checksum: 10c0/f22aff1585eb33569c326323f0b0d175844a1f11618b86e193b386f8be0ea9474cfbe46df39c45d959f7aa8f6c06985dc51dd6bce5401645ec5a74c4ceaa836a languageName: node linkType: hard -"es-shim-unscopables@npm:^1.0.0": +"es-shim-unscopables@npm:^1.0.0, es-shim-unscopables@npm:^1.0.2": version: 1.0.2 resolution: "es-shim-unscopables@npm:1.0.2" dependencies: hasown: "npm:^2.0.0" - checksum: f495af7b4b7601a4c0cfb893581c352636e5c08654d129590386a33a0432cf13a7bdc7b6493801cadd990d838e2839b9013d1de3b880440cb537825e834fe783 + checksum: 10c0/f495af7b4b7601a4c0cfb893581c352636e5c08654d129590386a33a0432cf13a7bdc7b6493801cadd990d838e2839b9013d1de3b880440cb537825e834fe783 languageName: node linkType: hard @@ -2977,42 +4019,125 @@ __metadata: is-callable: "npm:^1.1.4" is-date-object: "npm:^1.0.1" is-symbol: "npm:^1.0.2" - checksum: 0886572b8dc075cb10e50c0af62a03d03a68e1e69c388bd4f10c0649ee41b1fbb24840a1b7e590b393011b5cdbe0144b776da316762653685432df37d6de60f1 + checksum: 10c0/0886572b8dc075cb10e50c0af62a03d03a68e1e69c388bd4f10c0649ee41b1fbb24840a1b7e590b393011b5cdbe0144b776da316762653685432df37d6de60f1 + languageName: node + linkType: hard + +"esbuild@npm:^0.24.0": + version: 0.24.0 + resolution: "esbuild@npm:0.24.0" + dependencies: + "@esbuild/aix-ppc64": "npm:0.24.0" + "@esbuild/android-arm": "npm:0.24.0" + "@esbuild/android-arm64": "npm:0.24.0" + "@esbuild/android-x64": "npm:0.24.0" + "@esbuild/darwin-arm64": "npm:0.24.0" + "@esbuild/darwin-x64": "npm:0.24.0" + "@esbuild/freebsd-arm64": "npm:0.24.0" + "@esbuild/freebsd-x64": "npm:0.24.0" + "@esbuild/linux-arm": "npm:0.24.0" + "@esbuild/linux-arm64": "npm:0.24.0" + "@esbuild/linux-ia32": "npm:0.24.0" + "@esbuild/linux-loong64": "npm:0.24.0" + "@esbuild/linux-mips64el": "npm:0.24.0" + "@esbuild/linux-ppc64": "npm:0.24.0" + "@esbuild/linux-riscv64": "npm:0.24.0" + "@esbuild/linux-s390x": "npm:0.24.0" + "@esbuild/linux-x64": "npm:0.24.0" + "@esbuild/netbsd-x64": "npm:0.24.0" + "@esbuild/openbsd-arm64": "npm:0.24.0" + "@esbuild/openbsd-x64": "npm:0.24.0" + "@esbuild/sunos-x64": "npm:0.24.0" + "@esbuild/win32-arm64": "npm:0.24.0" + "@esbuild/win32-ia32": "npm:0.24.0" + "@esbuild/win32-x64": "npm:0.24.0" + dependenciesMeta: + "@esbuild/aix-ppc64": + optional: true + "@esbuild/android-arm": + optional: true + "@esbuild/android-arm64": + optional: true + "@esbuild/android-x64": + optional: true + "@esbuild/darwin-arm64": + optional: true + "@esbuild/darwin-x64": + optional: true + "@esbuild/freebsd-arm64": + optional: true + "@esbuild/freebsd-x64": + optional: true + "@esbuild/linux-arm": + optional: true + "@esbuild/linux-arm64": + optional: true + "@esbuild/linux-ia32": + optional: true + "@esbuild/linux-loong64": + optional: true + "@esbuild/linux-mips64el": + optional: true + "@esbuild/linux-ppc64": + optional: true + "@esbuild/linux-riscv64": + optional: true + "@esbuild/linux-s390x": + optional: true + "@esbuild/linux-x64": + optional: true + "@esbuild/netbsd-x64": + optional: true + "@esbuild/openbsd-arm64": + optional: true + "@esbuild/openbsd-x64": + optional: true + "@esbuild/sunos-x64": + optional: true + "@esbuild/win32-arm64": + optional: true + "@esbuild/win32-ia32": + optional: true + "@esbuild/win32-x64": + optional: true + bin: + esbuild: bin/esbuild + checksum: 10c0/9f1aadd8d64f3bff422ae78387e66e51a5e09de6935a6f987b6e4e189ed00fdc2d1bc03d2e33633b094008529c8b6e06c7ad1a9782fb09fec223bf95998c0683 languageName: node linkType: hard "escalade@npm:^3.1.1": version: 3.1.1 resolution: "escalade@npm:3.1.1" - checksum: afd02e6ca91ffa813e1108b5e7756566173d6bc0d1eb951cb44d6b21702ec17c1cf116cfe75d4a2b02e05acb0b808a7a9387d0d1ca5cf9c04ad03a8445c3e46d + checksum: 10c0/afd02e6ca91ffa813e1108b5e7756566173d6bc0d1eb951cb44d6b21702ec17c1cf116cfe75d4a2b02e05acb0b808a7a9387d0d1ca5cf9c04ad03a8445c3e46d languageName: node linkType: hard -"escape-html@npm:^1.0.3": - version: 1.0.3 - resolution: "escape-html@npm:1.0.3" - checksum: 524c739d776b36c3d29fa08a22e03e8824e3b2fd57500e5e44ecf3cc4707c34c60f9ca0781c0e33d191f2991161504c295e98f68c78fe7baa6e57081ec6ac0a3 +"escalade@npm:^3.2.0": + version: 3.2.0 + resolution: "escalade@npm:3.2.0" + checksum: 10c0/ced4dd3a78e15897ed3be74e635110bbf3b08877b0a41be50dcb325ee0e0b5f65fc2d50e9845194d7c4633f327e2e1c6cce00a71b617c5673df0374201d67f65 languageName: node linkType: hard "escape-string-regexp@npm:^1.0.5": version: 1.0.5 resolution: "escape-string-regexp@npm:1.0.5" - checksum: a968ad453dd0c2724e14a4f20e177aaf32bb384ab41b674a8454afe9a41c5e6fe8903323e0a1052f56289d04bd600f81278edf140b0fcc02f5cac98d0f5b5371 + checksum: 10c0/a968ad453dd0c2724e14a4f20e177aaf32bb384ab41b674a8454afe9a41c5e6fe8903323e0a1052f56289d04bd600f81278edf140b0fcc02f5cac98d0f5b5371 languageName: node linkType: hard -"escape-string-regexp@npm:^4.0.0": - version: 4.0.0 - resolution: "escape-string-regexp@npm:4.0.0" - checksum: 9497d4dd307d845bd7f75180d8188bb17ea8c151c1edbf6b6717c100e104d629dc2dfb687686181b0f4b7d732c7dfdc4d5e7a8ff72de1b0ca283a75bbb3a9cd9 +"escape-string-regexp@npm:^2.0.0": + version: 2.0.0 + resolution: "escape-string-regexp@npm:2.0.0" + checksum: 10c0/2530479fe8db57eace5e8646c9c2a9c80fa279614986d16dcc6bcaceb63ae77f05a851ba6c43756d816c61d7f4534baf56e3c705e3e0d884818a46808811c507 languageName: node linkType: hard -"escape-string-regexp@npm:^5.0.0": - version: 5.0.0 - resolution: "escape-string-regexp@npm:5.0.0" - checksum: 6366f474c6f37a802800a435232395e04e9885919873e382b157ab7e8f0feb8fed71497f84a6f6a81a49aab41815522f5839112bd38026d203aea0c91622df95 +"escape-string-regexp@npm:^4.0.0": + version: 4.0.0 + resolution: "escape-string-regexp@npm:4.0.0" + checksum: 10c0/9497d4dd307d845bd7f75180d8188bb17ea8c151c1edbf6b6717c100e104d629dc2dfb687686181b0f4b7d732c7dfdc4d5e7a8ff72de1b0ca283a75bbb3a9cd9 languageName: node linkType: hard @@ -3023,64 +4148,82 @@ __metadata: debug: "npm:^3.2.7" is-core-module: "npm:^2.13.0" resolve: "npm:^1.22.4" - checksum: 0ea8a24a72328a51fd95aa8f660dcca74c1429806737cf10261ab90cfcaaf62fd1eff664b76a44270868e0a932711a81b250053942595bcd00a93b1c1575dd61 + checksum: 10c0/0ea8a24a72328a51fd95aa8f660dcca74c1429806737cf10261ab90cfcaaf62fd1eff664b76a44270868e0a932711a81b250053942595bcd00a93b1c1575dd61 languageName: node linkType: hard -"eslint-import-resolver-typescript@npm:^3.6.1": - version: 3.6.1 - resolution: "eslint-import-resolver-typescript@npm:3.6.1" +"eslint-import-resolver-typescript@npm:^3.6.3": + version: 3.6.3 + resolution: "eslint-import-resolver-typescript@npm:3.6.3" dependencies: - debug: "npm:^4.3.4" - enhanced-resolve: "npm:^5.12.0" - eslint-module-utils: "npm:^2.7.4" - fast-glob: "npm:^3.3.1" - get-tsconfig: "npm:^4.5.0" - is-core-module: "npm:^2.11.0" + "@nolyfill/is-core-module": "npm:1.0.39" + debug: "npm:^4.3.5" + enhanced-resolve: "npm:^5.15.0" + eslint-module-utils: "npm:^2.8.1" + fast-glob: "npm:^3.3.2" + get-tsconfig: "npm:^4.7.5" + is-bun-module: "npm:^1.0.2" is-glob: "npm:^4.0.3" peerDependencies: eslint: "*" eslint-plugin-import: "*" - checksum: cb1cb4389916fe78bf8c8567aae2f69243dbfe624bfe21078c56ad46fa1ebf0634fa7239dd3b2055ab5c27359e4b4c28b69b11fcb3a5df8a9e6f7add8e034d86 + eslint-plugin-import-x: "*" + peerDependenciesMeta: + eslint-plugin-import: + optional: true + eslint-plugin-import-x: + optional: true + checksum: 10c0/5933b00791b7b077725b9ba9a85327d2e2dc7c8944c18a868feb317a0bf0e1e77aed2254c9c5e24dcc49360d119331d2c15281837f4269592965ace380a75111 languageName: node linkType: hard -"eslint-module-utils@npm:^2.7.4, eslint-module-utils@npm:^2.8.0": - version: 2.8.0 - resolution: "eslint-module-utils@npm:2.8.0" +"eslint-module-utils@npm:^2.12.0, eslint-module-utils@npm:^2.8.1": + version: 2.12.0 + resolution: "eslint-module-utils@npm:2.12.0" dependencies: debug: "npm:^3.2.7" peerDependenciesMeta: eslint: optional: true - checksum: c7a8d1a58d76ec8217a8fea49271ec8132d1b9390965a75f6a4ecbc9e5983d742195b46d2e4378231d2186801439fe1aa5700714b0bfd4eb17aac6e1b65309df + checksum: 10c0/4d8b46dcd525d71276f9be9ffac1d2be61c9d54cc53c992e6333cf957840dee09381842b1acbbb15fc6b255ebab99cd481c5007ab438e5455a14abe1a0468558 languageName: node linkType: hard -"eslint-plugin-import@npm:^2.29.0": - version: 2.29.0 - resolution: "eslint-plugin-import@npm:2.29.0" +"eslint-plugin-import@npm:^2.31.0": + version: 2.31.0 + resolution: "eslint-plugin-import@npm:2.31.0" dependencies: - array-includes: "npm:^3.1.7" - array.prototype.findlastindex: "npm:^1.2.3" + "@rtsao/scc": "npm:^1.1.0" + array-includes: "npm:^3.1.8" + array.prototype.findlastindex: "npm:^1.2.5" array.prototype.flat: "npm:^1.3.2" array.prototype.flatmap: "npm:^1.3.2" debug: "npm:^3.2.7" doctrine: "npm:^2.1.0" eslint-import-resolver-node: "npm:^0.3.9" - eslint-module-utils: "npm:^2.8.0" - hasown: "npm:^2.0.0" - is-core-module: "npm:^2.13.1" + eslint-module-utils: "npm:^2.12.0" + hasown: "npm:^2.0.2" + is-core-module: "npm:^2.15.1" is-glob: "npm:^4.0.3" minimatch: "npm:^3.1.2" - object.fromentries: "npm:^2.0.7" - object.groupby: "npm:^1.0.1" - object.values: "npm:^1.1.7" + object.fromentries: "npm:^2.0.8" + object.groupby: "npm:^1.0.3" + object.values: "npm:^1.2.0" semver: "npm:^6.3.1" - tsconfig-paths: "npm:^3.14.2" + string.prototype.trimend: "npm:^1.0.8" + tsconfig-paths: "npm:^3.15.0" + peerDependencies: + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9 + checksum: 10c0/e21d116ddd1900e091ad120b3eb68c5dd5437fe2c930f1211781cd38b246f090a6b74d5f3800b8255a0ed29782591521ad44eb21c5534960a8f1fb4040fd913a + languageName: node + linkType: hard + +"eslint-plugin-require-extensions@npm:^0.1.3": + version: 0.1.3 + resolution: "eslint-plugin-require-extensions@npm:0.1.3" peerDependencies: - eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 - checksum: 761a4e1fbc2cd318e62350bed4c448f8b11ed83091d6bb7776f096556363a09debd9922b39fd2714c895edc9aaea82e08e684eb632283f880c58a91e4bae6733 + eslint: "*" + checksum: 10c0/79aec6ac25139edd7e085c40dae0e7699b66a0f253333a80e5a2857762f258d8cf8c89fc873b9ada7c9d8d7722c0386164783eb979361c5bc02c5e7fc1175403 languageName: node linkType: hard @@ -3090,26 +4233,26 @@ __metadata: dependencies: esrecurse: "npm:^4.3.0" estraverse: "npm:^5.2.0" - checksum: 613c267aea34b5a6d6c00514e8545ef1f1433108097e857225fed40d397dd6b1809dffd11c2fde23b37ca53d7bf935fe04d2a18e6fc932b31837b6ad67e1c116 + checksum: 10c0/613c267aea34b5a6d6c00514e8545ef1f1433108097e857225fed40d397dd6b1809dffd11c2fde23b37ca53d7bf935fe04d2a18e6fc932b31837b6ad67e1c116 languageName: node linkType: hard "eslint-visitor-keys@npm:^3.3.0, eslint-visitor-keys@npm:^3.4.1, eslint-visitor-keys@npm:^3.4.3": version: 3.4.3 resolution: "eslint-visitor-keys@npm:3.4.3" - checksum: 92708e882c0a5ffd88c23c0b404ac1628cf20104a108c745f240a13c332a11aac54f49a22d5762efbffc18ecbc9a580d1b7ad034bf5f3cc3307e5cbff2ec9820 + checksum: 10c0/92708e882c0a5ffd88c23c0b404ac1628cf20104a108c745f240a13c332a11aac54f49a22d5762efbffc18ecbc9a580d1b7ad034bf5f3cc3307e5cbff2ec9820 languageName: node linkType: hard -"eslint@npm:^8.54.0": - version: 8.54.0 - resolution: "eslint@npm:8.54.0" +"eslint@npm:^8.57.1": + version: 8.57.1 + resolution: "eslint@npm:8.57.1" dependencies: "@eslint-community/eslint-utils": "npm:^4.2.0" "@eslint-community/regexpp": "npm:^4.6.1" - "@eslint/eslintrc": "npm:^2.1.3" - "@eslint/js": "npm:8.54.0" - "@humanwhocodes/config-array": "npm:^0.11.13" + "@eslint/eslintrc": "npm:^2.1.4" + "@eslint/js": "npm:8.57.1" + "@humanwhocodes/config-array": "npm:^0.13.0" "@humanwhocodes/module-importer": "npm:^1.0.1" "@nodelib/fs.walk": "npm:^1.2.8" "@ungap/structured-clone": "npm:^1.2.0" @@ -3145,7 +4288,7 @@ __metadata: text-table: "npm:^0.2.0" bin: eslint: bin/eslint.js - checksum: 4f205f832bdbd0218cde374b067791f4f76d7abe8de86b2dc849c273899051126d912ebf71531ee49b8eeaa22cad77febdc8f2876698dc2a76e84a8cb976af22 + checksum: 10c0/1fd31533086c1b72f86770a4d9d7058ee8b4643fd1cfd10c7aac1ecb8725698e88352a87805cf4b2ce890aa35947df4b4da9655fb7fdfa60dbb448a43f6ebcf1 languageName: node linkType: hard @@ -3156,7 +4299,17 @@ __metadata: acorn: "npm:^8.9.0" acorn-jsx: "npm:^5.3.2" eslint-visitor-keys: "npm:^3.4.1" - checksum: 1a2e9b4699b715347f62330bcc76aee224390c28bb02b31a3752e9d07549c473f5f986720483c6469cf3cfb3c9d05df612ffc69eb1ee94b54b739e67de9bb460 + checksum: 10c0/1a2e9b4699b715347f62330bcc76aee224390c28bb02b31a3752e9d07549c473f5f986720483c6469cf3cfb3c9d05df612ffc69eb1ee94b54b739e67de9bb460 + languageName: node + linkType: hard + +"esprima@npm:^4.0.0": + version: 4.0.1 + resolution: "esprima@npm:4.0.1" + bin: + esparse: ./bin/esparse.js + esvalidate: ./bin/esvalidate.js + checksum: 10c0/ad4bab9ead0808cf56501750fd9d3fb276f6b105f987707d059005d57e182d18a7c9ec7f3a01794ebddcca676773e42ca48a32d67a250c9d35e009ca613caba3 languageName: node linkType: hard @@ -3165,7 +4318,7 @@ __metadata: resolution: "esquery@npm:1.5.0" dependencies: estraverse: "npm:^5.1.0" - checksum: a084bd049d954cc88ac69df30534043fb2aee5555b56246493f42f27d1e168f00d9e5d4192e46f10290d312dc30dc7d58994d61a609c579c1219d636996f9213 + checksum: 10c0/a084bd049d954cc88ac69df30534043fb2aee5555b56246493f42f27d1e168f00d9e5d4192e46f10290d312dc30dc7d58994d61a609c579c1219d636996f9213 languageName: node linkType: hard @@ -3174,56 +4327,52 @@ __metadata: resolution: "esrecurse@npm:4.3.0" dependencies: estraverse: "npm:^5.2.0" - checksum: 81a37116d1408ded88ada45b9fb16dbd26fba3aadc369ce50fcaf82a0bac12772ebd7b24cd7b91fc66786bf2c1ac7b5f196bc990a473efff972f5cb338877cf5 + checksum: 10c0/81a37116d1408ded88ada45b9fb16dbd26fba3aadc369ce50fcaf82a0bac12772ebd7b24cd7b91fc66786bf2c1ac7b5f196bc990a473efff972f5cb338877cf5 languageName: node linkType: hard "estraverse@npm:^5.1.0, estraverse@npm:^5.2.0": version: 5.3.0 resolution: "estraverse@npm:5.3.0" - checksum: 1ff9447b96263dec95d6d67431c5e0771eb9776427421260a3e2f0fdd5d6bd4f8e37a7338f5ad2880c9f143450c9b1e4fc2069060724570a49cf9cf0312bd107 - languageName: node - linkType: hard - -"estree-walker@npm:^2.0.2": - version: 2.0.2 - resolution: "estree-walker@npm:2.0.2" - checksum: 53a6c54e2019b8c914dc395890153ffdc2322781acf4bd7d1a32d7aedc1710807bdcd866ac133903d5629ec601fbb50abe8c2e5553c7f5a0afdd9b6af6c945af + checksum: 10c0/1ff9447b96263dec95d6d67431c5e0771eb9776427421260a3e2f0fdd5d6bd4f8e37a7338f5ad2880c9f143450c9b1e4fc2069060724570a49cf9cf0312bd107 languageName: node linkType: hard "esutils@npm:^2.0.2": version: 2.0.3 resolution: "esutils@npm:2.0.3" - checksum: 9a2fe69a41bfdade834ba7c42de4723c97ec776e40656919c62cbd13607c45e127a003f05f724a1ea55e5029a4cf2de444b13009f2af71271e42d93a637137c7 - languageName: node - linkType: hard - -"etag@npm:^1.8.1": - version: 1.8.1 - resolution: "etag@npm:1.8.1" - checksum: 12be11ef62fb9817314d790089a0a49fae4e1b50594135dcb8076312b7d7e470884b5100d249b28c18581b7fd52f8b485689ffae22a11ed9ec17377a33a08f84 + checksum: 10c0/9a2fe69a41bfdade834ba7c42de4723c97ec776e40656919c62cbd13607c45e127a003f05f724a1ea55e5029a4cf2de444b13009f2af71271e42d93a637137c7 languageName: node linkType: hard "event-target-shim@npm:^5.0.0": version: 5.0.1 resolution: "event-target-shim@npm:5.0.1" - checksum: 0255d9f936215fd206156fd4caa9e8d35e62075d720dc7d847e89b417e5e62cf1ce6c9b4e0a1633a9256de0efefaf9f8d26924b1f3c8620cffb9db78e7d3076b + checksum: 10c0/0255d9f936215fd206156fd4caa9e8d35e62075d720dc7d847e89b417e5e62cf1ce6c9b4e0a1633a9256de0efefaf9f8d26924b1f3c8620cffb9db78e7d3076b languageName: node linkType: hard "eventemitter3@npm:^5.0.1": version: 5.0.1 resolution: "eventemitter3@npm:5.0.1" - checksum: 4ba5c00c506e6c786b4d6262cfbce90ddc14c10d4667e5c83ae993c9de88aa856033994dd2b35b83e8dc1170e224e66a319fa80adc4c32adcd2379bbc75da814 + checksum: 10c0/4ba5c00c506e6c786b4d6262cfbce90ddc14c10d4667e5c83ae993c9de88aa856033994dd2b35b83e8dc1170e224e66a319fa80adc4c32adcd2379bbc75da814 languageName: node linkType: hard -"events@npm:^3.3.0": - version: 3.3.0 - resolution: "events@npm:3.3.0" - checksum: d6b6f2adbccbcda74ddbab52ed07db727ef52e31a61ed26db9feb7dc62af7fc8e060defa65e5f8af9449b86b52cc1a1f6a79f2eafcf4e62add2b7a1fa4a432f6 +"execa@npm:^5.0.0": + version: 5.1.1 + resolution: "execa@npm:5.1.1" + dependencies: + cross-spawn: "npm:^7.0.3" + get-stream: "npm:^6.0.0" + human-signals: "npm:^2.1.0" + is-stream: "npm:^2.0.0" + merge-stream: "npm:^2.0.0" + npm-run-path: "npm:^4.0.1" + onetime: "npm:^5.1.2" + signal-exit: "npm:^3.0.3" + strip-final-newline: "npm:^2.0.0" + checksum: 10c0/c8e615235e8de4c5addf2fa4c3da3e3aa59ce975a3e83533b4f6a71750fb816a2e79610dc5f1799b6e28976c9ae86747a36a606655bf8cb414a74d8d507b304f languageName: node linkType: hard @@ -3240,43 +4389,45 @@ __metadata: onetime: "npm:^6.0.0" signal-exit: "npm:^4.1.0" strip-final-newline: "npm:^3.0.0" - checksum: 2c52d8775f5bf103ce8eec9c7ab3059909ba350a5164744e9947ed14a53f51687c040a250bda833f906d1283aa8803975b84e6c8f7a7c42f99dc8ef80250d1af + checksum: 10c0/2c52d8775f5bf103ce8eec9c7ab3059909ba350a5164744e9947ed14a53f51687c040a250bda833f906d1283aa8803975b84e6c8f7a7c42f99dc8ef80250d1af languageName: node linkType: hard -"exit-hook@npm:^4.0.0": - version: 4.0.0 - resolution: "exit-hook@npm:4.0.0" - checksum: 7fb33eaeb9050aee9479da9c93d42b796fb409c40e1d2b6ea2f40786ae7d7db6dc6a0f6ecc7bc24e479f957b7844bcb880044ded73320334743c64e3ecef48d7 +"exit@npm:^0.1.2": + version: 0.1.2 + resolution: "exit@npm:0.1.2" + checksum: 10c0/71d2ad9b36bc25bb8b104b17e830b40a08989be7f7d100b13269aaae7c3784c3e6e1e88a797e9e87523993a25ba27c8958959a554535370672cfb4d824af8989 languageName: node linkType: hard -"exponential-backoff@npm:^3.1.1": - version: 3.1.1 - resolution: "exponential-backoff@npm:3.1.1" - checksum: 160456d2d647e6019640bd07111634d8c353038d9fa40176afb7cd49b0548bdae83b56d05e907c2cce2300b81cae35d800ef92fefb9d0208e190fa3b7d6bb579 +"expect@npm:^29.0.0, expect@npm:^29.7.0": + version: 29.7.0 + resolution: "expect@npm:29.7.0" + dependencies: + "@jest/expect-utils": "npm:^29.7.0" + jest-get-type: "npm:^29.6.3" + jest-matcher-utils: "npm:^29.7.0" + jest-message-util: "npm:^29.7.0" + jest-util: "npm:^29.7.0" + checksum: 10c0/2eddeace66e68b8d8ee5f7be57f3014b19770caaf6815c7a08d131821da527fb8c8cb7b3dcd7c883d2d3d8d184206a4268984618032d1e4b16dc8d6596475d41 languageName: node linkType: hard -"external-editor@npm:^3.1.0": - version: 3.1.0 - resolution: "external-editor@npm:3.1.0" - dependencies: - chardet: "npm:^0.7.0" - iconv-lite: "npm:^0.4.24" - tmp: "npm:^0.0.33" - checksum: c98f1ba3efdfa3c561db4447ff366a6adb5c1e2581462522c56a18bf90dfe4da382f9cd1feee3e330108c3595a854b218272539f311ba1b3298f841eb0fbf339 +"exponential-backoff@npm:^3.1.1": + version: 3.1.1 + resolution: "exponential-backoff@npm:3.1.1" + checksum: 10c0/160456d2d647e6019640bd07111634d8c353038d9fa40176afb7cd49b0548bdae83b56d05e907c2cce2300b81cae35d800ef92fefb9d0208e190fa3b7d6bb579 languageName: node linkType: hard "fast-deep-equal@npm:^3.1.1, fast-deep-equal@npm:^3.1.3": version: 3.1.3 resolution: "fast-deep-equal@npm:3.1.3" - checksum: 40dedc862eb8992c54579c66d914635afbec43350afbbe991235fdcb4e3a8d5af1b23ae7e79bef7d4882d0ecee06c3197488026998fb19f72dc95acff1d1b1d0 + checksum: 10c0/40dedc862eb8992c54579c66d914635afbec43350afbbe991235fdcb4e3a8d5af1b23ae7e79bef7d4882d0ecee06c3197488026998fb19f72dc95acff1d1b1d0 languageName: node linkType: hard -"fast-glob@npm:^3.2.9, fast-glob@npm:^3.3.1, fast-glob@npm:^3.3.2": +"fast-glob@npm:^3.2.9, fast-glob@npm:^3.3.2": version: 3.3.2 resolution: "fast-glob@npm:3.3.2" dependencies: @@ -3285,21 +4436,21 @@ __metadata: glob-parent: "npm:^5.1.2" merge2: "npm:^1.3.0" micromatch: "npm:^4.0.4" - checksum: 42baad7b9cd40b63e42039132bde27ca2cb3a4950d0a0f9abe4639ea1aa9d3e3b40f98b1fe31cbc0cc17b664c9ea7447d911a152fa34ec5b72977b125a6fc845 + checksum: 10c0/42baad7b9cd40b63e42039132bde27ca2cb3a4950d0a0f9abe4639ea1aa9d3e3b40f98b1fe31cbc0cc17b664c9ea7447d911a152fa34ec5b72977b125a6fc845 languageName: node linkType: hard -"fast-json-stable-stringify@npm:^2.0.0": +"fast-json-stable-stringify@npm:^2.0.0, fast-json-stable-stringify@npm:^2.1.0": version: 2.1.0 resolution: "fast-json-stable-stringify@npm:2.1.0" - checksum: 7f081eb0b8a64e0057b3bb03f974b3ef00135fbf36c1c710895cd9300f13c94ba809bb3a81cf4e1b03f6e5285610a61abbd7602d0652de423144dfee5a389c9b + checksum: 10c0/7f081eb0b8a64e0057b3bb03f974b3ef00135fbf36c1c710895cd9300f13c94ba809bb3a81cf4e1b03f6e5285610a61abbd7602d0652de423144dfee5a389c9b languageName: node linkType: hard "fast-levenshtein@npm:^2.0.6": version: 2.0.6 resolution: "fast-levenshtein@npm:2.0.6" - checksum: 111972b37338bcb88f7d9e2c5907862c280ebf4234433b95bc611e518d192ccb2d38119c4ac86e26b668d75f7f3894f4ff5c4982899afced7ca78633b08287c4 + checksum: 10c0/111972b37338bcb88f7d9e2c5907862c280ebf4234433b95bc611e518d192ccb2d38119c4ac86e26b668d75f7f3894f4ff5c4982899afced7ca78633b08287c4 languageName: node linkType: hard @@ -3308,7 +4459,28 @@ __metadata: resolution: "fastq@npm:1.15.0" dependencies: reusify: "npm:^1.0.4" - checksum: 5ce4f83afa5f88c9379e67906b4d31bc7694a30826d6cc8d0f0473c966929017fda65c2174b0ec89f064ede6ace6c67f8a4fe04cef42119b6a55b0d465554c24 + checksum: 10c0/5ce4f83afa5f88c9379e67906b4d31bc7694a30826d6cc8d0f0473c966929017fda65c2174b0ec89f064ede6ace6c67f8a4fe04cef42119b6a55b0d465554c24 + languageName: node + linkType: hard + +"fb-watchman@npm:^2.0.0": + version: 2.0.2 + resolution: "fb-watchman@npm:2.0.2" + dependencies: + bser: "npm:2.1.1" + checksum: 10c0/feae89ac148adb8f6ae8ccd87632e62b13563e6fb114cacb5265c51f585b17e2e268084519fb2edd133872f1d47a18e6bfd7e5e08625c0d41b93149694187581 + languageName: node + linkType: hard + +"fdir@npm:^6.4.0": + version: 6.4.2 + resolution: "fdir@npm:6.4.2" + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + checksum: 10c0/34829886f34a3ca4170eca7c7180ec4de51a3abb4d380344063c0ae2e289b11d2ba8b724afee974598c83027fea363ff598caf2b51bc4e6b1e0d8b80cc530573 languageName: node linkType: hard @@ -3318,17 +4490,7 @@ __metadata: dependencies: node-domexception: "npm:^1.0.0" web-streams-polyfill: "npm:^3.0.3" - checksum: 60054bf47bfa10fb0ba6cb7742acec2f37c1f56344f79a70bb8b1c48d77675927c720ff3191fa546410a0442c998d27ab05e9144c32d530d8a52fbe68f843b69 - languageName: node - linkType: hard - -"figures@npm:^5.0.0": - version: 5.0.0 - resolution: "figures@npm:5.0.0" - dependencies: - escape-string-regexp: "npm:^5.0.0" - is-unicode-supported: "npm:^1.2.0" - checksum: ce0f17d4ea8b0fc429c5207c343534a2f5284ecfb22aa08607da7dc84ed9e1cf754f5b97760e8dcb98d3c9d1a1e4d3d578fe3b5b99c426f05d0f06c7ba618e16 + checksum: 10c0/60054bf47bfa10fb0ba6cb7742acec2f37c1f56344f79a70bb8b1c48d77675927c720ff3191fa546410a0442c998d27ab05e9144c32d530d8a52fbe68f843b69 languageName: node linkType: hard @@ -3337,7 +4499,7 @@ __metadata: resolution: "file-entry-cache@npm:6.0.1" dependencies: flat-cache: "npm:^3.0.4" - checksum: 58473e8a82794d01b38e5e435f6feaf648e3f36fdb3a56e98f417f4efae71ad1c0d4ebd8a9a7c50c3ad085820a93fc7494ad721e0e4ebc1da3573f4e1c3c7cdd + checksum: 10c0/58473e8a82794d01b38e5e435f6feaf648e3f36fdb3a56e98f417f4efae71ad1c0d4ebd8a9a7c50c3ad085820a93fc7494ad721e0e4ebc1da3573f4e1c3c7cdd languageName: node linkType: hard @@ -3346,25 +4508,7 @@ __metadata: resolution: "fill-range@npm:7.0.1" dependencies: to-regex-range: "npm:^5.0.1" - checksum: 7cdad7d426ffbaadf45aeb5d15ec675bbd77f7597ad5399e3d2766987ed20bda24d5fac64b3ee79d93276f5865608bb22344a26b9b1ae6c4d00bd94bf611623f - languageName: node - linkType: hard - -"find-replace@npm:^3.0.0": - version: 3.0.0 - resolution: "find-replace@npm:3.0.0" - dependencies: - array-back: "npm:^3.0.1" - checksum: fcd1bf7960388c8193c2861bcdc760c18ac14edb4bde062a961915d9a25727b2e8aabf0229e90cc09c753fd557e5a3e5ae61e49cadbe727be89a9e8e49ce7668 - languageName: node - linkType: hard - -"find-up@npm:^2.0.0": - version: 2.1.0 - resolution: "find-up@npm:2.1.0" - dependencies: - locate-path: "npm:^2.0.0" - checksum: c080875c9fe28eb1962f35cbe83c683796a0321899f1eed31a37577800055539815de13d53495049697d3ba313013344f843bb9401dd337a1b832be5edfc6840 + checksum: 10c0/7cdad7d426ffbaadf45aeb5d15ec675bbd77f7597ad5399e3d2766987ed20bda24d5fac64b3ee79d93276f5865608bb22344a26b9b1ae6c4d00bd94bf611623f languageName: node linkType: hard @@ -3374,7 +4518,7 @@ __metadata: dependencies: locate-path: "npm:^5.0.0" path-exists: "npm:^4.0.0" - checksum: 0406ee89ebeefa2d507feb07ec366bebd8a6167ae74aa4e34fb4c4abd06cf782a3ce26ae4194d70706f72182841733f00551c209fe575cb00bd92104056e78c1 + checksum: 10c0/0406ee89ebeefa2d507feb07ec366bebd8a6167ae74aa4e34fb4c4abd06cf782a3ce26ae4194d70706f72182841733f00551c209fe575cb00bd92104056e78c1 languageName: node linkType: hard @@ -3384,7 +4528,17 @@ __metadata: dependencies: locate-path: "npm:^6.0.0" path-exists: "npm:^4.0.0" - checksum: 062c5a83a9c02f53cdd6d175a37ecf8f87ea5bbff1fdfb828f04bfa021441bc7583e8ebc0872a4c1baab96221fb8a8a275a19809fb93fbc40bd69ec35634069a + checksum: 10c0/062c5a83a9c02f53cdd6d175a37ecf8f87ea5bbff1fdfb828f04bfa021441bc7583e8ebc0872a4c1baab96221fb8a8a275a19809fb93fbc40bd69ec35634069a + languageName: node + linkType: hard + +"find-up@npm:^6.3.0": + version: 6.3.0 + resolution: "find-up@npm:6.3.0" + dependencies: + locate-path: "npm:^7.1.0" + path-exists: "npm:^5.0.0" + checksum: 10c0/07e0314362d316b2b13f7f11ea4692d5191e718ca3f7264110127520f3347996349bf9e16805abae3e196805814bc66ef4bff2b8904dc4a6476085fc9b0eba07 languageName: node linkType: hard @@ -3395,14 +4549,14 @@ __metadata: flatted: "npm:^3.2.9" keyv: "npm:^4.5.3" rimraf: "npm:^3.0.2" - checksum: b76f611bd5f5d68f7ae632e3ae503e678d205cf97a17c6ab5b12f6ca61188b5f1f7464503efae6dc18683ed8f0b41460beb48ac4b9ac63fe6201296a91ba2f75 + checksum: 10c0/b76f611bd5f5d68f7ae632e3ae503e678d205cf97a17c6ab5b12f6ca61188b5f1f7464503efae6dc18683ed8f0b41460beb48ac4b9ac63fe6201296a91ba2f75 languageName: node linkType: hard "flatted@npm:^3.2.9": version: 3.2.9 resolution: "flatted@npm:3.2.9" - checksum: 5c91c5a0a21bbc0b07b272231e5b4efe6b822bcb4ad317caf6bb06984be4042a9e9045026307da0fdb4583f1f545e317a67ef1231a59e71f7fced3cc429cfc53 + checksum: 10c0/5c91c5a0a21bbc0b07b272231e5b4efe6b822bcb4ad317caf6bb06984be4042a9e9045026307da0fdb4583f1f545e317a67ef1231a59e71f7fced3cc429cfc53 languageName: node linkType: hard @@ -3411,7 +4565,7 @@ __metadata: resolution: "for-each@npm:0.3.3" dependencies: is-callable: "npm:^1.1.3" - checksum: 22330d8a2db728dbf003ec9182c2d421fbcd2969b02b4f97ec288721cda63eb28f2c08585ddccd0f77cb2930af8d958005c9e72f47141dc51816127a118f39aa + checksum: 10c0/22330d8a2db728dbf003ec9182c2d421fbcd2969b02b4f97ec288721cda63eb28f2c08585ddccd0f77cb2930af8d958005c9e72f47141dc51816127a118f39aa languageName: node linkType: hard @@ -3421,7 +4575,7 @@ __metadata: dependencies: cross-spawn: "npm:^7.0.0" signal-exit: "npm:^4.0.1" - checksum: 9700a0285628abaeb37007c9a4d92bd49f67210f09067638774338e146c8e9c825c5c877f072b2f75f41dc6a2d0be8664f79ffc03f6576649f54a84fb9b47de0 + checksum: 10c0/9700a0285628abaeb37007c9a4d92bd49f67210f09067638774338e146c8e9c825c5c877f072b2f75f41dc6a2d0be8664f79ffc03f6576649f54a84fb9b47de0 languageName: node linkType: hard @@ -3430,25 +4584,18 @@ __metadata: resolution: "formdata-polyfill@npm:4.0.10" dependencies: fetch-blob: "npm:^3.1.2" - checksum: 5392ec484f9ce0d5e0d52fb5a78e7486637d516179b0eb84d81389d7eccf9ca2f663079da56f761355c0a65792810e3b345dc24db9a8bbbcf24ef3c8c88570c6 - languageName: node - linkType: hard - -"fresh@npm:~0.5.2": - version: 0.5.2 - resolution: "fresh@npm:0.5.2" - checksum: c6d27f3ed86cc5b601404822f31c900dd165ba63fff8152a3ef714e2012e7535027063bc67ded4cb5b3a49fa596495d46cacd9f47d6328459cf570f08b7d9e5a + checksum: 10c0/5392ec484f9ce0d5e0d52fb5a78e7486637d516179b0eb84d81389d7eccf9ca2f663079da56f761355c0a65792810e3b345dc24db9a8bbbcf24ef3c8c88570c6 languageName: node linkType: hard -"fs-extra@npm:^11.1.1": - version: 11.1.1 - resolution: "fs-extra@npm:11.1.1" +"fs-extra@npm:^11.2.0": + version: 11.2.0 + resolution: "fs-extra@npm:11.2.0" dependencies: graceful-fs: "npm:^4.2.0" jsonfile: "npm:^6.0.1" universalify: "npm:^2.0.0" - checksum: a2480243d7dcfa7d723c5f5b24cf4eba02a6ccece208f1524a2fbde1c629492cfb9a59e4b6d04faff6fbdf71db9fdc8ef7f396417a02884195a625f5d8dc9427 + checksum: 10c0/d77a9a9efe60532d2e790e938c81a02c1b24904ef7a3efb3990b835514465ba720e99a6ea56fd5e2db53b4695319b644d76d5a0e9988a2beef80aa7b1da63398 languageName: node linkType: hard @@ -3457,7 +4604,7 @@ __metadata: resolution: "fs-minipass@npm:2.1.0" dependencies: minipass: "npm:^3.0.0" - checksum: 703d16522b8282d7299337539c3ed6edddd1afe82435e4f5b76e34a79cd74e488a8a0e26a636afc2440e1a23b03878e2122e3a2cfe375a5cf63c37d92b86a004 + checksum: 10c0/703d16522b8282d7299337539c3ed6edddd1afe82435e4f5b76e34a79cd74e488a8a0e26a636afc2440e1a23b03878e2122e3a2cfe375a5cf63c37d92b86a004 languageName: node linkType: hard @@ -3466,28 +4613,28 @@ __metadata: resolution: "fs-minipass@npm:3.0.3" dependencies: minipass: "npm:^7.0.3" - checksum: 63e80da2ff9b621e2cb1596abcb9207f1cf82b968b116ccd7b959e3323144cce7fb141462200971c38bbf2ecca51695069db45265705bed09a7cd93ae5b89f94 + checksum: 10c0/63e80da2ff9b621e2cb1596abcb9207f1cf82b968b116ccd7b959e3323144cce7fb141462200971c38bbf2ecca51695069db45265705bed09a7cd93ae5b89f94 languageName: node linkType: hard "fs.realpath@npm:^1.0.0": version: 1.0.0 resolution: "fs.realpath@npm:1.0.0" - checksum: 444cf1291d997165dfd4c0d58b69f0e4782bfd9149fd72faa4fe299e68e0e93d6db941660b37dd29153bf7186672ececa3b50b7e7249477b03fdf850f287c948 + checksum: 10c0/444cf1291d997165dfd4c0d58b69f0e4782bfd9149fd72faa4fe299e68e0e93d6db941660b37dd29153bf7186672ececa3b50b7e7249477b03fdf850f287c948 languageName: node linkType: hard -"fsevents@npm:~2.3.2": +"fsevents@npm:^2.3.2": version: 2.3.3 resolution: "fsevents@npm:2.3.3" dependencies: node-gyp: "npm:latest" - checksum: a1f0c44595123ed717febbc478aa952e47adfc28e2092be66b8ab1635147254ca6cfe1df792a8997f22716d4cbafc73309899ff7bfac2ac3ad8cf2e4ecc3ec60 + checksum: 10c0/a1f0c44595123ed717febbc478aa952e47adfc28e2092be66b8ab1635147254ca6cfe1df792a8997f22716d4cbafc73309899ff7bfac2ac3ad8cf2e4ecc3ec60 conditions: os=darwin languageName: node linkType: hard -"fsevents@patch:fsevents@npm%3A~2.3.2#optional!builtin": +"fsevents@patch:fsevents@npm%3A^2.3.2#optional!builtin": version: 2.3.3 resolution: "fsevents@patch:fsevents@npm%3A2.3.3#optional!builtin::version=2.3.3&hash=df0bf1" dependencies: @@ -3499,7 +4646,7 @@ __metadata: "function-bind@npm:^1.1.2": version: 1.1.2 resolution: "function-bind@npm:1.1.2" - checksum: d8680ee1e5fcd4c197e4ac33b2b4dce03c71f4d91717292785703db200f5c21f977c568d28061226f9b5900cbcd2c84463646134fd5337e7925e0942bc3f46d5 + checksum: 10c0/d8680ee1e5fcd4c197e4ac33b2b4dce03c71f4d91717292785703db200f5c21f977c568d28061226f9b5900cbcd2c84463646134fd5337e7925e0942bc3f46d5 languageName: node linkType: hard @@ -3511,37 +4658,35 @@ __metadata: define-properties: "npm:^1.2.0" es-abstract: "npm:^1.22.1" functions-have-names: "npm:^1.2.3" - checksum: 9eae11294905b62cb16874adb4fc687927cda3162285e0ad9612e6a1d04934005d46907362ea9cdb7428edce05a2f2c3dabc3b2d21e9fd343e9bb278230ad94b + checksum: 10c0/9eae11294905b62cb16874adb4fc687927cda3162285e0ad9612e6a1d04934005d46907362ea9cdb7428edce05a2f2c3dabc3b2d21e9fd343e9bb278230ad94b languageName: node linkType: hard "functions-have-names@npm:^1.2.3": version: 1.2.3 resolution: "functions-have-names@npm:1.2.3" - checksum: 33e77fd29bddc2d9bb78ab3eb854c165909201f88c75faa8272e35899e2d35a8a642a15e7420ef945e1f64a9670d6aa3ec744106b2aa42be68ca5114025954ca + checksum: 10c0/33e77fd29bddc2d9bb78ab3eb854c165909201f88c75faa8272e35899e2d35a8a642a15e7420ef945e1f64a9670d6aa3ec744106b2aa42be68ca5114025954ca languageName: node linkType: hard -"gauge@npm:^5.0.0": - version: 5.0.1 - resolution: "gauge@npm:5.0.1" - dependencies: - aproba: "npm:^1.0.3 || ^2.0.0" - color-support: "npm:^1.1.3" - console-control-strings: "npm:^1.1.0" - has-unicode: "npm:^2.0.1" - signal-exit: "npm:^4.0.1" - string-width: "npm:^4.2.3" - strip-ansi: "npm:^6.0.1" - wide-align: "npm:^1.1.5" - checksum: 845f9a2534356cd0e9c1ae590ed471bbe8d74c318915b92a34e8813b8d3441ca8e0eb0fa87a48081e70b63b84d398c5e66a13b8e8040181c10b9d77e9fe3287f +"gensync@npm:^1.0.0-beta.2": + version: 1.0.0-beta.2 + resolution: "gensync@npm:1.0.0-beta.2" + checksum: 10c0/782aba6cba65b1bb5af3b095d96249d20edbe8df32dbf4696fd49be2583faf676173bf4809386588828e4dd76a3354fcbeb577bab1c833ccd9fc4577f26103f8 languageName: node linkType: hard "get-caller-file@npm:^2.0.5": version: 2.0.5 resolution: "get-caller-file@npm:2.0.5" - checksum: c6c7b60271931fa752aeb92f2b47e355eac1af3a2673f47c9589e8f8a41adc74d45551c1bc57b5e66a80609f10ffb72b6f575e4370d61cc3f7f3aaff01757cde + checksum: 10c0/c6c7b60271931fa752aeb92f2b47e355eac1af3a2673f47c9589e8f8a41adc74d45551c1bc57b5e66a80609f10ffb72b6f575e4370d61cc3f7f3aaff01757cde + languageName: node + linkType: hard + +"get-east-asian-width@npm:^1.0.0": + version: 1.3.0 + resolution: "get-east-asian-width@npm:1.3.0" + checksum: 10c0/1a049ba697e0f9a4d5514c4623781c5246982bdb61082da6b5ae6c33d838e52ce6726407df285cdbb27ec1908b333cf2820989bd3e986e37bb20979437fdf34b languageName: node linkType: hard @@ -3553,35 +4698,51 @@ __metadata: has-proto: "npm:^1.0.1" has-symbols: "npm:^1.0.3" hasown: "npm:^2.0.0" - checksum: 4e7fb8adc6172bae7c4fe579569b4d5238b3667c07931cd46b4eee74bbe6ff6b91329bec311a638d8e60f5b51f44fe5445693c6be89ae88d4b5c49f7ff12db0b + checksum: 10c0/4e7fb8adc6172bae7c4fe579569b4d5238b3667c07931cd46b4eee74bbe6ff6b91329bec311a638d8e60f5b51f44fe5445693c6be89ae88d4b5c49f7ff12db0b languageName: node linkType: hard -"get-pkg-repo@npm:^4.2.1": - version: 4.2.1 - resolution: "get-pkg-repo@npm:4.2.1" +"get-intrinsic@npm:^1.2.3, get-intrinsic@npm:^1.2.4": + version: 1.2.4 + resolution: "get-intrinsic@npm:1.2.4" dependencies: - "@hutson/parse-repository-url": "npm:^3.0.0" - hosted-git-info: "npm:^4.0.0" - through2: "npm:^2.0.0" - yargs: "npm:^16.2.0" - bin: - get-pkg-repo: src/cli.js - checksum: 1338d2e048a594da4a34e7dd69d909376d72784f5ba50963a242b4b35db77533786f618b3f6a9effdee2af20af4917a3b7cf12533b4575d7f9c163886be1fb62 + es-errors: "npm:^1.3.0" + function-bind: "npm:^1.1.2" + has-proto: "npm:^1.0.1" + has-symbols: "npm:^1.0.3" + hasown: "npm:^2.0.0" + checksum: 10c0/0a9b82c16696ed6da5e39b1267104475c47e3a9bdbe8b509dfe1710946e38a87be70d759f4bb3cda042d76a41ef47fe769660f3b7c0d1f68750299344ffb15b7 + languageName: node + linkType: hard + +"get-package-type@npm:^0.1.0": + version: 0.1.0 + resolution: "get-package-type@npm:0.1.0" + checksum: 10c0/e34cdf447fdf1902a1f6d5af737eaadf606d2ee3518287abde8910e04159368c268568174b2e71102b87b26c2020486f126bfca9c4fb1ceb986ff99b52ecd1be languageName: node linkType: hard "get-stream@npm:^6.0.0": version: 6.0.1 resolution: "get-stream@npm:6.0.1" - checksum: 49825d57d3fd6964228e6200a58169464b8e8970489b3acdc24906c782fb7f01f9f56f8e6653c4a50713771d6658f7cfe051e5eb8c12e334138c9c918b296341 + checksum: 10c0/49825d57d3fd6964228e6200a58169464b8e8970489b3acdc24906c782fb7f01f9f56f8e6653c4a50713771d6658f7cfe051e5eb8c12e334138c9c918b296341 languageName: node linkType: hard "get-stream@npm:^8.0.1": version: 8.0.1 resolution: "get-stream@npm:8.0.1" - checksum: 5c2181e98202b9dae0bb4a849979291043e5892eb40312b47f0c22b9414fc9b28a3b6063d2375705eb24abc41ecf97894d9a51f64ff021511b504477b27b4290 + checksum: 10c0/5c2181e98202b9dae0bb4a849979291043e5892eb40312b47f0c22b9414fc9b28a3b6063d2375705eb24abc41ecf97894d9a51f64ff021511b504477b27b4290 + languageName: node + linkType: hard + +"get-stream@npm:^9.0.1": + version: 9.0.1 + resolution: "get-stream@npm:9.0.1" + dependencies: + "@sec-ant/readable-stream": "npm:^0.4.1" + is-stream: "npm:^4.0.1" + checksum: 10c0/d70e73857f2eea1826ac570c3a912757dcfbe8a718a033fa0c23e12ac8e7d633195b01710e0559af574cbb5af101009b42df7b6f6b29ceec8dbdf7291931b948 languageName: node linkType: hard @@ -3591,51 +4752,52 @@ __metadata: dependencies: call-bind: "npm:^1.0.2" get-intrinsic: "npm:^1.1.1" - checksum: 23bc3b44c221cdf7669a88230c62f4b9e30393b61eb21ba4400cb3e346801bd8f95fe4330ee78dbae37aecd874646d53e3e76a17a654d0c84c77f6690526d6bb + checksum: 10c0/23bc3b44c221cdf7669a88230c62f4b9e30393b61eb21ba4400cb3e346801bd8f95fe4330ee78dbae37aecd874646d53e3e76a17a654d0c84c77f6690526d6bb languageName: node linkType: hard -"get-tsconfig@npm:^4.5.0": - version: 4.7.2 - resolution: "get-tsconfig@npm:4.7.2" +"get-symbol-description@npm:^1.0.2": + version: 1.0.2 + resolution: "get-symbol-description@npm:1.0.2" dependencies: - resolve-pkg-maps: "npm:^1.0.0" - checksum: 169b2beababfbb16e8a0ae813ee59d3e14d4960231c816615161ab5be68ec07a394dce59695742ac84295e2efab8d9e89bcf3abaf5e253dfbec3496e01bb9a65 + call-bind: "npm:^1.0.5" + es-errors: "npm:^1.3.0" + get-intrinsic: "npm:^1.2.4" + checksum: 10c0/867be6d63f5e0eb026cb3b0ef695ec9ecf9310febb041072d2e142f260bd91ced9eeb426b3af98791d1064e324e653424afa6fd1af17dee373bea48ae03162bc languageName: node linkType: hard -"git-raw-commits@npm:^3.0.0": - version: 3.0.0 - resolution: "git-raw-commits@npm:3.0.0" +"get-tsconfig@npm:^4.7.5": + version: 4.8.1 + resolution: "get-tsconfig@npm:4.8.1" dependencies: - dargs: "npm:^7.0.0" - meow: "npm:^8.1.2" - split2: "npm:^3.2.2" - bin: - git-raw-commits: cli.js - checksum: 2a5db2e4b5b1ef7b6ecbdc175e559920a5400cbdb8d36f130aaef3588bfd74d8650b354a51ff89e0929eadbb265a00078a6291ff26248a525f0b2f079b001bf6 + resolve-pkg-maps: "npm:^1.0.0" + checksum: 10c0/536ee85d202f604f4b5fb6be81bcd6e6d9a96846811e83e9acc6de4a04fb49506edea0e1b8cf1d5ee7af33e469916ec2809d4c5445ab8ae015a7a51fbd1572f9 languageName: node linkType: hard -"git-remote-origin-url@npm:^2.0.0": - version: 2.0.0 - resolution: "git-remote-origin-url@npm:2.0.0" +"git-raw-commits@npm:^4.0.0": + version: 4.0.0 + resolution: "git-raw-commits@npm:4.0.0" dependencies: - gitconfiglocal: "npm:^1.0.0" - pify: "npm:^2.3.0" - checksum: 3a846ce98ed36b2d0b801e8ec1ab299a236cfc6fa264bfdf9f42301abfdfd8715c946507fd83a10b9db449eb609ac6f8a2a341daf52e3af0000367487f486355 + dargs: "npm:^8.0.0" + meow: "npm:^12.0.1" + split2: "npm:^4.0.0" + bin: + git-raw-commits: cli.mjs + checksum: 10c0/ab51335d9e55692fce8e42788013dba7a7e7bf9f5bf0622c8cd7ddc9206489e66bb939563fca4edb3aa87477e2118f052702aad1933b13c6fa738af7f29884f0 languageName: node linkType: hard -"git-semver-tags@npm:^5.0.0": - version: 5.0.1 - resolution: "git-semver-tags@npm:5.0.1" +"git-semver-tags@npm:^7.0.0": + version: 7.0.1 + resolution: "git-semver-tags@npm:7.0.1" dependencies: - meow: "npm:^8.1.2" - semver: "npm:^7.0.0" + meow: "npm:^12.0.1" + semver: "npm:^7.5.2" bin: - git-semver-tags: cli.js - checksum: 7cacba2f4ac19c0ccb8e6bb7301409376e5a2cc178692667afff453e6fe81f79b5f3f5040343e2be127a2f34977528d354de2aa32430917e90b64884debd3102 + git-semver-tags: cli.mjs + checksum: 10c0/6eec918f6324248faad98d8846cc8c73a73d735a182af3b2073e58a75c828487da0bbb6ae33d5b0302f006eed1af93b4a3ed732fcfc53152623ba5ee21504205 languageName: node linkType: hard @@ -3645,34 +4807,25 @@ __metadata: dependencies: is-ssh: "npm:^1.4.0" parse-url: "npm:^8.1.0" - checksum: a3fa02e1a63c7c824b5ebbf23f4a9a6b34dd80031114c5dd8adb7ef53493642e39d3d80dfef4025a452128400c35c2c138d20a0f6ae5d7d7ef70d9ba13083d34 + checksum: 10c0/a3fa02e1a63c7c824b5ebbf23f4a9a6b34dd80031114c5dd8adb7ef53493642e39d3d80dfef4025a452128400c35c2c138d20a0f6ae5d7d7ef70d9ba13083d34 languageName: node linkType: hard -"git-url-parse@npm:^13.1.1": - version: 13.1.1 - resolution: "git-url-parse@npm:13.1.1" +"git-url-parse@npm:^15.0.0": + version: 15.0.0 + resolution: "git-url-parse@npm:15.0.0" dependencies: git-up: "npm:^7.0.0" - checksum: 9304e6fbc1a6acf5e351e84ad87574fa6b840ccbe531afbbce9ba38e01fcacf6adf386ef7593daa037da59d9fd43b5d7c5232d5648638f8301cc2f18d00ad386 - languageName: node - linkType: hard - -"gitconfiglocal@npm:^1.0.0": - version: 1.0.0 - resolution: "gitconfiglocal@npm:1.0.0" - dependencies: - ini: "npm:^1.3.2" - checksum: cfcb16344834113199f209f2758ced778dc30e075ddb49b5dde659b4dd2deadee824db0a1b77e1303cb594d9e8b2240da18c67705f657aa76affb444aa349005 + checksum: 10c0/1813a3ac8e97d348e46471db4710d776cc7b24a56a432339ab0c0f4f2323525a8627a1891aa80a53fd9be973191fe2902c0af8e17fb9b04f29445a83fbef3a4e languageName: node linkType: hard -"glob-parent@npm:^5.1.2, glob-parent@npm:~5.1.2": +"glob-parent@npm:^5.1.2": version: 5.1.2 resolution: "glob-parent@npm:5.1.2" dependencies: is-glob: "npm:^4.0.1" - checksum: cab87638e2112bee3f839ef5f6e0765057163d39c66be8ec1602f3823da4692297ad4e972de876ea17c44d652978638d2fd583c6713d0eb6591706825020c9ee + checksum: 10c0/cab87638e2112bee3f839ef5f6e0765057163d39c66be8ec1602f3823da4692297ad4e972de876ea17c44d652978638d2fd583c6713d0eb6591706825020c9ee languageName: node linkType: hard @@ -3681,7 +4834,7 @@ __metadata: resolution: "glob-parent@npm:6.0.2" dependencies: is-glob: "npm:^4.0.3" - checksum: 317034d88654730230b3f43bb7ad4f7c90257a426e872ea0bf157473ac61c99bf5d205fad8f0185f989be8d2fa6d3c7dce1645d99d545b6ea9089c39f838e7f8 + checksum: 10c0/317034d88654730230b3f43bb7ad4f7c90257a426e872ea0bf157473ac61c99bf5d205fad8f0185f989be8d2fa6d3c7dce1645d99d545b6ea9089c39f838e7f8 languageName: node linkType: hard @@ -3696,11 +4849,11 @@ __metadata: path-scurry: "npm:^1.10.1" bin: glob: dist/esm/bin.mjs - checksum: 13d8a1feb7eac7945f8c8480e11cd4a44b24d26503d99a8d8ac8d5aefbf3e9802a2b6087318a829fad04cb4e829f25c5f4f1110c68966c498720dd261c7e344d + checksum: 10c0/13d8a1feb7eac7945f8c8480e11cd4a44b24d26503d99a8d8ac8d5aefbf3e9802a2b6087318a829fad04cb4e829f25c5f4f1110c68966c498720dd261c7e344d languageName: node linkType: hard -"glob@npm:^7.1.3": +"glob@npm:^7.1.3, glob@npm:^7.1.4": version: 7.2.3 resolution: "glob@npm:7.2.3" dependencies: @@ -3710,7 +4863,14 @@ __metadata: minimatch: "npm:^3.1.1" once: "npm:^1.3.0" path-is-absolute: "npm:^1.0.0" - checksum: 65676153e2b0c9095100fe7f25a778bf45608eeb32c6048cf307f579649bcc30353277b3b898a3792602c65764e5baa4f643714dfbdfd64ea271d210c7a425fe + checksum: 10c0/65676153e2b0c9095100fe7f25a778bf45608eeb32c6048cf307f579649bcc30353277b3b898a3792602c65764e5baa4f643714dfbdfd64ea271d210c7a425fe + languageName: node + linkType: hard + +"globals@npm:^11.1.0": + version: 11.12.0 + resolution: "globals@npm:11.12.0" + checksum: 10c0/758f9f258e7b19226bd8d4af5d3b0dcf7038780fb23d82e6f98932c44e239f884847f1766e8fa9cc5635ccb3204f7fa7314d4408dd4002a5e8ea827b4018f0a1 languageName: node linkType: hard @@ -3719,7 +4879,7 @@ __metadata: resolution: "globals@npm:13.23.0" dependencies: type-fest: "npm:^0.20.2" - checksum: fc05e184b3be59bffa2580f28551a12a758c3a18df4be91444202982c76f13f52821ad54ffaf7d3f2a4d2498fdf54aeaca8d4540fd9e860a9edb09d34ef4c507 + checksum: 10c0/fc05e184b3be59bffa2580f28551a12a758c3a18df4be91444202982c76f13f52821ad54ffaf7d3f2a4d2498fdf54aeaca8d4540fd9e860a9edb09d34ef4c507 languageName: node linkType: hard @@ -3728,7 +4888,7 @@ __metadata: resolution: "globalthis@npm:1.0.3" dependencies: define-properties: "npm:^1.1.3" - checksum: 0db6e9af102a5254630351557ac15e6909bc7459d3e3f6b001e59fe784c96d31108818f032d9095739355a88467459e6488ff16584ee6250cd8c27dec05af4b0 + checksum: 10c0/0db6e9af102a5254630351557ac15e6909bc7459d3e3f6b001e59fe784c96d31108818f032d9095739355a88467459e6488ff16584ee6250cd8c27dec05af4b0 languageName: node linkType: hard @@ -3742,21 +4902,7 @@ __metadata: ignore: "npm:^5.2.0" merge2: "npm:^1.4.1" slash: "npm:^3.0.0" - checksum: b39511b4afe4bd8a7aead3a27c4ade2b9968649abab0a6c28b1a90141b96ca68ca5db1302f7c7bd29eab66bf51e13916b8e0a3d0ac08f75e1e84a39b35691189 - languageName: node - linkType: hard - -"globby@npm:^14.0.0": - version: 14.0.0 - resolution: "globby@npm:14.0.0" - dependencies: - "@sindresorhus/merge-streams": "npm:^1.0.0" - fast-glob: "npm:^3.3.2" - ignore: "npm:^5.2.4" - path-type: "npm:^5.0.0" - slash: "npm:^5.1.0" - unicorn-magic: "npm:^0.1.0" - checksum: 6d98738a419f948ef23da019275b15ca5c65bb7e354ecea52a3015f4dae6b28a713fcf73bf3aab1c04039f4f62da71cff191a7ececc37c0e4c9b4320a047505f + checksum: 10c0/b39511b4afe4bd8a7aead3a27c4ade2b9968649abab0a6c28b1a90141b96ca68ca5db1302f7c7bd29eab66bf51e13916b8e0a3d0ac08f75e1e84a39b35691189 languageName: node linkType: hard @@ -3765,21 +4911,33 @@ __metadata: resolution: "gopd@npm:1.0.1" dependencies: get-intrinsic: "npm:^1.1.3" - checksum: 505c05487f7944c552cee72087bf1567debb470d4355b1335f2c262d218ebbff805cd3715448fe29b4b380bae6912561d0467233e4165830efd28da241418c63 + checksum: 10c0/505c05487f7944c552cee72087bf1567debb470d4355b1335f2c262d218ebbff805cd3715448fe29b4b380bae6912561d0467233e4165830efd28da241418c63 languageName: node linkType: hard -"graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.11, graceful-fs@npm:^4.2.4, graceful-fs@npm:^4.2.6": +"graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.11, graceful-fs@npm:^4.2.4, graceful-fs@npm:^4.2.6, graceful-fs@npm:^4.2.9": version: 4.2.11 resolution: "graceful-fs@npm:4.2.11" - checksum: 386d011a553e02bc594ac2ca0bd6d9e4c22d7fa8cfbfc448a6d148c59ea881b092db9dbe3547ae4b88e55f1b01f7c4a2ecc53b310c042793e63aa44cf6c257f2 + checksum: 10c0/386d011a553e02bc594ac2ca0bd6d9e4c22d7fa8cfbfc448a6d148c59ea881b092db9dbe3547ae4b88e55f1b01f7c4a2ecc53b310c042793e63aa44cf6c257f2 + languageName: node + linkType: hard + +"grammy@npm:^1.30.0": + version: 1.30.0 + resolution: "grammy@npm:1.30.0" + dependencies: + "@grammyjs/types": "npm:3.14.0" + abort-controller: "npm:^3.0.0" + debug: "npm:^4.3.4" + node-fetch: "npm:^2.7.0" + checksum: 10c0/b0bb4f45fc67e4e38d3c8a628a1254863a7d2463aa11cd5ddc5a43e98344bfd6c2b2bea809e8eed31d5b9f40b81cf6ed64466e63cb23f962233445c62ba14a23 languageName: node linkType: hard "graphemer@npm:^1.4.0": version: 1.4.0 resolution: "graphemer@npm:1.4.0" - checksum: e951259d8cd2e0d196c72ec711add7115d42eb9a8146c8eeda5b8d3ac91e5dd816b9cd68920726d9fd4490368e7ed86e9c423f40db87e2d8dfafa00fa17c3a31 + checksum: 10c0/e951259d8cd2e0d196c72ec711add7115d42eb9a8146c8eeda5b8d3ac91e5dd816b9cd68920726d9fd4490368e7ed86e9c423f40db87e2d8dfafa00fa17c3a31 languageName: node linkType: hard @@ -3797,35 +4955,28 @@ __metadata: optional: true bin: handlebars: bin/handlebars - checksum: 7aff423ea38a14bb379316f3857fe0df3c5d66119270944247f155ba1f08e07a92b340c58edaa00cfe985c21508870ee5183e0634dcb53dd405f35c93ef7f10d - languageName: node - linkType: hard - -"hard-rejection@npm:^2.1.0": - version: 2.1.0 - resolution: "hard-rejection@npm:2.1.0" - checksum: febc3343a1ad575aedcc112580835b44a89a89e01f400b4eda6e8110869edfdab0b00cd1bd4c3bfec9475a57e79e0b355aecd5be46454b6a62b9a359af60e564 + checksum: 10c0/7aff423ea38a14bb379316f3857fe0df3c5d66119270944247f155ba1f08e07a92b340c58edaa00cfe985c21508870ee5183e0634dcb53dd405f35c93ef7f10d languageName: node linkType: hard "has-bigints@npm:^1.0.1, has-bigints@npm:^1.0.2": version: 1.0.2 resolution: "has-bigints@npm:1.0.2" - checksum: 724eb1485bfa3cdff6f18d95130aa190561f00b3fcf9f19dc640baf8176b5917c143b81ec2123f8cddb6c05164a198c94b13e1377c497705ccc8e1a80306e83b + checksum: 10c0/724eb1485bfa3cdff6f18d95130aa190561f00b3fcf9f19dc640baf8176b5917c143b81ec2123f8cddb6c05164a198c94b13e1377c497705ccc8e1a80306e83b languageName: node linkType: hard "has-flag@npm:^3.0.0": version: 3.0.0 resolution: "has-flag@npm:3.0.0" - checksum: 1c6c83b14b8b1b3c25b0727b8ba3e3b647f99e9e6e13eb7322107261de07a4c1be56fc0d45678fc376e09772a3a1642ccdaf8fc69bdf123b6c086598397ce473 + checksum: 10c0/1c6c83b14b8b1b3c25b0727b8ba3e3b647f99e9e6e13eb7322107261de07a4c1be56fc0d45678fc376e09772a3a1642ccdaf8fc69bdf123b6c086598397ce473 languageName: node linkType: hard "has-flag@npm:^4.0.0": version: 4.0.0 resolution: "has-flag@npm:4.0.0" - checksum: 2e789c61b7888d66993e14e8331449e525ef42aac53c627cc53d1c3334e768bcb6abdc4f5f0de1478a25beec6f0bd62c7549058b7ac53e924040d4f301f02fd1 + checksum: 10c0/2e789c61b7888d66993e14e8331449e525ef42aac53c627cc53d1c3334e768bcb6abdc4f5f0de1478a25beec6f0bd62c7549058b7ac53e924040d4f301f02fd1 languageName: node linkType: hard @@ -3834,21 +4985,37 @@ __metadata: resolution: "has-property-descriptors@npm:1.0.1" dependencies: get-intrinsic: "npm:^1.2.2" - checksum: d62ba94b40150b00d621bc64a6aedb5bf0ee495308b4b7ed6bac856043db3cdfb1db553ae81cec91c9d2bd82057ff0e94145e7fa25d5aa5985ed32e0921927f6 + checksum: 10c0/d62ba94b40150b00d621bc64a6aedb5bf0ee495308b4b7ed6bac856043db3cdfb1db553ae81cec91c9d2bd82057ff0e94145e7fa25d5aa5985ed32e0921927f6 + languageName: node + linkType: hard + +"has-property-descriptors@npm:^1.0.2": + version: 1.0.2 + resolution: "has-property-descriptors@npm:1.0.2" + dependencies: + es-define-property: "npm:^1.0.0" + checksum: 10c0/253c1f59e80bb476cf0dde8ff5284505d90c3bdb762983c3514d36414290475fe3fd6f574929d84de2a8eec00d35cf07cb6776205ff32efd7c50719125f00236 languageName: node linkType: hard "has-proto@npm:^1.0.1": version: 1.0.1 resolution: "has-proto@npm:1.0.1" - checksum: c8a8fe411f810b23a564bd5546a8f3f0fff6f1b692740eb7a2fdc9df716ef870040806891e2f23ff4653f1083e3895bf12088703dd1a0eac3d9202d3a4768cd0 + checksum: 10c0/c8a8fe411f810b23a564bd5546a8f3f0fff6f1b692740eb7a2fdc9df716ef870040806891e2f23ff4653f1083e3895bf12088703dd1a0eac3d9202d3a4768cd0 + languageName: node + linkType: hard + +"has-proto@npm:^1.0.3": + version: 1.0.3 + resolution: "has-proto@npm:1.0.3" + checksum: 10c0/35a6989f81e9f8022c2f4027f8b48a552de714938765d019dbea6bb547bd49ce5010a3c7c32ec6ddac6e48fc546166a3583b128f5a7add8b058a6d8b4afec205 languageName: node linkType: hard "has-symbols@npm:^1.0.2, has-symbols@npm:^1.0.3": version: 1.0.3 resolution: "has-symbols@npm:1.0.3" - checksum: e6922b4345a3f37069cdfe8600febbca791c94988c01af3394d86ca3360b4b93928bbf395859158f88099cb10b19d98e3bbab7c9ff2c1bd09cf665ee90afa2c3 + checksum: 10c0/e6922b4345a3f37069cdfe8600febbca791c94988c01af3394d86ca3360b4b93928bbf395859158f88099cb10b19d98e3bbab7c9ff2c1bd09cf665ee90afa2c3 languageName: node linkType: hard @@ -3857,14 +5024,23 @@ __metadata: resolution: "has-tostringtag@npm:1.0.0" dependencies: has-symbols: "npm:^1.0.2" - checksum: 1cdba76b7d13f65198a92b8ca1560ba40edfa09e85d182bf436d928f3588a9ebd260451d569f0ed1b849c4bf54f49c862aa0d0a77f9552b1855bb6deb526c011 + checksum: 10c0/1cdba76b7d13f65198a92b8ca1560ba40edfa09e85d182bf436d928f3588a9ebd260451d569f0ed1b849c4bf54f49c862aa0d0a77f9552b1855bb6deb526c011 + languageName: node + linkType: hard + +"has-tostringtag@npm:^1.0.2": + version: 1.0.2 + resolution: "has-tostringtag@npm:1.0.2" + dependencies: + has-symbols: "npm:^1.0.3" + checksum: 10c0/a8b166462192bafe3d9b6e420a1d581d93dd867adb61be223a17a8d6dad147aa77a8be32c961bb2f27b3ef893cae8d36f564ab651f5e9b7938ae86f74027c48c languageName: node linkType: hard "has-unicode@npm:^2.0.1": version: 2.0.1 resolution: "has-unicode@npm:2.0.1" - checksum: ebdb2f4895c26bb08a8a100b62d362e49b2190bcfd84b76bc4be1a3bd4d254ec52d0dd9f2fbcc093fc5eb878b20c52146f9dfd33e2686ed28982187be593b47c + checksum: 10c0/ebdb2f4895c26bb08a8a100b62d362e49b2190bcfd84b76bc4be1a3bd4d254ec52d0dd9f2fbcc093fc5eb878b20c52146f9dfd33e2686ed28982187be593b47c languageName: node linkType: hard @@ -3873,74 +5049,48 @@ __metadata: resolution: "hasown@npm:2.0.0" dependencies: function-bind: "npm:^1.1.2" - checksum: 5d415b114f410661208c95e7ab4879f1cc2765b8daceff4dc8718317d1cb7b9ffa7c5d1eafd9a4389c9aab7445d6ea88e05f3096cb1e529618b55304956b87fc + checksum: 10c0/5d415b114f410661208c95e7ab4879f1cc2765b8daceff4dc8718317d1cb7b9ffa7c5d1eafd9a4389c9aab7445d6ea88e05f3096cb1e529618b55304956b87fc languageName: node linkType: hard -"hosted-git-info@npm:^2.1.4": - version: 2.8.9 - resolution: "hosted-git-info@npm:2.8.9" - checksum: 317cbc6b1bbbe23c2a40ae23f3dafe9fa349ce42a89a36f930e3f9c0530c179a3882d2ef1e4141a4c3674d6faaea862138ec55b43ad6f75e387fda2483a13c70 - languageName: node - linkType: hard - -"hosted-git-info@npm:^4.0.0, hosted-git-info@npm:^4.0.1": - version: 4.1.0 - resolution: "hosted-git-info@npm:4.1.0" +"hasown@npm:^2.0.1, hasown@npm:^2.0.2": + version: 2.0.2 + resolution: "hasown@npm:2.0.2" dependencies: - lru-cache: "npm:^6.0.0" - checksum: 150fbcb001600336d17fdbae803264abed013548eea7946c2264c49ebe2ebd8c4441ba71dd23dd8e18c65de79d637f98b22d4760ba5fb2e0b15d62543d0fff07 + function-bind: "npm:^1.1.2" + checksum: 10c0/3769d434703b8ac66b209a4cca0737519925bbdb61dd887f93a16372b14694c63ff4e797686d87c90f08168e81082248b9b028bad60d4da9e0d1148766f56eb9 languageName: node linkType: hard -"hosted-git-info@npm:^7.0.0, hosted-git-info@npm:^7.0.1": +"hosted-git-info@npm:^7.0.0": version: 7.0.1 resolution: "hosted-git-info@npm:7.0.1" dependencies: lru-cache: "npm:^10.0.1" - checksum: 361c4254f717f06d581a5a90aa0156a945e662e05ebbb533c1fa9935f10886d8247db48cbbcf9667f02e519e6479bf16dcdcf3124c3030e76c4c3ca2c88ee9d3 + checksum: 10c0/361c4254f717f06d581a5a90aa0156a945e662e05ebbb533c1fa9935f10886d8247db48cbbcf9667f02e519e6479bf16dcdcf3124c3030e76c4c3ca2c88ee9d3 languageName: node linkType: hard -"http-assert@npm:^1.3.0": - version: 1.5.0 - resolution: "http-assert@npm:1.5.0" +"hosted-git-info@npm:^7.0.2": + version: 7.0.2 + resolution: "hosted-git-info@npm:7.0.2" dependencies: - deep-equal: "npm:~1.0.1" - http-errors: "npm:~1.8.0" - checksum: 7b4e631114a1a77654f9ba3feb96da305ddbdeb42112fe384b7b3249c7141e460d7177970155bea6e54e655a04850415b744b452c1fe5052eba6f4186d16b095 - languageName: node - linkType: hard - -"http-cache-semantics@npm:^4.1.1": - version: 4.1.1 - resolution: "http-cache-semantics@npm:4.1.1" - checksum: ce1319b8a382eb3cbb4a37c19f6bfe14e5bb5be3d09079e885e8c513ab2d3cd9214902f8a31c9dc4e37022633ceabfc2d697405deeaf1b8f3552bb4ed996fdfc + lru-cache: "npm:^10.0.1" + checksum: 10c0/b19dbd92d3c0b4b0f1513cf79b0fc189f54d6af2129eeb201de2e9baaa711f1936929c848b866d9c8667a0f956f34bf4f07418c12be1ee9ca74fd9246335ca1f languageName: node linkType: hard -"http-errors@npm:^1.6.3, http-errors@npm:^1.7.3, http-errors@npm:~1.8.0": - version: 1.8.1 - resolution: "http-errors@npm:1.8.1" - dependencies: - depd: "npm:~1.1.2" - inherits: "npm:2.0.4" - setprototypeof: "npm:1.2.0" - statuses: "npm:>= 1.5.0 < 2" - toidentifier: "npm:1.0.1" - checksum: f01aeecd76260a6fe7f08e192fcbe9b2f39ed20fc717b852669a69930167053b01790998275c6297d44f435cf0e30edd50c05223d1bec9bc484e6cf35b2d6f43 +"html-escaper@npm:^2.0.0": + version: 2.0.2 + resolution: "html-escaper@npm:2.0.2" + checksum: 10c0/208e8a12de1a6569edbb14544f4567e6ce8ecc30b9394fcaa4e7bb1e60c12a7c9a1ed27e31290817157e8626f3a4f29e76c8747030822eb84a6abb15c255f0a0 languageName: node linkType: hard -"http-errors@npm:~1.6.2": - version: 1.6.3 - resolution: "http-errors@npm:1.6.3" - dependencies: - depd: "npm:~1.1.2" - inherits: "npm:2.0.3" - setprototypeof: "npm:1.1.0" - statuses: "npm:>= 1.4.0 < 2" - checksum: 17ec4046ee974477778bfdd525936c254b872054703ec2caa4d6f099566b8adade636ae6aeeacb39302c5cd6e28fb407ebd937f500f5010d0b6850750414ff78 +"http-cache-semantics@npm:^4.1.1": + version: 4.1.1 + resolution: "http-cache-semantics@npm:4.1.1" + checksum: 10c0/ce1319b8a382eb3cbb4a37c19f6bfe14e5bb5be3d09079e885e8c513ab2d3cd9214902f8a31c9dc4e37022633ceabfc2d697405deeaf1b8f3552bb4ed996fdfc languageName: node linkType: hard @@ -3950,7 +5100,7 @@ __metadata: dependencies: agent-base: "npm:^7.1.0" debug: "npm:^4.3.4" - checksum: a11574ff39436cee3c7bc67f259444097b09474605846ddd8edf0bf4ad8644be8533db1aa463426e376865047d05dc22755e638632819317c0c2f1b2196657c8 + checksum: 10c0/a11574ff39436cee3c7bc67f259444097b09474605846ddd8edf0bf4ad8644be8533db1aa463426e376865047d05dc22755e638632819317c0c2f1b2196657c8 languageName: node linkType: hard @@ -3960,23 +5110,21 @@ __metadata: dependencies: agent-base: "npm:^7.0.2" debug: "npm:4" - checksum: 7735eb90073db087e7e79312e3d97c8c04baf7ea7ca7b013382b6a45abbaa61b281041a98f4e13c8c80d88f843785bcc84ba189165b4b4087b1e3496ba656d77 + checksum: 10c0/7735eb90073db087e7e79312e3d97c8c04baf7ea7ca7b013382b6a45abbaa61b281041a98f4e13c8c80d88f843785bcc84ba189165b4b4087b1e3496ba656d77 languageName: node linkType: hard -"human-signals@npm:^5.0.0": - version: 5.0.0 - resolution: "human-signals@npm:5.0.0" - checksum: 5a9359073fe17a8b58e5a085e9a39a950366d9f00217c4ff5878bd312e09d80f460536ea6a3f260b5943a01fe55c158d1cea3fc7bee3d0520aeef04f6d915c82 +"human-signals@npm:^2.1.0": + version: 2.1.0 + resolution: "human-signals@npm:2.1.0" + checksum: 10c0/695edb3edfcfe9c8b52a76926cd31b36978782062c0ed9b1192b36bebc75c4c87c82e178dfcb0ed0fc27ca59d434198aac0bd0be18f5781ded775604db22304a languageName: node linkType: hard -"iconv-lite@npm:^0.4.24": - version: 0.4.24 - resolution: "iconv-lite@npm:0.4.24" - dependencies: - safer-buffer: "npm:>= 2.1.2 < 3" - checksum: c6886a24cc00f2a059767440ec1bc00d334a89f250db8e0f7feb4961c8727118457e27c495ba94d082e51d3baca378726cd110aaf7ded8b9bbfd6a44760cf1d4 +"human-signals@npm:^5.0.0": + version: 5.0.0 + resolution: "human-signals@npm:5.0.0" + checksum: 10c0/5a9359073fe17a8b58e5a085e9a39a950366d9f00217c4ff5878bd312e09d80f460536ea6a3f260b5943a01fe55c158d1cea3fc7bee3d0520aeef04f6d915c82 languageName: node linkType: hard @@ -3985,14 +5133,7 @@ __metadata: resolution: "iconv-lite@npm:0.6.3" dependencies: safer-buffer: "npm:>= 2.1.2 < 3.0.0" - checksum: 98102bc66b33fcf5ac044099d1257ba0b7ad5e3ccd3221f34dd508ab4070edff183276221684e1e0555b145fce0850c9f7d2b60a9fcac50fbb4ea0d6e845a3b1 - languageName: node - linkType: hard - -"ieee754@npm:^1.1.13, ieee754@npm:^1.2.1": - version: 1.2.1 - resolution: "ieee754@npm:1.2.1" - checksum: b0782ef5e0935b9f12883a2e2aa37baa75da6e66ce6515c168697b42160807d9330de9a32ec1ed73149aea02e0d822e572bca6f1e22bdcbd2149e13b050b17bb + checksum: 10c0/98102bc66b33fcf5ac044099d1257ba0b7ad5e3ccd3221f34dd508ab4070edff183276221684e1e0555b145fce0850c9f7d2b60a9fcac50fbb4ea0d6e845a3b1 languageName: node linkType: hard @@ -4001,14 +5142,30 @@ __metadata: resolution: "ignore-walk@npm:6.0.3" dependencies: minimatch: "npm:^9.0.0" - checksum: 327759df98c7b4d4039e4c4913507ca372b2a38bb44a1c2bd7ff2ffc7eee7a379025301e478d7640672f0007807c5ec5cc2e41c5226b9058aa58f00b600d3731 + checksum: 10c0/327759df98c7b4d4039e4c4913507ca372b2a38bb44a1c2bd7ff2ffc7eee7a379025301e478d7640672f0007807c5ec5cc2e41c5226b9058aa58f00b600d3731 + languageName: node + linkType: hard + +"ignore-walk@npm:^6.0.4": + version: 6.0.5 + resolution: "ignore-walk@npm:6.0.5" + dependencies: + minimatch: "npm:^9.0.0" + checksum: 10c0/8bd6d37c82400016c7b6538b03422dde8c9d7d3e99051c8357dd205d499d42828522fb4fbce219c9c21b4b069079445bacdc42bbd3e2e073b52856c2646d8a39 languageName: node linkType: hard -"ignore@npm:^5.2.0, ignore@npm:^5.2.4": +"ignore@npm:^5.2.0": version: 5.3.0 resolution: "ignore@npm:5.3.0" - checksum: dc06bea5c23aae65d0725a957a0638b57e235ae4568dda51ca142053ed2c352de7e3bc93a69b2b32ac31966a1952e9a93c5ef2e2ab7c6b06aef9808f6b55b571 + checksum: 10c0/dc06bea5c23aae65d0725a957a0638b57e235ae4568dda51ca142053ed2c352de7e3bc93a69b2b32ac31966a1952e9a93c5ef2e2ab7c6b06aef9808f6b55b571 + languageName: node + linkType: hard + +"ignore@npm:^5.3.1": + version: 5.3.2 + resolution: "ignore@npm:5.3.2" + checksum: 10c0/f9f652c957983634ded1e7f02da3b559a0d4cc210fca3792cb67f1b153623c9c42efdc1c4121af171e295444459fc4a9201101fb041b1104a3c000bccb188337 languageName: node linkType: hard @@ -4018,33 +5175,40 @@ __metadata: dependencies: parent-module: "npm:^1.0.0" resolve-from: "npm:^4.0.0" - checksum: 7f882953aa6b740d1f0e384d0547158bc86efbf2eea0f1483b8900a6f65c5a5123c2cf09b0d542cc419d0b98a759ecaeb394237e97ea427f2da221dc3cd80cc3 + checksum: 10c0/7f882953aa6b740d1f0e384d0547158bc86efbf2eea0f1483b8900a6f65c5a5123c2cf09b0d542cc419d0b98a759ecaeb394237e97ea427f2da221dc3cd80cc3 languageName: node linkType: hard -"import-local@npm:^3.1.0": - version: 3.1.0 - resolution: "import-local@npm:3.1.0" +"import-local@npm:^3.0.2, import-local@npm:^3.2.0": + version: 3.2.0 + resolution: "import-local@npm:3.2.0" dependencies: pkg-dir: "npm:^4.2.0" resolve-cwd: "npm:^3.0.0" bin: import-local-fixture: fixtures/cli.js - checksum: c67ecea72f775fe8684ca3d057e54bdb2ae28c14bf261d2607c269c18ea0da7b730924c06262eca9aed4b8ab31e31d65bc60b50e7296c85908a56e2f7d41ecd2 + checksum: 10c0/94cd6367a672b7e0cb026970c85b76902d2710a64896fa6de93bd5c571dd03b228c5759308959de205083e3b1c61e799f019c9e36ee8e9c523b993e1057f0433 languageName: node linkType: hard "imurmurhash@npm:^0.1.4": version: 0.1.4 resolution: "imurmurhash@npm:0.1.4" - checksum: 8b51313850dd33605c6c9d3fd9638b714f4c4c40250cff658209f30d40da60f78992fb2df5dabee4acf589a6a82bbc79ad5486550754bd9ec4e3fc0d4a57d6a6 + checksum: 10c0/8b51313850dd33605c6c9d3fd9638b714f4c4c40250cff658209f30d40da60f78992fb2df5dabee4acf589a6a82bbc79ad5486550754bd9ec4e3fc0d4a57d6a6 languageName: node linkType: hard "indent-string@npm:^4.0.0": version: 4.0.0 resolution: "indent-string@npm:4.0.0" - checksum: 1e1904ddb0cb3d6cce7cd09e27a90184908b7a5d5c21b92e232c93579d314f0b83c246ffb035493d0504b1e9147ba2c9b21df0030f48673fba0496ecd698161f + checksum: 10c0/1e1904ddb0cb3d6cce7cd09e27a90184908b7a5d5c21b92e232c93579d314f0b83c246ffb035493d0504b1e9147ba2c9b21df0030f48673fba0496ecd698161f + languageName: node + linkType: hard + +"index-to-position@npm:^0.1.2": + version: 0.1.2 + resolution: "index-to-position@npm:0.1.2" + checksum: 10c0/7c91bde8bafc22684b74a7a24915bee4691cba48352ddb4ebe3b20a3a87bc0fa7a05f586137245ca8f92222a11f341f7631ff7f38cd78a523505d2d02dbfa257 languageName: node linkType: hard @@ -4054,51 +5218,21 @@ __metadata: dependencies: once: "npm:^1.3.0" wrappy: "npm:1" - checksum: 7faca22584600a9dc5b9fca2cd5feb7135ac8c935449837b315676b4c90aa4f391ec4f42240178244b5a34e8bede1948627fda392ca3191522fc46b34e985ab2 + checksum: 10c0/7faca22584600a9dc5b9fca2cd5feb7135ac8c935449837b315676b4c90aa4f391ec4f42240178244b5a34e8bede1948627fda392ca3191522fc46b34e985ab2 languageName: node linkType: hard -"inherits@npm:2, inherits@npm:2.0.4, inherits@npm:^2.0.3, inherits@npm:^2.0.4, inherits@npm:~2.0.3": +"inherits@npm:2": version: 2.0.4 resolution: "inherits@npm:2.0.4" - checksum: 4e531f648b29039fb7426fb94075e6545faa1eb9fe83c29f0b6d9e7263aceb4289d2d4557db0d428188eeb449cc7c5e77b0a0b2c4e248ff2a65933a0dee49ef2 - languageName: node - linkType: hard - -"inherits@npm:2.0.3": - version: 2.0.3 - resolution: "inherits@npm:2.0.3" - checksum: 6e56402373149ea076a434072671f9982f5fad030c7662be0332122fe6c0fa490acb3cc1010d90b6eff8d640b1167d77674add52dfd1bb85d545cf29e80e73e7 + checksum: 10c0/4e531f648b29039fb7426fb94075e6545faa1eb9fe83c29f0b6d9e7263aceb4289d2d4557db0d428188eeb449cc7c5e77b0a0b2c4e248ff2a65933a0dee49ef2 languageName: node linkType: hard -"ini@npm:^1.3.2, ini@npm:^1.3.4": +"ini@npm:^1.3.4": version: 1.3.8 resolution: "ini@npm:1.3.8" - checksum: ec93838d2328b619532e4f1ff05df7909760b6f66d9c9e2ded11e5c1897d6f2f9980c54dd638f88654b00919ce31e827040631eab0a3969e4d1abefa0719516a - languageName: node - linkType: hard - -"inquirer@npm:^9.2.12": - version: 9.2.12 - resolution: "inquirer@npm:9.2.12" - dependencies: - "@ljharb/through": "npm:^2.3.11" - ansi-escapes: "npm:^4.3.2" - chalk: "npm:^5.3.0" - cli-cursor: "npm:^3.1.0" - cli-width: "npm:^4.1.0" - external-editor: "npm:^3.1.0" - figures: "npm:^5.0.0" - lodash: "npm:^4.17.21" - mute-stream: "npm:1.0.0" - ora: "npm:^5.4.1" - run-async: "npm:^3.0.0" - rxjs: "npm:^7.8.1" - string-width: "npm:^4.2.3" - strip-ansi: "npm:^6.0.1" - wrap-ansi: "npm:^6.2.0" - checksum: efc19864bea5f4b22a47e686aa88684ee42352db4e96dd6307da7140496c16e5ef0e74be664fba490b068714dc24d72f66dc1907a1ccbaf9d58d6156cbdc5908 + checksum: 10c0/ec93838d2328b619532e4f1ff05df7909760b6f66d9c9e2ded11e5c1897d6f2f9980c54dd638f88654b00919ce31e827040631eab0a3969e4d1abefa0719516a languageName: node linkType: hard @@ -4109,21 +5243,25 @@ __metadata: get-intrinsic: "npm:^1.2.2" hasown: "npm:^2.0.0" side-channel: "npm:^1.0.4" - checksum: aa37cafc8ffbf513a340de58f40d5017b4949d99722d7e4f0e24b182455bdd258000d4bb1d7b4adcf9f8979b97049b99fe9defa9db8e18a78071d2637ac143fb + checksum: 10c0/aa37cafc8ffbf513a340de58f40d5017b4949d99722d7e4f0e24b182455bdd258000d4bb1d7b4adcf9f8979b97049b99fe9defa9db8e18a78071d2637ac143fb languageName: node linkType: hard -"ip@npm:^1.1.5": - version: 1.1.8 - resolution: "ip@npm:1.1.8" - checksum: ab32a5ecfa678d4c158c1381c4c6744fce89a1d793e1b6635ba79d0753c069030b672d765887b6fff55670c711dfa47475895e5d6013efbbcf04687c51cb8db9 +"internal-slot@npm:^1.0.7": + version: 1.0.7 + resolution: "internal-slot@npm:1.0.7" + dependencies: + es-errors: "npm:^1.3.0" + hasown: "npm:^2.0.0" + side-channel: "npm:^1.0.4" + checksum: 10c0/f8b294a4e6ea3855fc59551bbf35f2b832cf01fd5e6e2a97f5c201a071cc09b49048f856e484b67a6c721da5e55736c5b6ddafaf19e2dbeb4a3ff1821680de6c languageName: node linkType: hard "ip@npm:^2.0.0": version: 2.0.0 resolution: "ip@npm:2.0.0" - checksum: 8d186cc5585f57372847ae29b6eba258c68862055e18a75cc4933327232cb5c107f89800ce29715d542eef2c254fbb68b382e780a7414f9ee7caf60b7a473958 + checksum: 10c0/8d186cc5585f57372847ae29b6eba258c68862055e18a75cc4933327232cb5c107f89800ce29715d542eef2c254fbb68b382e780a7414f9ee7caf60b7a473958 languageName: node linkType: hard @@ -4134,14 +5272,24 @@ __metadata: call-bind: "npm:^1.0.2" get-intrinsic: "npm:^1.2.0" is-typed-array: "npm:^1.1.10" - checksum: 40ed13a5f5746ac3ae2f2e463687d9b5a3f5fd0086f970fb4898f0253c2a5ec2e3caea2d664dd8f54761b1c1948609702416921a22faebe160c7640a9217c80e + checksum: 10c0/40ed13a5f5746ac3ae2f2e463687d9b5a3f5fd0086f970fb4898f0253c2a5ec2e3caea2d664dd8f54761b1c1948609702416921a22faebe160c7640a9217c80e + languageName: node + linkType: hard + +"is-array-buffer@npm:^3.0.4": + version: 3.0.4 + resolution: "is-array-buffer@npm:3.0.4" + dependencies: + call-bind: "npm:^1.0.2" + get-intrinsic: "npm:^1.2.1" + checksum: 10c0/42a49d006cc6130bc5424eae113e948c146f31f9d24460fc0958f855d9d810e6fd2e4519bf19aab75179af9c298ea6092459d8cafdec523cd19e529b26eab860 languageName: node linkType: hard "is-arrayish@npm:^0.2.1": version: 0.2.1 resolution: "is-arrayish@npm:0.2.1" - checksum: e7fb686a739068bb70f860b39b67afc62acc62e36bb61c5f965768abce1873b379c563e61dd2adad96ebb7edf6651111b385e490cf508378959b0ed4cac4e729 + checksum: 10c0/e7fb686a739068bb70f860b39b67afc62acc62e36bb61c5f965768abce1873b379c563e61dd2adad96ebb7edf6651111b385e490cf508378959b0ed4cac4e729 languageName: node linkType: hard @@ -4150,16 +5298,7 @@ __metadata: resolution: "is-bigint@npm:1.0.4" dependencies: has-bigints: "npm:^1.0.1" - checksum: eb9c88e418a0d195ca545aff2b715c9903d9b0a5033bc5922fec600eb0c3d7b1ee7f882dbf2e0d5a6e694e42391be3683e4368737bd3c4a77f8ac293e7773696 - languageName: node - linkType: hard - -"is-binary-path@npm:~2.1.0": - version: 2.1.0 - resolution: "is-binary-path@npm:2.1.0" - dependencies: - binary-extensions: "npm:^2.0.0" - checksum: a16eaee59ae2b315ba36fad5c5dcaf8e49c3e27318f8ab8fa3cdb8772bf559c8d1ba750a589c2ccb096113bb64497084361a25960899cb6172a6925ab6123d38 + checksum: 10c0/eb9c88e418a0d195ca545aff2b715c9903d9b0a5033bc5922fec600eb0c3d7b1ee7f882dbf2e0d5a6e694e42391be3683e4368737bd3c4a77f8ac293e7773696 languageName: node linkType: hard @@ -4169,23 +5308,23 @@ __metadata: dependencies: call-bind: "npm:^1.0.2" has-tostringtag: "npm:^1.0.0" - checksum: 6090587f8a8a8534c0f816da868bc94f32810f08807aa72fa7e79f7e11c466d281486ffe7a788178809c2aa71fe3e700b167fe80dd96dad68026bfff8ebf39f7 + checksum: 10c0/6090587f8a8a8534c0f816da868bc94f32810f08807aa72fa7e79f7e11c466d281486ffe7a788178809c2aa71fe3e700b167fe80dd96dad68026bfff8ebf39f7 languageName: node linkType: hard -"is-builtin-module@npm:^3.2.1": - version: 3.2.1 - resolution: "is-builtin-module@npm:3.2.1" +"is-bun-module@npm:^1.0.2": + version: 1.2.1 + resolution: "is-bun-module@npm:1.2.1" dependencies: - builtin-modules: "npm:^3.3.0" - checksum: 5a66937a03f3b18803381518f0ef679752ac18cdb7dd53b5e23ee8df8d440558737bd8dcc04d2aae555909d2ecb4a81b5c0d334d119402584b61e6a003e31af1 + semver: "npm:^7.6.3" + checksum: 10c0/819e63cd4468265a3e89cdc241554e37aeb85e40375a56dd559c022f4395491273267a0f843274fda6cad1eac3b0f8dc6d9e06cc349e33e2bf45098761184736 languageName: node linkType: hard "is-callable@npm:^1.1.3, is-callable@npm:^1.1.4, is-callable@npm:^1.2.7": version: 1.2.7 resolution: "is-callable@npm:1.2.7" - checksum: ceebaeb9d92e8adee604076971dd6000d38d6afc40bb843ea8e45c5579b57671c3f3b50d7f04869618242c6cee08d1b67806a8cb8edaaaf7c0748b3720d6066f + checksum: 10c0/ceebaeb9d92e8adee604076971dd6000d38d6afc40bb843ea8e45c5579b57671c3f3b50d7f04869618242c6cee08d1b67806a8cb8edaaaf7c0748b3720d6066f languageName: node linkType: hard @@ -4196,16 +5335,34 @@ __metadata: ci-info: "npm:^3.2.0" bin: is-ci: bin.js - checksum: 0e81caa62f4520d4088a5bef6d6337d773828a88610346c4b1119fb50c842587ed8bef1e5d9a656835a599e7209405b5761ddf2339668f2d0f4e889a92fe6051 + checksum: 10c0/0e81caa62f4520d4088a5bef6d6337d773828a88610346c4b1119fb50c842587ed8bef1e5d9a656835a599e7209405b5761ddf2339668f2d0f4e889a92fe6051 languageName: node linkType: hard -"is-core-module@npm:^2.11.0, is-core-module@npm:^2.13.0, is-core-module@npm:^2.13.1, is-core-module@npm:^2.5.0, is-core-module@npm:^2.8.1": +"is-core-module@npm:^2.13.0, is-core-module@npm:^2.8.1": version: 2.13.1 resolution: "is-core-module@npm:2.13.1" dependencies: hasown: "npm:^2.0.0" - checksum: 2cba9903aaa52718f11c4896dabc189bab980870aae86a62dc0d5cedb546896770ee946fb14c84b7adf0735f5eaea4277243f1b95f5cefa90054f92fbcac2518 + checksum: 10c0/2cba9903aaa52718f11c4896dabc189bab980870aae86a62dc0d5cedb546896770ee946fb14c84b7adf0735f5eaea4277243f1b95f5cefa90054f92fbcac2518 + languageName: node + linkType: hard + +"is-core-module@npm:^2.15.1": + version: 2.15.1 + resolution: "is-core-module@npm:2.15.1" + dependencies: + hasown: "npm:^2.0.2" + checksum: 10c0/53432f10c69c40bfd2fa8914133a68709ff9498c86c3bf5fca3cdf3145a56fd2168cbf4a43b29843a6202a120a5f9c5ffba0a4322e1e3441739bc0b641682612 + languageName: node + linkType: hard + +"is-data-view@npm:^1.0.1": + version: 1.0.1 + resolution: "is-data-view@npm:1.0.1" + dependencies: + is-typed-array: "npm:^1.1.13" + checksum: 10c0/a3e6ec84efe303da859107aed9b970e018e2bee7ffcb48e2f8096921a493608134240e672a2072577e5f23a729846241d9634806e8a0e51d9129c56d5f65442d languageName: node linkType: hard @@ -4214,76 +5371,58 @@ __metadata: resolution: "is-date-object@npm:1.0.5" dependencies: has-tostringtag: "npm:^1.0.0" - checksum: eed21e5dcc619c48ccef804dfc83a739dbb2abee6ca202838ee1bd5f760fe8d8a93444f0d49012ad19bb7c006186e2884a1b92f6e1c056da7fd23d0a9ad5992e - languageName: node - linkType: hard - -"is-docker@npm:^2.0.0, is-docker@npm:^2.1.1": - version: 2.2.1 - resolution: "is-docker@npm:2.2.1" - bin: - is-docker: cli.js - checksum: e828365958d155f90c409cdbe958f64051d99e8aedc2c8c4cd7c89dcf35329daed42f7b99346f7828df013e27deb8f721cf9408ba878c76eb9e8290235fbcdcc + checksum: 10c0/eed21e5dcc619c48ccef804dfc83a739dbb2abee6ca202838ee1bd5f760fe8d8a93444f0d49012ad19bb7c006186e2884a1b92f6e1c056da7fd23d0a9ad5992e languageName: node linkType: hard "is-extglob@npm:^2.1.1": version: 2.1.1 resolution: "is-extglob@npm:2.1.1" - checksum: 5487da35691fbc339700bbb2730430b07777a3c21b9ebaecb3072512dfd7b4ba78ac2381a87e8d78d20ea08affb3f1971b4af629173a6bf435ff8a4c47747912 + checksum: 10c0/5487da35691fbc339700bbb2730430b07777a3c21b9ebaecb3072512dfd7b4ba78ac2381a87e8d78d20ea08affb3f1971b4af629173a6bf435ff8a4c47747912 languageName: node linkType: hard "is-fullwidth-code-point@npm:^3.0.0": version: 3.0.0 resolution: "is-fullwidth-code-point@npm:3.0.0" - checksum: bb11d825e049f38e04c06373a8d72782eee0205bda9d908cc550ccb3c59b99d750ff9537982e01733c1c94a58e35400661f57042158ff5e8f3e90cf936daf0fc + checksum: 10c0/bb11d825e049f38e04c06373a8d72782eee0205bda9d908cc550ccb3c59b99d750ff9537982e01733c1c94a58e35400661f57042158ff5e8f3e90cf936daf0fc languageName: node linkType: hard -"is-generator-function@npm:^1.0.7": - version: 1.0.10 - resolution: "is-generator-function@npm:1.0.10" - dependencies: - has-tostringtag: "npm:^1.0.0" - checksum: df03514df01a6098945b5a0cfa1abff715807c8e72f57c49a0686ad54b3b74d394e2d8714e6f709a71eb00c9630d48e73ca1796c1ccc84ac95092c1fecc0d98b +"is-generator-fn@npm:^2.0.0": + version: 2.1.0 + resolution: "is-generator-fn@npm:2.1.0" + checksum: 10c0/2957cab387997a466cd0bf5c1b6047bd21ecb32bdcfd8996b15747aa01002c1c88731802f1b3d34ac99f4f6874b626418bd118658cf39380fe5fff32a3af9c4d languageName: node linkType: hard -"is-glob@npm:^4.0.0, is-glob@npm:^4.0.1, is-glob@npm:^4.0.3, is-glob@npm:~4.0.1": +"is-glob@npm:^4.0.0, is-glob@npm:^4.0.1, is-glob@npm:^4.0.3": version: 4.0.3 resolution: "is-glob@npm:4.0.3" dependencies: is-extglob: "npm:^2.1.1" - checksum: 17fb4014e22be3bbecea9b2e3a76e9e34ff645466be702f1693e8f1ee1adac84710d0be0bd9f967d6354036fd51ab7c2741d954d6e91dae6bb69714de92c197a - languageName: node - linkType: hard - -"is-interactive@npm:^1.0.0": - version: 1.0.0 - resolution: "is-interactive@npm:1.0.0" - checksum: dd47904dbf286cd20aa58c5192161be1a67138485b9836d5a70433b21a45442e9611b8498b8ab1f839fc962c7620667a50535fdfb4a6bc7989b8858645c06b4d + checksum: 10c0/17fb4014e22be3bbecea9b2e3a76e9e34ff645466be702f1693e8f1ee1adac84710d0be0bd9f967d6354036fd51ab7c2741d954d6e91dae6bb69714de92c197a languageName: node linkType: hard "is-lambda@npm:^1.0.1": version: 1.0.1 resolution: "is-lambda@npm:1.0.1" - checksum: 85fee098ae62ba6f1e24cf22678805473c7afd0fb3978a3aa260e354cb7bcb3a5806cf0a98403188465efedec41ab4348e8e4e79305d409601323855b3839d4d - languageName: node - linkType: hard - -"is-module@npm:^1.0.0": - version: 1.0.0 - resolution: "is-module@npm:1.0.0" - checksum: 795a3914bcae7c26a1c23a1e5574c42eac13429625045737bf3e324ce865c0601d61aee7a5afbca1bee8cb300c7d9647e7dc98860c9bdbc3b7fdc51d8ac0bffc + checksum: 10c0/85fee098ae62ba6f1e24cf22678805473c7afd0fb3978a3aa260e354cb7bcb3a5806cf0a98403188465efedec41ab4348e8e4e79305d409601323855b3839d4d languageName: node linkType: hard "is-negative-zero@npm:^2.0.2": version: 2.0.2 resolution: "is-negative-zero@npm:2.0.2" - checksum: eda024c158f70f2017f3415e471b818d314da5ef5be68f801b16314d4a4b6304a74cbed778acf9e2f955bb9c1c5f2935c1be0c7c99e1ad12286f45366217b6a3 + checksum: 10c0/eda024c158f70f2017f3415e471b818d314da5ef5be68f801b16314d4a4b6304a74cbed778acf9e2f955bb9c1c5f2935c1be0c7c99e1ad12286f45366217b6a3 + languageName: node + linkType: hard + +"is-negative-zero@npm:^2.0.3": + version: 2.0.3 + resolution: "is-negative-zero@npm:2.0.3" + checksum: 10c0/bcdcf6b8b9714063ffcfa9929c575ac69bfdabb8f4574ff557dfc086df2836cf07e3906f5bbc4f2a5c12f8f3ba56af640c843cdfc74da8caed86c7c7d66fd08e languageName: node linkType: hard @@ -4292,42 +5431,35 @@ __metadata: resolution: "is-number-object@npm:1.0.7" dependencies: has-tostringtag: "npm:^1.0.0" - checksum: aad266da1e530f1804a2b7bd2e874b4869f71c98590b3964f9d06cc9869b18f8d1f4778f838ecd2a11011bce20aeecb53cb269ba916209b79c24580416b74b1b + checksum: 10c0/aad266da1e530f1804a2b7bd2e874b4869f71c98590b3964f9d06cc9869b18f8d1f4778f838ecd2a11011bce20aeecb53cb269ba916209b79c24580416b74b1b languageName: node linkType: hard "is-number@npm:^7.0.0": version: 7.0.0 resolution: "is-number@npm:7.0.0" - checksum: b4686d0d3053146095ccd45346461bc8e53b80aeb7671cc52a4de02dbbf7dc0d1d2a986e2fe4ae206984b4d34ef37e8b795ebc4f4295c978373e6575e295d811 + checksum: 10c0/b4686d0d3053146095ccd45346461bc8e53b80aeb7671cc52a4de02dbbf7dc0d1d2a986e2fe4ae206984b4d34ef37e8b795ebc4f4295c978373e6575e295d811 languageName: node linkType: hard "is-obj@npm:^2.0.0": version: 2.0.0 resolution: "is-obj@npm:2.0.0" - checksum: 85044ed7ba8bd169e2c2af3a178cacb92a97aa75de9569d02efef7f443a824b5e153eba72b9ae3aca6f8ce81955271aa2dc7da67a8b720575d3e38104208cb4e + checksum: 10c0/85044ed7ba8bd169e2c2af3a178cacb92a97aa75de9569d02efef7f443a824b5e153eba72b9ae3aca6f8ce81955271aa2dc7da67a8b720575d3e38104208cb4e languageName: node linkType: hard "is-path-inside@npm:^3.0.3": version: 3.0.3 resolution: "is-path-inside@npm:3.0.3" - checksum: cf7d4ac35fb96bab6a1d2c3598fe5ebb29aafb52c0aaa482b5a3ed9d8ba3edc11631e3ec2637660c44b3ce0e61a08d54946e8af30dec0b60a7c27296c68ffd05 - languageName: node - linkType: hard - -"is-plain-obj@npm:^1.1.0": - version: 1.1.0 - resolution: "is-plain-obj@npm:1.1.0" - checksum: daaee1805add26f781b413fdf192fc91d52409583be30ace35c82607d440da63cc4cac0ac55136716688d6c0a2c6ef3edb2254fecbd1fe06056d6bd15975ee8c + checksum: 10c0/cf7d4ac35fb96bab6a1d2c3598fe5ebb29aafb52c0aaa482b5a3ed9d8ba3edc11631e3ec2637660c44b3ce0e61a08d54946e8af30dec0b60a7c27296c68ffd05 languageName: node linkType: hard -"is-plain-obj@npm:^4.0.0": +"is-plain-obj@npm:^4.0.0, is-plain-obj@npm:^4.1.0": version: 4.1.0 resolution: "is-plain-obj@npm:4.1.0" - checksum: 32130d651d71d9564dc88ba7e6fda0e91a1010a3694648e9f4f47bb6080438140696d3e3e15c741411d712e47ac9edc1a8a9de1fe76f3487b0d90be06ac9975e + checksum: 10c0/32130d651d71d9564dc88ba7e6fda0e91a1010a3694648e9f4f47bb6080438140696d3e3e15c741411d712e47ac9edc1a8a9de1fe76f3487b0d90be06ac9975e languageName: node linkType: hard @@ -4336,7 +5468,7 @@ __metadata: resolution: "is-plain-object@npm:2.0.4" dependencies: isobject: "npm:^3.0.1" - checksum: f050fdd5203d9c81e8c4df1b3ff461c4bc64e8b5ca383bcdde46131361d0a678e80bcf00b5257646f6c636197629644d53bd8e2375aea633de09a82d57e942f4 + checksum: 10c0/f050fdd5203d9c81e8c4df1b3ff461c4bc64e8b5ca383bcdde46131361d0a678e80bcf00b5257646f6c636197629644d53bd8e2375aea633de09a82d57e942f4 languageName: node linkType: hard @@ -4346,7 +5478,7 @@ __metadata: dependencies: call-bind: "npm:^1.0.2" has-tostringtag: "npm:^1.0.0" - checksum: bb72aae604a69eafd4a82a93002058c416ace8cde95873589a97fc5dac96a6c6c78a9977d487b7b95426a8f5073969124dd228f043f9f604f041f32fcc465fc1 + checksum: 10c0/bb72aae604a69eafd4a82a93002058c416ace8cde95873589a97fc5dac96a6c6c78a9977d487b7b95426a8f5073969124dd228f043f9f604f041f32fcc465fc1 languageName: node linkType: hard @@ -4355,7 +5487,16 @@ __metadata: resolution: "is-shared-array-buffer@npm:1.0.2" dependencies: call-bind: "npm:^1.0.2" - checksum: cfeee6f171f1b13e6cbc6f3b6cc44e192b93df39f3fcb31aa66ffb1d2df3b91e05664311659f9701baba62f5e98c83b0673c628e7adc30f55071c4874fcdccec + checksum: 10c0/cfeee6f171f1b13e6cbc6f3b6cc44e192b93df39f3fcb31aa66ffb1d2df3b91e05664311659f9701baba62f5e98c83b0673c628e7adc30f55071c4874fcdccec + languageName: node + linkType: hard + +"is-shared-array-buffer@npm:^1.0.3": + version: 1.0.3 + resolution: "is-shared-array-buffer@npm:1.0.3" + dependencies: + call-bind: "npm:^1.0.7" + checksum: 10c0/adc11ab0acbc934a7b9e5e9d6c588d4ec6682f6fea8cda5180721704fa32927582ede5b123349e32517fdadd07958973d24716c80e7ab198970c47acc09e59c7 languageName: node linkType: hard @@ -4364,21 +5505,28 @@ __metadata: resolution: "is-ssh@npm:1.4.0" dependencies: protocols: "npm:^2.0.1" - checksum: 3eb30d1bcb4507cd25562e7ac61a1c0aa31772134c67cec9c3afe6f4d57ec17e8c2892600a608e8e583f32f53f36465b8968c0305f2855cfbff95acfd049e113 + checksum: 10c0/3eb30d1bcb4507cd25562e7ac61a1c0aa31772134c67cec9c3afe6f4d57ec17e8c2892600a608e8e583f32f53f36465b8968c0305f2855cfbff95acfd049e113 languageName: node linkType: hard "is-stream@npm:^2.0.0": version: 2.0.1 resolution: "is-stream@npm:2.0.1" - checksum: 7c284241313fc6efc329b8d7f08e16c0efeb6baab1b4cd0ba579eb78e5af1aa5da11e68559896a2067cd6c526bd29241dda4eb1225e627d5aa1a89a76d4635a5 + checksum: 10c0/7c284241313fc6efc329b8d7f08e16c0efeb6baab1b4cd0ba579eb78e5af1aa5da11e68559896a2067cd6c526bd29241dda4eb1225e627d5aa1a89a76d4635a5 languageName: node linkType: hard "is-stream@npm:^3.0.0": version: 3.0.0 resolution: "is-stream@npm:3.0.0" - checksum: eb2f7127af02ee9aa2a0237b730e47ac2de0d4e76a4a905a50a11557f2339df5765eaea4ceb8029f1efa978586abe776908720bfcb1900c20c6ec5145f6f29d8 + checksum: 10c0/eb2f7127af02ee9aa2a0237b730e47ac2de0d4e76a4a905a50a11557f2339df5765eaea4ceb8029f1efa978586abe776908720bfcb1900c20c6ec5145f6f29d8 + languageName: node + linkType: hard + +"is-stream@npm:^4.0.1": + version: 4.0.1 + resolution: "is-stream@npm:4.0.1" + checksum: 10c0/2706c7f19b851327ba374687bc4a3940805e14ca496dc672b9629e744d143b1ad9c6f1b162dece81c7bfbc0f83b32b61ccc19ad2e05aad2dd7af347408f60c7f languageName: node linkType: hard @@ -4387,7 +5535,7 @@ __metadata: resolution: "is-string@npm:1.0.7" dependencies: has-tostringtag: "npm:^1.0.0" - checksum: 905f805cbc6eedfa678aaa103ab7f626aac9ebbdc8737abb5243acaa61d9820f8edc5819106b8fcd1839e33db21de9f0116ae20de380c8382d16dc2a601921f6 + checksum: 10c0/905f805cbc6eedfa678aaa103ab7f626aac9ebbdc8737abb5243acaa61d9820f8edc5819106b8fcd1839e33db21de9f0116ae20de380c8382d16dc2a601921f6 languageName: node linkType: hard @@ -4396,16 +5544,7 @@ __metadata: resolution: "is-symbol@npm:1.0.4" dependencies: has-symbols: "npm:^1.0.2" - checksum: 9381dd015f7c8906154dbcbf93fad769de16b4b961edc94f88d26eb8c555935caa23af88bda0c93a18e65560f6d7cca0fd5a3f8a8e1df6f1abbb9bead4502ef7 - languageName: node - linkType: hard - -"is-text-path@npm:^1.0.1": - version: 1.0.1 - resolution: "is-text-path@npm:1.0.1" - dependencies: - text-extensions: "npm:^1.0.0" - checksum: 61c8650c29548febb6bf69e9541fc11abbbb087a0568df7bc471ba264e95fb254def4e610631cbab4ddb0a1a07949d06416f4ebeaf37875023fb184cdb87ee84 + checksum: 10c0/9381dd015f7c8906154dbcbf93fad769de16b4b961edc94f88d26eb8c555935caa23af88bda0c93a18e65560f6d7cca0fd5a3f8a8e1df6f1abbb9bead4502ef7 languageName: node linkType: hard @@ -4414,7 +5553,7 @@ __metadata: resolution: "is-text-path@npm:2.0.0" dependencies: text-extensions: "npm:^2.0.0" - checksum: e3c470e1262a3a54aa0fca1c0300b2659a7aed155714be6b643f88822c03bcfa6659b491f7a05c5acd3c1a3d6d42bab47e1bdd35bcc3a25973c4f26b2928bc1a + checksum: 10c0/e3c470e1262a3a54aa0fca1c0300b2659a7aed155714be6b643f88822c03bcfa6659b491f7a05c5acd3c1a3d6d42bab47e1bdd35bcc3a25973c4f26b2928bc1a languageName: node linkType: hard @@ -4423,28 +5562,16 @@ __metadata: resolution: "is-typed-array@npm:1.1.12" dependencies: which-typed-array: "npm:^1.1.11" - checksum: 9863e9cc7223c6fc1c462a2c3898a7beff6b41b1ee0fabb03b7d278ae7de670b5bcbc8627db56bb66ed60902fa37d53fe5cce0fd2f7d73ac64fe5da6f409b6ae - languageName: node - linkType: hard - -"is-typedarray@npm:^1.0.0": - version: 1.0.0 - resolution: "is-typedarray@npm:1.0.0" - checksum: 4c096275ba041a17a13cca33ac21c16bc4fd2d7d7eb94525e7cd2c2f2c1a3ab956e37622290642501ff4310601e413b675cf399ad6db49855527d2163b3eeeec - languageName: node - linkType: hard - -"is-unicode-supported@npm:^0.1.0": - version: 0.1.0 - resolution: "is-unicode-supported@npm:0.1.0" - checksum: 00cbe3455c3756be68d2542c416cab888aebd5012781d6819749fefb15162ff23e38501fe681b3d751c73e8ff561ac09a5293eba6f58fdf0178462ce6dcb3453 + checksum: 10c0/9863e9cc7223c6fc1c462a2c3898a7beff6b41b1ee0fabb03b7d278ae7de670b5bcbc8627db56bb66ed60902fa37d53fe5cce0fd2f7d73ac64fe5da6f409b6ae languageName: node linkType: hard -"is-unicode-supported@npm:^1.2.0": - version: 1.3.0 - resolution: "is-unicode-supported@npm:1.3.0" - checksum: b8674ea95d869f6faabddc6a484767207058b91aea0250803cbf1221345cb0c56f466d4ecea375dc77f6633d248d33c47bd296fb8f4cdba0b4edba8917e83d8a +"is-typed-array@npm:^1.1.13": + version: 1.1.13 + resolution: "is-typed-array@npm:1.1.13" + dependencies: + which-typed-array: "npm:^1.1.14" + checksum: 10c0/fa5cb97d4a80e52c2cc8ed3778e39f175a1a2ae4ddf3adae3187d69586a1fd57cfa0b095db31f66aa90331e9e3da79184cea9c6abdcd1abc722dc3c3edd51cca languageName: node linkType: hard @@ -4453,58 +5580,100 @@ __metadata: resolution: "is-weakref@npm:1.0.2" dependencies: call-bind: "npm:^1.0.2" - checksum: 1545c5d172cb690c392f2136c23eec07d8d78a7f57d0e41f10078aa4f5daf5d7f57b6513a67514ab4f073275ad00c9822fc8935e00229d0a2089e1c02685d4b1 - languageName: node - linkType: hard - -"is-wsl@npm:^2.2.0": - version: 2.2.0 - resolution: "is-wsl@npm:2.2.0" - dependencies: - is-docker: "npm:^2.0.0" - checksum: a6fa2d370d21be487c0165c7a440d567274fbba1a817f2f0bfa41cc5e3af25041d84267baa22df66696956038a43973e72fca117918c91431920bdef490fa25e + checksum: 10c0/1545c5d172cb690c392f2136c23eec07d8d78a7f57d0e41f10078aa4f5daf5d7f57b6513a67514ab4f073275ad00c9822fc8935e00229d0a2089e1c02685d4b1 languageName: node linkType: hard "isarray@npm:^2.0.5": version: 2.0.5 resolution: "isarray@npm:2.0.5" - checksum: 4199f14a7a13da2177c66c31080008b7124331956f47bca57dd0b6ea9f11687aa25e565a2c7a2b519bc86988d10398e3049a1f5df13c9f6b7664154690ae79fd - languageName: node - linkType: hard - -"isarray@npm:~1.0.0": - version: 1.0.0 - resolution: "isarray@npm:1.0.0" - checksum: 18b5be6669be53425f0b84098732670ed4e727e3af33bc7f948aac01782110eb9a18b3b329c5323bcdd3acdaae547ee077d3951317e7f133bff7105264b3003d - languageName: node - linkType: hard - -"isbinaryfile@npm:^5.0.0": - version: 5.0.0 - resolution: "isbinaryfile@npm:5.0.0" - checksum: f8d4d863ae857eb07538cd1a81ba8c0a86ba8773e46c05a19a84d7dd10673551dd5b4c24ff3444b658cb1267df54f388a4beea54f416d69a1c9ef7addedd4cf9 + checksum: 10c0/4199f14a7a13da2177c66c31080008b7124331956f47bca57dd0b6ea9f11687aa25e565a2c7a2b519bc86988d10398e3049a1f5df13c9f6b7664154690ae79fd languageName: node linkType: hard "isexe@npm:^2.0.0": version: 2.0.0 resolution: "isexe@npm:2.0.0" - checksum: 228cfa503fadc2c31596ab06ed6aa82c9976eec2bfd83397e7eaf06d0ccf42cd1dfd6743bf9aeb01aebd4156d009994c5f76ea898d2832c1fe342da923ca457d + checksum: 10c0/228cfa503fadc2c31596ab06ed6aa82c9976eec2bfd83397e7eaf06d0ccf42cd1dfd6743bf9aeb01aebd4156d009994c5f76ea898d2832c1fe342da923ca457d languageName: node linkType: hard "isexe@npm:^3.1.1": version: 3.1.1 resolution: "isexe@npm:3.1.1" - checksum: 9ec257654093443eb0a528a9c8cbba9c0ca7616ccb40abd6dde7202734d96bb86e4ac0d764f0f8cd965856aacbff2f4ce23e730dc19dfb41e3b0d865ca6fdcc7 + checksum: 10c0/9ec257654093443eb0a528a9c8cbba9c0ca7616ccb40abd6dde7202734d96bb86e4ac0d764f0f8cd965856aacbff2f4ce23e730dc19dfb41e3b0d865ca6fdcc7 languageName: node linkType: hard "isobject@npm:^3.0.1": version: 3.0.1 resolution: "isobject@npm:3.0.1" - checksum: 03344f5064a82f099a0cd1a8a407f4c0d20b7b8485e8e816c39f249e9416b06c322e8dec5b842b6bb8a06de0af9cb48e7bc1b5352f0fadc2f0abac033db3d4db + checksum: 10c0/03344f5064a82f099a0cd1a8a407f4c0d20b7b8485e8e816c39f249e9416b06c322e8dec5b842b6bb8a06de0af9cb48e7bc1b5352f0fadc2f0abac033db3d4db + languageName: node + linkType: hard + +"istanbul-lib-coverage@npm:^3.0.0, istanbul-lib-coverage@npm:^3.2.0": + version: 3.2.2 + resolution: "istanbul-lib-coverage@npm:3.2.2" + checksum: 10c0/6c7ff2106769e5f592ded1fb418f9f73b4411fd5a084387a5410538332b6567cd1763ff6b6cadca9b9eb2c443cce2f7ea7d7f1b8d315f9ce58539793b1e0922b + languageName: node + linkType: hard + +"istanbul-lib-instrument@npm:^5.0.4": + version: 5.2.1 + resolution: "istanbul-lib-instrument@npm:5.2.1" + dependencies: + "@babel/core": "npm:^7.12.3" + "@babel/parser": "npm:^7.14.7" + "@istanbuljs/schema": "npm:^0.1.2" + istanbul-lib-coverage: "npm:^3.2.0" + semver: "npm:^6.3.0" + checksum: 10c0/8a1bdf3e377dcc0d33ec32fe2b6ecacdb1e4358fd0eb923d4326bb11c67622c0ceb99600a680f3dad5d29c66fc1991306081e339b4d43d0b8a2ab2e1d910a6ee + languageName: node + linkType: hard + +"istanbul-lib-instrument@npm:^6.0.0": + version: 6.0.3 + resolution: "istanbul-lib-instrument@npm:6.0.3" + dependencies: + "@babel/core": "npm:^7.23.9" + "@babel/parser": "npm:^7.23.9" + "@istanbuljs/schema": "npm:^0.1.3" + istanbul-lib-coverage: "npm:^3.2.0" + semver: "npm:^7.5.4" + checksum: 10c0/a1894e060dd2a3b9f046ffdc87b44c00a35516f5e6b7baf4910369acca79e506fc5323a816f811ae23d82334b38e3ddeb8b3b331bd2c860540793b59a8689128 + languageName: node + linkType: hard + +"istanbul-lib-report@npm:^3.0.0": + version: 3.0.1 + resolution: "istanbul-lib-report@npm:3.0.1" + dependencies: + istanbul-lib-coverage: "npm:^3.0.0" + make-dir: "npm:^4.0.0" + supports-color: "npm:^7.1.0" + checksum: 10c0/84323afb14392de8b6a5714bd7e9af845cfbd56cfe71ed276cda2f5f1201aea673c7111901227ee33e68e4364e288d73861eb2ed48f6679d1e69a43b6d9b3ba7 + languageName: node + linkType: hard + +"istanbul-lib-source-maps@npm:^4.0.0": + version: 4.0.1 + resolution: "istanbul-lib-source-maps@npm:4.0.1" + dependencies: + debug: "npm:^4.1.1" + istanbul-lib-coverage: "npm:^3.0.0" + source-map: "npm:^0.6.1" + checksum: 10c0/19e4cc405016f2c906dff271a76715b3e881fa9faeb3f09a86cb99b8512b3a5ed19cadfe0b54c17ca0e54c1142c9c6de9330d65506e35873994e06634eebeb66 + languageName: node + linkType: hard + +"istanbul-reports@npm:^3.1.3": + version: 3.1.7 + resolution: "istanbul-reports@npm:3.1.7" + dependencies: + html-escaper: "npm:^2.0.0" + istanbul-lib-report: "npm:^3.0.0" + checksum: 10c0/a379fadf9cf8dc5dfe25568115721d4a7eb82fbd50b005a6672aff9c6989b20cc9312d7865814e0859cd8df58cbf664482e1d3604be0afde1f7fc3ccc1394a51 languageName: node linkType: hard @@ -4517,14 +5686,465 @@ __metadata: dependenciesMeta: "@pkgjs/parseargs": optional: true - checksum: f01d8f972d894cd7638bc338e9ef5ddb86f7b208ce177a36d718eac96ec86638a6efa17d0221b10073e64b45edc2ce15340db9380b1f5d5c5d000cbc517dc111 + checksum: 10c0/f01d8f972d894cd7638bc338e9ef5ddb86f7b208ce177a36d718eac96ec86638a6efa17d0221b10073e64b45edc2ce15340db9380b1f5d5c5d000cbc517dc111 + languageName: node + linkType: hard + +"jest-changed-files@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-changed-files@npm:29.7.0" + dependencies: + execa: "npm:^5.0.0" + jest-util: "npm:^29.7.0" + p-limit: "npm:^3.1.0" + checksum: 10c0/e071384d9e2f6bb462231ac53f29bff86f0e12394c1b49ccafbad225ce2ab7da226279a8a94f421949920bef9be7ef574fd86aee22e8adfa149be73554ab828b + languageName: node + linkType: hard + +"jest-circus@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-circus@npm:29.7.0" + dependencies: + "@jest/environment": "npm:^29.7.0" + "@jest/expect": "npm:^29.7.0" + "@jest/test-result": "npm:^29.7.0" + "@jest/types": "npm:^29.6.3" + "@types/node": "npm:*" + chalk: "npm:^4.0.0" + co: "npm:^4.6.0" + dedent: "npm:^1.0.0" + is-generator-fn: "npm:^2.0.0" + jest-each: "npm:^29.7.0" + jest-matcher-utils: "npm:^29.7.0" + jest-message-util: "npm:^29.7.0" + jest-runtime: "npm:^29.7.0" + jest-snapshot: "npm:^29.7.0" + jest-util: "npm:^29.7.0" + p-limit: "npm:^3.1.0" + pretty-format: "npm:^29.7.0" + pure-rand: "npm:^6.0.0" + slash: "npm:^3.0.0" + stack-utils: "npm:^2.0.3" + checksum: 10c0/8d15344cf7a9f14e926f0deed64ed190c7a4fa1ed1acfcd81e4cc094d3cc5bf7902ebb7b874edc98ada4185688f90c91e1747e0dfd7ac12463b097968ae74b5e + languageName: node + linkType: hard + +"jest-cli@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-cli@npm:29.7.0" + dependencies: + "@jest/core": "npm:^29.7.0" + "@jest/test-result": "npm:^29.7.0" + "@jest/types": "npm:^29.6.3" + chalk: "npm:^4.0.0" + create-jest: "npm:^29.7.0" + exit: "npm:^0.1.2" + import-local: "npm:^3.0.2" + jest-config: "npm:^29.7.0" + jest-util: "npm:^29.7.0" + jest-validate: "npm:^29.7.0" + yargs: "npm:^17.3.1" + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + bin: + jest: bin/jest.js + checksum: 10c0/a658fd55050d4075d65c1066364595962ead7661711495cfa1dfeecf3d6d0a8ffec532f3dbd8afbb3e172dd5fd2fb2e813c5e10256e7cf2fea766314942fb43a + languageName: node + linkType: hard + +"jest-config@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-config@npm:29.7.0" + dependencies: + "@babel/core": "npm:^7.11.6" + "@jest/test-sequencer": "npm:^29.7.0" + "@jest/types": "npm:^29.6.3" + babel-jest: "npm:^29.7.0" + chalk: "npm:^4.0.0" + ci-info: "npm:^3.2.0" + deepmerge: "npm:^4.2.2" + glob: "npm:^7.1.3" + graceful-fs: "npm:^4.2.9" + jest-circus: "npm:^29.7.0" + jest-environment-node: "npm:^29.7.0" + jest-get-type: "npm:^29.6.3" + jest-regex-util: "npm:^29.6.3" + jest-resolve: "npm:^29.7.0" + jest-runner: "npm:^29.7.0" + jest-util: "npm:^29.7.0" + jest-validate: "npm:^29.7.0" + micromatch: "npm:^4.0.4" + parse-json: "npm:^5.2.0" + pretty-format: "npm:^29.7.0" + slash: "npm:^3.0.0" + strip-json-comments: "npm:^3.1.1" + peerDependencies: + "@types/node": "*" + ts-node: ">=9.0.0" + peerDependenciesMeta: + "@types/node": + optional: true + ts-node: + optional: true + checksum: 10c0/bab23c2eda1fff06e0d104b00d6adfb1d1aabb7128441899c9bff2247bd26710b050a5364281ce8d52b46b499153bf7e3ee88b19831a8f3451f1477a0246a0f1 + languageName: node + linkType: hard + +"jest-diff@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-diff@npm:29.7.0" + dependencies: + chalk: "npm:^4.0.0" + diff-sequences: "npm:^29.6.3" + jest-get-type: "npm:^29.6.3" + pretty-format: "npm:^29.7.0" + checksum: 10c0/89a4a7f182590f56f526443dde69acefb1f2f0c9e59253c61d319569856c4931eae66b8a3790c443f529267a0ddba5ba80431c585deed81827032b2b2a1fc999 + languageName: node + linkType: hard + +"jest-docblock@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-docblock@npm:29.7.0" + dependencies: + detect-newline: "npm:^3.0.0" + checksum: 10c0/d932a8272345cf6b6142bb70a2bb63e0856cc0093f082821577ea5bdf4643916a98744dfc992189d2b1417c38a11fa42466f6111526bc1fb81366f56410f3be9 + languageName: node + linkType: hard + +"jest-each@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-each@npm:29.7.0" + dependencies: + "@jest/types": "npm:^29.6.3" + chalk: "npm:^4.0.0" + jest-get-type: "npm:^29.6.3" + jest-util: "npm:^29.7.0" + pretty-format: "npm:^29.7.0" + checksum: 10c0/f7f9a90ebee80cc688e825feceb2613627826ac41ea76a366fa58e669c3b2403d364c7c0a74d862d469b103c843154f8456d3b1c02b487509a12afa8b59edbb4 + languageName: node + linkType: hard + +"jest-environment-node@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-environment-node@npm:29.7.0" + dependencies: + "@jest/environment": "npm:^29.7.0" + "@jest/fake-timers": "npm:^29.7.0" + "@jest/types": "npm:^29.6.3" + "@types/node": "npm:*" + jest-mock: "npm:^29.7.0" + jest-util: "npm:^29.7.0" + checksum: 10c0/61f04fec077f8b1b5c1a633e3612fc0c9aa79a0ab7b05600683428f1e01a4d35346c474bde6f439f9fcc1a4aa9a2861ff852d079a43ab64b02105d1004b2592b + languageName: node + linkType: hard + +"jest-get-type@npm:^29.6.3": + version: 29.6.3 + resolution: "jest-get-type@npm:29.6.3" + checksum: 10c0/552e7a97a983d3c2d4e412a44eb7de0430ff773dd99f7500962c268d6dfbfa431d7d08f919c9d960530e5f7f78eb47f267ad9b318265e5092b3ff9ede0db7c2b + languageName: node + linkType: hard + +"jest-haste-map@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-haste-map@npm:29.7.0" + dependencies: + "@jest/types": "npm:^29.6.3" + "@types/graceful-fs": "npm:^4.1.3" + "@types/node": "npm:*" + anymatch: "npm:^3.0.3" + fb-watchman: "npm:^2.0.0" + fsevents: "npm:^2.3.2" + graceful-fs: "npm:^4.2.9" + jest-regex-util: "npm:^29.6.3" + jest-util: "npm:^29.7.0" + jest-worker: "npm:^29.7.0" + micromatch: "npm:^4.0.4" + walker: "npm:^1.0.8" + dependenciesMeta: + fsevents: + optional: true + checksum: 10c0/2683a8f29793c75a4728787662972fedd9267704c8f7ef9d84f2beed9a977f1cf5e998c07b6f36ba5603f53cb010c911fe8cd0ac9886e073fe28ca66beefd30c + languageName: node + linkType: hard + +"jest-leak-detector@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-leak-detector@npm:29.7.0" + dependencies: + jest-get-type: "npm:^29.6.3" + pretty-format: "npm:^29.7.0" + checksum: 10c0/71bb9f77fc489acb842a5c7be030f2b9acb18574dc9fb98b3100fc57d422b1abc55f08040884bd6e6dbf455047a62f7eaff12aa4058f7cbdc11558718ca6a395 + languageName: node + linkType: hard + +"jest-matcher-utils@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-matcher-utils@npm:29.7.0" + dependencies: + chalk: "npm:^4.0.0" + jest-diff: "npm:^29.7.0" + jest-get-type: "npm:^29.6.3" + pretty-format: "npm:^29.7.0" + checksum: 10c0/0d0e70b28fa5c7d4dce701dc1f46ae0922102aadc24ed45d594dd9b7ae0a8a6ef8b216718d1ab79e451291217e05d4d49a82666e1a3cc2b428b75cd9c933244e + languageName: node + linkType: hard + +"jest-message-util@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-message-util@npm:29.7.0" + dependencies: + "@babel/code-frame": "npm:^7.12.13" + "@jest/types": "npm:^29.6.3" + "@types/stack-utils": "npm:^2.0.0" + chalk: "npm:^4.0.0" + graceful-fs: "npm:^4.2.9" + micromatch: "npm:^4.0.4" + pretty-format: "npm:^29.7.0" + slash: "npm:^3.0.0" + stack-utils: "npm:^2.0.3" + checksum: 10c0/850ae35477f59f3e6f27efac5215f706296e2104af39232bb14e5403e067992afb5c015e87a9243ec4d9df38525ef1ca663af9f2f4766aa116f127247008bd22 + languageName: node + linkType: hard + +"jest-mock@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-mock@npm:29.7.0" + dependencies: + "@jest/types": "npm:^29.6.3" + "@types/node": "npm:*" + jest-util: "npm:^29.7.0" + checksum: 10c0/7b9f8349ee87695a309fe15c46a74ab04c853369e5c40952d68061d9dc3159a0f0ed73e215f81b07ee97a9faaf10aebe5877a9d6255068a0977eae6a9ff1d5ac + languageName: node + linkType: hard + +"jest-pnp-resolver@npm:^1.2.2": + version: 1.2.3 + resolution: "jest-pnp-resolver@npm:1.2.3" + peerDependencies: + jest-resolve: "*" + peerDependenciesMeta: + jest-resolve: + optional: true + checksum: 10c0/86eec0c78449a2de733a6d3e316d49461af6a858070e113c97f75fb742a48c2396ea94150cbca44159ffd4a959f743a47a8b37a792ef6fdad2cf0a5cba973fac + languageName: node + linkType: hard + +"jest-regex-util@npm:^29.6.3": + version: 29.6.3 + resolution: "jest-regex-util@npm:29.6.3" + checksum: 10c0/4e33fb16c4f42111159cafe26397118dcfc4cf08bc178a67149fb05f45546a91928b820894572679d62559839d0992e21080a1527faad65daaae8743a5705a3b + languageName: node + linkType: hard + +"jest-resolve-dependencies@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-resolve-dependencies@npm:29.7.0" + dependencies: + jest-regex-util: "npm:^29.6.3" + jest-snapshot: "npm:^29.7.0" + checksum: 10c0/b6e9ad8ae5b6049474118ea6441dfddd385b6d1fc471db0136f7c8fbcfe97137a9665e4f837a9f49f15a29a1deb95a14439b7aec812f3f99d08f228464930f0d + languageName: node + linkType: hard + +"jest-resolve@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-resolve@npm:29.7.0" + dependencies: + chalk: "npm:^4.0.0" + graceful-fs: "npm:^4.2.9" + jest-haste-map: "npm:^29.7.0" + jest-pnp-resolver: "npm:^1.2.2" + jest-util: "npm:^29.7.0" + jest-validate: "npm:^29.7.0" + resolve: "npm:^1.20.0" + resolve.exports: "npm:^2.0.0" + slash: "npm:^3.0.0" + checksum: 10c0/59da5c9c5b50563e959a45e09e2eace783d7f9ac0b5dcc6375dea4c0db938d2ebda97124c8161310082760e8ebbeff9f6b177c15ca2f57fb424f637a5d2adb47 + languageName: node + linkType: hard + +"jest-runner@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-runner@npm:29.7.0" + dependencies: + "@jest/console": "npm:^29.7.0" + "@jest/environment": "npm:^29.7.0" + "@jest/test-result": "npm:^29.7.0" + "@jest/transform": "npm:^29.7.0" + "@jest/types": "npm:^29.6.3" + "@types/node": "npm:*" + chalk: "npm:^4.0.0" + emittery: "npm:^0.13.1" + graceful-fs: "npm:^4.2.9" + jest-docblock: "npm:^29.7.0" + jest-environment-node: "npm:^29.7.0" + jest-haste-map: "npm:^29.7.0" + jest-leak-detector: "npm:^29.7.0" + jest-message-util: "npm:^29.7.0" + jest-resolve: "npm:^29.7.0" + jest-runtime: "npm:^29.7.0" + jest-util: "npm:^29.7.0" + jest-watcher: "npm:^29.7.0" + jest-worker: "npm:^29.7.0" + p-limit: "npm:^3.1.0" + source-map-support: "npm:0.5.13" + checksum: 10c0/2194b4531068d939f14c8d3274fe5938b77fa73126aedf9c09ec9dec57d13f22c72a3b5af01ac04f5c1cf2e28d0ac0b4a54212a61b05f10b5d6b47f2a1097bb4 + languageName: node + linkType: hard + +"jest-runtime@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-runtime@npm:29.7.0" + dependencies: + "@jest/environment": "npm:^29.7.0" + "@jest/fake-timers": "npm:^29.7.0" + "@jest/globals": "npm:^29.7.0" + "@jest/source-map": "npm:^29.6.3" + "@jest/test-result": "npm:^29.7.0" + "@jest/transform": "npm:^29.7.0" + "@jest/types": "npm:^29.6.3" + "@types/node": "npm:*" + chalk: "npm:^4.0.0" + cjs-module-lexer: "npm:^1.0.0" + collect-v8-coverage: "npm:^1.0.0" + glob: "npm:^7.1.3" + graceful-fs: "npm:^4.2.9" + jest-haste-map: "npm:^29.7.0" + jest-message-util: "npm:^29.7.0" + jest-mock: "npm:^29.7.0" + jest-regex-util: "npm:^29.6.3" + jest-resolve: "npm:^29.7.0" + jest-snapshot: "npm:^29.7.0" + jest-util: "npm:^29.7.0" + slash: "npm:^3.0.0" + strip-bom: "npm:^4.0.0" + checksum: 10c0/7cd89a1deda0bda7d0941835434e44f9d6b7bd50b5c5d9b0fc9a6c990b2d4d2cab59685ab3cb2850ed4cc37059f6de903af5a50565d7f7f1192a77d3fd6dd2a6 + languageName: node + linkType: hard + +"jest-snapshot@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-snapshot@npm:29.7.0" + dependencies: + "@babel/core": "npm:^7.11.6" + "@babel/generator": "npm:^7.7.2" + "@babel/plugin-syntax-jsx": "npm:^7.7.2" + "@babel/plugin-syntax-typescript": "npm:^7.7.2" + "@babel/types": "npm:^7.3.3" + "@jest/expect-utils": "npm:^29.7.0" + "@jest/transform": "npm:^29.7.0" + "@jest/types": "npm:^29.6.3" + babel-preset-current-node-syntax: "npm:^1.0.0" + chalk: "npm:^4.0.0" + expect: "npm:^29.7.0" + graceful-fs: "npm:^4.2.9" + jest-diff: "npm:^29.7.0" + jest-get-type: "npm:^29.6.3" + jest-matcher-utils: "npm:^29.7.0" + jest-message-util: "npm:^29.7.0" + jest-util: "npm:^29.7.0" + natural-compare: "npm:^1.4.0" + pretty-format: "npm:^29.7.0" + semver: "npm:^7.5.3" + checksum: 10c0/6e9003c94ec58172b4a62864a91c0146513207bedf4e0a06e1e2ac70a4484088a2683e3a0538d8ea913bcfd53dc54a9b98a98cdfa562e7fe1d1339aeae1da570 + languageName: node + linkType: hard + +"jest-util@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-util@npm:29.7.0" + dependencies: + "@jest/types": "npm:^29.6.3" + "@types/node": "npm:*" + chalk: "npm:^4.0.0" + ci-info: "npm:^3.2.0" + graceful-fs: "npm:^4.2.9" + picomatch: "npm:^2.2.3" + checksum: 10c0/bc55a8f49fdbb8f51baf31d2a4f312fb66c9db1483b82f602c9c990e659cdd7ec529c8e916d5a89452ecbcfae4949b21b40a7a59d4ffc0cd813a973ab08c8150 + languageName: node + linkType: hard + +"jest-validate@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-validate@npm:29.7.0" + dependencies: + "@jest/types": "npm:^29.6.3" + camelcase: "npm:^6.2.0" + chalk: "npm:^4.0.0" + jest-get-type: "npm:^29.6.3" + leven: "npm:^3.1.0" + pretty-format: "npm:^29.7.0" + checksum: 10c0/a20b930480c1ed68778c739f4739dce39423131bc070cd2505ddede762a5570a256212e9c2401b7ae9ba4d7b7c0803f03c5b8f1561c62348213aba18d9dbece2 + languageName: node + linkType: hard + +"jest-watcher@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-watcher@npm:29.7.0" + dependencies: + "@jest/test-result": "npm:^29.7.0" + "@jest/types": "npm:^29.6.3" + "@types/node": "npm:*" + ansi-escapes: "npm:^4.2.1" + chalk: "npm:^4.0.0" + emittery: "npm:^0.13.1" + jest-util: "npm:^29.7.0" + string-length: "npm:^4.0.1" + checksum: 10c0/ec6c75030562fc8f8c727cb8f3b94e75d831fc718785abfc196e1f2a2ebc9a2e38744a15147170039628a853d77a3b695561ce850375ede3a4ee6037a2574567 + languageName: node + linkType: hard + +"jest-worker@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-worker@npm:29.7.0" + dependencies: + "@types/node": "npm:*" + jest-util: "npm:^29.7.0" + merge-stream: "npm:^2.0.0" + supports-color: "npm:^8.0.0" + checksum: 10c0/5570a3a005b16f46c131968b8a5b56d291f9bbb85ff4217e31c80bd8a02e7de799e59a54b95ca28d5c302f248b54cbffde2d177c2f0f52ffcee7504c6eabf660 + languageName: node + linkType: hard + +"jest@npm:^29.7.0": + version: 29.7.0 + resolution: "jest@npm:29.7.0" + dependencies: + "@jest/core": "npm:^29.7.0" + "@jest/types": "npm:^29.6.3" + import-local: "npm:^3.0.2" + jest-cli: "npm:^29.7.0" + peerDependencies: + node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 + peerDependenciesMeta: + node-notifier: + optional: true + bin: + jest: bin/jest.js + checksum: 10c0/f40eb8171cf147c617cc6ada49d062fbb03b4da666cb8d39cdbfb739a7d75eea4c3ca150fb072d0d273dce0c753db4d0467d54906ad0293f59c54f9db4a09d8b languageName: node linkType: hard "js-tokens@npm:^4.0.0": version: 4.0.0 resolution: "js-tokens@npm:4.0.0" - checksum: e248708d377aa058eacf2037b07ded847790e6de892bbad3dac0abba2e759cb9f121b00099a65195616badcb6eca8d14d975cb3e89eb1cfda644756402c8aeed + checksum: 10c0/e248708d377aa058eacf2037b07ded847790e6de892bbad3dac0abba2e759cb9f121b00099a65195616badcb6eca8d14d975cb3e89eb1cfda644756402c8aeed + languageName: node + linkType: hard + +"js-yaml@npm:^3.13.1": + version: 3.14.1 + resolution: "js-yaml@npm:3.14.1" + dependencies: + argparse: "npm:^1.0.7" + esprima: "npm:^4.0.0" + bin: + js-yaml: bin/js-yaml.js + checksum: 10c0/6746baaaeac312c4db8e75fa22331d9a04cccb7792d126ed8ce6a0bbcfef0cedaddd0c5098fade53db067c09fe00aa1c957674b4765610a8b06a5a189e46433b languageName: node linkType: hard @@ -4535,63 +6155,72 @@ __metadata: argparse: "npm:^2.0.1" bin: js-yaml: bin/js-yaml.js - checksum: 184a24b4eaacfce40ad9074c64fd42ac83cf74d8c8cd137718d456ced75051229e5061b8633c3366b8aada17945a7a356b337828c19da92b51ae62126575018f + checksum: 10c0/184a24b4eaacfce40ad9074c64fd42ac83cf74d8c8cd137718d456ced75051229e5061b8633c3366b8aada17945a7a356b337828c19da92b51ae62126575018f languageName: node linkType: hard -"json-buffer@npm:3.0.1": - version: 3.0.1 - resolution: "json-buffer@npm:3.0.1" - checksum: 0d1c91569d9588e7eef2b49b59851f297f3ab93c7b35c7c221e288099322be6b562767d11e4821da500f3219542b9afd2e54c5dc573107c1126ed1080f8e96d7 +"jsesc@npm:^3.0.2": + version: 3.0.2 + resolution: "jsesc@npm:3.0.2" + bin: + jsesc: bin/jsesc + checksum: 10c0/ef22148f9e793180b14d8a145ee6f9f60f301abf443288117b4b6c53d0ecd58354898dc506ccbb553a5f7827965cd38bc5fb726575aae93c5e8915e2de8290e1 languageName: node linkType: hard -"json-parse-better-errors@npm:^1.0.1": - version: 1.0.2 - resolution: "json-parse-better-errors@npm:1.0.2" - checksum: 2f1287a7c833e397c9ddd361a78638e828fc523038bb3441fd4fc144cfd2c6cd4963ffb9e207e648cf7b692600f1e1e524e965c32df5152120910e4903a47dcb +"json-buffer@npm:3.0.1": + version: 3.0.1 + resolution: "json-buffer@npm:3.0.1" + checksum: 10c0/0d1c91569d9588e7eef2b49b59851f297f3ab93c7b35c7c221e288099322be6b562767d11e4821da500f3219542b9afd2e54c5dc573107c1126ed1080f8e96d7 languageName: node linkType: hard "json-parse-even-better-errors@npm:^2.3.0": version: 2.3.1 resolution: "json-parse-even-better-errors@npm:2.3.1" - checksum: 140932564c8f0b88455432e0f33c4cb4086b8868e37524e07e723f4eaedb9425bdc2bafd71bd1d9765bd15fd1e2d126972bc83990f55c467168c228c24d665f3 + checksum: 10c0/140932564c8f0b88455432e0f33c4cb4086b8868e37524e07e723f4eaedb9425bdc2bafd71bd1d9765bd15fd1e2d126972bc83990f55c467168c228c24d665f3 languageName: node linkType: hard "json-parse-even-better-errors@npm:^3.0.0": version: 3.0.0 resolution: "json-parse-even-better-errors@npm:3.0.0" - checksum: 128de17135e7af655ed83fc26dab0fe54faf43b3517fa73dcd997cce6e05a445932664f085ec6dbc219aeb0c592e53ef10d2d6dee4a8e9211ea901b8e6dd0b52 + checksum: 10c0/128de17135e7af655ed83fc26dab0fe54faf43b3517fa73dcd997cce6e05a445932664f085ec6dbc219aeb0c592e53ef10d2d6dee4a8e9211ea901b8e6dd0b52 + languageName: node + linkType: hard + +"json-parse-even-better-errors@npm:^3.0.2": + version: 3.0.2 + resolution: "json-parse-even-better-errors@npm:3.0.2" + checksum: 10c0/147f12b005768abe9fab78d2521ce2b7e1381a118413d634a40e6d907d7d10f5e9a05e47141e96d6853af7cc36d2c834d0a014251be48791e037ff2f13d2b94b languageName: node linkType: hard "json-schema-traverse@npm:^0.4.1": version: 0.4.1 resolution: "json-schema-traverse@npm:0.4.1" - checksum: 108fa90d4cc6f08243aedc6da16c408daf81793bf903e9fd5ab21983cda433d5d2da49e40711da016289465ec2e62e0324dcdfbc06275a607fe3233fde4942ce + checksum: 10c0/108fa90d4cc6f08243aedc6da16c408daf81793bf903e9fd5ab21983cda433d5d2da49e40711da016289465ec2e62e0324dcdfbc06275a607fe3233fde4942ce languageName: node linkType: hard "json-stable-stringify-without-jsonify@npm:^1.0.1": version: 1.0.1 resolution: "json-stable-stringify-without-jsonify@npm:1.0.1" - checksum: cb168b61fd4de83e58d09aaa6425ef71001bae30d260e2c57e7d09a5fd82223e2f22a042dedaab8db23b7d9ae46854b08bb1f91675a8be11c5cffebef5fb66a5 + checksum: 10c0/cb168b61fd4de83e58d09aaa6425ef71001bae30d260e2c57e7d09a5fd82223e2f22a042dedaab8db23b7d9ae46854b08bb1f91675a8be11c5cffebef5fb66a5 languageName: node linkType: hard "json-stringify-nice@npm:^1.1.4": version: 1.1.4 resolution: "json-stringify-nice@npm:1.1.4" - checksum: 13673b67ba9e7fde75a103cade0b0d2dd0d21cd3b918de8d8f6cd59d48ad8c78b0e85f6f4a5842073ddfc91ebdde5ef7c81c7f51945b96a33eaddc5d41324b87 + checksum: 10c0/13673b67ba9e7fde75a103cade0b0d2dd0d21cd3b918de8d8f6cd59d48ad8c78b0e85f6f4a5842073ddfc91ebdde5ef7c81c7f51945b96a33eaddc5d41324b87 languageName: node linkType: hard "json-stringify-safe@npm:^5.0.1": version: 5.0.1 resolution: "json-stringify-safe@npm:5.0.1" - checksum: 7dbf35cd0411d1d648dceb6d59ce5857ec939e52e4afc37601aa3da611f0987d5cee5b38d58329ceddf3ed48bd7215229c8d52059ab01f2444a338bf24ed0f37 + checksum: 10c0/7dbf35cd0411d1d648dceb6d59ce5857ec939e52e4afc37601aa3da611f0987d5cee5b38d58329ceddf3ed48bd7215229c8d52059ab01f2444a338bf24ed0f37 languageName: node linkType: hard @@ -4602,7 +6231,7 @@ __metadata: minimist: "npm:^1.2.0" bin: json5: lib/cli.js - checksum: 9ee316bf21f000b00752e6c2a3b79ecf5324515a5c60ee88983a1910a45426b643a4f3461657586e8aeca87aaf96f0a519b0516d2ae527a6c3e7eed80f68717f + checksum: 10c0/9ee316bf21f000b00752e6c2a3b79ecf5324515a5c60ee88983a1910a45426b643a4f3461657586e8aeca87aaf96f0a519b0516d2ae527a6c3e7eed80f68717f languageName: node linkType: hard @@ -4611,7 +6240,7 @@ __metadata: resolution: "json5@npm:2.2.3" bin: json5: lib/cli.js - checksum: 5a04eed94810fa55c5ea138b2f7a5c12b97c3750bc63d11e511dcecbfef758003861522a070c2272764ee0f4e3e323862f386945aeb5b85b87ee43f084ba586c + checksum: 10c0/5a04eed94810fa55c5ea138b2f7a5c12b97c3750bc63d11e511dcecbfef758003861522a070c2272764ee0f4e3e323862f386945aeb5b85b87ee43f084ba586c languageName: node linkType: hard @@ -4624,37 +6253,28 @@ __metadata: dependenciesMeta: graceful-fs: optional: true - checksum: 4f95b5e8a5622b1e9e8f33c96b7ef3158122f595998114d1e7f03985649ea99cb3cd99ce1ed1831ae94c8c8543ab45ebd044207612f31a56fd08462140e46865 + checksum: 10c0/4f95b5e8a5622b1e9e8f33c96b7ef3158122f595998114d1e7f03985649ea99cb3cd99ce1ed1831ae94c8c8543ab45ebd044207612f31a56fd08462140e46865 languageName: node linkType: hard "jsonparse@npm:^1.2.0, jsonparse@npm:^1.3.1": version: 1.3.1 resolution: "jsonparse@npm:1.3.1" - checksum: 89bc68080cd0a0e276d4b5ab1b79cacd68f562467008d176dc23e16e97d4efec9e21741d92ba5087a8433526a45a7e6a9d5ef25408696c402ca1cfbc01a90bf0 + checksum: 10c0/89bc68080cd0a0e276d4b5ab1b79cacd68f562467008d176dc23e16e97d4efec9e21741d92ba5087a8433526a45a7e6a9d5ef25408696c402ca1cfbc01a90bf0 languageName: node linkType: hard "just-diff-apply@npm:^5.2.0": version: 5.5.0 resolution: "just-diff-apply@npm:5.5.0" - checksum: d7b85371f2a5a17a108467fda35dddd95264ab438ccec7837b67af5913c57ded7246039d1df2b5bc1ade034ccf815b56d69786c5f1e07383168a066007c796c0 + checksum: 10c0/d7b85371f2a5a17a108467fda35dddd95264ab438ccec7837b67af5913c57ded7246039d1df2b5bc1ade034ccf815b56d69786c5f1e07383168a066007c796c0 languageName: node linkType: hard "just-diff@npm:^6.0.0": version: 6.0.2 resolution: "just-diff@npm:6.0.2" - checksum: 1931ca1f0cea4cc480172165c189a84889033ad7a60bee302268ba8ca9f222b43773fd5f272a23ee618d43d85d3048411f06b635571a198159e9a85bb2495f5c - languageName: node - linkType: hard - -"keygrip@npm:~1.1.0": - version: 1.1.0 - resolution: "keygrip@npm:1.1.0" - dependencies: - tsscmp: "npm:1.0.6" - checksum: 2aceec1a1e642a0caf938044056ed67b1909cfe67a93a59b32aae2863e0f35a1a53782ecc8f9cd0e3bdb60863fa0f401ccbd257cd7dfae61915f78445139edea + checksum: 10c0/1931ca1f0cea4cc480172165c189a84889033ad7a60bee302268ba8ca9f222b43773fd5f272a23ee618d43d85d3048411f06b635571a198159e9a85bb2495f5c languageName: node linkType: hard @@ -4663,92 +6283,28 @@ __metadata: resolution: "keyv@npm:4.5.4" dependencies: json-buffer: "npm:3.0.1" - checksum: aa52f3c5e18e16bb6324876bb8b59dd02acf782a4b789c7b2ae21107fab95fab3890ed448d4f8dba80ce05391eeac4bfabb4f02a20221342982f806fa2cf271e + checksum: 10c0/aa52f3c5e18e16bb6324876bb8b59dd02acf782a4b789c7b2ae21107fab95fab3890ed448d4f8dba80ce05391eeac4bfabb4f02a20221342982f806fa2cf271e languageName: node linkType: hard -"kind-of@npm:^6.0.2, kind-of@npm:^6.0.3": +"kind-of@npm:^6.0.2": version: 6.0.3 resolution: "kind-of@npm:6.0.3" - checksum: 61cdff9623dabf3568b6445e93e31376bee1cdb93f8ba7033d86022c2a9b1791a1d9510e026e6465ebd701a6dd2f7b0808483ad8838341ac52f003f512e0b4c4 - languageName: node - linkType: hard - -"koa-compose@npm:^4.1.0": - version: 4.1.0 - resolution: "koa-compose@npm:4.1.0" - checksum: f1f786f994a691931148e7f38f443865bf2702af4a61610d1eea04dab79c04b1232285b59d82a0cf61c830516dd92f10ab0d009b024fcecd4098e7d296ab771a - languageName: node - linkType: hard - -"koa-convert@npm:^2.0.0": - version: 2.0.0 - resolution: "koa-convert@npm:2.0.0" - dependencies: - co: "npm:^4.6.0" - koa-compose: "npm:^4.1.0" - checksum: d3e243ceccd11524d5f4942f6ccd828a9b18a1a967c4375192aa9eedf844f790563632839f006732ce8ca720275737c65a3bab344e13b25f41fb2be451ea102c + checksum: 10c0/61cdff9623dabf3568b6445e93e31376bee1cdb93f8ba7033d86022c2a9b1791a1d9510e026e6465ebd701a6dd2f7b0808483ad8838341ac52f003f512e0b4c4 languageName: node linkType: hard -"koa-etag@npm:^4.0.0": - version: 4.0.0 - resolution: "koa-etag@npm:4.0.0" - dependencies: - etag: "npm:^1.8.1" - checksum: 97515858353b3c64837b5e76d0c733623d29b9abace777eea33b124a4d6b0639ab198723bc93160d76a5cc91d59395b9914614d53719c5a7699fd5e19b015ec1 - languageName: node - linkType: hard - -"koa-send@npm:^5.0.0, koa-send@npm:^5.0.1": - version: 5.0.1 - resolution: "koa-send@npm:5.0.1" - dependencies: - debug: "npm:^4.1.1" - http-errors: "npm:^1.7.3" - resolve-path: "npm:^1.4.0" - checksum: 787a8abaf3690a86cf2e6021f1d870daba5f8393f4b4da4da74c26e7d1f7a89636fa2f251a0ec1ea75364fc81a9ef20d3c52e8e2dc7ad9f1d5053357a0db204f - languageName: node - linkType: hard - -"koa-static@npm:^5.0.0": - version: 5.0.0 - resolution: "koa-static@npm:5.0.0" - dependencies: - debug: "npm:^3.1.0" - koa-send: "npm:^5.0.0" - checksum: 4cb7a4e98506d54274658eb3565b24fcbe606bbb6916cb5ef226b2613d3ffd417dec3404000baa171f2206f2a6d29117bbe881fd26b27d54ef746d9de6de3e91 +"kleur@npm:^3.0.3": + version: 3.0.3 + resolution: "kleur@npm:3.0.3" + checksum: 10c0/cd3a0b8878e7d6d3799e54340efe3591ca787d9f95f109f28129bdd2915e37807bf8918bb295ab86afb8c82196beec5a1adcaf29042ce3f2bd932b038fe3aa4b languageName: node linkType: hard -"koa@npm:^2.13.0": - version: 2.14.2 - resolution: "koa@npm:2.14.2" - dependencies: - accepts: "npm:^1.3.5" - cache-content-type: "npm:^1.0.0" - content-disposition: "npm:~0.5.2" - content-type: "npm:^1.0.4" - cookies: "npm:~0.8.0" - debug: "npm:^4.3.2" - delegates: "npm:^1.0.0" - depd: "npm:^2.0.0" - destroy: "npm:^1.0.4" - encodeurl: "npm:^1.0.2" - escape-html: "npm:^1.0.3" - fresh: "npm:~0.5.2" - http-assert: "npm:^1.3.0" - http-errors: "npm:^1.6.3" - is-generator-function: "npm:^1.0.7" - koa-compose: "npm:^4.1.0" - koa-convert: "npm:^2.0.0" - on-finished: "npm:^2.3.0" - only: "npm:~0.0.2" - parseurl: "npm:^1.3.2" - statuses: "npm:^1.5.0" - type-is: "npm:^1.6.16" - vary: "npm:^1.1.2" - checksum: f60ae84974d7cb834a5937592e010d97134278527a55a3a38973935db9ea409fecbd824e5ff0fa767077d9a9dc1f1a32881b626ddaad8b5978756c345f520cdd +"leven@npm:^3.1.0": + version: 3.1.0 + resolution: "leven@npm:3.1.0" + checksum: 10c0/cd778ba3fbab0f4d0500b7e87d1f6e1f041507c56fdcd47e8256a3012c98aaee371d4c15e0a76e0386107af2d42e2b7466160a2d80688aaa03e66e49949f42df languageName: node linkType: hard @@ -4758,76 +6314,54 @@ __metadata: dependencies: prelude-ls: "npm:^1.2.1" type-check: "npm:~0.4.0" - checksum: effb03cad7c89dfa5bd4f6989364bfc79994c2042ec5966cb9b95990e2edee5cd8969ddf42616a0373ac49fac1403437deaf6e9050fbbaa3546093a59b9ac94e + checksum: 10c0/effb03cad7c89dfa5bd4f6989364bfc79994c2042ec5966cb9b95990e2edee5cd8969ddf42616a0373ac49fac1403437deaf6e9050fbbaa3546093a59b9ac94e languageName: node linkType: hard -"libnpmaccess@npm:^8.0.1": - version: 8.0.1 - resolution: "libnpmaccess@npm:8.0.1" +"libnpmaccess@npm:^8.0.6": + version: 8.0.6 + resolution: "libnpmaccess@npm:8.0.6" dependencies: - npm-package-arg: "npm:^11.0.1" - npm-registry-fetch: "npm:^16.0.0" - checksum: 51fe323cd277255b162543d17c1b51c31087864eb76e2dd529fe0de9812c3b4b08582b4f92846a2b52025ea7a5e3f9cad883a3573601f37cd6f76f4c5d0ca2db + npm-package-arg: "npm:^11.0.2" + npm-registry-fetch: "npm:^17.0.1" + checksum: 10c0/0b63c7cb44e024b0225dae8ebfe5166a0be8a9420c1b5fb6a4f1c795e9eabbed0fff5984ab57167c5634145de018008cbeeb27fe6f808f611ba5ba1b849ec3d6 languageName: node linkType: hard -"libnpmpublish@npm:^9.0.2": - version: 9.0.2 - resolution: "libnpmpublish@npm:9.0.2" +"libnpmpublish@npm:^9.0.9": + version: 9.0.9 + resolution: "libnpmpublish@npm:9.0.9" dependencies: ci-info: "npm:^4.0.0" - normalize-package-data: "npm:^6.0.0" - npm-package-arg: "npm:^11.0.1" - npm-registry-fetch: "npm:^16.0.0" - proc-log: "npm:^3.0.0" + normalize-package-data: "npm:^6.0.1" + npm-package-arg: "npm:^11.0.2" + npm-registry-fetch: "npm:^17.0.1" + proc-log: "npm:^4.2.0" semver: "npm:^7.3.7" - sigstore: "npm:^2.1.0" - ssri: "npm:^10.0.5" - checksum: 29a2a58c0834857d548be35d859725cee60392ab6586ea901453ba3061de7f7a09b7b38303116df0454fad773bedd01b5fdb5916bbe367268f26b17d359fd80b + sigstore: "npm:^2.2.0" + ssri: "npm:^10.0.6" + checksum: 10c0/5e4bae455d33fb7402b8b8fcc505d89a1d60ff4b7dc47dd9ba318426c00400e1892fd0435d8db6baab808f64d7f226cbf8d53792244ffad1df7fc2f94f3237fc languageName: node linkType: hard "lines-and-columns@npm:^1.1.6": version: 1.2.4 resolution: "lines-and-columns@npm:1.2.4" - checksum: 3da6ee62d4cd9f03f5dc90b4df2540fb85b352081bee77fe4bbcd12c9000ead7f35e0a38b8d09a9bb99b13223446dd8689ff3c4959807620726d788701a83d2d + checksum: 10c0/3da6ee62d4cd9f03f5dc90b4df2540fb85b352081bee77fe4bbcd12c9000ead7f35e0a38b8d09a9bb99b13223446dd8689ff3c4959807620726d788701a83d2d languageName: node linkType: hard "lines-and-columns@npm:^2.0.3": version: 2.0.4 resolution: "lines-and-columns@npm:2.0.4" - checksum: 4db28bf065cd7ad897c0700f22d3d0d7c5ed6777e138861c601c496d545340df3fc19e18bd04ff8d95a246a245eb55685b82ca2f8c2ca53a008e9c5316250379 - languageName: node - linkType: hard - -"load-json-file@npm:^4.0.0": - version: 4.0.0 - resolution: "load-json-file@npm:4.0.0" - dependencies: - graceful-fs: "npm:^4.1.2" - parse-json: "npm:^4.0.0" - pify: "npm:^3.0.0" - strip-bom: "npm:^3.0.0" - checksum: 6b48f6a0256bdfcc8970be2c57f68f10acb2ee7e63709b386b2febb6ad3c86198f840889cdbe71d28f741cbaa2f23a7771206b138cd1bdd159564511ca37c1d5 + checksum: 10c0/4db28bf065cd7ad897c0700f22d3d0d7c5ed6777e138861c601c496d545340df3fc19e18bd04ff8d95a246a245eb55685b82ca2f8c2ca53a008e9c5316250379 languageName: node linkType: hard "load-json-file@npm:^7.0.1": version: 7.0.1 resolution: "load-json-file@npm:7.0.1" - checksum: 7117459608a0b6329c7f78e6e1f541b3162dd901c29dd5af721fec8b270177d2e3d7999c971f344fff04daac368d052732e2c7146014bc84d15e0b636975e19a - languageName: node - linkType: hard - -"locate-path@npm:^2.0.0": - version: 2.0.0 - resolution: "locate-path@npm:2.0.0" - dependencies: - p-locate: "npm:^2.0.0" - path-exists: "npm:^3.0.0" - checksum: 24efa0e589be6aa3c469b502f795126b26ab97afa378846cb508174211515633b770aa0ba610cab113caedab8d2a4902b061a08aaed5297c12ab6f5be4df0133 + checksum: 10c0/7117459608a0b6329c7f78e6e1f541b3162dd901c29dd5af721fec8b270177d2e3d7999c971f344fff04daac368d052732e2c7146014bc84d15e0b636975e19a languageName: node linkType: hard @@ -4836,7 +6370,7 @@ __metadata: resolution: "locate-path@npm:5.0.0" dependencies: p-locate: "npm:^4.1.0" - checksum: 33a1c5247e87e022f9713e6213a744557a3e9ec32c5d0b5efb10aa3a38177615bf90221a5592674857039c1a0fd2063b82f285702d37b792d973e9e72ace6c59 + checksum: 10c0/33a1c5247e87e022f9713e6213a744557a3e9ec32c5d0b5efb10aa3a38177615bf90221a5592674857039c1a0fd2063b82f285702d37b792d973e9e72ace6c59 languageName: node linkType: hard @@ -4845,59 +6379,46 @@ __metadata: resolution: "locate-path@npm:6.0.0" dependencies: p-locate: "npm:^5.0.0" - checksum: d3972ab70dfe58ce620e64265f90162d247e87159b6126b01314dd67be43d50e96a50b517bce2d9452a79409c7614054c277b5232377de50416564a77ac7aad3 - languageName: node - linkType: hard - -"lodash.assignwith@npm:^4.2.0": - version: 4.2.0 - resolution: "lodash.assignwith@npm:4.2.0" - checksum: 069b0ce72d05ee19ec848ac1dddf612ab956960a347d7b4da07c4880debaea391896fd35cd731690eef70ea2ed165d983387af75bb0b15fbeba293eb15d39464 - languageName: node - linkType: hard - -"lodash.camelcase@npm:^4.3.0": - version: 4.3.0 - resolution: "lodash.camelcase@npm:4.3.0" - checksum: fcba15d21a458076dd309fce6b1b4bf611d84a0ec252cb92447c948c533ac250b95d2e00955801ebc367e5af5ed288b996d75d37d2035260a937008e14eaf432 + checksum: 10c0/d3972ab70dfe58ce620e64265f90162d247e87159b6126b01314dd67be43d50e96a50b517bce2d9452a79409c7614054c277b5232377de50416564a77ac7aad3 languageName: node linkType: hard -"lodash.ismatch@npm:^4.4.0": - version: 4.4.0 - resolution: "lodash.ismatch@npm:4.4.0" - checksum: 8f96a5dc4b8d3fc5a033dcb259d0c3148a1044fa4d02b4a0e8dce0fa1f2ef3ec4ac131e20b5cb2c985a4e9bcb1c37c0aa5af2cef70094959389617347b8fc645 +"locate-path@npm:^7.1.0": + version: 7.2.0 + resolution: "locate-path@npm:7.2.0" + dependencies: + p-locate: "npm:^6.0.0" + checksum: 10c0/139e8a7fe11cfbd7f20db03923cacfa5db9e14fa14887ea121345597472b4a63c1a42a8a5187defeeff6acf98fd568da7382aa39682d38f0af27433953a97751 languageName: node linkType: hard "lodash.merge@npm:^4.6.2": version: 4.6.2 resolution: "lodash.merge@npm:4.6.2" - checksum: 402fa16a1edd7538de5b5903a90228aa48eb5533986ba7fa26606a49db2572bf414ff73a2c9f5d5fd36b31c46a5d5c7e1527749c07cbcf965ccff5fbdf32c506 + checksum: 10c0/402fa16a1edd7538de5b5903a90228aa48eb5533986ba7fa26606a49db2572bf414ff73a2c9f5d5fd36b31c46a5d5c7e1527749c07cbcf965ccff5fbdf32c506 languageName: node linkType: hard -"lodash@npm:^4.17.14, lodash@npm:^4.17.21": - version: 4.17.21 - resolution: "lodash@npm:4.17.21" - checksum: d8cbea072bb08655bb4c989da418994b073a608dffa608b09ac04b43a791b12aeae7cd7ad919aa4c925f33b48490b5cfe6c1f71d827956071dae2e7bb3a6b74c +"lru-cache@npm:^10.0.1, lru-cache@npm:^9.1.1 || ^10.0.0": + version: 10.1.0 + resolution: "lru-cache@npm:10.1.0" + checksum: 10c0/778bc8b2626daccd75f24c4b4d10632496e21ba064b126f526c626fbdbc5b28c472013fccd45d7646b9e1ef052444824854aed617b59cd570d01a8b7d651fc1e languageName: node linkType: hard -"log-symbols@npm:^4.1.0": - version: 4.1.0 - resolution: "log-symbols@npm:4.1.0" - dependencies: - chalk: "npm:^4.1.0" - is-unicode-supported: "npm:^0.1.0" - checksum: 67f445a9ffa76db1989d0fa98586e5bc2fd5247260dafb8ad93d9f0ccd5896d53fb830b0e54dade5ad838b9de2006c826831a3c528913093af20dff8bd24aca6 +"lru-cache@npm:^10.2.2": + version: 10.4.3 + resolution: "lru-cache@npm:10.4.3" + checksum: 10c0/ebd04fbca961e6c1d6c0af3799adcc966a1babe798f685bb84e6599266599cd95d94630b10262f5424539bc4640107e8a33aa28585374abf561d30d16f4b39fb languageName: node linkType: hard -"lru-cache@npm:^10.0.1, lru-cache@npm:^9.1.1 || ^10.0.0": - version: 10.1.0 - resolution: "lru-cache@npm:10.1.0" - checksum: 778bc8b2626daccd75f24c4b4d10632496e21ba064b126f526c626fbdbc5b28c472013fccd45d7646b9e1ef052444824854aed617b59cd570d01a8b7d651fc1e +"lru-cache@npm:^5.1.1": + version: 5.1.1 + resolution: "lru-cache@npm:5.1.1" + dependencies: + yallist: "npm:^3.0.2" + checksum: 10c0/89b2ef2ef45f543011e38737b8a8622a2f8998cddf0e5437174ef8f1f70a8b9d14a918ab3e232cb3ba343b7abddffa667f0b59075b2b80e6b4d63c3de6127482 languageName: node linkType: hard @@ -4906,14 +6427,7 @@ __metadata: resolution: "lru-cache@npm:6.0.0" dependencies: yallist: "npm:^4.0.0" - checksum: cb53e582785c48187d7a188d3379c181b5ca2a9c78d2bce3e7dee36f32761d1c42983da3fe12b55cb74e1779fa94cdc2e5367c028a9b35317184ede0c07a30a9 - languageName: node - linkType: hard - -"lru-cache@npm:^8.0.4": - version: 8.0.5 - resolution: "lru-cache@npm:8.0.5" - checksum: cd95a9c38497611c5a6453de39a881f6eb5865851a2a01b5f14104ff3fee515362a7b1e7de28606028f423802910ba05bdb8ae1aa7b0d54eae70c92f0cec10b2 + checksum: 10c0/cb53e582785c48187d7a188d3379c181b5ca2a9c78d2bce3e7dee36f32761d1c42983da3fe12b55cb74e1779fa94cdc2e5367c028a9b35317184ede0c07a30a9 languageName: node linkType: hard @@ -4922,7 +6436,14 @@ __metadata: resolution: "make-dir@npm:4.0.0" dependencies: semver: "npm:^7.5.3" - checksum: 69b98a6c0b8e5c4fe9acb61608a9fbcfca1756d910f51e5dbe7a9e5cfb74fca9b8a0c8a0ffdf1294a740826c1ab4871d5bf3f62f72a3049e5eac6541ddffed68 + checksum: 10c0/69b98a6c0b8e5c4fe9acb61608a9fbcfca1756d910f51e5dbe7a9e5cfb74fca9b8a0c8a0ffdf1294a740826c1ab4871d5bf3f62f72a3049e5eac6541ddffed68 + languageName: node + linkType: hard + +"make-dir@npm:^5.0.0": + version: 5.0.0 + resolution: "make-dir@npm:5.0.0" + checksum: 10c0/3485deb28f07d6ae5858e011deac74f1333a74f9ac3a5580b8bf86c7d3234615611f237d9287e30cebb05f74dd92572fd4f78eabf7f47ed69ec233c599e8a50a languageName: node linkType: hard @@ -4941,75 +6462,57 @@ __metadata: negotiator: "npm:^0.6.3" promise-retry: "npm:^2.0.1" ssri: "npm:^10.0.0" - checksum: 43b9f6dcbc6fe8b8604cb6396957c3698857a15ba4dbc38284f7f0e61f248300585ef1eb8cc62df54e9c724af977e45b5cdfd88320ef7f53e45070ed3488da55 - languageName: node - linkType: hard - -"map-obj@npm:^1.0.0": - version: 1.0.1 - resolution: "map-obj@npm:1.0.1" - checksum: ccca88395e7d38671ed9f5652ecf471ecd546924be2fb900836b9da35e068a96687d96a5f93dcdfa94d9a27d649d2f10a84595590f89a347fb4dda47629dcc52 - languageName: node - linkType: hard - -"map-obj@npm:^4.0.0": - version: 4.3.0 - resolution: "map-obj@npm:4.3.0" - checksum: 1c19e1c88513c8abdab25c316367154c6a0a6a0f77e3e8c391bb7c0e093aefed293f539d026dc013d86219e5e4c25f23b0003ea588be2101ccd757bacc12d43b + checksum: 10c0/43b9f6dcbc6fe8b8604cb6396957c3698857a15ba4dbc38284f7f0e61f248300585ef1eb8cc62df54e9c724af977e45b5cdfd88320ef7f53e45070ed3488da55 languageName: node linkType: hard -"media-typer@npm:0.3.0": - version: 0.3.0 - resolution: "media-typer@npm:0.3.0" - checksum: d160f31246907e79fed398470285f21bafb45a62869dc469b1c8877f3f064f5eabc4bcc122f9479b8b605bc5c76187d7871cf84c4ee3ecd3e487da1993279928 +"make-fetch-happen@npm:^13.0.1": + version: 13.0.1 + resolution: "make-fetch-happen@npm:13.0.1" + dependencies: + "@npmcli/agent": "npm:^2.0.0" + cacache: "npm:^18.0.0" + http-cache-semantics: "npm:^4.1.1" + is-lambda: "npm:^1.0.1" + minipass: "npm:^7.0.2" + minipass-fetch: "npm:^3.0.0" + minipass-flush: "npm:^1.0.5" + minipass-pipeline: "npm:^1.2.4" + negotiator: "npm:^0.6.3" + proc-log: "npm:^4.2.0" + promise-retry: "npm:^2.0.1" + ssri: "npm:^10.0.0" + checksum: 10c0/df5f4dbb6d98153b751bccf4dc4cc500de85a96a9331db9805596c46aa9f99d9555983954e6c1266d9f981ae37a9e4647f42b9a4bb5466f867f4012e582c9e7e languageName: node linkType: hard -"memorystream@npm:^0.3.1": - version: 0.3.1 - resolution: "memorystream@npm:0.3.1" - checksum: 4bd164657711d9747ff5edb0508b2944414da3464b7fe21ac5c67cf35bba975c4b446a0124bd0f9a8be54cfc18faf92e92bd77563a20328b1ccf2ff04e9f39b9 +"makeerror@npm:1.0.12": + version: 1.0.12 + resolution: "makeerror@npm:1.0.12" + dependencies: + tmpl: "npm:1.0.5" + checksum: 10c0/b0e6e599780ce6bab49cc413eba822f7d1f0dfebd1c103eaa3785c59e43e22c59018323cf9e1708f0ef5329e94a745d163fcbb6bff8e4c6742f9be9e86f3500c languageName: node linkType: hard "meow@npm:^12.0.1": version: 12.1.1 resolution: "meow@npm:12.1.1" - checksum: a125ca99a32e2306e2f4cbe651a0d27f6eb67918d43a075f6e80b35e9bf372ebf0fc3a9fbc201cbbc9516444b6265fb3c9f80c5b7ebd32f548aa93eb7c28e088 - languageName: node - linkType: hard - -"meow@npm:^8.1.2": - version: 8.1.2 - resolution: "meow@npm:8.1.2" - dependencies: - "@types/minimist": "npm:^1.2.0" - camelcase-keys: "npm:^6.2.2" - decamelize-keys: "npm:^1.1.0" - hard-rejection: "npm:^2.1.0" - minimist-options: "npm:4.1.0" - normalize-package-data: "npm:^3.0.0" - read-pkg-up: "npm:^7.0.1" - redent: "npm:^3.0.0" - trim-newlines: "npm:^3.0.0" - type-fest: "npm:^0.18.0" - yargs-parser: "npm:^20.2.3" - checksum: 9a8d90e616f783650728a90f4ea1e5f763c1c5260369e6596b52430f877f4af8ecbaa8c9d952c93bbefd6d5bda4caed6a96a20ba7d27b511d2971909b01922a2 + checksum: 10c0/a125ca99a32e2306e2f4cbe651a0d27f6eb67918d43a075f6e80b35e9bf372ebf0fc3a9fbc201cbbc9516444b6265fb3c9f80c5b7ebd32f548aa93eb7c28e088 languageName: node linkType: hard "merge-stream@npm:^2.0.0": version: 2.0.0 resolution: "merge-stream@npm:2.0.0" - checksum: 867fdbb30a6d58b011449b8885601ec1690c3e41c759ecd5a9d609094f7aed0096c37823ff4a7190ef0b8f22cc86beb7049196ff68c016e3b3c671d0dac91ce5 + checksum: 10c0/867fdbb30a6d58b011449b8885601ec1690c3e41c759ecd5a9d609094f7aed0096c37823ff4a7190ef0b8f22cc86beb7049196ff68c016e3b3c671d0dac91ce5 languageName: node linkType: hard "merge2@npm:^1.3.0, merge2@npm:^1.4.1": version: 1.4.1 resolution: "merge2@npm:1.4.1" - checksum: 254a8a4605b58f450308fc474c82ac9a094848081bf4c06778200207820e5193726dc563a0d2c16468810516a5c97d9d3ea0ca6585d23c58ccfff2403e8dbbeb + checksum: 10c0/254a8a4605b58f450308fc474c82ac9a094848081bf4c06778200207820e5193726dc563a0d2c16468810516a5c97d9d3ea0ca6585d23c58ccfff2403e8dbbeb languageName: node linkType: hard @@ -5019,44 +6522,21 @@ __metadata: dependencies: braces: "npm:^3.0.2" picomatch: "npm:^2.3.1" - checksum: 3d6505b20f9fa804af5d8c596cb1c5e475b9b0cd05f652c5b56141cf941bd72adaeb7a436fda344235cef93a7f29b7472efc779fcdb83b478eab0867b95cdeff - languageName: node - linkType: hard - -"mime-db@npm:1.52.0": - version: 1.52.0 - resolution: "mime-db@npm:1.52.0" - checksum: 0557a01deebf45ac5f5777fe7740b2a5c309c6d62d40ceab4e23da9f821899ce7a900b7ac8157d4548ddbb7beffe9abc621250e6d182b0397ec7f10c7b91a5aa - languageName: node - linkType: hard - -"mime-types@npm:^2.1.18, mime-types@npm:^2.1.27, mime-types@npm:~2.1.24, mime-types@npm:~2.1.34": - version: 2.1.35 - resolution: "mime-types@npm:2.1.35" - dependencies: - mime-db: "npm:1.52.0" - checksum: 82fb07ec56d8ff1fc999a84f2f217aa46cb6ed1033fefaabd5785b9a974ed225c90dc72fff460259e66b95b73648596dbcc50d51ed69cdf464af2d237d3149b2 + checksum: 10c0/3d6505b20f9fa804af5d8c596cb1c5e475b9b0cd05f652c5b56141cf941bd72adaeb7a436fda344235cef93a7f29b7472efc779fcdb83b478eab0867b95cdeff languageName: node linkType: hard "mimic-fn@npm:^2.1.0": version: 2.1.0 resolution: "mimic-fn@npm:2.1.0" - checksum: b26f5479d7ec6cc2bce275a08f146cf78f5e7b661b18114e2506dd91ec7ec47e7a25bf4360e5438094db0560bcc868079fb3b1fb3892b833c1ecbf63f80c95a4 + checksum: 10c0/b26f5479d7ec6cc2bce275a08f146cf78f5e7b661b18114e2506dd91ec7ec47e7a25bf4360e5438094db0560bcc868079fb3b1fb3892b833c1ecbf63f80c95a4 languageName: node linkType: hard "mimic-fn@npm:^4.0.0": version: 4.0.0 resolution: "mimic-fn@npm:4.0.0" - checksum: de9cc32be9996fd941e512248338e43407f63f6d497abe8441fa33447d922e927de54d4cc3c1a3c6d652857acd770389d5a3823f311a744132760ce2be15ccbf - languageName: node - linkType: hard - -"min-indent@npm:^1.0.0": - version: 1.0.1 - resolution: "min-indent@npm:1.0.1" - checksum: 7e207bd5c20401b292de291f02913230cb1163abca162044f7db1d951fa245b174dc00869d40dd9a9f32a885ad6a5f3e767ee104cf278f399cb4e92d3f582d5c + checksum: 10c0/de9cc32be9996fd941e512248338e43407f63f6d497abe8441fa33447d922e927de54d4cc3c1a3c6d652857acd770389d5a3823f311a744132760ce2be15ccbf languageName: node linkType: hard @@ -5065,7 +6545,7 @@ __metadata: resolution: "minimatch@npm:3.1.2" dependencies: brace-expansion: "npm:^1.1.7" - checksum: 0262810a8fc2e72cca45d6fd86bd349eee435eb95ac6aa45c9ea2180e7ee875ef44c32b55b5973ceabe95ea12682f6e3725cbb63d7a2d1da3ae1163c8b210311 + checksum: 10c0/0262810a8fc2e72cca45d6fd86bd349eee435eb95ac6aa45c9ea2180e7ee875ef44c32b55b5973ceabe95ea12682f6e3725cbb63d7a2d1da3ae1163c8b210311 languageName: node linkType: hard @@ -5074,25 +6554,23 @@ __metadata: resolution: "minimatch@npm:9.0.3" dependencies: brace-expansion: "npm:^2.0.1" - checksum: 85f407dcd38ac3e180f425e86553911d101455ca3ad5544d6a7cec16286657e4f8a9aa6695803025c55e31e35a91a2252b5dc8e7d527211278b8b65b4dbd5eac + checksum: 10c0/85f407dcd38ac3e180f425e86553911d101455ca3ad5544d6a7cec16286657e4f8a9aa6695803025c55e31e35a91a2252b5dc8e7d527211278b8b65b4dbd5eac languageName: node linkType: hard -"minimist-options@npm:4.1.0": - version: 4.1.0 - resolution: "minimist-options@npm:4.1.0" +"minimatch@npm:^9.0.4, minimatch@npm:^9.0.5": + version: 9.0.5 + resolution: "minimatch@npm:9.0.5" dependencies: - arrify: "npm:^1.0.1" - is-plain-obj: "npm:^1.1.0" - kind-of: "npm:^6.0.3" - checksum: 7871f9cdd15d1e7374e5b013e2ceda3d327a06a8c7b38ae16d9ef941e07d985e952c589e57213f7aa90a8744c60aed9524c0d85e501f5478382d9181f2763f54 + brace-expansion: "npm:^2.0.1" + checksum: 10c0/de96cf5e35bdf0eab3e2c853522f98ffbe9a36c37797778d2665231ec1f20a9447a7e567cb640901f89e4daaa95ae5d70c65a9e8aa2bb0019b6facbc3c0575ed languageName: node linkType: hard "minimist@npm:^1.2.0, minimist@npm:^1.2.5, minimist@npm:^1.2.6": version: 1.2.8 resolution: "minimist@npm:1.2.8" - checksum: 19d3fcdca050087b84c2029841a093691a91259a47def2f18222f41e7645a0b7c44ef4b40e88a1e58a40c84d2ef0ee6047c55594d298146d0eb3f6b737c20ce6 + checksum: 10c0/19d3fcdca050087b84c2029841a093691a91259a47def2f18222f41e7645a0b7c44ef4b40e88a1e58a40c84d2ef0ee6047c55594d298146d0eb3f6b737c20ce6 languageName: node linkType: hard @@ -5101,7 +6579,16 @@ __metadata: resolution: "minipass-collect@npm:1.0.2" dependencies: minipass: "npm:^3.0.0" - checksum: 8f82bd1f3095b24f53a991b04b67f4c710c894e518b813f0864a31de5570441a509be1ca17e0bb92b047591a8fdbeb886f502764fefb00d2f144f4011791e898 + checksum: 10c0/8f82bd1f3095b24f53a991b04b67f4c710c894e518b813f0864a31de5570441a509be1ca17e0bb92b047591a8fdbeb886f502764fefb00d2f144f4011791e898 + languageName: node + linkType: hard + +"minipass-collect@npm:^2.0.1": + version: 2.0.1 + resolution: "minipass-collect@npm:2.0.1" + dependencies: + minipass: "npm:^7.0.3" + checksum: 10c0/5167e73f62bb74cc5019594709c77e6a742051a647fe9499abf03c71dca75515b7959d67a764bdc4f8b361cf897fbf25e2d9869ee039203ed45240f48b9aa06e languageName: node linkType: hard @@ -5116,7 +6603,7 @@ __metadata: dependenciesMeta: encoding: optional: true - checksum: 1b63c1f3313e88eeac4689f1b71c9f086598db9a189400e3ee960c32ed89e06737fa23976c9305c2d57464fb3fcdc12749d3378805c9d6176f5569b0d0ee8a75 + checksum: 10c0/1b63c1f3313e88eeac4689f1b71c9f086598db9a189400e3ee960c32ed89e06737fa23976c9305c2d57464fb3fcdc12749d3378805c9d6176f5569b0d0ee8a75 languageName: node linkType: hard @@ -5125,17 +6612,7 @@ __metadata: resolution: "minipass-flush@npm:1.0.5" dependencies: minipass: "npm:^3.0.0" - checksum: 2a51b63feb799d2bb34669205eee7c0eaf9dce01883261a5b77410c9408aa447e478efd191b4de6fc1101e796ff5892f8443ef20d9544385819093dbb32d36bd - languageName: node - linkType: hard - -"minipass-json-stream@npm:^1.0.1": - version: 1.0.1 - resolution: "minipass-json-stream@npm:1.0.1" - dependencies: - jsonparse: "npm:^1.3.1" - minipass: "npm:^3.0.0" - checksum: 9285cbbea801e7bd6a923e7fb66d9c47c8bad880e70b29f0b8ba220c283d065f47bfa887ef87fd1b735d39393ecd53bb13d40c260354e8fcf93d47cf4bf64e9c + checksum: 10c0/2a51b63feb799d2bb34669205eee7c0eaf9dce01883261a5b77410c9408aa447e478efd191b4de6fc1101e796ff5892f8443ef20d9544385819093dbb32d36bd languageName: node linkType: hard @@ -5144,7 +6621,7 @@ __metadata: resolution: "minipass-pipeline@npm:1.2.4" dependencies: minipass: "npm:^3.0.0" - checksum: cbda57cea20b140b797505dc2cac71581a70b3247b84480c1fed5ca5ba46c25ecc25f68bfc9e6dcb1a6e9017dab5c7ada5eab73ad4f0a49d84e35093e0c643f2 + checksum: 10c0/cbda57cea20b140b797505dc2cac71581a70b3247b84480c1fed5ca5ba46c25ecc25f68bfc9e6dcb1a6e9017dab5c7ada5eab73ad4f0a49d84e35093e0c643f2 languageName: node linkType: hard @@ -5153,7 +6630,7 @@ __metadata: resolution: "minipass-sized@npm:1.0.3" dependencies: minipass: "npm:^3.0.0" - checksum: 298f124753efdc745cfe0f2bdfdd81ba25b9f4e753ca4a2066eb17c821f25d48acea607dfc997633ee5bf7b6dfffb4eee4f2051eb168663f0b99fad2fa4829cb + checksum: 10c0/298f124753efdc745cfe0f2bdfdd81ba25b9f4e753ca4a2066eb17c821f25d48acea607dfc997633ee5bf7b6dfffb4eee4f2051eb168663f0b99fad2fa4829cb languageName: node linkType: hard @@ -5162,21 +6639,21 @@ __metadata: resolution: "minipass@npm:3.3.6" dependencies: yallist: "npm:^4.0.0" - checksum: a114746943afa1dbbca8249e706d1d38b85ed1298b530f5808ce51f8e9e941962e2a5ad2e00eae7dd21d8a4aae6586a66d4216d1a259385e9d0358f0c1eba16c + checksum: 10c0/a114746943afa1dbbca8249e706d1d38b85ed1298b530f5808ce51f8e9e941962e2a5ad2e00eae7dd21d8a4aae6586a66d4216d1a259385e9d0358f0c1eba16c languageName: node linkType: hard "minipass@npm:^5.0.0": version: 5.0.0 resolution: "minipass@npm:5.0.0" - checksum: a91d8043f691796a8ac88df039da19933ef0f633e3d7f0d35dcd5373af49131cf2399bfc355f41515dc495e3990369c3858cd319e5c2722b4753c90bf3152462 + checksum: 10c0/a91d8043f691796a8ac88df039da19933ef0f633e3d7f0d35dcd5373af49131cf2399bfc355f41515dc495e3990369c3858cd319e5c2722b4753c90bf3152462 languageName: node linkType: hard "minipass@npm:^5.0.0 || ^6.0.2 || ^7.0.0, minipass@npm:^7.0.2, minipass@npm:^7.0.3": version: 7.0.4 resolution: "minipass@npm:7.0.4" - checksum: 6c7370a6dfd257bf18222da581ba89a5eaedca10e158781232a8b5542a90547540b4b9b7e7f490e4cda43acfbd12e086f0453728ecf8c19e0ef6921bc5958ac5 + checksum: 10c0/6c7370a6dfd257bf18222da581ba89a5eaedca10e158781232a8b5542a90547540b4b9b7e7f490e4cda43acfbd12e086f0453728ecf8c19e0ef6921bc5958ac5 languageName: node linkType: hard @@ -5186,18 +6663,7 @@ __metadata: dependencies: minipass: "npm:^3.0.0" yallist: "npm:^4.0.0" - checksum: 64fae024e1a7d0346a1102bb670085b17b7f95bf6cfdf5b128772ec8faf9ea211464ea4add406a3a6384a7d87a0cd1a96263692134323477b4fb43659a6cab78 - languageName: node - linkType: hard - -"mkdirp@npm:^0.5.6": - version: 0.5.6 - resolution: "mkdirp@npm:0.5.6" - dependencies: - minimist: "npm:^1.2.6" - bin: - mkdirp: bin/cmd.js - checksum: e2e2be789218807b58abced04e7b49851d9e46e88a2f9539242cc8a92c9b5c3a0b9bab360bd3014e02a140fc4fbc58e31176c408b493f8a2a6f4986bd7527b01 + checksum: 10c0/64fae024e1a7d0346a1102bb670085b17b7f95bf6cfdf5b128772ec8faf9ea211464ea4add406a3a6384a7d87a0cd1a96263692134323477b4fb43659a6cab78 languageName: node linkType: hard @@ -5206,82 +6672,60 @@ __metadata: resolution: "mkdirp@npm:1.0.4" bin: mkdirp: bin/cmd.js - checksum: 46ea0f3ffa8bc6a5bc0c7081ffc3907777f0ed6516888d40a518c5111f8366d97d2678911ad1a6882bf592fa9de6c784fea32e1687bb94e1f4944170af48a5cf - languageName: node - linkType: hard - -"modify-values@npm:^1.0.1": - version: 1.0.1 - resolution: "modify-values@npm:1.0.1" - checksum: 6acb1b82aaf7a02f9f7b554b20cbfc159f223a79c66b0a257511c5933d50b85e12ea1220b0a90a2af6f80bc29ff784f929a52a51881867a93ae6a12ce87a729a - languageName: node - linkType: hard - -"mri@npm:^1.2.0": - version: 1.2.0 - resolution: "mri@npm:1.2.0" - checksum: a3d32379c2554cf7351db6237ddc18dc9e54e4214953f3da105b97dc3babe0deb3ffe99cf409b38ea47cc29f9430561ba6b53b24ab8f9ce97a4b50409e4a50e7 + checksum: 10c0/46ea0f3ffa8bc6a5bc0c7081ffc3907777f0ed6516888d40a518c5111f8366d97d2678911ad1a6882bf592fa9de6c784fea32e1687bb94e1f4944170af48a5cf languageName: node linkType: hard "ms@npm:2.1.2": version: 2.1.2 resolution: "ms@npm:2.1.2" - checksum: a437714e2f90dbf881b5191d35a6db792efbca5badf112f87b9e1c712aace4b4b9b742dd6537f3edf90fd6f684de897cec230abde57e87883766712ddda297cc + checksum: 10c0/a437714e2f90dbf881b5191d35a6db792efbca5badf112f87b9e1c712aace4b4b9b742dd6537f3edf90fd6f684de897cec230abde57e87883766712ddda297cc languageName: node linkType: hard -"ms@npm:^2.1.1": +"ms@npm:^2.1.1, ms@npm:^2.1.3": version: 2.1.3 resolution: "ms@npm:2.1.3" - checksum: d924b57e7312b3b63ad21fc5b3dc0af5e78d61a1fc7cfb5457edaf26326bf62be5307cc87ffb6862ef1c2b33b0233cdb5d4f01c4c958cc0d660948b65a287a48 + checksum: 10c0/d924b57e7312b3b63ad21fc5b3dc0af5e78d61a1fc7cfb5457edaf26326bf62be5307cc87ffb6862ef1c2b33b0233cdb5d4f01c4c958cc0d660948b65a287a48 languageName: node linkType: hard -"multimatch@npm:6.0.0": - version: 6.0.0 - resolution: "multimatch@npm:6.0.0" +"multimatch@npm:^7.0.0": + version: 7.0.0 + resolution: "multimatch@npm:7.0.0" dependencies: - "@types/minimatch": "npm:^3.0.5" array-differ: "npm:^4.0.0" array-union: "npm:^3.0.1" - minimatch: "npm:^3.0.4" - checksum: e303c3d83a66bdffbe6bb50b7be000dd299f1928a602323adc92daef3c1028ef1ee4cabf7d2ac458e32096c5dac2a263209835464348faf8a8332d076b58c35a - languageName: node - linkType: hard - -"mute-stream@npm:1.0.0": - version: 1.0.0 - resolution: "mute-stream@npm:1.0.0" - checksum: dce2a9ccda171ec979a3b4f869a102b1343dee35e920146776780de182f16eae459644d187e38d59a3d37adf85685e1c17c38cf7bfda7e39a9880f7a1d10a74c + minimatch: "npm:^9.0.3" + checksum: 10c0/ce5b6e8a8d114830dd621b128a4a5364792bab281d861e68c7d719d2c04e8f9a4a0a566b37cbbc0a3cbaa0a62eb50e869c9d43ab439a314186b113a34c91a9c7 languageName: node linkType: hard -"nanocolors@npm:^0.2.1": - version: 0.2.13 - resolution: "nanocolors@npm:0.2.13" - checksum: ee6943a3f0d0c4579856a3400f4f50606e59007adb25cf2fe183b8df7875a123af3f7c3003d723f2366b63bec5f97a90972972fb539a3776f0c4188b5119070f +"mute-stream@npm:^2.0.0": + version: 2.0.0 + resolution: "mute-stream@npm:2.0.0" + checksum: 10c0/2cf48a2087175c60c8dcdbc619908b49c07f7adcfc37d29236b0c5c612d6204f789104c98cc44d38acab7b3c96f4a3ec2cfdc4934d0738d876dbefa2a12c69f4 languageName: node linkType: hard "natural-compare@npm:^1.4.0": version: 1.4.0 resolution: "natural-compare@npm:1.4.0" - checksum: f5f9a7974bfb28a91afafa254b197f0f22c684d4a1731763dda960d2c8e375b36c7d690e0d9dc8fba774c537af14a7e979129bca23d88d052fbeb9466955e447 + checksum: 10c0/f5f9a7974bfb28a91afafa254b197f0f22c684d4a1731763dda960d2c8e375b36c7d690e0d9dc8fba774c537af14a7e979129bca23d88d052fbeb9466955e447 languageName: node linkType: hard -"negotiator@npm:0.6.3, negotiator@npm:^0.6.3": +"negotiator@npm:^0.6.3": version: 0.6.3 resolution: "negotiator@npm:0.6.3" - checksum: 3ec9fd413e7bf071c937ae60d572bc67155262068ed522cf4b3be5edbe6ddf67d095ec03a3a14ebf8fc8e95f8e1d61be4869db0dbb0de696f6b837358bd43fc2 + checksum: 10c0/3ec9fd413e7bf071c937ae60d572bc67155262068ed522cf4b3be5edbe6ddf67d095ec03a3a14ebf8fc8e95f8e1d61be4869db0dbb0de696f6b837358bd43fc2 languageName: node linkType: hard "neo-async@npm:^2.6.2": version: 2.6.2 resolution: "neo-async@npm:2.6.2" - checksum: c2f5a604a54a8ec5438a342e1f356dff4bc33ccccdb6dc668d94fe8e5eccfc9d2c2eea6064b0967a767ba63b33763f51ccf2cd2441b461a7322656c1f06b3f5d + checksum: 10c0/c2f5a604a54a8ec5438a342e1f356dff4bc33ccccdb6dc668d94fe8e5eccfc9d2c2eea6064b0967a767ba63b33763f51ccf2cd2441b461a7322656c1f06b3f5d languageName: node linkType: hard @@ -5290,25 +6734,18 @@ __metadata: resolution: "new-github-release-url@npm:2.0.0" dependencies: type-fest: "npm:^2.5.1" - checksum: 9faec009b8b403efbc407f45306d07de5cc58e09df5b00bdd55b01384cd18b0fd29a97aef6915428ba3b5abb0a5c132c3507468c0c3c101e8d737c1337386786 - languageName: node - linkType: hard - -"nice-try@npm:^1.0.4": - version: 1.0.5 - resolution: "nice-try@npm:1.0.5" - checksum: 95568c1b73e1d0d4069a3e3061a2102d854513d37bcfda73300015b7ba4868d3b27c198d1dbbd8ebdef4112fc2ed9e895d4a0f2e1cce0bd334f2a1346dc9205f + checksum: 10c0/9faec009b8b403efbc407f45306d07de5cc58e09df5b00bdd55b01384cd18b0fd29a97aef6915428ba3b5abb0a5c132c3507468c0c3c101e8d737c1337386786 languageName: node linkType: hard "node-domexception@npm:^1.0.0": version: 1.0.0 resolution: "node-domexception@npm:1.0.0" - checksum: 5e5d63cda29856402df9472335af4bb13875e1927ad3be861dc5ebde38917aecbf9ae337923777af52a48c426b70148815e890a5d72760f1b4d758cc671b1a2b + checksum: 10c0/5e5d63cda29856402df9472335af4bb13875e1927ad3be861dc5ebde38917aecbf9ae337923777af52a48c426b70148815e890a5d72760f1b4d758cc671b1a2b languageName: node linkType: hard -"node-fetch@npm:^2.6.8": +"node-fetch@npm:^2.7.0": version: 2.7.0 resolution: "node-fetch@npm:2.7.0" dependencies: @@ -5318,7 +6755,7 @@ __metadata: peerDependenciesMeta: encoding: optional: true - checksum: b55786b6028208e6fbe594ccccc213cab67a72899c9234eb59dba51062a299ea853210fcf526998eaa2867b0963ad72338824450905679ff0fa304b8c5093ae8 + checksum: 10c0/b55786b6028208e6fbe594ccccc213cab67a72899c9234eb59dba51062a299ea853210fcf526998eaa2867b0963ad72338824450905679ff0fa304b8c5093ae8 languageName: node linkType: hard @@ -5329,7 +6766,7 @@ __metadata: data-uri-to-buffer: "npm:^4.0.0" fetch-blob: "npm:^3.1.4" formdata-polyfill: "npm:^4.0.10" - checksum: f3d5e56190562221398c9f5750198b34cf6113aa304e34ee97c94fd300ec578b25b2c2906edba922050fce983338fde0d5d34fcb0fc3336ade5bd0e429ad7538 + checksum: 10c0/f3d5e56190562221398c9f5750198b34cf6113aa304e34ee97c94fd300ec578b25b2c2906edba922050fce983338fde0d5d34fcb0fc3336ade5bd0e429ad7538 languageName: node linkType: hard @@ -5349,7 +6786,21 @@ __metadata: which: "npm:^4.0.0" bin: node-gyp: bin/node-gyp.js - checksum: abddfff7d873312e4ed4a5fb75ce893a5c4fb69e7fcb1dfa71c28a6b92a7f1ef6b62790dffb39181b5a82728ba8f2f32d229cf8cbe66769fe02cea7db4a555aa + checksum: 10c0/abddfff7d873312e4ed4a5fb75ce893a5c4fb69e7fcb1dfa71c28a6b92a7f1ef6b62790dffb39181b5a82728ba8f2f32d229cf8cbe66769fe02cea7db4a555aa + languageName: node + linkType: hard + +"node-int64@npm:^0.4.0": + version: 0.4.0 + resolution: "node-int64@npm:0.4.0" + checksum: 10c0/a6a4d8369e2f2720e9c645255ffde909c0fbd41c92ea92a5607fc17055955daac99c1ff589d421eee12a0d24e99f7bfc2aabfeb1a4c14742f6c099a51863f31a + languageName: node + linkType: hard + +"node-releases@npm:^2.0.18": + version: 2.0.18 + resolution: "node-releases@npm:2.0.18" + checksum: 10c0/786ac9db9d7226339e1dc84bbb42007cb054a346bd9257e6aa154d294f01bc6a6cddb1348fa099f079be6580acbb470e3c048effd5f719325abd0179e566fd27 languageName: node linkType: hard @@ -5360,31 +6811,18 @@ __metadata: abbrev: "npm:^2.0.0" bin: nopt: bin/nopt.js - checksum: 9bd7198df6f16eb29ff16892c77bcf7f0cc41f9fb5c26280ac0def2cf8cf319f3b821b3af83eba0e74c85807cc430a16efe0db58fe6ae1f41e69519f585b6aff + checksum: 10c0/9bd7198df6f16eb29ff16892c77bcf7f0cc41f9fb5c26280ac0def2cf8cf319f3b821b3af83eba0e74c85807cc430a16efe0db58fe6ae1f41e69519f585b6aff languageName: node linkType: hard -"normalize-package-data@npm:^2.3.2, normalize-package-data@npm:^2.5.0": - version: 2.5.0 - resolution: "normalize-package-data@npm:2.5.0" - dependencies: - hosted-git-info: "npm:^2.1.4" - resolve: "npm:^1.10.0" - semver: "npm:2 || 3 || 4 || 5" - validate-npm-package-license: "npm:^3.0.1" - checksum: 357cb1646deb42f8eb4c7d42c4edf0eec312f3628c2ef98501963cc4bbe7277021b2b1d977f982b2edce78f5a1014613ce9cf38085c3df2d76730481357ca504 - languageName: node - linkType: hard - -"normalize-package-data@npm:^3.0.0, normalize-package-data@npm:^3.0.3": - version: 3.0.3 - resolution: "normalize-package-data@npm:3.0.3" +"nopt@npm:^7.2.1": + version: 7.2.1 + resolution: "nopt@npm:7.2.1" dependencies: - hosted-git-info: "npm:^4.0.1" - is-core-module: "npm:^2.5.0" - semver: "npm:^7.3.4" - validate-npm-package-license: "npm:^3.0.1" - checksum: e5d0f739ba2c465d41f77c9d950e291ea4af78f8816ddb91c5da62257c40b76d8c83278b0d08ffbcd0f187636ebddad20e181e924873916d03e6e5ea2ef026be + abbrev: "npm:^2.0.0" + bin: + nopt: bin/nopt.js + checksum: 10c0/a069c7c736767121242037a22a788863accfa932ab285a1eb569eb8cd534b09d17206f68c37f096ae785647435e0c5a5a0a67b42ec743e481a455e5ae6a6df81 languageName: node linkType: hard @@ -5396,14 +6834,25 @@ __metadata: is-core-module: "npm:^2.8.1" semver: "npm:^7.3.5" validate-npm-package-license: "npm:^3.0.4" - checksum: dbd7c712c1e016a4b682640a53b44e9290c9db7b94355c71234bafee1534bef4c5dc3970c30c7ee2c4990a3c07e963e15e211b61624d58eb857d867ec71d3bb6 + checksum: 10c0/dbd7c712c1e016a4b682640a53b44e9290c9db7b94355c71234bafee1534bef4c5dc3970c30c7ee2c4990a3c07e963e15e211b61624d58eb857d867ec71d3bb6 + languageName: node + linkType: hard + +"normalize-package-data@npm:^6.0.1": + version: 6.0.2 + resolution: "normalize-package-data@npm:6.0.2" + dependencies: + hosted-git-info: "npm:^7.0.0" + semver: "npm:^7.3.5" + validate-npm-package-license: "npm:^3.0.4" + checksum: 10c0/7e32174e7f5575ede6d3d449593247183880122b4967d4ae6edb28cea5769ca025defda54fc91ec0e3c972fdb5ab11f9284606ba278826171b264cb16a9311ef languageName: node linkType: hard -"normalize-path@npm:^3.0.0, normalize-path@npm:~3.0.0": +"normalize-path@npm:^3.0.0": version: 3.0.0 resolution: "normalize-path@npm:3.0.0" - checksum: e008c8142bcc335b5e38cf0d63cfd39d6cf2d97480af9abdbe9a439221fd4d749763bab492a8ee708ce7a194bb00c9da6d0a115018672310850489137b3da046 + checksum: 10c0/e008c8142bcc335b5e38cf0d63cfd39d6cf2d97480af9abdbe9a439221fd4d749763bab492a8ee708ce7a194bb00c9da6d0a115018672310850489137b3da046 languageName: node linkType: hard @@ -5412,7 +6861,7 @@ __metadata: resolution: "npm-bundled@npm:3.0.0" dependencies: npm-normalize-package-bin: "npm:^3.0.0" - checksum: 65fcc621ba6e183be2715e3bbbf29d85e65e986965f06ee5e96a293d62dfad59ee57a9dcdd1c591eab156e03d58b3c35926b4211ce792d683458e15bb9f642c7 + checksum: 10c0/65fcc621ba6e183be2715e3bbbf29d85e65e986965f06ee5e96a293d62dfad59ee57a9dcdd1c591eab156e03d58b3c35926b4211ce792d683458e15bb9f642c7 languageName: node linkType: hard @@ -5421,18 +6870,18 @@ __metadata: resolution: "npm-install-checks@npm:6.3.0" dependencies: semver: "npm:^7.1.1" - checksum: b046ef1de9b40f5d3a9831ce198e1770140a1c3f253dae22eb7b06045191ef79f18f1dcc15a945c919b3c161426861a28050abd321bf439190185794783b6452 + checksum: 10c0/b046ef1de9b40f5d3a9831ce198e1770140a1c3f253dae22eb7b06045191ef79f18f1dcc15a945c919b3c161426861a28050abd321bf439190185794783b6452 languageName: node linkType: hard "npm-normalize-package-bin@npm:^3.0.0": version: 3.0.1 resolution: "npm-normalize-package-bin@npm:3.0.1" - checksum: f1831a7f12622840e1375c785c3dab7b1d82dd521211c17ee5e9610cd1a34d8b232d3fdeebf50c170eddcb321d2c644bf73dbe35545da7d588c6b3fa488db0a5 + checksum: 10c0/f1831a7f12622840e1375c785c3dab7b1d82dd521211c17ee5e9610cd1a34d8b232d3fdeebf50c170eddcb321d2c644bf73dbe35545da7d588c6b3fa488db0a5 languageName: node linkType: hard -"npm-package-arg@npm:^11.0.0, npm-package-arg@npm:^11.0.1": +"npm-package-arg@npm:^11.0.0": version: 11.0.1 resolution: "npm-package-arg@npm:11.0.1" dependencies: @@ -5440,7 +6889,19 @@ __metadata: proc-log: "npm:^3.0.0" semver: "npm:^7.3.5" validate-npm-package-name: "npm:^5.0.0" - checksum: f5bc4056ffe46497847fb31e349c834efe01d36d170926d1032443e183219d5e6ce75a49c1d398caf2236d3a69180597d255bff685c68d6a81f2eac96262b94d + checksum: 10c0/f5bc4056ffe46497847fb31e349c834efe01d36d170926d1032443e183219d5e6ce75a49c1d398caf2236d3a69180597d255bff685c68d6a81f2eac96262b94d + languageName: node + linkType: hard + +"npm-package-arg@npm:^11.0.2, npm-package-arg@npm:^11.0.3": + version: 11.0.3 + resolution: "npm-package-arg@npm:11.0.3" + dependencies: + hosted-git-info: "npm:^7.0.0" + proc-log: "npm:^4.0.0" + semver: "npm:^7.3.5" + validate-npm-package-name: "npm:^5.0.0" + checksum: 10c0/e18333485e05c3a8774f4b5701ef74f4799533e650b70a68ca8dd697666c9a8d46932cb765fc593edce299521033bd4025a40323d5240cea8a393c784c0c285a languageName: node linkType: hard @@ -5449,7 +6910,16 @@ __metadata: resolution: "npm-packlist@npm:8.0.0" dependencies: ignore-walk: "npm:^6.0.0" - checksum: 0085e64695f10c8d377d9f2f8eaecb06ee41881bfc2e6f1996578b016fc62f873cc76ad90796d3b41712a5252d2795ecb374954846346ab5d2636b1c2bc65aa2 + checksum: 10c0/0085e64695f10c8d377d9f2f8eaecb06ee41881bfc2e6f1996578b016fc62f873cc76ad90796d3b41712a5252d2795ecb374954846346ab5d2636b1c2bc65aa2 + languageName: node + linkType: hard + +"npm-packlist@npm:^8.0.2": + version: 8.0.2 + resolution: "npm-packlist@npm:8.0.2" + dependencies: + ignore-walk: "npm:^6.0.4" + checksum: 10c0/ac3140980b1475c2e9acd3d0ca1acd0f8660c357aed357f1a4ebff2270975e0280a3b1c4938e2f16bd68217853ceb5725cf8779ec3752dfcc546582751ceedff languageName: node linkType: hard @@ -5461,43 +6931,44 @@ __metadata: npm-normalize-package-bin: "npm:^3.0.0" npm-package-arg: "npm:^11.0.0" semver: "npm:^7.3.5" - checksum: 930859b70fb7b8cd8aee1c9819c2fbe95db5ae246398fbd6eaa819793675e36be97da2b4d19e1b56a913a016f7a0a33070cd3ed363ad522d5dbced9c0d94d037 + checksum: 10c0/930859b70fb7b8cd8aee1c9819c2fbe95db5ae246398fbd6eaa819793675e36be97da2b4d19e1b56a913a016f7a0a33070cd3ed363ad522d5dbced9c0d94d037 + languageName: node + linkType: hard + +"npm-pick-manifest@npm:^9.0.1": + version: 9.1.0 + resolution: "npm-pick-manifest@npm:9.1.0" + dependencies: + npm-install-checks: "npm:^6.0.0" + npm-normalize-package-bin: "npm:^3.0.0" + npm-package-arg: "npm:^11.0.0" + semver: "npm:^7.3.5" + checksum: 10c0/8765f4199755b381323da2bff2202b4b15b59f59dba0d1be3f2f793b591321cd19e1b5a686ef48d9753a6bd4868550da632541a45dfb61809d55664222d73e44 languageName: node linkType: hard -"npm-registry-fetch@npm:^16.0.0, npm-registry-fetch@npm:^16.1.0": - version: 16.1.0 - resolution: "npm-registry-fetch@npm:16.1.0" +"npm-registry-fetch@npm:^17.0.0, npm-registry-fetch@npm:^17.0.1, npm-registry-fetch@npm:^17.1.0": + version: 17.1.0 + resolution: "npm-registry-fetch@npm:17.1.0" dependencies: + "@npmcli/redact": "npm:^2.0.0" + jsonparse: "npm:^1.3.1" make-fetch-happen: "npm:^13.0.0" minipass: "npm:^7.0.2" minipass-fetch: "npm:^3.0.0" - minipass-json-stream: "npm:^1.0.1" minizlib: "npm:^2.1.2" npm-package-arg: "npm:^11.0.0" - proc-log: "npm:^3.0.0" - checksum: b1108c256a95ed8cb57710a4c8970cf5814c6f00fbf51b045d53ad75a6fc00793ac6c1de1134bb0f35fa53d6f26a0ff29098d67c48ad7656451bc75f1f5e3c8c + proc-log: "npm:^4.0.0" + checksum: 10c0/3f66214e106609fd2e92704e62ac929cba1424d4013fec50f783afbb81168b0dc14457d35c1716a77e30fc482c3576bdc4e4bc5c84a714cac59cf98f96a17f47 languageName: node linkType: hard -"npm-run-all@npm:^4.1.5": - version: 4.1.5 - resolution: "npm-run-all@npm:4.1.5" +"npm-run-path@npm:^4.0.1": + version: 4.0.1 + resolution: "npm-run-path@npm:4.0.1" dependencies: - ansi-styles: "npm:^3.2.1" - chalk: "npm:^2.4.1" - cross-spawn: "npm:^6.0.5" - memorystream: "npm:^0.3.1" - minimatch: "npm:^3.0.4" - pidtree: "npm:^0.3.0" - read-pkg: "npm:^3.0.0" - shell-quote: "npm:^1.6.1" - string.prototype.padend: "npm:^3.0.0" - bin: - npm-run-all: bin/npm-run-all/index.js - run-p: bin/run-p/index.js - run-s: bin/run-s/index.js - checksum: 736ee39bd35454d3efaa4a2e53eba6c523e2e17fba21a18edcce6b221f5cab62000bef16bb6ae8aff9e615831e6b0eb25ab51d52d60e6fa6f4ea880e4c6d31f4 + path-key: "npm:^3.0.0" + checksum: 10c0/6f9353a95288f8455cf64cbeb707b28826a7f29690244c1e4bb61ec573256e021b6ad6651b394eb1ccfd00d6ec50147253aba2c5fe58a57ceb111fad62c519ac languageName: node linkType: hard @@ -5506,33 +6977,21 @@ __metadata: resolution: "npm-run-path@npm:5.1.0" dependencies: path-key: "npm:^4.0.0" - checksum: ff6d77514489f47fa1c3b1311d09cd4b6d09a874cc1866260f9dea12cbaabda0436ed7f8c2ee44d147bf99a3af29307c6f63b0f83d242b0b6b0ab25dff2629e3 - languageName: node - linkType: hard - -"npmlog@npm:^7.0.1": - version: 7.0.1 - resolution: "npmlog@npm:7.0.1" - dependencies: - are-we-there-yet: "npm:^4.0.0" - console-control-strings: "npm:^1.1.0" - gauge: "npm:^5.0.0" - set-blocking: "npm:^2.0.0" - checksum: d4e6a2aaa7b5b5d2e2ed8f8ac3770789ca0691a49f3576b6a8c97d560a4c3305d2c233a9173d62be737e6e4506bf9e89debd6120a3843c1d37315c34f90fef71 + checksum: 10c0/ff6d77514489f47fa1c3b1311d09cd4b6d09a874cc1866260f9dea12cbaabda0436ed7f8c2ee44d147bf99a3af29307c6f63b0f83d242b0b6b0ab25dff2629e3 languageName: node linkType: hard "object-inspect@npm:^1.13.1, object-inspect@npm:^1.9.0": version: 1.13.1 resolution: "object-inspect@npm:1.13.1" - checksum: fad603f408e345c82e946abdf4bfd774260a5ed3e5997a0b057c44153ac32c7271ff19e3a5ae39c858da683ba045ccac2f65245c12763ce4e8594f818f4a648d + checksum: 10c0/fad603f408e345c82e946abdf4bfd774260a5ed3e5997a0b057c44153ac32c7271ff19e3a5ae39c858da683ba045ccac2f65245c12763ce4e8594f818f4a648d languageName: node linkType: hard "object-keys@npm:^1.1.1": version: 1.1.1 resolution: "object-keys@npm:1.1.1" - checksum: b11f7ccdbc6d406d1f186cdadb9d54738e347b2692a14439ca5ac70c225fa6db46db809711b78589866d47b25fc3e8dee0b4c722ac751e11180f9380e3d8601d + checksum: 10c0/b11f7ccdbc6d406d1f186cdadb9d54738e347b2692a14439ca5ac70c225fa6db46db809711b78589866d47b25fc3e8dee0b4c722ac751e11180f9380e3d8601d languageName: node linkType: hard @@ -5544,68 +7003,71 @@ __metadata: define-properties: "npm:^1.1.4" has-symbols: "npm:^1.0.3" object-keys: "npm:^1.1.1" - checksum: 2f286118c023e557757620e647b02e7c88d3d417e0c568fca0820de8ec9cca68928304854d5b03e99763eddad6e78a6716e2930f7e6372e4b9b843f3fd3056f3 + checksum: 10c0/2f286118c023e557757620e647b02e7c88d3d417e0c568fca0820de8ec9cca68928304854d5b03e99763eddad6e78a6716e2930f7e6372e4b9b843f3fd3056f3 languageName: node linkType: hard -"object.fromentries@npm:^2.0.7": - version: 2.0.7 - resolution: "object.fromentries@npm:2.0.7" +"object.assign@npm:^4.1.5": + version: 4.1.5 + resolution: "object.assign@npm:4.1.5" dependencies: - call-bind: "npm:^1.0.2" - define-properties: "npm:^1.2.0" - es-abstract: "npm:^1.22.1" - checksum: 071745c21f6fc9e6c914691f2532c1fb60ad967e5ddc52801d09958b5de926566299d07ae14466452a7efd29015f9145d6c09c573d93a0dc6f1683ee0ec2b93b + call-bind: "npm:^1.0.5" + define-properties: "npm:^1.2.1" + has-symbols: "npm:^1.0.3" + object-keys: "npm:^1.1.1" + checksum: 10c0/60108e1fa2706f22554a4648299b0955236c62b3685c52abf4988d14fffb0e7731e00aa8c6448397e3eb63d087dcc124a9f21e1980f36d0b2667f3c18bacd469 languageName: node linkType: hard -"object.groupby@npm:^1.0.1": - version: 1.0.1 - resolution: "object.groupby@npm:1.0.1" +"object.fromentries@npm:^2.0.8": + version: 2.0.8 + resolution: "object.fromentries@npm:2.0.8" dependencies: - call-bind: "npm:^1.0.2" - define-properties: "npm:^1.2.0" - es-abstract: "npm:^1.22.1" - get-intrinsic: "npm:^1.2.1" - checksum: 61e41fbf08cc04ed860363db9629eedeaa590fce243c0960e948fd7b11f78a9d4350065c339936d118a2dd8775d7259e26207340cc8ce688bec66cb615fec6fe + call-bind: "npm:^1.0.7" + define-properties: "npm:^1.2.1" + es-abstract: "npm:^1.23.2" + es-object-atoms: "npm:^1.0.0" + checksum: 10c0/cd4327e6c3369cfa805deb4cbbe919bfb7d3aeebf0bcaba291bb568ea7169f8f8cdbcabe2f00b40db0c20cd20f08e11b5f3a5a36fb7dd3fe04850c50db3bf83b languageName: node linkType: hard -"object.values@npm:^1.1.7": - version: 1.1.7 - resolution: "object.values@npm:1.1.7" +"object.groupby@npm:^1.0.3": + version: 1.0.3 + resolution: "object.groupby@npm:1.0.3" dependencies: - call-bind: "npm:^1.0.2" - define-properties: "npm:^1.2.0" - es-abstract: "npm:^1.22.1" - checksum: e869d6a37fb7afdd0054dea49036d6ccebb84854a8848a093bbd1bc516f53e690bba88f0bc3e83fdfa74c601469ee6989c9b13359cda9604144c6e732fad3b6b + call-bind: "npm:^1.0.7" + define-properties: "npm:^1.2.1" + es-abstract: "npm:^1.23.2" + checksum: 10c0/60d0455c85c736fbfeda0217d1a77525956f76f7b2495edeca9e9bbf8168a45783199e77b894d30638837c654d0cc410e0e02cbfcf445bc8de71c3da1ede6a9c languageName: node linkType: hard -"on-finished@npm:^2.3.0": - version: 2.4.1 - resolution: "on-finished@npm:2.4.1" +"object.values@npm:^1.2.0": + version: 1.2.0 + resolution: "object.values@npm:1.2.0" dependencies: - ee-first: "npm:1.1.1" - checksum: 46fb11b9063782f2d9968863d9cbba33d77aa13c17f895f56129c274318b86500b22af3a160fe9995aa41317efcd22941b6eba747f718ced08d9a73afdb087b4 + call-bind: "npm:^1.0.7" + define-properties: "npm:^1.2.1" + es-object-atoms: "npm:^1.0.0" + checksum: 10c0/15809dc40fd6c5529501324fec5ff08570b7d70fb5ebbe8e2b3901afec35cf2b3dc484d1210c6c642cd3e7e0a5e18dd1d6850115337fef46bdae14ab0cb18ac3 languageName: node linkType: hard -"once@npm:^1.3.0, once@npm:^1.4.0": +"once@npm:^1.3.0": version: 1.4.0 resolution: "once@npm:1.4.0" dependencies: wrappy: "npm:1" - checksum: 5d48aca287dfefabd756621c5dfce5c91a549a93e9fdb7b8246bc4c4790aa2ec17b34a260530474635147aeb631a2dcc8b32c613df0675f96041cbb8244517d0 + checksum: 10c0/5d48aca287dfefabd756621c5dfce5c91a549a93e9fdb7b8246bc4c4790aa2ec17b34a260530474635147aeb631a2dcc8b32c613df0675f96041cbb8244517d0 languageName: node linkType: hard -"onetime@npm:^5.1.0": +"onetime@npm:^5.1.2": version: 5.1.2 resolution: "onetime@npm:5.1.2" dependencies: mimic-fn: "npm:^2.1.0" - checksum: ffcef6fbb2692c3c40749f31ea2e22677a876daea92959b8a80b521d95cca7a668c884d8b2045d1d8ee7d56796aa405c405462af112a1477594cc63531baeb8f + checksum: 10c0/ffcef6fbb2692c3c40749f31ea2e22677a876daea92959b8a80b521d95cca7a668c884d8b2045d1d8ee7d56796aa405c405462af112a1477594cc63531baeb8f languageName: node linkType: hard @@ -5614,25 +7076,7 @@ __metadata: resolution: "onetime@npm:6.0.0" dependencies: mimic-fn: "npm:^4.0.0" - checksum: 4eef7c6abfef697dd4479345a4100c382d73c149d2d56170a54a07418c50816937ad09500e1ed1e79d235989d073a9bade8557122aee24f0576ecde0f392bb6c - languageName: node - linkType: hard - -"only@npm:~0.0.2": - version: 0.0.2 - resolution: "only@npm:0.0.2" - checksum: d26b1347835a5a9b17afbd889ed60de3d3ae14cdeca5ba008d86e6bf055466a431adc731b82e1e8ab24a3b8be5b5c2cdbc16e652d231d18cc1a5752320aaf0a0 - languageName: node - linkType: hard - -"open@npm:^8.0.2": - version: 8.4.2 - resolution: "open@npm:8.4.2" - dependencies: - define-lazy-prop: "npm:^2.0.0" - is-docker: "npm:^2.1.1" - is-wsl: "npm:^2.2.0" - checksum: bb6b3a58401dacdb0aad14360626faf3fb7fba4b77816b373495988b724fb48941cad80c1b65d62bb31a17609b2cd91c41a181602caea597ca80dfbcc27e84c9 + checksum: 10c0/4eef7c6abfef697dd4479345a4100c382d73c149d2d56170a54a07418c50816937ad09500e1ed1e79d235989d073a9bade8557122aee24f0576ecde0f392bb6c languageName: node linkType: hard @@ -5646,40 +7090,7 @@ __metadata: levn: "npm:^0.4.1" prelude-ls: "npm:^1.2.1" type-check: "npm:^0.4.0" - checksum: 66fba794d425b5be51353035cf3167ce6cfa049059cbb93229b819167687e0f48d2bc4603fcb21b091c99acb516aae1083624675b15c4765b2e4693a085e959c - languageName: node - linkType: hard - -"ora@npm:^5.4.1": - version: 5.4.1 - resolution: "ora@npm:5.4.1" - dependencies: - bl: "npm:^4.1.0" - chalk: "npm:^4.1.0" - cli-cursor: "npm:^3.1.0" - cli-spinners: "npm:^2.5.0" - is-interactive: "npm:^1.0.0" - is-unicode-supported: "npm:^0.1.0" - log-symbols: "npm:^4.1.0" - strip-ansi: "npm:^6.0.0" - wcwidth: "npm:^1.0.1" - checksum: 10ff14aace236d0e2f044193362b22edce4784add08b779eccc8f8ef97195cae1248db8ec1ec5f5ff076f91acbe573f5f42a98c19b78dba8c54eefff983cae85 - languageName: node - linkType: hard - -"os-tmpdir@npm:~1.0.2": - version: 1.0.2 - resolution: "os-tmpdir@npm:1.0.2" - checksum: f438450224f8e2687605a8dd318f0db694b6293c5d835ae509a69e97c8de38b6994645337e5577f5001115470414638978cc49da1cdcc25106dad8738dc69990 - languageName: node - linkType: hard - -"p-limit@npm:^1.1.0": - version: 1.3.0 - resolution: "p-limit@npm:1.3.0" - dependencies: - p-try: "npm:^1.0.0" - checksum: 5c1b1d53d180b2c7501efb04b7c817448e10efe1ba46f4783f8951994d5027e4cd88f36ad79af50546682594c4ebd11702ac4b9364c47f8074890e2acad0edee + checksum: 10c0/66fba794d425b5be51353035cf3167ce6cfa049059cbb93229b819167687e0f48d2bc4603fcb21b091c99acb516aae1083624675b15c4765b2e4693a085e959c languageName: node linkType: hard @@ -5688,25 +7099,34 @@ __metadata: resolution: "p-limit@npm:2.3.0" dependencies: p-try: "npm:^2.0.0" - checksum: 8da01ac53efe6a627080fafc127c873da40c18d87b3f5d5492d465bb85ec7207e153948df6b9cbaeb130be70152f874229b8242ee2be84c0794082510af97f12 + checksum: 10c0/8da01ac53efe6a627080fafc127c873da40c18d87b3f5d5492d465bb85ec7207e153948df6b9cbaeb130be70152f874229b8242ee2be84c0794082510af97f12 + languageName: node + linkType: hard + +"p-limit@npm:^3.0.2, p-limit@npm:^3.1.0": + version: 3.1.0 + resolution: "p-limit@npm:3.1.0" + dependencies: + yocto-queue: "npm:^0.1.0" + checksum: 10c0/9db675949dbdc9c3763c89e748d0ef8bdad0afbb24d49ceaf4c46c02c77d30db4e0652ed36d0a0a7a95154335fab810d95c86153105bb73b3a90448e2bb14e1a languageName: node linkType: hard -"p-limit@npm:^3.0.2": - version: 3.1.0 - resolution: "p-limit@npm:3.1.0" +"p-limit@npm:^4.0.0": + version: 4.0.0 + resolution: "p-limit@npm:4.0.0" dependencies: - yocto-queue: "npm:^0.1.0" - checksum: 9db675949dbdc9c3763c89e748d0ef8bdad0afbb24d49ceaf4c46c02c77d30db4e0652ed36d0a0a7a95154335fab810d95c86153105bb73b3a90448e2bb14e1a + yocto-queue: "npm:^1.0.0" + checksum: 10c0/a56af34a77f8df2ff61ddfb29431044557fcbcb7642d5a3233143ebba805fc7306ac1d448de724352861cb99de934bc9ab74f0d16fe6a5460bdbdf938de875ad languageName: node linkType: hard -"p-locate@npm:^2.0.0": - version: 2.0.0 - resolution: "p-locate@npm:2.0.0" +"p-limit@npm:^6.1.0": + version: 6.1.0 + resolution: "p-limit@npm:6.1.0" dependencies: - p-limit: "npm:^1.1.0" - checksum: 82da4be88fb02fd29175e66021610c881938d3cc97c813c71c1a605fac05617d57fd5d3b337494a6106c0edb2a37c860241430851411f1b265108cead34aee67 + yocto-queue: "npm:^1.1.1" + checksum: 10c0/40af29461206185a81bdc971ed499d97ceb344114fd21420db95debd9c979b6c02d66a41c321246d09245a51e68410e13df92622cc8c0130f87c6bd81a15d777 languageName: node linkType: hard @@ -5715,7 +7135,7 @@ __metadata: resolution: "p-locate@npm:4.1.0" dependencies: p-limit: "npm:^2.2.0" - checksum: 1b476ad69ad7f6059744f343b26d51ce091508935c1dbb80c4e0a2f397ffce0ca3a1f9f5cd3c7ce19d7929a09719d5c65fe70d8ee289c3f267cd36f2881813e9 + checksum: 10c0/1b476ad69ad7f6059744f343b26d51ce091508935c1dbb80c4e0a2f397ffce0ca3a1f9f5cd3c7ce19d7929a09719d5c65fe70d8ee289c3f267cd36f2881813e9 languageName: node linkType: hard @@ -5724,7 +7144,16 @@ __metadata: resolution: "p-locate@npm:5.0.0" dependencies: p-limit: "npm:^3.0.2" - checksum: 2290d627ab7903b8b70d11d384fee714b797f6040d9278932754a6860845c4d3190603a0772a663c8cb5a7b21d1b16acb3a6487ebcafa9773094edc3dfe6009a + checksum: 10c0/2290d627ab7903b8b70d11d384fee714b797f6040d9278932754a6860845c4d3190603a0772a663c8cb5a7b21d1b16acb3a6487ebcafa9773094edc3dfe6009a + languageName: node + linkType: hard + +"p-locate@npm:^6.0.0": + version: 6.0.0 + resolution: "p-locate@npm:6.0.0" + dependencies: + p-limit: "npm:^4.0.0" + checksum: 10c0/d72fa2f41adce59c198270aa4d3c832536c87a1806e0f69dffb7c1a7ca998fb053915ca833d90f166a8c082d3859eabfed95f01698a3214c20df6bb8de046312 languageName: node linkType: hard @@ -5733,94 +7162,79 @@ __metadata: resolution: "p-map@npm:4.0.0" dependencies: aggregate-error: "npm:^3.0.0" - checksum: 592c05bd6262c466ce269ff172bb8de7c6975afca9b50c975135b974e9bdaafbfe80e61aaaf5be6d1200ba08b30ead04b88cfa7e25ff1e3b93ab28c9f62a2c75 + checksum: 10c0/592c05bd6262c466ce269ff172bb8de7c6975afca9b50c975135b974e9bdaafbfe80e61aaaf5be6d1200ba08b30ead04b88cfa7e25ff1e3b93ab28c9f62a2c75 languageName: node linkType: hard -"p-map@npm:^6.0.0": - version: 6.0.0 - resolution: "p-map@npm:6.0.0" - checksum: 3fcfccf464d0f4a9a8c8a2d48f3f0933bdbdb0628158c1fb3c240dc0bbf20c0cf8115dea57300aa82baefff7b9bd1b9daf13a11a6578f15a629fc5bda78d780d +"p-map@npm:^7.0.2": + version: 7.0.2 + resolution: "p-map@npm:7.0.2" + checksum: 10c0/e10548036648d1c043153f9997112fe5a7de54a319210238628f8ea22ee36587fd6ee740811f88b60bbf29d932e23ae35df7fced40df477116c84c18e797047e languageName: node linkType: hard "p-pipe@npm:^4.0.0": version: 4.0.0 resolution: "p-pipe@npm:4.0.0" - checksum: 90c109a57cc8e4fb457bee88fe26cedc7b7b85350a0ea218f0654e6431ed6ca84c84726671696a32b867a4f3dff0c4ef92e4222d34a5998425335a66617ff5cb + checksum: 10c0/90c109a57cc8e4fb457bee88fe26cedc7b7b85350a0ea218f0654e6431ed6ca84c84726671696a32b867a4f3dff0c4ef92e4222d34a5998425335a66617ff5cb languageName: node linkType: hard -"p-queue@npm:^7.4.1": - version: 7.4.1 - resolution: "p-queue@npm:7.4.1" +"p-queue@npm:^8.0.1": + version: 8.0.1 + resolution: "p-queue@npm:8.0.1" dependencies: eventemitter3: "npm:^5.0.1" - p-timeout: "npm:^5.0.2" - checksum: 6dbd22780133bbf9cddd2be344609e23cb813f5c6f1693336a52da26631cf931702d5cfd01818b562079502f796b382fab0c1645124c81e2f509b739a35d1562 + p-timeout: "npm:^6.1.2" + checksum: 10c0/fe185bc8bbd32d17a5f6dba090077b1bb326b008b4ec9b0646c57a32a6984035aa8ece909a6d0de7f6c4640296dc288197f430e7394cdc76a26d862339494616 languageName: node linkType: hard "p-reduce@npm:^3.0.0": version: 3.0.0 resolution: "p-reduce@npm:3.0.0" - checksum: 794cd6c98ad246f6f41fa4b925e56c7d8759b92f67712f5f735418dc7b47cd9aadaecbbbedaea2df879fd9c5d7622ed0b22a2c090d2ec349cf0578485a660196 - languageName: node - linkType: hard - -"p-timeout@npm:^4.1.0": - version: 4.1.0 - resolution: "p-timeout@npm:4.1.0" - checksum: 25aaf13ae9ebfff4ab45591f6647f3bee1ecede073c367175fb0157c27efb170cfb51259a4d2e9118d2ca595453bc885f086ad0ca7476d1c26cee3d13a7c9f6d - languageName: node - linkType: hard - -"p-timeout@npm:^5.0.2": - version: 5.1.0 - resolution: "p-timeout@npm:5.1.0" - checksum: 1b026cf9d5878c64bec4341ca9cda8ec6b8b3aea8a57885ca0fe2b35753a20d767fb6f9d3aa41e1252f42bc95432c05ea33b6b18f271fb10bfb0789591850a41 + checksum: 10c0/794cd6c98ad246f6f41fa4b925e56c7d8759b92f67712f5f735418dc7b47cd9aadaecbbbedaea2df879fd9c5d7622ed0b22a2c090d2ec349cf0578485a660196 languageName: node linkType: hard -"p-try@npm:^1.0.0": - version: 1.0.0 - resolution: "p-try@npm:1.0.0" - checksum: 757ba31de5819502b80c447826fac8be5f16d3cb4fbf9bc8bc4971dba0682e84ac33e4b24176ca7058c69e29f64f34d8d9e9b08e873b7b7bb0aa89d620fa224a +"p-timeout@npm:^6.1.2": + version: 6.1.3 + resolution: "p-timeout@npm:6.1.3" + checksum: 10c0/6dcd1efc1a18afac08dd4f8e09797bbe635110e597d27026b478f884b867616871499427643a6b2e11f0404b2936d17db69da2b5e58d5fe99e1fac80a53f0250 languageName: node linkType: hard "p-try@npm:^2.0.0": version: 2.2.0 resolution: "p-try@npm:2.2.0" - checksum: c36c19907734c904b16994e6535b02c36c2224d433e01a2f1ab777237f4d86e6289fd5fd464850491e940379d4606ed850c03e0f9ab600b0ebddb511312e177f + checksum: 10c0/c36c19907734c904b16994e6535b02c36c2224d433e01a2f1ab777237f4d86e6289fd5fd464850491e940379d4606ed850c03e0f9ab600b0ebddb511312e177f languageName: node linkType: hard -"pacote@npm:^17.0.0, pacote@npm:^17.0.4": - version: 17.0.4 - resolution: "pacote@npm:17.0.4" +"pacote@npm:^18.0.0, pacote@npm:^18.0.6": + version: 18.0.6 + resolution: "pacote@npm:18.0.6" dependencies: "@npmcli/git": "npm:^5.0.0" "@npmcli/installed-package-contents": "npm:^2.0.1" + "@npmcli/package-json": "npm:^5.1.0" "@npmcli/promise-spawn": "npm:^7.0.0" - "@npmcli/run-script": "npm:^7.0.0" + "@npmcli/run-script": "npm:^8.0.0" cacache: "npm:^18.0.0" fs-minipass: "npm:^3.0.0" minipass: "npm:^7.0.2" npm-package-arg: "npm:^11.0.0" npm-packlist: "npm:^8.0.0" npm-pick-manifest: "npm:^9.0.0" - npm-registry-fetch: "npm:^16.0.0" - proc-log: "npm:^3.0.0" + npm-registry-fetch: "npm:^17.0.0" + proc-log: "npm:^4.0.0" promise-retry: "npm:^2.0.1" - read-package-json: "npm:^7.0.0" - read-package-json-fast: "npm:^3.0.0" - sigstore: "npm:^2.0.0" + sigstore: "npm:^2.2.0" ssri: "npm:^10.0.0" tar: "npm:^6.1.11" bin: - pacote: lib/bin.js - checksum: 7dab80013eed5e652b4b260a032bea617bfe14a59fb0e7cc9e4f1404f940f67493c52c6b32fbd73a373aa8e8668a8930d6f41c5d8ce6615edd4d1b08df237d6b + pacote: bin/index.js + checksum: 10c0/d80907375dd52a521255e0debca1ba9089ad8fd7acdf16c5a5db2ea2a5bb23045e2bcf08d1648b1ebc40fcc889657db86ff6187ff5f8d2fc312cd6ad1ec4c6ac languageName: node linkType: hard @@ -5829,7 +7243,7 @@ __metadata: resolution: "parent-module@npm:1.0.1" dependencies: callsites: "npm:^3.0.0" - checksum: c63d6e80000d4babd11978e0d3fee386ca7752a02b035fd2435960ffaa7219dc42146f07069fb65e6e8bf1caef89daf9af7535a39bddf354d78bf50d8294f556 + checksum: 10c0/c63d6e80000d4babd11978e0d3fee386ca7752a02b035fd2435960ffaa7219dc42146f07069fb65e6e8bf1caef89daf9af7535a39bddf354d78bf50d8294f556 languageName: node linkType: hard @@ -5840,21 +7254,11 @@ __metadata: json-parse-even-better-errors: "npm:^3.0.0" just-diff: "npm:^6.0.0" just-diff-apply: "npm:^5.2.0" - checksum: 610b37181229ce3e945125c3a9548ec24d1de2d697a7ea3ef0f2660cccc6613715c2ba4bdbaf37c565133d6b61758703618a2c63d1ee29f97fd33c70a8aae323 - languageName: node - linkType: hard - -"parse-json@npm:^4.0.0": - version: 4.0.0 - resolution: "parse-json@npm:4.0.0" - dependencies: - error-ex: "npm:^1.3.1" - json-parse-better-errors: "npm:^1.0.1" - checksum: 8d80790b772ccb1bcea4e09e2697555e519d83d04a77c2b4237389b813f82898943a93ffff7d0d2406203bdd0c30dcf95b1661e3a53f83d0e417f053957bef32 + checksum: 10c0/610b37181229ce3e945125c3a9548ec24d1de2d697a7ea3ef0f2660cccc6613715c2ba4bdbaf37c565133d6b61758703618a2c63d1ee29f97fd33c70a8aae323 languageName: node linkType: hard -"parse-json@npm:^5.0.0, parse-json@npm:^5.2.0": +"parse-json@npm:^5.2.0": version: 5.2.0 resolution: "parse-json@npm:5.2.0" dependencies: @@ -5862,7 +7266,7 @@ __metadata: error-ex: "npm:^1.3.1" json-parse-even-better-errors: "npm:^2.3.0" lines-and-columns: "npm:^1.1.6" - checksum: 77947f2253005be7a12d858aedbafa09c9ae39eb4863adf330f7b416ca4f4a08132e453e08de2db46459256fb66afaac5ee758b44fe6541b7cdaf9d252e59585 + checksum: 10c0/77947f2253005be7a12d858aedbafa09c9ae39eb4863adf330f7b416ca4f4a08132e453e08de2db46459256fb66afaac5ee758b44fe6541b7cdaf9d252e59585 languageName: node linkType: hard @@ -5875,7 +7279,18 @@ __metadata: json-parse-even-better-errors: "npm:^3.0.0" lines-and-columns: "npm:^2.0.3" type-fest: "npm:^3.8.0" - checksum: a85ebc7430af7763fa52eb456d7efd35c35be5b06f04d8d80c37d0d33312ac6cdff12647acb9c95448dcc8b907dfafa81fb126e094aa132b0abc2a71b9df51d5 + checksum: 10c0/a85ebc7430af7763fa52eb456d7efd35c35be5b06f04d8d80c37d0d33312ac6cdff12647acb9c95448dcc8b907dfafa81fb126e094aa132b0abc2a71b9df51d5 + languageName: node + linkType: hard + +"parse-json@npm:^8.0.0": + version: 8.1.0 + resolution: "parse-json@npm:8.1.0" + dependencies: + "@babel/code-frame": "npm:^7.22.13" + index-to-position: "npm:^0.1.2" + type-fest: "npm:^4.7.1" + checksum: 10c0/39a49acafc1c41a763df2599a826eb77873a44b098a5f2ba548843229b334a16ff9d613d0381328e58031b0afaabc18ed2a01337a6522911ac7a81828df58bcb languageName: node linkType: hard @@ -5884,7 +7299,7 @@ __metadata: resolution: "parse-path@npm:7.0.0" dependencies: protocols: "npm:^2.0.0" - checksum: e7646f6b998b083bbd40102643d803557ce4ae18ae1704e6cc7ae2525ea7c5400f4a3635aca3244cfe65ce4dd0ff77db1142dde4d080e8a80c364c4b3e8fe8d2 + checksum: 10c0/e7646f6b998b083bbd40102643d803557ce4ae18ae1704e6cc7ae2525ea7c5400f4a3635aca3244cfe65ce4dd0ff77db1142dde4d080e8a80c364c4b3e8fe8d2 languageName: node linkType: hard @@ -5893,70 +7308,49 @@ __metadata: resolution: "parse-url@npm:8.1.0" dependencies: parse-path: "npm:^7.0.0" - checksum: 68b95afdf4bbf72e57c7ab66f8757c935fff888f7e2b0f1e06098b4faa19e06b6b743bddaed5bc8df4f0c2de6fc475355d787373b2fdd40092be9e4e4b996648 - languageName: node - linkType: hard - -"parse5@npm:^6.0.1": - version: 6.0.1 - resolution: "parse5@npm:6.0.1" - checksum: 595821edc094ecbcfb9ddcb46a3e1fe3a718540f8320eff08b8cf6742a5114cce2d46d45f95c26191c11b184dcaf4e2960abcd9c5ed9eb9393ac9a37efcfdecb - languageName: node - linkType: hard - -"parseurl@npm:^1.3.2": - version: 1.3.3 - resolution: "parseurl@npm:1.3.3" - checksum: 90dd4760d6f6174adb9f20cf0965ae12e23879b5f5464f38e92fce8073354341e4b3b76fa3d878351efe7d01e617121955284cfd002ab087fba1a0726ec0b4f5 - languageName: node - linkType: hard - -"path-exists@npm:^3.0.0": - version: 3.0.0 - resolution: "path-exists@npm:3.0.0" - checksum: 17d6a5664bc0a11d48e2b2127d28a0e58822c6740bde30403f08013da599182289c56518bec89407e3f31d3c2b6b296a4220bc3f867f0911fee6952208b04167 + checksum: 10c0/68b95afdf4bbf72e57c7ab66f8757c935fff888f7e2b0f1e06098b4faa19e06b6b743bddaed5bc8df4f0c2de6fc475355d787373b2fdd40092be9e4e4b996648 languageName: node linkType: hard "path-exists@npm:^4.0.0": version: 4.0.0 resolution: "path-exists@npm:4.0.0" - checksum: 8c0bd3f5238188197dc78dced15207a4716c51cc4e3624c44fc97acf69558f5ebb9a2afff486fe1b4ee148e0c133e96c5e11a9aa5c48a3006e3467da070e5e1b + checksum: 10c0/8c0bd3f5238188197dc78dced15207a4716c51cc4e3624c44fc97acf69558f5ebb9a2afff486fe1b4ee148e0c133e96c5e11a9aa5c48a3006e3467da070e5e1b languageName: node linkType: hard -"path-is-absolute@npm:1.0.1, path-is-absolute@npm:^1.0.0": - version: 1.0.1 - resolution: "path-is-absolute@npm:1.0.1" - checksum: 127da03c82172a2a50099cddbf02510c1791fc2cc5f7713ddb613a56838db1e8168b121a920079d052e0936c23005562059756d653b7c544c53185efe53be078 +"path-exists@npm:^5.0.0": + version: 5.0.0 + resolution: "path-exists@npm:5.0.0" + checksum: 10c0/b170f3060b31604cde93eefdb7392b89d832dfbc1bed717c9718cbe0f230c1669b7e75f87e19901da2250b84d092989a0f9e44d2ef41deb09aa3ad28e691a40a languageName: node linkType: hard -"path-key@npm:^2.0.1": - version: 2.0.1 - resolution: "path-key@npm:2.0.1" - checksum: dd2044f029a8e58ac31d2bf34c34b93c3095c1481942960e84dd2faa95bbb71b9b762a106aead0646695330936414b31ca0bd862bf488a937ad17c8c5d73b32b +"path-is-absolute@npm:^1.0.0": + version: 1.0.1 + resolution: "path-is-absolute@npm:1.0.1" + checksum: 10c0/127da03c82172a2a50099cddbf02510c1791fc2cc5f7713ddb613a56838db1e8168b121a920079d052e0936c23005562059756d653b7c544c53185efe53be078 languageName: node linkType: hard -"path-key@npm:^3.1.0": +"path-key@npm:^3.0.0, path-key@npm:^3.1.0": version: 3.1.1 resolution: "path-key@npm:3.1.1" - checksum: 748c43efd5a569c039d7a00a03b58eecd1d75f3999f5a28303d75f521288df4823bc057d8784eb72358b2895a05f29a070bc9f1f17d28226cc4e62494cc58c4c + checksum: 10c0/748c43efd5a569c039d7a00a03b58eecd1d75f3999f5a28303d75f521288df4823bc057d8784eb72358b2895a05f29a070bc9f1f17d28226cc4e62494cc58c4c languageName: node linkType: hard "path-key@npm:^4.0.0": version: 4.0.0 resolution: "path-key@npm:4.0.0" - checksum: 794efeef32863a65ac312f3c0b0a99f921f3e827ff63afa5cb09a377e202c262b671f7b3832a4e64731003fa94af0263713962d317b9887bd1e0c48a342efba3 + checksum: 10c0/794efeef32863a65ac312f3c0b0a99f921f3e827ff63afa5cb09a377e202c262b671f7b3832a4e64731003fa94af0263713962d317b9887bd1e0c48a342efba3 languageName: node linkType: hard "path-parse@npm:^1.0.7": version: 1.0.7 resolution: "path-parse@npm:1.0.7" - checksum: 11ce261f9d294cc7a58d6a574b7f1b935842355ec66fba3c3fd79e0f036462eaf07d0aa95bb74ff432f9afef97ce1926c720988c6a7451d8a584930ae7de86e1 + checksum: 10c0/11ce261f9d294cc7a58d6a574b7f1b935842355ec66fba3c3fd79e0f036462eaf07d0aa95bb74ff432f9afef97ce1926c720988c6a7451d8a584930ae7de86e1 languageName: node linkType: hard @@ -5966,67 +7360,49 @@ __metadata: dependencies: lru-cache: "npm:^9.1.1 || ^10.0.0" minipass: "npm:^5.0.0 || ^6.0.2 || ^7.0.0" - checksum: e5dc78a7348d25eec61ab166317e9e9c7b46818aa2c2b9006c507a6ff48c672d011292d9662527213e558f5652ce0afcc788663a061d8b59ab495681840c0c1e - languageName: node - linkType: hard - -"path-type@npm:^3.0.0": - version: 3.0.0 - resolution: "path-type@npm:3.0.0" - dependencies: - pify: "npm:^3.0.0" - checksum: 1332c632f1cac15790ebab8dd729b67ba04fc96f81647496feb1c2975d862d046f41e4b975dbd893048999b2cc90721f72924ad820acc58c78507ba7141a8e56 + checksum: 10c0/e5dc78a7348d25eec61ab166317e9e9c7b46818aa2c2b9006c507a6ff48c672d011292d9662527213e558f5652ce0afcc788663a061d8b59ab495681840c0c1e languageName: node linkType: hard "path-type@npm:^4.0.0": version: 4.0.0 resolution: "path-type@npm:4.0.0" - checksum: 666f6973f332f27581371efaf303fd6c272cc43c2057b37aa99e3643158c7e4b2626549555d88626e99ea9e046f82f32e41bbde5f1508547e9a11b149b52387c + checksum: 10c0/666f6973f332f27581371efaf303fd6c272cc43c2057b37aa99e3643158c7e4b2626549555d88626e99ea9e046f82f32e41bbde5f1508547e9a11b149b52387c languageName: node linkType: hard -"path-type@npm:^5.0.0": - version: 5.0.0 - resolution: "path-type@npm:5.0.0" - checksum: e8f4b15111bf483900c75609e5e74e3fcb79f2ddb73e41470028fcd3e4b5162ec65da9907be077ee5012c18801ff7fffb35f9f37a077f3f81d85a0b7d6578efd +"picocolors@npm:^1.0.0, picocolors@npm:^1.1.0": + version: 1.1.1 + resolution: "picocolors@npm:1.1.1" + checksum: 10c0/e2e3e8170ab9d7c7421969adaa7e1b31434f789afb9b3f115f6b96d91945041ac3ceb02e9ec6fe6510ff036bcc0bf91e69a1772edc0b707e12b19c0f2d6bcf58 languageName: node linkType: hard -"picomatch@npm:^2.0.4, picomatch@npm:^2.2.1, picomatch@npm:^2.2.2, picomatch@npm:^2.3.1": +"picomatch@npm:^2.0.4, picomatch@npm:^2.2.3, picomatch@npm:^2.3.1": version: 2.3.1 resolution: "picomatch@npm:2.3.1" - checksum: 26c02b8d06f03206fc2ab8d16f19960f2ff9e81a658f831ecb656d8f17d9edc799e8364b1f4a7873e89d9702dff96204be0fa26fe4181f6843f040f819dac4be - languageName: node - linkType: hard - -"pidtree@npm:^0.3.0": - version: 0.3.1 - resolution: "pidtree@npm:0.3.1" - bin: - pidtree: bin/pidtree.js - checksum: cd69b0182f749f45ab48584e3442c48c5dc4512502c18d5b0147a33b042c41a4db4269b9ce2f7c48f11833ee5e79d81f5ebc6f7bf8372d4ea55726f60dc505a1 + checksum: 10c0/26c02b8d06f03206fc2ab8d16f19960f2ff9e81a658f831ecb656d8f17d9edc799e8364b1f4a7873e89d9702dff96204be0fa26fe4181f6843f040f819dac4be languageName: node linkType: hard -"pify@npm:^2.3.0": - version: 2.3.0 - resolution: "pify@npm:2.3.0" - checksum: 551ff8ab830b1052633f59cb8adc9ae8407a436e06b4a9718bcb27dc5844b83d535c3a8512b388b6062af65a98c49bdc0dd523d8b2617b188f7c8fee457158dc - languageName: node - linkType: hard - -"pify@npm:^3.0.0": - version: 3.0.0 - resolution: "pify@npm:3.0.0" - checksum: fead19ed9d801f1b1fcd0638a1ac53eabbb0945bf615f2f8806a8b646565a04a1b0e7ef115c951d225f042cca388fdc1cd3add46d10d1ed6951c20bd2998af10 +"picomatch@npm:^4.0.2": + version: 4.0.2 + resolution: "picomatch@npm:4.0.2" + checksum: 10c0/7c51f3ad2bb42c776f49ebf964c644958158be30d0a510efd5a395e8d49cb5acfed5b82c0c5b365523ce18e6ab85013c9ebe574f60305892ec3fa8eee8304ccc languageName: node linkType: hard "pify@npm:^6.1.0": version: 6.1.0 resolution: "pify@npm:6.1.0" - checksum: 5744905e271d821ce1c96a615aecc857bfc0154a2f55cfd773e0a27478c1e1457dd69c932f2196cfa0d298cc4a2847edaf42b1ba600b95022ba5225c079443a6 + checksum: 10c0/5744905e271d821ce1c96a615aecc857bfc0154a2f55cfd773e0a27478c1e1457dd69c932f2196cfa0d298cc4a2847edaf42b1ba600b95022ba5225c079443a6 + languageName: node + linkType: hard + +"pirates@npm:^4.0.4": + version: 4.0.6 + resolution: "pirates@npm:4.0.6" + checksum: 10c0/00d5fa51f8dded94d7429700fb91a0c1ead00ae2c7fd27089f0c5b63e6eca36197fe46384631872690a66f390c5e27198e99006ab77ae472692ab9c2ca903f36 languageName: node linkType: hard @@ -6035,18 +7411,14 @@ __metadata: resolution: "pkg-dir@npm:4.2.0" dependencies: find-up: "npm:^4.0.0" - checksum: c56bda7769e04907a88423feb320babaed0711af8c436ce3e56763ab1021ba107c7b0cafb11cde7529f669cfc22bffcaebffb573645cbd63842ea9fb17cd7728 + checksum: 10c0/c56bda7769e04907a88423feb320babaed0711af8c436ce3e56763ab1021ba107c7b0cafb11cde7529f669cfc22bffcaebffb573645cbd63842ea9fb17cd7728 languageName: node linkType: hard -"portfinder@npm:^1.0.32": - version: 1.0.32 - resolution: "portfinder@npm:1.0.32" - dependencies: - async: "npm:^2.6.4" - debug: "npm:^3.2.7" - mkdirp: "npm:^0.5.6" - checksum: cef8b567b78aabccc59fe8e103bac8b394bb45a6a69be626608f099f454124c775aaf47b274c006332c07ab3f501cde55e49aaeb9d49d78d90362d776a565cbf +"possible-typed-array-names@npm:^1.0.0": + version: 1.0.0 + resolution: "possible-typed-array-names@npm:1.0.0" + checksum: 10c0/d9aa22d31f4f7680e20269db76791b41c3a32c01a373e25f8a4813b4d45f7456bfc2b6d68f752dc4aab0e0bb0721cb3d76fb678c9101cb7a16316664bc2c73fd languageName: node linkType: hard @@ -6056,65 +7428,76 @@ __metadata: dependencies: cssesc: "npm:^3.0.0" util-deprecate: "npm:^1.0.2" - checksum: 51f099b27f7c7198ea1826470ef0adfa58b3bd3f59b390fda123baa0134880a5fa9720137b6009c4c1373357b144f700b0edac73335d0067422063129371444e + checksum: 10c0/51f099b27f7c7198ea1826470ef0adfa58b3bd3f59b390fda123baa0134880a5fa9720137b6009c4c1373357b144f700b0edac73335d0067422063129371444e languageName: node linkType: hard "prelude-ls@npm:^1.2.1": version: 1.2.1 resolution: "prelude-ls@npm:1.2.1" - checksum: b00d617431e7886c520a6f498a2e14c75ec58f6d93ba48c3b639cf241b54232d90daa05d83a9e9b9fef6baa63cb7e1e4602c2372fea5bc169668401eb127d0cd + checksum: 10c0/b00d617431e7886c520a6f498a2e14c75ec58f6d93ba48c3b639cf241b54232d90daa05d83a9e9b9fef6baa63cb7e1e4602c2372fea5bc169668401eb127d0cd languageName: node linkType: hard -"prettier@npm:^3.1.0": - version: 3.1.0 - resolution: "prettier@npm:3.1.0" +"prettier@npm:^3.3.3": + version: 3.3.3 + resolution: "prettier@npm:3.3.3" bin: prettier: bin/prettier.cjs - checksum: a45ea70aa97fde162ea4c4aba3dfc7859aa6a732a1db34458d9535dc3c2c16d3bc3fb5689e6cd76aa835562555303b02d9449fd2e15af3b73c8053557e25c5b6 + checksum: 10c0/b85828b08e7505716324e4245549b9205c0cacb25342a030ba8885aba2039a115dbcf75a0b7ca3b37bc9d101ee61fab8113fc69ca3359f2a226f1ecc07ad2e26 + languageName: node + linkType: hard + +"pretty-format@npm:^29.0.0, pretty-format@npm:^29.7.0": + version: 29.7.0 + resolution: "pretty-format@npm:29.7.0" + dependencies: + "@jest/schemas": "npm:^29.6.3" + ansi-styles: "npm:^5.0.0" + react-is: "npm:^18.0.0" + checksum: 10c0/edc5ff89f51916f036c62ed433506b55446ff739358de77207e63e88a28ca2894caac6e73dcb68166a606e51c8087d32d400473e6a9fdd2dbe743f46c9c0276f languageName: node linkType: hard "proc-log@npm:^3.0.0": version: 3.0.0 resolution: "proc-log@npm:3.0.0" - checksum: f66430e4ff947dbb996058f6fd22de2c66612ae1a89b097744e17fb18a4e8e7a86db99eda52ccf15e53f00b63f4ec0b0911581ff2aac0355b625c8eac509b0dc + checksum: 10c0/f66430e4ff947dbb996058f6fd22de2c66612ae1a89b097744e17fb18a4e8e7a86db99eda52ccf15e53f00b63f4ec0b0911581ff2aac0355b625c8eac509b0dc languageName: node linkType: hard -"process-nextick-args@npm:~2.0.0": - version: 2.0.1 - resolution: "process-nextick-args@npm:2.0.1" - checksum: bec089239487833d46b59d80327a1605e1c5287eaad770a291add7f45fda1bb5e28b38e0e061add0a1d0ee0984788ce74fa394d345eed1c420cacf392c554367 +"proc-log@npm:^4.0.0, proc-log@npm:^4.1.0, proc-log@npm:^4.2.0": + version: 4.2.0 + resolution: "proc-log@npm:4.2.0" + checksum: 10c0/17db4757c2a5c44c1e545170e6c70a26f7de58feb985091fb1763f5081cab3d01b181fb2dd240c9f4a4255a1d9227d163d5771b7e69c9e49a561692db865efb9 languageName: node linkType: hard -"process@npm:^0.11.10": - version: 0.11.10 - resolution: "process@npm:0.11.10" - checksum: 40c3ce4b7e6d4b8c3355479df77aeed46f81b279818ccdc500124e6a5ab882c0cc81ff7ea16384873a95a74c4570b01b120f287abbdd4c877931460eca6084b3 +"proggy@npm:^2.0.0": + version: 2.0.0 + resolution: "proggy@npm:2.0.0" + checksum: 10c0/1bfc14fa95769e6dd7e91f9d3cae8feb61e6d833ed7210d87ee5413bfa068f4ee7468483da96b2f138c40a7e91a2307f5d5d2eb6de9761c21e266a34602e6a5f languageName: node linkType: hard "promise-all-reject-late@npm:^1.0.0": version: 1.0.1 resolution: "promise-all-reject-late@npm:1.0.1" - checksum: f1af0c7b0067e84d64751148ee5bb6c3e84f4a4d1316d6fe56261e1d2637cf71b49894bcbd2c6daf7d45afb1bc99efc3749be277c3e0518b70d0c5a29d037011 + checksum: 10c0/f1af0c7b0067e84d64751148ee5bb6c3e84f4a4d1316d6fe56261e1d2637cf71b49894bcbd2c6daf7d45afb1bc99efc3749be277c3e0518b70d0c5a29d037011 languageName: node linkType: hard -"promise-call-limit@npm:^1.0.2": - version: 1.0.2 - resolution: "promise-call-limit@npm:1.0.2" - checksum: 500aed321d7b9212da403db369551d7190c96c8937c3b2d15c6097d1037b17fb802c7decfbc8ba6bb937f1cc1ea291e5eba10ed9ea76adc0f398ab9f7d174a58 +"promise-call-limit@npm:^3.0.1": + version: 3.0.2 + resolution: "promise-call-limit@npm:3.0.2" + checksum: 10c0/1f984c16025925594d738833f5da7525b755f825a198d5a0cac1c0280b4f38ecc3c32c1f4e5ef614ddcfd6718c1a8c3f98a3290ae6f421342281c9a88c488bf7 languageName: node linkType: hard "promise-inflight@npm:^1.0.1": version: 1.0.1 resolution: "promise-inflight@npm:1.0.1" - checksum: d179d148d98fbff3d815752fa9a08a87d3190551d1420f17c4467f628214db12235ae068d98cd001f024453676d8985af8f28f002345646c4ece4600a79620bc + checksum: 10c0/d179d148d98fbff3d815752fa9a08a87d3190551d1420f17c4467f628214db12235ae068d98cd001f024453676d8985af8f28f002345646c4ece4600a79620bc languageName: node linkType: hard @@ -6124,49 +7507,66 @@ __metadata: dependencies: err-code: "npm:^2.0.2" retry: "npm:^0.12.0" - checksum: 9c7045a1a2928094b5b9b15336dcd2a7b1c052f674550df63cc3f36cd44028e5080448175b6f6ca32b642de81150f5e7b1a98b728f15cb069f2dd60ac2616b96 + checksum: 10c0/9c7045a1a2928094b5b9b15336dcd2a7b1c052f674550df63cc3f36cd44028e5080448175b6f6ca32b642de81150f5e7b1a98b728f15cb069f2dd60ac2616b96 + languageName: node + linkType: hard + +"prompts@npm:^2.0.1": + version: 2.4.2 + resolution: "prompts@npm:2.4.2" + dependencies: + kleur: "npm:^3.0.3" + sisteransi: "npm:^1.0.5" + checksum: 10c0/16f1ac2977b19fe2cf53f8411cc98db7a3c8b115c479b2ca5c82b5527cd937aa405fa04f9a5960abeb9daef53191b53b4d13e35c1f5d50e8718c76917c5f1ea4 languageName: node linkType: hard "proto-list@npm:~1.2.1": version: 1.2.4 resolution: "proto-list@npm:1.2.4" - checksum: b9179f99394ec8a68b8afc817690185f3b03933f7b46ce2e22c1930dc84b60d09f5ad222beab4e59e58c6c039c7f7fcf620397235ef441a356f31f9744010e12 + checksum: 10c0/b9179f99394ec8a68b8afc817690185f3b03933f7b46ce2e22c1930dc84b60d09f5ad222beab4e59e58c6c039c7f7fcf620397235ef441a356f31f9744010e12 languageName: node linkType: hard "protocols@npm:^2.0.0, protocols@npm:^2.0.1": version: 2.0.1 resolution: "protocols@npm:2.0.1" - checksum: 016cc58a596e401004a028a2f7005e3444bf89ee8f606409c411719374d1e8bba0464fc142a065cce0d19f41669b2f7ffe25a8bde4f16ce3b6eb01fabc51f2e7 + checksum: 10c0/016cc58a596e401004a028a2f7005e3444bf89ee8f606409c411719374d1e8bba0464fc142a065cce0d19f41669b2f7ffe25a8bde4f16ce3b6eb01fabc51f2e7 languageName: node linkType: hard -"punycode@npm:^2.1.0, punycode@npm:^2.1.1": +"punycode@npm:^2.1.0": version: 2.3.1 resolution: "punycode@npm:2.3.1" - checksum: 14f76a8206bc3464f794fb2e3d3cc665ae416c01893ad7a02b23766eb07159144ee612ad67af5e84fa4479ccfe67678c4feb126b0485651b302babf66f04f9e9 + checksum: 10c0/14f76a8206bc3464f794fb2e3d3cc665ae416c01893ad7a02b23766eb07159144ee612ad67af5e84fa4479ccfe67678c4feb126b0485651b302babf66f04f9e9 + languageName: node + linkType: hard + +"pure-rand@npm:^6.0.0": + version: 6.1.0 + resolution: "pure-rand@npm:6.1.0" + checksum: 10c0/1abe217897bf74dcb3a0c9aba3555fe975023147b48db540aa2faf507aee91c03bf54f6aef0eb2bf59cc259a16d06b28eca37f0dc426d94f4692aeff02fb0e65 languageName: node linkType: hard "queue-microtask@npm:^1.2.2": version: 1.2.3 resolution: "queue-microtask@npm:1.2.3" - checksum: 900a93d3cdae3acd7d16f642c29a642aea32c2026446151f0778c62ac089d4b8e6c986811076e1ae180a694cedf077d453a11b58ff0a865629a4f82ab558e102 + checksum: 10c0/900a93d3cdae3acd7d16f642c29a642aea32c2026446151f0778c62ac089d4b8e6c986811076e1ae180a694cedf077d453a11b58ff0a865629a4f82ab558e102 languageName: node linkType: hard -"quick-lru@npm:^4.0.1": - version: 4.0.1 - resolution: "quick-lru@npm:4.0.1" - checksum: f9b1596fa7595a35c2f9d913ac312fede13d37dc8a747a51557ab36e11ce113bbe88ef4c0154968845559a7709cb6a7e7cbe75f7972182451cd45e7f057a334d +"react-is@npm:^18.0.0": + version: 18.3.1 + resolution: "react-is@npm:18.3.1" + checksum: 10c0/f2f1e60010c683479e74c63f96b09fb41603527cd131a9959e2aee1e5a8b0caf270b365e5ca77d4a6b18aae659b60a86150bb3979073528877029b35aecd2072 languageName: node linkType: hard "read-cmd-shim@npm:^4.0.0": version: 4.0.0 resolution: "read-cmd-shim@npm:4.0.0" - checksum: e62db17ec9708f1e7c6a31f0a46d43df2069d85cf0df3b9d1d99e5ed36e29b1e8b2f8a427fd8bbb9bc40829788df1471794f9b01057e4b95ed062806e4df5ba9 + checksum: 10c0/e62db17ec9708f1e7c6a31f0a46d43df2069d85cf0df3b9d1d99e5ed36e29b1e8b2f8a427fd8bbb9bc40829788df1471794f9b01057e4b95ed062806e4df5ba9 languageName: node linkType: hard @@ -6176,67 +7576,22 @@ __metadata: dependencies: json-parse-even-better-errors: "npm:^3.0.0" npm-normalize-package-bin: "npm:^3.0.0" - checksum: 37787e075f0260a92be0428687d9020eecad7ece3bda37461c2219e50d1ec183ab6ba1d9ada193691435dfe119a42c8a5b5b5463f08c8ddbc3d330800b265318 + checksum: 10c0/37787e075f0260a92be0428687d9020eecad7ece3bda37461c2219e50d1ec183ab6ba1d9ada193691435dfe119a42c8a5b5b5463f08c8ddbc3d330800b265318 languageName: node linkType: hard -"read-package-json@npm:^7.0.0": - version: 7.0.0 - resolution: "read-package-json@npm:7.0.0" - dependencies: - glob: "npm:^10.2.2" - json-parse-even-better-errors: "npm:^3.0.0" - normalize-package-data: "npm:^6.0.0" - npm-normalize-package-bin: "npm:^3.0.0" - checksum: a2d373d0f87613fe86ec49c7e4bcdaf2a14967c258c6ccfd9585dec8b21e3d5bfe422c460648fb30e8c93fc13579da0d9c9c65adc5ec4e95ec888d99e4bccc79 - languageName: node - linkType: hard - -"read-pkg-up@npm:^3.0.0": - version: 3.0.0 - resolution: "read-pkg-up@npm:3.0.0" - dependencies: - find-up: "npm:^2.0.0" - read-pkg: "npm:^3.0.0" - checksum: 2cd0a180260b0d235990e6e9c8c2330a03882d36bc2eba8930e437ef23ee52a68a894e7e1ccb1c33f03bcceb270a861ee5f7eac686f238857755e2cddfb48ffd - languageName: node - linkType: hard - -"read-pkg-up@npm:^7.0.1": - version: 7.0.1 - resolution: "read-pkg-up@npm:7.0.1" - dependencies: - find-up: "npm:^4.1.0" - read-pkg: "npm:^5.2.0" - type-fest: "npm:^0.8.1" - checksum: 82b3ac9fd7c6ca1bdc1d7253eb1091a98ff3d195ee0a45386582ce3e69f90266163c34121e6a0a02f1630073a6c0585f7880b3865efcae9c452fa667f02ca385 - languageName: node - linkType: hard - -"read-pkg@npm:^3.0.0": - version: 3.0.0 - resolution: "read-pkg@npm:3.0.0" - dependencies: - load-json-file: "npm:^4.0.0" - normalize-package-data: "npm:^2.3.2" - path-type: "npm:^3.0.0" - checksum: 65acf2df89fbcd506b48b7ced56a255ba00adf7ecaa2db759c86cc58212f6fd80f1f0b7a85c848551a5d0685232e9b64f45c1fd5b48d85df2761a160767eeb93 - languageName: node - linkType: hard - -"read-pkg@npm:^5.2.0": - version: 5.2.0 - resolution: "read-pkg@npm:5.2.0" +"read-pkg-up@npm:^10.0.0": + version: 10.1.0 + resolution: "read-pkg-up@npm:10.1.0" dependencies: - "@types/normalize-package-data": "npm:^2.4.0" - normalize-package-data: "npm:^2.5.0" - parse-json: "npm:^5.0.0" - type-fest: "npm:^0.6.0" - checksum: b51a17d4b51418e777029e3a7694c9bd6c578a5ab99db544764a0b0f2c7c0f58f8a6bc101f86a6fceb8ba6d237d67c89acf6170f6b98695d0420ddc86cf109fb + find-up: "npm:^6.3.0" + read-pkg: "npm:^8.1.0" + type-fest: "npm:^4.2.0" + checksum: 10c0/16a96ad664ff1a983e30aea2bd9490b65e4c6f29fa54c6b2a89c9f1474847b3a181c902c50c724678d5146043fd731d98aa2d8f9d6857e0ce84a30cbfc8a6b21 languageName: node linkType: hard -"read-pkg@npm:^8.1.0": +"read-pkg@npm:^8.0.0, read-pkg@npm:^8.1.0": version: 8.1.0 resolution: "read-pkg@npm:8.1.0" dependencies: @@ -6244,65 +7599,20 @@ __metadata: normalize-package-data: "npm:^6.0.0" parse-json: "npm:^7.0.0" type-fest: "npm:^4.2.0" - checksum: e50846bbfbe73f4b8fd8c23c523b2e9f1d78467297a870ff94a9e6db7eb65445a4a392bf2896b7566c1715d36492d92d368f1c4b38996dd3942fd1865eb22936 - languageName: node - linkType: hard - -"readable-stream@npm:^3.0.0, readable-stream@npm:^3.0.2, readable-stream@npm:^3.4.0": - version: 3.6.2 - resolution: "readable-stream@npm:3.6.2" - dependencies: - inherits: "npm:^2.0.3" - string_decoder: "npm:^1.1.1" - util-deprecate: "npm:^1.0.1" - checksum: e37be5c79c376fdd088a45fa31ea2e423e5d48854be7a22a58869b4e84d25047b193f6acb54f1012331e1bcd667ffb569c01b99d36b0bd59658fb33f513511b7 - languageName: node - linkType: hard - -"readable-stream@npm:^4.1.0": - version: 4.4.2 - resolution: "readable-stream@npm:4.4.2" - dependencies: - abort-controller: "npm:^3.0.0" - buffer: "npm:^6.0.3" - events: "npm:^3.3.0" - process: "npm:^0.11.10" - string_decoder: "npm:^1.3.0" - checksum: cf7cc8daa2b57872d120945a20a1458c13dcb6c6f352505421115827b18ac4df0e483ac1fe195cb1f5cd226e1073fc55b92b569269d8299e8530840bcdbba40c - languageName: node - linkType: hard - -"readable-stream@npm:~2.3.6": - version: 2.3.8 - resolution: "readable-stream@npm:2.3.8" - dependencies: - core-util-is: "npm:~1.0.0" - inherits: "npm:~2.0.3" - isarray: "npm:~1.0.0" - process-nextick-args: "npm:~2.0.0" - safe-buffer: "npm:~5.1.1" - string_decoder: "npm:~1.1.1" - util-deprecate: "npm:~1.0.1" - checksum: 7efdb01f3853bc35ac62ea25493567bf588773213f5f4a79f9c365e1ad13bab845ac0dae7bc946270dc40c3929483228415e92a3fc600cc7e4548992f41ee3fa - languageName: node - linkType: hard - -"readdirp@npm:~3.6.0": - version: 3.6.0 - resolution: "readdirp@npm:3.6.0" - dependencies: - picomatch: "npm:^2.2.1" - checksum: 6fa848cf63d1b82ab4e985f4cf72bd55b7dcfd8e0a376905804e48c3634b7e749170940ba77b32804d5fe93b3cc521aa95a8d7e7d725f830da6d93f3669ce66b + checksum: 10c0/e50846bbfbe73f4b8fd8c23c523b2e9f1d78467297a870ff94a9e6db7eb65445a4a392bf2896b7566c1715d36492d92d368f1c4b38996dd3942fd1865eb22936 languageName: node linkType: hard -"redent@npm:^3.0.0": - version: 3.0.0 - resolution: "redent@npm:3.0.0" +"read-pkg@npm:^9.0.1": + version: 9.0.1 + resolution: "read-pkg@npm:9.0.1" dependencies: - indent-string: "npm:^4.0.0" - strip-indent: "npm:^3.0.0" - checksum: d64a6b5c0b50eb3ddce3ab770f866658a2b9998c678f797919ceb1b586bab9259b311407280bd80b804e2a7c7539b19238ae6a2a20c843f1a7fcff21d48c2eae + "@types/normalize-package-data": "npm:^2.4.3" + normalize-package-data: "npm:^6.0.0" + parse-json: "npm:^8.0.0" + type-fest: "npm:^4.6.0" + unicorn-magic: "npm:^0.1.0" + checksum: 10c0/f3e27549dcdb18335597f4125a3d093a40ab0a18c16a6929a1575360ed5d8679b709b4a672730d9abf6aa8537a7f02bae0b4b38626f99409255acbd8f72f9964 languageName: node linkType: hard @@ -6313,14 +7623,26 @@ __metadata: call-bind: "npm:^1.0.2" define-properties: "npm:^1.2.0" set-function-name: "npm:^2.0.0" - checksum: 1de7d214c0a726c7c874a7023e47b0e27b9f7fdb64175bfe1861189de1704aaeca05c3d26c35aa375432289b99946f3cf86651a92a8f7601b90d8c226a23bcd8 + checksum: 10c0/1de7d214c0a726c7c874a7023e47b0e27b9f7fdb64175bfe1861189de1704aaeca05c3d26c35aa375432289b99946f3cf86651a92a8f7601b90d8c226a23bcd8 + languageName: node + linkType: hard + +"regexp.prototype.flags@npm:^1.5.2": + version: 1.5.3 + resolution: "regexp.prototype.flags@npm:1.5.3" + dependencies: + call-bind: "npm:^1.0.7" + define-properties: "npm:^1.2.1" + es-errors: "npm:^1.3.0" + set-function-name: "npm:^2.0.2" + checksum: 10c0/e1a7c7dc42cc91abf73e47a269c4b3a8f225321b7f617baa25821f6a123a91d23a73b5152f21872c566e699207e1135d075d2251cd3e84cc96d82a910adf6020 languageName: node linkType: hard "require-directory@npm:^2.1.1": version: 2.1.1 resolution: "require-directory@npm:2.1.1" - checksum: 83aa76a7bc1531f68d92c75a2ca2f54f1b01463cb566cf3fbc787d0de8be30c9dbc211d1d46be3497dac5785fe296f2dd11d531945ac29730643357978966e99 + checksum: 10c0/83aa76a7bc1531f68d92c75a2ca2f54f1b01463cb566cf3fbc787d0de8be30c9dbc211d1d46be3497dac5785fe296f2dd11d531945ac29730643357978966e99 languageName: node linkType: hard @@ -6329,42 +7651,39 @@ __metadata: resolution: "resolve-cwd@npm:3.0.0" dependencies: resolve-from: "npm:^5.0.0" - checksum: e608a3ebd15356264653c32d7ecbc8fd702f94c6703ea4ac2fb81d9c359180cba0ae2e6b71faa446631ed6145454d5a56b227efc33a2d40638ac13f8beb20ee4 + checksum: 10c0/e608a3ebd15356264653c32d7ecbc8fd702f94c6703ea4ac2fb81d9c359180cba0ae2e6b71faa446631ed6145454d5a56b227efc33a2d40638ac13f8beb20ee4 languageName: node linkType: hard "resolve-from@npm:^4.0.0": version: 4.0.0 resolution: "resolve-from@npm:4.0.0" - checksum: 8408eec31a3112ef96e3746c37be7d64020cda07c03a920f5024e77290a218ea758b26ca9529fd7b1ad283947f34b2291c1c0f6aa0ed34acfdda9c6014c8d190 + checksum: 10c0/8408eec31a3112ef96e3746c37be7d64020cda07c03a920f5024e77290a218ea758b26ca9529fd7b1ad283947f34b2291c1c0f6aa0ed34acfdda9c6014c8d190 languageName: node linkType: hard "resolve-from@npm:^5.0.0": version: 5.0.0 resolution: "resolve-from@npm:5.0.0" - checksum: b21cb7f1fb746de8107b9febab60095187781137fd803e6a59a76d421444b1531b641bba5857f5dc011974d8a5c635d61cec49e6bd3b7fc20e01f0fafc4efbf2 - languageName: node - linkType: hard - -"resolve-path@npm:^1.4.0": - version: 1.4.0 - resolution: "resolve-path@npm:1.4.0" - dependencies: - http-errors: "npm:~1.6.2" - path-is-absolute: "npm:1.0.1" - checksum: 7405c01e02c7c71c62f89e42eac1b876e5a1bb9c3b85e07ce674646841dd177571bca5639ff6780528bec9ff58be7b44845e69eced1d8c5d519f4c1d72c30907 + checksum: 10c0/b21cb7f1fb746de8107b9febab60095187781137fd803e6a59a76d421444b1531b641bba5857f5dc011974d8a5c635d61cec49e6bd3b7fc20e01f0fafc4efbf2 languageName: node linkType: hard "resolve-pkg-maps@npm:^1.0.0": version: 1.0.0 resolution: "resolve-pkg-maps@npm:1.0.0" - checksum: fb8f7bbe2ca281a73b7ef423a1cbc786fb244bd7a95cbe5c3fba25b27d327150beca8ba02f622baea65919a57e061eb5005204daa5f93ed590d9b77463a567ab + checksum: 10c0/fb8f7bbe2ca281a73b7ef423a1cbc786fb244bd7a95cbe5c3fba25b27d327150beca8ba02f622baea65919a57e061eb5005204daa5f93ed590d9b77463a567ab + languageName: node + linkType: hard + +"resolve.exports@npm:^2.0.0": + version: 2.0.2 + resolution: "resolve.exports@npm:2.0.2" + checksum: 10c0/cc4cffdc25447cf34730f388dca5021156ba9302a3bad3d7f168e790dc74b2827dff603f1bc6ad3d299bac269828dca96dd77e036dc9fba6a2a1807c47ab5c98 languageName: node linkType: hard -"resolve@npm:^1.10.0, resolve@npm:^1.22.1, resolve@npm:^1.22.4": +"resolve@npm:^1.20.0, resolve@npm:^1.22.4": version: 1.22.8 resolution: "resolve@npm:1.22.8" dependencies: @@ -6373,11 +7692,11 @@ __metadata: supports-preserve-symlinks-flag: "npm:^1.0.0" bin: resolve: bin/resolve - checksum: 07e179f4375e1fd072cfb72ad66d78547f86e6196c4014b31cb0b8bb1db5f7ca871f922d08da0fbc05b94e9fd42206f819648fa3b5b873ebbc8e1dc68fec433a + checksum: 10c0/07e179f4375e1fd072cfb72ad66d78547f86e6196c4014b31cb0b8bb1db5f7ca871f922d08da0fbc05b94e9fd42206f819648fa3b5b873ebbc8e1dc68fec433a languageName: node linkType: hard -"resolve@patch:resolve@npm%3A^1.10.0#optional!builtin, resolve@patch:resolve@npm%3A^1.22.1#optional!builtin, resolve@patch:resolve@npm%3A^1.22.4#optional!builtin": +"resolve@patch:resolve@npm%3A^1.20.0#optional!builtin, resolve@patch:resolve@npm%3A^1.22.4#optional!builtin": version: 1.22.8 resolution: "resolve@patch:resolve@npm%3A1.22.8#optional!builtin::version=1.22.8&hash=c3c19d" dependencies: @@ -6386,31 +7705,21 @@ __metadata: supports-preserve-symlinks-flag: "npm:^1.0.0" bin: resolve: bin/resolve - checksum: 0446f024439cd2e50c6c8fa8ba77eaa8370b4180f401a96abf3d1ebc770ac51c1955e12764cde449fde3fff480a61f84388e3505ecdbab778f4bef5f8212c729 - languageName: node - linkType: hard - -"restore-cursor@npm:^3.1.0": - version: 3.1.0 - resolution: "restore-cursor@npm:3.1.0" - dependencies: - onetime: "npm:^5.1.0" - signal-exit: "npm:^3.0.2" - checksum: 8051a371d6aa67ff21625fa94e2357bd81ffdc96267f3fb0fc4aaf4534028343836548ef34c240ffa8c25b280ca35eb36be00b3cb2133fa4f51896d7e73c6b4f + checksum: 10c0/0446f024439cd2e50c6c8fa8ba77eaa8370b4180f401a96abf3d1ebc770ac51c1955e12764cde449fde3fff480a61f84388e3505ecdbab778f4bef5f8212c729 languageName: node linkType: hard "retry@npm:^0.12.0": version: 0.12.0 resolution: "retry@npm:0.12.0" - checksum: 59933e8501727ba13ad73ef4a04d5280b3717fd650408460c987392efe9d7be2040778ed8ebe933c5cbd63da3dcc37919c141ef8af0a54a6e4fca5a2af177bfe + checksum: 10c0/59933e8501727ba13ad73ef4a04d5280b3717fd650408460c987392efe9d7be2040778ed8ebe933c5cbd63da3dcc37919c141ef8af0a54a6e4fca5a2af177bfe languageName: node linkType: hard "reusify@npm:^1.0.4": version: 1.0.4 resolution: "reusify@npm:1.0.4" - checksum: c19ef26e4e188f408922c46f7ff480d38e8dfc55d448310dfb518736b23ed2c4f547fb64a6ed5bdba92cd7e7ddc889d36ff78f794816d5e71498d645ef476107 + checksum: 10c0/c19ef26e4e188f408922c46f7ff480d38e8dfc55d448310dfb518736b23ed2c4f547fb64a6ed5bdba92cd7e7ddc889d36ff78f794816d5e71498d645ef476107 languageName: node linkType: hard @@ -6421,64 +7730,7 @@ __metadata: glob: "npm:^7.1.3" bin: rimraf: bin.js - checksum: 9cb7757acb489bd83757ba1a274ab545eafd75598a9d817e0c3f8b164238dd90eba50d6b848bd4dcc5f3040912e882dc7ba71653e35af660d77b25c381d402e8 - languageName: node - linkType: hard - -"rollup@npm:^4.4.0": - version: 4.5.2 - resolution: "rollup@npm:4.5.2" - dependencies: - "@rollup/rollup-android-arm-eabi": "npm:4.5.2" - "@rollup/rollup-android-arm64": "npm:4.5.2" - "@rollup/rollup-darwin-arm64": "npm:4.5.2" - "@rollup/rollup-darwin-x64": "npm:4.5.2" - "@rollup/rollup-linux-arm-gnueabihf": "npm:4.5.2" - "@rollup/rollup-linux-arm64-gnu": "npm:4.5.2" - "@rollup/rollup-linux-arm64-musl": "npm:4.5.2" - "@rollup/rollup-linux-x64-gnu": "npm:4.5.2" - "@rollup/rollup-linux-x64-musl": "npm:4.5.2" - "@rollup/rollup-win32-arm64-msvc": "npm:4.5.2" - "@rollup/rollup-win32-ia32-msvc": "npm:4.5.2" - "@rollup/rollup-win32-x64-msvc": "npm:4.5.2" - fsevents: "npm:~2.3.2" - dependenciesMeta: - "@rollup/rollup-android-arm-eabi": - optional: true - "@rollup/rollup-android-arm64": - optional: true - "@rollup/rollup-darwin-arm64": - optional: true - "@rollup/rollup-darwin-x64": - optional: true - "@rollup/rollup-linux-arm-gnueabihf": - optional: true - "@rollup/rollup-linux-arm64-gnu": - optional: true - "@rollup/rollup-linux-arm64-musl": - optional: true - "@rollup/rollup-linux-x64-gnu": - optional: true - "@rollup/rollup-linux-x64-musl": - optional: true - "@rollup/rollup-win32-arm64-msvc": - optional: true - "@rollup/rollup-win32-ia32-msvc": - optional: true - "@rollup/rollup-win32-x64-msvc": - optional: true - fsevents: - optional: true - bin: - rollup: dist/bin/rollup - checksum: 3f6379be42e8a57501798269baa097554d80fd018a5acb003f64eefd525e4932285073f8cf6148c4b7ae51b5b0807005e0a884241e113f03866b6d0ac783a54e - languageName: node - linkType: hard - -"run-async@npm:^3.0.0": - version: 3.0.0 - resolution: "run-async@npm:3.0.0" - checksum: b18b562ae37c3020083dcaae29642e4cc360c824fbfb6b7d50d809a9d5227bb986152d09310255842c8dce40526e82ca768f02f00806c91ba92a8dfa6159cb85 + checksum: 10c0/9cb7757acb489bd83757ba1a274ab545eafd75598a9d817e0c3f8b164238dd90eba50d6b848bd4dcc5f3040912e882dc7ba71653e35af660d77b25c381d402e8 languageName: node linkType: hard @@ -6487,16 +7739,7 @@ __metadata: resolution: "run-parallel@npm:1.2.0" dependencies: queue-microtask: "npm:^1.2.2" - checksum: 200b5ab25b5b8b7113f9901bfe3afc347e19bb7475b267d55ad0eb86a62a46d77510cb0f232507c9e5d497ebda569a08a9867d0d14f57a82ad5564d991588b39 - languageName: node - linkType: hard - -"rxjs@npm:^7.8.1": - version: 7.8.1 - resolution: "rxjs@npm:7.8.1" - dependencies: - tslib: "npm:^2.1.0" - checksum: 3c49c1ecd66170b175c9cacf5cef67f8914dcbc7cd0162855538d365c83fea631167cacb644b3ce533b2ea0e9a4d0b12175186985f89d75abe73dbd8f7f06f68 + checksum: 10c0/200b5ab25b5b8b7113f9901bfe3afc347e19bb7475b267d55ad0eb86a62a46d77510cb0f232507c9e5d497ebda569a08a9867d0d14f57a82ad5564d991588b39 languageName: node linkType: hard @@ -6508,30 +7751,19 @@ __metadata: get-intrinsic: "npm:^1.2.1" has-symbols: "npm:^1.0.3" isarray: "npm:^2.0.5" - checksum: 4b15ce5fce5ce4d7e744a63592cded88d2f27806ed229eadb2e42629cbcd40e770f7478608e75f455e7fe341acd8c0a01bdcd7146b10645ea7411c5e3c1d1dd8 - languageName: node - linkType: hard - -"safe-buffer@npm:5.2.1, safe-buffer@npm:~5.2.0": - version: 5.2.1 - resolution: "safe-buffer@npm:5.2.1" - checksum: 6501914237c0a86e9675d4e51d89ca3c21ffd6a31642efeba25ad65720bce6921c9e7e974e5be91a786b25aa058b5303285d3c15dbabf983a919f5f630d349f3 - languageName: node - linkType: hard - -"safe-buffer@npm:~5.1.0, safe-buffer@npm:~5.1.1": - version: 5.1.2 - resolution: "safe-buffer@npm:5.1.2" - checksum: 780ba6b5d99cc9a40f7b951d47152297d0e260f0df01472a1b99d4889679a4b94a13d644f7dbc4f022572f09ae9005fa2fbb93bbbd83643316f365a3e9a45b21 + checksum: 10c0/4b15ce5fce5ce4d7e744a63592cded88d2f27806ed229eadb2e42629cbcd40e770f7478608e75f455e7fe341acd8c0a01bdcd7146b10645ea7411c5e3c1d1dd8 languageName: node linkType: hard -"safe-compare@npm:^1.1.4": - version: 1.1.4 - resolution: "safe-compare@npm:1.1.4" +"safe-array-concat@npm:^1.1.2": + version: 1.1.2 + resolution: "safe-array-concat@npm:1.1.2" dependencies: - buffer-alloc: "npm:^1.2.0" - checksum: ada2ef3b6c3a216d82be7b749b4b3a247bcf28b028e1786e636ec83c0a0f918779c30158473e13b30120a6c5bfe3262eb39e95b42dae1dee191565442629f71e + call-bind: "npm:^1.0.7" + get-intrinsic: "npm:^1.2.4" + has-symbols: "npm:^1.0.3" + isarray: "npm:^2.0.5" + checksum: 10c0/12f9fdb01c8585e199a347eacc3bae7b5164ae805cdc8c6707199dbad5b9e30001a50a43c4ee24dc9ea32dbb7279397850e9208a7e217f4d8b1cf5d90129dec9 languageName: node linkType: hard @@ -6542,57 +7774,61 @@ __metadata: call-bind: "npm:^1.0.2" get-intrinsic: "npm:^1.1.3" is-regex: "npm:^1.1.4" - checksum: 14a81a7e683f97b2d6e9c8be61fddcf8ed7a02f4e64a825515f96bb1738eb007145359313741d2704d28b55b703a0f6300c749dde7c1dbc13952a2b85048ede2 - languageName: node - linkType: hard - -"safer-buffer@npm:>= 2.1.2 < 3, safer-buffer@npm:>= 2.1.2 < 3.0.0": - version: 2.1.2 - resolution: "safer-buffer@npm:2.1.2" - checksum: 7e3c8b2e88a1841c9671094bbaeebd94448111dd90a81a1f606f3f67708a6ec57763b3b47f06da09fc6054193e0e6709e77325415dc8422b04497a8070fa02d4 + checksum: 10c0/14a81a7e683f97b2d6e9c8be61fddcf8ed7a02f4e64a825515f96bb1738eb007145359313741d2704d28b55b703a0f6300c749dde7c1dbc13952a2b85048ede2 languageName: node linkType: hard -"sandwich-stream@npm:^2.0.2": - version: 2.0.2 - resolution: "sandwich-stream@npm:2.0.2" - checksum: 30c779dd32b63cf489cb0a1f28828977db51fe7ca1673ae143649ab583645f6ddb61acb28e770abe52f9006c230cbcc026e56d214964c7bfd788ae05d684643a +"safe-regex-test@npm:^1.0.3": + version: 1.0.3 + resolution: "safe-regex-test@npm:1.0.3" + dependencies: + call-bind: "npm:^1.0.6" + es-errors: "npm:^1.3.0" + is-regex: "npm:^1.1.4" + checksum: 10c0/900bf7c98dc58f08d8523b7012b468e4eb757afa624f198902c0643d7008ba777b0bdc35810ba0b758671ce887617295fb742b3f3968991b178ceca54cb07603 languageName: node linkType: hard -"semver@npm:2 || 3 || 4 || 5, semver@npm:^5.5.0": - version: 5.7.2 - resolution: "semver@npm:5.7.2" - bin: - semver: bin/semver - checksum: e4cf10f86f168db772ae95d86ba65b3fd6c5967c94d97c708ccb463b778c2ee53b914cd7167620950fc07faf5a564e6efe903836639e512a1aa15fbc9667fa25 +"safer-buffer@npm:>= 2.1.2 < 3.0.0": + version: 2.1.2 + resolution: "safer-buffer@npm:2.1.2" + checksum: 10c0/7e3c8b2e88a1841c9671094bbaeebd94448111dd90a81a1f606f3f67708a6ec57763b3b47f06da09fc6054193e0e6709e77325415dc8422b04497a8070fa02d4 languageName: node linkType: hard -"semver@npm:^6.3.1": +"semver@npm:^6.3.0, semver@npm:^6.3.1": version: 6.3.1 resolution: "semver@npm:6.3.1" bin: semver: bin/semver.js - checksum: e3d79b609071caa78bcb6ce2ad81c7966a46a7431d9d58b8800cfa9cb6a63699b3899a0e4bcce36167a284578212d9ae6942b6929ba4aa5015c079a67751d42d + checksum: 10c0/e3d79b609071caa78bcb6ce2ad81c7966a46a7431d9d58b8800cfa9cb6a63699b3899a0e4bcce36167a284578212d9ae6942b6929ba4aa5015c079a67751d42d languageName: node linkType: hard -"semver@npm:^7.0.0, semver@npm:^7.1.1, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.5.3, semver@npm:^7.5.4": +"semver@npm:^7.0.0, semver@npm:^7.1.1, semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.5.3, semver@npm:^7.5.4": version: 7.5.4 resolution: "semver@npm:7.5.4" dependencies: lru-cache: "npm:^6.0.0" bin: semver: bin/semver.js - checksum: 5160b06975a38b11c1ab55950cb5b8a23db78df88275d3d8a42ccf1f29e55112ac995b3a26a522c36e3b5f76b0445f1eef70d696b8c7862a2b4303d7b0e7609e + checksum: 10c0/5160b06975a38b11c1ab55950cb5b8a23db78df88275d3d8a42ccf1f29e55112ac995b3a26a522c36e3b5f76b0445f1eef70d696b8c7862a2b4303d7b0e7609e + languageName: node + linkType: hard + +"semver@npm:^7.5.2, semver@npm:^7.6.0, semver@npm:^7.6.3": + version: 7.6.3 + resolution: "semver@npm:7.6.3" + bin: + semver: bin/semver.js + checksum: 10c0/88f33e148b210c153873cb08cfe1e281d518aaa9a666d4d148add6560db5cd3c582f3a08ccb91f38d5f379ead256da9931234ed122057f40bb5766e65e58adaf languageName: node linkType: hard "set-blocking@npm:^2.0.0": version: 2.0.0 resolution: "set-blocking@npm:2.0.0" - checksum: 9f8c1b2d800800d0b589de1477c753492de5c1548d4ade52f57f1d1f5e04af5481554d75ce5e5c43d4004b80a3eb714398d6907027dc0534177b7539119f4454 + checksum: 10c0/9f8c1b2d800800d0b589de1477c753492de5c1548d4ade52f57f1d1f5e04af5481554d75ce5e5c43d4004b80a3eb714398d6907027dc0534177b7539119f4454 languageName: node linkType: hard @@ -6604,7 +7840,21 @@ __metadata: get-intrinsic: "npm:^1.2.1" gopd: "npm:^1.0.1" has-property-descriptors: "npm:^1.0.0" - checksum: a29e255c116c29e3323b851c4f46c58c91be9bb8b065f191e2ea1807cb2c839df56e3175732a498e0c6d54626ba6b6fef896bf699feb7ab70c42dc47eb247c95 + checksum: 10c0/a29e255c116c29e3323b851c4f46c58c91be9bb8b065f191e2ea1807cb2c839df56e3175732a498e0c6d54626ba6b6fef896bf699feb7ab70c42dc47eb247c95 + languageName: node + linkType: hard + +"set-function-length@npm:^1.2.1": + version: 1.2.2 + resolution: "set-function-length@npm:1.2.2" + dependencies: + define-data-property: "npm:^1.1.4" + es-errors: "npm:^1.3.0" + function-bind: "npm:^1.1.2" + get-intrinsic: "npm:^1.2.4" + gopd: "npm:^1.0.1" + has-property-descriptors: "npm:^1.0.2" + checksum: 10c0/82850e62f412a258b71e123d4ed3873fa9377c216809551192bb6769329340176f109c2eeae8c22a8d386c76739855f78e8716515c818bcaef384b51110f0f3c languageName: node linkType: hard @@ -6615,21 +7865,19 @@ __metadata: define-data-property: "npm:^1.0.1" functions-have-names: "npm:^1.2.3" has-property-descriptors: "npm:^1.0.0" - checksum: 6be7d3e15be47f4db8a5a563a35c60b5e7c4af91cc900e8972ffad33d3aaa227900faa55f60121cdb04b85866a734bb7fe4cd91f654c632861cc86121a48312a - languageName: node - linkType: hard - -"setprototypeof@npm:1.1.0": - version: 1.1.0 - resolution: "setprototypeof@npm:1.1.0" - checksum: a77b20876689c6a89c3b42f0c3596a9cae02f90fc902570cbd97198e9e8240382086c9303ad043e88cee10f61eae19f1004e51d885395a1e9bf49f9ebed12872 + checksum: 10c0/6be7d3e15be47f4db8a5a563a35c60b5e7c4af91cc900e8972ffad33d3aaa227900faa55f60121cdb04b85866a734bb7fe4cd91f654c632861cc86121a48312a languageName: node linkType: hard -"setprototypeof@npm:1.2.0": - version: 1.2.0 - resolution: "setprototypeof@npm:1.2.0" - checksum: 68733173026766fa0d9ecaeb07f0483f4c2dc70ca376b3b7c40b7cda909f94b0918f6c5ad5ce27a9160bdfb475efaa9d5e705a11d8eaae18f9835d20976028bc +"set-function-name@npm:^2.0.2": + version: 2.0.2 + resolution: "set-function-name@npm:2.0.2" + dependencies: + define-data-property: "npm:^1.1.4" + es-errors: "npm:^1.3.0" + functions-have-names: "npm:^1.2.3" + has-property-descriptors: "npm:^1.0.2" + checksum: 10c0/fce59f90696c450a8523e754abb305e2b8c73586452619c2bad5f7bf38c7b6b4651895c9db895679c5bef9554339cf3ef1c329b66ece3eda7255785fbe299316 languageName: node linkType: hard @@ -6638,16 +7886,7 @@ __metadata: resolution: "shallow-clone@npm:3.0.1" dependencies: kind-of: "npm:^6.0.2" - checksum: 7bab09613a1b9f480c85a9823aebec533015579fa055ba6634aa56ba1f984380670eaf33b8217502931872aa1401c9fcadaa15f9f604d631536df475b05bcf1e - languageName: node - linkType: hard - -"shebang-command@npm:^1.2.0": - version: 1.2.0 - resolution: "shebang-command@npm:1.2.0" - dependencies: - shebang-regex: "npm:^1.0.0" - checksum: 7b20dbf04112c456b7fc258622dafd566553184ac9b6938dd30b943b065b21dabd3776460df534cc02480db5e1b6aec44700d985153a3da46e7db7f9bd21326d + checksum: 10c0/7bab09613a1b9f480c85a9823aebec533015579fa055ba6634aa56ba1f984380670eaf33b8217502931872aa1401c9fcadaa15f9f604d631536df475b05bcf1e languageName: node linkType: hard @@ -6656,28 +7895,14 @@ __metadata: resolution: "shebang-command@npm:2.0.0" dependencies: shebang-regex: "npm:^3.0.0" - checksum: a41692e7d89a553ef21d324a5cceb5f686d1f3c040759c50aab69688634688c5c327f26f3ecf7001ebfd78c01f3c7c0a11a7c8bfd0a8bc9f6240d4f40b224e4e - languageName: node - linkType: hard - -"shebang-regex@npm:^1.0.0": - version: 1.0.0 - resolution: "shebang-regex@npm:1.0.0" - checksum: 9abc45dee35f554ae9453098a13fdc2f1730e525a5eb33c51f096cc31f6f10a4b38074c1ebf354ae7bffa7229506083844008dfc3bb7818228568c0b2dc1fff2 + checksum: 10c0/a41692e7d89a553ef21d324a5cceb5f686d1f3c040759c50aab69688634688c5c327f26f3ecf7001ebfd78c01f3c7c0a11a7c8bfd0a8bc9f6240d4f40b224e4e languageName: node linkType: hard "shebang-regex@npm:^3.0.0": version: 3.0.0 resolution: "shebang-regex@npm:3.0.0" - checksum: 1dbed0726dd0e1152a92696c76c7f06084eb32a90f0528d11acd764043aacf76994b2fb30aa1291a21bd019d6699164d048286309a278855ee7bec06cf6fb690 - languageName: node - linkType: hard - -"shell-quote@npm:^1.6.1": - version: 1.8.1 - resolution: "shell-quote@npm:1.8.1" - checksum: 8cec6fd827bad74d0a49347057d40dfea1e01f12a6123bf82c4649f3ef152fc2bc6d6176e6376bffcd205d9d0ccb4f1f9acae889384d20baff92186f01ea455a + checksum: 10c0/1dbed0726dd0e1152a92696c76c7f06084eb32a90f0528d11acd764043aacf76994b2fb30aa1291a21bd019d6699164d048286309a278855ee7bec06cf6fb690 languageName: node linkType: hard @@ -6688,54 +7913,63 @@ __metadata: call-bind: "npm:^1.0.0" get-intrinsic: "npm:^1.0.2" object-inspect: "npm:^1.9.0" - checksum: 054a5d23ee35054b2c4609b9fd2a0587760737782b5d765a9c7852264710cc39c6dcb56a9bbd6c12cd84071648aea3edb2359d2f6e560677eedadce511ac1da5 + checksum: 10c0/054a5d23ee35054b2c4609b9fd2a0587760737782b5d765a9c7852264710cc39c6dcb56a9bbd6c12cd84071648aea3edb2359d2f6e560677eedadce511ac1da5 languageName: node linkType: hard -"signal-exit@npm:^3.0.2": +"signal-exit@npm:^3.0.3, signal-exit@npm:^3.0.7": version: 3.0.7 resolution: "signal-exit@npm:3.0.7" - checksum: 25d272fa73e146048565e08f3309d5b942c1979a6f4a58a8c59d5fa299728e9c2fcd1a759ec870863b1fd38653670240cd420dad2ad9330c71f36608a6a1c912 + checksum: 10c0/25d272fa73e146048565e08f3309d5b942c1979a6f4a58a8c59d5fa299728e9c2fcd1a759ec870863b1fd38653670240cd420dad2ad9330c71f36608a6a1c912 languageName: node linkType: hard "signal-exit@npm:^4.0.1, signal-exit@npm:^4.1.0": version: 4.1.0 resolution: "signal-exit@npm:4.1.0" - checksum: 41602dce540e46d599edba9d9860193398d135f7ff72cab629db5171516cfae628d21e7bfccde1bbfdf11c48726bc2a6d1a8fb8701125852fbfda7cf19c6aa83 + checksum: 10c0/41602dce540e46d599edba9d9860193398d135f7ff72cab629db5171516cfae628d21e7bfccde1bbfdf11c48726bc2a6d1a8fb8701125852fbfda7cf19c6aa83 languageName: node linkType: hard -"sigstore@npm:^2.0.0, sigstore@npm:^2.1.0": - version: 2.1.0 - resolution: "sigstore@npm:2.1.0" +"sigstore@npm:^2.2.0": + version: 2.3.1 + resolution: "sigstore@npm:2.3.1" dependencies: - "@sigstore/bundle": "npm:^2.1.0" - "@sigstore/protobuf-specs": "npm:^0.2.1" - "@sigstore/sign": "npm:^2.1.0" - "@sigstore/tuf": "npm:^2.1.0" - checksum: 44e9ed0ea337f5bb37cf54b065789be4fba4c2f45aa5c1cd19c33eee7bc5683a24df67e45b46698c6192bdf13e85052251ea994c4873c6d86d21392e0cd45618 + "@sigstore/bundle": "npm:^2.3.2" + "@sigstore/core": "npm:^1.0.0" + "@sigstore/protobuf-specs": "npm:^0.3.2" + "@sigstore/sign": "npm:^2.3.2" + "@sigstore/tuf": "npm:^2.3.4" + "@sigstore/verify": "npm:^1.2.1" + checksum: 10c0/8906b1074130d430d707e46f15c66eb6996891dc0d068705f1884fb1251a4a367f437267d44102cdebcee34f1768b3f30131a2ec8fb7aac74ba250903a459aa7 + languageName: node + linkType: hard + +"sisteransi@npm:^1.0.5": + version: 1.0.5 + resolution: "sisteransi@npm:1.0.5" + checksum: 10c0/230ac975cca485b7f6fe2b96a711aa62a6a26ead3e6fb8ba17c5a00d61b8bed0d7adc21f5626b70d7c33c62ff4e63933017a6462942c719d1980bb0b1207ad46 languageName: node linkType: hard "slash@npm:^3.0.0": version: 3.0.0 resolution: "slash@npm:3.0.0" - checksum: e18488c6a42bdfd4ac5be85b2ced3ccd0224773baae6ad42cfbb9ec74fc07f9fa8396bd35ee638084ead7a2a0818eb5e7151111544d4731ce843019dab4be47b + checksum: 10c0/e18488c6a42bdfd4ac5be85b2ced3ccd0224773baae6ad42cfbb9ec74fc07f9fa8396bd35ee638084ead7a2a0818eb5e7151111544d4731ce843019dab4be47b languageName: node linkType: hard "slash@npm:^5.1.0": version: 5.1.0 resolution: "slash@npm:5.1.0" - checksum: eb48b815caf0bdc390d0519d41b9e0556a14380f6799c72ba35caf03544d501d18befdeeef074bc9c052acf69654bc9e0d79d7f1de0866284137a40805299eb3 + checksum: 10c0/eb48b815caf0bdc390d0519d41b9e0556a14380f6799c72ba35caf03544d501d18befdeeef074bc9c052acf69654bc9e0d79d7f1de0866284137a40805299eb3 languageName: node linkType: hard "smart-buffer@npm:^4.2.0": version: 4.2.0 resolution: "smart-buffer@npm:4.2.0" - checksum: a16775323e1404dd43fabafe7460be13a471e021637bc7889468eb45ce6a6b207261f454e4e530a19500cc962c4cc5348583520843b363f4193cee5c00e1e539 + checksum: 10c0/a16775323e1404dd43fabafe7460be13a471e021637bc7889468eb45ce6a6b207261f454e4e530a19500cc962c4cc5348583520843b363f4193cee5c00e1e539 languageName: node linkType: hard @@ -6746,7 +7980,7 @@ __metadata: agent-base: "npm:^7.0.2" debug: "npm:^4.3.4" socks: "npm:^2.7.1" - checksum: a842402fc9b8848a31367f2811ca3cd14c4106588b39a0901cd7a69029998adfc6456b0203617c18ed090542ad0c24ee4e9d4c75a0c4b75071e214227c177eb7 + checksum: 10c0/a842402fc9b8848a31367f2811ca3cd14c4106588b39a0901cd7a69029998adfc6456b0203617c18ed090542ad0c24ee4e9d4c75a0c4b75071e214227c177eb7 languageName: node linkType: hard @@ -6756,7 +7990,7 @@ __metadata: dependencies: ip: "npm:^2.0.0" smart-buffer: "npm:^4.2.0" - checksum: 43f69dbc9f34fc8220bc51c6eea1c39715ab3cfdb115d6e3285f6c7d1a603c5c75655668a5bbc11e3c7e2c99d60321fb8d7ab6f38cda6a215fadd0d6d0b52130 + checksum: 10c0/43f69dbc9f34fc8220bc51c6eea1c39715ab3cfdb115d6e3285f6c7d1a603c5c75655668a5bbc11e3c7e2c99d60321fb8d7ab6f38cda6a215fadd0d6d0b52130 languageName: node linkType: hard @@ -6764,15 +7998,25 @@ __metadata: version: 5.0.0 resolution: "sort-keys@npm:5.0.0" dependencies: - is-plain-obj: "npm:^4.0.0" - checksum: 9f7abc51e184ef27327cb2e6da729c84d1c0223bdfc714b5065df3ff167f8e1bbdfaec6bbd41d87a308d9e79eba93c90534d034f5790b305dfbecf0701f3ee55 + is-plain-obj: "npm:^4.0.0" + checksum: 10c0/9f7abc51e184ef27327cb2e6da729c84d1c0223bdfc714b5065df3ff167f8e1bbdfaec6bbd41d87a308d9e79eba93c90534d034f5790b305dfbecf0701f3ee55 + languageName: node + linkType: hard + +"source-map-support@npm:0.5.13": + version: 0.5.13 + resolution: "source-map-support@npm:0.5.13" + dependencies: + buffer-from: "npm:^1.0.0" + source-map: "npm:^0.6.0" + checksum: 10c0/137539f8c453fa0f496ea42049ab5da4569f96781f6ac8e5bfda26937be9494f4e8891f523c5f98f0e85f71b35d74127a00c46f83f6a4f54672b58d53202565e languageName: node linkType: hard -"source-map@npm:^0.6.1": +"source-map@npm:^0.6.0, source-map@npm:^0.6.1": version: 0.6.1 resolution: "source-map@npm:0.6.1" - checksum: ab55398007c5e5532957cb0beee2368529618ac0ab372d789806f5718123cc4367d57de3904b4e6a4170eb5a0b0f41373066d02ca0735a0c4d75c7d328d3e011 + checksum: 10c0/ab55398007c5e5532957cb0beee2368529618ac0ab372d789806f5718123cc4367d57de3904b4e6a4170eb5a0b0f41373066d02ca0735a0c4d75c7d328d3e011 languageName: node linkType: hard @@ -6782,14 +8026,14 @@ __metadata: dependencies: spdx-expression-parse: "npm:^3.0.0" spdx-license-ids: "npm:^3.0.0" - checksum: 49208f008618b9119208b0dadc9208a3a55053f4fd6a0ae8116861bd22696fc50f4142a35ebfdb389e05ccf2de8ad142573fefc9e26f670522d899f7b2fe7386 + checksum: 10c0/49208f008618b9119208b0dadc9208a3a55053f4fd6a0ae8116861bd22696fc50f4142a35ebfdb389e05ccf2de8ad142573fefc9e26f670522d899f7b2fe7386 languageName: node linkType: hard "spdx-exceptions@npm:^2.1.0": version: 2.3.0 resolution: "spdx-exceptions@npm:2.3.0" - checksum: 83089e77d2a91cb6805a5c910a2bedb9e50799da091f532c2ba4150efdef6e53f121523d3e2dc2573a340dc0189e648b03157097f65465b3a0c06da1f18d7e8a + checksum: 10c0/83089e77d2a91cb6805a5c910a2bedb9e50799da091f532c2ba4150efdef6e53f121523d3e2dc2573a340dc0189e648b03157097f65465b3a0c06da1f18d7e8a languageName: node linkType: hard @@ -6799,62 +8043,74 @@ __metadata: dependencies: spdx-exceptions: "npm:^2.1.0" spdx-license-ids: "npm:^3.0.0" - checksum: 6f8a41c87759fa184a58713b86c6a8b028250f158159f1d03ed9d1b6ee4d9eefdc74181c8ddc581a341aa971c3e7b79e30b59c23b05d2436d5de1c30bdef7171 + checksum: 10c0/6f8a41c87759fa184a58713b86c6a8b028250f158159f1d03ed9d1b6ee4d9eefdc74181c8ddc581a341aa971c3e7b79e30b59c23b05d2436d5de1c30bdef7171 languageName: node linkType: hard "spdx-license-ids@npm:^3.0.0": version: 3.0.16 resolution: "spdx-license-ids@npm:3.0.16" - checksum: 7d88b8f01308948bb3ea69c066448f2776cf3d35a410d19afb836743086ced1566f6824ee8e6d67f8f25aa81fa86d8076a666c60ac4528caecd55e93edb5114e - languageName: node - linkType: hard - -"split2@npm:^3.2.2": - version: 3.2.2 - resolution: "split2@npm:3.2.2" - dependencies: - readable-stream: "npm:^3.0.0" - checksum: 2dad5603c52b353939befa3e2f108f6e3aff42b204ad0f5f16dd12fd7c2beab48d117184ce6f7c8854f9ee5ffec6faae70d243711dd7d143a9f635b4a285de4e + checksum: 10c0/7d88b8f01308948bb3ea69c066448f2776cf3d35a410d19afb836743086ced1566f6824ee8e6d67f8f25aa81fa86d8076a666c60ac4528caecd55e93edb5114e languageName: node linkType: hard "split2@npm:^4.0.0": version: 4.2.0 resolution: "split2@npm:4.2.0" - checksum: b292beb8ce9215f8c642bb68be6249c5a4c7f332fc8ecadae7be5cbdf1ea95addc95f0459ef2e7ad9d45fd1064698a097e4eb211c83e772b49bc0ee423e91534 + checksum: 10c0/b292beb8ce9215f8c642bb68be6249c5a4c7f332fc8ecadae7be5cbdf1ea95addc95f0459ef2e7ad9d45fd1064698a097e4eb211c83e772b49bc0ee423e91534 languageName: node linkType: hard -"split@npm:^1.0.1": - version: 1.0.1 - resolution: "split@npm:1.0.1" - dependencies: - through: "npm:2" - checksum: 7f489e7ed5ff8a2e43295f30a5197ffcb2d6202c9cf99357f9690d645b19c812bccf0be3ff336fea5054cda17ac96b91d67147d95dbfc31fbb5804c61962af85 +"sprintf-js@npm:~1.0.2": + version: 1.0.3 + resolution: "sprintf-js@npm:1.0.3" + checksum: 10c0/ecadcfe4c771890140da5023d43e190b7566d9cf8b2d238600f31bec0fc653f328da4450eb04bd59a431771a8e9cc0e118f0aa3974b683a4981b4e07abc2a5bb languageName: node linkType: hard -"ssri@npm:^10.0.0, ssri@npm:^10.0.5": +"ssri@npm:^10.0.0": version: 10.0.5 resolution: "ssri@npm:10.0.5" dependencies: minipass: "npm:^7.0.3" - checksum: b091f2ae92474183c7ac5ed3f9811457e1df23df7a7e70c9476eaa9a0c4a0c8fc190fb45acefbf023ca9ee864dd6754237a697dc52a0fb182afe65d8e77443d8 + checksum: 10c0/b091f2ae92474183c7ac5ed3f9811457e1df23df7a7e70c9476eaa9a0c4a0c8fc190fb45acefbf023ca9ee864dd6754237a697dc52a0fb182afe65d8e77443d8 languageName: node linkType: hard -"statuses@npm:>= 1.4.0 < 2, statuses@npm:>= 1.5.0 < 2, statuses@npm:^1.5.0": - version: 1.5.0 - resolution: "statuses@npm:1.5.0" - checksum: e433900956357b3efd79b1c547da4d291799ac836960c016d10a98f6a810b1b5c0dcc13b5a7aa609a58239b5190e1ea176ad9221c2157d2fd1c747393e6b2940 +"ssri@npm:^10.0.6": + version: 10.0.6 + resolution: "ssri@npm:10.0.6" + dependencies: + minipass: "npm:^7.0.3" + checksum: 10c0/e5a1e23a4057a86a97971465418f22ea89bd439ac36ade88812dd920e4e61873e8abd6a9b72a03a67ef50faa00a2daf1ab745c5a15b46d03e0544a0296354227 languageName: node linkType: hard -"stream-read-all@npm:^3.0.1": - version: 3.0.1 - resolution: "stream-read-all@npm:3.0.1" - checksum: 0039a3950dc5d7be91254538526c238985dea6ec3fadb8c1e276ece52b2f801728b3e205ae5e82f22a26f14b8d2cfbc92aedb6ae8d6c34c8a54c55ff74b0e66b +"ssri@npm:^11.0.0": + version: 11.0.0 + resolution: "ssri@npm:11.0.0" + dependencies: + minipass: "npm:^7.0.3" + checksum: 10c0/7cc695c3f9cb0db534d2b84ff2b02463e852c75c929f0db6be4ce2cec6ea0477c3cb38e8e85d1fa0e4fa121a8c367022e7e664f324052c3537287465b43c761e + languageName: node + linkType: hard + +"stack-utils@npm:^2.0.3": + version: 2.0.6 + resolution: "stack-utils@npm:2.0.6" + dependencies: + escape-string-regexp: "npm:^2.0.0" + checksum: 10c0/651c9f87667e077584bbe848acaecc6049bc71979f1e9a46c7b920cad4431c388df0f51b8ad7cfd6eed3db97a2878d0fc8b3122979439ea8bac29c61c95eec8a + languageName: node + linkType: hard + +"string-length@npm:^4.0.1": + version: 4.0.2 + resolution: "string-length@npm:4.0.2" + dependencies: + char-regex: "npm:^1.0.2" + strip-ansi: "npm:^6.0.0" + checksum: 10c0/1cd77409c3d7db7bc59406f6bcc9ef0783671dcbabb23597a1177c166906ef2ee7c8290f78cae73a8aec858768f189d2cb417797df5e15ec4eb5e16b3346340c languageName: node linkType: hard @@ -6865,7 +8121,7 @@ __metadata: emoji-regex: "npm:^8.0.0" is-fullwidth-code-point: "npm:^3.0.0" strip-ansi: "npm:^6.0.1" - checksum: 1e525e92e5eae0afd7454086eed9c818ee84374bb80328fc41217ae72ff5f065ef1c9d7f72da41de40c75fa8bb3dee63d92373fd492c84260a552c636392a47b + checksum: 10c0/1e525e92e5eae0afd7454086eed9c818ee84374bb80328fc41217ae72ff5f065ef1c9d7f72da41de40c75fa8bb3dee63d92373fd492c84260a552c636392a47b languageName: node linkType: hard @@ -6876,18 +8132,18 @@ __metadata: eastasianwidth: "npm:^0.2.0" emoji-regex: "npm:^9.2.2" strip-ansi: "npm:^7.0.1" - checksum: ab9c4264443d35b8b923cbdd513a089a60de339216d3b0ed3be3ba57d6880e1a192b70ae17225f764d7adbf5994e9bb8df253a944736c15a0240eff553c678ca + checksum: 10c0/ab9c4264443d35b8b923cbdd513a089a60de339216d3b0ed3be3ba57d6880e1a192b70ae17225f764d7adbf5994e9bb8df253a944736c15a0240eff553c678ca languageName: node linkType: hard -"string.prototype.padend@npm:^3.0.0": - version: 3.1.5 - resolution: "string.prototype.padend@npm:3.1.5" +"string-width@npm:^7.2.0": + version: 7.2.0 + resolution: "string-width@npm:7.2.0" dependencies: - call-bind: "npm:^1.0.2" - define-properties: "npm:^1.2.0" - es-abstract: "npm:^1.22.1" - checksum: 94ba0d7a463c225d0337ebe4f5c150577d6d09fe56c798f77cd2b11f8d7c9b7b05e65b3c2a273f03529a3f155edb2d78b9c06b7a91f964f89796010a6cbc1dfa + emoji-regex: "npm:^10.3.0" + get-east-asian-width: "npm:^1.0.0" + strip-ansi: "npm:^7.1.0" + checksum: 10c0/eb0430dd43f3199c7a46dcbf7a0b34539c76fe3aa62763d0b0655acdcbdf360b3f66f3d58ca25ba0205f42ea3491fa00f09426d3b7d3040e506878fc7664c9b9 languageName: node linkType: hard @@ -6898,7 +8154,19 @@ __metadata: call-bind: "npm:^1.0.2" define-properties: "npm:^1.2.0" es-abstract: "npm:^1.22.1" - checksum: 4f76c583908bcde9a71208ddff38f67f24c9ec8093631601666a0df8b52fad44dad2368c78895ce83eb2ae8e7068294cc96a02fc971ab234e4d5c9bb61ea4e34 + checksum: 10c0/4f76c583908bcde9a71208ddff38f67f24c9ec8093631601666a0df8b52fad44dad2368c78895ce83eb2ae8e7068294cc96a02fc971ab234e4d5c9bb61ea4e34 + languageName: node + linkType: hard + +"string.prototype.trim@npm:^1.2.9": + version: 1.2.9 + resolution: "string.prototype.trim@npm:1.2.9" + dependencies: + call-bind: "npm:^1.0.7" + define-properties: "npm:^1.2.1" + es-abstract: "npm:^1.23.0" + es-object-atoms: "npm:^1.0.0" + checksum: 10c0/dcef1a0fb61d255778155006b372dff8cc6c4394bc39869117e4241f41a2c52899c0d263ffc7738a1f9e61488c490b05c0427faa15151efad721e1a9fb2663c2 languageName: node linkType: hard @@ -6909,7 +8177,18 @@ __metadata: call-bind: "npm:^1.0.2" define-properties: "npm:^1.2.0" es-abstract: "npm:^1.22.1" - checksum: 53c24911c7c4d8d65f5ef5322de23a3d5b6b4db73273e05871d5ab4571ae5638f38f7f19d71d09116578fb060e5a145cc6a208af2d248c8baf7a34f44d32ce57 + checksum: 10c0/53c24911c7c4d8d65f5ef5322de23a3d5b6b4db73273e05871d5ab4571ae5638f38f7f19d71d09116578fb060e5a145cc6a208af2d248c8baf7a34f44d32ce57 + languageName: node + linkType: hard + +"string.prototype.trimend@npm:^1.0.8": + version: 1.0.8 + resolution: "string.prototype.trimend@npm:1.0.8" + dependencies: + call-bind: "npm:^1.0.7" + define-properties: "npm:^1.2.1" + es-object-atoms: "npm:^1.0.0" + checksum: 10c0/0a0b54c17c070551b38e756ae271865ac6cc5f60dabf2e7e343cceae7d9b02e1a1120a824e090e79da1b041a74464e8477e2da43e2775c85392be30a6f60963c languageName: node linkType: hard @@ -6920,25 +8199,18 @@ __metadata: call-bind: "npm:^1.0.2" define-properties: "npm:^1.2.0" es-abstract: "npm:^1.22.1" - checksum: 0bcf391b41ea16d4fda9c9953d0a7075171fe090d33b4cf64849af94944c50862995672ac03e0c5dba2940a213ad7f53515a668dac859ce22a0276289ae5cf4f - languageName: node - linkType: hard - -"string_decoder@npm:^1.1.1, string_decoder@npm:^1.3.0": - version: 1.3.0 - resolution: "string_decoder@npm:1.3.0" - dependencies: - safe-buffer: "npm:~5.2.0" - checksum: 810614ddb030e271cd591935dcd5956b2410dd079d64ff92a1844d6b7588bf992b3e1b69b0f4d34a3e06e0bd73046ac646b5264c1987b20d0601f81ef35d731d + checksum: 10c0/0bcf391b41ea16d4fda9c9953d0a7075171fe090d33b4cf64849af94944c50862995672ac03e0c5dba2940a213ad7f53515a668dac859ce22a0276289ae5cf4f languageName: node linkType: hard -"string_decoder@npm:~1.1.1": - version: 1.1.1 - resolution: "string_decoder@npm:1.1.1" +"string.prototype.trimstart@npm:^1.0.8": + version: 1.0.8 + resolution: "string.prototype.trimstart@npm:1.0.8" dependencies: - safe-buffer: "npm:~5.1.0" - checksum: b4f89f3a92fd101b5653ca3c99550e07bdf9e13b35037e9e2a1c7b47cec4e55e06ff3fc468e314a0b5e80bfbaf65c1ca5a84978764884ae9413bec1fc6ca924e + call-bind: "npm:^1.0.7" + define-properties: "npm:^1.2.1" + es-object-atoms: "npm:^1.0.0" + checksum: 10c0/d53af1899959e53c83b64a5fd120be93e067da740e7e75acb433849aa640782fb6c7d4cd5b84c954c84413745a3764df135a8afeb22908b86a835290788d8366 languageName: node linkType: hard @@ -6947,46 +8219,51 @@ __metadata: resolution: "strip-ansi@npm:6.0.1" dependencies: ansi-regex: "npm:^5.0.1" - checksum: 1ae5f212a126fe5b167707f716942490e3933085a5ff6c008ab97ab2f272c8025d3aa218b7bd6ab25729ca20cc81cddb252102f8751e13482a5199e873680952 + checksum: 10c0/1ae5f212a126fe5b167707f716942490e3933085a5ff6c008ab97ab2f272c8025d3aa218b7bd6ab25729ca20cc81cddb252102f8751e13482a5199e873680952 languageName: node linkType: hard -"strip-ansi@npm:^7.0.1": +"strip-ansi@npm:^7.0.1, strip-ansi@npm:^7.1.0": version: 7.1.0 resolution: "strip-ansi@npm:7.1.0" dependencies: ansi-regex: "npm:^6.0.1" - checksum: a198c3762e8832505328cbf9e8c8381de14a4fa50a4f9b2160138158ea88c0f5549fb50cb13c651c3088f47e63a108b34622ec18c0499b6c8c3a5ddf6b305ac4 + checksum: 10c0/a198c3762e8832505328cbf9e8c8381de14a4fa50a4f9b2160138158ea88c0f5549fb50cb13c651c3088f47e63a108b34622ec18c0499b6c8c3a5ddf6b305ac4 languageName: node linkType: hard "strip-bom@npm:^3.0.0": version: 3.0.0 resolution: "strip-bom@npm:3.0.0" - checksum: 51201f50e021ef16672593d7434ca239441b7b760e905d9f33df6e4f3954ff54ec0e0a06f100d028af0982d6f25c35cd5cda2ce34eaebccd0250b8befb90d8f1 + checksum: 10c0/51201f50e021ef16672593d7434ca239441b7b760e905d9f33df6e4f3954ff54ec0e0a06f100d028af0982d6f25c35cd5cda2ce34eaebccd0250b8befb90d8f1 languageName: node linkType: hard -"strip-final-newline@npm:^3.0.0": - version: 3.0.0 - resolution: "strip-final-newline@npm:3.0.0" - checksum: a771a17901427bac6293fd416db7577e2bc1c34a19d38351e9d5478c3c415f523f391003b42ed475f27e33a78233035df183525395f731d3bfb8cdcbd4da08ce +"strip-bom@npm:^4.0.0": + version: 4.0.0 + resolution: "strip-bom@npm:4.0.0" + checksum: 10c0/26abad1172d6bc48985ab9a5f96c21e440f6e7e476686de49be813b5a59b3566dccb5c525b831ec54fe348283b47f3ffb8e080bc3f965fde12e84df23f6bb7ef + languageName: node + linkType: hard + +"strip-final-newline@npm:^2.0.0": + version: 2.0.0 + resolution: "strip-final-newline@npm:2.0.0" + checksum: 10c0/bddf8ccd47acd85c0e09ad7375409d81653f645fda13227a9d459642277c253d877b68f2e5e4d819fe75733b0e626bac7e954c04f3236f6d196f79c94fa4a96f languageName: node linkType: hard -"strip-indent@npm:^3.0.0": +"strip-final-newline@npm:^3.0.0": version: 3.0.0 - resolution: "strip-indent@npm:3.0.0" - dependencies: - min-indent: "npm:^1.0.0" - checksum: ae0deaf41c8d1001c5d4fbe16cb553865c1863da4fae036683b474fa926af9fc121e155cb3fc57a68262b2ae7d5b8420aa752c97a6428c315d00efe2a3875679 + resolution: "strip-final-newline@npm:3.0.0" + checksum: 10c0/a771a17901427bac6293fd416db7577e2bc1c34a19d38351e9d5478c3c415f523f391003b42ed475f27e33a78233035df183525395f731d3bfb8cdcbd4da08ce languageName: node linkType: hard "strip-json-comments@npm:^3.1.1": version: 3.1.1 resolution: "strip-json-comments@npm:3.1.1" - checksum: 9681a6257b925a7fa0f285851c0e613cc934a50661fa7bb41ca9cbbff89686bb4a0ee366e6ecedc4daafd01e83eee0720111ab294366fe7c185e935475ebcecd + checksum: 10c0/9681a6257b925a7fa0f285851c0e613cc934a50661fa7bb41ca9cbbff89686bb4a0ee366e6ecedc4daafd01e83eee0720111ab294366fe7c185e935475ebcecd languageName: node linkType: hard @@ -6999,7 +8276,7 @@ __metadata: through: "npm:^2.3.4" bin: sl-log-transformer: bin/sl-log-transformer.js - checksum: 3c3b8aa8f34d661910563ff996412e2f527fc814e699a376854b554d4a4294ab7e285b4e2c08a080a7b19c5600a9b93a98798d3ac600fe3de545ca6605c07829 + checksum: 10c0/3c3b8aa8f34d661910563ff996412e2f527fc814e699a376854b554d4a4294ab7e285b4e2c08a080a7b19c5600a9b93a98798d3ac600fe3de545ca6605c07829 languageName: node linkType: hard @@ -7008,7 +8285,7 @@ __metadata: resolution: "supports-color@npm:5.5.0" dependencies: has-flag: "npm:^3.0.0" - checksum: 6ae5ff319bfbb021f8a86da8ea1f8db52fac8bd4d499492e30ec17095b58af11f0c55f8577390a749b1c4dde691b6a0315dab78f5f54c9b3d83f8fb5905c1c05 + checksum: 10c0/6ae5ff319bfbb021f8a86da8ea1f8db52fac8bd4d499492e30ec17095b58af11f0c55f8577390a749b1c4dde691b6a0315dab78f5f54c9b3d83f8fb5905c1c05 languageName: node linkType: hard @@ -7017,42 +8294,34 @@ __metadata: resolution: "supports-color@npm:7.2.0" dependencies: has-flag: "npm:^4.0.0" - checksum: afb4c88521b8b136b5f5f95160c98dee7243dc79d5432db7efc27efb219385bbc7d9427398e43dd6cc730a0f87d5085ce1652af7efbe391327bc0a7d0f7fc124 + checksum: 10c0/afb4c88521b8b136b5f5f95160c98dee7243dc79d5432db7efc27efb219385bbc7d9427398e43dd6cc730a0f87d5085ce1652af7efbe391327bc0a7d0f7fc124 languageName: node linkType: hard -"supports-preserve-symlinks-flag@npm:^1.0.0": - version: 1.0.0 - resolution: "supports-preserve-symlinks-flag@npm:1.0.0" - checksum: 6c4032340701a9950865f7ae8ef38578d8d7053f5e10518076e6554a9381fa91bd9c6850193695c141f32b21f979c985db07265a758867bac95de05f7d8aeb39 +"supports-color@npm:^8.0.0": + version: 8.1.1 + resolution: "supports-color@npm:8.1.1" + dependencies: + has-flag: "npm:^4.0.0" + checksum: 10c0/ea1d3c275dd604c974670f63943ed9bd83623edc102430c05adb8efc56ba492746b6e95386e7831b872ec3807fd89dd8eb43f735195f37b5ec343e4234cc7e89 languageName: node linkType: hard -"table-layout@npm:^3.0.0": - version: 3.0.2 - resolution: "table-layout@npm:3.0.2" - dependencies: - "@75lb/deep-merge": "npm:^1.1.1" - array-back: "npm:^6.2.2" - command-line-args: "npm:^5.2.1" - command-line-usage: "npm:^7.0.0" - stream-read-all: "npm:^3.0.1" - typical: "npm:^7.1.1" - wordwrapjs: "npm:^5.1.0" - bin: - table-layout: bin/cli.js - checksum: f2ccda5abe6c834e9cf4259ef7a3da572dfe38aeffe87f6955f0f49bab0d4d6b7b17f7d19b5682b96dd5446d69b50a15117b1a074a1f5236a0706dc53d20f02b +"supports-preserve-symlinks-flag@npm:^1.0.0": + version: 1.0.0 + resolution: "supports-preserve-symlinks-flag@npm:1.0.0" + checksum: 10c0/6c4032340701a9950865f7ae8ef38578d8d7053f5e10518076e6554a9381fa91bd9c6850193695c141f32b21f979c985db07265a758867bac95de05f7d8aeb39 languageName: node linkType: hard "tapable@npm:^2.2.0": version: 2.2.1 resolution: "tapable@npm:2.2.1" - checksum: bc40e6efe1e554d075469cedaba69a30eeb373552aaf41caeaaa45bf56ffacc2674261b106245bd566b35d8f3329b52d838e851ee0a852120acae26e622925c9 + checksum: 10c0/bc40e6efe1e554d075469cedaba69a30eeb373552aaf41caeaaa45bf56ffacc2674261b106245bd566b35d8f3329b52d838e851ee0a852120acae26e622925c9 languageName: node linkType: hard -"tar@npm:^6.1.11, tar@npm:^6.1.2, tar@npm:^6.2.0": +"tar@npm:^6.1.11, tar@npm:^6.1.2": version: 6.2.0 resolution: "tar@npm:6.2.0" dependencies: @@ -7062,171 +8331,146 @@ __metadata: minizlib: "npm:^2.1.1" mkdirp: "npm:^1.0.3" yallist: "npm:^4.0.0" - checksum: 02ca064a1a6b4521fef88c07d389ac0936730091f8c02d30ea60d472e0378768e870769ab9e986d87807bfee5654359cf29ff4372746cc65e30cbddc352660d8 + checksum: 10c0/02ca064a1a6b4521fef88c07d389ac0936730091f8c02d30ea60d472e0378768e870769ab9e986d87807bfee5654359cf29ff4372746cc65e30cbddc352660d8 languageName: node linkType: hard -"telegraf@npm:^4.15.0": - version: 4.15.0 - resolution: "telegraf@npm:4.15.0" +"tar@npm:^6.2.1": + version: 6.2.1 + resolution: "tar@npm:6.2.1" dependencies: - "@telegraf/types": "npm:^6.9.1" - abort-controller: "npm:^3.0.0" - debug: "npm:^4.3.4" - mri: "npm:^1.2.0" - node-fetch: "npm:^2.6.8" - p-timeout: "npm:^4.1.0" - safe-compare: "npm:^1.1.4" - sandwich-stream: "npm:^2.0.2" - bin: - telegraf: lib/cli.mjs - checksum: c91d13cf8986713544677d28e320d6be9e30fd064c6981e726c2daf3ca5f9b569fe353497e41c210c242dc09fec3c1bddd4cde1679f5c2fda6f0fad94bdbed42 + chownr: "npm:^2.0.0" + fs-minipass: "npm:^2.0.0" + minipass: "npm:^5.0.0" + minizlib: "npm:^2.1.1" + mkdirp: "npm:^1.0.3" + yallist: "npm:^4.0.0" + checksum: 10c0/a5eca3eb50bc11552d453488344e6507156b9193efd7635e98e867fab275d527af53d8866e2370cd09dfe74378a18111622ace35af6a608e5223a7d27fe99537 languageName: node linkType: hard "temp-dir@npm:^3.0.0": version: 3.0.0 resolution: "temp-dir@npm:3.0.0" - checksum: a86978a400984cd5f315b77ebf3fe53bb58c61f192278cafcb1f3fb32d584a21dc8e08b93171d7874b7cc972234d3455c467306cc1bfc4524b622e5ad3bfd671 + checksum: 10c0/a86978a400984cd5f315b77ebf3fe53bb58c61f192278cafcb1f3fb32d584a21dc8e08b93171d7874b7cc972234d3455c467306cc1bfc4524b622e5ad3bfd671 languageName: node linkType: hard -"text-extensions@npm:^1.0.0": - version: 1.9.0 - resolution: "text-extensions@npm:1.9.0" - checksum: 9ad5a9f723a871e2d884e132d7e93f281c60b5759c95f3f6b04704856548715d93a36c10dbaf5f12b91bf405f0cf3893bf169d4d143c0f5509563b992d385443 +"test-exclude@npm:^6.0.0": + version: 6.0.0 + resolution: "test-exclude@npm:6.0.0" + dependencies: + "@istanbuljs/schema": "npm:^0.1.2" + glob: "npm:^7.1.4" + minimatch: "npm:^3.0.4" + checksum: 10c0/019d33d81adff3f9f1bfcff18125fb2d3c65564f437d9be539270ee74b994986abb8260c7c2ce90e8f30162178b09dbbce33c6389273afac4f36069c48521f57 languageName: node linkType: hard "text-extensions@npm:^2.0.0": version: 2.4.0 resolution: "text-extensions@npm:2.4.0" - checksum: 6790e7ee72ad4d54f2e96c50a13e158bb57ce840dddc770e80960ed1550115c57bdc2cee45d5354d7b4f269636f5ca06aab4d6e0281556c841389aa837b23fcb + checksum: 10c0/6790e7ee72ad4d54f2e96c50a13e158bb57ce840dddc770e80960ed1550115c57bdc2cee45d5354d7b4f269636f5ca06aab4d6e0281556c841389aa837b23fcb languageName: node linkType: hard "text-table@npm:^0.2.0": version: 0.2.0 resolution: "text-table@npm:0.2.0" - checksum: 02805740c12851ea5982686810702e2f14369a5f4c5c40a836821e3eefc65ffeec3131ba324692a37608294b0fd8c1e55a2dd571ffed4909822787668ddbee5c - languageName: node - linkType: hard - -"through2@npm:^2.0.0": - version: 2.0.5 - resolution: "through2@npm:2.0.5" - dependencies: - readable-stream: "npm:~2.3.6" - xtend: "npm:~4.0.1" - checksum: cbfe5b57943fa12b4f8c043658c2a00476216d79c014895cef1ac7a1d9a8b31f6b438d0e53eecbb81054b93128324a82ecd59ec1a4f91f01f7ac113dcb14eade + checksum: 10c0/02805740c12851ea5982686810702e2f14369a5f4c5c40a836821e3eefc65ffeec3131ba324692a37608294b0fd8c1e55a2dd571ffed4909822787668ddbee5c languageName: node linkType: hard -"through@npm:2, through@npm:>=2.2.7 <3, through@npm:^2.3.4": +"through@npm:>=2.2.7 <3, through@npm:^2.3.4": version: 2.3.8 resolution: "through@npm:2.3.8" - checksum: 4b09f3774099de0d4df26d95c5821a62faee32c7e96fb1f4ebd54a2d7c11c57fe88b0a0d49cf375de5fee5ae6bf4eb56dbbf29d07366864e2ee805349970d3cc + checksum: 10c0/4b09f3774099de0d4df26d95c5821a62faee32c7e96fb1f4ebd54a2d7c11c57fe88b0a0d49cf375de5fee5ae6bf4eb56dbbf29d07366864e2ee805349970d3cc languageName: node linkType: hard -"tmp@npm:^0.0.33": - version: 0.0.33 - resolution: "tmp@npm:0.0.33" +"tinyglobby@npm:^0.2.9": + version: 0.2.9 + resolution: "tinyglobby@npm:0.2.9" dependencies: - os-tmpdir: "npm:~1.0.2" - checksum: 69863947b8c29cabad43fe0ce65cec5bb4b481d15d4b4b21e036b060b3edbf3bc7a5541de1bacb437bb3f7c4538f669752627fdf9b4aaf034cebd172ba373408 + fdir: "npm:^6.4.0" + picomatch: "npm:^4.0.2" + checksum: 10c0/f65f847afe70f56de069d4f1f9c3b0c1a76aaf2b0297656754734a83b9bac8e105b5534dfbea8599560476b88f7b747d0855370a957a07246d18b976addb87ec languageName: node linkType: hard -"to-regex-range@npm:^5.0.1": - version: 5.0.1 - resolution: "to-regex-range@npm:5.0.1" - dependencies: - is-number: "npm:^7.0.0" - checksum: 487988b0a19c654ff3e1961b87f471702e708fa8a8dd02a298ef16da7206692e8552a0250e8b3e8759270f62e9d8314616f6da274734d3b558b1fc7b7724e892 +"tinyrainbow@npm:^1.2.0": + version: 1.2.0 + resolution: "tinyrainbow@npm:1.2.0" + checksum: 10c0/7f78a4b997e5ba0f5ecb75e7ed786f30bab9063716e7dff24dd84013fb338802e43d176cb21ed12480561f5649a82184cf31efb296601a29d38145b1cdb4c192 languageName: node linkType: hard -"toidentifier@npm:1.0.1": - version: 1.0.1 - resolution: "toidentifier@npm:1.0.1" - checksum: 93937279934bd66cc3270016dd8d0afec14fb7c94a05c72dc57321f8bd1fa97e5bea6d1f7c89e728d077ca31ea125b78320a616a6c6cd0e6b9cb94cb864381c1 +"tmpl@npm:1.0.5": + version: 1.0.5 + resolution: "tmpl@npm:1.0.5" + checksum: 10c0/f935537799c2d1922cb5d6d3805f594388f75338fe7a4a9dac41504dd539704ca4db45b883b52e7b0aa5b2fd5ddadb1452bf95cd23a69da2f793a843f9451cc9 languageName: node linkType: hard -"tr46@npm:^3.0.0": - version: 3.0.0 - resolution: "tr46@npm:3.0.0" +"to-fast-properties@npm:^2.0.0": + version: 2.0.0 + resolution: "to-fast-properties@npm:2.0.0" + checksum: 10c0/b214d21dbfb4bce3452b6244b336806ffea9c05297148d32ebb428d5c43ce7545bdfc65a1ceb58c9ef4376a65c0cb2854d645f33961658b3e3b4f84910ddcdd7 + languageName: node + linkType: hard + +"to-regex-range@npm:^5.0.1": + version: 5.0.1 + resolution: "to-regex-range@npm:5.0.1" dependencies: - punycode: "npm:^2.1.1" - checksum: cdc47cad3a9d0b6cb293e39ccb1066695ae6fdd39b9e4f351b010835a1f8b4f3a6dc3a55e896b421371187f22b48d7dac1b693de4f6551bdef7b6ab6735dfe3b + is-number: "npm:^7.0.0" + checksum: 10c0/487988b0a19c654ff3e1961b87f471702e708fa8a8dd02a298ef16da7206692e8552a0250e8b3e8759270f62e9d8314616f6da274734d3b558b1fc7b7724e892 languageName: node linkType: hard "tr46@npm:~0.0.3": version: 0.0.3 resolution: "tr46@npm:0.0.3" - checksum: 047cb209a6b60c742f05c9d3ace8fa510bff609995c129a37ace03476a9b12db4dbf975e74600830ef0796e18882b2381fb5fb1f6b4f96b832c374de3ab91a11 + checksum: 10c0/047cb209a6b60c742f05c9d3ace8fa510bff609995c129a37ace03476a9b12db4dbf975e74600830ef0796e18882b2381fb5fb1f6b4f96b832c374de3ab91a11 languageName: node linkType: hard "treeverse@npm:^3.0.0": version: 3.0.0 resolution: "treeverse@npm:3.0.0" - checksum: 286479b9c05a8fb0538ee7d67a5502cea7704f258057c784c9c1118a2f598788b2c0f7a8d89e74648af88af0225b31766acecd78e6060736f09b21dd3fa255db - languageName: node - linkType: hard - -"trim-newlines@npm:^3.0.0": - version: 3.0.1 - resolution: "trim-newlines@npm:3.0.1" - checksum: 03cfefde6c59ff57138412b8c6be922ecc5aec30694d784f2a65ef8dcbd47faef580b7de0c949345abdc56ec4b4abf64dd1e5aea619b200316e471a3dd5bf1f6 + checksum: 10c0/286479b9c05a8fb0538ee7d67a5502cea7704f258057c784c9c1118a2f598788b2c0f7a8d89e74648af88af0225b31766acecd78e6060736f09b21dd3fa255db languageName: node linkType: hard -"ts-api-utils@npm:^1.0.1": - version: 1.0.3 - resolution: "ts-api-utils@npm:1.0.3" +"ts-api-utils@npm:^1.3.0": + version: 1.3.0 + resolution: "ts-api-utils@npm:1.3.0" peerDependencies: typescript: ">=4.2.0" - checksum: 9408338819c3aca2a709f0bc54e3f874227901506cacb1163612a6c8a43df224174feb965a5eafdae16f66fc68fd7bfee8d3275d0fa73fbb8699e03ed26520c9 + checksum: 10c0/f54a0ba9ed56ce66baea90a3fa087a484002e807f28a8ccb2d070c75e76bde64bd0f6dce98b3802834156306050871b67eec325cb4e918015a360a3f0868c77c languageName: node linkType: hard -"tsconfig-paths@npm:^3.14.2": - version: 3.14.2 - resolution: "tsconfig-paths@npm:3.14.2" +"tsconfig-paths@npm:^3.15.0": + version: 3.15.0 + resolution: "tsconfig-paths@npm:3.15.0" dependencies: "@types/json5": "npm:^0.0.29" json5: "npm:^1.0.2" minimist: "npm:^1.2.6" strip-bom: "npm:^3.0.0" - checksum: fdc92bb7b18b31c0e76f8ec4f98d07236b09590fd6578e587ad024792c8b2235d65125a8fd007fa47a84400f84ceccbf33f24e5198d953249e7204f4cef3517c - languageName: node - linkType: hard - -"tslib@npm:^2.1.0, tslib@npm:^2.6.2": - version: 2.6.2 - resolution: "tslib@npm:2.6.2" - checksum: e03a8a4271152c8b26604ed45535954c0a45296e32445b4b87f8a5abdb2421f40b59b4ca437c4346af0f28179780d604094eb64546bee2019d903d01c6c19bdb - languageName: node - linkType: hard - -"tsscmp@npm:1.0.6": - version: 1.0.6 - resolution: "tsscmp@npm:1.0.6" - checksum: 2f79a9455e7e3e8071995f98cdf3487ccfc91b760bec21a9abb4d90519557eafaa37246e87c92fa8bf3fef8fd30cfd0cc3c4212bb929baa9fb62494bfa4d24b2 + checksum: 10c0/5b4f301a2b7a3766a986baf8fc0e177eb80bdba6e396792ff92dc23b5bca8bb279fc96517dcaaef63a3b49bebc6c4c833653ec58155780bc906bdbcf7dda0ef5 languageName: node linkType: hard -"tuf-js@npm:^2.1.0": - version: 2.1.0 - resolution: "tuf-js@npm:2.1.0" +"tuf-js@npm:^2.2.1": + version: 2.2.1 + resolution: "tuf-js@npm:2.2.1" dependencies: - "@tufjs/models": "npm:2.0.0" + "@tufjs/models": "npm:2.0.1" debug: "npm:^4.3.4" - make-fetch-happen: "npm:^13.0.0" - checksum: aba49761e5f06776632c1d7855488dc9f6fb030c483ce011cd5ffb168e2145c634bf3161e762cd7f90e5b5d009e6ac57b5e62dd11bdb9f20a072a98aae96709d + make-fetch-happen: "npm:^13.0.1" + checksum: 10c0/7c17b097571f001730d7be0aeaec6bec46ed2f25bf73990b1133c383d511a1ce65f831e5d6d78770940a85b67664576ff0e4c98e5421bab6d33ff36e4be500c8 languageName: node linkType: hard @@ -7235,73 +8479,56 @@ __metadata: resolution: "type-check@npm:0.4.0" dependencies: prelude-ls: "npm:^1.2.1" - checksum: 7b3fd0ed43891e2080bf0c5c504b418fbb3e5c7b9708d3d015037ba2e6323a28152ec163bcb65212741fa5d2022e3075ac3c76440dbd344c9035f818e8ecee58 + checksum: 10c0/7b3fd0ed43891e2080bf0c5c504b418fbb3e5c7b9708d3d015037ba2e6323a28152ec163bcb65212741fa5d2022e3075ac3c76440dbd344c9035f818e8ecee58 languageName: node linkType: hard -"type-fest@npm:^0.18.0": - version: 0.18.1 - resolution: "type-fest@npm:0.18.1" - checksum: 303f5ecf40d03e1d5b635ce7660de3b33c18ed8ebc65d64920c02974d9e684c72483c23f9084587e9dd6466a2ece1da42ddc95b412a461794dd30baca95e2bac +"type-detect@npm:4.0.8": + version: 4.0.8 + resolution: "type-detect@npm:4.0.8" + checksum: 10c0/8fb9a51d3f365a7de84ab7f73b653534b61b622aa6800aecdb0f1095a4a646d3f5eb295322127b6573db7982afcd40ab492d038cf825a42093a58b1e1353e0bd languageName: node linkType: hard "type-fest@npm:^0.20.2": version: 0.20.2 resolution: "type-fest@npm:0.20.2" - checksum: dea9df45ea1f0aaa4e2d3bed3f9a0bfe9e5b2592bddb92eb1bf06e50bcf98dbb78189668cd8bc31a0511d3fc25539b4cd5c704497e53e93e2d40ca764b10bfc3 + checksum: 10c0/dea9df45ea1f0aaa4e2d3bed3f9a0bfe9e5b2592bddb92eb1bf06e50bcf98dbb78189668cd8bc31a0511d3fc25539b4cd5c704497e53e93e2d40ca764b10bfc3 languageName: node linkType: hard "type-fest@npm:^0.21.3": version: 0.21.3 resolution: "type-fest@npm:0.21.3" - checksum: 902bd57bfa30d51d4779b641c2bc403cdf1371fb9c91d3c058b0133694fcfdb817aef07a47f40faf79039eecbaa39ee9d3c532deff244f3a19ce68cea71a61e8 - languageName: node - linkType: hard - -"type-fest@npm:^0.6.0": - version: 0.6.0 - resolution: "type-fest@npm:0.6.0" - checksum: 0c585c26416fce9ecb5691873a1301b5aff54673c7999b6f925691ed01f5b9232db408cdbb0bd003d19f5ae284322523f44092d1f81ca0a48f11f7cf0be8cd38 - languageName: node - linkType: hard - -"type-fest@npm:^0.8.1": - version: 0.8.1 - resolution: "type-fest@npm:0.8.1" - checksum: dffbb99329da2aa840f506d376c863bd55f5636f4741ad6e65e82f5ce47e6914108f44f340a0b74009b0cb5d09d6752ae83203e53e98b1192cf80ecee5651636 + checksum: 10c0/902bd57bfa30d51d4779b641c2bc403cdf1371fb9c91d3c058b0133694fcfdb817aef07a47f40faf79039eecbaa39ee9d3c532deff244f3a19ce68cea71a61e8 languageName: node linkType: hard "type-fest@npm:^2.5.1": version: 2.19.0 resolution: "type-fest@npm:2.19.0" - checksum: a5a7ecf2e654251613218c215c7493574594951c08e52ab9881c9df6a6da0aeca7528c213c622bc374b4e0cb5c443aa3ab758da4e3c959783ce884c3194e12cb + checksum: 10c0/a5a7ecf2e654251613218c215c7493574594951c08e52ab9881c9df6a6da0aeca7528c213c622bc374b4e0cb5c443aa3ab758da4e3c959783ce884c3194e12cb languageName: node linkType: hard "type-fest@npm:^3.8.0": version: 3.13.1 resolution: "type-fest@npm:3.13.1" - checksum: 547d22186f73a8c04590b70dcf63baff390078c75ea8acd366bbd510fd0646e348bd1970e47ecf795b7cff0b41d26e9c475c1fedd6ef5c45c82075fbf916b629 + checksum: 10c0/547d22186f73a8c04590b70dcf63baff390078c75ea8acd366bbd510fd0646e348bd1970e47ecf795b7cff0b41d26e9c475c1fedd6ef5c45c82075fbf916b629 languageName: node linkType: hard "type-fest@npm:^4.2.0, type-fest@npm:^4.6.0": version: 4.8.2 resolution: "type-fest@npm:4.8.2" - checksum: a6af9dd3fe54ed02baf192b572d370d8e234b6be40507f5627f6a156c8aa2a689defc3f03a77cab4687e8e27066d157869988485c1a23c7267cb3f6d8d220e9d + checksum: 10c0/a6af9dd3fe54ed02baf192b572d370d8e234b6be40507f5627f6a156c8aa2a689defc3f03a77cab4687e8e27066d157869988485c1a23c7267cb3f6d8d220e9d languageName: node linkType: hard -"type-is@npm:^1.6.16": - version: 1.6.18 - resolution: "type-is@npm:1.6.18" - dependencies: - media-typer: "npm:0.3.0" - mime-types: "npm:~2.1.24" - checksum: a23daeb538591b7efbd61ecf06b6feb2501b683ffdc9a19c74ef5baba362b4347e42f1b4ed81f5882a8c96a3bfff7f93ce3ffaf0cbbc879b532b04c97a55db9d +"type-fest@npm:^4.23.0, type-fest@npm:^4.7.1": + version: 4.26.1 + resolution: "type-fest@npm:4.26.1" + checksum: 10c0/d2719ff8d380befe8a3c61068f37f28d6fa2849fd140c5d2f0f143099e371da6856aad7c97e56b83329d45bfe504afe9fd936a7cff600cc0d46aa9ffb008d6c6 languageName: node linkType: hard @@ -7312,7 +8539,18 @@ __metadata: call-bind: "npm:^1.0.2" get-intrinsic: "npm:^1.2.1" is-typed-array: "npm:^1.1.10" - checksum: ebad66cdf00c96b1395dffc7873169cf09801fca5954507a484f41f253feb1388d815db297b0b3bb8ce7421eac6f7ff45e2ec68450a3d68408aa4ae02fcf3a6c + checksum: 10c0/ebad66cdf00c96b1395dffc7873169cf09801fca5954507a484f41f253feb1388d815db297b0b3bb8ce7421eac6f7ff45e2ec68450a3d68408aa4ae02fcf3a6c + languageName: node + linkType: hard + +"typed-array-buffer@npm:^1.0.2": + version: 1.0.2 + resolution: "typed-array-buffer@npm:1.0.2" + dependencies: + call-bind: "npm:^1.0.7" + es-errors: "npm:^1.3.0" + is-typed-array: "npm:^1.1.13" + checksum: 10c0/9e043eb38e1b4df4ddf9dde1aa64919ae8bb909571c1cc4490ba777d55d23a0c74c7d73afcdd29ec98616d91bb3ae0f705fad4421ea147e1daf9528200b562da languageName: node linkType: hard @@ -7324,7 +8562,20 @@ __metadata: for-each: "npm:^0.3.3" has-proto: "npm:^1.0.1" is-typed-array: "npm:^1.1.10" - checksum: 6696435d53ce0e704ff6760c57ccc35138aec5f87859e03eb2a3246336d546feae367952dbc918116f3f0dffbe669734e3cbd8960283c2fa79aac925db50d888 + checksum: 10c0/6696435d53ce0e704ff6760c57ccc35138aec5f87859e03eb2a3246336d546feae367952dbc918116f3f0dffbe669734e3cbd8960283c2fa79aac925db50d888 + languageName: node + linkType: hard + +"typed-array-byte-length@npm:^1.0.1": + version: 1.0.1 + resolution: "typed-array-byte-length@npm:1.0.1" + dependencies: + call-bind: "npm:^1.0.7" + for-each: "npm:^0.3.3" + gopd: "npm:^1.0.1" + has-proto: "npm:^1.0.3" + is-typed-array: "npm:^1.1.13" + checksum: 10c0/fcebeffb2436c9f355e91bd19e2368273b88c11d1acc0948a2a306792f1ab672bce4cfe524ab9f51a0505c9d7cd1c98eff4235c4f6bfef6a198f6cfc4ff3d4f3 languageName: node linkType: hard @@ -7337,7 +8588,21 @@ __metadata: for-each: "npm:^0.3.3" has-proto: "npm:^1.0.1" is-typed-array: "npm:^1.1.10" - checksum: 4036ce007ae9752931bed3dd61e0d6de2a3e5f6a5a85a05f3adb35388d2c0728f9b1a1e638d75579f168e49c289bfb5417f00e96d4ab081f38b647fc854ff7a5 + checksum: 10c0/4036ce007ae9752931bed3dd61e0d6de2a3e5f6a5a85a05f3adb35388d2c0728f9b1a1e638d75579f168e49c289bfb5417f00e96d4ab081f38b647fc854ff7a5 + languageName: node + linkType: hard + +"typed-array-byte-offset@npm:^1.0.2": + version: 1.0.2 + resolution: "typed-array-byte-offset@npm:1.0.2" + dependencies: + available-typed-arrays: "npm:^1.0.7" + call-bind: "npm:^1.0.7" + for-each: "npm:^0.3.3" + gopd: "npm:^1.0.1" + has-proto: "npm:^1.0.3" + is-typed-array: "npm:^1.1.13" + checksum: 10c0/d2628bc739732072e39269389a758025f75339de2ed40c4f91357023c5512d237f255b633e3106c461ced41907c1bf9a533c7e8578066b0163690ca8bc61b22f languageName: node linkType: hard @@ -7348,57 +8613,41 @@ __metadata: call-bind: "npm:^1.0.2" for-each: "npm:^0.3.3" is-typed-array: "npm:^1.1.9" - checksum: c5163c0103d07fefc8a2ad0fc151f9ca9a1f6422098c00f695d55f9896e4d63614cd62cf8d8a031c6cee5f418e8980a533796597174da4edff075b3d275a7e23 + checksum: 10c0/c5163c0103d07fefc8a2ad0fc151f9ca9a1f6422098c00f695d55f9896e4d63614cd62cf8d8a031c6cee5f418e8980a533796597174da4edff075b3d275a7e23 languageName: node linkType: hard -"typedarray-to-buffer@npm:^3.1.5": - version: 3.1.5 - resolution: "typedarray-to-buffer@npm:3.1.5" +"typed-array-length@npm:^1.0.6": + version: 1.0.6 + resolution: "typed-array-length@npm:1.0.6" dependencies: - is-typedarray: "npm:^1.0.0" - checksum: 4ac5b7a93d604edabf3ac58d3a2f7e07487e9f6e98195a080e81dbffdc4127817f470f219d794a843b87052cedef102b53ac9b539855380b8c2172054b7d5027 - languageName: node - linkType: hard - -"typedarray@npm:^0.0.6": - version: 0.0.6 - resolution: "typedarray@npm:0.0.6" - checksum: 6005cb31df50eef8b1f3c780eb71a17925f3038a100d82f9406ac2ad1de5eb59f8e6decbdc145b3a1f8e5836e17b0c0002fb698b9fe2516b8f9f9ff602d36412 + call-bind: "npm:^1.0.7" + for-each: "npm:^0.3.3" + gopd: "npm:^1.0.1" + has-proto: "npm:^1.0.3" + is-typed-array: "npm:^1.1.13" + possible-typed-array-names: "npm:^1.0.0" + checksum: 10c0/74253d7dc488eb28b6b2711cf31f5a9dcefc9c41b0681fd1c178ed0a1681b4468581a3626d39cd4df7aee3d3927ab62be06aa9ca74e5baf81827f61641445b77 languageName: node linkType: hard -"typescript@npm:^5.3.2": - version: 5.3.2 - resolution: "typescript@npm:5.3.2" +"typescript@npm:^5.6.3": + version: 5.6.3 + resolution: "typescript@npm:5.6.3" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: d7dbe1fbe19039e36a65468ea64b5d338c976550394ba576b7af9c68ed40c0bc5d12ecce390e4b94b287a09a71bd3229f19c2d5680611f35b7c53a3898791159 + checksum: 10c0/44f61d3fb15c35359bc60399cb8127c30bae554cd555b8e2b46d68fa79d680354b83320ad419ff1b81a0bdf324197b29affe6cc28988cd6a74d4ac60c94f9799 languageName: node linkType: hard -"typescript@patch:typescript@npm%3A^5.3.2#optional!builtin": - version: 5.3.2 - resolution: "typescript@patch:typescript@npm%3A5.3.2#optional!builtin::version=5.3.2&hash=e012d7" +"typescript@patch:typescript@npm%3A^5.6.3#optional!builtin": + version: 5.6.3 + resolution: "typescript@patch:typescript@npm%3A5.6.3#optional!builtin::version=5.6.3&hash=8c6c40" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: 73c8bad74e732d93211c9d77f28b03307e2f5fc6a0afc73f4b783261ab567686a16d6ae958bdaef383a00be1b0b8c8b6741dd6ca3d13af4963fa7e47456d49c7 - languageName: node - linkType: hard - -"typical@npm:^4.0.0": - version: 4.0.0 - resolution: "typical@npm:4.0.0" - checksum: f300b198fb9fe743859b75ec761d53c382723dc178bbce4957d9cb754f2878a44ce17dc0b6a5156c52be1065449271f63754ba594dac225b80ce3aa39f9241ed - languageName: node - linkType: hard - -"typical@npm:^7.1.1": - version: 7.1.1 - resolution: "typical@npm:7.1.1" - checksum: bbb28ccd09909446759db1b50bb466826077b4fdf99c3be963539ed9ee84090479976df9c51279302b9b4d24573657911b5a2b9d5e9996ed2daab9b02e0970ba + checksum: 10c0/7c9d2e07c81226d60435939618c91ec2ff0b75fbfa106eec3430f0fcf93a584bc6c73176676f532d78c3594fe28a54b36eb40b3d75593071a7ec91301533ace7 languageName: node linkType: hard @@ -7407,7 +8656,7 @@ __metadata: resolution: "uglify-js@npm:3.17.4" bin: uglifyjs: bin/uglifyjs - checksum: 8b7fcdca69deb284fed7d2025b73eb747ce37f9aca6af53422844f46427152d5440601b6e2a033e77856a2f0591e4167153d5a21b68674ad11f662034ec13ced + checksum: 10c0/8b7fcdca69deb284fed7d2025b73eb747ce37f9aca6af53422844f46427152d5440601b6e2a033e77856a2f0591e4167153d5a21b68674ad11f662034ec13ced languageName: node linkType: hard @@ -7419,21 +8668,28 @@ __metadata: has-bigints: "npm:^1.0.2" has-symbols: "npm:^1.0.3" which-boxed-primitive: "npm:^1.0.2" - checksum: 81ca2e81134167cc8f75fa79fbcc8a94379d6c61de67090986a2273850989dd3bae8440c163121b77434b68263e34787a675cbdcb34bb2f764c6b9c843a11b66 + checksum: 10c0/81ca2e81134167cc8f75fa79fbcc8a94379d6c61de67090986a2273850989dd3bae8440c163121b77434b68263e34787a675cbdcb34bb2f764c6b9c843a11b66 languageName: node linkType: hard "undici-types@npm:~5.26.4": version: 5.26.5 resolution: "undici-types@npm:5.26.5" - checksum: bb673d7876c2d411b6eb6c560e0c571eef4a01c1c19925175d16e3a30c4c428181fb8d7ae802a261f283e4166a0ac435e2f505743aa9e45d893f9a3df017b501 + checksum: 10c0/bb673d7876c2d411b6eb6c560e0c571eef4a01c1c19925175d16e3a30c4c428181fb8d7ae802a261f283e4166a0ac435e2f505743aa9e45d893f9a3df017b501 + languageName: node + linkType: hard + +"undici-types@npm:~6.19.2": + version: 6.19.8 + resolution: "undici-types@npm:6.19.8" + checksum: 10c0/078afa5990fba110f6824823ace86073b4638f1d5112ee26e790155f481f2a868cc3e0615505b6f4282bdf74a3d8caad715fd809e870c2bb0704e3ea6082f344 languageName: node linkType: hard "unicorn-magic@npm:^0.1.0": version: 0.1.0 resolution: "unicorn-magic@npm:0.1.0" - checksum: e4ed0de05b0a05e735c7d8a2930881e5efcfc3ec897204d5d33e7e6247f4c31eac92e383a15d9a6bccb7319b4271ee4bea946e211bf14951fec6ff2cbbb66a92 + checksum: 10c0/e4ed0de05b0a05e735c7d8a2930881e5efcfc3ec897204d5d33e7e6247f4c31eac92e383a15d9a6bccb7319b4271ee4bea946e211bf14951fec6ff2cbbb66a92 languageName: node linkType: hard @@ -7442,7 +8698,7 @@ __metadata: resolution: "unique-filename@npm:3.0.0" dependencies: unique-slug: "npm:^4.0.0" - checksum: 6363e40b2fa758eb5ec5e21b3c7fb83e5da8dcfbd866cc0c199d5534c42f03b9ea9ab069769cc388e1d7ab93b4eeef28ef506ab5f18d910ef29617715101884f + checksum: 10c0/6363e40b2fa758eb5ec5e21b3c7fb83e5da8dcfbd866cc0c199d5534c42f03b9ea9ab069769cc388e1d7ab93b4eeef28ef506ab5f18d910ef29617715101884f languageName: node linkType: hard @@ -7451,28 +8707,42 @@ __metadata: resolution: "unique-slug@npm:4.0.0" dependencies: imurmurhash: "npm:^0.1.4" - checksum: cb811d9d54eb5821b81b18205750be84cb015c20a4a44280794e915f5a0a70223ce39066781a354e872df3572e8155c228f43ff0cce94c7cbf4da2cc7cbdd635 + checksum: 10c0/cb811d9d54eb5821b81b18205750be84cb015c20a4a44280794e915f5a0a70223ce39066781a354e872df3572e8155c228f43ff0cce94c7cbf4da2cc7cbdd635 languageName: node linkType: hard -"universal-user-agent@npm:^6.0.0": - version: 6.0.1 - resolution: "universal-user-agent@npm:6.0.1" - checksum: 5c9c46ffe19a975e11e6443640ed4c9e0ce48fcc7203325757a8414ac49940ebb0f4667f2b1fa561489d1eb22cb2d05a0f7c82ec20c5cba42e58e188fb19b187 +"universal-user-agent@npm:^7.0.0, universal-user-agent@npm:^7.0.2": + version: 7.0.2 + resolution: "universal-user-agent@npm:7.0.2" + checksum: 10c0/e60517ee929813e6b3ac0ceb3c66deccafadc71341edca160279ff046319c684fd7090a60d63aa61cd34a06c2d2acebeb8c2f8d364244ae7bf8ab788e20cd8c8 languageName: node linkType: hard "universalify@npm:^2.0.0": version: 2.0.1 resolution: "universalify@npm:2.0.1" - checksum: 73e8ee3809041ca8b818efb141801a1004e3fc0002727f1531f4de613ea281b494a40909596dae4a042a4fb6cd385af5d4db2e137b1362e0e91384b828effd3a + checksum: 10c0/73e8ee3809041ca8b818efb141801a1004e3fc0002727f1531f4de613ea281b494a40909596dae4a042a4fb6cd385af5d4db2e137b1362e0e91384b828effd3a languageName: node linkType: hard "upath@npm:^2.0.1": version: 2.0.1 resolution: "upath@npm:2.0.1" - checksum: 79e8e1296b00e24a093b077cfd7a238712d09290c850ce59a7a01458ec78c8d26dcc2ab50b1b9d6a84dabf6511fb4969afeb8a5c9a001aa7272b9cc74c34670f + checksum: 10c0/79e8e1296b00e24a093b077cfd7a238712d09290c850ce59a7a01458ec78c8d26dcc2ab50b1b9d6a84dabf6511fb4969afeb8a5c9a001aa7272b9cc74c34670f + languageName: node + linkType: hard + +"update-browserslist-db@npm:^1.1.0": + version: 1.1.1 + resolution: "update-browserslist-db@npm:1.1.1" + dependencies: + escalade: "npm:^3.2.0" + picocolors: "npm:^1.1.0" + peerDependencies: + browserslist: ">= 4.21.0" + bin: + update-browserslist-db: cli.js + checksum: 10c0/536a2979adda2b4be81b07e311bd2f3ad5e978690987956bc5f514130ad50cac87cd22c710b686d79731e00fbee8ef43efe5fcd72baa241045209195d43dcc80 languageName: node linkType: hard @@ -7481,33 +8751,44 @@ __metadata: resolution: "uri-js@npm:4.4.1" dependencies: punycode: "npm:^2.1.0" - checksum: 4ef57b45aa820d7ac6496e9208559986c665e49447cb072744c13b66925a362d96dd5a46c4530a6b8e203e5db5fe849369444440cb22ecfc26c679359e5dfa3c + checksum: 10c0/4ef57b45aa820d7ac6496e9208559986c665e49447cb072744c13b66925a362d96dd5a46c4530a6b8e203e5db5fe849369444440cb22ecfc26c679359e5dfa3c languageName: node linkType: hard -"util-deprecate@npm:^1.0.1, util-deprecate@npm:^1.0.2, util-deprecate@npm:~1.0.1": +"util-deprecate@npm:^1.0.2": version: 1.0.2 resolution: "util-deprecate@npm:1.0.2" - checksum: 41a5bdd214df2f6c3ecf8622745e4a366c4adced864bc3c833739791aeeeb1838119af7daed4ba36428114b5c67dcda034a79c882e97e43c03e66a4dd7389942 + checksum: 10c0/41a5bdd214df2f6c3ecf8622745e4a366c4adced864bc3c833739791aeeeb1838119af7daed4ba36428114b5c67dcda034a79c882e97e43c03e66a4dd7389942 languageName: node linkType: hard -"uuid@npm:^9.0.1": - version: 9.0.1 - resolution: "uuid@npm:9.0.1" +"uuid@npm:^10.0.0": + version: 10.0.0 + resolution: "uuid@npm:10.0.0" bin: uuid: dist/bin/uuid - checksum: 1607dd32ac7fc22f2d8f77051e6a64845c9bce5cd3dd8aa0070c074ec73e666a1f63c7b4e0f4bf2bc8b9d59dc85a15e17807446d9d2b17c8485fbc2147b27f9b + checksum: 10c0/eab18c27fe4ab9fb9709a5d5f40119b45f2ec8314f8d4cf12ce27e4c6f4ffa4a6321dc7db6c515068fa373c075b49691ba969f0010bf37f44c37ca40cd6bf7fe + languageName: node + linkType: hard + +"v8-to-istanbul@npm:^9.0.1": + version: 9.3.0 + resolution: "v8-to-istanbul@npm:9.3.0" + dependencies: + "@jridgewell/trace-mapping": "npm:^0.3.12" + "@types/istanbul-lib-coverage": "npm:^2.0.1" + convert-source-map: "npm:^2.0.0" + checksum: 10c0/968bcf1c7c88c04df1ffb463c179558a2ec17aa49e49376120504958239d9e9dad5281aa05f2a78542b8557f2be0b0b4c325710262f3b838b40d703d5ed30c23 languageName: node linkType: hard -"validate-npm-package-license@npm:^3.0.1, validate-npm-package-license@npm:^3.0.4": +"validate-npm-package-license@npm:^3.0.4": version: 3.0.4 resolution: "validate-npm-package-license@npm:3.0.4" dependencies: spdx-correct: "npm:^3.0.0" spdx-expression-parse: "npm:^3.0.0" - checksum: 7b91e455a8de9a0beaa9fe961e536b677da7f48c9a493edf4d4d4a87fd80a7a10267d438723364e432c2fcd00b5650b5378275cded362383ef570276e6312f4f + checksum: 10c0/7b91e455a8de9a0beaa9fe961e536b677da7f48c9a493edf4d4d4a87fd80a7a10267d438723364e432c2fcd00b5650b5378275cded362383ef570276e6312f4f languageName: node linkType: hard @@ -7516,61 +8797,46 @@ __metadata: resolution: "validate-npm-package-name@npm:5.0.0" dependencies: builtins: "npm:^5.0.0" - checksum: 36a9067650f5b90c573a0d394b89ddffb08fe58a60507d7938ad7c38f25055cc5c6bf4a10fbd604abe1f4a31062cbe0dfa8e7ccad37b249da32e7b71889c079e - languageName: node - linkType: hard - -"vary@npm:^1.1.2": - version: 1.1.2 - resolution: "vary@npm:1.1.2" - checksum: f15d588d79f3675135ba783c91a4083dcd290a2a5be9fcb6514220a1634e23df116847b1cc51f66bfb0644cf9353b2abb7815ae499bab06e46dd33c1a6bf1f4f + checksum: 10c0/36a9067650f5b90c573a0d394b89ddffb08fe58a60507d7938ad7c38f25055cc5c6bf4a10fbd604abe1f4a31062cbe0dfa8e7ccad37b249da32e7b71889c079e languageName: node linkType: hard "walk-up-path@npm:^3.0.1": version: 3.0.1 resolution: "walk-up-path@npm:3.0.1" - checksum: 3184738e0cf33698dd58b0ee4418285b9c811e58698f52c1f025435a85c25cbc5a63fee599f1a79cb29ca7ef09a44ec9417b16bfd906b1a37c305f7aa20ee5bc + checksum: 10c0/3184738e0cf33698dd58b0ee4418285b9c811e58698f52c1f025435a85c25cbc5a63fee599f1a79cb29ca7ef09a44ec9417b16bfd906b1a37c305f7aa20ee5bc + languageName: node + linkType: hard + +"walker@npm:^1.0.8": + version: 1.0.8 + resolution: "walker@npm:1.0.8" + dependencies: + makeerror: "npm:1.0.12" + checksum: 10c0/a17e037bccd3ca8a25a80cb850903facdfed0de4864bd8728f1782370715d679fa72e0a0f5da7c1c1379365159901e5935f35be531229da53bbfc0efdabdb48e languageName: node linkType: hard -"wcwidth@npm:^1.0.0, wcwidth@npm:^1.0.1": +"wcwidth@npm:^1.0.0": version: 1.0.1 resolution: "wcwidth@npm:1.0.1" dependencies: defaults: "npm:^1.0.3" - checksum: 5b61ca583a95e2dd85d7078400190efd452e05751a64accb8c06ce4db65d7e0b0cde9917d705e826a2e05cc2548f61efde115ffa374c3e436d04be45c889e5b4 + checksum: 10c0/5b61ca583a95e2dd85d7078400190efd452e05751a64accb8c06ce4db65d7e0b0cde9917d705e826a2e05cc2548f61efde115ffa374c3e436d04be45c889e5b4 languageName: node linkType: hard "web-streams-polyfill@npm:^3.0.3": version: 3.2.1 resolution: "web-streams-polyfill@npm:3.2.1" - checksum: 70ed6b5708e14afa2ab699221ea197d7c68ec0c8274bbe0181aecc5ba636ca27cbd383d2049f0eb9d529e738f5c088825502b317f3df24d18a278e4cc9a10e8b + checksum: 10c0/70ed6b5708e14afa2ab699221ea197d7c68ec0c8274bbe0181aecc5ba636ca27cbd383d2049f0eb9d529e738f5c088825502b317f3df24d18a278e4cc9a10e8b languageName: node linkType: hard "webidl-conversions@npm:^3.0.0": version: 3.0.1 resolution: "webidl-conversions@npm:3.0.1" - checksum: 5612d5f3e54760a797052eb4927f0ddc01383550f542ccd33d5238cfd65aeed392a45ad38364970d0a0f4fea32e1f4d231b3d8dac4a3bdd385e5cf802ae097db - languageName: node - linkType: hard - -"webidl-conversions@npm:^7.0.0": - version: 7.0.0 - resolution: "webidl-conversions@npm:7.0.0" - checksum: 228d8cb6d270c23b0720cb2d95c579202db3aaf8f633b4e9dd94ec2000a04e7e6e43b76a94509cdb30479bd00ae253ab2371a2da9f81446cc313f89a4213a2c4 - languageName: node - linkType: hard - -"whatwg-url@npm:^11.0.0": - version: 11.0.0 - resolution: "whatwg-url@npm:11.0.0" - dependencies: - tr46: "npm:^3.0.0" - webidl-conversions: "npm:^7.0.0" - checksum: f7ec264976d7c725e0696fcaf9ebe056e14422eacbf92fdbb4462034609cba7d0c85ffa1aab05e9309d42969bcf04632ba5ed3f3882c516d7b093053315bf4c1 + checksum: 10c0/5612d5f3e54760a797052eb4927f0ddc01383550f542ccd33d5238cfd65aeed392a45ad38364970d0a0f4fea32e1f4d231b3d8dac4a3bdd385e5cf802ae097db languageName: node linkType: hard @@ -7580,7 +8846,7 @@ __metadata: dependencies: tr46: "npm:~0.0.3" webidl-conversions: "npm:^3.0.0" - checksum: 1588bed84d10b72d5eec1d0faa0722ba1962f1821e7539c535558fb5398d223b0c50d8acab950b8c488b4ba69043fd833cc2697056b167d8ad46fac3995a55d5 + checksum: 10c0/1588bed84d10b72d5eec1d0faa0722ba1962f1821e7539c535558fb5398d223b0c50d8acab950b8c488b4ba69043fd833cc2697056b167d8ad46fac3995a55d5 languageName: node linkType: hard @@ -7593,7 +8859,7 @@ __metadata: is-number-object: "npm:^1.0.4" is-string: "npm:^1.0.5" is-symbol: "npm:^1.0.3" - checksum: 0a62a03c00c91dd4fb1035b2f0733c341d805753b027eebd3a304b9cb70e8ce33e25317add2fe9b5fea6f53a175c0633ae701ff812e604410ddd049777cd435e + checksum: 10c0/0a62a03c00c91dd4fb1035b2f0733c341d805753b027eebd3a304b9cb70e8ce33e25317add2fe9b5fea6f53a175c0633ae701ff812e604410ddd049777cd435e languageName: node linkType: hard @@ -7606,18 +8872,20 @@ __metadata: for-each: "npm:^0.3.3" gopd: "npm:^1.0.1" has-tostringtag: "npm:^1.0.0" - checksum: 9f5f1c42918df3d5b91c4315ed0051d5d874370998bf095c9ae0df374f0881f85094e3c384b8fb08ab7b4d4f54ba81c0aff75da6226e7c0589b83dfbec1cd4c9 + checksum: 10c0/9f5f1c42918df3d5b91c4315ed0051d5d874370998bf095c9ae0df374f0881f85094e3c384b8fb08ab7b4d4f54ba81c0aff75da6226e7c0589b83dfbec1cd4c9 languageName: node linkType: hard -"which@npm:^1.2.9": - version: 1.3.1 - resolution: "which@npm:1.3.1" +"which-typed-array@npm:^1.1.14, which-typed-array@npm:^1.1.15": + version: 1.1.15 + resolution: "which-typed-array@npm:1.1.15" dependencies: - isexe: "npm:^2.0.0" - bin: - which: ./bin/which - checksum: e945a8b6bbf6821aaaef7f6e0c309d4b615ef35699576d5489b4261da9539f70393c6b2ce700ee4321c18f914ebe5644bc4631b15466ffbaad37d83151f6af59 + available-typed-arrays: "npm:^1.0.7" + call-bind: "npm:^1.0.7" + for-each: "npm:^0.3.3" + gopd: "npm:^1.0.1" + has-tostringtag: "npm:^1.0.2" + checksum: 10c0/4465d5348c044032032251be54d8988270e69c6b7154f8fcb2a47ff706fe36f7624b3a24246b8d9089435a8f4ec48c1c1025c5d6b499456b9e5eff4f48212983 languageName: node linkType: hard @@ -7628,7 +8896,7 @@ __metadata: isexe: "npm:^2.0.0" bin: node-which: ./bin/node-which - checksum: 66522872a768b60c2a65a57e8ad184e5372f5b6a9ca6d5f033d4b0dc98aff63995655a7503b9c0a2598936f532120e81dd8cc155e2e92ed662a2b9377cc4374f + checksum: 10c0/66522872a768b60c2a65a57e8ad184e5372f5b6a9ca6d5f033d4b0dc98aff63995655a7503b9c0a2598936f532120e81dd8cc155e2e92ed662a2b9377cc4374f languageName: node linkType: hard @@ -7639,7 +8907,7 @@ __metadata: isexe: "npm:^3.1.1" bin: node-which: bin/which.js - checksum: 449fa5c44ed120ccecfe18c433296a4978a7583bf2391c50abce13f76878d2476defde04d0f79db8165bdf432853c1f8389d0485ca6e8ebce3bbcded513d5e6a + checksum: 10c0/449fa5c44ed120ccecfe18c433296a4978a7583bf2391c50abce13f76878d2476defde04d0f79db8165bdf432853c1f8389d0485ca6e8ebce3bbcded513d5e6a languageName: node linkType: hard @@ -7648,21 +8916,14 @@ __metadata: resolution: "wide-align@npm:1.1.5" dependencies: string-width: "npm:^1.0.2 || 2 || 3 || 4" - checksum: 1d9c2a3e36dfb09832f38e2e699c367ef190f96b82c71f809bc0822c306f5379df87bab47bed27ea99106d86447e50eb972d3c516c2f95782807a9d082fbea95 + checksum: 10c0/1d9c2a3e36dfb09832f38e2e699c367ef190f96b82c71f809bc0822c306f5379df87bab47bed27ea99106d86447e50eb972d3c516c2f95782807a9d082fbea95 languageName: node linkType: hard "wordwrap@npm:^1.0.0": version: 1.0.0 resolution: "wordwrap@npm:1.0.0" - checksum: 7ed2e44f3c33c5c3e3771134d2b0aee4314c9e49c749e37f464bf69f2bcdf0cbf9419ca638098e2717cff4875c47f56a007532f6111c3319f557a2ca91278e92 - languageName: node - linkType: hard - -"wordwrapjs@npm:^5.1.0": - version: 5.1.0 - resolution: "wordwrapjs@npm:5.1.0" - checksum: e147162f139eb8c05257729fde586f5422a2d242aa8f027b5fa5adead1b571b455d0690a15c73aeaa31c93ba96864caa06d84ebdb2c32a0890602ab86a7568d1 + checksum: 10c0/7ed2e44f3c33c5c3e3771134d2b0aee4314c9e49c749e37f464bf69f2bcdf0cbf9419ca638098e2717cff4875c47f56a007532f6111c3319f557a2ca91278e92 languageName: node linkType: hard @@ -7673,7 +8934,7 @@ __metadata: ansi-styles: "npm:^4.0.0" string-width: "npm:^4.1.0" strip-ansi: "npm:^6.0.0" - checksum: d15fc12c11e4cbc4044a552129ebc75ee3f57aa9c1958373a4db0292d72282f54373b536103987a4a7594db1ef6a4f10acf92978f79b98c49306a4b58c77d4da + checksum: 10c0/d15fc12c11e4cbc4044a552129ebc75ee3f57aa9c1958373a4db0292d72282f54373b536103987a4a7594db1ef6a4f10acf92978f79b98c49306a4b58c77d4da languageName: node linkType: hard @@ -7684,7 +8945,7 @@ __metadata: ansi-styles: "npm:^4.0.0" string-width: "npm:^4.1.0" strip-ansi: "npm:^6.0.0" - checksum: baad244e6e33335ea24e86e51868fe6823626e3a3c88d9a6674642afff1d34d9a154c917e74af8d845fd25d170c4ea9cf69a47133c3f3656e1252b3d462d9f6c + checksum: 10c0/baad244e6e33335ea24e86e51868fe6823626e3a3c88d9a6674642afff1d34d9a154c917e74af8d845fd25d170c4ea9cf69a47133c3f3656e1252b3d462d9f6c languageName: node linkType: hard @@ -7695,26 +8956,24 @@ __metadata: ansi-styles: "npm:^6.1.0" string-width: "npm:^5.0.1" strip-ansi: "npm:^7.0.1" - checksum: 138ff58a41d2f877eae87e3282c0630fc2789012fc1af4d6bd626eeb9a2f9a65ca92005e6e69a75c7b85a68479fe7443c7dbe1eb8fbaa681a4491364b7c55c60 + checksum: 10c0/138ff58a41d2f877eae87e3282c0630fc2789012fc1af4d6bd626eeb9a2f9a65ca92005e6e69a75c7b85a68479fe7443c7dbe1eb8fbaa681a4491364b7c55c60 languageName: node linkType: hard "wrappy@npm:1": version: 1.0.2 resolution: "wrappy@npm:1.0.2" - checksum: 56fece1a4018c6a6c8e28fbc88c87e0fbf4ea8fd64fc6c63b18f4acc4bd13e0ad2515189786dd2c30d3eec9663d70f4ecf699330002f8ccb547e4a18231fc9f0 + checksum: 10c0/56fece1a4018c6a6c8e28fbc88c87e0fbf4ea8fd64fc6c63b18f4acc4bd13e0ad2515189786dd2c30d3eec9663d70f4ecf699330002f8ccb547e4a18231fc9f0 languageName: node linkType: hard -"write-file-atomic@npm:^3.0.3": - version: 3.0.3 - resolution: "write-file-atomic@npm:3.0.3" +"write-file-atomic@npm:^4.0.2": + version: 4.0.2 + resolution: "write-file-atomic@npm:4.0.2" dependencies: imurmurhash: "npm:^0.1.4" - is-typedarray: "npm:^1.0.0" - signal-exit: "npm:^3.0.2" - typedarray-to-buffer: "npm:^3.1.5" - checksum: 7fb67affd811c7a1221bed0c905c26e28f0041e138fb19ccf02db57a0ef93ea69220959af3906b920f9b0411d1914474cdd90b93a96e5cd9e8368d9777caac0e + signal-exit: "npm:^3.0.7" + checksum: 10c0/a2c282c95ef5d8e1c27b335ae897b5eca00e85590d92a3fd69a437919b7b93ff36a69ea04145da55829d2164e724bc62202cdb5f4b208b425aba0807889375c7 languageName: node linkType: hard @@ -7724,101 +8983,64 @@ __metadata: dependencies: imurmurhash: "npm:^0.1.4" signal-exit: "npm:^4.0.1" - checksum: e8c850a8e3e74eeadadb8ad23c9d9d63e4e792bd10f4836ed74189ef6e996763959f1249c5650e232f3c77c11169d239cbfc8342fc70f3fe401407d23810505d + checksum: 10c0/e8c850a8e3e74eeadadb8ad23c9d9d63e4e792bd10f4836ed74189ef6e996763959f1249c5650e232f3c77c11169d239cbfc8342fc70f3fe401407d23810505d languageName: node linkType: hard -"write-json-file@npm:^5.0.0": - version: 5.0.0 - resolution: "write-json-file@npm:5.0.0" +"write-json-file@npm:^6.0.0": + version: 6.0.0 + resolution: "write-json-file@npm:6.0.0" dependencies: - detect-indent: "npm:^7.0.0" - is-plain-obj: "npm:^4.0.0" + detect-indent: "npm:^7.0.1" + is-plain-obj: "npm:^4.1.0" sort-keys: "npm:^5.0.0" - write-file-atomic: "npm:^3.0.3" - checksum: 1c4b4d94161b62a574d5f6900bc9585518a9d6815530e9b1953de1acc04cb566d76e086976d61800911f151c9f95f338fc78d47682d42db9764dfac836c94e7f + write-file-atomic: "npm:^5.0.1" + checksum: 10c0/3f8f0caec7948d696b1e898512547bba7b63e99eb5b67ddb74cd9ea02aa0b88d48f5b710be3b26ac3ffa8c3e58c779bd610fb349d3cec6e8fb621596a8f85069 languageName: node linkType: hard -"write-pkg@npm:^6.0.1": - version: 6.0.1 - resolution: "write-pkg@npm:6.0.1" +"write-package@npm:^7.1.0": + version: 7.1.0 + resolution: "write-package@npm:7.1.0" dependencies: - deepmerge-ts: "npm:^5.1.0" - read-pkg: "npm:^8.1.0" + deepmerge-ts: "npm:^7.1.0" + read-pkg: "npm:^9.0.1" sort-keys: "npm:^5.0.0" - type-fest: "npm:^4.6.0" - write-json-file: "npm:^5.0.0" - checksum: 1fb3c640473133d32091d3a12ee8d561107a70788cfa68af68821f42d20a0136a0edf8fc5c74d75f550751ed73bb49fffea883fc86d58adcb56449a51d5c5076 - languageName: node - linkType: hard - -"ws@npm:^7.4.2": - version: 7.5.9 - resolution: "ws@npm:7.5.9" - peerDependencies: - bufferutil: ^4.0.1 - utf-8-validate: ^5.0.2 - peerDependenciesMeta: - bufferutil: - optional: true - utf-8-validate: - optional: true - checksum: aec4ef4eb65821a7dde7b44790f8699cfafb7978c9b080f6d7a98a7f8fc0ce674c027073a78574c94786ba7112cc90fa2cc94fc224ceba4d4b1030cff9662494 - languageName: node - linkType: hard - -"xtend@npm:~4.0.1": - version: 4.0.2 - resolution: "xtend@npm:4.0.2" - checksum: 366ae4783eec6100f8a02dff02ac907bf29f9a00b82ac0264b4d8b832ead18306797e283cf19de776538babfdcb2101375ec5646b59f08c52128ac4ab812ed0e + type-fest: "npm:^4.23.0" + write-json-file: "npm:^6.0.0" + checksum: 10c0/0db9ca588fc00c753409633ce7777eae4147c6b60993643399f4af0e0ce672b5943587ff5269c3adda36090065d0ef1cf2c6936a62e0d1a548dc81c6507f4f2a languageName: node linkType: hard "y18n@npm:^5.0.5": version: 5.0.8 resolution: "y18n@npm:5.0.8" - checksum: 4df2842c36e468590c3691c894bc9cdbac41f520566e76e24f59401ba7d8b4811eb1e34524d57e54bc6d864bcb66baab7ffd9ca42bf1eda596618f9162b91249 + checksum: 10c0/4df2842c36e468590c3691c894bc9cdbac41f520566e76e24f59401ba7d8b4811eb1e34524d57e54bc6d864bcb66baab7ffd9ca42bf1eda596618f9162b91249 languageName: node linkType: hard -"yallist@npm:^4.0.0": - version: 4.0.0 - resolution: "yallist@npm:4.0.0" - checksum: 2286b5e8dbfe22204ab66e2ef5cc9bbb1e55dfc873bbe0d568aa943eb255d131890dfd5bf243637273d31119b870f49c18fcde2c6ffbb7a7a092b870dc90625a +"yallist@npm:^3.0.2": + version: 3.1.1 + resolution: "yallist@npm:3.1.1" + checksum: 10c0/c66a5c46bc89af1625476f7f0f2ec3653c1a1791d2f9407cfb4c2ba812a1e1c9941416d71ba9719876530e3340a99925f697142989371b72d93b9ee628afd8c1 languageName: node linkType: hard -"yargs-parser@npm:^20.2.2, yargs-parser@npm:^20.2.3": - version: 20.2.9 - resolution: "yargs-parser@npm:20.2.9" - checksum: 0685a8e58bbfb57fab6aefe03c6da904a59769bd803a722bb098bd5b0f29d274a1357762c7258fb487512811b8063fb5d2824a3415a0a4540598335b3b086c72 +"yallist@npm:^4.0.0": + version: 4.0.0 + resolution: "yallist@npm:4.0.0" + checksum: 10c0/2286b5e8dbfe22204ab66e2ef5cc9bbb1e55dfc873bbe0d568aa943eb255d131890dfd5bf243637273d31119b870f49c18fcde2c6ffbb7a7a092b870dc90625a languageName: node linkType: hard "yargs-parser@npm:^21.1.1": version: 21.1.1 resolution: "yargs-parser@npm:21.1.1" - checksum: f84b5e48169479d2f402239c59f084cfd1c3acc197a05c59b98bab067452e6b3ea46d4dd8ba2985ba7b3d32a343d77df0debd6b343e5dae3da2aab2cdf5886b2 - languageName: node - linkType: hard - -"yargs@npm:^16.2.0": - version: 16.2.0 - resolution: "yargs@npm:16.2.0" - dependencies: - cliui: "npm:^7.0.2" - escalade: "npm:^3.1.1" - get-caller-file: "npm:^2.0.5" - require-directory: "npm:^2.1.1" - string-width: "npm:^4.2.0" - y18n: "npm:^5.0.5" - yargs-parser: "npm:^20.2.2" - checksum: b1dbfefa679848442454b60053a6c95d62f2d2e21dd28def92b647587f415969173c6e99a0f3bab4f1b67ee8283bf735ebe3544013f09491186ba9e8a9a2b651 + checksum: 10c0/f84b5e48169479d2f402239c59f084cfd1c3acc197a05c59b98bab067452e6b3ea46d4dd8ba2985ba7b3d32a343d77df0debd6b343e5dae3da2aab2cdf5886b2 languageName: node linkType: hard -"yargs@npm:^17.7.2": +"yargs@npm:^17.3.1, yargs@npm:^17.7.2": version: 17.7.2 resolution: "yargs@npm:17.7.2" dependencies: @@ -7829,20 +9051,27 @@ __metadata: string-width: "npm:^4.2.3" y18n: "npm:^5.0.5" yargs-parser: "npm:^21.1.1" - checksum: ccd7e723e61ad5965fffbb791366db689572b80cca80e0f96aad968dfff4156cd7cd1ad18607afe1046d8241e6fb2d6c08bf7fa7bfb5eaec818735d8feac8f05 - languageName: node - linkType: hard - -"ylru@npm:^1.2.0": - version: 1.3.2 - resolution: "ylru@npm:1.3.2" - checksum: 1fcdf0e6428fa4be71d8b1ae96ee6134d8c6194bd23e531b755b9d90bb9c555592415dc629501fe9036dfa410e2e71d0d093e5c91625df46d8e546a29e658ebe + checksum: 10c0/ccd7e723e61ad5965fffbb791366db689572b80cca80e0f96aad968dfff4156cd7cd1ad18607afe1046d8241e6fb2d6c08bf7fa7bfb5eaec818735d8feac8f05 languageName: node linkType: hard "yocto-queue@npm:^0.1.0": version: 0.1.0 resolution: "yocto-queue@npm:0.1.0" - checksum: dceb44c28578b31641e13695d200d34ec4ab3966a5729814d5445b194933c096b7ced71494ce53a0e8820685d1d010df8b2422e5bf2cdea7e469d97ffbea306f + checksum: 10c0/dceb44c28578b31641e13695d200d34ec4ab3966a5729814d5445b194933c096b7ced71494ce53a0e8820685d1d010df8b2422e5bf2cdea7e469d97ffbea306f + languageName: node + linkType: hard + +"yocto-queue@npm:^1.0.0, yocto-queue@npm:^1.1.1": + version: 1.1.1 + resolution: "yocto-queue@npm:1.1.1" + checksum: 10c0/cb287fe5e6acfa82690acb43c283de34e945c571a78a939774f6eaba7c285bacdf6c90fbc16ce530060863984c906d2b4c6ceb069c94d1e0a06d5f2b458e2a92 + languageName: node + linkType: hard + +"yoctocolors-cjs@npm:^2.1.2": + version: 2.1.2 + resolution: "yoctocolors-cjs@npm:2.1.2" + checksum: 10c0/a0e36eb88fea2c7981eab22d1ba45e15d8d268626e6c4143305e2c1628fa17ebfaa40cd306161a8ce04c0a60ee0262058eab12567493d5eb1409780853454c6f languageName: node linkType: hard From e748d94c0f91057f3aecb1baf5508b9a8240ace2 Mon Sep 17 00:00:00 2001 From: Mohammad Honarvar Date: Mon, 21 Oct 2024 23:39:00 +0330 Subject: [PATCH 05/60] refactor(telegram): sending message & the process of `start` command --- packages/telegram/src/bot/send-message.ts | 14 +-- packages/telegram/src/bot/start-command.ts | 97 +++++++++++-------- .../telegram/src/bot/unsubscribe-callback.ts | 12 +-- 3 files changed, 66 insertions(+), 57 deletions(-) diff --git a/packages/telegram/src/bot/send-message.ts b/packages/telegram/src/bot/send-message.ts index 3bfd4833..05c94bd5 100644 --- a/packages/telegram/src/bot/send-message.ts +++ b/packages/telegram/src/bot/send-message.ts @@ -4,7 +4,6 @@ import {message} from '../lib/i18n.js'; import {alwatrNitrobase} from '../lib/nitrobase.js'; import {escapeMessage} from '../lib/util.js'; -import type {Group} from '../type.js'; import type {GrammyError} from 'grammy'; /** @@ -13,11 +12,12 @@ import type {GrammyError} from 'grammy'; * @param groupId - Group ID. * @param message_ - Message to send. */ -export async function sendMessageToGroup(groupId: string, message_: string): Promise { +export async function +sendMessageToGroup(groupId: string, message_: string): Promise { logger.logMethodArgs?.('sendMessageToGroup', {groupId}); message_ = escapeMessage(message_); - const groupsCollection = await alwatrNitrobase.openCollection(config.nitrobase.groupsCollection); + const groupsCollection = await alwatrNitrobase.openCollection(config.nitrobase.groupsCollection); if (groupsCollection.hasItem(groupId) === false) { return; @@ -25,9 +25,9 @@ export async function sendMessageToGroup(groupId: string, message_: string): Pro const groupData = groupsCollection.getItemData(groupId); - for (const chatId of groupData.members) { + for (const member of groupData.memberList) { try { - await bot.api.sendMessage(chatId, message_, { + await bot.api.sendMessage(member.id, message_, { parse_mode: 'MarkdownV2', reply_markup: { inline_keyboard: [ @@ -43,11 +43,11 @@ export async function sendMessageToGroup(groupId: string, message_: string): Pro } catch (err) { const err_ = err as GrammyError; - logger.error('sendMessage', 'error_send_message', err_, {chatId}); + logger.error('sendMessage', 'error_send_message', err_, {chatId: member.id}); // remove if blocked if (err_.error_code === 403) { - groupData.members = groupData.members.filter((id) => id !== chatId); + groupData.memberList = groupData.memberList.filter((member_) => member_.id !== member.id); groupsCollection.mergeItemData(groupId, groupData); groupsCollection.save(); } diff --git a/packages/telegram/src/bot/start-command.ts b/packages/telegram/src/bot/start-command.ts index aa693a61..881fb77c 100644 --- a/packages/telegram/src/bot/start-command.ts +++ b/packages/telegram/src/bot/start-command.ts @@ -3,7 +3,10 @@ import {config, logger} from '../lib/config.js'; import {message} from '../lib/i18n.js'; import {alwatrNitrobase} from '../lib/nitrobase.js'; -import type {Group} from '../type.js'; +const getUnsubscribeInlineKeyboardData = (groupId: string) => ({ + callback_data: `unsubscribe:${groupId}`, + text: message('unsubscribe_me_button'), +}); /** * `start` command. @@ -11,72 +14,80 @@ import type {Group} from '../type.js'; * This command starts the bot. */ bot.command('start', async (ctx) => { - const chatId = ctx.chat.id; + const chatId = ctx.chat.id + ''; const groupId = ctx.match; logger.logMethodArgs?.('start-command', {chatId, groupId}); - if (!groupId) { + const unsubscribeInlineKeyboardData = getUnsubscribeInlineKeyboardData(groupId); + + if (groupId === undefined) { await ctx.reply(message('private_bot_message'), { reply_parameters: {message_id: ctx.message!.message_id}, }); + return; } - const groupsCollection = await alwatrNitrobase.openCollection(config.nitrobase.groupsCollection); + const groupsCollection = await alwatrNitrobase.openCollection(config.nitrobase.groupsCollection); + + const newMember = { + id: chatId, + type: ctx.chat.type, + first_name: ctx.chat.first_name, + last_name: ctx.chat.last_name, + username: ctx.chat.username + } if (groupsCollection.hasItem(groupId) === false) { - groupsCollection.addItem(groupId, {members: [chatId]}); + groupsCollection.addItem(groupId, { + memberList: [newMember] + }); + groupsCollection.save(); + await ctx.reply(message('added_message'), { reply_parameters: {message_id: ctx.message!.message_id}, reply_markup: { inline_keyboard: [ [ - { - callback_data: `unsubscribe:${groupId}`, - text: message('unsubscribe_me_button'), - }, + unsubscribeInlineKeyboardData, ], ], }, }); + + return; } - else { - const groupData = groupsCollection.getItemData(groupId); - if (groupData.members.includes(chatId) === false) { - groupData.members.push(chatId); - groupsCollection.mergeItemData(groupId, groupData); - await ctx.reply(message('added_message'), { - reply_parameters: {message_id: ctx.message!.message_id}, - reply_markup: { - inline_keyboard: [ - [ - { - callback_data: `unsubscribe:${groupId}`, - text: message('unsubscribe_me_button'), - }, - ], - ], - }, - }); - } - else { - await ctx.reply(message('added_already_message'), { - reply_parameters: {message_id: ctx.message!.message_id}, - reply_markup: { - inline_keyboard: [ - [ - { - callback_data: `unsubscribe:${groupId}`, - text: message('unsubscribe_me_button'), - }, - ], + const groupData = groupsCollection.getItemData(groupId); + const targetIndex = groupData.memberList.findIndex(member => member.id === chatId); + if (targetIndex === -1) { + groupData.memberList.push(newMember); + groupsCollection.mergeItemData(groupId, groupData); + groupsCollection.save(); + + await ctx.reply(message('added_message'), { + reply_parameters: {message_id: ctx.message!.message_id}, + reply_markup: { + inline_keyboard: [ + [ + unsubscribeInlineKeyboardData ], - }, - }); - } + ], + }, + }); + + return; } - groupsCollection.save(); + await ctx.reply(message('added_already_message'), { + reply_parameters: {message_id: ctx.message!.message_id}, + reply_markup: { + inline_keyboard: [ + [ + unsubscribeInlineKeyboardData + ], + ], + }, + }); }); diff --git a/packages/telegram/src/bot/unsubscribe-callback.ts b/packages/telegram/src/bot/unsubscribe-callback.ts index 9cfc71e2..adc173b9 100644 --- a/packages/telegram/src/bot/unsubscribe-callback.ts +++ b/packages/telegram/src/bot/unsubscribe-callback.ts @@ -3,13 +3,11 @@ import {config} from '../lib/config.js'; import {message} from '../lib/i18n.js'; import {alwatrNitrobase} from '../lib/nitrobase.js'; -import type {Group} from '../type.js'; - bot.callbackQuery(/^unsubscribe:.*$/, async (ctx) => { const groupId = ctx.callbackQuery.data.split(':')[1]; - const userId = ctx.from.id; + const userId = ctx.from.id + ''; - const groupsCollection = await alwatrNitrobase.openCollection(config.nitrobase.groupsCollection); + const groupsCollection = await alwatrNitrobase.openCollection(config.nitrobase.groupsCollection); if (groupsCollection.hasItem(groupId) === false) { await ctx.reply(message('you_not_subscribed_before')); @@ -17,13 +15,13 @@ bot.callbackQuery(/^unsubscribe:.*$/, async (ctx) => { } const groupData = groupsCollection.getItemData(groupId); - - if (groupData.members.includes(userId) === false) { + const targetIndex = groupData.memberList.findIndex(member => member.id === userId); + if (targetIndex === -1) { await ctx.reply(message('you_not_subscribed_before')); return; } - groupData.members = groupData.members.filter((id) => id !== userId); + groupData.memberList.splice(targetIndex, 1); groupsCollection.mergeItemData(groupId, groupData); groupsCollection.save(); From 4ae9d532db54e0d7cd4f0ac2c807efd8f16dc410 Mon Sep 17 00:00:00 2001 From: Mohammad Honarvar Date: Mon, 21 Oct 2024 23:39:20 +0330 Subject: [PATCH 06/60] refactor(telegram): types --- packages/telegram/src/type.ts | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/packages/telegram/src/type.ts b/packages/telegram/src/type.ts index 22ad5f1b..d2859b27 100644 --- a/packages/telegram/src/type.ts +++ b/packages/telegram/src/type.ts @@ -1 +1,16 @@ -export type Group = {members: number[]} +import type {Chat} from 'grammy/types'; + +declare global { + type GroupItem = { + // title: string; + memberList: Member[]; + } + + type Member = { + id: string; + type: Chat['type'], + username?: string; + first_name?: string; + last_name?: string; + } +} From f1b11863665184f1d50bd8d2542fbf8b5d86b105 Mon Sep 17 00:00:00 2001 From: Mohammad Honarvar Date: Mon, 21 Oct 2024 23:41:34 +0330 Subject: [PATCH 07/60] fix(telegram): start `bot` --- packages/telegram/src/main.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/telegram/src/main.ts b/packages/telegram/src/main.ts index f4136b5f..53b1f1e8 100644 --- a/packages/telegram/src/main.ts +++ b/packages/telegram/src/main.ts @@ -4,14 +4,14 @@ import './bot/start-command.js'; import './bot/unsubscribe-callback.js' import {bot} from './lib/bot.js'; -import {logger} from './lib/config.js'; +import {config, logger} from './lib/config.js'; import {initializeNitrobase} from './lib/initialize-nitrobase.js'; import './route/home.js' import './route/notify.js' logger.banner('@alwatr/telegram-notifier'); -// bot.start({onStart, drop_pending_updates: config.bot.dropPendingUpdates}); +bot.start({drop_pending_updates: config.bot.dropPendingUpdates}); bot.catch(async (err: { message: unknown; }) => { logger.error('catch', 'catch_error', err); From 89115a7c22d9f42490f20a06de2e0e53d13db934 Mon Sep 17 00:00:00 2001 From: Mohammad Honarvar Date: Tue, 22 Oct 2024 00:43:17 +0330 Subject: [PATCH 08/60] feat(telegram): add `new_group` command to create a group --- .../telegram/src/bot/new-group-command.ts | 34 +++++++++++++++++++ packages/telegram/src/type.ts | 2 +- 2 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 packages/telegram/src/bot/new-group-command.ts diff --git a/packages/telegram/src/bot/new-group-command.ts b/packages/telegram/src/bot/new-group-command.ts new file mode 100644 index 00000000..fe1ecb16 --- /dev/null +++ b/packages/telegram/src/bot/new-group-command.ts @@ -0,0 +1,34 @@ +import {bot} from '../lib/bot.js'; +import {config, logger} from '../lib/config.js'; +import { cryptoFactory } from '../lib/crypto.js'; +import { alwatrNitrobase } from '../lib/nitrobase.js'; +// import {message} from '../lib/i18n.js'; +// import {alwatrNitrobase} from '../lib/nitrobase.js'; + +/** + * `new_group` command. + * + * This command creates a new group. + */ +bot.command('new_group', async (ctx) => { + // FIXME: Check admin access + + const chatId = ctx.chat.id + ''; + const groupNameQueryParam = ctx.match; + logger.logMethodArgs?.('new_group', {chatId, groupNameQueryParam}); + + const groupName = groupNameQueryParam.split('?name=')[1]; + if (!groupName) { + ctx.reply('لطفا نام گروه را مشخص کنید.'); + return; + } + + const groupsCollection = await alwatrNitrobase.openCollection(config.nitrobase.groupsCollection); + const newGroupId = cryptoFactory.generateUserId(); + groupsCollection.addItem(newGroupId, { + categoryName: groupName, + memberList: [] + }); + + ctx.reply('https://t.me/MHF_DEV_BOT?start=' + newGroupId); +}); diff --git a/packages/telegram/src/type.ts b/packages/telegram/src/type.ts index d2859b27..43d2336f 100644 --- a/packages/telegram/src/type.ts +++ b/packages/telegram/src/type.ts @@ -2,7 +2,7 @@ import type {Chat} from 'grammy/types'; declare global { type GroupItem = { - // title: string; + categoryName: string; memberList: Member[]; } From d72f8a34a3890942c7f866b46488ad7577432ad6 Mon Sep 17 00:00:00 2001 From: Mohammad Honarvar Date: Tue, 22 Oct 2024 00:44:25 +0330 Subject: [PATCH 09/60] fix(telegram): remove creating a group as default when it doesn't exist --- packages/telegram/src/bot/start-command.ts | 21 --------------------- 1 file changed, 21 deletions(-) diff --git a/packages/telegram/src/bot/start-command.ts b/packages/telegram/src/bot/start-command.ts index 881fb77c..70b65f48 100644 --- a/packages/telegram/src/bot/start-command.ts +++ b/packages/telegram/src/bot/start-command.ts @@ -38,27 +38,6 @@ bot.command('start', async (ctx) => { username: ctx.chat.username } - if (groupsCollection.hasItem(groupId) === false) { - groupsCollection.addItem(groupId, { - memberList: [newMember] - }); - groupsCollection.save(); - - - await ctx.reply(message('added_message'), { - reply_parameters: {message_id: ctx.message!.message_id}, - reply_markup: { - inline_keyboard: [ - [ - unsubscribeInlineKeyboardData, - ], - ], - }, - }); - - return; - } - const groupData = groupsCollection.getItemData(groupId); const targetIndex = groupData.memberList.findIndex(member => member.id === chatId); if (targetIndex === -1) { From 5311b3966c4050f2faef78ae2139d2aef3d407bc Mon Sep 17 00:00:00 2001 From: Mohammad Honarvar Date: Tue, 22 Oct 2024 00:44:53 +0330 Subject: [PATCH 10/60] fix(telegram): validate `groupId` --- packages/telegram/src/bot/send-message.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/telegram/src/bot/send-message.ts b/packages/telegram/src/bot/send-message.ts index 05c94bd5..7763688a 100644 --- a/packages/telegram/src/bot/send-message.ts +++ b/packages/telegram/src/bot/send-message.ts @@ -1,5 +1,6 @@ import {bot} from '../lib/bot.js'; import {config, logger} from '../lib/config.js'; +import {cryptoFactory} from '../lib/crypto.js'; import {message} from '../lib/i18n.js'; import {alwatrNitrobase} from '../lib/nitrobase.js'; import {escapeMessage} from '../lib/util.js'; @@ -19,7 +20,10 @@ sendMessageToGroup(groupId: string, message_: string): Promise { const groupsCollection = await alwatrNitrobase.openCollection(config.nitrobase.groupsCollection); - if (groupsCollection.hasItem(groupId) === false) { + if ( + cryptoFactory.verifyUserId(groupId) === false || + groupsCollection.hasItem(groupId) === false + ) { return; } From dc0ddd10efd1f622c756bc002c7ef4aba6dbd395 Mon Sep 17 00:00:00 2001 From: Mohammad Honarvar Date: Tue, 22 Oct 2024 00:45:21 +0330 Subject: [PATCH 11/60] feat(telegram): add `cryptoFactory` --- packages/telegram/src/lib/crypto.ts | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 packages/telegram/src/lib/crypto.ts diff --git a/packages/telegram/src/lib/crypto.ts b/packages/telegram/src/lib/crypto.ts new file mode 100644 index 00000000..0fb19db6 --- /dev/null +++ b/packages/telegram/src/lib/crypto.ts @@ -0,0 +1,5 @@ +import {AlwatrCryptoFactory} from 'alwatr/nanotron'; + +import {config} from './config.js'; + +export const cryptoFactory = /* #__PURE__ */ new AlwatrCryptoFactory(config.token); From 66d4297414bfa9e36aaaf9e3867f82077905eb56 Mon Sep 17 00:00:00 2001 From: Mohammad Honarvar Date: Tue, 22 Oct 2024 00:46:13 +0330 Subject: [PATCH 12/60] fix(telegram): add a missing `import` & format --- packages/telegram/src/main.ts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/packages/telegram/src/main.ts b/packages/telegram/src/main.ts index 53b1f1e8..adee04ef 100644 --- a/packages/telegram/src/main.ts +++ b/packages/telegram/src/main.ts @@ -1,13 +1,14 @@ // common imports // import {notifyDebug, onStart} from './lib/admin.js'; // bot imports +import './bot/new-group-command.js'; import './bot/start-command.js'; -import './bot/unsubscribe-callback.js' +import './bot/unsubscribe-callback.js'; import {bot} from './lib/bot.js'; import {config, logger} from './lib/config.js'; import {initializeNitrobase} from './lib/initialize-nitrobase.js'; -import './route/home.js' -import './route/notify.js' +import './route/home.js'; +import './route/notify.js'; logger.banner('@alwatr/telegram-notifier'); From db3380a64820bf40e0fffb9ae99322a6543f103c Mon Sep 17 00:00:00 2001 From: Mohammad Honarvar Date: Tue, 22 Oct 2024 00:47:29 +0330 Subject: [PATCH 13/60] fix(telegram): read `dropPendingUpdates` from `env` object --- packages/telegram/src/lib/config.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/telegram/src/lib/config.ts b/packages/telegram/src/lib/config.ts index 3341c9f7..90ad288b 100644 --- a/packages/telegram/src/lib/config.ts +++ b/packages/telegram/src/lib/config.ts @@ -63,7 +63,7 @@ export const config = { // adminChatId: +env.botAdminChatId!, // adminThreadId: +env.botAdminThreadId!, - dropPendingUpdates: process.env.dropPendingUpdates === '1', + dropPendingUpdates: env.dropPendingUpdates === '1', info: { username: env.botUsername, From e06afbe50e955b9c743ff930d4bab8baef0e8993 Mon Sep 17 00:00:00 2001 From: Mohammad Honarvar Date: Tue, 22 Oct 2024 00:47:51 +0330 Subject: [PATCH 14/60] fix: update `scripts` --- packages/telegram/package.json | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/packages/telegram/package.json b/packages/telegram/package.json index 56b53271..6b78e2c6 100644 --- a/packages/telegram/package.json +++ b/packages/telegram/package.json @@ -45,20 +45,21 @@ ] }, "scripts": { + "s": "yarn run start", "b": "yarn run build", - "t": "yarn run test", "w": "yarn run watch", "c": "yarn run clean", "cb": "yarn run clean && yarn run build", - "d": "yarn run build:es && yarn node --enable-source-maps --trace-warnings", + "cw": "yarn run clean && yarn run watch", + "d": "yarn run build:es && DEBUG=1 yarn node", + "start": "yarn build && yarn serve", "build": "yarn run build:ts && yarn run build:es", - "build:es": "nano-build --preset=module", + "build:es": "nano-build --preset=microservice", "build:ts": "tsc --build", - "test": "NODE_OPTIONS=\"$NODE_OPTIONS --enable-source-maps --experimental-vm-modules\" jest", - "watch": "yarn run watch:ts & yarn run watch:es", - "watch:es": "yarn run build:es --watch", - "watch:ts": "yarn run build:ts --watch --preserveWatchOutput", - "clean": "rm -rfv dist *.tsbuildinfo" + "watch": "yarn run build --watch", + "clean": "rm -rfv dist *.tsbuildinfo", + "serve": "yarn node --enable-source-maps dist/main.mjs", + "serve:debug": "yarn node --inspect --enable-source-maps dist/main.mjs" }, "dependencies": { "grammy": "^1.30.0" From 45e45794e3f5960883104efbdd48645b8a7f53d8 Mon Sep 17 00:00:00 2001 From: Mohammad Honarvar Date: Tue, 22 Oct 2024 00:51:05 +0330 Subject: [PATCH 15/60] fix(telegram): types --- packages/telegram/src/type.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/telegram/src/type.ts b/packages/telegram/src/type.ts index 43d2336f..79e35781 100644 --- a/packages/telegram/src/type.ts +++ b/packages/telegram/src/type.ts @@ -3,14 +3,14 @@ import type {Chat} from 'grammy/types'; declare global { type GroupItem = { categoryName: string; - memberList: Member[]; + memberList: MemberItem[]; } - type Member = { + type MemberItem = { id: string; type: Chat['type'], - username?: string; - first_name?: string; - last_name?: string; + username?: Chat['username']; + first_name?: Chat['first_name']; + last_name?: Chat['last_name']; } } From ed723af95a370caf8443965cf22ae56fff4eb8fb Mon Sep 17 00:00:00 2001 From: Mohammad Honarvar Date: Tue, 22 Oct 2024 10:46:28 +0330 Subject: [PATCH 16/60] fix(telegram): check the access to run the command --- .../telegram/src/bot/new-group-command.ts | 20 ++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/packages/telegram/src/bot/new-group-command.ts b/packages/telegram/src/bot/new-group-command.ts index fe1ecb16..6f92ca62 100644 --- a/packages/telegram/src/bot/new-group-command.ts +++ b/packages/telegram/src/bot/new-group-command.ts @@ -1,9 +1,8 @@ import {bot} from '../lib/bot.js'; import {config, logger} from '../lib/config.js'; -import { cryptoFactory } from '../lib/crypto.js'; -import { alwatrNitrobase } from '../lib/nitrobase.js'; -// import {message} from '../lib/i18n.js'; -// import {alwatrNitrobase} from '../lib/nitrobase.js'; +import {cryptoFactory} from '../lib/crypto.js'; +import {message} from '../lib/i18n.js'; +import {alwatrNitrobase} from '../lib/nitrobase.js'; /** * `new_group` command. @@ -11,15 +10,18 @@ import { alwatrNitrobase } from '../lib/nitrobase.js'; * This command creates a new group. */ bot.command('new_group', async (ctx) => { - // FIXME: Check admin access - - const chatId = ctx.chat.id + ''; + const chatId = ctx.chat.id; const groupNameQueryParam = ctx.match; logger.logMethodArgs?.('new_group', {chatId, groupNameQueryParam}); + if (chatId !== config.bot.adminChatId) { + ctx.reply(message('commandAccessDenied')); + return; + } + const groupName = groupNameQueryParam.split('?name=')[1]; if (!groupName) { - ctx.reply('لطفا نام گروه را مشخص کنید.'); + ctx.reply(message('enterGroupName')); return; } @@ -30,5 +32,5 @@ bot.command('new_group', async (ctx) => { memberList: [] }); - ctx.reply('https://t.me/MHF_DEV_BOT?start=' + newGroupId); + ctx.reply(`https://t.me/${config.bot.info.username}?start=${newGroupId}`); }); From c2bc35a6f1d899b2c3bf3aec896b1cf42a55e6d7 Mon Sep 17 00:00:00 2001 From: Mohammad Honarvar Date: Tue, 22 Oct 2024 10:47:43 +0330 Subject: [PATCH 17/60] feat(telegram): add `getUnsubscribeInlineKeyboardData` to reuse --- packages/telegram/src/bot/unsubscribe-callback.ts | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/packages/telegram/src/bot/unsubscribe-callback.ts b/packages/telegram/src/bot/unsubscribe-callback.ts index adc173b9..54c9ffda 100644 --- a/packages/telegram/src/bot/unsubscribe-callback.ts +++ b/packages/telegram/src/bot/unsubscribe-callback.ts @@ -10,14 +10,14 @@ bot.callbackQuery(/^unsubscribe:.*$/, async (ctx) => { const groupsCollection = await alwatrNitrobase.openCollection(config.nitrobase.groupsCollection); if (groupsCollection.hasItem(groupId) === false) { - await ctx.reply(message('you_not_subscribed_before')); + await ctx.reply(message('haveNotSubscribedBefore')); return; } const groupData = groupsCollection.getItemData(groupId); const targetIndex = groupData.memberList.findIndex(member => member.id === userId); if (targetIndex === -1) { - await ctx.reply(message('you_not_subscribed_before')); + await ctx.reply(message('haveNotSubscribedBefore')); return; } @@ -25,5 +25,10 @@ bot.callbackQuery(/^unsubscribe:.*$/, async (ctx) => { groupsCollection.mergeItemData(groupId, groupData); groupsCollection.save(); - await ctx.reply(message('unsubscribe_message').replace('{groupId}', groupId)); + await ctx.reply(message('hasBeenUnsubscribed').replace('{groupId}', groupId)); +}); + +export const getUnsubscribeInlineKeyboardData = (groupId: string) => ({ + callback_data: `unsubscribe:${groupId}`, + text: message('unsubscribeMeButtonLabel'), }); From 087e98a286aab3b675e2506441b539ea9ec4b208 Mon Sep 17 00:00:00 2001 From: Mohammad Honarvar Date: Tue, 22 Oct 2024 10:48:29 +0330 Subject: [PATCH 18/60] refactor(telegram): keys of `message` & fix all its usages --- packages/telegram/src/bot/send-message.ts | 7 ++----- packages/telegram/src/bot/start-command.ts | 11 ++++------- packages/telegram/src/lib/i18n.ts | 16 +++++++++------- 3 files changed, 15 insertions(+), 19 deletions(-) diff --git a/packages/telegram/src/bot/send-message.ts b/packages/telegram/src/bot/send-message.ts index 7763688a..0caa839d 100644 --- a/packages/telegram/src/bot/send-message.ts +++ b/packages/telegram/src/bot/send-message.ts @@ -1,7 +1,7 @@ +import {getUnsubscribeInlineKeyboardData} from './unsubscribe-callback.js'; import {bot} from '../lib/bot.js'; import {config, logger} from '../lib/config.js'; import {cryptoFactory} from '../lib/crypto.js'; -import {message} from '../lib/i18n.js'; import {alwatrNitrobase} from '../lib/nitrobase.js'; import {escapeMessage} from '../lib/util.js'; @@ -36,10 +36,7 @@ sendMessageToGroup(groupId: string, message_: string): Promise { reply_markup: { inline_keyboard: [ [ - { - callback_data: `unsubscribe:${groupId}`, - text: message('unsubscribe_me_button'), - }, + getUnsubscribeInlineKeyboardData(groupId), ], ], }, diff --git a/packages/telegram/src/bot/start-command.ts b/packages/telegram/src/bot/start-command.ts index 70b65f48..3011fa65 100644 --- a/packages/telegram/src/bot/start-command.ts +++ b/packages/telegram/src/bot/start-command.ts @@ -1,12 +1,9 @@ +import {getUnsubscribeInlineKeyboardData} from './unsubscribe-callback.js'; import {bot} from '../lib/bot.js'; import {config, logger} from '../lib/config.js'; import {message} from '../lib/i18n.js'; import {alwatrNitrobase} from '../lib/nitrobase.js'; -const getUnsubscribeInlineKeyboardData = (groupId: string) => ({ - callback_data: `unsubscribe:${groupId}`, - text: message('unsubscribe_me_button'), -}); /** * `start` command. @@ -21,7 +18,7 @@ bot.command('start', async (ctx) => { const unsubscribeInlineKeyboardData = getUnsubscribeInlineKeyboardData(groupId); if (groupId === undefined) { - await ctx.reply(message('private_bot_message'), { + await ctx.reply(message('itIsPrivateBot'), { reply_parameters: {message_id: ctx.message!.message_id}, }); @@ -45,7 +42,7 @@ bot.command('start', async (ctx) => { groupsCollection.mergeItemData(groupId, groupData); groupsCollection.save(); - await ctx.reply(message('added_message'), { + await ctx.reply(message('addedToList'), { reply_parameters: {message_id: ctx.message!.message_id}, reply_markup: { inline_keyboard: [ @@ -59,7 +56,7 @@ bot.command('start', async (ctx) => { return; } - await ctx.reply(message('added_already_message'), { + await ctx.reply(message('hasBeenAddedAlready'), { reply_parameters: {message_id: ctx.message!.message_id}, reply_markup: { inline_keyboard: [ diff --git a/packages/telegram/src/lib/i18n.ts b/packages/telegram/src/lib/i18n.ts index 60da3cc3..9351eb8d 100644 --- a/packages/telegram/src/lib/i18n.ts +++ b/packages/telegram/src/lib/i18n.ts @@ -5,12 +5,14 @@ export function message(key: keyof typeof i18nResources): string { } const i18nResources = { - added_message: 'شما با موفقیت به لیست اضافه شدید', - added_already_message: 'شما قبلا به این لیست اضافه شده اید.', - unsubscribe_me_button: 'لغو عضویت از این لیست 🔕', - unsubscribe_message: 'شما از لیست {groupId} حذف شدید 🚫', - you_not_subscribed_before: 'شما قبلا عضو این لیست نبوده اید!', + addedToList: 'شما با موفقیت به لیست اضافه شدید', + hasBeenAddedAlready: 'شما قبلا به این لیست اضافه شده اید.', + unsubscribeMeButtonLabel: 'لغو عضویت از این لیست 🔕', + hasBeenUnsubscribed: 'شما از لیست {groupId} حذف شدید 🚫', + haveNotSubscribedBefore: 'شما قبلا عضو این لیست نبوده اید!', + enterGroupName: 'لطفا نام گروه را مشخص کنید.', + commandAccessDenied: 'شما نمیتوانید این دستور رو اجرا کنید.', - startup_message: `Bot started \n\nv${__package_version__}`, - private_bot_message: 'این یک بات خصوصی هست! لطفا مزاحم نشوید', + startupMessage: `Bot started \n\nv${__package_version__}`, + itIsPrivateBot: 'این یک بات خصوصی هست! لطفا مزاحم نشوید', } as const; From a13bc571fd4c00caa49fdebdf9a6acb8edd10418 Mon Sep 17 00:00:00 2001 From: Mohammad Honarvar Date: Tue, 22 Oct 2024 10:49:42 +0330 Subject: [PATCH 19/60] fix(config): add `botAdminChatId` --- packages/telegram/src/lib/config.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/telegram/src/lib/config.ts b/packages/telegram/src/lib/config.ts index 90ad288b..38cdc092 100644 --- a/packages/telegram/src/lib/config.ts +++ b/packages/telegram/src/lib/config.ts @@ -17,7 +17,8 @@ const env = /* #__PURE__ */ (() => { botToken: 'BOT_TOKEN', botUsername: 'BOT_USERNAME', botFirstName: 'BOT_FIRST_NAME', - dropPendingUpdates: '1' + dropPendingUpdates: '1', + botAdminChatId: 'ADMIN_CHAT_ID', } as const; const env_ = { @@ -60,7 +61,7 @@ export const config = { bot: { token: env.botToken!, - // adminChatId: +env.botAdminChatId!, + adminChatId: +env.botAdminChatId!, // adminThreadId: +env.botAdminThreadId!, dropPendingUpdates: env.dropPendingUpdates === '1', From dc62296b6533f8cc18a1cdd668cef1ef2b594762 Mon Sep 17 00:00:00 2001 From: Mohammad Honarvar Date: Tue, 22 Oct 2024 10:50:21 +0330 Subject: [PATCH 20/60] feat: add a `demo.http` --- packages/telegram/demo.http | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/packages/telegram/demo.http b/packages/telegram/demo.http index 3d888164..bdaad0a1 100644 --- a/packages/telegram/demo.http +++ b/packages/telegram/demo.http @@ -1,6 +1,18 @@ -U2FsdGVkX1/rh6ZI/WJdX7MmV9jYUA9Kp8xSmgCAXDmvunvnxRPl/16kqAmLL3ae -ZGEpgj7JV5bH0wVxAHhgQx8if8XxYUpUDGwukKhYS5lfvMEmBVoQ0SeyqagMX4Gt -bYy5DrHgbqFENsUFJcw07RNdV3STudRh+I0r7p9NEM5Bu9UmFzNJTkDZo7cchk9y -cFGMc/TW/J4n4WE4S4ALkuV8CsPxgt1WuwsW/bduXLBD/ZCvvAtvWNFqZ9AAF8+/ -3C/w+SHBTrlbBUYb9WZduhc4EqTyqefv11HWxUYyZwfzm5pxmLAMcH23x+1bfKV5 -a7wGDG3CW/pwgles/IVt85MMt/0W1/rbz3J24wlMM3E= +@apiUrl = http://localhost:8000/api/v0 + +# @userId = user_id +# @userToken = user_token + +# @clientId = + +### api home +GET {{apiUrl}}/ + +### +POST {{apiUrl}}/telegram/notify +Content-Type: application/json + +{ + "groupId": "u3Mai3i1LyhlsRkdPAarKnL864bY32D6", + "message": "سلام به تو!!" +} From 070198bd928c5d2eeba71ff9970f7d58d770a0cc Mon Sep 17 00:00:00 2001 From: Mohammad Honarvar Date: Tue, 22 Oct 2024 11:23:31 +0330 Subject: [PATCH 21/60] docs: update --- README.md | 42 ++---------------------------------------- 1 file changed, 2 insertions(+), 40 deletions(-) diff --git a/README.md b/README.md index 44a36f95..854b00ae 100644 --- a/README.md +++ b/README.md @@ -1,41 +1,3 @@ -# ECMAScript Nano Libs +# Telegram Notify Nanoservice -This repository contains numerous small utility packages. These packages serve various useful purposes and are written in nano ESModule without any dependencies. - -Here is a brief overview of the included libraries: - -1. [`tsconfig-base`](./packages/tsconfig-base#readme): This is a foundational TypeScript configuration used for Alwatr projects. -2. [`flat-string`](./packages/flat-string#readme): The `flat-string` function flattens the underlying C structures of a concatenated JavaScript string. -3. [`global-scope`](./packages/global-scope#readme): This TypeScript module provides a cross-platform alternative to `globalThis` named `globalScope`. This object works across different environments, including browsers (`window`), Node.js (`global`), and Web Workers (`self`). -4. [`platform-info`](./packages/platform-info#readme): This module offers a method to identify the current platform where the script is being executed. It defines a `platformInfo` constant that contains details about the current platform. -5. [`prettier-config`](./packages/prettier-config#readme): These are Alwatr's shared configurations for Prettier. -6. [`eslint-config`](./packages/eslint-config#readme): This is Alwatr's ECMAScript Style Guide presented as shareable ESLint configurations. -7. [`deep-clone`](./packages/deep-clone#readme): This function allows you to clone deeply nested objects and arrays in JavaScript. -8. [`nano-build`](./packages/nano-build#readme): This is a tool for building/bundling ECMAScript, TypeScript, and JavaScript libraries. It's user-friendly, requires no setup, follows best practices, has no dependencies, and uses esbuild for improved performance. -9. [`type-helper`](./packages/type-helper#readme): Collection of useful typescript type helpers. -10. [`wait`](./packages/wait#readme): Comprehensive toolkit for managing asynchronous operations. -11. [`exit-hook`](./packages/exit-hook#readme): A utility for registering exit handlers in Node.js. -12. [`flatomise`](./packages/flatomise#readme): A utility for creating promises that can be externally resolved or rejected. -13. [`async-queue`](./packages/async-queue#readme): A queue that executes async tasks in order like mutex and semaphore methodology for javascript and typescript. -14. [`node-fs`](./packages/node-fs#readme): Enhanced file system operations in Node.js, including reading, writing, and handling JSON files, with both synchronous and asynchronous options. -15. [`is-number`](./packages/is-number#readme): A simple utility to check if a value is a number. -16. [`parse-duration`](./packages/parse-duration#readme): A simple utility to parse a duration string into milliseconds number. -17. [`local-storage`](./packages/local-storage#readme): `localJsonStorage` is a utility object in our TypeScript package that provides methods for interacting with the local storage in a structured and versioned manner. -18. [`polyfill-has-own`](./packages/polyfill-has-own#readme): A polyfill for `Object.hasOwn`. -19. [`fetch`](./packages/fetch/README.md): Enhanced fetch API with cache strategy, retry pattern, timeout, helper methods and enhanced types. - -For more detailed information and guidelines on how to use each package, please refer to each package's README. - -## Sponsors - -The following companies, organizations, and individuals support Nanolib ongoing maintenance and development. Become a Sponsor to get your logo on our README and website. - -[![Exir Studio](https://avatars.githubusercontent.com/u/181194967?s=200&v=4)](https://exirstudio.com) - -### Contributing - -Contributions are welcome! Please read our [contribution guidelines](https://github.com/Alwatr/.github/blob/next/CONTRIBUTING.md) before submitting a pull request. - -### License - -This project is licensed under the [AGPL-3.0 License](LICENSE). +Distributed simple and fast telegram notify nanoservice. From 92e87eed878f0ee2faf13db511b2d2bfdc41b10a Mon Sep 17 00:00:00 2001 From: Mohammad Honarvar Date: Tue, 22 Oct 2024 12:35:00 +0330 Subject: [PATCH 22/60] feat: add `deploy` directory --- deploy/compose.yml | 35 ++++++++++++++++++++++++++++ deploy/env/telegram-notifier-api.env | 13 +++++++++++ 2 files changed, 48 insertions(+) create mode 100644 deploy/compose.yml create mode 100644 deploy/env/telegram-notifier-api.env diff --git a/deploy/compose.yml b/deploy/compose.yml new file mode 100644 index 00000000..5131b78f --- /dev/null +++ b/deploy/compose.yml @@ -0,0 +1,35 @@ +networks: + internal: + alwatr-public-network: + name: alwatr-public-network + external: true + +services: + telegramNotifierApi: + image: $telegramNotifierApiImage + + cpu_count: 1 + cpu_shares: 1024 + mem_limit: 256m + + stop_grace_period: 5s + + restart: unless-stopped + + environment: + - dbPath=/data/db + - DEBUG=${telegramNotifierDebug:-} + + volumes: + - type: bind + source: ./_data/db + target: /data/db + bind: + create_host_path: true + + logging: + driver: json-file + options: + max-size: '10m' + max-file: '2' + diff --git a/deploy/env/telegram-notifier-api.env b/deploy/env/telegram-notifier-api.env new file mode 100644 index 00000000..5274531c --- /dev/null +++ b/deploy/env/telegram-notifier-api.env @@ -0,0 +1,13 @@ +appId='telegram-notifier-api' +deployHost='mci2' +deployPath="/srv/${appId}" + +appDomains='...' +# appForceDomain='app.weaver.alwatr.ir' + +telegramNotifierApiImage='ghcr.io/alimd/telegram-notifier-api:1.2.0' + +appDisallowRobots=1 + +telegramNotifierDebug=1 +dbAccessLog='/var/log/nginx/access.log json' From 4ae079661856936b8c6a04dc441290755b79de1f Mon Sep 17 00:00:00 2001 From: Mohammad Honarvar Date: Tue, 22 Oct 2024 12:35:23 +0330 Subject: [PATCH 23/60] feat(telegram): add `Dockerfile` --- packages/telegram/Dockerfile | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 packages/telegram/Dockerfile diff --git a/packages/telegram/Dockerfile b/packages/telegram/Dockerfile new file mode 100644 index 00000000..3d5462ed --- /dev/null +++ b/packages/telegram/Dockerfile @@ -0,0 +1,34 @@ +FROM ghcr.io/alwatr/node:22.9.0 AS builder + +RUN set -ex; \ + apk add --no-cache git; \ + corepack enable; + +RUN yarn install; + +COPY . . + +RUN set -eux; \ + yarn install --immutable; \ + yarn build; \ + ls -lahF .; \ + ls -RlahF /app/packages/api; + +# --- + +FROM ghcr.io/alwatr/node:22.9.0 +LABEL org.opencontainers.image.base.name="ghcr.io/alwatr/node:22.9.0" + +COPY --from=builder /app/packages/api/dist/ . +# RUN set -ex; \ +# corepack enable; \ +# npm install sharp; +# RUN set -eux; ls -RlahF /app; + +# ENV NODE_OPTIONS --enable-source-maps +ENV host="0.0.0.0" \ + port="80" + +EXPOSE 80 + +CMD ["node", "main.mjs"] From 296e169fa1544b38b7e1f69fc9a74baf5b0591e7 Mon Sep 17 00:00:00 2001 From: Mohammad Honarvar Date: Tue, 22 Oct 2024 14:15:57 +0330 Subject: [PATCH 24/60] feat: add `.github` configs based on `weaver-starter-kit` --- .github/copilot-instruction.md | 44 ++++++++ .github/dependabot.yml | 27 +++-- .github/workflows/build-lint.yaml | 3 - .github/workflows/codeql.yaml | 22 ++-- .github/workflows/dependency-review.yaml | 3 +- .github/workflows/publish-container.yml | 129 +++++++++++++++++++++++ deploy/env/telegram-notifier-api.env | 13 --- 7 files changed, 207 insertions(+), 34 deletions(-) create mode 100644 .github/copilot-instruction.md create mode 100644 .github/workflows/publish-container.yml delete mode 100644 deploy/env/telegram-notifier-api.env diff --git a/.github/copilot-instruction.md b/.github/copilot-instruction.md new file mode 100644 index 00000000..a185ef54 --- /dev/null +++ b/.github/copilot-instruction.md @@ -0,0 +1,44 @@ +# Instruction + +As an advanced web developer, prioritize code maintainability, readability, and performance. Write clean, efficient, and well-documented code. Adhere to instructions without adding extra code or features. Identify and report bugs and mistakes for correction. Carefully review prompts and provide detailed feedback if something is incorrect. + +## General Rules + +- Follow JAMstack architecture principles. +- Write minimal and clear descriptions and if possible don't write anything and just send code. +- Fully optimize JavaScript code for best performance. +- Ensure clear separation of concerns. +- Do not use extra packages unless explicitly required; prefer vanilla JavaScript. +- Use modern TypeScript; avoid outdated versions and polyfills. Add TODO comments if polyfills are needed. + +## Technologies + +- Use Lit for web components with light DOM. +- Use Tailwind CSS for styling; avoid additional CSS. +- Use the latest TypeScript features for type safety and improved code quality. +- Use Nunjucks templating engine in the 11ty static site generator. +- Utilize in-ecosystem packages developed by our team. +- Use the NoSQL database developed by our team. +- Alpine Store for state management. +- Use FSM for state machines by our team for many part of client-side logics. +- Use logger for logging by our team for each function. + +## Commenting + +1. Comments should not duplicate the code, if duplicate, don't write it. +2. Rewrite unclear code instead of adding comments to explain it. +3. If a comment is unclear, there may be an issue with the code itself. +4. Comments should clarify, not confuse. Remove comments that cause confusion. +5. Explain non-standard code with comments. +6. Provide links to the original source of copied code. +7. Include links to external references where helpful. +8. Add comments when fixing bugs. +9. Use comments to mark incomplete implementations. +10. minimize usage of jsdoc comments. + +## Other + +1. call me `bro`. +2. Please consider the logic and if my opinion is against your opinion, please don't accept it immediately and just check it again and give reasons. +3. Do not speak too formally and sloppily, Feel like you're talking to your friend. +4. Explain with simple english. diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 1f8c47e7..88cd357e 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -6,13 +6,14 @@ updates: directory: / open-pull-requests-limit: 20 commit-message: - prefix: 'deps' + prefix: deps + include: scope reviewers: - AliMD schedule: interval: weekly - time: '00:30' - day: 'thursday' + time: '10:30' + day: thursday labels: - ci - priority-low @@ -27,13 +28,14 @@ updates: versioning-strategy: increase open-pull-requests-limit: 20 commit-message: - prefix: 'deps' + prefix: deps + include: scope reviewers: - AliMD schedule: interval: weekly - time: '00:30' - day: 'thursday' + time: '10:30' + day: thursday labels: - dependencies - ci @@ -54,3 +56,16 @@ updates: patterns: - '@alwatr/*' - 'fract' + + - package-ecosystem: docker + directory: /packages/notifier-api + reviewers: + - AliMD + schedule: + interval: weekly + time: '10:30' + day: thursday + labels: + - ci + - priority-low + - maintenance diff --git a/.github/workflows/build-lint.yaml b/.github/workflows/build-lint.yaml index cfb47c67..e08831b6 100644 --- a/.github/workflows/build-lint.yaml +++ b/.github/workflows/build-lint.yaml @@ -56,6 +56,3 @@ jobs: - name: 🚀 Run ESLint run: yarn lint - - - name: 🚀 Run Jest - run: yarn test diff --git a/.github/workflows/codeql.yaml b/.github/workflows/codeql.yaml index cc8e13d0..e00bfcbc 100644 --- a/.github/workflows/codeql.yaml +++ b/.github/workflows/codeql.yaml @@ -5,14 +5,14 @@ name: CodeQL on: workflow_dispatch: - schedule: - - cron: '0 7 * */2 *' - # │ │ │ │ │ - # │ │ │ │ └─── day of the week (0 - 6 or SUN-SAT) - # │ │ │ └────── month (1 - 12 or JAN-DEC) - # │ │ └───────── day of the month (1 - 31) - # │ └─────────── hour (0 - 23) - # └───────────── minute (0 - 59) + # schedule: + # - cron: '0 7 * */2 *' + # │ │ │ │ │ + # │ │ │ │ └─── day of the week (0 - 6 or SUN-SAT) + # │ │ │ └────── month (1 - 12 or JAN-DEC) + # │ │ └───────── day of the month (1 - 31) + # │ └─────────── hour (0 - 23) + # └───────────── minute (0 - 59) jobs: analyze-code-ql: @@ -35,14 +35,14 @@ jobs: uses: actions/checkout@v4.2.1 - name: 🏗 Initialize CodeQL - uses: github/codeql-action/init@v3.26.12 + uses: github/codeql-action/init@v3.26.13 with: languages: ${{ matrix.language }} # Details on CodeQL's query packs refer to : https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs # queries: security-extended,security-and-quality - name: 🏗 Auto build - uses: github/codeql-action/autobuild@v3.26.12 + uses: github/codeql-action/autobuild@v3.26.13 - name: 🚀 Perform CodeQL Analysis - uses: github/codeql-action/analyze@v3.26.12 + uses: github/codeql-action/analyze@v3.26.13 diff --git a/.github/workflows/dependency-review.yaml b/.github/workflows/dependency-review.yaml index c15a5269..d92db413 100644 --- a/.github/workflows/dependency-review.yaml +++ b/.github/workflows/dependency-review.yaml @@ -5,7 +5,8 @@ name: Dependency Review on: workflow_dispatch: - pull_request: + # disable on private repository + # pull_request: jobs: dependency-review: diff --git a/.github/workflows/publish-container.yml b/.github/workflows/publish-container.yml new file mode 100644 index 00000000..dc3c3655 --- /dev/null +++ b/.github/workflows/publish-container.yml @@ -0,0 +1,129 @@ +# yaml-language-server: $schema=https://json.schemastore.org/github-workflow.json + +name: Build & Publish Containers + +on: + workflow_dispatch: + inputs: + siteUrl: + description: Website URL + type: string + + # push: + # branches: + # - next + + # pull_request: + + release: + types: + - created + +env: + USER: Alwatr + siteUrl: ${{ github.event.inputs.siteUrl || secrets.SITE_URL }} + +jobs: + build: + if: github.repository_owner == 'Alwatr' + + name: Build & Publish Containers + runs-on: ubuntu-latest + + strategy: + fail-fast: false + matrix: + include: + - name: notifier-api + path: ./packages/notifier-api + context: . + + permissions: + contents: read + packages: write + id-token: write + + steps: + - name: ⤵️ Checkout repository + uses: actions/checkout@v4.2.1 + + - name: ❔ Check Container files changed + id: file_change + if: ${{ github.event_name != 'release' && github.event_name != 'workflow_dispatch' }} + uses: dorny/paths-filter@v3.0.2 + with: + filters: | + container_folder: + ${{ matrix.context }}/** + + - name: 🏗 Install cosign + if: ${{ github.event_name != 'pull_request' && steps.file_change.outputs.container_folder != 'false' }} + uses: sigstore/cosign-installer@v3.7.0 + + - name: 🏗 Setup Docker Buildx + if: ${{ steps.file_change.outputs.container_folder != 'false' }} + uses: docker/setup-buildx-action@v3.7.1 + + - name: 🏗 Cache Docker Layers + if: ${{ steps.file_change.outputs.container_folder != 'false' }} + uses: actions/cache@v4.1.1 + with: + path: /tmp/.buildx-cache + key: container/${{ matrix.name }} + + # - name: 🏗 Log into docker hub registry + # if: ${{ github.event_name != 'pull_request' && steps.file_change.outputs.container_folder != 'false' }} + # uses: docker/login-action@v3.3.0 + # with: + # username: ${{env.USER}} + # password: ${{secrets.DOCKER_HUB_TOKEN}} + + - name: 🏗 Log into ghcr.io registry + if: ${{ github.event_name != 'pull_request' && steps.file_change.outputs.container_folder != 'false' }} + uses: docker/login-action@v3.3.0 + with: + registry: ghcr.io + username: ${{env.USER}} + password: ${{secrets.GITHUB_TOKEN}} + + - name: 🏗 Extract metadata + if: ${{ steps.file_change.outputs.container_folder != 'false' }} + id: meta + uses: docker/metadata-action@v5.5.1 + with: + github-token: ${{secrets.GITHUB_TOKEN}} + images: | + name=ghcr.io/${{env.USER}}/${{matrix.name}},enable=true + name=docker.io/${{env.USER}}/${{matrix.name}},enable=false + tags: | + type=semver,enable=true,pattern={{major}} + type=semver,enable=true,pattern={{major}}.{{minor}} + type=semver,enable=true,pattern={{version}} + type=ref,enable=true,event=branch + type=raw,enable=true,value=latest + labels: | + org.opencontainers.image.title="alwatr/${{matrix.name}}" + org.opencontainers.image.vendor="Alwatr" + org.opencontainers.image.documentation="https://github.com/Alwatr/notifier" + org.opencontainers.image.authors="S. Ali Mihandoost (https://ali.mihandoost.com)" + + - name: 🚀 Build and push container image + if: ${{ steps.file_change.outputs.container_folder != 'false' }} + id: build_and_push + uses: docker/build-push-action@v6.9.0 + with: + context: ${{matrix.context}} + file: ${{matrix.path}}/Dockerfile + push: ${{ github.event_name != 'pull_request' }} + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} + cache-from: type=local,src=/tmp/.buildx-cache + cache-to: type=local,dest=/tmp/.buildx-cache + build-args: | + siteUrl=${{ env.siteUrl }} + + # - name: 🏗 Sign the image with GitHub OIDC Token + # if: ${{ github.event_name != 'pull_request' && steps.file_change.outputs.container_folder != 'false' }} + # env: + # COSIGN_EXPERIMENTAL: 'true' + # run: echo "${{steps.meta.outputs.tags}}" | xargs -I {} cosign sign --yes {}@${{steps.build_and_push.outputs.digest}} diff --git a/deploy/env/telegram-notifier-api.env b/deploy/env/telegram-notifier-api.env deleted file mode 100644 index 5274531c..00000000 --- a/deploy/env/telegram-notifier-api.env +++ /dev/null @@ -1,13 +0,0 @@ -appId='telegram-notifier-api' -deployHost='mci2' -deployPath="/srv/${appId}" - -appDomains='...' -# appForceDomain='app.weaver.alwatr.ir' - -telegramNotifierApiImage='ghcr.io/alimd/telegram-notifier-api:1.2.0' - -appDisallowRobots=1 - -telegramNotifierDebug=1 -dbAccessLog='/var/log/nginx/access.log json' From aa7aebc828908924b8ce3a5d8249ef286d4c638b Mon Sep 17 00:00:00 2001 From: Mohammad Honarvar Date: Tue, 22 Oct 2024 14:16:32 +0330 Subject: [PATCH 25/60] refactor(deploay): add some changes based on `weaver-starter-kit` --- deploy/compose.yml | 53 ++++++++++++++++++++++++++++++++++--- deploy/deploy.sh | 4 +++ deploy/env/notifier-api.env | 11 ++++++++ 3 files changed, 64 insertions(+), 4 deletions(-) create mode 100644 deploy/deploy.sh create mode 100644 deploy/env/notifier-api.env diff --git a/deploy/compose.yml b/deploy/compose.yml index 5131b78f..e0193982 100644 --- a/deploy/compose.yml +++ b/deploy/compose.yml @@ -5,20 +5,59 @@ networks: external: true services: - telegramNotifierApi: - image: $telegramNotifierApiImage + api: + image: $notifierApiImage cpu_count: 1 cpu_shares: 1024 mem_limit: 256m - stop_grace_period: 5s + stop_grace_period: 30s restart: unless-stopped + networks: + alwatr-public-network: + environment: - dbPath=/data/db - - DEBUG=${telegramNotifierDebug:-} + - DEBUG=${notifierApiDebug:-} + + volumes: + - type: bind + source: ./_data/db + target: /data/db + bind: + create_host_path: true + + logging: + driver: json-file + options: + max-size: '10m' + max-file: '2' + + labels: + traefik.enable: true + traefik.port: 80 + traefik.frontend.rule: Host:${appDomains}; PathPrefix:/api/v1/; + traefik.frontend.entryPoints: http, https + traefik.frontend.redirect.entryPoint: https + + db: + image: ghcr.io/alwatr/nitrobase-nginx:7.3 + + cpu_count: 1 + cpu_shares: 1024 + mem_limit: 256m + + restart: unless-stopped + + networks: + alwatr-public-network: + + environment: + - NGINX_DOCUMENT_ROOT=/data/db + - NGINX_ACCESS_LOG=${dbAccessLog:-off} volumes: - type: bind @@ -33,3 +72,9 @@ services: max-size: '10m' max-file: '2' + labels: + traefik.enable: true + traefik.port: 80 + traefik.frontend.rule: Host:${appDomains}; PathPrefix:/api/s7/; + traefik.frontend.entryPoints: http, https + traefik.frontend.redirect.entryPoint: https diff --git a/deploy/deploy.sh b/deploy/deploy.sh new file mode 100644 index 00000000..518aa202 --- /dev/null +++ b/deploy/deploy.sh @@ -0,0 +1,4 @@ +#!/usr/bin/env bash + +ALWATR_LIB=../../alwatr/cloud/classic/lib +source $ALWATR_LIB/deploy.sh diff --git a/deploy/env/notifier-api.env b/deploy/env/notifier-api.env new file mode 100644 index 00000000..4fe06c86 --- /dev/null +++ b/deploy/env/notifier-api.env @@ -0,0 +1,11 @@ +appId='notifier-api' +deployHost='mci2' +deployPath="/srv/${appId}" + +appDomains='...' +# appForceDomain='app.weaver.alwatr.ir' + +notifierApiImage='ghcr.io/alimd/notifier-api:...' + +notifierApiDebug=1 +dbAccessLog='/var/log/nginx/access.log json' From 9d5f5b3eff3e4745b1fd041aedfca9531ac99401 Mon Sep 17 00:00:00 2001 From: Mohammad Honarvar Date: Tue, 22 Oct 2024 14:19:54 +0330 Subject: [PATCH 26/60] chore: update `lerna` based on `weaver-starter-kit` --- lerna.json | 86 +++++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 66 insertions(+), 20 deletions(-) diff --git a/lerna.json b/lerna.json index 2e1f784d..fd4fb6b8 100644 --- a/lerna.json +++ b/lerna.json @@ -1,6 +1,6 @@ { "$schema": "https://raw.githubusercontent.com/lerna-lite/lerna-lite/main/packages/cli/schemas/lerna-schema.json", - "version": "independent", + "version": "1.0.0", "npmClient": "yarn", "packages": ["packages/*"], "loglevel": "verbose", @@ -11,33 +11,79 @@ "changelogPreset": { "name": "conventionalcommits", "types": [ - {"type": "feat", "section": "Features"}, - {"type": "feature", "section": "Features"}, - {"type": "fix", "section": "Bug Fixes"}, - {"type": "perf", "section": "Performance Improvements"}, - {"type": "revert", "section": "Reverts"}, - {"type": "refactor", "section": "Code Refactoring"}, - {"type": "chore", "section": "Miscellaneous Chores"}, - {"type": "docs", "section": "Documentation", "hidden": true}, - {"type": "doc", "section": "Documentation", "hidden": true}, - {"type": "deps", "section": "Dependencies update", "hidden": false}, - {"type": "style", "section": "Styles", "hidden": true}, - {"type": "test", "section": "Tests", "hidden": true}, - {"type": "build", "section": "Build System", "hidden": true}, - {"type": "ci", "section": "Continuous Integration", "hidden": true} + { + "type": "feat", + "section": "Features" + }, + { + "type": "feature", + "section": "Features" + }, + { + "type": "fix", + "section": "Bug Fixes" + }, + { + "type": "perf", + "section": "Performance Improvements" + }, + { + "type": "revert", + "section": "Reverts" + }, + { + "type": "refactor", + "section": "Code Refactoring" + }, + { + "type": "chore", + "section": "Miscellaneous Chores" + }, + { + "type": "docs", + "section": "Documentation", + "hidden": true + }, + { + "type": "doc", + "section": "Documentation", + "hidden": true + }, + { + "type": "deps", + "section": "Dependencies update", + "hidden": true + }, + { + "type": "style", + "section": "Styles", + "hidden": true + }, + { + "type": "test", + "section": "Tests", + "hidden": true + }, + { + "type": "build", + "section": "Build System", + "hidden": true + }, + { + "type": "ci", + "section": "Continuous Integration", + "hidden": true + } ] }, "changelogIncludeCommitsClientLogin": " by @%l", - "ignoreChanges": ["*.md"], - "skipBumpOnlyReleases": true, "message": "release:", - "private": false, + "private": true, "forceGitTag": true, "signGitTag": true, "signGitCommit": true, "push": true, - "createRelease": "github", - "conventionalGraduate": true + "createRelease": "github" }, "run": { "stream": true From a01c9a1ff66d2ed476aaab8972aaa33f028a6829 Mon Sep 17 00:00:00 2001 From: Mohammad Honarvar Date: Tue, 22 Oct 2024 14:21:28 +0330 Subject: [PATCH 27/60] refactor(packages): rename `telegram` to `notifier-api` --- packages/notifier-api/.dockerignore | 8 ++ packages/notifier-api/.gitignore | 2 + packages/notifier-api/CHANGELOG.md | 88 +++++++++++++++++++ .../{telegram => notifier-api}/Dockerfile | 6 ++ packages/{telegram => notifier-api}/LICENSE | 0 packages/{telegram => notifier-api}/README.md | 0 packages/{telegram => notifier-api}/demo.http | 0 .../{telegram => notifier-api}/package.json | 15 ++-- .../src/bot/new-group-command.ts | 0 .../src/bot/send-message.ts | 0 .../src/bot/start-command.ts | 0 .../src/bot/unsubscribe-callback.ts | 0 .../src/lib/admin.ts | 0 .../{telegram => notifier-api}/src/lib/bot.ts | 0 .../src/lib/config.ts | 4 +- .../src/lib/crypto.ts | 0 .../src/lib/i18n.ts | 0 .../src/lib/initialize-nitrobase.ts | 0 .../src/lib/nitrobase.ts | 0 .../src/lib/parse-request-body.ts | 2 +- .../src/lib/server.ts | 0 .../src/lib/util.ts | 0 .../{telegram => notifier-api}/src/main.ts | 0 .../src/route/home.ts | 0 .../src/route/notify.ts | 0 .../{telegram => notifier-api}/src/type.ts | 0 .../{telegram => notifier-api}/tsconfig.json | 5 +- 27 files changed, 118 insertions(+), 12 deletions(-) create mode 100644 packages/notifier-api/.dockerignore create mode 100644 packages/notifier-api/.gitignore create mode 100644 packages/notifier-api/CHANGELOG.md rename packages/{telegram => notifier-api}/Dockerfile (69%) rename packages/{telegram => notifier-api}/LICENSE (100%) rename packages/{telegram => notifier-api}/README.md (100%) rename packages/{telegram => notifier-api}/demo.http (100%) rename packages/{telegram => notifier-api}/package.json (84%) rename packages/{telegram => notifier-api}/src/bot/new-group-command.ts (100%) rename packages/{telegram => notifier-api}/src/bot/send-message.ts (100%) rename packages/{telegram => notifier-api}/src/bot/start-command.ts (100%) rename packages/{telegram => notifier-api}/src/bot/unsubscribe-callback.ts (100%) rename packages/{telegram => notifier-api}/src/lib/admin.ts (100%) rename packages/{telegram => notifier-api}/src/lib/bot.ts (100%) rename packages/{telegram => notifier-api}/src/lib/config.ts (95%) rename packages/{telegram => notifier-api}/src/lib/crypto.ts (100%) rename packages/{telegram => notifier-api}/src/lib/i18n.ts (100%) rename packages/{telegram => notifier-api}/src/lib/initialize-nitrobase.ts (100%) rename packages/{telegram => notifier-api}/src/lib/nitrobase.ts (100%) rename packages/{telegram => notifier-api}/src/lib/parse-request-body.ts (92%) rename packages/{telegram => notifier-api}/src/lib/server.ts (100%) rename packages/{telegram => notifier-api}/src/lib/util.ts (100%) rename packages/{telegram => notifier-api}/src/main.ts (100%) rename packages/{telegram => notifier-api}/src/route/home.ts (100%) rename packages/{telegram => notifier-api}/src/route/notify.ts (100%) rename packages/{telegram => notifier-api}/src/type.ts (100%) rename packages/{telegram => notifier-api}/tsconfig.json (74%) diff --git a/packages/notifier-api/.dockerignore b/packages/notifier-api/.dockerignore new file mode 100644 index 00000000..7bb3d38a --- /dev/null +++ b/packages/notifier-api/.dockerignore @@ -0,0 +1,8 @@ +.git* +.github +.vscode +deploy +dist +Dockerfile +demo.http +README.md diff --git a/packages/notifier-api/.gitignore b/packages/notifier-api/.gitignore new file mode 100644 index 00000000..8f146605 --- /dev/null +++ b/packages/notifier-api/.gitignore @@ -0,0 +1,2 @@ +db +upload diff --git a/packages/notifier-api/CHANGELOG.md b/packages/notifier-api/CHANGELOG.md new file mode 100644 index 00000000..63c24b78 --- /dev/null +++ b/packages/notifier-api/CHANGELOG.md @@ -0,0 +1,88 @@ +# Change Log + +All notable changes to this project will be documented in this file. +See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. + +## [1.0.1](https://github.com/Alwatr/notifier/compare/v1.0.0...v1.0.1) (2023-06-21) + +**Note:** Version bump only for package @alwatr/telegram-notify + +# [1.0.0](https://github.com/Alwatr/notifier/compare/v0.32.0...v1.0.0) (2023-06-14) + +### Features + +- review and cleanup all workflows ([fff7e92](https://github.com/Alwatr/notifier/commit/fff7e92c5d85a79adcc975802b949a9dc61d2ba3)) + +# [0.32.0](https://github.com/Alwatr/notifier/compare/v0.31.0...v0.32.0) (2023-05-27) + +**Note:** Version bump only for package @alwatr/telegram-notify + +# [0.31.0](https://github.com/Alwatr/notifier/compare/v0.30.0...v0.31.0) (2023-05-08) + +### Bug Fixes + +- new logger api ([9d83a7d](https://github.com/Alwatr/notifier/commit/9d83a7dc5c103bc3bb4282dacfd85fa998915300)) +- **telegram-notifier:** escaping send message ([a9814bf](https://github.com/Alwatr/notifier/commit/a9814bfca41c1260d5de7ec75e2356b3cdcbbc9d)) + +# [0.30.0](https://github.com/Alwatr/notifier/compare/v0.29.0...v0.30.0) (2023-03-06) + +### Bug Fixes + +- **telegram-notifier:** escaping special characters on sendMessage ([5507d6d](https://github.com/Alwatr/notifier/commit/5507d6dd460201979b7ee3bb1ae255e572b7cf0d)) + +# [0.29.0](https://github.com/Alwatr/notifier/compare/v0.28.0...v0.29.0) (2023-02-10) + +### Bug Fixes + +- **typescript:** rollback to 4.9.5 ([cc30f85](https://github.com/Alwatr/notifier/commit/cc30f8502bf95868ff41ba986120b2842acba36b)) + +# [0.28.0](https://github.com/Alwatr/notifier/compare/v0.27.0...v0.28.0) (2023-01-20) + +### Bug Fixes + +- **services:** app name in home page ([6feab58](https://github.com/Alwatr/notifier/commit/6feab58b5655c7a09150ec83adf9f3bd8fe976b4)) +- **services:** name and desc ([453c1b6](https://github.com/Alwatr/notifier/commit/453c1b6ff334a23bea690b7ff9dd874471b25bb9)) +- **services:** service name in first log ([879f87f](https://github.com/Alwatr/notifier/commit/879f87fd4d4b47454d608a5b71d70e47601c7cd7)) +- version in package.json ([403baa5](https://github.com/Alwatr/notifier/commit/403baa53159db2a0fff5b3651769b85e66b13191)) + +### Features + +- **type:** define constructor type ([39c5ab7](https://github.com/Alwatr/notifier/commit/39c5ab74f0a1471d5e20beff89f6885265907633)) + +# [0.27.0](https://github.com/Alwatr/notifier/compare/v0.26.0...v0.27.0) (2022-12-29) + +**Note:** Version bump only for package @alwatr/telegram-notify + +# [0.26.0](https://github.com/Alwatr/notifier/compare/v0.25.0...v0.26.0) (2022-12-22) + +### Bug Fixes + +- add esbuild to git ignore ([46b3714](https://github.com/Alwatr/notifier/commit/46b3714a4b578b6cfae9e2d17f8c39623470c1f5)) +- all import without .js ([fa739ab](https://github.com/Alwatr/notifier/commit/fa739ab23f67bae1d10bfcc146920b71377a26fc)) +- clean command ([14bafbb](https://github.com/Alwatr/notifier/commit/14bafbb01b3c92ccf516346a4e5117f1893c32e9)) +- crawler loop ([72951f9](https://github.com/Alwatr/notifier/commit/72951f904c8e8eb04ded2a485a65add99150f984)) +- inline home route ([94279c2](https://github.com/Alwatr/notifier/commit/94279c21891fc710f48642b1c8debbf02b2436d3)) +- inline home route ([ce978f6](https://github.com/Alwatr/notifier/commit/ce978f6e1e2890e853d0db351c08efca665e5fad)) +- package.json script ([e633a8c](https://github.com/Alwatr/notifier/commit/e633a8c4355bec0d2fc044f073f7f639c0fd1976)) +- remove lint dependencies from services ([f047a5b](https://github.com/Alwatr/notifier/commit/f047a5bb0d1e8277f48b55969e18dc3582d9a234)) +- services serve script ([3c62e06](https://github.com/Alwatr/notifier/commit/3c62e06ec594ec7da171fc39ec77787e3bd29a0c)) +- **services/telegram-notifier:** remove await out of fucntion ([283b58b](https://github.com/Alwatr/notifier/commit/283b58b0ebf8a9c01805e1aa6ee8222933b9dbc7)) +- **services/telegram-notifier:** remove storga-client ([c27f992](https://github.com/Alwatr/notifier/commit/c27f9927b97f4d6f2e9c78d5a0a3f0268275bc38)) +- **services/telegram-notifier:** set stroage name in config ([010fa71](https://github.com/Alwatr/notifier/commit/010fa71cf15698bffcc5378b252bd0aa564d8d6e)) +- **telegram-notifier:** build ([ecce1df](https://github.com/Alwatr/notifier/commit/ecce1df81642b329dfb863d0503c06fc40688550)) +- **telegram-notifier:** folder ([8bb0b01](https://github.com/Alwatr/notifier/commit/8bb0b016502f6e2c5b1dd588e8300d36eb24eba7)) +- **telegram-notifier:** lanch fail ([413b5fc](https://github.com/Alwatr/notifier/commit/413b5fc3753304fe3c7e3e4ff574040fe3395ae8)) +- **telegram-notifier:** prevent duplicate register ([4f41f4c](https://github.com/Alwatr/notifier/commit/4f41f4c6cca881f0fc90cc253d8d6eaa15a50c43)) +- tsconfig refrences ([cea0562](https://github.com/Alwatr/notifier/commit/cea05621ecfa499476c5b10a412e60f27ba6a06d)) +- update reply nano-server ([5a2d0e5](https://github.com/Alwatr/notifier/commit/5a2d0e5698b16cffcc5393ee4a44ffda66702425)) + +### Features + +- esbuild (: ([43c7269](https://github.com/Alwatr/notifier/commit/43c7269333cf71b142e26da1456446d42fb3f8e0)) +- **flight-crawler:** run infinite ([a0185bc](https://github.com/Alwatr/notifier/commit/a0185bc39eab40862e0621ae703f604b30998991)) +- improve error debugging ([1fba504](https://github.com/Alwatr/notifier/commit/1fba50400a1e8ececc10bbe8ea11cc8dcea2289c)) +- launchBot ([b3990f9](https://github.com/Alwatr/notifier/commit/b3990f92bba1b65d0e728615f701a4799619d821)) +- move some depndencies to devDependencies ([4e9576e](https://github.com/Alwatr/notifier/commit/4e9576e6fd55f361e08a54230931ad45832131d9)) +- new build process ([aa23ed2](https://github.com/Alwatr/notifier/commit/aa23ed256824b9b4409e51a3213d6e67f2aeb8a3)) +- **services/telegram-notifier:** dynamic storage path ([9f59240](https://github.com/Alwatr/notifier/commit/9f5924008d7b567af1c990450da2450af887404a)) +- **telegram-notifier:** esbuild config ([b1ca298](https://github.com/Alwatr/notifier/commit/b1ca298df482daddfab4d89e807c4c5654394245)) diff --git a/packages/telegram/Dockerfile b/packages/notifier-api/Dockerfile similarity index 69% rename from packages/telegram/Dockerfile rename to packages/notifier-api/Dockerfile index 3d5462ed..6c64fd8f 100644 --- a/packages/telegram/Dockerfile +++ b/packages/notifier-api/Dockerfile @@ -4,6 +4,9 @@ RUN set -ex; \ apk add --no-cache git; \ corepack enable; +COPY package.json yarn.lock ./ +COPY packages/telegram/package.json packages/telegram/ + RUN yarn install; COPY . . @@ -19,6 +22,9 @@ RUN set -eux; \ FROM ghcr.io/alwatr/node:22.9.0 LABEL org.opencontainers.image.base.name="ghcr.io/alwatr/node:22.9.0" +RUN apk add --no-cache curl +HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --start-interval=1s --retries=3 CMD curl -fso /dev/null http://localhost/health || exit 1 + COPY --from=builder /app/packages/api/dist/ . # RUN set -ex; \ # corepack enable; \ diff --git a/packages/telegram/LICENSE b/packages/notifier-api/LICENSE similarity index 100% rename from packages/telegram/LICENSE rename to packages/notifier-api/LICENSE diff --git a/packages/telegram/README.md b/packages/notifier-api/README.md similarity index 100% rename from packages/telegram/README.md rename to packages/notifier-api/README.md diff --git a/packages/telegram/demo.http b/packages/notifier-api/demo.http similarity index 100% rename from packages/telegram/demo.http rename to packages/notifier-api/demo.http diff --git a/packages/telegram/package.json b/packages/notifier-api/package.json similarity index 84% rename from packages/telegram/package.json rename to packages/notifier-api/package.json index 6b78e2c6..3c125ef6 100644 --- a/packages/telegram/package.json +++ b/packages/notifier-api/package.json @@ -1,7 +1,9 @@ { - "name": "@alwatr/telegram-notifier-api", + "name": "@alwatr/notifier-api", "version": "1.0.0", "description": "Alwatr Telegram Notify Microservice, Distributed simple and fast telegram notify nanoservice.", + "author": "S. Ali Mihandoost ", + "private": true, "type": "module", "keywords": [ "telegram", @@ -26,17 +28,18 @@ "**/*.{js,mjs,cjs,map,d.ts,html,md}", "!demo/**/*" ], - "publishConfig": { - "access": "public" + "engines": { + "node": ">=18.16.0", + "yarn": ">=4.0.0" }, "repository": { "type": "git", "url": "https://github.com/Alwatr/notifier", - "directory": "packages/telegram" + "directory": "packages/notifier-api" }, - "homepage": "https://github.com/Alwatr/telegram#readme", + "homepage": "https://github.com/Alwatr/notifier#readme", "bugs": { - "url": "https://github.com/Alwatr/telegram/issues" + "url": "https://github.com/Alwatr/notifier/issues" }, "prettier": "@alwatr/prettier-config", "nano-build": { diff --git a/packages/telegram/src/bot/new-group-command.ts b/packages/notifier-api/src/bot/new-group-command.ts similarity index 100% rename from packages/telegram/src/bot/new-group-command.ts rename to packages/notifier-api/src/bot/new-group-command.ts diff --git a/packages/telegram/src/bot/send-message.ts b/packages/notifier-api/src/bot/send-message.ts similarity index 100% rename from packages/telegram/src/bot/send-message.ts rename to packages/notifier-api/src/bot/send-message.ts diff --git a/packages/telegram/src/bot/start-command.ts b/packages/notifier-api/src/bot/start-command.ts similarity index 100% rename from packages/telegram/src/bot/start-command.ts rename to packages/notifier-api/src/bot/start-command.ts diff --git a/packages/telegram/src/bot/unsubscribe-callback.ts b/packages/notifier-api/src/bot/unsubscribe-callback.ts similarity index 100% rename from packages/telegram/src/bot/unsubscribe-callback.ts rename to packages/notifier-api/src/bot/unsubscribe-callback.ts diff --git a/packages/telegram/src/lib/admin.ts b/packages/notifier-api/src/lib/admin.ts similarity index 100% rename from packages/telegram/src/lib/admin.ts rename to packages/notifier-api/src/lib/admin.ts diff --git a/packages/telegram/src/lib/bot.ts b/packages/notifier-api/src/lib/bot.ts similarity index 100% rename from packages/telegram/src/lib/bot.ts rename to packages/notifier-api/src/lib/bot.ts diff --git a/packages/telegram/src/lib/config.ts b/packages/notifier-api/src/lib/config.ts similarity index 95% rename from packages/telegram/src/lib/config.ts rename to packages/notifier-api/src/lib/config.ts index 38cdc092..ecdaa666 100644 --- a/packages/telegram/src/lib/config.ts +++ b/packages/notifier-api/src/lib/config.ts @@ -14,8 +14,8 @@ const env = /* #__PURE__ */ (() => { tokenSecret: 'DEV_SECRET', host: '0.0.0.0', port: 8000, - botToken: 'BOT_TOKEN', - botUsername: 'BOT_USERNAME', + botToken: '1568040550:AAG_j2b4LGtGtX_cXslejibBFIaY_ywRMFM', + botUsername: 'MHF_DEV_BOT', botFirstName: 'BOT_FIRST_NAME', dropPendingUpdates: '1', botAdminChatId: 'ADMIN_CHAT_ID', diff --git a/packages/telegram/src/lib/crypto.ts b/packages/notifier-api/src/lib/crypto.ts similarity index 100% rename from packages/telegram/src/lib/crypto.ts rename to packages/notifier-api/src/lib/crypto.ts diff --git a/packages/telegram/src/lib/i18n.ts b/packages/notifier-api/src/lib/i18n.ts similarity index 100% rename from packages/telegram/src/lib/i18n.ts rename to packages/notifier-api/src/lib/i18n.ts diff --git a/packages/telegram/src/lib/initialize-nitrobase.ts b/packages/notifier-api/src/lib/initialize-nitrobase.ts similarity index 100% rename from packages/telegram/src/lib/initialize-nitrobase.ts rename to packages/notifier-api/src/lib/initialize-nitrobase.ts diff --git a/packages/telegram/src/lib/nitrobase.ts b/packages/notifier-api/src/lib/nitrobase.ts similarity index 100% rename from packages/telegram/src/lib/nitrobase.ts rename to packages/notifier-api/src/lib/nitrobase.ts diff --git a/packages/telegram/src/lib/parse-request-body.ts b/packages/notifier-api/src/lib/parse-request-body.ts similarity index 92% rename from packages/telegram/src/lib/parse-request-body.ts rename to packages/notifier-api/src/lib/parse-request-body.ts index 0001d6de..26747e54 100644 --- a/packages/telegram/src/lib/parse-request-body.ts +++ b/packages/notifier-api/src/lib/parse-request-body.ts @@ -1,4 +1,4 @@ -import {logger} from '../lib/config.js'; +import {logger} from './config.js'; import type {NanotronClientRequest} from 'alwatr/nanotron'; diff --git a/packages/telegram/src/lib/server.ts b/packages/notifier-api/src/lib/server.ts similarity index 100% rename from packages/telegram/src/lib/server.ts rename to packages/notifier-api/src/lib/server.ts diff --git a/packages/telegram/src/lib/util.ts b/packages/notifier-api/src/lib/util.ts similarity index 100% rename from packages/telegram/src/lib/util.ts rename to packages/notifier-api/src/lib/util.ts diff --git a/packages/telegram/src/main.ts b/packages/notifier-api/src/main.ts similarity index 100% rename from packages/telegram/src/main.ts rename to packages/notifier-api/src/main.ts diff --git a/packages/telegram/src/route/home.ts b/packages/notifier-api/src/route/home.ts similarity index 100% rename from packages/telegram/src/route/home.ts rename to packages/notifier-api/src/route/home.ts diff --git a/packages/telegram/src/route/notify.ts b/packages/notifier-api/src/route/notify.ts similarity index 100% rename from packages/telegram/src/route/notify.ts rename to packages/notifier-api/src/route/notify.ts diff --git a/packages/telegram/src/type.ts b/packages/notifier-api/src/type.ts similarity index 100% rename from packages/telegram/src/type.ts rename to packages/notifier-api/src/type.ts diff --git a/packages/telegram/tsconfig.json b/packages/notifier-api/tsconfig.json similarity index 74% rename from packages/telegram/tsconfig.json rename to packages/notifier-api/tsconfig.json index 167d573a..0a72ba47 100644 --- a/packages/telegram/tsconfig.json +++ b/packages/notifier-api/tsconfig.json @@ -2,9 +2,8 @@ "extends": "@alwatr/tsconfig-base/tsconfig.json", "compilerOptions": { "rootDir": "src", - "outDir": "dist", - "emitDeclarationOnly": true, - "composite": true, + // "outDir": "dist", + "noEmit": true, "types": ["node", "@alwatr/nano-build", "@alwatr/type-helper"] }, "include": ["src/**/*.ts"], From d71bb7e5dddeb3e99b4eb511b150a3f213baae4f Mon Sep 17 00:00:00 2001 From: Mohammad Honarvar Date: Tue, 22 Oct 2024 14:22:36 +0330 Subject: [PATCH 28/60] deps: update --- yarn.lock | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/yarn.lock b/yarn.lock index fada51a4..fd190e42 100644 --- a/yarn.lock +++ b/yarn.lock @@ -323,6 +323,21 @@ __metadata: languageName: node linkType: hard +"@alwatr/notifier-api@workspace:packages/notifier-api": + version: 0.0.0-use.local + resolution: "@alwatr/notifier-api@workspace:packages/notifier-api" + dependencies: + "@alwatr/nano-build": "npm:^2.0.2" + "@alwatr/prettier-config": "npm:^1.0.6" + "@alwatr/tsconfig-base": "npm:^1.3.2" + "@alwatr/type-helper": "npm:^2.0.2" + "@types/node": "npm:^22.7.7" + alwatr: "npm:^2.0.3" + grammy: "npm:^1.30.0" + typescript: "npm:^5.6.3" + languageName: unknown + linkType: soft + "@alwatr/observable@npm:^3.2.0": version: 3.2.0 resolution: "@alwatr/observable@npm:3.2.0" @@ -413,21 +428,6 @@ __metadata: languageName: node linkType: hard -"@alwatr/telegram-notifier-api@workspace:packages/telegram": - version: 0.0.0-use.local - resolution: "@alwatr/telegram-notifier-api@workspace:packages/telegram" - dependencies: - "@alwatr/nano-build": "npm:^2.0.2" - "@alwatr/prettier-config": "npm:^1.0.6" - "@alwatr/tsconfig-base": "npm:^1.3.2" - "@alwatr/type-helper": "npm:^2.0.2" - "@types/node": "npm:^22.7.7" - alwatr: "npm:^2.0.3" - grammy: "npm:^1.30.0" - typescript: "npm:^5.6.3" - languageName: unknown - linkType: soft - "@alwatr/tsconfig-base@npm:^1.3.2": version: 1.3.2 resolution: "@alwatr/tsconfig-base@npm:1.3.2" From 5f0fbb249474d0a2e9be59a31b3237d3f8012b1c Mon Sep 17 00:00:00 2001 From: Mohammad Honarvar Date: Tue, 22 Oct 2024 14:52:25 +0330 Subject: [PATCH 29/60] fix(.github): some issues --- .github/workflows/codeql.yaml | 4 ++-- .github/workflows/dependency-review.yaml | 2 +- .github/workflows/publish-container.yml | 6 +++--- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/codeql.yaml b/.github/workflows/codeql.yaml index e00bfcbc..bf472e5f 100644 --- a/.github/workflows/codeql.yaml +++ b/.github/workflows/codeql.yaml @@ -5,8 +5,8 @@ name: CodeQL on: workflow_dispatch: - # schedule: - # - cron: '0 7 * */2 *' + schedule: + - notifier-api: '0 7 * */2 *' # │ │ │ │ │ # │ │ │ │ └─── day of the week (0 - 6 or SUN-SAT) # │ │ │ └────── month (1 - 12 or JAN-DEC) diff --git a/.github/workflows/dependency-review.yaml b/.github/workflows/dependency-review.yaml index d92db413..10e91d29 100644 --- a/.github/workflows/dependency-review.yaml +++ b/.github/workflows/dependency-review.yaml @@ -6,7 +6,7 @@ on: workflow_dispatch: # disable on private repository - # pull_request: + pull_request: jobs: dependency-review: diff --git a/.github/workflows/publish-container.yml b/.github/workflows/publish-container.yml index dc3c3655..d2123bae 100644 --- a/.github/workflows/publish-container.yml +++ b/.github/workflows/publish-container.yml @@ -9,9 +9,9 @@ on: description: Website URL type: string - # push: - # branches: - # - next + push: + branches: + - next # pull_request: From ad5dff9ab3dbd270f406c46c5f3f31a5a9b45dda Mon Sep 17 00:00:00 2001 From: Mohammad Honarvar Date: Tue, 22 Oct 2024 14:53:06 +0330 Subject: [PATCH 30/60] fix(deploy): `env` values --- deploy/compose.yml | 36 ------------------------------------ deploy/env/notifier-api.env | 2 -- 2 files changed, 38 deletions(-) diff --git a/deploy/compose.yml b/deploy/compose.yml index e0193982..de4570d7 100644 --- a/deploy/compose.yml +++ b/deploy/compose.yml @@ -42,39 +42,3 @@ services: traefik.frontend.rule: Host:${appDomains}; PathPrefix:/api/v1/; traefik.frontend.entryPoints: http, https traefik.frontend.redirect.entryPoint: https - - db: - image: ghcr.io/alwatr/nitrobase-nginx:7.3 - - cpu_count: 1 - cpu_shares: 1024 - mem_limit: 256m - - restart: unless-stopped - - networks: - alwatr-public-network: - - environment: - - NGINX_DOCUMENT_ROOT=/data/db - - NGINX_ACCESS_LOG=${dbAccessLog:-off} - - volumes: - - type: bind - source: ./_data/db - target: /data/db - bind: - create_host_path: true - - logging: - driver: json-file - options: - max-size: '10m' - max-file: '2' - - labels: - traefik.enable: true - traefik.port: 80 - traefik.frontend.rule: Host:${appDomains}; PathPrefix:/api/s7/; - traefik.frontend.entryPoints: http, https - traefik.frontend.redirect.entryPoint: https diff --git a/deploy/env/notifier-api.env b/deploy/env/notifier-api.env index 4fe06c86..176cf535 100644 --- a/deploy/env/notifier-api.env +++ b/deploy/env/notifier-api.env @@ -3,9 +3,7 @@ deployHost='mci2' deployPath="/srv/${appId}" appDomains='...' -# appForceDomain='app.weaver.alwatr.ir' notifierApiImage='ghcr.io/alimd/notifier-api:...' notifierApiDebug=1 -dbAccessLog='/var/log/nginx/access.log json' From 2db1baf888b390496c29049e6c5c137d3042302f Mon Sep 17 00:00:00 2001 From: Mohammad Honarvar Date: Tue, 22 Oct 2024 15:09:47 +0330 Subject: [PATCH 31/60] refactor(notifier-api): rename all `group`s to `category` --- .../src/bot/new-category-command.ts | 36 +++++++++++++++++++ .../notifier-api/src/bot/new-group-command.ts | 36 ------------------- packages/notifier-api/src/bot/send-message.ts | 20 +++++------ .../notifier-api/src/bot/start-command.ts | 16 ++++----- .../src/bot/unsubscribe-callback.ts | 10 +++--- packages/notifier-api/src/lib/config.ts | 4 +-- packages/notifier-api/src/lib/i18n.ts | 2 +- .../src/lib/initialize-nitrobase.ts | 4 +-- packages/notifier-api/src/main.ts | 2 +- packages/notifier-api/src/type.ts | 2 +- 10 files changed, 66 insertions(+), 66 deletions(-) create mode 100644 packages/notifier-api/src/bot/new-category-command.ts delete mode 100644 packages/notifier-api/src/bot/new-group-command.ts diff --git a/packages/notifier-api/src/bot/new-category-command.ts b/packages/notifier-api/src/bot/new-category-command.ts new file mode 100644 index 00000000..2bc1b5e4 --- /dev/null +++ b/packages/notifier-api/src/bot/new-category-command.ts @@ -0,0 +1,36 @@ +import {bot} from '../lib/bot.js'; +import {config, logger} from '../lib/config.js'; +import {cryptoFactory} from '../lib/crypto.js'; +import {message} from '../lib/i18n.js'; +import {alwatrNitrobase} from '../lib/nitrobase.js'; + +/** + * `new_category` command. + * + * This command creates a new category. + */ +bot.command('new_category', async (ctx) => { + const chatId = ctx.chat.id; + const categoryNameQueryParam = ctx.match; + logger.logMethodArgs?.('new_category', {chatId, groupNameQueryParam: categoryNameQueryParam}); + + if (chatId !== config.bot.adminChatId) { + ctx.reply(message('commandAccessDenied')); + return; + } + + const categoryName = categoryNameQueryParam.split('?name=')[1]; + if (!categoryName) { + ctx.reply(message('enterCategoryName')); + return; + } + + const categoriesCollection = await alwatrNitrobase.openCollection(config.nitrobase.categoriesCollection); + const newCategoryId = cryptoFactory.generateUserId(); + categoriesCollection.addItem(newCategoryId, { + categoryName, + memberList: [] + }); + + ctx.reply(`https://t.me/${config.bot.info.username}?start=${newCategoryId}`); +}); diff --git a/packages/notifier-api/src/bot/new-group-command.ts b/packages/notifier-api/src/bot/new-group-command.ts deleted file mode 100644 index 6f92ca62..00000000 --- a/packages/notifier-api/src/bot/new-group-command.ts +++ /dev/null @@ -1,36 +0,0 @@ -import {bot} from '../lib/bot.js'; -import {config, logger} from '../lib/config.js'; -import {cryptoFactory} from '../lib/crypto.js'; -import {message} from '../lib/i18n.js'; -import {alwatrNitrobase} from '../lib/nitrobase.js'; - -/** - * `new_group` command. - * - * This command creates a new group. - */ -bot.command('new_group', async (ctx) => { - const chatId = ctx.chat.id; - const groupNameQueryParam = ctx.match; - logger.logMethodArgs?.('new_group', {chatId, groupNameQueryParam}); - - if (chatId !== config.bot.adminChatId) { - ctx.reply(message('commandAccessDenied')); - return; - } - - const groupName = groupNameQueryParam.split('?name=')[1]; - if (!groupName) { - ctx.reply(message('enterGroupName')); - return; - } - - const groupsCollection = await alwatrNitrobase.openCollection(config.nitrobase.groupsCollection); - const newGroupId = cryptoFactory.generateUserId(); - groupsCollection.addItem(newGroupId, { - categoryName: groupName, - memberList: [] - }); - - ctx.reply(`https://t.me/${config.bot.info.username}?start=${newGroupId}`); -}); diff --git a/packages/notifier-api/src/bot/send-message.ts b/packages/notifier-api/src/bot/send-message.ts index 0caa839d..144ca82a 100644 --- a/packages/notifier-api/src/bot/send-message.ts +++ b/packages/notifier-api/src/bot/send-message.ts @@ -10,24 +10,24 @@ import type {GrammyError} from 'grammy'; /** * Send a message to member of groupId. * - * @param groupId - Group ID. + * @param categoryId - Category(group) ID. * @param message_ - Message to send. */ export async function -sendMessageToGroup(groupId: string, message_: string): Promise { - logger.logMethodArgs?.('sendMessageToGroup', {groupId}); +sendMessageToGroup(categoryId: string, message_: string): Promise { + logger.logMethodArgs?.('sendMessageToGroup', {categoryId}); message_ = escapeMessage(message_); - const groupsCollection = await alwatrNitrobase.openCollection(config.nitrobase.groupsCollection); + const categoriesCollection = await alwatrNitrobase.openCollection(config.nitrobase.categoriesCollection); if ( - cryptoFactory.verifyUserId(groupId) === false || - groupsCollection.hasItem(groupId) === false + cryptoFactory.verifyUserId(categoryId) === false || + categoriesCollection.hasItem(categoryId) === false ) { return; } - const groupData = groupsCollection.getItemData(groupId); + const groupData = categoriesCollection.getItemData(categoryId); for (const member of groupData.memberList) { try { @@ -36,7 +36,7 @@ sendMessageToGroup(groupId: string, message_: string): Promise { reply_markup: { inline_keyboard: [ [ - getUnsubscribeInlineKeyboardData(groupId), + getUnsubscribeInlineKeyboardData(categoryId), ], ], }, @@ -49,8 +49,8 @@ sendMessageToGroup(groupId: string, message_: string): Promise { // remove if blocked if (err_.error_code === 403) { groupData.memberList = groupData.memberList.filter((member_) => member_.id !== member.id); - groupsCollection.mergeItemData(groupId, groupData); - groupsCollection.save(); + categoriesCollection.mergeItemData(categoryId, groupData); + categoriesCollection.save(); } } } diff --git a/packages/notifier-api/src/bot/start-command.ts b/packages/notifier-api/src/bot/start-command.ts index 3011fa65..eb3ed19d 100644 --- a/packages/notifier-api/src/bot/start-command.ts +++ b/packages/notifier-api/src/bot/start-command.ts @@ -12,12 +12,12 @@ import {alwatrNitrobase} from '../lib/nitrobase.js'; */ bot.command('start', async (ctx) => { const chatId = ctx.chat.id + ''; - const groupId = ctx.match; - logger.logMethodArgs?.('start-command', {chatId, groupId}); + const categoryId = ctx.match; + logger.logMethodArgs?.('start-command', {chatId, categoryId}); - const unsubscribeInlineKeyboardData = getUnsubscribeInlineKeyboardData(groupId); + const unsubscribeInlineKeyboardData = getUnsubscribeInlineKeyboardData(categoryId); - if (groupId === undefined) { + if (categoryId === undefined) { await ctx.reply(message('itIsPrivateBot'), { reply_parameters: {message_id: ctx.message!.message_id}, }); @@ -25,7 +25,7 @@ bot.command('start', async (ctx) => { return; } - const groupsCollection = await alwatrNitrobase.openCollection(config.nitrobase.groupsCollection); + const categoriesCollection = await alwatrNitrobase.openCollection(config.nitrobase.categoriesCollection); const newMember = { id: chatId, @@ -35,12 +35,12 @@ bot.command('start', async (ctx) => { username: ctx.chat.username } - const groupData = groupsCollection.getItemData(groupId); + const groupData = categoriesCollection.getItemData(categoryId); const targetIndex = groupData.memberList.findIndex(member => member.id === chatId); if (targetIndex === -1) { groupData.memberList.push(newMember); - groupsCollection.mergeItemData(groupId, groupData); - groupsCollection.save(); + categoriesCollection.mergeItemData(categoryId, groupData); + categoriesCollection.save(); await ctx.reply(message('addedToList'), { reply_parameters: {message_id: ctx.message!.message_id}, diff --git a/packages/notifier-api/src/bot/unsubscribe-callback.ts b/packages/notifier-api/src/bot/unsubscribe-callback.ts index 54c9ffda..cb86b50a 100644 --- a/packages/notifier-api/src/bot/unsubscribe-callback.ts +++ b/packages/notifier-api/src/bot/unsubscribe-callback.ts @@ -7,14 +7,14 @@ bot.callbackQuery(/^unsubscribe:.*$/, async (ctx) => { const groupId = ctx.callbackQuery.data.split(':')[1]; const userId = ctx.from.id + ''; - const groupsCollection = await alwatrNitrobase.openCollection(config.nitrobase.groupsCollection); + const categoriesCollection = await alwatrNitrobase.openCollection(config.nitrobase.categoriesCollection); - if (groupsCollection.hasItem(groupId) === false) { + if (categoriesCollection.hasItem(groupId) === false) { await ctx.reply(message('haveNotSubscribedBefore')); return; } - const groupData = groupsCollection.getItemData(groupId); + const groupData = categoriesCollection.getItemData(groupId); const targetIndex = groupData.memberList.findIndex(member => member.id === userId); if (targetIndex === -1) { await ctx.reply(message('haveNotSubscribedBefore')); @@ -22,8 +22,8 @@ bot.callbackQuery(/^unsubscribe:.*$/, async (ctx) => { } groupData.memberList.splice(targetIndex, 1); - groupsCollection.mergeItemData(groupId, groupData); - groupsCollection.save(); + categoriesCollection.mergeItemData(groupId, groupData); + categoriesCollection.save(); await ctx.reply(message('hasBeenUnsubscribed').replace('{groupId}', groupId)); }); diff --git a/packages/notifier-api/src/lib/config.ts b/packages/notifier-api/src/lib/config.ts index ecdaa666..915927db 100644 --- a/packages/notifier-api/src/lib/config.ts +++ b/packages/notifier-api/src/lib/config.ts @@ -52,8 +52,8 @@ export const config = { rootPath: env.dbPath!, } as AlwatrNitrobaseConfig, - groupsCollection: { - name: 'groups', + categoriesCollection: { + name: 'categories', region: Region.Managers, type: StoreFileType.Collection, } as StoreFileStat, diff --git a/packages/notifier-api/src/lib/i18n.ts b/packages/notifier-api/src/lib/i18n.ts index 9351eb8d..8bc25d9f 100644 --- a/packages/notifier-api/src/lib/i18n.ts +++ b/packages/notifier-api/src/lib/i18n.ts @@ -10,7 +10,7 @@ const i18nResources = { unsubscribeMeButtonLabel: 'لغو عضویت از این لیست 🔕', hasBeenUnsubscribed: 'شما از لیست {groupId} حذف شدید 🚫', haveNotSubscribedBefore: 'شما قبلا عضو این لیست نبوده اید!', - enterGroupName: 'لطفا نام گروه را مشخص کنید.', + enterCategoryName: 'لطفا نام گروه را مشخص کنید.', commandAccessDenied: 'شما نمیتوانید این دستور رو اجرا کنید.', startupMessage: `Bot started \n\nv${__package_version__}`, diff --git a/packages/notifier-api/src/lib/initialize-nitrobase.ts b/packages/notifier-api/src/lib/initialize-nitrobase.ts index 61a3ac2a..4f834637 100644 --- a/packages/notifier-api/src/lib/initialize-nitrobase.ts +++ b/packages/notifier-api/src/lib/initialize-nitrobase.ts @@ -2,7 +2,7 @@ import {config} from './config.js'; import {alwatrNitrobase} from './nitrobase.js'; export function initializeNitrobase() { - if (alwatrNitrobase.hasStore(config.nitrobase.groupsCollection) === false) { - alwatrNitrobase.newCollection(config.nitrobase.groupsCollection); + if (alwatrNitrobase.hasStore(config.nitrobase.categoriesCollection) === false) { + alwatrNitrobase.newCollection(config.nitrobase.categoriesCollection); } } diff --git a/packages/notifier-api/src/main.ts b/packages/notifier-api/src/main.ts index adee04ef..467af596 100644 --- a/packages/notifier-api/src/main.ts +++ b/packages/notifier-api/src/main.ts @@ -1,7 +1,7 @@ // common imports // import {notifyDebug, onStart} from './lib/admin.js'; // bot imports -import './bot/new-group-command.js'; +import './bot/new-category-command.js'; import './bot/start-command.js'; import './bot/unsubscribe-callback.js'; import {bot} from './lib/bot.js'; diff --git a/packages/notifier-api/src/type.ts b/packages/notifier-api/src/type.ts index 79e35781..7cc6d8de 100644 --- a/packages/notifier-api/src/type.ts +++ b/packages/notifier-api/src/type.ts @@ -1,7 +1,7 @@ import type {Chat} from 'grammy/types'; declare global { - type GroupItem = { + type CategoryItem = { categoryName: string; memberList: MemberItem[]; } From 0272483af9e5adc165f4a7c95639c8adedcbc468 Mon Sep 17 00:00:00 2001 From: Mohammad Honarvar Date: Tue, 22 Oct 2024 15:10:47 +0330 Subject: [PATCH 32/60] refactor(notifier-api): copy path in `Dockerfile` --- packages/notifier-api/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/notifier-api/Dockerfile b/packages/notifier-api/Dockerfile index 6c64fd8f..c1231509 100644 --- a/packages/notifier-api/Dockerfile +++ b/packages/notifier-api/Dockerfile @@ -5,7 +5,7 @@ RUN set -ex; \ corepack enable; COPY package.json yarn.lock ./ -COPY packages/telegram/package.json packages/telegram/ +COPY packages/notifier-api/package.json packages/notifier-api/ RUN yarn install; From 56901b0e79f7e1ec0cb937e7c3f53e7c6376553f Mon Sep 17 00:00:00 2001 From: Mohammad Honarvar Date: Tue, 22 Oct 2024 16:07:58 +0330 Subject: [PATCH 33/60] refactor(notifier-api): rename all `group`s to `category` --- packages/notifier-api/src/bot/send-message.ts | 18 +++++++++--------- .../src/bot/unsubscribe-callback.ts | 14 +++++++------- packages/notifier-api/src/lib/i18n.ts | 6 +++--- packages/notifier-api/src/route/notify.ts | 4 ++-- 4 files changed, 21 insertions(+), 21 deletions(-) diff --git a/packages/notifier-api/src/bot/send-message.ts b/packages/notifier-api/src/bot/send-message.ts index 144ca82a..d9d6c32b 100644 --- a/packages/notifier-api/src/bot/send-message.ts +++ b/packages/notifier-api/src/bot/send-message.ts @@ -1,35 +1,35 @@ import {getUnsubscribeInlineKeyboardData} from './unsubscribe-callback.js'; import {bot} from '../lib/bot.js'; import {config, logger} from '../lib/config.js'; -import {cryptoFactory} from '../lib/crypto.js'; +import {hashGenerator} from '../lib/hash.js'; import {alwatrNitrobase} from '../lib/nitrobase.js'; import {escapeMessage} from '../lib/util.js'; import type {GrammyError} from 'grammy'; /** - * Send a message to member of groupId. + * Send a message to members of `categoryId`. * * @param categoryId - Category(group) ID. * @param message_ - Message to send. */ export async function -sendMessageToGroup(categoryId: string, message_: string): Promise { - logger.logMethodArgs?.('sendMessageToGroup', {categoryId}); +sendMessageToCategory(categoryId: string, message_: string): Promise { + logger.logMethodArgs?.('sendMessageToCategory', {categoryId}); message_ = escapeMessage(message_); const categoriesCollection = await alwatrNitrobase.openCollection(config.nitrobase.categoriesCollection); if ( - cryptoFactory.verifyUserId(categoryId) === false || + hashGenerator.verifySelfValidate(categoryId) === false || categoriesCollection.hasItem(categoryId) === false ) { return; } - const groupData = categoriesCollection.getItemData(categoryId); + const categoryData = categoriesCollection.getItemData(categoryId); - for (const member of groupData.memberList) { + for (const member of categoryData.memberList) { try { await bot.api.sendMessage(member.id, message_, { parse_mode: 'MarkdownV2', @@ -48,8 +48,8 @@ sendMessageToGroup(categoryId: string, message_: string): Promise { // remove if blocked if (err_.error_code === 403) { - groupData.memberList = groupData.memberList.filter((member_) => member_.id !== member.id); - categoriesCollection.mergeItemData(categoryId, groupData); + categoryData.memberList = categoryData.memberList.filter((member_) => member_.id !== member.id); + categoriesCollection.mergeItemData(categoryId, categoryData); categoriesCollection.save(); } } diff --git a/packages/notifier-api/src/bot/unsubscribe-callback.ts b/packages/notifier-api/src/bot/unsubscribe-callback.ts index cb86b50a..1270a864 100644 --- a/packages/notifier-api/src/bot/unsubscribe-callback.ts +++ b/packages/notifier-api/src/bot/unsubscribe-callback.ts @@ -4,28 +4,28 @@ import {message} from '../lib/i18n.js'; import {alwatrNitrobase} from '../lib/nitrobase.js'; bot.callbackQuery(/^unsubscribe:.*$/, async (ctx) => { - const groupId = ctx.callbackQuery.data.split(':')[1]; + const categoryId = ctx.callbackQuery.data.split(':')[1]; const userId = ctx.from.id + ''; const categoriesCollection = await alwatrNitrobase.openCollection(config.nitrobase.categoriesCollection); - if (categoriesCollection.hasItem(groupId) === false) { + if (categoriesCollection.hasItem(categoryId) === false) { await ctx.reply(message('haveNotSubscribedBefore')); return; } - const groupData = categoriesCollection.getItemData(groupId); - const targetIndex = groupData.memberList.findIndex(member => member.id === userId); + const categoryData = categoriesCollection.getItemData(categoryId); + const targetIndex = categoryData.memberList.findIndex(member => member.id === userId); if (targetIndex === -1) { await ctx.reply(message('haveNotSubscribedBefore')); return; } - groupData.memberList.splice(targetIndex, 1); - categoriesCollection.mergeItemData(groupId, groupData); + categoryData.memberList.splice(targetIndex, 1); + categoriesCollection.mergeItemData(categoryId, categoryData); categoriesCollection.save(); - await ctx.reply(message('hasBeenUnsubscribed').replace('{groupId}', groupId)); + await ctx.reply(message('hasBeenUnsubscribed').replace('{categoryId}', categoryId)); }); export const getUnsubscribeInlineKeyboardData = (groupId: string) => ({ diff --git a/packages/notifier-api/src/lib/i18n.ts b/packages/notifier-api/src/lib/i18n.ts index 8bc25d9f..1b6d049c 100644 --- a/packages/notifier-api/src/lib/i18n.ts +++ b/packages/notifier-api/src/lib/i18n.ts @@ -8,10 +8,10 @@ const i18nResources = { addedToList: 'شما با موفقیت به لیست اضافه شدید', hasBeenAddedAlready: 'شما قبلا به این لیست اضافه شده اید.', unsubscribeMeButtonLabel: 'لغو عضویت از این لیست 🔕', - hasBeenUnsubscribed: 'شما از لیست {groupId} حذف شدید 🚫', + hasBeenUnsubscribed: 'شما از لیست {categoryId} حذف شدید 🚫', haveNotSubscribedBefore: 'شما قبلا عضو این لیست نبوده اید!', - enterCategoryName: 'لطفا نام گروه را مشخص کنید.', - commandAccessDenied: 'شما نمیتوانید این دستور رو اجرا کنید.', + enterCategoryName: 'لطفا نام دسته را مشخص کنید.', + commandAccessDenied: 'شما نمی توانید این دستور رو اجرا کنید.', startupMessage: `Bot started \n\nv${__package_version__}`, itIsPrivateBot: 'این یک بات خصوصی هست! لطفا مزاحم نشوید', diff --git a/packages/notifier-api/src/route/notify.ts b/packages/notifier-api/src/route/notify.ts index b08b62c6..c01f2a55 100644 --- a/packages/notifier-api/src/route/notify.ts +++ b/packages/notifier-api/src/route/notify.ts @@ -1,4 +1,4 @@ -import {sendMessageToGroup} from '../bot/send-message.js'; +import {sendMessageToCategory} from '../bot/send-message.js'; import {logger} from '../lib/config.js'; import {parseBodyAsJson} from '../lib/parse-request-body.js'; import {nanotronApiServer} from '../lib/server.js'; @@ -10,7 +10,7 @@ nanotronApiServer.defineRoute<{body: { groupId: string; message: string }}>({ async handler() { logger.logMethodArgs?.('defineRoute(/telegram/notify)', {body: this.sharedMeta.body}); - await sendMessageToGroup(this.sharedMeta.body.groupId, this.sharedMeta.body.message); + await sendMessageToCategory(this.sharedMeta.body.groupId, this.sharedMeta.body.message); this.serverResponse.replyJson({ ok: true, From 0cbdca76cd7e3eaa1d1b5e38dcfd4c7c31babd16 Mon Sep 17 00:00:00 2001 From: Mohammad Honarvar Date: Tue, 22 Oct 2024 16:08:46 +0330 Subject: [PATCH 34/60] feat(notifier-api): use `AlwatrHashGenerator` --- packages/notifier-api/src/lib/config.ts | 13 ++++++------- packages/notifier-api/src/lib/crypto.ts | 5 ----- packages/notifier-api/src/lib/hash.ts | 5 +++++ 3 files changed, 11 insertions(+), 12 deletions(-) delete mode 100644 packages/notifier-api/src/lib/crypto.ts create mode 100644 packages/notifier-api/src/lib/hash.ts diff --git a/packages/notifier-api/src/lib/config.ts b/packages/notifier-api/src/lib/config.ts index 915927db..0c7a942f 100644 --- a/packages/notifier-api/src/lib/config.ts +++ b/packages/notifier-api/src/lib/config.ts @@ -1,7 +1,7 @@ import {createLogger, packageTracer} from 'alwatr/nanolib'; import {Region, StoreFileType, type AlwatrNitrobaseConfig, type StoreFileStat} from 'alwatr/nitrobase'; -import type {CryptoFactoryConfig, NanotronApiServerConfig} from 'alwatr/nanotron'; +import type {HashGeneratorConfig, NanotronApiServerConfig} from 'alwatr/nanotron'; import type {UserFromGetMe} from 'grammy/types'; __dev_mode__: packageTracer.add(__package_name__, __package_version__); @@ -35,16 +35,16 @@ const env = /* #__PURE__ */ (() => { })(); export const config = { - token: { - secret: env.tokenSecret!, - duration: '1y', - } as CryptoFactoryConfig, + hash: { + algorithm: 'sha1', + encoding: 'binary', + crcLength: 5 + } as HashGeneratorConfig, nanotronApiServer: { host: env.host!, port: +env.port!, prefix: '/api/', - // allowAllOrigin: true, } as NanotronApiServerConfig, nitrobase: { @@ -62,7 +62,6 @@ export const config = { bot: { token: env.botToken!, adminChatId: +env.botAdminChatId!, - // adminThreadId: +env.botAdminThreadId!, dropPendingUpdates: env.dropPendingUpdates === '1', diff --git a/packages/notifier-api/src/lib/crypto.ts b/packages/notifier-api/src/lib/crypto.ts deleted file mode 100644 index 0fb19db6..00000000 --- a/packages/notifier-api/src/lib/crypto.ts +++ /dev/null @@ -1,5 +0,0 @@ -import {AlwatrCryptoFactory} from 'alwatr/nanotron'; - -import {config} from './config.js'; - -export const cryptoFactory = /* #__PURE__ */ new AlwatrCryptoFactory(config.token); diff --git a/packages/notifier-api/src/lib/hash.ts b/packages/notifier-api/src/lib/hash.ts new file mode 100644 index 00000000..c25da88a --- /dev/null +++ b/packages/notifier-api/src/lib/hash.ts @@ -0,0 +1,5 @@ +import {AlwatrHashGenerator} from 'alwatr/nanotron'; + +import {config} from './config.js'; + +export const hashGenerator = /* #__PURE__ */ new AlwatrHashGenerator(config.hash); From 572fe39d33a9c7ec0a47d00618fb2a6f6c9a9b43 Mon Sep 17 00:00:00 2001 From: Mohammad Honarvar Date: Tue, 22 Oct 2024 16:09:31 +0330 Subject: [PATCH 35/60] feat(notifier-api): use `hashGenerator` & save data --- .../notifier-api/src/bot/new-category-command.ts | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/packages/notifier-api/src/bot/new-category-command.ts b/packages/notifier-api/src/bot/new-category-command.ts index 2bc1b5e4..8a70c9cb 100644 --- a/packages/notifier-api/src/bot/new-category-command.ts +++ b/packages/notifier-api/src/bot/new-category-command.ts @@ -1,6 +1,6 @@ import {bot} from '../lib/bot.js'; import {config, logger} from '../lib/config.js'; -import {cryptoFactory} from '../lib/crypto.js'; +import {hashGenerator} from '../lib/hash.js'; import {message} from '../lib/i18n.js'; import {alwatrNitrobase} from '../lib/nitrobase.js'; @@ -12,12 +12,12 @@ import {alwatrNitrobase} from '../lib/nitrobase.js'; bot.command('new_category', async (ctx) => { const chatId = ctx.chat.id; const categoryNameQueryParam = ctx.match; - logger.logMethodArgs?.('new_category', {chatId, groupNameQueryParam: categoryNameQueryParam}); + logger.logMethodArgs?.('new_category', {chatId, categoryNameQueryParam}); - if (chatId !== config.bot.adminChatId) { - ctx.reply(message('commandAccessDenied')); - return; - } + // if (chatId !== config.bot.adminChatId) { + // ctx.reply(message('commandAccessDenied')); + // return; + // } const categoryName = categoryNameQueryParam.split('?name=')[1]; if (!categoryName) { @@ -26,11 +26,12 @@ bot.command('new_category', async (ctx) => { } const categoriesCollection = await alwatrNitrobase.openCollection(config.nitrobase.categoriesCollection); - const newCategoryId = cryptoFactory.generateUserId(); + const newCategoryId = hashGenerator.generateSelfValidate(categoryName); categoriesCollection.addItem(newCategoryId, { categoryName, memberList: [] }); + categoriesCollection.save(); ctx.reply(`https://t.me/${config.bot.info.username}?start=${newCategoryId}`); }); From 3f24b61a079dd3dbfce79186f33987c6a4e4229e Mon Sep 17 00:00:00 2001 From: Mohammad Honarvar Date: Tue, 22 Oct 2024 16:10:47 +0330 Subject: [PATCH 36/60] feat(notifier-api): start the bot & handle errors --- packages/notifier-api/src/lib/bot.ts | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/packages/notifier-api/src/lib/bot.ts b/packages/notifier-api/src/lib/bot.ts index 7064061c..6f4ab1c6 100644 --- a/packages/notifier-api/src/lib/bot.ts +++ b/packages/notifier-api/src/lib/bot.ts @@ -1,5 +1,12 @@ import {Bot} from 'grammy'; -import {config} from './config.js'; +import {config, logger} from './config.js'; export const bot = new Bot(config.bot.token, {botInfo: config.bot.info}); + +bot.start({drop_pending_updates: config.bot.dropPendingUpdates}); + +bot.catch(async (err: { message: unknown; }) => { + logger.error('catch', 'catch_error', err); + // await notifyDebug(`❗️ [#catch_error]: ${err.message}`); +}); From 9aec8917a60368301f927ff4f4ae0b1b555b1cb7 Mon Sep 17 00:00:00 2001 From: Mohammad Honarvar Date: Tue, 22 Oct 2024 16:11:17 +0330 Subject: [PATCH 37/60] chore(notifier-api): cleanup --- packages/notifier-api/src/main.ts | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/packages/notifier-api/src/main.ts b/packages/notifier-api/src/main.ts index 467af596..bb3daf0b 100644 --- a/packages/notifier-api/src/main.ts +++ b/packages/notifier-api/src/main.ts @@ -1,22 +1,11 @@ -// common imports -// import {notifyDebug, onStart} from './lib/admin.js'; -// bot imports import './bot/new-category-command.js'; import './bot/start-command.js'; import './bot/unsubscribe-callback.js'; -import {bot} from './lib/bot.js'; -import {config, logger} from './lib/config.js'; +import {logger} from './lib/config.js'; import {initializeNitrobase} from './lib/initialize-nitrobase.js'; import './route/home.js'; import './route/notify.js'; logger.banner('@alwatr/telegram-notifier'); -bot.start({drop_pending_updates: config.bot.dropPendingUpdates}); - -bot.catch(async (err: { message: unknown; }) => { - logger.error('catch', 'catch_error', err); - // await notifyDebug(`❗️ [#catch_error]: ${err.message}`); -}); - initializeNitrobase(); From 458be1db74c3ae612833e520204feac92482c222 Mon Sep 17 00:00:00 2001 From: Mohammad Honarvar Date: Wed, 23 Oct 2024 01:39:42 +0330 Subject: [PATCH 38/60] refactor(notifier-api): add some pre-handlers & complete the process of `notify` route & cleanup codes --- .../src/bot/new-category-command.ts | 8 ++-- packages/notifier-api/src/bot/send-message.ts | 23 +---------- .../notifier-api/src/bot/start-command.ts | 36 ++++------------ .../src/bot/unsubscribe-callback.ts | 34 --------------- packages/notifier-api/src/lib/bot.ts | 4 +- packages/notifier-api/src/lib/config.ts | 14 +++++-- .../{ => pre-handlers}/parse-request-body.ts | 2 +- .../lib/pre-handlers/validate-category-id.ts | 41 +++++++++++++++++++ packages/notifier-api/src/main.ts | 3 +- packages/notifier-api/src/route/notify.ts | 9 ++-- 10 files changed, 73 insertions(+), 101 deletions(-) delete mode 100644 packages/notifier-api/src/bot/unsubscribe-callback.ts rename packages/notifier-api/src/lib/{ => pre-handlers}/parse-request-body.ts (93%) create mode 100644 packages/notifier-api/src/lib/pre-handlers/validate-category-id.ts diff --git a/packages/notifier-api/src/bot/new-category-command.ts b/packages/notifier-api/src/bot/new-category-command.ts index 8a70c9cb..9b6bfe5b 100644 --- a/packages/notifier-api/src/bot/new-category-command.ts +++ b/packages/notifier-api/src/bot/new-category-command.ts @@ -14,10 +14,10 @@ bot.command('new_category', async (ctx) => { const categoryNameQueryParam = ctx.match; logger.logMethodArgs?.('new_category', {chatId, categoryNameQueryParam}); - // if (chatId !== config.bot.adminChatId) { - // ctx.reply(message('commandAccessDenied')); - // return; - // } + if (chatId !== config.bot.adminChatId) { + ctx.reply(message('commandAccessDenied')); + return; + } const categoryName = categoryNameQueryParam.split('?name=')[1]; if (!categoryName) { diff --git a/packages/notifier-api/src/bot/send-message.ts b/packages/notifier-api/src/bot/send-message.ts index d9d6c32b..1e40b861 100644 --- a/packages/notifier-api/src/bot/send-message.ts +++ b/packages/notifier-api/src/bot/send-message.ts @@ -1,7 +1,5 @@ -import {getUnsubscribeInlineKeyboardData} from './unsubscribe-callback.js'; import {bot} from '../lib/bot.js'; import {config, logger} from '../lib/config.js'; -import {hashGenerator} from '../lib/hash.js'; import {alwatrNitrobase} from '../lib/nitrobase.js'; import {escapeMessage} from '../lib/util.js'; @@ -19,34 +17,17 @@ sendMessageToCategory(categoryId: string, message_: string): Promise { message_ = escapeMessage(message_); const categoriesCollection = await alwatrNitrobase.openCollection(config.nitrobase.categoriesCollection); - - if ( - hashGenerator.verifySelfValidate(categoryId) === false || - categoriesCollection.hasItem(categoryId) === false - ) { - return; - } - const categoryData = categoriesCollection.getItemData(categoryId); for (const member of categoryData.memberList) { try { - await bot.api.sendMessage(member.id, message_, { - parse_mode: 'MarkdownV2', - reply_markup: { - inline_keyboard: [ - [ - getUnsubscribeInlineKeyboardData(categoryId), - ], - ], - }, - }); + await bot.api.sendMessage(member.id, message_); } catch (err) { const err_ = err as GrammyError; logger.error('sendMessage', 'error_send_message', err_, {chatId: member.id}); - // remove if blocked + // Remove if blocked if (err_.error_code === 403) { categoryData.memberList = categoryData.memberList.filter((member_) => member_.id !== member.id); categoriesCollection.mergeItemData(categoryId, categoryData); diff --git a/packages/notifier-api/src/bot/start-command.ts b/packages/notifier-api/src/bot/start-command.ts index eb3ed19d..644a43c3 100644 --- a/packages/notifier-api/src/bot/start-command.ts +++ b/packages/notifier-api/src/bot/start-command.ts @@ -1,4 +1,3 @@ -import {getUnsubscribeInlineKeyboardData} from './unsubscribe-callback.js'; import {bot} from '../lib/bot.js'; import {config, logger} from '../lib/config.js'; import {message} from '../lib/i18n.js'; @@ -15,9 +14,7 @@ bot.command('start', async (ctx) => { const categoryId = ctx.match; logger.logMethodArgs?.('start-command', {chatId, categoryId}); - const unsubscribeInlineKeyboardData = getUnsubscribeInlineKeyboardData(categoryId); - - if (categoryId === undefined) { + if (!categoryId) { await ctx.reply(message('itIsPrivateBot'), { reply_parameters: {message_id: ctx.message!.message_id}, }); @@ -35,35 +32,16 @@ bot.command('start', async (ctx) => { username: ctx.chat.username } - const groupData = categoriesCollection.getItemData(categoryId); - const targetIndex = groupData.memberList.findIndex(member => member.id === chatId); + const categoryData = categoriesCollection.getItemData(categoryId); + const targetIndex = categoryData.memberList.findIndex(member => member.id === chatId); if (targetIndex === -1) { - groupData.memberList.push(newMember); - categoriesCollection.mergeItemData(categoryId, groupData); + categoryData.memberList.push(newMember); + categoriesCollection.mergeItemData(categoryId, categoryData); categoriesCollection.save(); - await ctx.reply(message('addedToList'), { - reply_parameters: {message_id: ctx.message!.message_id}, - reply_markup: { - inline_keyboard: [ - [ - unsubscribeInlineKeyboardData - ], - ], - }, - }); - + await ctx.reply(message('addedToList')); return; } - await ctx.reply(message('hasBeenAddedAlready'), { - reply_parameters: {message_id: ctx.message!.message_id}, - reply_markup: { - inline_keyboard: [ - [ - unsubscribeInlineKeyboardData - ], - ], - }, - }); + await ctx.reply(message('hasBeenAddedAlready')); }); diff --git a/packages/notifier-api/src/bot/unsubscribe-callback.ts b/packages/notifier-api/src/bot/unsubscribe-callback.ts deleted file mode 100644 index 1270a864..00000000 --- a/packages/notifier-api/src/bot/unsubscribe-callback.ts +++ /dev/null @@ -1,34 +0,0 @@ -import {bot} from '../lib/bot.js'; -import {config} from '../lib/config.js'; -import {message} from '../lib/i18n.js'; -import {alwatrNitrobase} from '../lib/nitrobase.js'; - -bot.callbackQuery(/^unsubscribe:.*$/, async (ctx) => { - const categoryId = ctx.callbackQuery.data.split(':')[1]; - const userId = ctx.from.id + ''; - - const categoriesCollection = await alwatrNitrobase.openCollection(config.nitrobase.categoriesCollection); - - if (categoriesCollection.hasItem(categoryId) === false) { - await ctx.reply(message('haveNotSubscribedBefore')); - return; - } - - const categoryData = categoriesCollection.getItemData(categoryId); - const targetIndex = categoryData.memberList.findIndex(member => member.id === userId); - if (targetIndex === -1) { - await ctx.reply(message('haveNotSubscribedBefore')); - return; - } - - categoryData.memberList.splice(targetIndex, 1); - categoriesCollection.mergeItemData(categoryId, categoryData); - categoriesCollection.save(); - - await ctx.reply(message('hasBeenUnsubscribed').replace('{categoryId}', categoryId)); -}); - -export const getUnsubscribeInlineKeyboardData = (groupId: string) => ({ - callback_data: `unsubscribe:${groupId}`, - text: message('unsubscribeMeButtonLabel'), -}); diff --git a/packages/notifier-api/src/lib/bot.ts b/packages/notifier-api/src/lib/bot.ts index 6f4ab1c6..47a73f27 100644 --- a/packages/notifier-api/src/lib/bot.ts +++ b/packages/notifier-api/src/lib/bot.ts @@ -2,9 +2,9 @@ import {Bot} from 'grammy'; import {config, logger} from './config.js'; -export const bot = new Bot(config.bot.token, {botInfo: config.bot.info}); +export const bot = new Bot(config.bot.token); -bot.start({drop_pending_updates: config.bot.dropPendingUpdates}); +bot.start(); bot.catch(async (err: { message: unknown; }) => { logger.error('catch', 'catch_error', err); diff --git a/packages/notifier-api/src/lib/config.ts b/packages/notifier-api/src/lib/config.ts index 0c7a942f..132c49c2 100644 --- a/packages/notifier-api/src/lib/config.ts +++ b/packages/notifier-api/src/lib/config.ts @@ -14,8 +14,8 @@ const env = /* #__PURE__ */ (() => { tokenSecret: 'DEV_SECRET', host: '0.0.0.0', port: 8000, - botToken: '1568040550:AAG_j2b4LGtGtX_cXslejibBFIaY_ywRMFM', - botUsername: 'MHF_DEV_BOT', + botToken: 'BOT_TOKEN', + botUsername: 'BOT_USERNAME', botFirstName: 'BOT_FIRST_NAME', dropPendingUpdates: '1', botAdminChatId: 'ADMIN_CHAT_ID', @@ -37,8 +37,9 @@ const env = /* #__PURE__ */ (() => { export const config = { hash: { algorithm: 'sha1', - encoding: 'binary', - crcLength: 5 + encoding: 'hex', + crcLength: 5, + prefix: 'ca' } as HashGeneratorConfig, nanotronApiServer: { @@ -63,6 +64,11 @@ export const config = { token: env.botToken!, adminChatId: +env.botAdminChatId!, + /** + * The Telegram API now supports clearing the pending messages via a + * drop_pending_updates parameter in both setWebhook and deleteWebhook + * e.g. clear all old unread messages. + */ dropPendingUpdates: env.dropPendingUpdates === '1', info: { diff --git a/packages/notifier-api/src/lib/parse-request-body.ts b/packages/notifier-api/src/lib/pre-handlers/parse-request-body.ts similarity index 93% rename from packages/notifier-api/src/lib/parse-request-body.ts rename to packages/notifier-api/src/lib/pre-handlers/parse-request-body.ts index 26747e54..1652987f 100644 --- a/packages/notifier-api/src/lib/parse-request-body.ts +++ b/packages/notifier-api/src/lib/pre-handlers/parse-request-body.ts @@ -1,4 +1,4 @@ -import {logger} from './config.js'; +import {logger} from '../config.js'; import type {NanotronClientRequest} from 'alwatr/nanotron'; diff --git a/packages/notifier-api/src/lib/pre-handlers/validate-category-id.ts b/packages/notifier-api/src/lib/pre-handlers/validate-category-id.ts new file mode 100644 index 00000000..639cc826 --- /dev/null +++ b/packages/notifier-api/src/lib/pre-handlers/validate-category-id.ts @@ -0,0 +1,41 @@ +import {config, logger} from '../config.js'; +import {hashGenerator} from '../hash.js'; +import {alwatrNitrobase} from '../nitrobase.js'; + +import type {ErrorResponse, NanotronClientRequest} from 'alwatr/nanotron'; + +export async function validateCategoryId( + this: NanotronClientRequest>, +): Promise { + try { + logger.logMethodArgs?.('validateCategoryId', {body: this.sharedMeta.body}); + + if (this.sharedMeta.body === undefined) { + this.serverResponse.replyErrorResponse({ + ok: false, + errorCode: 'invalid_request_payload', + errorMessage: 'Invalid request payload.' + }); + return; + } + + const replyErrorResponse: ErrorResponse = { + ok: false, + errorCode: 'invalid_category_id', + errorMessage: 'Invalid category.' + }; + + if (hashGenerator.verifySelfValidate(this.sharedMeta.body.categoryId) === false) { + this.serverResponse.replyErrorResponse(replyErrorResponse); + return; + } + + const categoriesCollection = await alwatrNitrobase.openCollection(config.nitrobase.categoriesCollection); + if (categoriesCollection.hasItem(this.sharedMeta.body.categoryId) === false) { + this.serverResponse.replyErrorResponse(replyErrorResponse); + } + } + catch (error) { + logger.error?.('validateCategoryId', 'validating_category_id_error', {error}); + } +} diff --git a/packages/notifier-api/src/main.ts b/packages/notifier-api/src/main.ts index bb3daf0b..7b3214d7 100644 --- a/packages/notifier-api/src/main.ts +++ b/packages/notifier-api/src/main.ts @@ -1,11 +1,10 @@ import './bot/new-category-command.js'; import './bot/start-command.js'; -import './bot/unsubscribe-callback.js'; import {logger} from './lib/config.js'; import {initializeNitrobase} from './lib/initialize-nitrobase.js'; import './route/home.js'; import './route/notify.js'; -logger.banner('@alwatr/telegram-notifier'); +logger.banner('@alwatr/notifier-api'); initializeNitrobase(); diff --git a/packages/notifier-api/src/route/notify.ts b/packages/notifier-api/src/route/notify.ts index c01f2a55..426c299d 100644 --- a/packages/notifier-api/src/route/notify.ts +++ b/packages/notifier-api/src/route/notify.ts @@ -1,16 +1,17 @@ import {sendMessageToCategory} from '../bot/send-message.js'; import {logger} from '../lib/config.js'; -import {parseBodyAsJson} from '../lib/parse-request-body.js'; +import {parseBodyAsJson} from '../lib/pre-handlers/parse-request-body.js'; +import {validateCategoryId} from '../lib/pre-handlers/validate-category-id.js'; import {nanotronApiServer} from '../lib/server.js'; -nanotronApiServer.defineRoute<{body: { groupId: string; message: string }}>({ +nanotronApiServer.defineRoute<{body: { categoryId: string; message: string }}>({ method: 'POST', url: '/telegram/notify', - preHandlers: [parseBodyAsJson], + preHandlers: [parseBodyAsJson, validateCategoryId], async handler() { logger.logMethodArgs?.('defineRoute(/telegram/notify)', {body: this.sharedMeta.body}); - await sendMessageToCategory(this.sharedMeta.body.groupId, this.sharedMeta.body.message); + sendMessageToCategory(this.sharedMeta.body.categoryId, this.sharedMeta.body.message); this.serverResponse.replyJson({ ok: true, From 2cf2b13a6570879b50ad1007a87c14f0c8357edb Mon Sep 17 00:00:00 2001 From: Ali Mihandoost Date: Fri, 25 Oct 2024 10:13:37 +0330 Subject: [PATCH 39/60] feat(notifier-api): Add parseBodyAsJson handler This commit adds the parseBodyAsJson handler to the notifier-api package. The handler is responsible for parsing the request body as JSON and handling any errors that occur during the process. The handler checks if the request body is empty and returns an error response if it is. It also attempts to parse the body as JSON and sets the parsed body in the sharedMeta object. If the parsing fails, an error response is returned. This commit improves the functionality of the notifier-api package by adding the parseBodyAsJson handler, which enhances the handling of JSON request bodies. --- .../src/handler/parse-body-as-json.ts | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 packages/notifier-api/src/handler/parse-body-as-json.ts diff --git a/packages/notifier-api/src/handler/parse-body-as-json.ts b/packages/notifier-api/src/handler/parse-body-as-json.ts new file mode 100644 index 00000000..ff5a302f --- /dev/null +++ b/packages/notifier-api/src/handler/parse-body-as-json.ts @@ -0,0 +1,36 @@ +import {HttpStatusCodes} from 'alwatr/nanotron'; + +import {logger} from '../config.js'; + +import type {NanotronClientRequest} from 'alwatr/nanotron'; + +export async function parseBodyAsJson( + this: NanotronClientRequest<{body: DictionaryOpt}>, +): Promise { + const bodyBuffer = await this.getBodyRaw(); + if (bodyBuffer.length === 0) { + logger.error('parseBodyAsJson', 'body_required'); + this.serverResponse.statusCode = HttpStatusCodes.Error_Client_422_Unprocessable_Entity; + this.serverResponse.replyErrorResponse({ + ok: false, + errorCode: 'body_required', + errorMessage: 'Request body is required.', + }); + return; + } + + try { + this.sharedMeta.body = JSON.parse(bodyBuffer.toString()) as DictionaryOpt; + } + catch (error) { + logger.error('parseBodyAsJson', 'invalid_body_json', error); + this.serverResponse.statusCode = HttpStatusCodes.Error_Client_422_Unprocessable_Entity; + this.serverResponse.replyErrorResponse({ + ok: false, + errorCode: 'invalid_body_json', + errorMessage: 'Invalid JSON in request body.', + }); + } + + logger.logMethodArgs?.('parseBodyAsJson', {body: this.sharedMeta.body}); +} From 42a2f59aa6d6e6fae0bf4537168f5b6eed12dd29 Mon Sep 17 00:00:00 2001 From: Ali Mihandoost Date: Fri, 25 Oct 2024 10:25:53 +0330 Subject: [PATCH 40/60] refactor(vscode): Update .vscode/settings.json --- .vscode/settings.json | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 14263aab..8c9fec41 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -27,17 +27,9 @@ // "**/*.tsbuildinfo": true }, "git.autoStash": true, - "git.branchProtection": [ - "main", - "next" - ], - "githubPullRequests.ignoredPullRequestBranches": [ - "main", - "next" - ], - "markdownlint.ignore": [ - "**/CHANGELOG.md" - ], + "git.branchProtection": ["main", "next"], + "githubPullRequests.ignoredPullRequestBranches": ["main", "next"], + "markdownlint.ignore": ["**/CHANGELOG.md"], "npm.packageManager": "yarn", "prettier.prettierPath": ".yarn/sdks/prettier/index.cjs", "prettier.useEditorConfig": true, From baadde00ebb41038f0a650c664a1907fc40ba4a0 Mon Sep 17 00:00:00 2001 From: Ali Mihandoost Date: Fri, 25 Oct 2024 11:15:44 +0330 Subject: [PATCH 41/60] refactor(notifier-api): Update parseBodyAsJson handler to use JsonObject type --- packages/notifier-api/src/handler/parse-body-as-json.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/notifier-api/src/handler/parse-body-as-json.ts b/packages/notifier-api/src/handler/parse-body-as-json.ts index ff5a302f..89ad0601 100644 --- a/packages/notifier-api/src/handler/parse-body-as-json.ts +++ b/packages/notifier-api/src/handler/parse-body-as-json.ts @@ -5,7 +5,7 @@ import {logger} from '../config.js'; import type {NanotronClientRequest} from 'alwatr/nanotron'; export async function parseBodyAsJson( - this: NanotronClientRequest<{body: DictionaryOpt}>, + this: NanotronClientRequest<{body?: JsonObject}>, ): Promise { const bodyBuffer = await this.getBodyRaw(); if (bodyBuffer.length === 0) { @@ -20,7 +20,7 @@ export async function parseBodyAsJson( } try { - this.sharedMeta.body = JSON.parse(bodyBuffer.toString()) as DictionaryOpt; + this.sharedMeta.body = JSON.parse(bodyBuffer.toString()) as JsonObject; } catch (error) { logger.error('parseBodyAsJson', 'invalid_body_json', error); From cead5b121c7715bca14075407651c460ace0e46a Mon Sep 17 00:00:00 2001 From: Ali Mihandoost Date: Fri, 25 Oct 2024 11:39:55 +0330 Subject: [PATCH 42/60] refactor(notifier-api): rewrite notify route --- packages/notifier-api/src/route/notify.ts | 79 ++++++++++++++++++++--- 1 file changed, 69 insertions(+), 10 deletions(-) diff --git a/packages/notifier-api/src/route/notify.ts b/packages/notifier-api/src/route/notify.ts index 426c299d..5d27697c 100644 --- a/packages/notifier-api/src/route/notify.ts +++ b/packages/notifier-api/src/route/notify.ts @@ -1,21 +1,80 @@ -import {sendMessageToCategory} from '../bot/send-message.js'; -import {logger} from '../lib/config.js'; -import {parseBodyAsJson} from '../lib/pre-handlers/parse-request-body.js'; -import {validateCategoryId} from '../lib/pre-handlers/validate-category-id.js'; +import {HttpStatusCodes} from 'alwatr/nanotron'; + +import {config, logger} from '../config.js'; +import {parseBodyAsJson} from '../handler/parse-body-as-json.js'; +import {bot} from '../lib/bot.js'; +import {alwatrNitrobase} from '../lib/nitrobase.js'; import {nanotronApiServer} from '../lib/server.js'; -nanotronApiServer.defineRoute<{body: { categoryId: string; message: string }}>({ +import type { GrammyError } from 'grammy'; + +nanotronApiServer.defineRoute<{body: JsonObject}>({ method: 'POST', - url: '/telegram/notify', - preHandlers: [parseBodyAsJson, validateCategoryId], + url: 'notify', + preHandlers: [parseBodyAsJson], async handler() { - logger.logMethodArgs?.('defineRoute(/telegram/notify)', {body: this.sharedMeta.body}); + logger.logMethod?.('notify'); + + const body = this.sharedMeta.body; + + const categoryId = body.category; + if (categoryId === undefined || typeof categoryId !== 'string') { + this.serverResponse.statusCode = HttpStatusCodes.Error_Client_400_Bad_Request; + this.serverResponse.replyJson({ + ok: false, + errorCode: 'category_required', + errorMessage: 'Category is required.', + }); + return; + } + + const message = body.message; + if (message === undefined || typeof message !== 'string') { + this.serverResponse.statusCode = HttpStatusCodes.Error_Client_400_Bad_Request; + this.serverResponse.replyJson({ + ok: false, + errorCode: 'message_required', + errorMessage: 'Message is required.', + }); + return; + } - sendMessageToCategory(this.sharedMeta.body.categoryId, this.sharedMeta.body.message); + const categoriesCollection = await alwatrNitrobase.openCollection(config.nitrobase.categoriesCollection); + + if (categoriesCollection.hasItem(categoryId) === false) { + this.serverResponse.statusCode = HttpStatusCodes.Error_Client_400_Bad_Request; + this.serverResponse.replyJson({ + ok: false, + errorCode: 'category_not_found', + errorMessage: 'Category not found.', + }); + return; + } this.serverResponse.replyJson({ ok: true, - data: {}, }); + + const members = categoriesCollection.getItemData(categoryId).members; + for (let i = members.length - 1; i >= 0; i--) { + const member = members[i]; + try { + await bot.api.sendMessage(member.id, message, { + parse_mode: body.markdown === true ? 'MarkdownV2' : undefined, + }); + } + catch (error_) { + const error = error_ as GrammyError; + logger.error('sendMessage', 'error_send_message', error, {member, categoryId, message}); + + // Remove if blocked + if (error.error_code === 403) { + const memberIndex = members.findIndex((member_) => member_ === member); + members.splice(memberIndex, 1); + categoriesCollection.save(); + } + } + } }, }); + From a1b5d35c438496c0c2ab202431c1c2048a85d62b Mon Sep 17 00:00:00 2001 From: Ali Mihandoost Date: Fri, 25 Oct 2024 15:18:29 +0330 Subject: [PATCH 43/60] refactor(notifier-api): Update type definitions for Category, Member, and NotifyOption --- packages/notifier-api/src/type.ts | 31 +++++++++++++++++-------------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/packages/notifier-api/src/type.ts b/packages/notifier-api/src/type.ts index 7cc6d8de..639daa73 100644 --- a/packages/notifier-api/src/type.ts +++ b/packages/notifier-api/src/type.ts @@ -1,16 +1,19 @@ -import type {Chat} from 'grammy/types'; +export type Category = { + title: string; + members: Member[]; +}; -declare global { - type CategoryItem = { - categoryName: string; - memberList: MemberItem[]; - } +export type Member = { + id: number; + type: 'private' | 'group' | 'supergroup' | 'channel'; + title?: string; + username?: string; + firstName?: string; + lastName?: string; +}; - type MemberItem = { - id: string; - type: Chat['type'], - username?: Chat['username']; - first_name?: Chat['first_name']; - last_name?: Chat['last_name']; - } -} +export type NotifyOption = { + categoryId: string; + message: string; + markdown: boolean; +}; From 93bb4192a06ffeb13cbd0c92f08f219cffd257a1 Mon Sep 17 00:00:00 2001 From: Ali Mihandoost Date: Fri, 25 Oct 2024 15:25:15 +0330 Subject: [PATCH 44/60] refactor: rename files and cleaup --- .../src/bot/new-category-command.ts | 37 ------------------- .../src/{bot => command}/start-command.ts | 0 packages/notifier-api/src/{lib => }/config.ts | 0 .../notify-validation.ts} | 0 packages/notifier-api/src/lib/admin.ts | 14 ------- .../src/lib/{util.ts => escape-message.ts} | 0 .../send-message.ts => lib/notifyTelegram.ts} | 8 ++-- .../lib/pre-handlers/parse-request-body.ts | 18 --------- .../src/route/{notify.ts => notifyRoute.ts} | 0 9 files changed, 4 insertions(+), 73 deletions(-) delete mode 100644 packages/notifier-api/src/bot/new-category-command.ts rename packages/notifier-api/src/{bot => command}/start-command.ts (100%) rename packages/notifier-api/src/{lib => }/config.ts (100%) rename packages/notifier-api/src/{lib/pre-handlers/validate-category-id.ts => handler/notify-validation.ts} (100%) delete mode 100644 packages/notifier-api/src/lib/admin.ts rename packages/notifier-api/src/lib/{util.ts => escape-message.ts} (100%) rename packages/notifier-api/src/{bot/send-message.ts => lib/notifyTelegram.ts} (86%) delete mode 100644 packages/notifier-api/src/lib/pre-handlers/parse-request-body.ts rename packages/notifier-api/src/route/{notify.ts => notifyRoute.ts} (100%) diff --git a/packages/notifier-api/src/bot/new-category-command.ts b/packages/notifier-api/src/bot/new-category-command.ts deleted file mode 100644 index 9b6bfe5b..00000000 --- a/packages/notifier-api/src/bot/new-category-command.ts +++ /dev/null @@ -1,37 +0,0 @@ -import {bot} from '../lib/bot.js'; -import {config, logger} from '../lib/config.js'; -import {hashGenerator} from '../lib/hash.js'; -import {message} from '../lib/i18n.js'; -import {alwatrNitrobase} from '../lib/nitrobase.js'; - -/** - * `new_category` command. - * - * This command creates a new category. - */ -bot.command('new_category', async (ctx) => { - const chatId = ctx.chat.id; - const categoryNameQueryParam = ctx.match; - logger.logMethodArgs?.('new_category', {chatId, categoryNameQueryParam}); - - if (chatId !== config.bot.adminChatId) { - ctx.reply(message('commandAccessDenied')); - return; - } - - const categoryName = categoryNameQueryParam.split('?name=')[1]; - if (!categoryName) { - ctx.reply(message('enterCategoryName')); - return; - } - - const categoriesCollection = await alwatrNitrobase.openCollection(config.nitrobase.categoriesCollection); - const newCategoryId = hashGenerator.generateSelfValidate(categoryName); - categoriesCollection.addItem(newCategoryId, { - categoryName, - memberList: [] - }); - categoriesCollection.save(); - - ctx.reply(`https://t.me/${config.bot.info.username}?start=${newCategoryId}`); -}); diff --git a/packages/notifier-api/src/bot/start-command.ts b/packages/notifier-api/src/command/start-command.ts similarity index 100% rename from packages/notifier-api/src/bot/start-command.ts rename to packages/notifier-api/src/command/start-command.ts diff --git a/packages/notifier-api/src/lib/config.ts b/packages/notifier-api/src/config.ts similarity index 100% rename from packages/notifier-api/src/lib/config.ts rename to packages/notifier-api/src/config.ts diff --git a/packages/notifier-api/src/lib/pre-handlers/validate-category-id.ts b/packages/notifier-api/src/handler/notify-validation.ts similarity index 100% rename from packages/notifier-api/src/lib/pre-handlers/validate-category-id.ts rename to packages/notifier-api/src/handler/notify-validation.ts diff --git a/packages/notifier-api/src/lib/admin.ts b/packages/notifier-api/src/lib/admin.ts deleted file mode 100644 index 9a3bef4d..00000000 --- a/packages/notifier-api/src/lib/admin.ts +++ /dev/null @@ -1,14 +0,0 @@ -// import {bot} from './bot.js'; -// import {config, logger} from './config.js'; -// import {message} from './i18n.js'; - -// export function notifyDebug(message: string) { -// logger.logMethod?.('notifyDebug'); -// return bot.api.sendMessage(config.bot.adminChatId, message, { -// message_thread_id: config.bot.adminThreadId, -// }); -// } - -// export async function onStart() { -// await notifyDebug(message('startup_message')); -// } diff --git a/packages/notifier-api/src/lib/util.ts b/packages/notifier-api/src/lib/escape-message.ts similarity index 100% rename from packages/notifier-api/src/lib/util.ts rename to packages/notifier-api/src/lib/escape-message.ts diff --git a/packages/notifier-api/src/bot/send-message.ts b/packages/notifier-api/src/lib/notifyTelegram.ts similarity index 86% rename from packages/notifier-api/src/bot/send-message.ts rename to packages/notifier-api/src/lib/notifyTelegram.ts index 1e40b861..22b9758a 100644 --- a/packages/notifier-api/src/bot/send-message.ts +++ b/packages/notifier-api/src/lib/notifyTelegram.ts @@ -1,7 +1,7 @@ -import {bot} from '../lib/bot.js'; -import {config, logger} from '../lib/config.js'; -import {alwatrNitrobase} from '../lib/nitrobase.js'; -import {escapeMessage} from '../lib/util.js'; +import {bot} from './bot.js'; +import {config, logger} from '../config.js'; +import {escapeMessage} from './escape-message.js'; +import {alwatrNitrobase} from './nitrobase.js'; import type {GrammyError} from 'grammy'; diff --git a/packages/notifier-api/src/lib/pre-handlers/parse-request-body.ts b/packages/notifier-api/src/lib/pre-handlers/parse-request-body.ts deleted file mode 100644 index 1652987f..00000000 --- a/packages/notifier-api/src/lib/pre-handlers/parse-request-body.ts +++ /dev/null @@ -1,18 +0,0 @@ -import {logger} from '../config.js'; - -import type {NanotronClientRequest} from 'alwatr/nanotron'; - -export async function parseBodyAsJson( - this: NanotronClientRequest>, -): Promise { - try { - const bodyBuffer = await this.getBodyRaw(); - const data = JSON.parse(bodyBuffer.toString()) as T; - logger.logMethodArgs?.('parseBodyAsJson', {data}); - - this.sharedMeta.body = data; - } - catch (error) { - logger.error?.('parseBodyAsJson', 'body_parsing_error', {error}); - } -} diff --git a/packages/notifier-api/src/route/notify.ts b/packages/notifier-api/src/route/notifyRoute.ts similarity index 100% rename from packages/notifier-api/src/route/notify.ts rename to packages/notifier-api/src/route/notifyRoute.ts From 98db565650d0b8e3714ebabf8358de9b2637bd47 Mon Sep 17 00:00:00 2001 From: Ali Mihandoost Date: Fri, 25 Oct 2024 15:26:25 +0330 Subject: [PATCH 45/60] refactor(notifier-api): Update start-command to add user to category members list --- .../notifier-api/src/command/start-command.ts | 94 ++++++++++++------- 1 file changed, 58 insertions(+), 36 deletions(-) diff --git a/packages/notifier-api/src/command/start-command.ts b/packages/notifier-api/src/command/start-command.ts index 644a43c3..964d9a40 100644 --- a/packages/notifier-api/src/command/start-command.ts +++ b/packages/notifier-api/src/command/start-command.ts @@ -1,47 +1,69 @@ +import {config, logger} from '../config.js'; import {bot} from '../lib/bot.js'; -import {config, logger} from '../lib/config.js'; -import {message} from '../lib/i18n.js'; +import {message} from '../lib/message.js'; import {alwatrNitrobase} from '../lib/nitrobase.js'; +import type {Category} from '../type.js'; -/** - * `start` command. - * - * This command starts the bot. - */ -bot.command('start', async (ctx) => { - const chatId = ctx.chat.id + ''; - const categoryId = ctx.match; - logger.logMethodArgs?.('start-command', {chatId, categoryId}); +bot.command( + 'start', - if (!categoryId) { - await ctx.reply(message('itIsPrivateBot'), { - reply_parameters: {message_id: ctx.message!.message_id}, - }); + /** + * Start command with category id as parameter. + * Adds the user to the category members list. + * + * @example + * `/start categoryId` + * `https://t.me/your_bot?start=categoryId` + */ + async function startCommand(ctx) { + const categoryId = ctx.match; + try { + logger.logMethodArgs?.('startCommand', {categoryId, chat: ctx.chat}); - return; - } + if (!categoryId) { + logger.incident?.('startCommand', 'category_id_not_provided', {from: ctx.from, chat: ctx.chat}); + await ctx.reply(message.private_bot_warning, { + reply_parameters: { + message_id: ctx.msg.message_id, + }, + }); + return; + } - const categoriesCollection = await alwatrNitrobase.openCollection(config.nitrobase.categoriesCollection); + const categoriesCollection = await alwatrNitrobase.openCollection(config.nitrobase.categoriesCollection); - const newMember = { - id: chatId, - type: ctx.chat.type, - first_name: ctx.chat.first_name, - last_name: ctx.chat.last_name, - username: ctx.chat.username - } + if (categoriesCollection.hasItem(categoryId) === false) { + logger.incident?.('startCommand', 'category_not_found', {categoryId, from: ctx.from, chat: ctx.chat}); + await ctx.reply(message.invalid_data_submitted, { + reply_parameters: { + message_id: ctx.msg.message_id, + }, + }); + return; + } - const categoryData = categoriesCollection.getItemData(categoryId); - const targetIndex = categoryData.memberList.findIndex(member => member.id === chatId); - if (targetIndex === -1) { - categoryData.memberList.push(newMember); - categoriesCollection.mergeItemData(categoryId, categoryData); - categoriesCollection.save(); + const members = categoriesCollection.getItemData(categoryId).members; - await ctx.reply(message('addedToList')); - return; - } + if (members.findIndex((member) => member.id === ctx.chat.id) !== -1) { + await ctx.reply(message.already_added_to_list); + return; + } - await ctx.reply(message('hasBeenAddedAlready')); -}); + members.push({ + id: ctx.chat.id, + type: ctx.chat.type, + title: ctx.chat.title, + firstName: ctx.chat.first_name, + lastName: ctx.chat.last_name, + username: ctx.chat.username, + }); + categoriesCollection.save(); + + await ctx.reply(message.success_added_to_list); + } + catch (error) { + logger.error?.('startCommand', 'unexpected_error', error, {categoryId, from: ctx.from, chat: ctx.chat}); + } + } +); From 64be0820cadcdba26f372974898708d76fb2cc1b Mon Sep 17 00:00:00 2001 From: Ali Mihandoost Date: Fri, 25 Oct 2024 15:26:38 +0330 Subject: [PATCH 46/60] refactor(notifier-api): Update notify-validation handler to validate category and message inputs --- .../src/handler/notify-validation.ts | 82 +++++++++++-------- 1 file changed, 46 insertions(+), 36 deletions(-) diff --git a/packages/notifier-api/src/handler/notify-validation.ts b/packages/notifier-api/src/handler/notify-validation.ts index 639cc826..318ff170 100644 --- a/packages/notifier-api/src/handler/notify-validation.ts +++ b/packages/notifier-api/src/handler/notify-validation.ts @@ -1,41 +1,51 @@ +import {HttpStatusCodes, type NanotronClientRequest} from 'alwatr/nanotron'; + import {config, logger} from '../config.js'; -import {hashGenerator} from '../hash.js'; -import {alwatrNitrobase} from '../nitrobase.js'; - -import type {ErrorResponse, NanotronClientRequest} from 'alwatr/nanotron'; - -export async function validateCategoryId( - this: NanotronClientRequest>, -): Promise { - try { - logger.logMethodArgs?.('validateCategoryId', {body: this.sharedMeta.body}); - - if (this.sharedMeta.body === undefined) { - this.serverResponse.replyErrorResponse({ - ok: false, - errorCode: 'invalid_request_payload', - errorMessage: 'Invalid request payload.' - }); - return; - } - - const replyErrorResponse: ErrorResponse = { +import {alwatrNitrobase} from '../lib/nitrobase.js'; + +import type {Category, NotifyOption} from '../type.js'; + +export async function notifyValidation(this: NanotronClientRequest<{body: JsonObject}>): Promise { + logger.logMethodArgs?.('notifyValidation', {body: this.sharedMeta.body}); + + const {categoryId, message, markdown} = this.sharedMeta.body; + + if (categoryId === undefined || typeof categoryId !== 'string') { + this.serverResponse.statusCode = HttpStatusCodes.Error_Client_400_Bad_Request; + this.serverResponse.replyJson({ + ok: false, + errorCode: 'category_required', + errorMessage: 'Category is required.', + }); + return; + } + + if (message === undefined || typeof message !== 'string') { + this.serverResponse.statusCode = HttpStatusCodes.Error_Client_400_Bad_Request; + this.serverResponse.replyJson({ ok: false, - errorCode: 'invalid_category_id', - errorMessage: 'Invalid category.' - }; - - if (hashGenerator.verifySelfValidate(this.sharedMeta.body.categoryId) === false) { - this.serverResponse.replyErrorResponse(replyErrorResponse); - return; - } - - const categoriesCollection = await alwatrNitrobase.openCollection(config.nitrobase.categoriesCollection); - if (categoriesCollection.hasItem(this.sharedMeta.body.categoryId) === false) { - this.serverResponse.replyErrorResponse(replyErrorResponse); - } + errorCode: 'message_required', + errorMessage: 'Message is required.', + }); + return; } - catch (error) { - logger.error?.('validateCategoryId', 'validating_category_id_error', {error}); + + const categoriesCollection = await alwatrNitrobase.openCollection(config.nitrobase.categoriesCollection); + + if (categoriesCollection.hasItem(categoryId) === false) { + this.serverResponse.statusCode = HttpStatusCodes.Error_Client_400_Bad_Request; + this.serverResponse.replyJson({ + ok: false, + errorCode: 'category_not_found', + errorMessage: 'Category not found.', + }); + return; } + + // just for type validation + (this.sharedMeta.body as NotifyOption) = { + categoryId, + message, + markdown: markdown === true, + }; } From 3d1f585322fa834d8aea7c20132aa8c2a636f46c Mon Sep 17 00:00:00 2001 From: Ali Mihandoost Date: Fri, 25 Oct 2024 15:26:45 +0330 Subject: [PATCH 47/60] refactor(notifier-api): Update bot start method and error handling --- packages/notifier-api/src/lib/bot.ts | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/packages/notifier-api/src/lib/bot.ts b/packages/notifier-api/src/lib/bot.ts index 47a73f27..3407443b 100644 --- a/packages/notifier-api/src/lib/bot.ts +++ b/packages/notifier-api/src/lib/bot.ts @@ -1,12 +1,16 @@ import {Bot} from 'grammy'; -import {config, logger} from './config.js'; +import {config, logger} from '../config.js'; -export const bot = new Bot(config.bot.token); +export const bot = new Bot(config.telegramBot.token, {client: config.telegramBot.clientOption}); -bot.start(); +bot.start({ + ...config.telegramBot.startOption, + onStart(botInfo) { + logger.logProperty?.('botInfo', botInfo); + }, +}); -bot.catch(async (err: { message: unknown; }) => { - logger.error('catch', 'catch_error', err); - // await notifyDebug(`❗️ [#catch_error]: ${err.message}`); +bot.catch(async (error) => { + logger.error('bot.catch', 'unexpected_error', error); }); From 254fa3599a50a2b8df015d217600d5a353da2035 Mon Sep 17 00:00:00 2001 From: Ali Mihandoost Date: Fri, 25 Oct 2024 15:26:56 +0330 Subject: [PATCH 48/60] refactor(notifier-api): Update escapeMessage function to use regex for character escaping --- packages/notifier-api/src/lib/escape-message.ts | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/packages/notifier-api/src/lib/escape-message.ts b/packages/notifier-api/src/lib/escape-message.ts index bfffcad0..b933c65b 100644 --- a/packages/notifier-api/src/lib/escape-message.ts +++ b/packages/notifier-api/src/lib/escape-message.ts @@ -2,10 +2,8 @@ * @see https://core.telegram.org/bots/api#markdownv2-style */ const scapeChars = ['_', '*', '[', ']', '(', ')', '~', '`', '>', '#', '+', '-', '=', '|', '{', '}', '.', '!']; +const scapeCharsRegex = new RegExp(`[${scapeChars.map(char => `\\${char}`).join('')}]`, 'g'); export function escapeMessage(message: string): string { - for (const character of scapeChars) { - message = message.replaceAll(character, `\\${character}`); - } - return message; + return message.replace(scapeCharsRegex, '\\$&'); } From c02db00df9f472b7a4a0c03be49b2b1115f48f78 Mon Sep 17 00:00:00 2001 From: Ali Mihandoost Date: Fri, 25 Oct 2024 15:27:13 +0330 Subject: [PATCH 49/60] refactor(notifier-api): Update i18n message function and resource keys --- packages/notifier-api/src/lib/i18n.ts | 18 ------------------ packages/notifier-api/src/lib/message.ts | 10 ++++++++++ 2 files changed, 10 insertions(+), 18 deletions(-) delete mode 100644 packages/notifier-api/src/lib/i18n.ts create mode 100644 packages/notifier-api/src/lib/message.ts diff --git a/packages/notifier-api/src/lib/i18n.ts b/packages/notifier-api/src/lib/i18n.ts deleted file mode 100644 index 1b6d049c..00000000 --- a/packages/notifier-api/src/lib/i18n.ts +++ /dev/null @@ -1,18 +0,0 @@ -/* eslint-disable max-len */ - -export function message(key: keyof typeof i18nResources): string { - return i18nResources[key]; -} - -const i18nResources = { - addedToList: 'شما با موفقیت به لیست اضافه شدید', - hasBeenAddedAlready: 'شما قبلا به این لیست اضافه شده اید.', - unsubscribeMeButtonLabel: 'لغو عضویت از این لیست 🔕', - hasBeenUnsubscribed: 'شما از لیست {categoryId} حذف شدید 🚫', - haveNotSubscribedBefore: 'شما قبلا عضو این لیست نبوده اید!', - enterCategoryName: 'لطفا نام دسته را مشخص کنید.', - commandAccessDenied: 'شما نمی توانید این دستور رو اجرا کنید.', - - startupMessage: `Bot started \n\nv${__package_version__}`, - itIsPrivateBot: 'این یک بات خصوصی هست! لطفا مزاحم نشوید', -} as const; diff --git a/packages/notifier-api/src/lib/message.ts b/packages/notifier-api/src/lib/message.ts new file mode 100644 index 00000000..3c0fdee2 --- /dev/null +++ b/packages/notifier-api/src/lib/message.ts @@ -0,0 +1,10 @@ +/* eslint-disable max-len */ + +export const message = { + private_bot_warning: 'این یک بات خصوصی هست! لطفا مزاحم نشوید!', + invalid_data_submitted: 'اطلاعات ارسالی نامعتبر است!', + success_added_to_list: 'شما با موفقیت به لیست اضافه شدید', + already_added_to_list: 'شما قبلا به این لیست اضافه شده اید.', + unsubscribe_button_label: 'لغو عضویت از لیست', + unsubscribed_from_list: 'شما از لیست {categoryId} حذف شدید', +} as const; From f0a6847299f5305661dc4cc17ab036b2ea1b5864 Mon Sep 17 00:00:00 2001 From: Ali Mihandoost Date: Fri, 25 Oct 2024 15:27:24 +0330 Subject: [PATCH 50/60] refactor(notifier-api): Update notifyTelegram function to send messages to all members of a category --- .../notifier-api/src/lib/notifyTelegram.ts | 44 +++++++++---------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/packages/notifier-api/src/lib/notifyTelegram.ts b/packages/notifier-api/src/lib/notifyTelegram.ts index 22b9758a..43efe00b 100644 --- a/packages/notifier-api/src/lib/notifyTelegram.ts +++ b/packages/notifier-api/src/lib/notifyTelegram.ts @@ -1,38 +1,38 @@ -import {bot} from './bot.js'; import {config, logger} from '../config.js'; -import {escapeMessage} from './escape-message.js'; +import {bot} from './bot.js'; import {alwatrNitrobase} from './nitrobase.js'; +import type {Category, NotifyOption} from '../type.js'; import type {GrammyError} from 'grammy'; /** - * Send a message to members of `categoryId`. - * - * @param categoryId - Category(group) ID. - * @param message_ - Message to send. + * Send a message to all members of the `categoryId`. */ -export async function -sendMessageToCategory(categoryId: string, message_: string): Promise { - logger.logMethodArgs?.('sendMessageToCategory', {categoryId}); - message_ = escapeMessage(message_); - - const categoriesCollection = await alwatrNitrobase.openCollection(config.nitrobase.categoriesCollection); - const categoryData = categoriesCollection.getItemData(categoryId); - - for (const member of categoryData.memberList) { +export async function notifyTelegram(option: NotifyOption): Promise { + logger.logMethodArgs?.('notifyTelegram', option); + const categoriesCollection = await alwatrNitrobase.openCollection(config.nitrobase.categoriesCollection); + const members = categoriesCollection.getItemData(option.categoryId).members; + for (let i = members.length - 1; i >= 0; i--) { + const member = members[i]; try { - await bot.api.sendMessage(member.id, message_); + await bot.api.sendMessage(member.id, option.message, { + parse_mode: option.markdown ? 'MarkdownV2' : undefined, + }); } - catch (err) { - const err_ = err as GrammyError; - logger.error('sendMessage', 'error_send_message', err_, {chatId: member.id}); + catch (error_) { + const error = error_ as GrammyError; + logger.error('sendMessage', 'error_send_message', error, option); // Remove if blocked - if (err_.error_code === 403) { - categoryData.memberList = categoryData.memberList.filter((member_) => member_.id !== member.id); - categoriesCollection.mergeItemData(categoryId, categoryData); + if (error.error_code === 403) { + const memberIndex = members.indexOf(member); + if (memberIndex === -1) { + logger.accident?.('notifyTelegram', 'unexpected_member_not_found_to_remove', {member, members}); + } + members.splice(memberIndex, 1); categoriesCollection.save(); } } } + logger.logStep?.('notify', 'done'); } From 09a4a6dfad4567b0a427f77344784e6ede809a94 Mon Sep 17 00:00:00 2001 From: Ali Mihandoost Date: Fri, 25 Oct 2024 15:27:36 +0330 Subject: [PATCH 51/60] refactor(notifier-api): Update notifyRoute to use notifyValidation and notifyTelegram This commit updates the notifyRoute in the notifier-api package. It replaces the previous validation logic with the new notifyValidation handler and updates the message sending logic to use the notifyTelegram function. This improves the overall functionality and maintainability of the code. --- .../notifier-api/src/route/notifyRoute.ts | 75 +++---------------- 1 file changed, 9 insertions(+), 66 deletions(-) diff --git a/packages/notifier-api/src/route/notifyRoute.ts b/packages/notifier-api/src/route/notifyRoute.ts index 5d27697c..2f59c150 100644 --- a/packages/notifier-api/src/route/notifyRoute.ts +++ b/packages/notifier-api/src/route/notifyRoute.ts @@ -1,80 +1,23 @@ -import {HttpStatusCodes} from 'alwatr/nanotron'; - -import {config, logger} from '../config.js'; +import {logger} from '../config.js'; +import {notifyValidation} from '../handler/notify-validation.js'; import {parseBodyAsJson} from '../handler/parse-body-as-json.js'; -import {bot} from '../lib/bot.js'; -import {alwatrNitrobase} from '../lib/nitrobase.js'; +import {notifyTelegram} from '../lib/notifyTelegram.js'; import {nanotronApiServer} from '../lib/server.js'; -import type { GrammyError } from 'grammy'; +import type {NotifyOption} from '../type.js'; -nanotronApiServer.defineRoute<{body: JsonObject}>({ +nanotronApiServer.defineRoute<{body: NotifyOption}>({ method: 'POST', url: 'notify', - preHandlers: [parseBodyAsJson], + preHandlers: [parseBodyAsJson, notifyValidation], async handler() { - logger.logMethod?.('notify'); - - const body = this.sharedMeta.body; - - const categoryId = body.category; - if (categoryId === undefined || typeof categoryId !== 'string') { - this.serverResponse.statusCode = HttpStatusCodes.Error_Client_400_Bad_Request; - this.serverResponse.replyJson({ - ok: false, - errorCode: 'category_required', - errorMessage: 'Category is required.', - }); - return; - } - - const message = body.message; - if (message === undefined || typeof message !== 'string') { - this.serverResponse.statusCode = HttpStatusCodes.Error_Client_400_Bad_Request; - this.serverResponse.replyJson({ - ok: false, - errorCode: 'message_required', - errorMessage: 'Message is required.', - }); - return; - } + logger.logMethod?.('notifyRoute'); - const categoriesCollection = await alwatrNitrobase.openCollection(config.nitrobase.categoriesCollection); - - if (categoriesCollection.hasItem(categoryId) === false) { - this.serverResponse.statusCode = HttpStatusCodes.Error_Client_400_Bad_Request; - this.serverResponse.replyJson({ - ok: false, - errorCode: 'category_not_found', - errorMessage: 'Category not found.', - }); - return; - } + const notifyOption = this.sharedMeta.body; + notifyTelegram(notifyOption); // no need to await this.serverResponse.replyJson({ ok: true, }); - - const members = categoriesCollection.getItemData(categoryId).members; - for (let i = members.length - 1; i >= 0; i--) { - const member = members[i]; - try { - await bot.api.sendMessage(member.id, message, { - parse_mode: body.markdown === true ? 'MarkdownV2' : undefined, - }); - } - catch (error_) { - const error = error_ as GrammyError; - logger.error('sendMessage', 'error_send_message', error, {member, categoryId, message}); - - // Remove if blocked - if (error.error_code === 403) { - const memberIndex = members.findIndex((member_) => member_ === member); - members.splice(memberIndex, 1); - categoriesCollection.save(); - } - } - } }, }); - From ac3eaf9e2243e3cdc1515e6fda1eb22647ce8f3b Mon Sep 17 00:00:00 2001 From: Ali Mihandoost Date: Fri, 25 Oct 2024 15:27:46 +0330 Subject: [PATCH 52/60] refactor(notifier-api): Update config.ts to use telegramBot instead of bot --- packages/notifier-api/src/config.ts | 38 ++++++----------------------- 1 file changed, 8 insertions(+), 30 deletions(-) diff --git a/packages/notifier-api/src/config.ts b/packages/notifier-api/src/config.ts index 132c49c2..1737c3e9 100644 --- a/packages/notifier-api/src/config.ts +++ b/packages/notifier-api/src/config.ts @@ -1,8 +1,8 @@ import {createLogger, packageTracer} from 'alwatr/nanolib'; import {Region, StoreFileType, type AlwatrNitrobaseConfig, type StoreFileStat} from 'alwatr/nitrobase'; -import type {HashGeneratorConfig, NanotronApiServerConfig} from 'alwatr/nanotron'; -import type {UserFromGetMe} from 'grammy/types'; +import type {NanotronApiServerConfig} from 'alwatr/nanotron'; +import type {PollingOptions, ApiClientOptions} from 'grammy'; __dev_mode__: packageTracer.add(__package_name__, __package_version__); @@ -35,13 +35,6 @@ const env = /* #__PURE__ */ (() => { })(); export const config = { - hash: { - algorithm: 'sha1', - encoding: 'hex', - crcLength: 5, - prefix: 'ca' - } as HashGeneratorConfig, - nanotronApiServer: { host: env.host!, port: +env.port!, @@ -60,29 +53,14 @@ export const config = { } as StoreFileStat, } as const, - bot: { + telegramBot: { token: env.botToken!, - adminChatId: +env.botAdminChatId!, - - /** - * The Telegram API now supports clearing the pending messages via a - * drop_pending_updates parameter in both setWebhook and deleteWebhook - * e.g. clear all old unread messages. - */ - dropPendingUpdates: env.dropPendingUpdates === '1', - - info: { - username: env.botUsername, - can_join_groups: true, - can_read_all_group_messages: false, - first_name: env.botFirstName, - is_bot: true, - supports_inline_queries: false, - language_code: 'fa', - } as UserFromGetMe, + clientOption: {} as ApiClientOptions, + startOption: { + drop_pending_updates: true, + allowed_updates: ['message'], + } as PollingOptions, } as const, - } as const; __dev_mode__: logger.logProperty?.('config', config); - From 7ec4e0e274fd45741793181d939b9817354b17f2 Mon Sep 17 00:00:00 2001 From: Ali Mihandoost Date: Fri, 25 Oct 2024 15:27:53 +0330 Subject: [PATCH 53/60] refactor(notifier-api): Update home route to return JSON response --- packages/notifier-api/src/route/home.ts | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/packages/notifier-api/src/route/home.ts b/packages/notifier-api/src/route/home.ts index f9b3057b..f6be6c01 100644 --- a/packages/notifier-api/src/route/home.ts +++ b/packages/notifier-api/src/route/home.ts @@ -1,20 +1,16 @@ import {nanotronApiServer} from '../lib/server.js'; -/** - * GET `/` - Returns the welcome message. - * - * @returns `{app, message}` - An object with a welcome message and app name. - */ nanotronApiServer.defineRoute({ method: 'GET', url: '/', handler() { - this.serverResponse.replyJson({ - ok: true, - data: { - app: '..:: Telegram Notifier ::..', - message: 'Hello ;)', - }, - }); + this.serverResponse.headers['content-type'] = 'application/json'; + this.serverResponse.reply(`{ + "ok": true, + "data": { + "app": "..:: Telegram Notifier ::..", + "message": "Hello ;)" + } + }`); }, }); From abe117126574ae6e33f40c1fc0aa77ea7537f4a7 Mon Sep 17 00:00:00 2001 From: Ali Mihandoost Date: Fri, 25 Oct 2024 15:28:09 +0330 Subject: [PATCH 54/60] refactor(notifier-api): Update import path for config in server.ts --- packages/notifier-api/src/lib/server.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/notifier-api/src/lib/server.ts b/packages/notifier-api/src/lib/server.ts index 0900ba79..04a5ed93 100644 --- a/packages/notifier-api/src/lib/server.ts +++ b/packages/notifier-api/src/lib/server.ts @@ -1,5 +1,5 @@ import {NanotronApiServer} from 'alwatr/nanotron'; -import {config} from './config.js'; +import {config} from '../config.js'; export const nanotronApiServer = new NanotronApiServer(config.nanotronApiServer); From 5e3ef410a4300c778cd1f810ecd95240b67ca8a0 Mon Sep 17 00:00:00 2001 From: Ali Mihandoost Date: Fri, 25 Oct 2024 15:28:15 +0330 Subject: [PATCH 55/60] refactor(notifier-api): Update import path for nitrobase in nitrobase.ts --- packages/notifier-api/src/lib/nitrobase.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/notifier-api/src/lib/nitrobase.ts b/packages/notifier-api/src/lib/nitrobase.ts index 90e1a224..e38acdc6 100644 --- a/packages/notifier-api/src/lib/nitrobase.ts +++ b/packages/notifier-api/src/lib/nitrobase.ts @@ -1,5 +1,5 @@ import {AlwatrNitrobase} from 'alwatr/nitrobase'; -import {config} from './config.js'; +import {config} from '../config.js'; export const alwatrNitrobase = new AlwatrNitrobase(config.nitrobase.config); From 71d459a6b8b2a08ff26936b7bed177e64314b115 Mon Sep 17 00:00:00 2001 From: Ali Mihandoost Date: Fri, 25 Oct 2024 15:29:18 +0330 Subject: [PATCH 56/60] refactor(notifier-api): rename nitrobase --- packages/notifier-api/src/command/start-command.ts | 4 ++-- packages/notifier-api/src/handler/notify-validation.ts | 4 ++-- packages/notifier-api/src/lib/initialize-nitrobase.ts | 8 ++++---- packages/notifier-api/src/lib/nitrobase.ts | 2 +- packages/notifier-api/src/lib/notifyTelegram.ts | 4 ++-- 5 files changed, 11 insertions(+), 11 deletions(-) diff --git a/packages/notifier-api/src/command/start-command.ts b/packages/notifier-api/src/command/start-command.ts index 964d9a40..a1840d96 100644 --- a/packages/notifier-api/src/command/start-command.ts +++ b/packages/notifier-api/src/command/start-command.ts @@ -1,7 +1,7 @@ import {config, logger} from '../config.js'; import {bot} from '../lib/bot.js'; import {message} from '../lib/message.js'; -import {alwatrNitrobase} from '../lib/nitrobase.js'; +import {nitrobase} from '../lib/nitrobase.js'; import type {Category} from '../type.js'; @@ -31,7 +31,7 @@ bot.command( return; } - const categoriesCollection = await alwatrNitrobase.openCollection(config.nitrobase.categoriesCollection); + const categoriesCollection = await nitrobase.openCollection(config.nitrobase.categoriesCollection); if (categoriesCollection.hasItem(categoryId) === false) { logger.incident?.('startCommand', 'category_not_found', {categoryId, from: ctx.from, chat: ctx.chat}); diff --git a/packages/notifier-api/src/handler/notify-validation.ts b/packages/notifier-api/src/handler/notify-validation.ts index 318ff170..588916d3 100644 --- a/packages/notifier-api/src/handler/notify-validation.ts +++ b/packages/notifier-api/src/handler/notify-validation.ts @@ -1,7 +1,7 @@ import {HttpStatusCodes, type NanotronClientRequest} from 'alwatr/nanotron'; import {config, logger} from '../config.js'; -import {alwatrNitrobase} from '../lib/nitrobase.js'; +import {nitrobase} from '../lib/nitrobase.js'; import type {Category, NotifyOption} from '../type.js'; @@ -30,7 +30,7 @@ export async function notifyValidation(this: NanotronClientRequest<{body: JsonOb return; } - const categoriesCollection = await alwatrNitrobase.openCollection(config.nitrobase.categoriesCollection); + const categoriesCollection = await nitrobase.openCollection(config.nitrobase.categoriesCollection); if (categoriesCollection.hasItem(categoryId) === false) { this.serverResponse.statusCode = HttpStatusCodes.Error_Client_400_Bad_Request; diff --git a/packages/notifier-api/src/lib/initialize-nitrobase.ts b/packages/notifier-api/src/lib/initialize-nitrobase.ts index 4f834637..9f2f605b 100644 --- a/packages/notifier-api/src/lib/initialize-nitrobase.ts +++ b/packages/notifier-api/src/lib/initialize-nitrobase.ts @@ -1,8 +1,8 @@ -import {config} from './config.js'; -import {alwatrNitrobase} from './nitrobase.js'; +import {config} from '../config.js'; +import {nitrobase} from './nitrobase.js'; export function initializeNitrobase() { - if (alwatrNitrobase.hasStore(config.nitrobase.categoriesCollection) === false) { - alwatrNitrobase.newCollection(config.nitrobase.categoriesCollection); + if (nitrobase.hasStore(config.nitrobase.categoriesCollection) === false) { + nitrobase.newCollection(config.nitrobase.categoriesCollection); } } diff --git a/packages/notifier-api/src/lib/nitrobase.ts b/packages/notifier-api/src/lib/nitrobase.ts index e38acdc6..bd48a197 100644 --- a/packages/notifier-api/src/lib/nitrobase.ts +++ b/packages/notifier-api/src/lib/nitrobase.ts @@ -2,4 +2,4 @@ import {AlwatrNitrobase} from 'alwatr/nitrobase'; import {config} from '../config.js'; -export const alwatrNitrobase = new AlwatrNitrobase(config.nitrobase.config); +export const nitrobase = new AlwatrNitrobase(config.nitrobase.config); diff --git a/packages/notifier-api/src/lib/notifyTelegram.ts b/packages/notifier-api/src/lib/notifyTelegram.ts index 43efe00b..ecf94139 100644 --- a/packages/notifier-api/src/lib/notifyTelegram.ts +++ b/packages/notifier-api/src/lib/notifyTelegram.ts @@ -1,6 +1,6 @@ import {config, logger} from '../config.js'; import {bot} from './bot.js'; -import {alwatrNitrobase} from './nitrobase.js'; +import {nitrobase} from './nitrobase.js'; import type {Category, NotifyOption} from '../type.js'; import type {GrammyError} from 'grammy'; @@ -10,7 +10,7 @@ import type {GrammyError} from 'grammy'; */ export async function notifyTelegram(option: NotifyOption): Promise { logger.logMethodArgs?.('notifyTelegram', option); - const categoriesCollection = await alwatrNitrobase.openCollection(config.nitrobase.categoriesCollection); + const categoriesCollection = await nitrobase.openCollection(config.nitrobase.categoriesCollection); const members = categoriesCollection.getItemData(option.categoryId).members; for (let i = members.length - 1; i >= 0; i--) { const member = members[i]; From 9c270f7e7f8fd6629a52203c830d5c13154c6f7b Mon Sep 17 00:00:00 2001 From: Ali Mihandoost Date: Fri, 25 Oct 2024 15:29:46 +0330 Subject: [PATCH 57/60] refactor(notifier-api): Remove unused hashGenerator --- packages/notifier-api/src/lib/hash.ts | 5 ----- 1 file changed, 5 deletions(-) delete mode 100644 packages/notifier-api/src/lib/hash.ts diff --git a/packages/notifier-api/src/lib/hash.ts b/packages/notifier-api/src/lib/hash.ts deleted file mode 100644 index c25da88a..00000000 --- a/packages/notifier-api/src/lib/hash.ts +++ /dev/null @@ -1,5 +0,0 @@ -import {AlwatrHashGenerator} from 'alwatr/nanotron'; - -import {config} from './config.js'; - -export const hashGenerator = /* #__PURE__ */ new AlwatrHashGenerator(config.hash); From 5be8cfe61ea9d50664db6483c6d292a3af54dec6 Mon Sep 17 00:00:00 2001 From: Ali Mihandoost Date: Fri, 25 Oct 2024 15:29:55 +0330 Subject: [PATCH 58/60] refactor(notifier-api): Rename package to "telegram-notifier" --- packages/notifier-api/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/notifier-api/package.json b/packages/notifier-api/package.json index 3c125ef6..cbf2e517 100644 --- a/packages/notifier-api/package.json +++ b/packages/notifier-api/package.json @@ -1,5 +1,5 @@ { - "name": "@alwatr/notifier-api", + "name": "telegram-notifier", "version": "1.0.0", "description": "Alwatr Telegram Notify Microservice, Distributed simple and fast telegram notify nanoservice.", "author": "S. Ali Mihandoost ", From dd16c74fbb0f8c4267fbace820b3cf5b25b05e4f Mon Sep 17 00:00:00 2001 From: Ali Mihandoost Date: Fri, 25 Oct 2024 15:30:05 +0330 Subject: [PATCH 59/60] docs(notifier-api): Rename package to "telegram-notifier" --- packages/notifier-api/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/notifier-api/README.md b/packages/notifier-api/README.md index 854b00ae..c67149bb 100644 --- a/packages/notifier-api/README.md +++ b/packages/notifier-api/README.md @@ -1,3 +1,3 @@ -# Telegram Notify Nanoservice +# Telegram Notifier Microservice -Distributed simple and fast telegram notify nanoservice. +Distributed simple and fast telegram notify microservice. From f09d1fd78dfb9d38f55beef297ca48e521a78ae4 Mon Sep 17 00:00:00 2001 From: Ali Mihandoost Date: Fri, 25 Oct 2024 15:32:11 +0330 Subject: [PATCH 60/60] refactor(notifier-api): Refactor bot.ts and main.ts - Refactor bot.ts to extract the bot start logic into a separate function called startBot() - Update main.ts to import the startBot() function and call it to start the bot - Update import paths in main.ts to match the renamed files and directories --- packages/notifier-api/src/lib/bot.ts | 20 +++++++++++--------- packages/notifier-api/src/main.ts | 12 +++++++----- 2 files changed, 18 insertions(+), 14 deletions(-) diff --git a/packages/notifier-api/src/lib/bot.ts b/packages/notifier-api/src/lib/bot.ts index 3407443b..38bb8977 100644 --- a/packages/notifier-api/src/lib/bot.ts +++ b/packages/notifier-api/src/lib/bot.ts @@ -4,13 +4,15 @@ import {config, logger} from '../config.js'; export const bot = new Bot(config.telegramBot.token, {client: config.telegramBot.clientOption}); -bot.start({ - ...config.telegramBot.startOption, - onStart(botInfo) { - logger.logProperty?.('botInfo', botInfo); - }, -}); +export function startBot() { + bot.start({ + ...config.telegramBot.startOption, + onStart(botInfo) { + logger.logProperty?.('botInfo', botInfo); + }, + }); -bot.catch(async (error) => { - logger.error('bot.catch', 'unexpected_error', error); -}); + bot.catch(async (error) => { + logger.error('bot.catch', 'unexpected_error', error); + }); +} diff --git a/packages/notifier-api/src/main.ts b/packages/notifier-api/src/main.ts index 7b3214d7..8980c3d1 100644 --- a/packages/notifier-api/src/main.ts +++ b/packages/notifier-api/src/main.ts @@ -1,10 +1,12 @@ -import './bot/new-category-command.js'; -import './bot/start-command.js'; -import {logger} from './lib/config.js'; +import './command/start-command.js'; +import {logger} from './config.js'; +import {startBot} from './lib/bot.js'; import {initializeNitrobase} from './lib/initialize-nitrobase.js'; import './route/home.js'; -import './route/notify.js'; +import './route/notifyRoute.js'; -logger.banner('@alwatr/notifier-api'); +logger.banner(__package_name__); initializeNitrobase(); + +startBot();