From b3ade34a9dac84a2b1f0034e77a8c6cc3b900d1d Mon Sep 17 00:00:00 2001 From: ygqygq2 Date: Sun, 21 Apr 2024 23:30:15 +0800 Subject: [PATCH] feat: upgrade eslint Co-authored-by: ygqygq2 --- .eslintignore | 1 - .eslintrc.json | 22 - .vscode-test-debug.mjs | 14 + .vscode-test.mjs | 16 +- eslint.config.mjs | 29 + package.json | 60 +- pnpm-lock.yaml | 1424 ++++++++--------- sampleWorkspace/.vscode/setttings.json | 4 + sampleWorkspace/README.md | 1 + sampleWorkspace/test.code-workspace | 10 + src/commands/commentAllLogMessages.ts | 8 +- src/commands/deleteAllLogMessages.ts | 13 +- src/commands/displayLogMessage.ts | 4 +- src/commands/index.ts | 6 +- src/commands/uncommentAllLogMessages.ts | 14 +- src/commands/updateLineNumAllLogMessages.ts | 11 +- src/debug-message/DebugMessage.ts | 1 + src/debug-message/GeneralDebugMessage.ts | 45 +- src/debug-message/LanguageProcessor.ts | 7 +- src/debug-message/types.ts | 6 +- src/error/CustomErrorCode.enum.ts | 5 +- src/extension.ts | 4 +- src/test/ready.ts | 28 + src/test/runTests.ts | 29 +- src/test/suite/displayLogMessage.test.ts | 13 +- src/test/suite/index.ts | 8 +- .../commands/commentAllLogMessages.spec.ts | 5 +- .../commands/deleteAllLogMessages.spec.ts | 13 +- .../unit/commands/displayLogMessage.spec.ts | 13 +- .../commands/uncommentAllLogMessages.spec.ts | 13 +- .../updateLineNumAllLogMessages.spec.ts | 13 +- .../unit/debug-message/DebugMessage.spec.ts | 5 +- .../debug-message/GeneralDebugMessage.spec.ts | 12 +- .../debug-message/LanguageProcessor.spec.ts | 11 +- src/test/unit/utils/getTabSize.spec.ts | 3 +- .../unit/utils/instanceDebugMessage.spec.ts | 3 +- src/typings/extension/types.ts | 3 +- src/utils/checkRangeOverlapping.ts | 3 +- src/utils/closingContextLine.ts | 6 +- src/utils/getMultiLineContextVariable.ts | 8 +- src/utils/instanceDebugMessage.ts | 3 +- src/utils/spacesBeforeLine.ts | 3 +- tsconfig.suite.json | 29 + 43 files changed, 937 insertions(+), 992 deletions(-) delete mode 100644 .eslintignore delete mode 100644 .eslintrc.json create mode 100644 .vscode-test-debug.mjs create mode 100644 eslint.config.mjs create mode 100644 sampleWorkspace/.vscode/setttings.json create mode 100644 sampleWorkspace/README.md create mode 100644 sampleWorkspace/test.code-workspace create mode 100644 src/test/ready.ts create mode 100644 tsconfig.suite.json diff --git a/.eslintignore b/.eslintignore deleted file mode 100644 index 64ce8fb..0000000 --- a/.eslintignore +++ /dev/null @@ -1 +0,0 @@ -src/test/files/* \ No newline at end of file diff --git a/.eslintrc.json b/.eslintrc.json deleted file mode 100644 index 4871f3f..0000000 --- a/.eslintrc.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "env": { - "browser": false, - "es2021": true - }, - "extends": ["eslint:recommended", "plugin:@typescript-eslint/recommended", "prettier"], - "parser": "@typescript-eslint/parser", - "parserOptions": { - "ecmaVersion": "latest", - "sourceType": "module" - }, - "plugins": ["@typescript-eslint", "unused-imports"], - "rules": { - "@typescript-eslint/no-unused-vars": "off", - "no-unused-vars": "off", - "unused-imports/no-unused-imports": "error", - "unused-imports/no-unused-vars": [ - "warn", - { "vars": "all", "varsIgnorePattern": "^_", "args": "after-used", "argsIgnorePattern": "^_" } - ] - } -} diff --git a/.vscode-test-debug.mjs b/.vscode-test-debug.mjs new file mode 100644 index 0000000..7a17307 --- /dev/null +++ b/.vscode-test-debug.mjs @@ -0,0 +1,14 @@ +// .vscode-test-debug.mjs +import { defineConfig } from '@vscode/test-cli'; + +export default defineConfig([ + { + label: 'suiteTests', + files: 'out/test/suite/*.test.js', + version: '1.88.0', + mocha: { + ui: 'bdd', + require: ['ts-node/register', 'tsconfig-paths/register'], + } + }, +]); diff --git a/.vscode-test.mjs b/.vscode-test.mjs index 1153ac8..e2b83cb 100644 --- a/.vscode-test.mjs +++ b/.vscode-test.mjs @@ -1,16 +1,24 @@ // .vscode-test.mjs import { defineConfig } from '@vscode/test-cli'; +import path from 'path'; -// suiteTests 使用 vscode-test 测试,当前无法直接支持 ts,它需要编译成js -// unitTests 直接使用 mocha 测试,直接使用 ts +const workspacePath = path.resolve('sampleWorkspace', 'test.code-workspace'); + +// suiteTests 使用 vscode-test/mocha 测试,当前无法直接支持 ts,它需要编译成js +// unitTests 使用 vitest 测试,直接使用 ts export default defineConfig([ { label: 'suiteTests', files: 'out/test/suite/*.test.js', + version: '1.88.0', mocha: { - ui: 'tdd', - timeout: 20000, + ui: 'bdd', require: ['ts-node/register', 'tsconfig-paths/register'], }, + launchArgs: [workspacePath] + .concat(['--skip-welcome']) + .concat(['--disable-extensions']) + .concat(['--skip-release-notes']) + .concat(['--enable-proposed-api']), }, ]); diff --git a/eslint.config.mjs b/eslint.config.mjs new file mode 100644 index 0000000..7f814af --- /dev/null +++ b/eslint.config.mjs @@ -0,0 +1,29 @@ +import eslint from '@eslint/js'; +import eslintPluginPrettierRecommended from 'eslint-plugin-prettier/recommended'; +import simpleImportSortPlugin from 'eslint-plugin-simple-import-sort'; +import tseslint from 'typescript-eslint'; + +export default tseslint.config( + { + files: ['**/*.ts'], + plugins:{ + ['simple-import-sort']: simpleImportSortPlugin, + } + }, + { ignores: ['sampleWorkspace', 'out', 'dist', '**/*.d.ts'] }, + eslint.configs.recommended, + ...tseslint.configs.recommended, + eslintPluginPrettierRecommended, + { + rules: { + '@typescript-eslint/no-unused-vars': [ + 'warn', + { varsIgnorePattern: '^_', argsIgnorePattern: '^_' }, + ], + '@typescript-eslint/no-explicit-any': 'warn', + 'simple-import-sort/imports': 'warn', + 'simple-import-sort/exports': 'warn', + 'prettier/prettier': 'warn' + }, + }, +); diff --git a/package.json b/package.json index ba4f5ee..715331a 100644 --- a/package.json +++ b/package.json @@ -141,54 +141,68 @@ ] }, "scripts": { - "vscode:prepublish": "rm -rf out && npm run esbuild-base -- --minify", + "vscode:prepublish": "npm run clean && npm run esbuild-base -- --minify", "esbuild-base": "esbuild ./src/extension.ts --bundle --outfile=out/extension.js --external:vscode --format=cjs --platform=node", "esbuild": "npm run esbuild-base -- --sourcemap", "esbuild-watch": "npm run esbuild-base -- --sourcemap --watch", "watch": "npm run esbuild --watch", "pretest": "npm run compile && npm run lint", - "lint": "eslint src --ext ts --fix", + "lint": "eslint src ", + "lint-fix": "eslint --fix src", "compile": "npm run esbuild-base -- --sourcemap", "package": "vsce package --no-dependencies", "publish": "vsce publish --no-dependencies", - "test": "tsc -p ./ && vscode-test", + "clean": "rimraf out/", + "test-compile": "npm run clean && tsc -p ./ && npm run compile", + "test": "npm run test-compile && vscode-test", + "test-grep": "vscode-test -f", "test:suite:mocha": "tsc -p ./ && node out/test/runTests.js", "test:suite": "vitest suite --watch=false", "test:unit": "vitest unit --watch=false", - "test:coverage": "vitest run --coverage" + "test:coverage": "vitest run --coverage", + "prepush": "pnpm run lint", + "postinstall": "simple-git-hooks", + "preinstall": "npx only-allow pnpm" }, "devDependencies": { - "@types/chai": "^4.3.11", + "@eslint/js": "^9.1.1", + "@types/chai": "^4.3.14", + "@types/fs-extra": "^11.0.4", "@types/glob": "^8.1.0", - "@types/lodash": "^4.14.202", + "@types/lodash": "^4.17.0", "@types/mocha": "^10.0.6", - "@types/node": "^20.11.13", + "@types/node": "^20.12.7", "@types/sinon": "^17.0.3", + "@types/tmp": "^0.2.6", "@types/vscode": "^1.85.0", - "@typescript-eslint/eslint-plugin": "^6.20.0", - "@typescript-eslint/parser": "^6.20.0", - "@vitest/coverage-v8": "^1.2.2", - "@vscode/test-cli": "^0.0.4", + "@typescript-eslint/eslint-plugin": "^7.7.0", + "@typescript-eslint/parser": "^7.7.0", + "@vitest/coverage-v8": "^1.5.0", + "@vscode/test-cli": "^0.0.9", "@vscode/test-electron": "^2.3.9", - "chai": "^5.0.3", + "chai": "^5.1.0", "cross-env": "^7.0.3", - "esbuild": "^0.20.0", - "eslint": "^8.56.0", + "esbuild": "^0.20.2", + "eslint": "^9.1.0", "eslint-config-prettier": "^9.1.0", "eslint-plugin-prettier": "^5.1.3", - "eslint-plugin-unused-imports": "^3.0.0", - "expect-type": "^0.17.3", - "glob": "^10.3.10", - "jest-mock-vscode": "^2.1.1", + "eslint-plugin-simple-import-sort": "^12.1.0", + "expect-type": "^0.19.0", + "fs-extra": "^11.2.0", + "glob": "^10.3.12", + "jest-mock-vscode": "^3.0.2", "lodash": "^4.17.21", - "mocha": "^10.2.0", - "prettier": "^3.2.4", + "mocha": "^10.4.0", + "prettier": "^3.2.5", + "rimraf": "^5.0.5", "sinon": "^17.0.1", + "tmp": "^0.2.3", "ts-node": "^10.9.2", "tsconfig-paths": "^4.2.0", - "typescript": "^5.3.3", - "vite": "^5.0.13", - "vitest": "^1.2.2" + "typescript": "^5.4.5", + "typescript-eslint": "^7.7.0", + "vite": "^5.2.10", + "vitest": "^1.5.0" }, "license": "SEE LICENSE IN LICENSE.txt", "bugs": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e0f078c..fc2e5a7 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -10,99 +10,120 @@ dependencies: version: 0.0.3 devDependencies: + '@eslint/js': + specifier: ^9.1.1 + version: 9.1.1 '@types/chai': - specifier: ^4.3.11 - version: 4.3.11 + specifier: ^4.3.14 + version: 4.3.14 + '@types/fs-extra': + specifier: ^11.0.4 + version: 11.0.4 '@types/glob': specifier: ^8.1.0 version: 8.1.0 '@types/lodash': - specifier: ^4.14.202 - version: 4.14.202 + specifier: ^4.17.0 + version: 4.17.0 '@types/mocha': specifier: ^10.0.6 version: 10.0.6 '@types/node': - specifier: ^20.11.13 - version: 20.11.13 + specifier: ^20.12.7 + version: 20.12.7 '@types/sinon': specifier: ^17.0.3 version: 17.0.3 + '@types/tmp': + specifier: ^0.2.6 + version: 0.2.6 '@types/vscode': specifier: ^1.85.0 - version: 1.85.0 + version: 1.88.0 '@typescript-eslint/eslint-plugin': - specifier: ^6.20.0 - version: 6.20.0(@typescript-eslint/parser@6.20.0)(eslint@8.56.0)(typescript@5.3.3) + specifier: ^7.7.0 + version: 7.7.0(@typescript-eslint/parser@7.7.0)(eslint@9.1.0)(typescript@5.4.5) '@typescript-eslint/parser': - specifier: ^6.20.0 - version: 6.20.0(eslint@8.56.0)(typescript@5.3.3) + specifier: ^7.7.0 + version: 7.7.0(eslint@9.1.0)(typescript@5.4.5) '@vitest/coverage-v8': - specifier: ^1.2.2 - version: 1.2.2(vitest@1.2.2) + specifier: ^1.5.0 + version: 1.5.0(vitest@1.5.0) '@vscode/test-cli': - specifier: ^0.0.4 - version: 0.0.4 + specifier: ^0.0.9 + version: 0.0.9 '@vscode/test-electron': specifier: ^2.3.9 version: 2.3.9 chai: - specifier: ^5.0.3 - version: 5.0.3 + specifier: ^5.1.0 + version: 5.1.0 cross-env: specifier: ^7.0.3 version: 7.0.3 esbuild: - specifier: ^0.20.0 - version: 0.20.0 + specifier: ^0.20.2 + version: 0.20.2 eslint: - specifier: ^8.56.0 - version: 8.56.0 + specifier: ^9.1.0 + version: 9.1.0 eslint-config-prettier: specifier: ^9.1.0 - version: 9.1.0(eslint@8.56.0) + version: 9.1.0(eslint@9.1.0) eslint-plugin-prettier: specifier: ^5.1.3 - version: 5.1.3(eslint-config-prettier@9.1.0)(eslint@8.56.0)(prettier@3.2.4) - eslint-plugin-unused-imports: - specifier: ^3.0.0 - version: 3.0.0(@typescript-eslint/eslint-plugin@6.20.0)(eslint@8.56.0) + version: 5.1.3(eslint-config-prettier@9.1.0)(eslint@9.1.0)(prettier@3.2.5) + eslint-plugin-simple-import-sort: + specifier: ^12.1.0 + version: 12.1.0(eslint@9.1.0) expect-type: - specifier: ^0.17.3 - version: 0.17.3 + specifier: ^0.19.0 + version: 0.19.0 + fs-extra: + specifier: ^11.2.0 + version: 11.2.0 glob: - specifier: ^10.3.10 - version: 10.3.10 + specifier: ^10.3.12 + version: 10.3.12 jest-mock-vscode: - specifier: ^2.1.1 - version: 2.1.1 + specifier: ^3.0.2 + version: 3.0.2 lodash: specifier: ^4.17.21 version: 4.17.21 mocha: - specifier: ^10.2.0 - version: 10.2.0 + specifier: ^10.4.0 + version: 10.4.0 prettier: - specifier: ^3.2.4 - version: 3.2.4 + specifier: ^3.2.5 + version: 3.2.5 + rimraf: + specifier: ^5.0.5 + version: 5.0.5 sinon: specifier: ^17.0.1 version: 17.0.1 + tmp: + specifier: ^0.2.3 + version: 0.2.3 ts-node: specifier: ^10.9.2 - version: 10.9.2(@types/node@20.11.13)(typescript@5.3.3) + version: 10.9.2(@types/node@20.12.7)(typescript@5.4.5) tsconfig-paths: specifier: ^4.2.0 version: 4.2.0 typescript: - specifier: ^5.3.3 - version: 5.3.3 + specifier: ^5.4.5 + version: 5.4.5 + typescript-eslint: + specifier: ^7.7.0 + version: 7.7.0(eslint@9.1.0)(typescript@5.4.5) vite: - specifier: ^5.0.13 - version: 5.0.13(@types/node@20.11.13) + specifier: ^5.2.10 + version: 5.2.10(@types/node@20.12.7) vitest: - specifier: ^1.2.2 - version: 1.2.2(@types/node@20.11.13) + specifier: ^1.5.0 + version: 1.5.0(@types/node@20.12.7) packages: @@ -111,16 +132,16 @@ packages: engines: {node: '>=0.10.0'} dev: true - /@ampproject/remapping@2.2.1: - resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==} + /@ampproject/remapping@2.3.0: + resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} dependencies: - '@jridgewell/gen-mapping': 0.3.3 - '@jridgewell/trace-mapping': 0.3.9 + '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/trace-mapping': 0.3.25 dev: true - /@babel/helper-string-parser@7.23.4: - resolution: {integrity: sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==} + /@babel/helper-string-parser@7.24.1: + resolution: {integrity: sha512-2ofRCjnnA9y+wk8b9IAREroeUP02KHp431N2mhKniy2yKIDKpbrHv9eXwm8cBeWQYcJmzv5qKCu65P47eCF7CQ==} engines: {node: '>=6.9.0'} dev: true @@ -129,19 +150,19 @@ packages: engines: {node: '>=6.9.0'} dev: true - /@babel/parser@7.23.9: - resolution: {integrity: sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA==} + /@babel/parser@7.24.4: + resolution: {integrity: sha512-zTvEBcghmeBma9QIGunWevvBAp4/Qu9Bdq+2k0Ot4fVMD6v3dsC9WOcRSKk7tRRyBM/53yKMJko9xOatGQAwSg==} engines: {node: '>=6.0.0'} hasBin: true dependencies: - '@babel/types': 7.23.9 + '@babel/types': 7.24.0 dev: true - /@babel/types@7.23.9: - resolution: {integrity: sha512-dQjSq/7HaSjRM43FFGnv5keM2HsxpmyV1PfaSVm0nzzjwwTmjOe6J4bC8e3+pTEIgHaHj+1ZlLThRJ2auc/w1Q==} + /@babel/types@7.24.0: + resolution: {integrity: sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==} engines: {node: '>=6.9.0'} dependencies: - '@babel/helper-string-parser': 7.23.4 + '@babel/helper-string-parser': 7.24.1 '@babel/helper-validator-identifier': 7.22.20 to-fast-properties: 2.0.0 dev: true @@ -157,17 +178,8 @@ packages: '@jridgewell/trace-mapping': 0.3.9 dev: true - /@esbuild/aix-ppc64@0.19.12: - resolution: {integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [aix] - requiresBuild: true - dev: true - optional: true - - /@esbuild/aix-ppc64@0.20.0: - resolution: {integrity: sha512-fGFDEctNh0CcSwsiRPxiaqX0P5rq+AqE0SRhYGZ4PX46Lg1FNR6oCxJghf8YgY0WQEgQuh3lErUFE4KxLeRmmw==} + /@esbuild/aix-ppc64@0.20.2: + resolution: {integrity: sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==} engines: {node: '>=12'} cpu: [ppc64] os: [aix] @@ -175,17 +187,8 @@ packages: dev: true optional: true - /@esbuild/android-arm64@0.19.12: - resolution: {integrity: sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA==} - engines: {node: '>=12'} - cpu: [arm64] - os: [android] - requiresBuild: true - dev: true - optional: true - - /@esbuild/android-arm64@0.20.0: - resolution: {integrity: sha512-aVpnM4lURNkp0D3qPoAzSG92VXStYmoVPOgXveAUoQBWRSuQzt51yvSju29J6AHPmwY1BjH49uR29oyfH1ra8Q==} + /@esbuild/android-arm64@0.20.2: + resolution: {integrity: sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==} engines: {node: '>=12'} cpu: [arm64] os: [android] @@ -193,8 +196,8 @@ packages: dev: true optional: true - /@esbuild/android-arm@0.19.12: - resolution: {integrity: sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w==} + /@esbuild/android-arm@0.20.2: + resolution: {integrity: sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==} engines: {node: '>=12'} cpu: [arm] os: [android] @@ -202,26 +205,8 @@ packages: dev: true optional: true - /@esbuild/android-arm@0.20.0: - resolution: {integrity: sha512-3bMAfInvByLHfJwYPJRlpTeaQA75n8C/QKpEaiS4HrFWFiJlNI0vzq/zCjBrhAYcPyVPG7Eo9dMrcQXuqmNk5g==} - engines: {node: '>=12'} - cpu: [arm] - os: [android] - requiresBuild: true - dev: true - optional: true - - /@esbuild/android-x64@0.19.12: - resolution: {integrity: sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew==} - engines: {node: '>=12'} - cpu: [x64] - os: [android] - requiresBuild: true - dev: true - optional: true - - /@esbuild/android-x64@0.20.0: - resolution: {integrity: sha512-uK7wAnlRvjkCPzh8jJ+QejFyrP8ObKuR5cBIsQZ+qbMunwR8sbd8krmMbxTLSrDhiPZaJYKQAU5Y3iMDcZPhyQ==} + /@esbuild/android-x64@0.20.2: + resolution: {integrity: sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==} engines: {node: '>=12'} cpu: [x64] os: [android] @@ -229,8 +214,8 @@ packages: dev: true optional: true - /@esbuild/darwin-arm64@0.19.12: - resolution: {integrity: sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g==} + /@esbuild/darwin-arm64@0.20.2: + resolution: {integrity: sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==} engines: {node: '>=12'} cpu: [arm64] os: [darwin] @@ -238,17 +223,8 @@ packages: dev: true optional: true - /@esbuild/darwin-arm64@0.20.0: - resolution: {integrity: sha512-AjEcivGAlPs3UAcJedMa9qYg9eSfU6FnGHJjT8s346HSKkrcWlYezGE8VaO2xKfvvlZkgAhyvl06OJOxiMgOYQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /@esbuild/darwin-x64@0.19.12: - resolution: {integrity: sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A==} + /@esbuild/darwin-x64@0.20.2: + resolution: {integrity: sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==} engines: {node: '>=12'} cpu: [x64] os: [darwin] @@ -256,17 +232,8 @@ packages: dev: true optional: true - /@esbuild/darwin-x64@0.20.0: - resolution: {integrity: sha512-bsgTPoyYDnPv8ER0HqnJggXK6RyFy4PH4rtsId0V7Efa90u2+EifxytE9pZnsDgExgkARy24WUQGv9irVbTvIw==} - engines: {node: '>=12'} - cpu: [x64] - os: [darwin] - requiresBuild: true - dev: true - optional: true - - /@esbuild/freebsd-arm64@0.19.12: - resolution: {integrity: sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA==} + /@esbuild/freebsd-arm64@0.20.2: + resolution: {integrity: sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==} engines: {node: '>=12'} cpu: [arm64] os: [freebsd] @@ -274,26 +241,8 @@ packages: dev: true optional: true - /@esbuild/freebsd-arm64@0.20.0: - resolution: {integrity: sha512-kQ7jYdlKS335mpGbMW5tEe3IrQFIok9r84EM3PXB8qBFJPSc6dpWfrtsC/y1pyrz82xfUIn5ZrnSHQQsd6jebQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - - /@esbuild/freebsd-x64@0.19.12: - resolution: {integrity: sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg==} - engines: {node: '>=12'} - cpu: [x64] - os: [freebsd] - requiresBuild: true - dev: true - optional: true - - /@esbuild/freebsd-x64@0.20.0: - resolution: {integrity: sha512-uG8B0WSepMRsBNVXAQcHf9+Ko/Tr+XqmK7Ptel9HVmnykupXdS4J7ovSQUIi0tQGIndhbqWLaIL/qO/cWhXKyQ==} + /@esbuild/freebsd-x64@0.20.2: + resolution: {integrity: sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==} engines: {node: '>=12'} cpu: [x64] os: [freebsd] @@ -301,8 +250,8 @@ packages: dev: true optional: true - /@esbuild/linux-arm64@0.19.12: - resolution: {integrity: sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA==} + /@esbuild/linux-arm64@0.20.2: + resolution: {integrity: sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==} engines: {node: '>=12'} cpu: [arm64] os: [linux] @@ -310,17 +259,8 @@ packages: dev: true optional: true - /@esbuild/linux-arm64@0.20.0: - resolution: {integrity: sha512-uTtyYAP5veqi2z9b6Gr0NUoNv9F/rOzI8tOD5jKcCvRUn7T60Bb+42NDBCWNhMjkQzI0qqwXkQGo1SY41G52nw==} - engines: {node: '>=12'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-arm@0.19.12: - resolution: {integrity: sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w==} + /@esbuild/linux-arm@0.20.2: + resolution: {integrity: sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==} engines: {node: '>=12'} cpu: [arm] os: [linux] @@ -328,17 +268,8 @@ packages: dev: true optional: true - /@esbuild/linux-arm@0.20.0: - resolution: {integrity: sha512-2ezuhdiZw8vuHf1HKSf4TIk80naTbP9At7sOqZmdVwvvMyuoDiZB49YZKLsLOfKIr77+I40dWpHVeY5JHpIEIg==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-ia32@0.19.12: - resolution: {integrity: sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA==} + /@esbuild/linux-ia32@0.20.2: + resolution: {integrity: sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==} engines: {node: '>=12'} cpu: [ia32] os: [linux] @@ -346,26 +277,8 @@ packages: dev: true optional: true - /@esbuild/linux-ia32@0.20.0: - resolution: {integrity: sha512-c88wwtfs8tTffPaoJ+SQn3y+lKtgTzyjkD8NgsyCtCmtoIC8RDL7PrJU05an/e9VuAke6eJqGkoMhJK1RY6z4w==} - engines: {node: '>=12'} - cpu: [ia32] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-loong64@0.19.12: - resolution: {integrity: sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA==} - engines: {node: '>=12'} - cpu: [loong64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-loong64@0.20.0: - resolution: {integrity: sha512-lR2rr/128/6svngnVta6JN4gxSXle/yZEZL3o4XZ6esOqhyR4wsKyfu6qXAL04S4S5CgGfG+GYZnjFd4YiG3Aw==} + /@esbuild/linux-loong64@0.20.2: + resolution: {integrity: sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==} engines: {node: '>=12'} cpu: [loong64] os: [linux] @@ -373,8 +286,8 @@ packages: dev: true optional: true - /@esbuild/linux-mips64el@0.19.12: - resolution: {integrity: sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w==} + /@esbuild/linux-mips64el@0.20.2: + resolution: {integrity: sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==} engines: {node: '>=12'} cpu: [mips64el] os: [linux] @@ -382,26 +295,8 @@ packages: dev: true optional: true - /@esbuild/linux-mips64el@0.20.0: - resolution: {integrity: sha512-9Sycc+1uUsDnJCelDf6ZNqgZQoK1mJvFtqf2MUz4ujTxGhvCWw+4chYfDLPepMEvVL9PDwn6HrXad5yOrNzIsQ==} - engines: {node: '>=12'} - cpu: [mips64el] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-ppc64@0.19.12: - resolution: {integrity: sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg==} - engines: {node: '>=12'} - cpu: [ppc64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-ppc64@0.20.0: - resolution: {integrity: sha512-CoWSaaAXOZd+CjbUTdXIJE/t7Oz+4g90A3VBCHLbfuc5yUQU/nFDLOzQsN0cdxgXd97lYW/psIIBdjzQIwTBGw==} + /@esbuild/linux-ppc64@0.20.2: + resolution: {integrity: sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==} engines: {node: '>=12'} cpu: [ppc64] os: [linux] @@ -409,8 +304,8 @@ packages: dev: true optional: true - /@esbuild/linux-riscv64@0.19.12: - resolution: {integrity: sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg==} + /@esbuild/linux-riscv64@0.20.2: + resolution: {integrity: sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==} engines: {node: '>=12'} cpu: [riscv64] os: [linux] @@ -418,17 +313,8 @@ packages: dev: true optional: true - /@esbuild/linux-riscv64@0.20.0: - resolution: {integrity: sha512-mlb1hg/eYRJUpv8h/x+4ShgoNLL8wgZ64SUr26KwglTYnwAWjkhR2GpoKftDbPOCnodA9t4Y/b68H4J9XmmPzA==} - engines: {node: '>=12'} - cpu: [riscv64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-s390x@0.19.12: - resolution: {integrity: sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg==} + /@esbuild/linux-s390x@0.20.2: + resolution: {integrity: sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==} engines: {node: '>=12'} cpu: [s390x] os: [linux] @@ -436,26 +322,8 @@ packages: dev: true optional: true - /@esbuild/linux-s390x@0.20.0: - resolution: {integrity: sha512-fgf9ubb53xSnOBqyvWEY6ukBNRl1mVX1srPNu06B6mNsNK20JfH6xV6jECzrQ69/VMiTLvHMicQR/PgTOgqJUQ==} - engines: {node: '>=12'} - cpu: [s390x] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-x64@0.19.12: - resolution: {integrity: sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg==} - engines: {node: '>=12'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@esbuild/linux-x64@0.20.0: - resolution: {integrity: sha512-H9Eu6MGse++204XZcYsse1yFHmRXEWgadk2N58O/xd50P9EvFMLJTQLg+lB4E1cF2xhLZU5luSWtGTb0l9UeSg==} + /@esbuild/linux-x64@0.20.2: + resolution: {integrity: sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==} engines: {node: '>=12'} cpu: [x64] os: [linux] @@ -463,8 +331,8 @@ packages: dev: true optional: true - /@esbuild/netbsd-x64@0.19.12: - resolution: {integrity: sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA==} + /@esbuild/netbsd-x64@0.20.2: + resolution: {integrity: sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==} engines: {node: '>=12'} cpu: [x64] os: [netbsd] @@ -472,26 +340,8 @@ packages: dev: true optional: true - /@esbuild/netbsd-x64@0.20.0: - resolution: {integrity: sha512-lCT675rTN1v8Fo+RGrE5KjSnfY0x9Og4RN7t7lVrN3vMSjy34/+3na0q7RIfWDAj0e0rCh0OL+P88lu3Rt21MQ==} - engines: {node: '>=12'} - cpu: [x64] - os: [netbsd] - requiresBuild: true - dev: true - optional: true - - /@esbuild/openbsd-x64@0.19.12: - resolution: {integrity: sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw==} - engines: {node: '>=12'} - cpu: [x64] - os: [openbsd] - requiresBuild: true - dev: true - optional: true - - /@esbuild/openbsd-x64@0.20.0: - resolution: {integrity: sha512-HKoUGXz/TOVXKQ+67NhxyHv+aDSZf44QpWLa3I1lLvAwGq8x1k0T+e2HHSRvxWhfJrFxaaqre1+YyzQ99KixoA==} + /@esbuild/openbsd-x64@0.20.2: + resolution: {integrity: sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==} engines: {node: '>=12'} cpu: [x64] os: [openbsd] @@ -499,17 +349,8 @@ packages: dev: true optional: true - /@esbuild/sunos-x64@0.19.12: - resolution: {integrity: sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA==} - engines: {node: '>=12'} - cpu: [x64] - os: [sunos] - requiresBuild: true - dev: true - optional: true - - /@esbuild/sunos-x64@0.20.0: - resolution: {integrity: sha512-GDwAqgHQm1mVoPppGsoq4WJwT3vhnz/2N62CzhvApFD1eJyTroob30FPpOZabN+FgCjhG+AgcZyOPIkR8dfD7g==} + /@esbuild/sunos-x64@0.20.2: + resolution: {integrity: sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==} engines: {node: '>=12'} cpu: [x64] os: [sunos] @@ -517,8 +358,8 @@ packages: dev: true optional: true - /@esbuild/win32-arm64@0.19.12: - resolution: {integrity: sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A==} + /@esbuild/win32-arm64@0.20.2: + resolution: {integrity: sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==} engines: {node: '>=12'} cpu: [arm64] os: [win32] @@ -526,17 +367,8 @@ packages: dev: true optional: true - /@esbuild/win32-arm64@0.20.0: - resolution: {integrity: sha512-0vYsP8aC4TvMlOQYozoksiaxjlvUcQrac+muDqj1Fxy6jh9l9CZJzj7zmh8JGfiV49cYLTorFLxg7593pGldwQ==} - engines: {node: '>=12'} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@esbuild/win32-ia32@0.19.12: - resolution: {integrity: sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ==} + /@esbuild/win32-ia32@0.20.2: + resolution: {integrity: sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==} engines: {node: '>=12'} cpu: [ia32] os: [win32] @@ -544,26 +376,8 @@ packages: dev: true optional: true - /@esbuild/win32-ia32@0.20.0: - resolution: {integrity: sha512-p98u4rIgfh4gdpV00IqknBD5pC84LCub+4a3MO+zjqvU5MVXOc3hqR2UgT2jI2nh3h8s9EQxmOsVI3tyzv1iFg==} - engines: {node: '>=12'} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@esbuild/win32-x64@0.19.12: - resolution: {integrity: sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA==} - engines: {node: '>=12'} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@esbuild/win32-x64@0.20.0: - resolution: {integrity: sha512-NgJnesu1RtWihtTtXGFMU5YSE6JyyHPMxCwBZK7a6/8d31GuSo9l0Ss7w1Jw5QnKUawG6UEehs883kcXf5fYwg==} + /@esbuild/win32-x64@0.20.2: + resolution: {integrity: sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==} engines: {node: '>=12'} cpu: [x64] os: [win32] @@ -571,13 +385,13 @@ packages: dev: true optional: true - /@eslint-community/eslint-utils@4.4.0(eslint@8.56.0): + /@eslint-community/eslint-utils@4.4.0(eslint@9.1.0): resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 dependencies: - eslint: 8.56.0 + eslint: 9.1.0 eslint-visitor-keys: 3.4.3 dev: true @@ -586,15 +400,15 @@ packages: engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} dev: true - /@eslint/eslintrc@2.1.4: - resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /@eslint/eslintrc@3.0.2: + resolution: {integrity: sha512-wV19ZEGEMAC1eHgrS7UQPqsdEiCIbTKTasEfcXAigzoXICcqZSjBZEHlZwNVvKg6UBCjSlos84XiLqsRJnIcIg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} dependencies: ajv: 6.12.6 debug: 4.3.4(supports-color@8.1.1) - espree: 9.6.1 - globals: 13.24.0 - ignore: 5.3.0 + espree: 10.0.1 + globals: 14.0.0 + ignore: 5.3.1 import-fresh: 3.3.0 js-yaml: 4.1.0 minimatch: 3.1.2 @@ -603,16 +417,16 @@ packages: - supports-color dev: true - /@eslint/js@8.56.0: - resolution: {integrity: sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /@eslint/js@9.1.1: + resolution: {integrity: sha512-5WoDz3Y19Bg2BnErkZTp0en+c/i9PvgFS7MBe1+m60HjFr0hrphlAGp4yzI7pxpt4xShln4ZyYp4neJm8hmOkQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} dev: true - /@humanwhocodes/config-array@0.11.14: - resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} + /@humanwhocodes/config-array@0.13.0: + resolution: {integrity: sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==} engines: {node: '>=10.10.0'} dependencies: - '@humanwhocodes/object-schema': 2.0.2 + '@humanwhocodes/object-schema': 2.0.3 debug: 4.3.4(supports-color@8.1.1) minimatch: 3.1.2 transitivePeerDependencies: @@ -624,8 +438,13 @@ packages: engines: {node: '>=12.22'} dev: true - /@humanwhocodes/object-schema@2.0.2: - resolution: {integrity: sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==} + /@humanwhocodes/object-schema@2.0.3: + resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} + dev: true + + /@humanwhocodes/retry@0.2.3: + resolution: {integrity: sha512-X38nUbachlb01YMlvPFojKoiXq+LzZvuSce70KPMPdeM1Rj03k4dR7lDslhbqXn3Ang4EU3+EAmwEAsbrjHW3g==} + engines: {node: '>=18.18'} dev: true /@isaacs/cliui@8.0.2: @@ -652,22 +471,22 @@ packages: '@sinclair/typebox': 0.27.8 dev: true - /@jridgewell/gen-mapping@0.3.3: - resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==} + /@jridgewell/gen-mapping@0.3.5: + resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} engines: {node: '>=6.0.0'} dependencies: - '@jridgewell/set-array': 1.1.2 + '@jridgewell/set-array': 1.2.1 '@jridgewell/sourcemap-codec': 1.4.15 - '@jridgewell/trace-mapping': 0.3.9 + '@jridgewell/trace-mapping': 0.3.25 dev: true - /@jridgewell/resolve-uri@3.1.1: - resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} + /@jridgewell/resolve-uri@3.1.2: + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} engines: {node: '>=6.0.0'} dev: true - /@jridgewell/set-array@1.1.2: - resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} + /@jridgewell/set-array@1.2.1: + resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} engines: {node: '>=6.0.0'} dev: true @@ -675,17 +494,17 @@ packages: resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} dev: true - /@jridgewell/trace-mapping@0.3.22: - resolution: {integrity: sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw==} + /@jridgewell/trace-mapping@0.3.25: + resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} dependencies: - '@jridgewell/resolve-uri': 3.1.1 + '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.4.15 dev: true /@jridgewell/trace-mapping@0.3.9: resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} dependencies: - '@jridgewell/resolve-uri': 3.1.1 + '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.4.15 dev: true @@ -707,7 +526,7 @@ packages: engines: {node: '>= 8'} dependencies: '@nodelib/fs.scandir': 2.1.5 - fastq: 1.17.0 + fastq: 1.17.1 dev: true /@pkgjs/parseargs@0.11.0: @@ -722,104 +541,128 @@ packages: engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} dev: true - /@rollup/rollup-android-arm-eabi@4.9.6: - resolution: {integrity: sha512-MVNXSSYN6QXOulbHpLMKYi60ppyO13W9my1qogeiAqtjb2yR4LSmfU2+POvDkLzhjYLXz9Rf9+9a3zFHW1Lecg==} + /@rollup/rollup-android-arm-eabi@4.16.0: + resolution: {integrity: sha512-4fDVBAfWYlw2CtYgHEWarAYSozTx5OYLsSM/cdGW7H51FwI10DaGnjKgdqWyWXY/VjugelzriCiKf1UdM20Bxg==} cpu: [arm] os: [android] requiresBuild: true dev: true optional: true - /@rollup/rollup-android-arm64@4.9.6: - resolution: {integrity: sha512-T14aNLpqJ5wzKNf5jEDpv5zgyIqcpn1MlwCrUXLrwoADr2RkWA0vOWP4XxbO9aiO3dvMCQICZdKeDrFl7UMClw==} + /@rollup/rollup-android-arm64@4.16.0: + resolution: {integrity: sha512-JltUBgsKgN108NO4/hj0B/dJYNrqqmdRCtUet5tFDi/w+0tvQP0FToyWBV4HKBcSX4cvFChrCyt5Rh4FX6M6QQ==} cpu: [arm64] os: [android] requiresBuild: true dev: true optional: true - /@rollup/rollup-darwin-arm64@4.9.6: - resolution: {integrity: sha512-CqNNAyhRkTbo8VVZ5R85X73H3R5NX9ONnKbXuHisGWC0qRbTTxnF1U4V9NafzJbgGM0sHZpdO83pLPzq8uOZFw==} + /@rollup/rollup-darwin-arm64@4.16.0: + resolution: {integrity: sha512-UwF7tkWf0roggMRv7Vrkof7VgX9tEZIc4vbaQl0/HNX3loWlcum+0ODp1Qsd8s7XvQGT+Zboxx1qxav3vq8YDw==} cpu: [arm64] os: [darwin] requiresBuild: true dev: true optional: true - /@rollup/rollup-darwin-x64@4.9.6: - resolution: {integrity: sha512-zRDtdJuRvA1dc9Mp6BWYqAsU5oeLixdfUvkTHuiYOHwqYuQ4YgSmi6+/lPvSsqc/I0Omw3DdICx4Tfacdzmhog==} + /@rollup/rollup-darwin-x64@4.16.0: + resolution: {integrity: sha512-RIY42wn6+Yb0qD29T7Dvm9/AhxrkGDf7X5dgI6rUFXR19+vCLh3u45yLcKOayu2ZQEba9rf/+BX3EggVwckiIw==} cpu: [x64] os: [darwin] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-arm-gnueabihf@4.9.6: - resolution: {integrity: sha512-oNk8YXDDnNyG4qlNb6is1ojTOGL/tRhbbKeE/YuccItzerEZT68Z9gHrY3ROh7axDc974+zYAPxK5SH0j/G+QQ==} + /@rollup/rollup-linux-arm-gnueabihf@4.16.0: + resolution: {integrity: sha512-r2TGCIKzqk8VwjOvW7sveledh6aPao131ejUfZNIyFlWBCruF4HOu51KtLArDa7LL6qKd0vkgxGX3/2NmYpWig==} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-arm-musleabihf@4.16.0: + resolution: {integrity: sha512-/QwaDp0RXQTtm25wQFSl02zEm9oveRXr9qAHbdxWCm9YG9dR8esqpyqzS/3GgHDm7jHktPNz9gTENfoUKRCcXQ==} cpu: [arm] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-arm64-gnu@4.9.6: - resolution: {integrity: sha512-Z3O60yxPtuCYobrtzjo0wlmvDdx2qZfeAWTyfOjEDqd08kthDKexLpV97KfAeUXPosENKd8uyJMRDfFMxcYkDQ==} + /@rollup/rollup-linux-arm64-gnu@4.16.0: + resolution: {integrity: sha512-iypHsz7YEfoyNL0iHbQ7B7pY6hpymvvMgFXXaMd5+WCtvJ9zqWPZKFmo78UeWzWNmTP9JtPiNIQt6efRxx/MNA==} cpu: [arm64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-arm64-musl@4.9.6: - resolution: {integrity: sha512-gpiG0qQJNdYEVad+1iAsGAbgAnZ8j07FapmnIAQgODKcOTjLEWM9sRb+MbQyVsYCnA0Im6M6QIq6ax7liws6eQ==} + /@rollup/rollup-linux-arm64-musl@4.16.0: + resolution: {integrity: sha512-7UpYcO0uVeomnoL5MpQhrS0FT7xZUJrEXtKVLmps5bRA7x5AiA1PDuPnMbxcOBWjIM2HHIG1t3ndnRTVMIbk5A==} cpu: [arm64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-riscv64-gnu@4.9.6: - resolution: {integrity: sha512-+uCOcvVmFUYvVDr27aiyun9WgZk0tXe7ThuzoUTAukZJOwS5MrGbmSlNOhx1j80GdpqbOty05XqSl5w4dQvcOA==} + /@rollup/rollup-linux-powerpc64le-gnu@4.16.0: + resolution: {integrity: sha512-FSuFy4/hOQy0lH135ifnElP/6dKoHcZGHovsaRY0jrfNRR2yjMnVYaqNHKGKy0b/1I8DkD/JtclgJfq7SPti1w==} + cpu: [ppc64] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-riscv64-gnu@4.16.0: + resolution: {integrity: sha512-qxAB8MiHuDI8jU0D+WI9Gym3fvUJHA/AjKRXxbEH921SB3AeKQStq1FKFA59dAoqqCArjJ1voXM/gMvgEc1q4Q==} cpu: [riscv64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-x64-gnu@4.9.6: - resolution: {integrity: sha512-HUNqM32dGzfBKuaDUBqFB7tP6VMN74eLZ33Q9Y1TBqRDn+qDonkAUyKWwF9BR9unV7QUzffLnz9GrnKvMqC/fw==} + /@rollup/rollup-linux-s390x-gnu@4.16.0: + resolution: {integrity: sha512-j/9yBgWFlNFBfG/S1M2zkBNLeLkNVG59T5c4tlmlrxU+XITWJ3aMVWdpcZ/+mu7auGZftAXueAgAE9mb4lAlag==} + cpu: [s390x] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /@rollup/rollup-linux-x64-gnu@4.16.0: + resolution: {integrity: sha512-SjsBA1a9wrEleNneGEsR40HdxKdwCatyHC547o/XINqwPW4cqTYiNy/lL1WTJYWU/KgWIb8HH4SgmFStbWoBzw==} cpu: [x64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-linux-x64-musl@4.9.6: - resolution: {integrity: sha512-ch7M+9Tr5R4FK40FHQk8VnML0Szi2KRujUgHXd/HjuH9ifH72GUmw6lStZBo3c3GB82vHa0ZoUfjfcM7JiiMrQ==} + /@rollup/rollup-linux-x64-musl@4.16.0: + resolution: {integrity: sha512-YKCs7ghJZ5po6/qgfONiXyFKOKcTK4Kerzk/Kc89QK0JT94Qg4NurL+3Y3rZh5am2tu1OlvHPpBHQNBE8cFgJQ==} cpu: [x64] os: [linux] requiresBuild: true dev: true optional: true - /@rollup/rollup-win32-arm64-msvc@4.9.6: - resolution: {integrity: sha512-VD6qnR99dhmTQ1mJhIzXsRcTBvTjbfbGGwKAHcu+52cVl15AC/kplkhxzW/uT0Xl62Y/meBKDZvoJSJN+vTeGA==} + /@rollup/rollup-win32-arm64-msvc@4.16.0: + resolution: {integrity: sha512-+wtkF+z2nw0ZwwHji01wOW0loxFl24lBNxPtVAXtnPPDL9Ew0EhiCMOegXe/EAH3Zlr8Iw9tyPJXB3DltQLEyw==} cpu: [arm64] os: [win32] requiresBuild: true dev: true optional: true - /@rollup/rollup-win32-ia32-msvc@4.9.6: - resolution: {integrity: sha512-J9AFDq/xiRI58eR2NIDfyVmTYGyIZmRcvcAoJ48oDld/NTR8wyiPUu2X/v1navJ+N/FGg68LEbX3Ejd6l8B7MQ==} + /@rollup/rollup-win32-ia32-msvc@4.16.0: + resolution: {integrity: sha512-7qLyKTL7Lf2g0B8bduETVAEI3WVUVwBRVcECojVevPNVAmi19IW1P2X+uMSwhmWNy36Q/qEvxXsfts1I8wpawg==} cpu: [ia32] os: [win32] requiresBuild: true dev: true optional: true - /@rollup/rollup-win32-x64-msvc@4.9.6: - resolution: {integrity: sha512-jqzNLhNDvIZOrt69Ce4UjGRpXJBzhUBzawMwnaDAwyHriki3XollsewxWzOzz+4yOFDkuJHtTsZFwMxhYJWmLQ==} + /@rollup/rollup-win32-x64-msvc@4.16.0: + resolution: {integrity: sha512-tkfxXt+7c3Ecgn7ln9NJPdBM+QKwQdmFFpgAP+FYhAuRS5y3tY8xeza82gFjbPpytkHmaQnVdMtuzbToCz2tuw==} cpu: [x64] os: [win32] requiresBuild: true @@ -865,8 +708,8 @@ packages: engines: {node: '>= 6'} dev: true - /@tsconfig/node10@1.0.9: - resolution: {integrity: sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==} + /@tsconfig/node10@1.0.11: + resolution: {integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==} dev: true /@tsconfig/node12@1.0.11: @@ -881,19 +724,26 @@ packages: resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} dev: true - /@types/chai@4.3.11: - resolution: {integrity: sha512-qQR1dr2rGIHYlJulmr8Ioq3De0Le9E4MJ5AiaeAETJJpndT1uUNHsGFK3L/UIu+rbkQSdj8J/w2bCsBZc/Y5fQ==} + /@types/chai@4.3.14: + resolution: {integrity: sha512-Wj71sXE4Q4AkGdG9Tvq1u/fquNz9EdG4LIJMwVVII7ashjD/8cf8fyIfJAjRr6YcsXnSE8cOGQPq1gqeR8z+3w==} dev: true /@types/estree@1.0.5: resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} dev: true + /@types/fs-extra@11.0.4: + resolution: {integrity: sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ==} + dependencies: + '@types/jsonfile': 6.1.4 + '@types/node': 20.12.7 + dev: true + /@types/glob@8.1.0: resolution: {integrity: sha512-IO+MJPVhoqz+28h1qLAcBEH2+xHMK6MTyHJc7MTnnYb6wsoLR29POVGJ7LycmVXIqyy/4/2ShP5sUwTXuOwb/w==} dependencies: '@types/minimatch': 5.1.2 - '@types/node': 20.11.13 + '@types/node': 20.12.7 dev: true /@types/istanbul-lib-coverage@2.0.6: @@ -904,8 +754,14 @@ packages: resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} dev: true - /@types/lodash@4.14.202: - resolution: {integrity: sha512-OvlIYQK9tNneDlS0VN54LLd5uiPCBOp7gS5Z0f1mjoJYBrtStzgmJBxONW3U6OZqdtNzZPmn9BS/7WI7BFFcFQ==} + /@types/jsonfile@6.1.4: + resolution: {integrity: sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ==} + dependencies: + '@types/node': 20.12.7 + dev: true + + /@types/lodash@4.17.0: + resolution: {integrity: sha512-t7dhREVv6dbNj0q17X12j7yDG4bD/DHYX7o5/DbDxobP0HnGPgpRz2Ej77aL7TZT3DSw13fqUTj8J4mMnqa7WA==} dev: true /@types/minimatch@5.1.2: @@ -916,14 +772,14 @@ packages: resolution: {integrity: sha512-dJvrYWxP/UcXm36Qn36fxhUKu8A/xMRXVT2cliFF1Z7UA9liG5Psj3ezNSZw+5puH2czDXRLcXQxf8JbJt0ejg==} dev: true - /@types/node@20.11.13: - resolution: {integrity: sha512-5G4zQwdiQBSWYTDAH1ctw2eidqdhMJaNsiIDKHFr55ihz5Trl2qqR8fdrT732yPBho5gkNxXm67OxWFBqX9aPg==} + /@types/node@20.12.7: + resolution: {integrity: sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg==} dependencies: undici-types: 5.26.5 dev: true - /@types/semver@7.5.6: - resolution: {integrity: sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==} + /@types/semver@7.5.8: + resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} dev: true /@types/sinon@17.0.3: @@ -936,201 +792,201 @@ packages: resolution: {integrity: sha512-mQkU2jY8jJEF7YHjHvsQO8+3ughTL1mcnn96igfhONmR+fUPSKIkefQYpSe8bsly2Ep7oQbn/6VG5/9/0qcArQ==} dev: true - /@types/vscode@1.85.0: - resolution: {integrity: sha512-CF/RBon/GXwdfmnjZj0WTUMZN5H6YITOfBCP4iEZlOtVQXuzw6t7Le7+cR+7JzdMrnlm7Mfp49Oj2TuSXIWo3g==} + /@types/tmp@0.2.6: + resolution: {integrity: sha512-chhaNf2oKHlRkDGt+tiKE2Z5aJ6qalm7Z9rlLdBwmOiAAf09YQvvoLXjWK4HWPF1xU/fqvMgfNfpVoBscA/tKA==} + dev: true + + /@types/vscode@1.88.0: + resolution: {integrity: sha512-rWY+Bs6j/f1lvr8jqZTyp5arRMfovdxolcqGi+//+cPDOh8SBvzXH90e7BiSXct5HJ9HGW6jATchbRTpTJpEkw==} dev: true - /@typescript-eslint/eslint-plugin@6.20.0(@typescript-eslint/parser@6.20.0)(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-fTwGQUnjhoYHeSF6m5pWNkzmDDdsKELYrOBxhjMrofPqCkoC2k3B2wvGHFxa1CTIqkEn88nlW1HVMztjo2K8Hg==} - engines: {node: ^16.0.0 || >=18.0.0} + /@typescript-eslint/eslint-plugin@7.7.0(@typescript-eslint/parser@7.7.0)(eslint@9.1.0)(typescript@5.4.5): + resolution: {integrity: sha512-GJWR0YnfrKnsRoluVO3PRb9r5aMZriiMMM/RHj5nnTrBy1/wIgk76XCtCKcnXGjpZQJQRFtGV9/0JJ6n30uwpQ==} + engines: {node: ^18.18.0 || >=20.0.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 typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 6.20.0(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/scope-manager': 6.20.0 - '@typescript-eslint/type-utils': 6.20.0(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/utils': 6.20.0(eslint@8.56.0)(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 6.20.0 + '@typescript-eslint/parser': 7.7.0(eslint@9.1.0)(typescript@5.4.5) + '@typescript-eslint/scope-manager': 7.7.0 + '@typescript-eslint/type-utils': 7.7.0(eslint@9.1.0)(typescript@5.4.5) + '@typescript-eslint/utils': 7.7.0(eslint@9.1.0)(typescript@5.4.5) + '@typescript-eslint/visitor-keys': 7.7.0 debug: 4.3.4(supports-color@8.1.1) - eslint: 8.56.0 + eslint: 9.1.0 graphemer: 1.4.0 - ignore: 5.3.0 + ignore: 5.3.1 natural-compare: 1.4.0 - semver: 7.5.4 - ts-api-utils: 1.0.3(typescript@5.3.3) - typescript: 5.3.3 + semver: 7.6.0 + ts-api-utils: 1.3.0(typescript@5.4.5) + typescript: 5.4.5 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/parser@6.20.0(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-bYerPDF/H5v6V76MdMYhjwmwgMA+jlPVqjSDq2cRqMi8bP5sR3Z+RLOiOMad3nsnmDVmn2gAFCyNgh/dIrfP/w==} - engines: {node: ^16.0.0 || >=18.0.0} + /@typescript-eslint/parser@7.7.0(eslint@9.1.0)(typescript@5.4.5): + resolution: {integrity: sha512-fNcDm3wSwVM8QYL4HKVBggdIPAy9Q41vcvC/GtDobw3c4ndVT3K6cqudUmjHPw8EAp4ufax0o58/xvWaP2FmTg==} + engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: - eslint: ^7.0.0 || ^8.0.0 + eslint: ^8.56.0 typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 6.20.0 - '@typescript-eslint/types': 6.20.0 - '@typescript-eslint/typescript-estree': 6.20.0(typescript@5.3.3) - '@typescript-eslint/visitor-keys': 6.20.0 + '@typescript-eslint/scope-manager': 7.7.0 + '@typescript-eslint/types': 7.7.0 + '@typescript-eslint/typescript-estree': 7.7.0(typescript@5.4.5) + '@typescript-eslint/visitor-keys': 7.7.0 debug: 4.3.4(supports-color@8.1.1) - eslint: 8.56.0 - typescript: 5.3.3 + eslint: 9.1.0 + typescript: 5.4.5 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/scope-manager@6.20.0: - resolution: {integrity: sha512-p4rvHQRDTI1tGGMDFQm+GtxP1ZHyAh64WANVoyEcNMpaTFn3ox/3CcgtIlELnRfKzSs/DwYlDccJEtr3O6qBvA==} - engines: {node: ^16.0.0 || >=18.0.0} + /@typescript-eslint/scope-manager@7.7.0: + resolution: {integrity: sha512-/8INDn0YLInbe9Wt7dK4cXLDYp0fNHP5xKLHvZl3mOT5X17rK/YShXaiNmorl+/U4VKCVIjJnx4Ri5b0y+HClw==} + engines: {node: ^18.18.0 || >=20.0.0} dependencies: - '@typescript-eslint/types': 6.20.0 - '@typescript-eslint/visitor-keys': 6.20.0 + '@typescript-eslint/types': 7.7.0 + '@typescript-eslint/visitor-keys': 7.7.0 dev: true - /@typescript-eslint/type-utils@6.20.0(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-qnSobiJQb1F5JjN0YDRPHruQTrX7ICsmltXhkV536mp4idGAYrIyr47zF/JmkJtEcAVnIz4gUYJ7gOZa6SmN4g==} - engines: {node: ^16.0.0 || >=18.0.0} + /@typescript-eslint/type-utils@7.7.0(eslint@9.1.0)(typescript@5.4.5): + resolution: {integrity: sha512-bOp3ejoRYrhAlnT/bozNQi3nio9tIgv3U5C0mVDdZC7cpcQEDZXvq8inrHYghLVwuNABRqrMW5tzAv88Vy77Sg==} + engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: - eslint: ^7.0.0 || ^8.0.0 + eslint: ^8.56.0 typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 6.20.0(typescript@5.3.3) - '@typescript-eslint/utils': 6.20.0(eslint@8.56.0)(typescript@5.3.3) + '@typescript-eslint/typescript-estree': 7.7.0(typescript@5.4.5) + '@typescript-eslint/utils': 7.7.0(eslint@9.1.0)(typescript@5.4.5) debug: 4.3.4(supports-color@8.1.1) - eslint: 8.56.0 - ts-api-utils: 1.0.3(typescript@5.3.3) - typescript: 5.3.3 + eslint: 9.1.0 + ts-api-utils: 1.3.0(typescript@5.4.5) + typescript: 5.4.5 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/types@6.20.0: - resolution: {integrity: sha512-MM9mfZMAhiN4cOEcUOEx+0HmuaW3WBfukBZPCfwSqFnQy0grXYtngKCqpQN339X3RrwtzspWJrpbrupKYUSBXQ==} - engines: {node: ^16.0.0 || >=18.0.0} + /@typescript-eslint/types@7.7.0: + resolution: {integrity: sha512-G01YPZ1Bd2hn+KPpIbrAhEWOn5lQBrjxkzHkWvP6NucMXFtfXoevK82hzQdpfuQYuhkvFDeQYbzXCjR1z9Z03w==} + engines: {node: ^18.18.0 || >=20.0.0} dev: true - /@typescript-eslint/typescript-estree@6.20.0(typescript@5.3.3): - resolution: {integrity: sha512-RnRya9q5m6YYSpBN7IzKu9FmLcYtErkDkc8/dKv81I9QiLLtVBHrjz+Ev/crAqgMNW2FCsoZF4g2QUylMnJz+g==} - engines: {node: ^16.0.0 || >=18.0.0} + /@typescript-eslint/typescript-estree@7.7.0(typescript@5.4.5): + resolution: {integrity: sha512-8p71HQPE6CbxIBy2kWHqM1KGrC07pk6RJn40n0DSc6bMOBBREZxSDJ+BmRzc8B5OdaMh1ty3mkuWRg4sCFiDQQ==} + engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@typescript-eslint/types': 6.20.0 - '@typescript-eslint/visitor-keys': 6.20.0 + '@typescript-eslint/types': 7.7.0 + '@typescript-eslint/visitor-keys': 7.7.0 debug: 4.3.4(supports-color@8.1.1) globby: 11.1.0 is-glob: 4.0.3 - minimatch: 9.0.3 - semver: 7.5.4 - ts-api-utils: 1.0.3(typescript@5.3.3) - typescript: 5.3.3 + minimatch: 9.0.4 + semver: 7.6.0 + ts-api-utils: 1.3.0(typescript@5.4.5) + typescript: 5.4.5 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/utils@6.20.0(eslint@8.56.0)(typescript@5.3.3): - resolution: {integrity: sha512-/EKuw+kRu2vAqCoDwDCBtDRU6CTKbUmwwI7SH7AashZ+W+7o8eiyy6V2cdOqN49KsTcASWsC5QeghYuRDTyOOg==} - engines: {node: ^16.0.0 || >=18.0.0} + /@typescript-eslint/utils@7.7.0(eslint@9.1.0)(typescript@5.4.5): + resolution: {integrity: sha512-LKGAXMPQs8U/zMRFXDZOzmMKgFv3COlxUQ+2NMPhbqgVm6R1w+nU1i4836Pmxu9jZAuIeyySNrN/6Rc657ggig==} + engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: - eslint: ^7.0.0 || ^8.0.0 + eslint: ^8.56.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.1.0) '@types/json-schema': 7.0.15 - '@types/semver': 7.5.6 - '@typescript-eslint/scope-manager': 6.20.0 - '@typescript-eslint/types': 6.20.0 - '@typescript-eslint/typescript-estree': 6.20.0(typescript@5.3.3) - eslint: 8.56.0 - semver: 7.5.4 + '@types/semver': 7.5.8 + '@typescript-eslint/scope-manager': 7.7.0 + '@typescript-eslint/types': 7.7.0 + '@typescript-eslint/typescript-estree': 7.7.0(typescript@5.4.5) + eslint: 9.1.0 + semver: 7.6.0 transitivePeerDependencies: - supports-color - typescript dev: true - /@typescript-eslint/visitor-keys@6.20.0: - resolution: {integrity: sha512-E8Cp98kRe4gKHjJD4NExXKz/zOJ1A2hhZc+IMVD6i7w4yjIvh6VyuRI0gRtxAsXtoC35uGMaQ9rjI2zJaXDEAw==} - engines: {node: ^16.0.0 || >=18.0.0} + /@typescript-eslint/visitor-keys@7.7.0: + resolution: {integrity: sha512-h0WHOj8MhdhY8YWkzIF30R379y0NqyOHExI9N9KCzvmu05EgG4FumeYa3ccfKUSphyWkWQE1ybVrgz/Pbam6YA==} + engines: {node: ^18.18.0 || >=20.0.0} dependencies: - '@typescript-eslint/types': 6.20.0 + '@typescript-eslint/types': 7.7.0 eslint-visitor-keys: 3.4.3 dev: true - /@ungap/structured-clone@1.2.0: - resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} - dev: true - - /@vitest/coverage-v8@1.2.2(vitest@1.2.2): - resolution: {integrity: sha512-IHyKnDz18SFclIEEAHb9Y4Uxx0sPKC2VO1kdDCs1BF6Ip4S8rQprs971zIsooLUn7Afs71GRxWMWpkCGZpRMhw==} + /@vitest/coverage-v8@1.5.0(vitest@1.5.0): + resolution: {integrity: sha512-1igVwlcqw1QUMdfcMlzzY4coikSIBN944pkueGi0pawrX5I5Z+9hxdTR+w3Sg6Q3eZhvdMAs8ZaF9JuTG1uYOQ==} peerDependencies: - vitest: ^1.0.0 + vitest: 1.5.0 dependencies: - '@ampproject/remapping': 2.2.1 + '@ampproject/remapping': 2.3.0 '@bcoe/v8-coverage': 0.2.3 debug: 4.3.4(supports-color@8.1.1) istanbul-lib-coverage: 3.2.2 istanbul-lib-report: 3.0.1 - istanbul-lib-source-maps: 4.0.1 - istanbul-reports: 3.1.6 - magic-string: 0.30.5 - magicast: 0.3.3 + istanbul-lib-source-maps: 5.0.4 + istanbul-reports: 3.1.7 + magic-string: 0.30.10 + magicast: 0.3.4 picocolors: 1.0.0 std-env: 3.7.0 + strip-literal: 2.1.0 test-exclude: 6.0.0 - v8-to-istanbul: 9.2.0 - vitest: 1.2.2(@types/node@20.11.13) + vitest: 1.5.0(@types/node@20.12.7) transitivePeerDependencies: - supports-color dev: true - /@vitest/expect@1.2.2: - resolution: {integrity: sha512-3jpcdPAD7LwHUUiT2pZTj2U82I2Tcgg2oVPvKxhn6mDI2On6tfvPQTjAI4628GUGDZrCm4Zna9iQHm5cEexOAg==} + /@vitest/expect@1.5.0: + resolution: {integrity: sha512-0pzuCI6KYi2SIC3LQezmxujU9RK/vwC1U9R0rLuGlNGcOuDWxqWKu6nUdFsX9tH1WU0SXtAxToOsEjeUn1s3hA==} dependencies: - '@vitest/spy': 1.2.2 - '@vitest/utils': 1.2.2 + '@vitest/spy': 1.5.0 + '@vitest/utils': 1.5.0 chai: 4.4.1 dev: true - /@vitest/runner@1.2.2: - resolution: {integrity: sha512-JctG7QZ4LSDXr5CsUweFgcpEvrcxOV1Gft7uHrvkQ+fsAVylmWQvnaAr/HDp3LAH1fztGMQZugIheTWjaGzYIg==} + /@vitest/runner@1.5.0: + resolution: {integrity: sha512-7HWwdxXP5yDoe7DTpbif9l6ZmDwCzcSIK38kTSIt6CFEpMjX4EpCgT6wUmS0xTXqMI6E/ONmfgRKmaujpabjZQ==} dependencies: - '@vitest/utils': 1.2.2 + '@vitest/utils': 1.5.0 p-limit: 5.0.0 pathe: 1.1.2 dev: true - /@vitest/snapshot@1.2.2: - resolution: {integrity: sha512-SmGY4saEw1+bwE1th6S/cZmPxz/Q4JWsl7LvbQIky2tKE35US4gd0Mjzqfr84/4OD0tikGWaWdMja/nWL5NIPA==} + /@vitest/snapshot@1.5.0: + resolution: {integrity: sha512-qpv3fSEuNrhAO3FpH6YYRdaECnnRjg9VxbhdtPwPRnzSfHVXnNzzrpX4cJxqiwgRMo7uRMWDFBlsBq4Cr+rO3A==} dependencies: - magic-string: 0.30.5 + magic-string: 0.30.10 pathe: 1.1.2 pretty-format: 29.7.0 dev: true - /@vitest/spy@1.2.2: - resolution: {integrity: sha512-k9Gcahssw8d7X3pSLq3e3XEu/0L78mUkCjivUqCQeXJm9clfXR/Td8+AP+VC1O6fKPIDLcHDTAmBOINVuv6+7g==} + /@vitest/spy@1.5.0: + resolution: {integrity: sha512-vu6vi6ew5N5MMHJjD5PoakMRKYdmIrNJmyfkhRpQt5d9Ewhw9nZ5Aqynbi3N61bvk9UvZ5UysMT6ayIrZ8GA9w==} dependencies: - tinyspy: 2.2.0 + tinyspy: 2.2.1 dev: true - /@vitest/utils@1.2.2: - resolution: {integrity: sha512-WKITBHLsBHlpjnDQahr+XK6RE7MiAsgrIkr0pGhQ9ygoxBfUeG0lUG5iLlzqjmKSlBv3+j5EGsriBzh+C3Tq9g==} + /@vitest/utils@1.5.0: + resolution: {integrity: sha512-BDU0GNL8MWkRkSRdNFvCUCAVOeHaUlVJ9Tx0TYBZyXaaOTmGtUFObzchCivIBrIwKzvZA7A9sCejVhXM2aY98A==} dependencies: diff-sequences: 29.6.3 estree-walker: 3.0.3 @@ -1138,15 +994,18 @@ packages: pretty-format: 29.7.0 dev: true - /@vscode/test-cli@0.0.4: - resolution: {integrity: sha512-Tx0tfbxeSb2Xlo+jpd+GJrNLgKQHobhRHrYvOipZRZQYWZ82sKiK02VY09UjU1Czc/YnZnqyAnjUfaVGl3h09w==} + /@vscode/test-cli@0.0.9: + resolution: {integrity: sha512-vsl5/ueE3Jf0f6XzB0ECHHMsd5A0Yu6StElb8a+XsubZW7kHNAOw4Y3TSSuDzKEpLnJ92nbMy1Zl+KLGCE6NaA==} + engines: {node: '>=18'} hasBin: true dependencies: '@types/mocha': 10.0.6 - chokidar: 3.5.3 - glob: 10.3.10 - minimatch: 9.0.3 - mocha: 10.2.0 + c8: 9.1.0 + chokidar: 3.6.0 + enhanced-resolve: 5.16.0 + glob: 10.3.12 + minimatch: 9.0.4 + mocha: 10.4.0 supports-color: 9.4.0 yargs: 17.7.2 dev: true @@ -1158,7 +1017,7 @@ packages: http-proxy-agent: 4.0.1 https-proxy-agent: 5.0.1 jszip: 3.10.1 - semver: 7.5.4 + semver: 7.6.0 transitivePeerDependencies: - supports-color dev: true @@ -1270,8 +1129,8 @@ packages: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} dev: true - /binary-extensions@2.2.0: - resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} + /binary-extensions@2.3.0: + resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} engines: {node: '>=8'} dev: true @@ -1299,6 +1158,24 @@ packages: resolution: {integrity: sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==} dev: true + /c8@9.1.0: + resolution: {integrity: sha512-mBWcT5iqNir1zIkzSPyI3NCR9EZCVI3WUD+AVO17MVWTSFNyUueXE82qTeampNtTr+ilN/5Ua3j24LgbCKjDVg==} + engines: {node: '>=14.14.0'} + hasBin: true + dependencies: + '@bcoe/v8-coverage': 0.2.3 + '@istanbuljs/schema': 0.1.3 + find-up: 5.0.0 + foreground-child: 3.1.1 + istanbul-lib-coverage: 3.2.2 + istanbul-lib-report: 3.0.1 + istanbul-reports: 3.1.7 + test-exclude: 6.0.0 + v8-to-istanbul: 9.2.0 + yargs: 17.7.2 + yargs-parser: 21.1.1 + dev: true + /cac@6.7.14: resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} engines: {node: '>=8'} @@ -1327,8 +1204,8 @@ packages: type-detect: 4.0.8 dev: true - /chai@5.0.3: - resolution: {integrity: sha512-wKGCtYv2kVY5WEjKqQ3fSIZWtTFveZCtzinhTZbx3/trVkxefiwovhpU9kRVCwxvKKCEjTWXPdM1/T7zPoDgow==} + /chai@5.1.0: + resolution: {integrity: sha512-kDZ7MZyM6Q1DhR9jy7dalKohXQ2yrlXkk59CR52aRKxJrobmlBNqnFQxX9xOX8w+4mz8SYlKJa/7D7ddltFXCw==} engines: {node: '>=12'} dependencies: assertion-error: 2.0.1 @@ -1372,6 +1249,21 @@ packages: fsevents: 2.3.3 dev: true + /chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} + engines: {node: '>= 8.10.0'} + dependencies: + anymatch: 3.1.3 + braces: 3.0.2 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + dev: true + /cliui@7.0.4: resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} dependencies: @@ -1404,6 +1296,10 @@ packages: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} dev: true + /confbox@0.1.7: + resolution: {integrity: sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==} + dev: true + /convert-source-map@2.0.0: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} dev: true @@ -1482,8 +1378,8 @@ packages: engines: {node: '>=0.3.1'} dev: true - /diff@5.1.0: - resolution: {integrity: sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==} + /diff@5.2.0: + resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==} engines: {node: '>=0.3.1'} dev: true @@ -1494,13 +1390,6 @@ packages: path-type: 4.0.0 dev: true - /doctrine@3.0.0: - resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} - engines: {node: '>=6.0.0'} - dependencies: - esutils: 2.0.3 - dev: true - /eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} dev: true @@ -1513,70 +1402,47 @@ packages: resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} dev: true - /esbuild@0.19.12: - resolution: {integrity: sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg==} - engines: {node: '>=12'} - hasBin: true - requiresBuild: true - optionalDependencies: - '@esbuild/aix-ppc64': 0.19.12 - '@esbuild/android-arm': 0.19.12 - '@esbuild/android-arm64': 0.19.12 - '@esbuild/android-x64': 0.19.12 - '@esbuild/darwin-arm64': 0.19.12 - '@esbuild/darwin-x64': 0.19.12 - '@esbuild/freebsd-arm64': 0.19.12 - '@esbuild/freebsd-x64': 0.19.12 - '@esbuild/linux-arm': 0.19.12 - '@esbuild/linux-arm64': 0.19.12 - '@esbuild/linux-ia32': 0.19.12 - '@esbuild/linux-loong64': 0.19.12 - '@esbuild/linux-mips64el': 0.19.12 - '@esbuild/linux-ppc64': 0.19.12 - '@esbuild/linux-riscv64': 0.19.12 - '@esbuild/linux-s390x': 0.19.12 - '@esbuild/linux-x64': 0.19.12 - '@esbuild/netbsd-x64': 0.19.12 - '@esbuild/openbsd-x64': 0.19.12 - '@esbuild/sunos-x64': 0.19.12 - '@esbuild/win32-arm64': 0.19.12 - '@esbuild/win32-ia32': 0.19.12 - '@esbuild/win32-x64': 0.19.12 - dev: true - - /esbuild@0.20.0: - resolution: {integrity: sha512-6iwE3Y2RVYCME1jLpBqq7LQWK3MW6vjV2bZy6gt/WrqkY+WE74Spyc0ThAOYpMtITvnjX09CrC6ym7A/m9mebA==} + /enhanced-resolve@5.16.0: + resolution: {integrity: sha512-O+QWCviPNSSLAD9Ucn8Awv+poAkqn3T1XY5/N7kR7rQO9yfSGWkYZDwpJ+iKF7B8rxaQKWngSqACpgzeapSyoA==} + engines: {node: '>=10.13.0'} + dependencies: + graceful-fs: 4.2.11 + tapable: 2.2.1 + dev: true + + /esbuild@0.20.2: + resolution: {integrity: sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==} engines: {node: '>=12'} hasBin: true requiresBuild: true optionalDependencies: - '@esbuild/aix-ppc64': 0.20.0 - '@esbuild/android-arm': 0.20.0 - '@esbuild/android-arm64': 0.20.0 - '@esbuild/android-x64': 0.20.0 - '@esbuild/darwin-arm64': 0.20.0 - '@esbuild/darwin-x64': 0.20.0 - '@esbuild/freebsd-arm64': 0.20.0 - '@esbuild/freebsd-x64': 0.20.0 - '@esbuild/linux-arm': 0.20.0 - '@esbuild/linux-arm64': 0.20.0 - '@esbuild/linux-ia32': 0.20.0 - '@esbuild/linux-loong64': 0.20.0 - '@esbuild/linux-mips64el': 0.20.0 - '@esbuild/linux-ppc64': 0.20.0 - '@esbuild/linux-riscv64': 0.20.0 - '@esbuild/linux-s390x': 0.20.0 - '@esbuild/linux-x64': 0.20.0 - '@esbuild/netbsd-x64': 0.20.0 - '@esbuild/openbsd-x64': 0.20.0 - '@esbuild/sunos-x64': 0.20.0 - '@esbuild/win32-arm64': 0.20.0 - '@esbuild/win32-ia32': 0.20.0 - '@esbuild/win32-x64': 0.20.0 - dev: true - - /escalade@3.1.1: - resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} + '@esbuild/aix-ppc64': 0.20.2 + '@esbuild/android-arm': 0.20.2 + '@esbuild/android-arm64': 0.20.2 + '@esbuild/android-x64': 0.20.2 + '@esbuild/darwin-arm64': 0.20.2 + '@esbuild/darwin-x64': 0.20.2 + '@esbuild/freebsd-arm64': 0.20.2 + '@esbuild/freebsd-x64': 0.20.2 + '@esbuild/linux-arm': 0.20.2 + '@esbuild/linux-arm64': 0.20.2 + '@esbuild/linux-ia32': 0.20.2 + '@esbuild/linux-loong64': 0.20.2 + '@esbuild/linux-mips64el': 0.20.2 + '@esbuild/linux-ppc64': 0.20.2 + '@esbuild/linux-riscv64': 0.20.2 + '@esbuild/linux-s390x': 0.20.2 + '@esbuild/linux-x64': 0.20.2 + '@esbuild/netbsd-x64': 0.20.2 + '@esbuild/openbsd-x64': 0.20.2 + '@esbuild/sunos-x64': 0.20.2 + '@esbuild/win32-arm64': 0.20.2 + '@esbuild/win32-ia32': 0.20.2 + '@esbuild/win32-x64': 0.20.2 + dev: true + + /escalade@3.1.2: + resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} engines: {node: '>=6'} dev: true @@ -1585,16 +1451,16 @@ packages: engines: {node: '>=10'} dev: true - /eslint-config-prettier@9.1.0(eslint@8.56.0): + /eslint-config-prettier@9.1.0(eslint@9.1.0): resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} hasBin: true peerDependencies: eslint: '>=7.0.0' dependencies: - eslint: 8.56.0 + eslint: 9.1.0 dev: true - /eslint-plugin-prettier@5.1.3(eslint-config-prettier@9.1.0)(eslint@8.56.0)(prettier@3.2.4): + /eslint-plugin-prettier@5.1.3(eslint-config-prettier@9.1.0)(eslint@9.1.0)(prettier@3.2.5): resolution: {integrity: sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: @@ -1608,36 +1474,24 @@ packages: eslint-config-prettier: optional: true dependencies: - eslint: 8.56.0 - eslint-config-prettier: 9.1.0(eslint@8.56.0) - prettier: 3.2.4 + eslint: 9.1.0 + eslint-config-prettier: 9.1.0(eslint@9.1.0) + prettier: 3.2.5 prettier-linter-helpers: 1.0.0 synckit: 0.8.8 dev: true - /eslint-plugin-unused-imports@3.0.0(@typescript-eslint/eslint-plugin@6.20.0)(eslint@8.56.0): - resolution: {integrity: sha512-sduiswLJfZHeeBJ+MQaG+xYzSWdRXoSw61DpU13mzWumCkR0ufD0HmO4kdNokjrkluMHpj/7PJeN35pgbhW3kw==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /eslint-plugin-simple-import-sort@12.1.0(eslint@9.1.0): + resolution: {integrity: sha512-Y2fqAfC11TcG/WP3TrI1Gi3p3nc8XJyEOJYHyEPEGI/UAgNx6akxxlX74p7SbAQdLcgASKhj8M0GKvH3vq/+ig==} peerDependencies: - '@typescript-eslint/eslint-plugin': ^6.0.0 - eslint: ^8.0.0 - peerDependenciesMeta: - '@typescript-eslint/eslint-plugin': - optional: true + eslint: '>=5.0.0' dependencies: - '@typescript-eslint/eslint-plugin': 6.20.0(@typescript-eslint/parser@6.20.0)(eslint@8.56.0)(typescript@5.3.3) - eslint: 8.56.0 - eslint-rule-composer: 0.3.0 + eslint: 9.1.0 dev: true - /eslint-rule-composer@0.3.0: - resolution: {integrity: sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg==} - engines: {node: '>=4.0.0'} - dev: true - - /eslint-scope@7.2.2: - resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /eslint-scope@8.0.1: + resolution: {integrity: sha512-pL8XjgP4ZOmmwfFE8mEhSxA7ZY4C+LWyqjQ3o4yWkkmD0qcMT9kkW3zWHOczhWcjTSgqycYAgwSlXvZltv65og==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 @@ -1648,41 +1502,42 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint@8.56.0: - resolution: {integrity: sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /eslint-visitor-keys@4.0.0: + resolution: {integrity: sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + dev: true + + /eslint@9.1.0: + resolution: {integrity: sha512-1TCBecGFQtItia2o39P7Z4BK1X7ByNPxAiWJvwiyTGcOwYnTiiASgMpNA6a+beu8cFPhEDWvPf6mIlYUJv6sgA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.1.0) '@eslint-community/regexpp': 4.10.0 - '@eslint/eslintrc': 2.1.4 - '@eslint/js': 8.56.0 - '@humanwhocodes/config-array': 0.11.14 + '@eslint/eslintrc': 3.0.2 + '@eslint/js': 9.1.1 + '@humanwhocodes/config-array': 0.13.0 '@humanwhocodes/module-importer': 1.0.1 + '@humanwhocodes/retry': 0.2.3 '@nodelib/fs.walk': 1.2.8 - '@ungap/structured-clone': 1.2.0 ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 debug: 4.3.4(supports-color@8.1.1) - doctrine: 3.0.0 escape-string-regexp: 4.0.0 - eslint-scope: 7.2.2 - eslint-visitor-keys: 3.4.3 - espree: 9.6.1 + eslint-scope: 8.0.1 + eslint-visitor-keys: 4.0.0 + espree: 10.0.1 esquery: 1.5.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 - file-entry-cache: 6.0.1 + file-entry-cache: 8.0.0 find-up: 5.0.0 glob-parent: 6.0.2 - globals: 13.24.0 - graphemer: 1.4.0 - ignore: 5.3.0 + ignore: 5.3.1 imurmurhash: 0.1.4 is-glob: 4.0.3 is-path-inside: 3.0.3 - js-yaml: 4.1.0 json-stable-stringify-without-jsonify: 1.0.1 levn: 0.4.1 lodash.merge: 4.6.2 @@ -1695,13 +1550,13 @@ packages: - supports-color dev: true - /espree@9.6.1: - resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + /espree@10.0.1: + resolution: {integrity: sha512-MWkrWZbJsL2UwnjxTX3gG8FneachS/Mwg7tdGXce011sJd5b0JG54vat5KHnfSBODZ3Wvzd2WnjxyzsRoVv+ww==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} dependencies: acorn: 8.11.3 acorn-jsx: 5.3.2(acorn@8.11.3) - eslint-visitor-keys: 3.4.3 + eslint-visitor-keys: 4.0.0 dev: true /esquery@1.5.0: @@ -1743,14 +1598,14 @@ packages: human-signals: 5.0.0 is-stream: 3.0.0 merge-stream: 2.0.0 - npm-run-path: 5.2.0 + npm-run-path: 5.3.0 onetime: 6.0.0 signal-exit: 4.1.0 strip-final-newline: 3.0.0 dev: true - /expect-type@0.17.3: - resolution: {integrity: sha512-K0ZdZJ97jiAtaOwhEHHz/f0N6Xbj5reRz5g6+5BO7+OvqQ7PMQz0/c8bFSJs1zPotNJL5HJaC6t6lGPEAtGyOw==} + /expect-type@0.19.0: + resolution: {integrity: sha512-piv9wz3IrAG4Wnk2A+n2VRCHieAyOSxrRLU872Xo6nyn39kYXKDALk4OcqnvLRnFvkz659CnWC8MWZLuuQnoqg==} engines: {node: '>=12.0.0'} dev: true @@ -1781,17 +1636,17 @@ packages: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} dev: true - /fastq@1.17.0: - resolution: {integrity: sha512-zGygtijUMT7jnk3h26kUms3BkSDp4IfIKjmnqI2tvx6nuBfiF1UqOxbnLfzdv+apBy+53oaImsKtMw/xYbW+1w==} + /fastq@1.17.1: + resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} dependencies: reusify: 1.0.4 dev: true - /file-entry-cache@6.0.1: - resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} - engines: {node: ^10.12.0 || >=12.0.0} + /file-entry-cache@8.0.0: + resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} + engines: {node: '>=16.0.0'} dependencies: - flat-cache: 3.2.0 + flat-cache: 4.0.1 dev: true /fill-range@7.0.1: @@ -1809,13 +1664,12 @@ packages: path-exists: 4.0.0 dev: true - /flat-cache@3.2.0: - resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} - engines: {node: ^10.12.0 || >=12.0.0} + /flat-cache@4.0.1: + resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} + engines: {node: '>=16'} dependencies: - flatted: 3.2.9 + flatted: 3.3.1 keyv: 4.5.4 - rimraf: 3.0.2 dev: true /flat@5.0.2: @@ -1823,8 +1677,8 @@ packages: hasBin: true dev: true - /flatted@3.2.9: - resolution: {integrity: sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==} + /flatted@3.3.1: + resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} dev: true /foreground-child@3.1.1: @@ -1835,6 +1689,15 @@ packages: signal-exit: 4.1.0 dev: true + /fs-extra@11.2.0: + resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==} + engines: {node: '>=14.14'} + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.1.0 + universalify: 2.0.1 + dev: true + /fs.realpath@1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} dev: true @@ -1875,20 +1738,20 @@ packages: is-glob: 4.0.3 dev: true - /glob@10.3.10: - resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==} + /glob@10.3.12: + resolution: {integrity: sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg==} engines: {node: '>=16 || 14 >=14.17'} hasBin: true dependencies: foreground-child: 3.1.1 jackspeak: 2.3.6 - minimatch: 9.0.3 + minimatch: 9.0.4 minipass: 7.0.4 - path-scurry: 1.10.1 + path-scurry: 1.10.2 dev: true - /glob@7.2.0: - resolution: {integrity: sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==} + /glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} dependencies: fs.realpath: 1.0.0 inflight: 1.0.6 @@ -1898,22 +1761,20 @@ packages: path-is-absolute: 1.0.1 dev: true - /glob@7.2.3: - resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + /glob@8.1.0: + resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} + engines: {node: '>=12'} dependencies: fs.realpath: 1.0.0 inflight: 1.0.6 inherits: 2.0.4 - minimatch: 3.1.2 + minimatch: 5.0.1 once: 1.4.0 - path-is-absolute: 1.0.1 dev: true - /globals@13.24.0: - resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} - engines: {node: '>=8'} - dependencies: - type-fest: 0.20.2 + /globals@14.0.0: + resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} + engines: {node: '>=18'} dev: true /globby@11.1.0: @@ -1923,11 +1784,15 @@ packages: array-union: 2.1.0 dir-glob: 3.0.1 fast-glob: 3.3.2 - ignore: 5.3.0 + ignore: 5.3.1 merge2: 1.4.1 slash: 3.0.0 dev: true + /graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + dev: true + /graphemer@1.4.0: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} dev: true @@ -1972,8 +1837,8 @@ packages: engines: {node: '>=16.17.0'} dev: true - /ignore@5.3.0: - resolution: {integrity: sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==} + /ignore@5.3.1: + resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} engines: {node: '>= 4'} dev: true @@ -2009,7 +1874,7 @@ packages: resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} engines: {node: '>=8'} dependencies: - binary-extensions: 2.2.0 + binary-extensions: 2.3.0 dev: true /is-extglob@2.1.1: @@ -2076,19 +1941,19 @@ packages: supports-color: 7.2.0 dev: true - /istanbul-lib-source-maps@4.0.1: - resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} + /istanbul-lib-source-maps@5.0.4: + resolution: {integrity: sha512-wHOoEsNJTVltaJp8eVkm8w+GVkVNHT2YDYo53YdzQEL2gWm1hBX5cGFR9hQJtuGLebidVX7et3+dmDZrmclduw==} engines: {node: '>=10'} dependencies: + '@jridgewell/trace-mapping': 0.3.25 debug: 4.3.4(supports-color@8.1.1) istanbul-lib-coverage: 3.2.2 - source-map: 0.6.1 transitivePeerDependencies: - supports-color dev: true - /istanbul-reports@3.1.6: - resolution: {integrity: sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==} + /istanbul-reports@3.1.7: + resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==} engines: {node: '>=8'} dependencies: html-escaper: 2.0.2 @@ -2104,13 +1969,17 @@ packages: '@pkgjs/parseargs': 0.11.0 dev: true - /jest-mock-vscode@2.1.1: - resolution: {integrity: sha512-LYLyu0yuKgcJ7d7ADIJVXjPSBC7IYtDvzQdy45kQsYizXblvohuDtrrWdQaSt0rS9Ipky19SItjQf72ZlJCpgQ==} + /jest-mock-vscode@3.0.2: + resolution: {integrity: sha512-hlxj6OGd3sXH2b1B98xvTeJCWHVOf/48A/0BCZZZ+n8zjaqNLCn9AwkXXCZ3N92EIJedwzzPDsvCMSNG63c0nw==} engines: {node: '>16.0.0'} dependencies: vscode-uri: 3.0.8 dev: true + /js-tokens@9.0.0: + resolution: {integrity: sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==} + dev: true + /js-yaml@4.1.0: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} hasBin: true @@ -2136,8 +2005,12 @@ packages: hasBin: true dev: true - /jsonc-parser@3.2.1: - resolution: {integrity: sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA==} + /jsonfile@6.1.0: + resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} + dependencies: + universalify: 2.0.1 + optionalDependencies: + graceful-fs: 4.2.11 dev: true /jszip@3.10.1: @@ -2177,8 +2050,8 @@ packages: resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==} engines: {node: '>=14'} dependencies: - mlly: 1.5.0 - pkg-types: 1.0.3 + mlly: 1.6.1 + pkg-types: 1.1.0 dev: true /locate-path@6.0.0: @@ -2189,7 +2062,7 @@ packages: dev: true /lodash.get@4.4.2: - resolution: {integrity: sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=} + resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==} dev: true /lodash.merge@4.6.2: @@ -2232,26 +2105,25 @@ packages: yallist: 4.0.0 dev: true - /magic-string@0.30.5: - resolution: {integrity: sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==} - engines: {node: '>=12'} + /magic-string@0.30.10: + resolution: {integrity: sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==} dependencies: '@jridgewell/sourcemap-codec': 1.4.15 dev: true - /magicast@0.3.3: - resolution: {integrity: sha512-ZbrP1Qxnpoes8sz47AM0z08U+jW6TyRgZzcWy3Ma3vDhJttwMwAFDMMQFobwdBxByBD46JYmxRzeF7w2+wJEuw==} + /magicast@0.3.4: + resolution: {integrity: sha512-TyDF/Pn36bBji9rWKHlZe+PZb6Mx5V8IHCSxk7X4aljM4e/vyDvZZYwHewdVaqiA0nb3ghfHU/6AUpDxWoER2Q==} dependencies: - '@babel/parser': 7.23.9 - '@babel/types': 7.23.9 - source-map-js: 1.0.2 + '@babel/parser': 7.24.4 + '@babel/types': 7.24.0 + source-map-js: 1.2.0 dev: true /make-dir@4.0.0: resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} engines: {node: '>=10'} dependencies: - semver: 7.5.4 + semver: 7.6.0 dev: true /make-error@1.3.6: @@ -2293,8 +2165,8 @@ packages: brace-expansion: 2.0.1 dev: true - /minimatch@9.0.3: - resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} + /minimatch@9.0.4: + resolution: {integrity: sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==} engines: {node: '>=16 || 14 >=14.17'} dependencies: brace-expansion: 2.0.1 @@ -2309,17 +2181,17 @@ packages: engines: {node: '>=16 || 14 >=14.17'} dev: true - /mlly@1.5.0: - resolution: {integrity: sha512-NPVQvAY1xr1QoVeG0cy8yUYC7FQcOx6evl/RjT1wL5FvzPnzOysoqB/jmx/DhssT2dYa8nxECLAaFI/+gVLhDQ==} + /mlly@1.6.1: + resolution: {integrity: sha512-vLgaHvaeunuOXHSmEbZ9izxPx3USsk8KCQ8iC+aTlp5sKRSoZvwhHh5L9VbKSaVC6sJDqbyohIS76E2VmHIPAA==} dependencies: acorn: 8.11.3 pathe: 1.1.2 - pkg-types: 1.0.3 - ufo: 1.3.2 + pkg-types: 1.1.0 + ufo: 1.5.3 dev: true - /mocha@10.2.0: - resolution: {integrity: sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==} + /mocha@10.4.0: + resolution: {integrity: sha512-eqhGB8JKapEYcC4ytX/xrzKforgEc3j1pGlAXVy3eRwrtAy5/nIfT1SvgGzfN0XZZxeLq0aQWkOUAmqIJiv+bA==} engines: {node: '>= 14.0.0'} hasBin: true dependencies: @@ -2330,13 +2202,12 @@ packages: diff: 5.0.0 escape-string-regexp: 4.0.0 find-up: 5.0.0 - glob: 7.2.0 + glob: 8.1.0 he: 1.2.0 js-yaml: 4.1.0 log-symbols: 4.1.0 minimatch: 5.0.1 ms: 2.1.3 - nanoid: 3.3.3 serialize-javascript: 6.0.0 strip-json-comments: 3.1.1 supports-color: 8.1.1 @@ -2354,12 +2225,6 @@ packages: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} dev: true - /nanoid@3.3.3: - resolution: {integrity: sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true - dev: true - /nanoid@3.3.7: resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} @@ -2377,7 +2242,7 @@ packages: '@sinonjs/fake-timers': 11.2.2 '@sinonjs/text-encoding': 0.7.2 just-extend: 6.2.0 - path-to-regexp: 6.2.1 + path-to-regexp: 6.2.2 dev: true /normalize-path@3.0.0: @@ -2385,8 +2250,8 @@ packages: engines: {node: '>=0.10.0'} dev: true - /npm-run-path@5.2.0: - resolution: {integrity: sha512-W4/tgAXFqFA0iL7fk0+uQ3g7wkL8xJmx3XdK0VGb4cHW//eZTtKGvFBBoRKVTpY7n6ze4NL9ly7rgXcHufqXKg==} + /npm-run-path@5.3.0: + resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} dependencies: path-key: 4.0.0 @@ -2469,16 +2334,16 @@ packages: engines: {node: '>=12'} dev: true - /path-scurry@1.10.1: - resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==} + /path-scurry@1.10.2: + resolution: {integrity: sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA==} engines: {node: '>=16 || 14 >=14.17'} dependencies: lru-cache: 10.2.0 minipass: 7.0.4 dev: true - /path-to-regexp@6.2.1: - resolution: {integrity: sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==} + /path-to-regexp@6.2.2: + resolution: {integrity: sha512-GQX3SSMokngb36+whdpRXE+3f9V8UzyAorlYvOGx87ufGHehNTn5lCxrKtLyZ4Yl/wEKnNnr98ZzOwwDZV5ogw==} dev: true /path-type@4.0.0: @@ -2508,21 +2373,21 @@ packages: engines: {node: '>=8.6'} dev: true - /pkg-types@1.0.3: - resolution: {integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==} + /pkg-types@1.1.0: + resolution: {integrity: sha512-/RpmvKdxKf8uILTtoOhAgf30wYbP2Qw+L9p3Rvshx1JZVX+XQNZQFjlbmGHEGIm4CkVPlSn+NXmIM8+9oWQaSA==} dependencies: - jsonc-parser: 3.2.1 - mlly: 1.5.0 + confbox: 0.1.7 + mlly: 1.6.1 pathe: 1.1.2 dev: true - /postcss@8.4.33: - resolution: {integrity: sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==} + /postcss@8.4.38: + resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==} engines: {node: ^10 || ^12 || >=14} dependencies: nanoid: 3.3.7 picocolors: 1.0.0 - source-map-js: 1.0.2 + source-map-js: 1.2.0 dev: true /prelude-ls@1.2.1: @@ -2537,8 +2402,8 @@ packages: fast-diff: 1.3.0 dev: true - /prettier@3.2.4: - resolution: {integrity: sha512-FWu1oLHKCrtpO1ypU6J0SbK2d9Ckwysq6bHj/uaCP26DxrPpppCLQRGVuqAxSTvhF00AcvDRyYrLNW7ocBhFFQ==} + /prettier@3.2.5: + resolution: {integrity: sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==} engines: {node: '>=14'} hasBin: true dev: true @@ -2609,33 +2474,37 @@ packages: engines: {iojs: '>=1.0.0', node: '>=0.10.0'} dev: true - /rimraf@3.0.2: - resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + /rimraf@5.0.5: + resolution: {integrity: sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==} + engines: {node: '>=14'} hasBin: true dependencies: - glob: 7.2.3 + glob: 10.3.12 dev: true - /rollup@4.9.6: - resolution: {integrity: sha512-05lzkCS2uASX0CiLFybYfVkwNbKZG5NFQ6Go0VWyogFTXXbR039UVsegViTntkk4OglHBdF54ccApXRRuXRbsg==} + /rollup@4.16.0: + resolution: {integrity: sha512-joxy/Hd4Ee289394//Q1aoebcxXyHasDieCTk8YtP4G4al4TUlx85EnuCLrfrdtLzrna9kNjH++Sx063wxSgmA==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true dependencies: '@types/estree': 1.0.5 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.9.6 - '@rollup/rollup-android-arm64': 4.9.6 - '@rollup/rollup-darwin-arm64': 4.9.6 - '@rollup/rollup-darwin-x64': 4.9.6 - '@rollup/rollup-linux-arm-gnueabihf': 4.9.6 - '@rollup/rollup-linux-arm64-gnu': 4.9.6 - '@rollup/rollup-linux-arm64-musl': 4.9.6 - '@rollup/rollup-linux-riscv64-gnu': 4.9.6 - '@rollup/rollup-linux-x64-gnu': 4.9.6 - '@rollup/rollup-linux-x64-musl': 4.9.6 - '@rollup/rollup-win32-arm64-msvc': 4.9.6 - '@rollup/rollup-win32-ia32-msvc': 4.9.6 - '@rollup/rollup-win32-x64-msvc': 4.9.6 + '@rollup/rollup-android-arm-eabi': 4.16.0 + '@rollup/rollup-android-arm64': 4.16.0 + '@rollup/rollup-darwin-arm64': 4.16.0 + '@rollup/rollup-darwin-x64': 4.16.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.16.0 + '@rollup/rollup-linux-arm-musleabihf': 4.16.0 + '@rollup/rollup-linux-arm64-gnu': 4.16.0 + '@rollup/rollup-linux-arm64-musl': 4.16.0 + '@rollup/rollup-linux-powerpc64le-gnu': 4.16.0 + '@rollup/rollup-linux-riscv64-gnu': 4.16.0 + '@rollup/rollup-linux-s390x-gnu': 4.16.0 + '@rollup/rollup-linux-x64-gnu': 4.16.0 + '@rollup/rollup-linux-x64-musl': 4.16.0 + '@rollup/rollup-win32-arm64-msvc': 4.16.0 + '@rollup/rollup-win32-ia32-msvc': 4.16.0 + '@rollup/rollup-win32-x64-msvc': 4.16.0 fsevents: 2.3.3 dev: true @@ -2653,8 +2522,8 @@ packages: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} dev: true - /semver@7.5.4: - resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} + /semver@7.6.0: + resolution: {integrity: sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==} engines: {node: '>=10'} hasBin: true dependencies: @@ -2698,7 +2567,7 @@ packages: '@sinonjs/commons': 3.0.1 '@sinonjs/fake-timers': 11.2.2 '@sinonjs/samsam': 8.0.0 - diff: 5.1.0 + diff: 5.2.0 nise: 5.1.9 supports-color: 7.2.0 dev: true @@ -2708,13 +2577,8 @@ packages: engines: {node: '>=8'} dev: true - /source-map-js@1.0.2: - resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} - engines: {node: '>=0.10.0'} - dev: true - - /source-map@0.6.1: - resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + /source-map-js@1.2.0: + resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} engines: {node: '>=0.10.0'} dev: true @@ -2779,10 +2643,10 @@ packages: engines: {node: '>=8'} dev: true - /strip-literal@1.3.0: - resolution: {integrity: sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==} + /strip-literal@2.1.0: + resolution: {integrity: sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==} dependencies: - acorn: 8.11.3 + js-tokens: 9.0.0 dev: true /supports-color@7.2.0: @@ -2812,6 +2676,11 @@ packages: tslib: 2.6.2 dev: true + /tapable@2.2.1: + resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} + engines: {node: '>=6'} + dev: true + /test-exclude@6.0.0: resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} engines: {node: '>=8'} @@ -2825,20 +2694,25 @@ packages: resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} dev: true - /tinybench@2.6.0: - resolution: {integrity: sha512-N8hW3PG/3aOoZAN5V/NSAEDz0ZixDSSt5b/a05iqtpgfLWMSVuCo7w0k2vVvEjdrIoeGqZzweX2WlyioNIHchA==} + /tinybench@2.8.0: + resolution: {integrity: sha512-1/eK7zUnIklz4JUUlL+658n58XO2hHLQfSk1Zf2LKieUjxidN16eKFEoDEfjHc3ohofSSqK3X5yO6VGb6iW8Lw==} dev: true - /tinypool@0.8.2: - resolution: {integrity: sha512-SUszKYe5wgsxnNOVlBYO6IC+8VGWdVGZWAqUxp3UErNBtptZvWbwyUOyzNL59zigz2rCA92QiL3wvG+JDSdJdQ==} + /tinypool@0.8.4: + resolution: {integrity: sha512-i11VH5gS6IFeLY3gMBQ00/MmLncVP7JLXOw1vlgkytLmJK7QnEr7NXf0LBdxfmNPAeyetukOk0bOYrJrFGjYJQ==} engines: {node: '>=14.0.0'} dev: true - /tinyspy@2.2.0: - resolution: {integrity: sha512-d2eda04AN/cPOR89F7Xv5bK/jrQEhmcLFe6HFldoeO9AJtps+fqEnh486vnT/8y4bw38pSyxDcTCAq+Ks2aJTg==} + /tinyspy@2.2.1: + resolution: {integrity: sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==} engines: {node: '>=14.0.0'} dev: true + /tmp@0.2.3: + resolution: {integrity: sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==} + engines: {node: '>=14.14'} + dev: true + /to-fast-properties@2.0.0: resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} engines: {node: '>=4'} @@ -2851,16 +2725,16 @@ packages: is-number: 7.0.0 dev: true - /ts-api-utils@1.0.3(typescript@5.3.3): - resolution: {integrity: sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==} - engines: {node: '>=16.13.0'} + /ts-api-utils@1.3.0(typescript@5.4.5): + resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} + engines: {node: '>=16'} peerDependencies: typescript: '>=4.2.0' dependencies: - typescript: 5.3.3 + typescript: 5.4.5 dev: true - /ts-node@10.9.2(@types/node@20.11.13)(typescript@5.3.3): + /ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5): resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} hasBin: true peerDependencies: @@ -2875,18 +2749,18 @@ packages: optional: true dependencies: '@cspotcode/source-map-support': 0.8.1 - '@tsconfig/node10': 1.0.9 + '@tsconfig/node10': 1.0.11 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 20.11.13 + '@types/node': 20.12.7 acorn: 8.11.3 acorn-walk: 8.3.2 arg: 4.1.3 create-require: 1.1.1 diff: 4.0.2 make-error: 1.3.6 - typescript: 5.3.3 + typescript: 5.4.5 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 dev: true @@ -2916,25 +2790,44 @@ packages: engines: {node: '>=4'} dev: true - /type-fest@0.20.2: - resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} - engines: {node: '>=10'} + /typescript-eslint@7.7.0(eslint@9.1.0)(typescript@5.4.5): + resolution: {integrity: sha512-wZZ+7mTQJCn4mGAvzdERtL4vwKGM/mF9cMSMeKUllz3Hgbd1Mdd5L60Q+nJmCio9RB4OyMMr0EX4Ry2Q7jiAyw==} + engines: {node: ^18.18.0 || >=20.0.0} + peerDependencies: + eslint: ^8.56.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + dependencies: + '@typescript-eslint/eslint-plugin': 7.7.0(@typescript-eslint/parser@7.7.0)(eslint@9.1.0)(typescript@5.4.5) + '@typescript-eslint/parser': 7.7.0(eslint@9.1.0)(typescript@5.4.5) + '@typescript-eslint/utils': 7.7.0(eslint@9.1.0)(typescript@5.4.5) + eslint: 9.1.0 + typescript: 5.4.5 + transitivePeerDependencies: + - supports-color dev: true - /typescript@5.3.3: - resolution: {integrity: sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==} + /typescript@5.4.5: + resolution: {integrity: sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==} engines: {node: '>=14.17'} hasBin: true dev: true - /ufo@1.3.2: - resolution: {integrity: sha512-o+ORpgGwaYQXgqGDwd+hkS4PuZ3QnmqMMxRuajK/a38L6fTpcE5GPIfrf+L/KemFzfUpeUQc1rRS1iDBozvnFA==} + /ufo@1.5.3: + resolution: {integrity: sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==} dev: true /undici-types@5.26.5: resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} dev: true + /universalify@2.0.1: + resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} + engines: {node: '>= 10.0.0'} + dev: true + /uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} dependencies: @@ -2953,13 +2846,13 @@ packages: resolution: {integrity: sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==} engines: {node: '>=10.12.0'} dependencies: - '@jridgewell/trace-mapping': 0.3.22 + '@jridgewell/trace-mapping': 0.3.25 '@types/istanbul-lib-coverage': 2.0.6 convert-source-map: 2.0.0 dev: true - /vite-node@1.2.2(@types/node@20.11.13): - resolution: {integrity: sha512-1as4rDTgVWJO3n1uHmUYqq7nsFgINQ9u+mRcXpjeOMJUmviqNKjcZB7UfRZrlM7MjYXMKpuWp5oGkjaFLnjawg==} + /vite-node@1.5.0(@types/node@20.12.7): + resolution: {integrity: sha512-tV8h6gMj6vPzVCa7l+VGq9lwoJjW8Y79vst8QZZGiuRAfijU+EEWuc0kFpmndQrWhMMhet1jdSF+40KSZUqIIw==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true dependencies: @@ -2967,7 +2860,7 @@ packages: debug: 4.3.4(supports-color@8.1.1) pathe: 1.1.2 picocolors: 1.0.0 - vite: 5.0.13(@types/node@20.11.13) + vite: 5.2.10(@types/node@20.12.7) transitivePeerDependencies: - '@types/node' - less @@ -2979,8 +2872,8 @@ packages: - terser dev: true - /vite@5.0.13(@types/node@20.11.13): - resolution: {integrity: sha512-/9ovhv2M2dGTuA+dY93B9trfyWMDRQw2jdVBhHNP6wr0oF34wG2i/N55801iZIpgUpnHDm4F/FabGQLyc+eOgg==} + /vite@5.2.10(@types/node@20.12.7): + resolution: {integrity: sha512-PAzgUZbP7msvQvqdSD+ErD5qGnSFiGOoWmV5yAKUEI0kdhjbH6nMWVyZQC/hSc4aXwc0oJ9aEdIiF9Oje0JFCw==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: @@ -3007,23 +2900,23 @@ packages: terser: optional: true dependencies: - '@types/node': 20.11.13 - esbuild: 0.19.12 - postcss: 8.4.33 - rollup: 4.9.6 + '@types/node': 20.12.7 + esbuild: 0.20.2 + postcss: 8.4.38 + rollup: 4.16.0 optionalDependencies: fsevents: 2.3.3 dev: true - /vitest@1.2.2(@types/node@20.11.13): - resolution: {integrity: sha512-d5Ouvrnms3GD9USIK36KG8OZ5bEvKEkITFtnGv56HFaSlbItJuYr7hv2Lkn903+AvRAgSixiamozUVfORUekjw==} + /vitest@1.5.0(@types/node@20.12.7): + resolution: {integrity: sha512-d8UKgR0m2kjdxDWX6911uwxout6GHS0XaGH1cksSIVVG8kRlE7G7aBw7myKQCvDI5dT4j7ZMa+l706BIORMDLw==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: '@edge-runtime/vm': '*' '@types/node': ^18.0.0 || >=20.0.0 - '@vitest/browser': ^1.0.0 - '@vitest/ui': ^1.0.0 + '@vitest/browser': 1.5.0 + '@vitest/ui': 1.5.0 happy-dom: '*' jsdom: '*' peerDependenciesMeta: @@ -3040,27 +2933,26 @@ packages: jsdom: optional: true dependencies: - '@types/node': 20.11.13 - '@vitest/expect': 1.2.2 - '@vitest/runner': 1.2.2 - '@vitest/snapshot': 1.2.2 - '@vitest/spy': 1.2.2 - '@vitest/utils': 1.2.2 + '@types/node': 20.12.7 + '@vitest/expect': 1.5.0 + '@vitest/runner': 1.5.0 + '@vitest/snapshot': 1.5.0 + '@vitest/spy': 1.5.0 + '@vitest/utils': 1.5.0 acorn-walk: 8.3.2 - cac: 6.7.14 chai: 4.4.1 debug: 4.3.4(supports-color@8.1.1) execa: 8.0.1 local-pkg: 0.5.0 - magic-string: 0.30.5 + magic-string: 0.30.10 pathe: 1.1.2 picocolors: 1.0.0 std-env: 3.7.0 - strip-literal: 1.3.0 - tinybench: 2.6.0 - tinypool: 0.8.2 - vite: 5.0.13(@types/node@20.11.13) - vite-node: 1.2.2(@types/node@20.11.13) + strip-literal: 2.1.0 + tinybench: 2.8.0 + tinypool: 0.8.4 + vite: 5.2.10(@types/node@20.12.7) + vite-node: 1.5.0(@types/node@20.12.7) why-is-node-running: 2.2.2 transitivePeerDependencies: - less @@ -3153,7 +3045,7 @@ packages: engines: {node: '>=10'} dependencies: cliui: 7.0.4 - escalade: 3.1.1 + escalade: 3.1.2 get-caller-file: 2.0.5 require-directory: 2.1.1 string-width: 4.2.3 @@ -3166,7 +3058,7 @@ packages: engines: {node: '>=12'} dependencies: cliui: 8.0.1 - escalade: 3.1.1 + escalade: 3.1.2 get-caller-file: 2.0.5 require-directory: 2.1.1 string-width: 4.2.3 diff --git a/sampleWorkspace/.vscode/setttings.json b/sampleWorkspace/.vscode/setttings.json new file mode 100644 index 0000000..f76546e --- /dev/null +++ b/sampleWorkspace/.vscode/setttings.json @@ -0,0 +1,4 @@ +{ + "files.eol": "\n", + "security.workspace.trust.enabled": false +} diff --git a/sampleWorkspace/README.md b/sampleWorkspace/README.md new file mode 100644 index 0000000..eff90f7 --- /dev/null +++ b/sampleWorkspace/README.md @@ -0,0 +1 @@ +# 用于测试扩展 diff --git a/sampleWorkspace/test.code-workspace b/sampleWorkspace/test.code-workspace new file mode 100644 index 0000000..86129ad --- /dev/null +++ b/sampleWorkspace/test.code-workspace @@ -0,0 +1,10 @@ +{ + "folders": [ + { "path": "file-header" }, + { "path": "file-header-project" }, + { "path": "function-comment-for-ts" }, + { "path": "function-comment-for-go" }, + { "path": "workspace" }, + ], + "settings": {}, +} diff --git a/src/commands/commentAllLogMessages.ts b/src/commands/commentAllLogMessages.ts index abef826..a6c9302 100644 --- a/src/commands/commentAllLogMessages.ts +++ b/src/commands/commentAllLogMessages.ts @@ -1,6 +1,8 @@ +import * as vscode from 'vscode'; + import { logger } from '@/extension'; import { instanceDebugMessage } from '@/utils/instanceDebugMessage'; -import * as vscode from 'vscode'; + import { Command, ExtensionProperties, Message } from '../typings'; export function commentAllLogMessagesCommand(): Command { @@ -18,9 +20,7 @@ export function commentAllLogMessagesCommand(): Command { const { debugMessage } = instanceDebugMessage(editor); // 获取要使用的logFunction - const logFunctionByLanguageId = debugMessage - ?.getLanguageProcessor() - .getLogFunction(logFunction); + const logFunctionByLanguageId = debugMessage?.getLanguageProcessor().getLogFunction(logFunction); function logFunctionToUse(): string { if (args && args.length > 0 && typeof args[0] === 'object' && args[0] !== null) { const firstArg = args[0] as Record; diff --git a/src/commands/deleteAllLogMessages.ts b/src/commands/deleteAllLogMessages.ts index bc0efa9..962c45e 100644 --- a/src/commands/deleteAllLogMessages.ts +++ b/src/commands/deleteAllLogMessages.ts @@ -1,6 +1,8 @@ +import * as vscode from 'vscode'; + import { logger } from '@/extension'; import { instanceDebugMessage } from '@/utils/instanceDebugMessage'; -import * as vscode from 'vscode'; + import { Command, ExtensionProperties, Message } from '../typings'; // 导出一个函数,用于删除所有日志消息 @@ -24,9 +26,7 @@ export function deleteAllLogMessagesCommand(): Command { // 获取当前文档 const document: vscode.TextDocument = editor.document; // 检测所有日志消息 - const logFunctionByLanguageId = debugMessage - ?.getLanguageProcessor() - .getLogFunction(logFunction); + const logFunctionByLanguageId = debugMessage?.getLanguageProcessor().getLogFunction(logFunction); const logMessages: Message[] = debugMessage.detectAll( document, logFunctionByLanguageId, @@ -50,10 +50,7 @@ export function deleteAllLogMessagesCommand(): Command { } // 删除当前行后面的空行 lineNumber = line.end.line; - while ( - lineNumber < document.lineCount && - document.lineAt(lineNumber).isEmptyOrWhitespace - ) { + while (lineNumber < document.lineCount && document.lineAt(lineNumber).isEmptyOrWhitespace) { const lineToDelete = document.lineAt(lineNumber).rangeIncludingLineBreak; editBuilder.delete(lineToDelete); lineNumber++; diff --git a/src/commands/displayLogMessage.ts b/src/commands/displayLogMessage.ts index 2953cc9..1a8d308 100644 --- a/src/commands/displayLogMessage.ts +++ b/src/commands/displayLogMessage.ts @@ -1,6 +1,8 @@ +import * as vscode from 'vscode'; + import { logger } from '@/extension'; import { instanceDebugMessage } from '@/utils/instanceDebugMessage'; -import * as vscode from 'vscode'; + import { Command, ExtensionProperties } from '../typings'; import { getTabSize } from '../utils/getTabSize'; diff --git a/src/commands/index.ts b/src/commands/index.ts index b4865ac..4442ccd 100644 --- a/src/commands/index.ts +++ b/src/commands/index.ts @@ -1,9 +1,9 @@ -import { displayLogMessageCommand } from './displayLogMessage'; +import { Command } from '../typings'; import { commentAllLogMessagesCommand } from './commentAllLogMessages'; -import { uncommentAllLogMessagesCommand } from './uncommentAllLogMessages'; import { deleteAllLogMessagesCommand } from './deleteAllLogMessages'; +import { displayLogMessageCommand } from './displayLogMessage'; +import { uncommentAllLogMessagesCommand } from './uncommentAllLogMessages'; import { updateLineNumAllLogMessagesCommand } from './updateLineNumAllLogMessages'; -import { Command } from '../typings'; export function getAllCommands(): Array { return [ diff --git a/src/commands/uncommentAllLogMessages.ts b/src/commands/uncommentAllLogMessages.ts index 326bda7..182bd99 100644 --- a/src/commands/uncommentAllLogMessages.ts +++ b/src/commands/uncommentAllLogMessages.ts @@ -1,16 +1,14 @@ +import * as vscode from 'vscode'; + import { logger } from '@/extension'; import { instanceDebugMessage } from '@/utils/instanceDebugMessage'; -import * as vscode from 'vscode'; + import { Command, ExtensionProperties, Message } from '../typings'; export function uncommentAllLogMessagesCommand(): Command { return { name: 'turboConsoleLog.uncommentAllLogMessages', - handler: async ({ - delimiterInsideMessage, - logMessagePrefix, - logFunction, - }: ExtensionProperties) => { + handler: async ({ delimiterInsideMessage, logMessagePrefix, logFunction }: ExtensionProperties) => { // 获取当前激活的编辑器 const editor: vscode.TextEditor | undefined = vscode.window.activeTextEditor; // 如果没有激活的编辑器,则直接返回 @@ -22,9 +20,7 @@ export function uncommentAllLogMessagesCommand(): Command { const document: vscode.TextDocument = editor.document; // 检测所有日志消息 - const logFunctionByLanguageId = debugMessage - ?.getLanguageProcessor() - .getLogFunction(logFunction); + const logFunctionByLanguageId = debugMessage?.getLanguageProcessor().getLogFunction(logFunction); const logMessages: Message[] = debugMessage.detectAll( document, logFunctionByLanguageId, diff --git a/src/commands/updateLineNumAllLogMessages.ts b/src/commands/updateLineNumAllLogMessages.ts index f7c4289..3db3721 100644 --- a/src/commands/updateLineNumAllLogMessages.ts +++ b/src/commands/updateLineNumAllLogMessages.ts @@ -1,14 +1,15 @@ +import * as vscode from 'vscode'; + import { logger } from '@/extension'; import { instanceDebugMessage } from '@/utils/instanceDebugMessage'; -import * as vscode from 'vscode'; + import { Command, ExtensionProperties, Message } from '../typings'; export function updateLineNumAllLogMessagesCommand(): Command { return { name: 'turboConsoleLog.updateLineNumAllLogMessages', handler: async (extensionProperties: ExtensionProperties) => { - const { logFunction, logMessagePrefix, delimiterInsideMessage, includeFileNameAndLineNum } = - extensionProperties; + const { logFunction, logMessagePrefix, delimiterInsideMessage, includeFileNameAndLineNum } = extensionProperties; // 获取当前激活的编辑器 const editor: vscode.TextEditor | undefined = vscode.window.activeTextEditor; @@ -28,9 +29,7 @@ export function updateLineNumAllLogMessagesCommand(): Command { } // 检测所有日志消息 - const logFunctionByLanguageId = debugMessage - ?.getLanguageProcessor() - .getLogFunction(logFunction); + const logFunctionByLanguageId = debugMessage?.getLanguageProcessor().getLogFunction(logFunction); const logMessages: Message[] = debugMessage.detectAll( document, logFunctionByLanguageId, diff --git a/src/debug-message/DebugMessage.ts b/src/debug-message/DebugMessage.ts index 96ff102..474fba0 100644 --- a/src/debug-message/DebugMessage.ts +++ b/src/debug-message/DebugMessage.ts @@ -1,4 +1,5 @@ import { TextDocument, TextEditorEdit } from 'vscode'; + import { ExtensionProperties, Message } from '../typings'; import { LanguageProcessor } from './types'; diff --git a/src/debug-message/GeneralDebugMessage.ts b/src/debug-message/GeneralDebugMessage.ts index 4711471..54cc905 100644 --- a/src/debug-message/GeneralDebugMessage.ts +++ b/src/debug-message/GeneralDebugMessage.ts @@ -1,9 +1,11 @@ -import { Position, TextDocument, TextEditorEdit } from 'vscode'; import { omit } from 'lodash'; +import { Position, TextDocument, TextEditorEdit } from 'vscode'; + import { closingContextLine } from '@/utils/closingContextLine'; + import { BracketType, ExtensionProperties, Message } from '../typings'; -import { LanguageProcessor } from './types'; import { DebugMessage } from './DebugMessage'; +import { LanguageProcessor } from './types'; export class GeneralDebugMessage extends DebugMessage { // 构造函数 @@ -17,22 +19,16 @@ export class GeneralDebugMessage extends DebugMessage { } // 返回消息前导空格 - public spacesBeforeLogMsg( - document: TextDocument, - selectedVarLine: number, - logMsgLine: number, - ): string { + public spacesBeforeLogMsg(document: TextDocument, selectedVarLine: number, logMsgLine: number): string { const selectedVarTextLine = document.lineAt(selectedVarLine); - const selectedVarTextLineFirstNonWhitespaceCharacterIndex = - selectedVarTextLine.firstNonWhitespaceCharacterIndex; + const selectedVarTextLineFirstNonWhitespaceCharacterIndex = selectedVarTextLine.firstNonWhitespaceCharacterIndex; const spacesBeforeSelectedVarLine = selectedVarTextLine.text .split('') .splice(0, selectedVarTextLineFirstNonWhitespaceCharacterIndex) .reduce((previousValue, currentValue) => previousValue + currentValue, ''); if (logMsgLine < document.lineCount) { const logMsgTextLine = document.lineAt(logMsgLine); - const logMsgTextLineFirstNonWhitespaceCharacterIndex = - logMsgTextLine.firstNonWhitespaceCharacterIndex; + const logMsgTextLineFirstNonWhitespaceCharacterIndex = logMsgTextLine.firstNonWhitespaceCharacterIndex; const spacesBeforeLogMsgLine = logMsgTextLine.text .split('') .splice(0, logMsgTextLineFirstNonWhitespaceCharacterIndex) @@ -82,10 +78,7 @@ export class GeneralDebugMessage extends DebugMessage { selectedVar: string, lineOfSelectedVar: number, lineOfLogMsg: number, - extensionProperties: Omit< - ExtensionProperties, - 'wrapLogMessage' | 'insertEmptyLineAfterLogMessage' - >, + extensionProperties: Omit, ): string { // 获取文件名 const fileName = document.fileName.includes('/') @@ -111,19 +104,13 @@ export class GeneralDebugMessage extends DebugMessage { : '' }${ includeFileNameAndLineNum - ? `file: ${fileName}:${ - lineOfLogMsg + (insertEmptyLineBeforeLogMessage ? 2 : 1) - } ${delimiterInsideMessage} ` + ? `file: ${fileName}:${lineOfLogMsg + (insertEmptyLineBeforeLogMessage ? 2 : 1)} ${delimiterInsideMessage} ` : '' }${selectedVar}${logMessageSuffix}${quote}${this.getLanguageProcessor()?.getConcatenatedString()}${this.getLanguageProcessor()?.variableToString(selectedVar)}`; if (!logFunctionByLanguageId) { return this.getLanguageProcessor()?.getPrintStatement(content, '', semicolon); } - return this.getLanguageProcessor()?.getPrintStatement( - content, - logFunctionByLanguageId, - semicolon, - ); + return this.getLanguageProcessor()?.getPrintStatement(content, logFunctionByLanguageId, semicolon); } /** @@ -146,11 +133,7 @@ export class GeneralDebugMessage extends DebugMessage { extensionProperties: ExtensionProperties, ): void { const lineOfLogMsg: number = this.line(lineOfSelectedVar); - const spacesBeforeMsg: string = this.spacesBeforeLogMsg( - document, - lineOfSelectedVar, - lineOfLogMsg, - ); + const spacesBeforeMsg: string = this.spacesBeforeLogMsg(document, lineOfSelectedVar, lineOfLogMsg); // 构造调试信息内容 const debuggingMsgContent: string = this.constructDebuggingMsgContent( document, @@ -160,11 +143,7 @@ export class GeneralDebugMessage extends DebugMessage { omit(extensionProperties, ['wrapLogMessage', 'insertEmptyLineAfterLogMessage']), ); // 构造调试信息 - const debuggingMsg: string = this.constructDebuggingMsg( - extensionProperties, - debuggingMsgContent, - spacesBeforeMsg, - ); + const debuggingMsg: string = this.constructDebuggingMsg(extensionProperties, debuggingMsgContent, spacesBeforeMsg); // 获取选中变量的行 // const selectedVarLine = document.lineAt(lineOfSelectedVar); // 添加基础调试信息 diff --git a/src/debug-message/LanguageProcessor.ts b/src/debug-message/LanguageProcessor.ts index 7c1fc11..0121bd6 100644 --- a/src/debug-message/LanguageProcessor.ts +++ b/src/debug-message/LanguageProcessor.ts @@ -1,4 +1,5 @@ import { ExtensionProperties } from '@/typings/extension/types'; + import { LanguageProcessor } from './types'; export class GeneralLanguageProcessor implements LanguageProcessor { @@ -48,11 +49,7 @@ export class GeneralLanguageProcessor implements LanguageProcessor { } } - public getPrintStatement( - variableName: string, - logFunctionByLanguageId?: string, - semicolon: string = '', - ): string { + public getPrintStatement(variableName: string, logFunctionByLanguageId?: string, semicolon: string = ''): string { const printFunction = logFunctionByLanguageId || this.getPrintString(); switch (this.languageId) { case 'javascript': diff --git a/src/debug-message/types.ts b/src/debug-message/types.ts index 241b8d0..7b13507 100644 --- a/src/debug-message/types.ts +++ b/src/debug-message/types.ts @@ -3,11 +3,7 @@ import { ExtensionProperties } from '@/typings'; export interface LanguageProcessor { getLogFunction(logFunction: ExtensionProperties['logFunction']): string; getPrintString(): string; - getPrintStatement( - variableName: string, - logFunctionByLanguageId?: string, - semicolon?: string, - ): string; + getPrintStatement(variableName: string, logFunctionByLanguageId?: string, semicolon?: string): string; getSingleLineCommentSymbol(): string; getConcatenatedString(): string; variableToString(variableName: string): string; diff --git a/src/error/CustomErrorCode.enum.ts b/src/error/CustomErrorCode.enum.ts index b89a1fc..2f0e1e9 100644 --- a/src/error/CustomErrorCode.enum.ts +++ b/src/error/CustomErrorCode.enum.ts @@ -15,7 +15,4 @@ export const customErrorCodeMessages: ErrorCodeMessage = { ...execCustomErrorCodeMessage, }; -export const { errorCodeEnum, errorCodeMessages } = createErrorCodeMessages( - CustomErrorCode, - customErrorCodeMessages, -); +export const { errorCodeEnum, errorCodeMessages } = createErrorCodeMessages(CustomErrorCode, customErrorCodeMessages); diff --git a/src/extension.ts b/src/extension.ts index 241e945..8bb1d3d 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -1,5 +1,6 @@ import { Logger } from '@ygqygq2/vscode-log'; import * as vscode from 'vscode'; + import { getAllCommands } from './commands/'; import { CHANNEL_TITLE } from './constants'; import { CustomError, errorCodeMessages } from './error'; @@ -12,8 +13,7 @@ export const logger = Logger.getInstance(); // 导出一个函数,用于激活插件 export function activate(): void { // 获取配置信息 - const config: vscode.WorkspaceConfiguration = - vscode.workspace.getConfiguration('turboConsoleLog'); + const config: vscode.WorkspaceConfiguration = vscode.workspace.getConfiguration('turboConsoleLog'); // 获取扩展属性 const properties: ExtensionProperties = getExtensionProperties(config); // 获取所有命令 diff --git a/src/test/ready.ts b/src/test/ready.ts new file mode 100644 index 0000000..865b883 --- /dev/null +++ b/src/test/ready.ts @@ -0,0 +1,28 @@ +import fs from 'fs-extra'; +import path from 'path'; +import * as tmp from 'tmp'; + +async function createTempDir() { + return new Promise((resolve, reject) => { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + tmp.dir((err: any, dir: string | PromiseLike) => { + if (err) { + return reject(err); + } + resolve(dir); + }); + }); +} + +export async function createSettings(): Promise { + const userDataDirectory = await createTempDir(); + process.env.VSC_JUPYTER_VSCODE_SETTINGS_DIR = userDataDirectory; + const settingsFile = path.join(userDataDirectory, 'User', 'settings.json'); + const defaultSettings: Record = { + 'security.workspace.trust.enabled': false, // Disable trusted workspaces. + }; + + fs.ensureDirSync(path.dirname(settingsFile)); + fs.writeFileSync(settingsFile, JSON.stringify(defaultSettings, undefined, 4)); + return userDataDirectory; +} diff --git a/src/test/runTests.ts b/src/test/runTests.ts index 56ac642..32ddbdd 100644 --- a/src/test/runTests.ts +++ b/src/test/runTests.ts @@ -1,6 +1,7 @@ -import * as path from 'path'; - import { runTests } from '@vscode/test-electron'; +import path from 'path'; + +import { createSettings } from './ready'; async function main() { try { @@ -10,16 +11,32 @@ async function main() { // The path to test runner // Passed to --extensionTestsPath - const extensionTestsPath = path.resolve(__dirname, './suite/index'); + const extensionTestsPath = path.resolve(__dirname, `./suite/index`); + + const workspacePath = path.resolve('sampleWorkspace', 'test.code-workspace'); + const userDataDirectory = await createSettings(); // Download VS Code, unzip it and run the integration test await runTests({ + version: '1.88.0', extensionDevelopmentPath, extensionTestsPath, - launchArgs: ['--disable-extensions'], + launchArgs: [workspacePath] + .concat(['--skip-welcome']) + .concat(['--disable-extensions']) + .concat(['--skip-release-notes']) + .concat(['--enable-proposed-api']) + .concat(['--user-data-dir', userDataDirectory]), }); - } catch (err) { - console.error('Failed to run tests', err); + } catch (error) { + console.error('Failed to run tests'); + if (error instanceof Error) { + console.error('error message: ' + error.message); + console.error('error name: ' + error.name); + console.error('error stack: ' + error.stack); + } else { + console.error('No error object: ' + JSON.stringify(error)); + } process.exit(1); } } diff --git a/src/test/suite/displayLogMessage.test.ts b/src/test/suite/displayLogMessage.test.ts index f91aea5..19c3efd 100644 --- a/src/test/suite/displayLogMessage.test.ts +++ b/src/test/suite/displayLogMessage.test.ts @@ -1,13 +1,6 @@ -import { - Position, - Range, - Selection, - TextDocument, - TextEditor, - TextEditorEdit, - window, -} from 'vscode'; -import { describe, expect, it, vi, beforeEach, afterEach } from 'vitest'; +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'; +import { Position, Range, Selection, TextDocument, TextEditor, TextEditorEdit, window } from 'vscode'; + import { displayLogMessageCommand } from '@/commands/displayLogMessage'; import { ExtensionProperties } from '@/typings'; diff --git a/src/test/suite/index.ts b/src/test/suite/index.ts index 38ef4b5..21e940c 100644 --- a/src/test/suite/index.ts +++ b/src/test/suite/index.ts @@ -1,13 +1,13 @@ -import * as path from 'path'; -import Mocha from 'mocha'; import { glob } from 'glob'; +import Mocha from 'mocha'; +import * as path from 'path'; export async function run() { // 创建 mocha 实例 const mocha = new Mocha({ ui: 'tdd', color: true, - timeout: 10000 + timeout: 10000, }); const testsRoot = path.resolve(__dirname, '.'); @@ -15,7 +15,7 @@ export async function run() { // 获取所有测试文件 const tsFiles = await glob('**/*.test.js', { cwd: testsRoot }); console.log('获取到以下测试文件:'); - console.log("🚀 ~ file: index.ts:18 ~ tsFiles:", tsFiles) + console.log('🚀 ~ file: index.ts:18 ~ tsFiles:', tsFiles); return new Promise((resolve, reject) => { // 添加测试文件 diff --git a/src/test/unit/commands/commentAllLogMessages.spec.ts b/src/test/unit/commands/commentAllLogMessages.spec.ts index be9ecaf..6827694 100644 --- a/src/test/unit/commands/commentAllLogMessages.spec.ts +++ b/src/test/unit/commands/commentAllLogMessages.spec.ts @@ -1,8 +1,9 @@ -import { commentAllLogMessagesCommand } from '@/commands/commentAllLogMessages'; -import { ExtensionProperties } from '@/typings'; import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'; import { Position, Range, Selection, TextDocument, TextEditor, TextEditorEdit, window } from 'vscode'; +import { commentAllLogMessagesCommand } from '@/commands/commentAllLogMessages'; +import { ExtensionProperties } from '@/typings'; + vi.mock('vscode'); const { mockLogger } = await vi.hoisted(() => import('@/test/globalMocks')); vi.mock('@/extension', mockLogger); diff --git a/src/test/unit/commands/deleteAllLogMessages.spec.ts b/src/test/unit/commands/deleteAllLogMessages.spec.ts index 7146560..d48389b 100644 --- a/src/test/unit/commands/deleteAllLogMessages.spec.ts +++ b/src/test/unit/commands/deleteAllLogMessages.spec.ts @@ -1,15 +1,8 @@ +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'; +import { Position, Range, Selection, TextDocument, TextEditor, TextEditorEdit, window } from 'vscode'; + import { deleteAllLogMessagesCommand } from '@/commands/deleteAllLogMessages'; import { ExtensionProperties } from '@/typings'; -import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'; -import { - Position, - Range, - Selection, - TextDocument, - TextEditor, - TextEditorEdit, - window, -} from 'vscode'; vi.mock('vscode'); const { mockLogger } = await vi.hoisted(() => import('@/test/globalMocks')); diff --git a/src/test/unit/commands/displayLogMessage.spec.ts b/src/test/unit/commands/displayLogMessage.spec.ts index e097601..2916b00 100644 --- a/src/test/unit/commands/displayLogMessage.spec.ts +++ b/src/test/unit/commands/displayLogMessage.spec.ts @@ -1,15 +1,8 @@ +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'; +import { Position, Range, Selection, TextDocument, TextEditor, TextEditorEdit, window } from 'vscode'; + import { displayLogMessageCommand } from '@/commands/displayLogMessage'; import { ExtensionProperties } from '@/typings'; -import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'; -import { - Position, - Range, - Selection, - TextDocument, - TextEditor, - TextEditorEdit, - window, -} from 'vscode'; vi.mock('vscode'); const { mockLogger } = await vi.hoisted(() => import('@/test/globalMocks')); diff --git a/src/test/unit/commands/uncommentAllLogMessages.spec.ts b/src/test/unit/commands/uncommentAllLogMessages.spec.ts index 37d3703..94f3cd8 100644 --- a/src/test/unit/commands/uncommentAllLogMessages.spec.ts +++ b/src/test/unit/commands/uncommentAllLogMessages.spec.ts @@ -1,15 +1,8 @@ +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'; +import { Position, Range, Selection, TextDocument, TextEditor, TextEditorEdit, window } from 'vscode'; + import { uncommentAllLogMessagesCommand } from '@/commands/uncommentAllLogMessages'; import { ExtensionProperties } from '@/typings'; -import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'; -import { - Position, - Range, - Selection, - TextDocument, - TextEditor, - TextEditorEdit, - window, -} from 'vscode'; vi.mock('vscode'); const { mockLogger } = await vi.hoisted(() => import('@/test/globalMocks')); diff --git a/src/test/unit/commands/updateLineNumAllLogMessages.spec.ts b/src/test/unit/commands/updateLineNumAllLogMessages.spec.ts index b3eb46e..3c772de 100644 --- a/src/test/unit/commands/updateLineNumAllLogMessages.spec.ts +++ b/src/test/unit/commands/updateLineNumAllLogMessages.spec.ts @@ -1,15 +1,8 @@ +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'; +import { Position, Range, Selection, TextDocument, TextEditor, TextEditorEdit, window } from 'vscode'; + import { updateLineNumAllLogMessagesCommand } from '@/commands/updateLineNumAllLogMessages'; import { ExtensionProperties } from '@/typings'; -import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'; -import { - Position, - Range, - Selection, - TextDocument, - TextEditor, - TextEditorEdit, - window, -} from 'vscode'; vi.mock('vscode'); const { mockLogger } = await vi.hoisted(() => import('@/test/globalMocks')); diff --git a/src/test/unit/debug-message/DebugMessage.spec.ts b/src/test/unit/debug-message/DebugMessage.spec.ts index 9486458..a5f4cd7 100644 --- a/src/test/unit/debug-message/DebugMessage.spec.ts +++ b/src/test/unit/debug-message/DebugMessage.spec.ts @@ -1,8 +1,9 @@ +import { beforeEach, describe, expect, it, vi } from 'vitest'; import { TextDocument, TextEditorEdit } from 'vscode'; -import { describe, expect, beforeEach, it, vi } from 'vitest'; + import { DebugMessage } from '@/debug-message/DebugMessage'; -import { ExtensionProperties, Message } from '@/typings/extension/types'; import { LanguageProcessor } from '@/debug-message/types'; +import { ExtensionProperties, Message } from '@/typings/extension/types'; class TestDebugMessage extends DebugMessage { insertMessage( diff --git a/src/test/unit/debug-message/GeneralDebugMessage.spec.ts b/src/test/unit/debug-message/GeneralDebugMessage.spec.ts index b3acdbc..fb9f9b4 100644 --- a/src/test/unit/debug-message/GeneralDebugMessage.spec.ts +++ b/src/test/unit/debug-message/GeneralDebugMessage.spec.ts @@ -1,5 +1,6 @@ +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'; import { Position, Range, TextDocument, TextEditorEdit } from 'vscode'; -import { describe, expect, beforeEach, afterEach, it, vi } from 'vitest'; + import { GeneralDebugMessage } from '@/debug-message/GeneralDebugMessage'; import { LanguageProcessor } from '@/debug-message/types'; import { ExtensionProperties } from '@/typings'; @@ -64,14 +65,7 @@ describe('DebugMessage', () => { }); it('应该在指定行插入调试日志', () => { - debugMessage.insertMessage( - textEditor, - document, - selectedVar, - lineOfSelectedVar, - tabSize, - extensionProperties, - ); + debugMessage.insertMessage(textEditor, document, selectedVar, lineOfSelectedVar, tabSize, extensionProperties); // 这里增加换行符,不清楚 vscode 是不是默认插入有换行符,本身这里就是 mock expect(textEditor.insert).toHaveBeenCalledWith( diff --git a/src/test/unit/debug-message/LanguageProcessor.spec.ts b/src/test/unit/debug-message/LanguageProcessor.spec.ts index 9884259..d6527e6 100644 --- a/src/test/unit/debug-message/LanguageProcessor.spec.ts +++ b/src/test/unit/debug-message/LanguageProcessor.spec.ts @@ -1,7 +1,8 @@ import { expectTypeOf } from 'expect-type'; -import { ExtensionProperties } from '@/typings/extension/types'; +import { beforeEach, describe, expect, it } from 'vitest'; + import { GeneralLanguageProcessor } from '@/debug-message/LanguageProcessor'; -import { describe, expect, beforeEach, it } from 'vitest'; +import { ExtensionProperties } from '@/typings/extension/types'; describe('GeneralLanguageProcessor', () => { const logFunction: ExtensionProperties['logFunction'] = { @@ -69,11 +70,7 @@ describe('GeneralLanguageProcessor', () => { default: expectedResult = `${logFunctionByLanguageId || logFunction[languageId]}(${variableName})`; } - const result = languageProcessor.getPrintStatement( - variableName, - logFunctionByLanguageId, - semicolon, - ); + const result = languageProcessor.getPrintStatement(variableName, logFunctionByLanguageId, semicolon); expect(result).toBe(expectedResult); }); }; diff --git a/src/test/unit/utils/getTabSize.spec.ts b/src/test/unit/utils/getTabSize.spec.ts index 09dfa54..e1026f3 100644 --- a/src/test/unit/utils/getTabSize.spec.ts +++ b/src/test/unit/utils/getTabSize.spec.ts @@ -1,7 +1,8 @@ -import { getTabSize } from '@/utils/getTabSize'; import { expectTypeOf } from 'expect-type'; import { describe, expect, it } from 'vitest'; +import { getTabSize } from '@/utils/getTabSize'; + describe('getTabSize', () => { it('should return 4 if tabSize is not provided', () => { const result = getTabSize(undefined); diff --git a/src/test/unit/utils/instanceDebugMessage.spec.ts b/src/test/unit/utils/instanceDebugMessage.spec.ts index 1c1abeb..f02324f 100644 --- a/src/test/unit/utils/instanceDebugMessage.spec.ts +++ b/src/test/unit/utils/instanceDebugMessage.spec.ts @@ -1,5 +1,6 @@ -import { TextEditor } from 'vscode'; import { describe, expect, it, vi } from 'vitest'; +import { TextEditor } from 'vscode'; + import { instanceDebugMessage } from '@/utils/instanceDebugMessage'; vi.mock('vscode'); diff --git a/src/typings/extension/types.ts b/src/typings/extension/types.ts index 6fb0bd7..8cb7537 100644 --- a/src/typings/extension/types.ts +++ b/src/typings/extension/types.ts @@ -1,6 +1,7 @@ -import { LogMessageType } from './enums'; import { Range } from 'vscode'; +import { LogMessageType } from './enums'; + export type Command = { name: string; handler: (extensionProperties: ExtensionProperties, args?: unknown[]) => Promise; diff --git a/src/utils/checkRangeOverlapping.ts b/src/utils/checkRangeOverlapping.ts index 8307c3a..1b23a41 100644 --- a/src/utils/checkRangeOverlapping.ts +++ b/src/utils/checkRangeOverlapping.ts @@ -1,6 +1,7 @@ -import { Message } from '@/typings'; import { TextEditor } from 'vscode'; +import { Message } from '@/typings'; + export const checkRangeOverlapping = (logMessages: Message[], editor: TextEditor) => { const rangeToCheck = editor.selections[0]; const overlappingMessages = logMessages.filter(({ lines }) => { diff --git a/src/utils/closingContextLine.ts b/src/utils/closingContextLine.ts index 6b4e214..ba2860e 100644 --- a/src/utils/closingContextLine.ts +++ b/src/utils/closingContextLine.ts @@ -1,4 +1,5 @@ import { TextDocument } from 'vscode'; + import { BracketType } from '../typings'; import { locBrackets } from './locBrackets'; @@ -18,10 +19,7 @@ export function closingContextLine( // 当声明行小于文档行数时,循环 while (declarationLine < document.lineCount) { // 获取声明行中的打开括号和关闭括号的数量 - const { openingBrackets, closingBrackets } = locBrackets( - document.lineAt(declarationLine).text, - bracketType, - ); + const { openingBrackets, closingBrackets } = locBrackets(document.lineAt(declarationLine).text, bracketType); // 打开括号计数加一 nbrOfOpenedBraces += openingBrackets; // 关闭括号计数加一 diff --git a/src/utils/getMultiLineContextVariable.ts b/src/utils/getMultiLineContextVariable.ts index df9229e..d5271a3 100644 --- a/src/utils/getMultiLineContextVariable.ts +++ b/src/utils/getMultiLineContextVariable.ts @@ -1,7 +1,8 @@ import { TextDocument } from 'vscode'; + import { BracketType, MultilineContextVariable } from '../typings'; -import { locBrackets } from './locBrackets'; import { closingContextLine } from './closingContextLine'; +import { locBrackets } from './locBrackets'; // 导出一个函数,用于获取多行上下文变量 export function getMultiLineContextVariable( @@ -15,10 +16,7 @@ export function getMultiLineContextVariable( innerScope = true, ): MultilineContextVariable | null { // 获取括号的位置 - const { openingBrackets, closingBrackets } = locBrackets( - document.lineAt(lineNum).text, - bracketType, - ); + const { openingBrackets, closingBrackets } = locBrackets(document.lineAt(lineNum).text, bracketType); // 如果为内部作用域,并且括号类型相同,则返回null if (innerScope && openingBrackets !== 0 && openingBrackets === closingBrackets) { return null; diff --git a/src/utils/instanceDebugMessage.ts b/src/utils/instanceDebugMessage.ts index 6e3258c..0a1abf7 100644 --- a/src/utils/instanceDebugMessage.ts +++ b/src/utils/instanceDebugMessage.ts @@ -1,6 +1,7 @@ +import { TextEditor } from 'vscode'; + import { GeneralDebugMessage } from '@/debug-message/GeneralDebugMessage'; import { GeneralLanguageProcessor } from '@/debug-message/LanguageProcessor'; -import { TextEditor } from 'vscode'; export const instanceDebugMessage = (editor: TextEditor) => { if (!editor) { diff --git a/src/utils/spacesBeforeLine.ts b/src/utils/spacesBeforeLine.ts index e298a84..367a7c5 100644 --- a/src/utils/spacesBeforeLine.ts +++ b/src/utils/spacesBeforeLine.ts @@ -11,8 +11,7 @@ export function spacesBeforeLine( // 获取指定行 const textLine = document.lineAt(lineNumber); // 获取指定行第一个非空白字符的索引 - const lineFirstNonWhitespaceCharacterIndex = - textLine.firstNonWhitespaceCharacterIndex; + const lineFirstNonWhitespaceCharacterIndex = textLine.firstNonWhitespaceCharacterIndex; // 返回指定行号前空格的数量 return textLine.text .split('') diff --git a/tsconfig.suite.json b/tsconfig.suite.json new file mode 100644 index 0000000..0fb7e54 --- /dev/null +++ b/tsconfig.suite.json @@ -0,0 +1,29 @@ +{ + "compilerOptions": { + "module": "CommonJS", + "target": "ES2022", + "outDir": "out", + "lib": ["ES2022"], + "sourceMap": true, + "rootDir": "src", + "baseUrl": "./", + "strict": true /* enable all strict type-checking options */, + "noFallthroughCasesInSwitch": true /* Report errors for fallthrough cases in switch statement. */, + "noUnusedParameters": true /* Report errors on unused parameters. */, + "esModuleInterop": true, + "moduleResolution": "node", + "resolveJsonModule": true, + "skipLibCheck": true, + "paths": { + "@/*": ["src/*"] + }, + "types": ["node", "mocha"] + }, + "include": [ + "./src/**/*.ts", + "./src/**/*.d.ts", + "./node_modules/vscode/vscode.d.ts", + "./node_modules/vscode/lib/*" + ], + "exclude": ["node_modules", ".vscode-test", "out"] +}