From 7091bc4c5975ae0ccdcba5f2c2d0950058d8d243 Mon Sep 17 00:00:00 2001 From: "hashicorp-tsccr[bot]" Date: Mon, 22 Jul 2024 07:49:18 +0000 Subject: [PATCH 01/26] Result of tsccr-helper -log-level=info gha update -latest . --- .github/workflows/deploy.yml | 2 +- .github/workflows/test.yml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 7b2863d..911ebb7 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -55,7 +55,7 @@ jobs: uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 - name: Setup Node - uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2 + uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b # v4.0.3 with: node-version-file: '.nvmrc' cache: npm diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index dc204d3..f91d364 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -25,7 +25,7 @@ jobs: steps: - name: Checkout Repo uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 - - uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2 + - uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b # v4.0.3 with: node-version-file: '.nvmrc' cache: npm @@ -53,7 +53,7 @@ jobs: steps: - name: Checkout Repo uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 - - uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2 + - uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b # v4.0.3 with: node-version-file: '.nvmrc' cache: npm From a2c5313751996ddefae6f2964332ce4de1bcb06f Mon Sep 17 00:00:00 2001 From: Daniel Banck Date: Mon, 22 Jul 2024 12:10:48 +0200 Subject: [PATCH 02/26] Bump terraform-ls to 0.34.1 --- .changes/unreleased/BUG FIXES-20240722-121008.yaml | 6 ++++++ package.json | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 .changes/unreleased/BUG FIXES-20240722-121008.yaml diff --git a/.changes/unreleased/BUG FIXES-20240722-121008.yaml b/.changes/unreleased/BUG FIXES-20240722-121008.yaml new file mode 100644 index 0000000..f09ef77 --- /dev/null +++ b/.changes/unreleased/BUG FIXES-20240722-121008.yaml @@ -0,0 +1,6 @@ +kind: BUG FIXES +body: Fix validation error by checking for submodules when fetching schemas from the registry +time: 2024-07-22T12:10:08.460438+02:00 +custom: + Issue: "1772" + Repository: terraform-ls diff --git a/package.json b/package.json index 0bee0c0..a47be2d 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,7 @@ "vscode": "^1.86.2" }, "langServer": { - "version": "0.34.0" + "version": "0.34.1" }, "syntax": { "version": "0.5.0" From d17df0e7cf97d96a67e6cfcbb55573e8e0623de5 Mon Sep 17 00:00:00 2001 From: Daniel Banck Date: Mon, 22 Jul 2024 14:55:13 +0200 Subject: [PATCH 03/26] Release 2.32.1 (#1804) * Update changelog for 2.32.1 * Bump version to 2.32.1 --- .changes/unreleased/BUG FIXES-20240722-121008.yaml | 6 ------ .changes/v2.32.1.md | 6 ++++++ CHANGELOG.md | 6 ++++++ package-lock.json | 4 ++-- package.json | 2 +- 5 files changed, 15 insertions(+), 9 deletions(-) delete mode 100644 .changes/unreleased/BUG FIXES-20240722-121008.yaml create mode 100644 .changes/v2.32.1.md diff --git a/.changes/unreleased/BUG FIXES-20240722-121008.yaml b/.changes/unreleased/BUG FIXES-20240722-121008.yaml deleted file mode 100644 index f09ef77..0000000 --- a/.changes/unreleased/BUG FIXES-20240722-121008.yaml +++ /dev/null @@ -1,6 +0,0 @@ -kind: BUG FIXES -body: Fix validation error by checking for submodules when fetching schemas from the registry -time: 2024-07-22T12:10:08.460438+02:00 -custom: - Issue: "1772" - Repository: terraform-ls diff --git a/.changes/v2.32.1.md b/.changes/v2.32.1.md new file mode 100644 index 0000000..a918505 --- /dev/null +++ b/.changes/v2.32.1.md @@ -0,0 +1,6 @@ +## 2.32.1 (2024-07-22) + +BUG FIXES: + +* Fix validation error by checking for submodules when fetching schemas from the registry ([terraform-ls#1772](https://github.com/hashicorp/terraform-ls/issues/1772)) + diff --git a/CHANGELOG.md b/CHANGELOG.md index 8199de9..288d3c4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,12 @@ ENHANCEMENTS: * Add initial support for Terraform Stacks files and Deployment files. This provides block and attribute completion, hover, and diagnostics along with syntax validation for Terraform Stacks and Deployment files ([terraform-ls#1745](https://github.com/hashicorp/terraform-ls/issues/1745)) +## 2.32.1 (2024-07-22) + +BUG FIXES: + +* Fix validation error by checking for submodules when fetching schemas from the registry ([terraform-ls#1772](https://github.com/hashicorp/terraform-ls/issues/1772)) + ## 2.32.0 (2024-07-15) ENHANCEMENTS: diff --git a/package-lock.json b/package-lock.json index 4a87830..2ecf266 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "terraform", - "version": "2.32.0", + "version": "2.32.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "terraform", - "version": "2.32.0", + "version": "2.32.1", "license": "MPL-2.0", "dependencies": { "@vscode/extension-telemetry": "^0.4.9", diff --git a/package.json b/package.json index a47be2d..479e319 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "name": "terraform", "displayName": "HashiCorp Terraform", "description": "Syntax highlighting and autocompletion for Terraform", - "version": "2.32.0", + "version": "2.32.1", "publisher": "hashicorp", "appInsightsKey": "885372d2-6f3c-499f-9d25-b8b219983a52", "license": "MPL-2.0", From 863332ebd1839da3f05937f7cd957b77f991f203 Mon Sep 17 00:00:00 2001 From: James Pogran Date: Tue, 30 Jul 2024 09:24:50 -0400 Subject: [PATCH 04/26] Bump terraform-ls from 0.34.1 to 0.34.2 --- .changes/unreleased/BUG FIXES-20240730-092602.yaml | 6 ++++++ package.json | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 .changes/unreleased/BUG FIXES-20240730-092602.yaml diff --git a/.changes/unreleased/BUG FIXES-20240730-092602.yaml b/.changes/unreleased/BUG FIXES-20240730-092602.yaml new file mode 100644 index 0000000..6f1ad04 --- /dev/null +++ b/.changes/unreleased/BUG FIXES-20240730-092602.yaml @@ -0,0 +1,6 @@ +kind: BUG FIXES +body: Ensure validation runs after decoding the whole module to avoid stale diagnostics +time: 2024-07-30T09:26:02.329717-04:00 +custom: + Issue: "1777" + Repository: terraform-ls diff --git a/package.json b/package.json index 479e319..dcf7cd5 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,7 @@ "vscode": "^1.86.2" }, "langServer": { - "version": "0.34.1" + "version": "0.34.2" }, "syntax": { "version": "0.5.0" From e9bcbb26d79fb3e0a5407e1925e4d36d7b0a0adb Mon Sep 17 00:00:00 2001 From: James Pogran Date: Tue, 30 Jul 2024 10:38:28 -0400 Subject: [PATCH 05/26] Release 2.32.2 --- .changes/unreleased/BUG FIXES-20240730-092602.yaml | 6 ------ .changes/v2.32.2.md | 6 ++++++ CHANGELOG.md | 6 ++++++ package-lock.json | 4 ++-- package.json | 2 +- 5 files changed, 15 insertions(+), 9 deletions(-) delete mode 100644 .changes/unreleased/BUG FIXES-20240730-092602.yaml create mode 100644 .changes/v2.32.2.md diff --git a/.changes/unreleased/BUG FIXES-20240730-092602.yaml b/.changes/unreleased/BUG FIXES-20240730-092602.yaml deleted file mode 100644 index 6f1ad04..0000000 --- a/.changes/unreleased/BUG FIXES-20240730-092602.yaml +++ /dev/null @@ -1,6 +0,0 @@ -kind: BUG FIXES -body: Ensure validation runs after decoding the whole module to avoid stale diagnostics -time: 2024-07-30T09:26:02.329717-04:00 -custom: - Issue: "1777" - Repository: terraform-ls diff --git a/.changes/v2.32.2.md b/.changes/v2.32.2.md new file mode 100644 index 0000000..927eb48 --- /dev/null +++ b/.changes/v2.32.2.md @@ -0,0 +1,6 @@ +## 2.32.2 (2024-07-30) + +BUG FIXES: + +* Ensure validation runs after decoding the whole module to avoid stale diagnostics ([terraform-ls#1777](https://github.com/hashicorp/terraform-ls/issues/1777)) + diff --git a/CHANGELOG.md b/CHANGELOG.md index 288d3c4..e82fcc7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,12 @@ ENHANCEMENTS: * Add initial support for Terraform Stacks files and Deployment files. This provides block and attribute completion, hover, and diagnostics along with syntax validation for Terraform Stacks and Deployment files ([terraform-ls#1745](https://github.com/hashicorp/terraform-ls/issues/1745)) +## 2.32.2 (2024-07-30) + +BUG FIXES: + +* Ensure validation runs after decoding the whole module to avoid stale diagnostics ([terraform-ls#1777](https://github.com/hashicorp/terraform-ls/issues/1777)) + ## 2.32.1 (2024-07-22) BUG FIXES: diff --git a/package-lock.json b/package-lock.json index 2ecf266..d2558ba 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "terraform", - "version": "2.32.1", + "version": "2.32.2", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "terraform", - "version": "2.32.1", + "version": "2.32.2", "license": "MPL-2.0", "dependencies": { "@vscode/extension-telemetry": "^0.4.9", diff --git a/package.json b/package.json index dcf7cd5..7fa1387 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "name": "terraform", "displayName": "HashiCorp Terraform", "description": "Syntax highlighting and autocompletion for Terraform", - "version": "2.32.1", + "version": "2.32.2", "publisher": "hashicorp", "appInsightsKey": "885372d2-6f3c-499f-9d25-b8b219983a52", "license": "MPL-2.0", From c499be31b90172a88373e95e2853781d4384299e Mon Sep 17 00:00:00 2001 From: James Pogran Date: Wed, 24 Jul 2024 12:39:53 -0400 Subject: [PATCH 06/26] Add develop launch target for extensionHost This commit adds a new launch target to the launch.json file that allows you to run the extension in a development environment. This is useful for debugging and testing the extension without using a temporary profile. --- .changes/unreleased/INTERNAL-20240724-124159.yaml | 6 ++++++ .vscode/launch.json | 8 ++++++++ 2 files changed, 14 insertions(+) create mode 100644 .changes/unreleased/INTERNAL-20240724-124159.yaml diff --git a/.changes/unreleased/INTERNAL-20240724-124159.yaml b/.changes/unreleased/INTERNAL-20240724-124159.yaml new file mode 100644 index 0000000..2f99330 --- /dev/null +++ b/.changes/unreleased/INTERNAL-20240724-124159.yaml @@ -0,0 +1,6 @@ +kind: INTERNAL +body: Add development launch target for extensionHost +time: 2024-07-24T12:41:59.998606-04:00 +custom: + Issue: "1805" + Repository: vscode-terraform diff --git a/.vscode/launch.json b/.vscode/launch.json index 64acd7f..8182a3e 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -9,6 +9,14 @@ "outFiles": ["${workspaceFolder}/out/**/*.js"], "preLaunchTask": "${defaultBuildTask}" }, + { + "name": "Develop Extension", + "type": "extensionHost", + "request": "launch", + "args": ["--extensionDevelopmentPath=${workspaceFolder}"], + "outFiles": ["${workspaceFolder}/out/**/*.js"], + "preLaunchTask": "${defaultBuildTask}" + }, { "name": "Run Web Extension ", "type": "pwa-extensionHost", From 141c33516212ec3dce4a7d1ab31140c8591390fc Mon Sep 17 00:00:00 2001 From: James Pogran Date: Mon, 29 Jul 2024 13:55:54 -0400 Subject: [PATCH 07/26] Replace webpack with esbuild This replaces webpack with esbuild for building or bundling the extension in both development or deployment workflows for both the desktop and web versions of this extension. This improves the speed of building and bundling the extension, reduces the size of the output, and simplifies the build process. This required changing the build scripts, the npm tasks, adding a new esbuild.js file, and updating the package.json file to include the necessary dependencies. The result is a much faster build process that is more reliable and easier to maintain, without changing the core npm script commands. In addition to esbuild, this updates the versions of eslint, prettier, and eslint rulesets. This required some updates to existing files to conform to the rulesets. This is a follow-up to #1761 which configured webpack to use esbuild instead of a typescript loader. While that PR did improve the speed of the build, it still used webpack which is just not as fast as esbuild. --- .../unreleased/INTERNAL-20240729-140356.yaml | 6 + .copywrite.hcl | 1 + .eslintignore | 1 + .eslintrc.json | 51 +- .gitignore | 1 + .prettierignore | 1 + .vscode/extensions.json | 7 +- .vscode/launch.json | 6 +- .vscode/tasks.json | 53 +- .vscodeignore | 2 + esbuild.js | 128 + package-lock.json | 2956 ++++++++--------- package.json | 52 +- src/commands/terraform.ts | 5 +- src/features/moduleCalls.ts | 5 +- src/features/moduleProviders.ts | 5 +- src/features/semanticTokens.ts | 5 +- src/features/telemetry.ts | 5 +- src/providers/terraform/moduleCalls.ts | 10 +- src/providers/terraform/moduleProviders.ts | 6 +- src/providers/tfc/applyProvider.ts | 5 +- src/providers/tfc/logHelpers.ts | 5 +- src/providers/tfc/organizationPicker.ts | 5 +- src/providers/tfc/planProvider.ts | 10 +- src/providers/tfc/runProvider.ts | 20 +- tsconfig.json | 6 +- webpack.config.js | 132 - 27 files changed, 1715 insertions(+), 1774 deletions(-) create mode 100644 .changes/unreleased/INTERNAL-20240729-140356.yaml create mode 100644 esbuild.js delete mode 100644 webpack.config.js diff --git a/.changes/unreleased/INTERNAL-20240729-140356.yaml b/.changes/unreleased/INTERNAL-20240729-140356.yaml new file mode 100644 index 0000000..be5304e --- /dev/null +++ b/.changes/unreleased/INTERNAL-20240729-140356.yaml @@ -0,0 +1,6 @@ +kind: INTERNAL +body: Replace webpack with esbuild +time: 2024-07-29T14:03:56.583984-04:00 +custom: + Issue: "1807" + Repository: vscode-terraform diff --git a/.copywrite.hcl b/.copywrite.hcl index 55e8978..b2394c5 100644 --- a/.copywrite.hcl +++ b/.copywrite.hcl @@ -13,6 +13,7 @@ project { ".wdio-vscode-service/**", "**/node_modules/**", "out/**", + "dist/**", "src/test/fixtures/**", "src/test/integration/*/workspace/**", ] diff --git a/.eslintignore b/.eslintignore index b1f25e8..1fa76a1 100644 --- a/.eslintignore +++ b/.eslintignore @@ -3,6 +3,7 @@ **/*.d.ts **/*/__mocks__ node_modules +dist out src/test/fixtures src/test/integration/*/workspace/** diff --git a/.eslintrc.json b/.eslintrc.json index 729e1a5..a40db1f 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -1,25 +1,48 @@ { "root": true, - "parser": "@typescript-eslint/parser", + "extends": ["eslint:recommended"], + "env": { + "browser": true, + "es2021": true + }, "parserOptions": { - "ecmaVersion": 6, + "ecmaFeatures": { + "jsx": false + }, + "ecmaVersion": 12, "sourceType": "module" }, - "plugins": ["@typescript-eslint", "prettier"], - "extends": [ - "eslint:recommended", - "plugin:@typescript-eslint/eslint-recommended", - "plugin:@typescript-eslint/recommended", - "plugin:prettier/recommended", - "prettier" - ], "rules": { - "@typescript-eslint/no-explicit-any": ["warn", { "ignoreRestArgs": true }], - "@typescript-eslint/naming-convention": "off", - "@typescript-eslint/semi": "warn", "curly": "warn", "eqeqeq": "warn", "no-throw-literal": "warn", "semi": "off" - } + }, + "overrides": [ + { + "files": ["**/*.ts"], + "parser": "@typescript-eslint/parser", + "parserOptions": { + "ecmaVersion": 6, + "sourceType": "module" + }, + "plugins": ["@typescript-eslint", "prettier"], + "extends": [ + "eslint:recommended", + "plugin:@typescript-eslint/eslint-recommended", + "plugin:@typescript-eslint/recommended", + "plugin:prettier/recommended", + "prettier" + ], + "rules": { + "@typescript-eslint/no-explicit-any": ["warn", { "ignoreRestArgs": true }], + "@typescript-eslint/naming-convention": "off", + "@typescript-eslint/semi": "warn", + "curly": "warn", + "eqeqeq": "warn", + "no-throw-literal": "warn", + "semi": "off" + } + } + ] } diff --git a/.gitignore b/.gitignore index 3e6bbbd..80a7de4 100644 --- a/.gitignore +++ b/.gitignore @@ -7,5 +7,6 @@ bin node_modules npm-debug.log +dist out syntaxes diff --git a/.prettierignore b/.prettierignore index 3a0f808..918df5e 100644 --- a/.prettierignore +++ b/.prettierignore @@ -3,6 +3,7 @@ .wdio-vscode-service language-configuration.json node_modules +dist out package-lock.json snippets diff --git a/.vscode/extensions.json b/.vscode/extensions.json index 2c8ee2c..2193656 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -1,9 +1,10 @@ { "recommendations": [ + "amodio.tsl-problem-matcher", + "connor4312.esbuild-problem-matchers", "dbaeumer.vscode-eslint", "esbenp.prettier-vscode", - "redhat.vscode-yaml", - "amodio.tsl-problem-matcher", - "ms-vscode.extension-test-runner" + "ms-vscode.extension-test-runner", + "redhat.vscode-yaml" ] } diff --git a/.vscode/launch.json b/.vscode/launch.json index 8182a3e..60cc001 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -6,7 +6,7 @@ "type": "extensionHost", "request": "launch", "args": ["--profile-temp", "--extensionDevelopmentPath=${workspaceFolder}"], - "outFiles": ["${workspaceFolder}/out/**/*.js"], + "outFiles": ["${workspaceFolder}/dist/**/*.js"], "preLaunchTask": "${defaultBuildTask}" }, { @@ -14,7 +14,7 @@ "type": "extensionHost", "request": "launch", "args": ["--extensionDevelopmentPath=${workspaceFolder}"], - "outFiles": ["${workspaceFolder}/out/**/*.js"], + "outFiles": ["${workspaceFolder}/dist/**/*.js"], "preLaunchTask": "${defaultBuildTask}" }, { @@ -23,7 +23,7 @@ "debugWebWorkerHost": true, "request": "launch", "args": ["--extensionDevelopmentPath=${workspaceFolder}", "--extensionDevelopmentKind=web"], - "outFiles": ["${workspaceFolder}/out/web/**/*.js"], + "outFiles": ["${workspaceFolder}/dist/web/**/*.js"], "preLaunchTask": "npm: watch" } ] diff --git a/.vscode/tasks.json b/.vscode/tasks.json index 9173e61..725ab2a 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -1,14 +1,13 @@ +// See https://go.microsoft.com/fwlink/?LinkId=733558 +// for the documentation about the tasks.json format { "version": "2.0.0", "tasks": [ { - "type": "npm", - "script": "watch", - "problemMatcher": "$ts-webpack-watch", - "isBackground": true, + "label": "watch", + "dependsOn": ["npm: watch:tsc", "npm: watch:esbuild"], "presentation": { - "reveal": "never", - "group": "watchers" + "reveal": "never" }, "group": { "kind": "build", @@ -16,15 +15,43 @@ } }, { - "label": "tasks: watch-tests", - "dependsOn": ["npm: watch"], - "problemMatcher": [] + "type": "npm", + "script": "watch:esbuild", + "group": "build", + "problemMatcher": "$esbuild-watch", + "isBackground": true, + "label": "npm: watch:esbuild", + "presentation": { + "group": "watch", + "reveal": "never" + } }, { - "label": "Run (vscode.dev)", - "group": "test", - "dependsOn": ["npm: web:serve", "npm: web:tunnel"], - "dependsOrder": "parallel", + "type": "npm", + "script": "watch:tsc", + "group": "build", + "problemMatcher": "$tsc-watch", + "isBackground": true, + "label": "npm: watch:tsc", + "presentation": { + "group": "watch", + "reveal": "never" + } + }, + { + "type": "npm", + "script": "watch-tests", + "problemMatcher": "$tsc-watch", + "isBackground": true, + "presentation": { + "reveal": "never", + "group": "watchers" + }, + "group": "build" + }, + { + "label": "tasks: watch-tests", + "dependsOn": ["npm: watch", "npm: watch-tests"], "problemMatcher": [] } ] diff --git a/.vscodeignore b/.vscodeignore index 0581e51..78ed696 100644 --- a/.vscodeignore +++ b/.vscodeignore @@ -24,4 +24,6 @@ docs/ node_modules/ ROADMAP.md src/ +out/ +esbuild.js tsconfig.json diff --git a/esbuild.js b/esbuild.js new file mode 100644 index 0000000..2a8cf88 --- /dev/null +++ b/esbuild.js @@ -0,0 +1,128 @@ +/** + * Copyright (c) HashiCorp, Inc. + * SPDX-License-Identifier: MPL-2.0 + */ + +/* eslint-disable no-undef */ +const esbuild = require('esbuild'); +const glob = require('glob'); +const path = require('path'); +const polyfill = require('@esbuild-plugins/node-globals-polyfill'); + +const production = process.argv.includes('--production'); +const watch = process.argv.includes('--watch'); + +/** + * @type {import('esbuild').Plugin} + */ +const esbuildProblemMatcherPlugin = { + name: 'esbuild-problem-matcher', + + setup(build) { + build.onStart(() => { + console.log('[watch] build started'); + }); + build.onEnd((result) => { + result.errors.forEach(({ text, location }) => { + console.error(`✘ [ERROR] ${text}`); + console.error(` ${location.file}:${location.line}:${location.column}:`); + }); + console.log('[watch] build finished'); + }); + }, +}; + +/** + * For web extension, all tests, including the test runner, need to be bundled into + * a single module that has a exported `run` function . + * This plugin bundles implements a virtual file extensionTests.ts that bundles all these together. + * @type {import('esbuild').Plugin} + */ +const testBundlePlugin = { + name: 'testBundlePlugin', + setup(build) { + build.onResolve({ filter: /[/\\]extensionTests\.ts$/ }, (args) => { + if (args.kind === 'entry-point') { + return { path: path.resolve(args.path) }; + } + }); + build.onLoad({ filter: /[/\\]extensionTests\.ts$/ }, async () => { + const testsRoot = path.join(__dirname, 'src/web/test/suite'); + const files = await glob.glob('*.test.{ts,tsx}', { cwd: testsRoot, posix: true }); + return { + contents: `export { run } from './mochaTestRunner.ts';` + files.map((f) => `import('./${f}');`).join(''), + watchDirs: files.map((f) => path.dirname(path.resolve(testsRoot, f))), + watchFiles: files.map((f) => path.resolve(testsRoot, f)), + }; + }); + }, +}; + +async function main() { + const defaults = { + bundle: true, + format: 'cjs', + minify: production, + sourcemap: !production, + sourcesContent: false, + external: ['vscode'], + logLevel: 'silent', + }; + + const desktop = { + entryPoints: ['src/extension.ts'], + outfile: 'dist/extension.js', + platform: 'node', + plugins: [ + /* add to the end of plugins array */ + esbuildProblemMatcherPlugin, + ], + ...defaults, + }; + + const web = { + entryPoints: ['src/web/extension.ts'], + outdir: 'dist/web', + platform: 'browser', + // Node.js global to browser globalThis + define: { + global: 'globalThis', + }, + plugins: [ + polyfill.NodeGlobalsPolyfillPlugin({ + process: true, + buffer: true, + }), + testBundlePlugin, + esbuildProblemMatcherPlugin /* add to the end of plugins array */, + ], + ...defaults, + }; + + const contexts = [await esbuild.context(desktop), await esbuild.context(web)]; + + try { + const promises = []; + if (watch) { + // Watch + for (const context of contexts) { + promises.push(context.watch()); + } + return await Promise.all(promises); + } + + // Build once + for (const context of contexts) { + promises.push(context.rebuild()); + } + await Promise.all(promises); + for (const context of contexts) { + await context.dispose(); + } + } catch (error) { + console.error(error); + process.exit(1); + } +} + +main(); diff --git a/package-lock.json b/package-lock.json index d2558ba..d19b320 100644 --- a/package-lock.json +++ b/package-lock.json @@ -20,20 +20,21 @@ "zod": "^3.21.4" }, "devDependencies": { + "@esbuild-plugins/node-globals-polyfill": "^0.2.3", "@hashicorp/js-releases": "^1.7.1", "@playwright/browser-chromium": "^1.39.0", "@types/chai": "^4.3.5", "@types/glob": "^8.1.0", "@types/mocha": "^10.0.1", "@types/node": "^18.x", + "@types/semver": "^7.5.8", "@types/vscode": "~1.86", - "@types/webpack-env": "^1.18.0", "@types/which": "^3.0.0", - "@typescript-eslint/eslint-plugin": "^5.59.5", - "@typescript-eslint/parser": "^5.59.5", + "@typescript-eslint/eslint-plugin": "^7.17.0", + "@typescript-eslint/parser": "^7.17.0", "@vscode/test-cli": "^0.0.9", "@vscode/test-electron": "^2.3.9", - "@vscode/test-web": "^0.0.50", + "@vscode/test-web": "^0.0.56", "@vscode/vsce": "^2.19.0", "@wdio/cli": "^8.38.1", "@wdio/local-runner": "^8.38.0", @@ -41,21 +42,19 @@ "@wdio/spec-reporter": "^8.38.0", "assert": "^2.0.0", "chai": "^4.3.7", - "esbuild-loader": "^4.1.0", - "eslint": "^8.40.0", - "eslint-config-prettier": "^8.8.0", - "eslint-plugin-prettier": "^4.2.1", + "esbuild": "^0.23.0", + "eslint": "^8.57.0", + "eslint-config-prettier": "^9.1.0", + "eslint-plugin-prettier": "^5.2.1", "mocha": "^10.2.0", "msw": "^2.0.11", - "prettier": "^2.8.8", + "npm-run-all": "^4.1.5", + "prettier": "^3.3.3", "process": "^0.11.10", - "ts-loader": "^9.4.2", "ts-node": "^10.9.2", "typescript": "^5.1.3", "wdio-vscode-service": "^6.0.3", - "wdio-wait-for": "^3.0.11", - "webpack": "^5.82.0", - "webpack-cli": "^5.1.1" + "wdio-wait-for": "^3.0.11" }, "engines": { "node": "~18.X", @@ -63,15 +62,6 @@ "vscode": "^1.86.2" } }, - "node_modules/@aashutoshrathi/word-wrap": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", - "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/@babel/code-frame": { "version": "7.24.6", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.6.tgz", @@ -155,19 +145,19 @@ "@jridgewell/sourcemap-codec": "^1.4.10" } }, - "node_modules/@discoveryjs/json-ext": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", - "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", + "node_modules/@esbuild-plugins/node-globals-polyfill": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@esbuild-plugins/node-globals-polyfill/-/node-globals-polyfill-0.2.3.tgz", + "integrity": "sha512-r3MIryXDeXDOZh7ih1l/yE9ZLORCd5e8vWg02azWRGj5SPTuoh69A2AIyn0Z31V/kHBfZ4HgWJ+OK3GTTwLmnw==", "dev": true, - "engines": { - "node": ">=10.0.0" + "peerDependencies": { + "esbuild": "*" } }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.20.2.tgz", - "integrity": "sha512-D+EBOJHXdNZcLJRBkhENNG8Wji2kgc9AZ9KiPr1JuZjsNtyHzrsfLRrY0tk2H2aoFu6RANO1y1iPPUCDYWkb5g==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.23.0.tgz", + "integrity": "sha512-3sG8Zwa5fMcA9bgqB8AfWPQ+HFke6uD3h1s3RIwUNK8EG7a4buxvuFTs3j1IMs2NXAk9F30C/FF4vxRgQCcmoQ==", "cpu": [ "ppc64" ], @@ -177,13 +167,13 @@ "aix" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/android-arm": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.20.2.tgz", - "integrity": "sha512-t98Ra6pw2VaDhqNWO2Oph2LXbz/EJcnLmKLGBJwEwXX/JAN83Fym1rU8l0JUWK6HkIbWONCSSatf4sf2NBRx/w==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.23.0.tgz", + "integrity": "sha512-+KuOHTKKyIKgEEqKbGTK8W7mPp+hKinbMBeEnNzjJGyFcWsfrXjSTNluJHCY1RqhxFurdD8uNXQDei7qDlR6+g==", "cpu": [ "arm" ], @@ -193,13 +183,13 @@ "android" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/android-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.20.2.tgz", - "integrity": "sha512-mRzjLacRtl/tWU0SvD8lUEwb61yP9cqQo6noDZP/O8VkwafSYwZ4yWy24kan8jE/IMERpYncRt2dw438LP3Xmg==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.23.0.tgz", + "integrity": "sha512-EuHFUYkAVfU4qBdyivULuu03FhJO4IJN9PGuABGrFy4vUuzk91P2d+npxHcFdpUnfYKy0PuV+n6bKIpHOB3prQ==", "cpu": [ "arm64" ], @@ -209,13 +199,13 @@ "android" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/android-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.20.2.tgz", - "integrity": "sha512-btzExgV+/lMGDDa194CcUQm53ncxzeBrWJcncOBxuC6ndBkKxnHdFJn86mCIgTELsooUmwUm9FkhSp5HYu00Rg==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.23.0.tgz", + "integrity": "sha512-WRrmKidLoKDl56LsbBMhzTTBxrsVwTKdNbKDalbEZr0tcsBgCLbEtoNthOW6PX942YiYq8HzEnb4yWQMLQuipQ==", "cpu": [ "x64" ], @@ -225,13 +215,13 @@ "android" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.20.2.tgz", - "integrity": "sha512-4J6IRT+10J3aJH3l1yzEg9y3wkTDgDk7TSDFX+wKFiWjqWp/iCfLIYzGyasx9l0SAFPT1HwSCR+0w/h1ES/MjA==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.23.0.tgz", + "integrity": "sha512-YLntie/IdS31H54Ogdn+v50NuoWF5BDkEUFpiOChVa9UnKpftgwzZRrI4J132ETIi+D8n6xh9IviFV3eXdxfow==", "cpu": [ "arm64" ], @@ -241,13 +231,13 @@ "darwin" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.20.2.tgz", - "integrity": "sha512-tBcXp9KNphnNH0dfhv8KYkZhjc+H3XBkF5DKtswJblV7KlT9EI2+jeA8DgBjp908WEuYll6pF+UStUCfEpdysA==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.23.0.tgz", + "integrity": "sha512-IMQ6eme4AfznElesHUPDZ+teuGwoRmVuuixu7sv92ZkdQcPbsNHzutd+rAfaBKo8YK3IrBEi9SLLKWJdEvJniQ==", "cpu": [ "x64" ], @@ -257,13 +247,13 @@ "darwin" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.2.tgz", - "integrity": "sha512-d3qI41G4SuLiCGCFGUrKsSeTXyWG6yem1KcGZVS+3FYlYhtNoNgYrWcvkOoaqMhwXSMrZRl69ArHsGJ9mYdbbw==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.23.0.tgz", + "integrity": "sha512-0muYWCng5vqaxobq6LB3YNtevDFSAZGlgtLoAc81PjUfiFz36n4KMpwhtAd4he8ToSI3TGyuhyx5xmiWNYZFyw==", "cpu": [ "arm64" ], @@ -273,13 +263,13 @@ "freebsd" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.20.2.tgz", - "integrity": "sha512-d+DipyvHRuqEeM5zDivKV1KuXn9WeRX6vqSqIDgwIfPQtwMP4jaDsQsDncjTDDsExT4lR/91OLjRo8bmC1e+Cw==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.23.0.tgz", + "integrity": "sha512-XKDVu8IsD0/q3foBzsXGt/KjD/yTKBCIwOHE1XwiXmrRwrX6Hbnd5Eqn/WvDekddK21tfszBSrE/WMaZh+1buQ==", "cpu": [ "x64" ], @@ -289,13 +279,13 @@ "freebsd" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-arm": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.20.2.tgz", - "integrity": "sha512-VhLPeR8HTMPccbuWWcEUD1Az68TqaTYyj6nfE4QByZIQEQVWBB8vup8PpR7y1QHL3CpcF6xd5WVBU/+SBEvGTg==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.23.0.tgz", + "integrity": "sha512-SEELSTEtOFu5LPykzA395Mc+54RMg1EUgXP+iw2SJ72+ooMwVsgfuwXo5Fn0wXNgWZsTVHwY2cg4Vi/bOD88qw==", "cpu": [ "arm" ], @@ -305,13 +295,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.20.2.tgz", - "integrity": "sha512-9pb6rBjGvTFNira2FLIWqDk/uaf42sSyLE8j1rnUpuzsODBq7FvpwHYZxQ/It/8b+QOS1RYfqgGFNLRI+qlq2A==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.23.0.tgz", + "integrity": "sha512-j1t5iG8jE7BhonbsEg5d9qOYcVZv/Rv6tghaXM/Ug9xahM0nX/H2gfu6X6z11QRTMT6+aywOMA8TDkhPo8aCGw==", "cpu": [ "arm64" ], @@ -321,13 +311,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.20.2.tgz", - "integrity": "sha512-o10utieEkNPFDZFQm9CoP7Tvb33UutoJqg3qKf1PWVeeJhJw0Q347PxMvBgVVFgouYLGIhFYG0UGdBumROyiig==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.23.0.tgz", + "integrity": "sha512-P7O5Tkh2NbgIm2R6x1zGJJsnacDzTFcRWZyTTMgFdVit6E98LTxO+v8LCCLWRvPrjdzXHx9FEOA8oAZPyApWUA==", "cpu": [ "ia32" ], @@ -337,13 +327,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.20.2.tgz", - "integrity": "sha512-PR7sp6R/UC4CFVomVINKJ80pMFlfDfMQMYynX7t1tNTeivQ6XdX5r2XovMmha/VjR1YN/HgHWsVcTRIMkymrgQ==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.23.0.tgz", + "integrity": "sha512-InQwepswq6urikQiIC/kkx412fqUZudBO4SYKu0N+tGhXRWUqAx+Q+341tFV6QdBifpjYgUndV1hhMq3WeJi7A==", "cpu": [ "loong64" ], @@ -353,13 +343,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.20.2.tgz", - "integrity": "sha512-4BlTqeutE/KnOiTG5Y6Sb/Hw6hsBOZapOVF6njAESHInhlQAghVVZL1ZpIctBOoTFbQyGW+LsVYZ8lSSB3wkjA==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.23.0.tgz", + "integrity": "sha512-J9rflLtqdYrxHv2FqXE2i1ELgNjT+JFURt/uDMoPQLcjWQA5wDKgQA4t/dTqGa88ZVECKaD0TctwsUfHbVoi4w==", "cpu": [ "mips64el" ], @@ -369,13 +359,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.20.2.tgz", - "integrity": "sha512-rD3KsaDprDcfajSKdn25ooz5J5/fWBylaaXkuotBDGnMnDP1Uv5DLAN/45qfnf3JDYyJv/ytGHQaziHUdyzaAg==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.23.0.tgz", + "integrity": "sha512-cShCXtEOVc5GxU0fM+dsFD10qZ5UpcQ8AM22bYj0u/yaAykWnqXJDpd77ublcX6vdDsWLuweeuSNZk4yUxZwtw==", "cpu": [ "ppc64" ], @@ -385,13 +375,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.20.2.tgz", - "integrity": "sha512-snwmBKacKmwTMmhLlz/3aH1Q9T8v45bKYGE3j26TsaOVtjIag4wLfWSiZykXzXuE1kbCE+zJRmwp+ZbIHinnVg==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.23.0.tgz", + "integrity": "sha512-HEtaN7Y5UB4tZPeQmgz/UhzoEyYftbMXrBCUjINGjh3uil+rB/QzzpMshz3cNUxqXN7Vr93zzVtpIDL99t9aRw==", "cpu": [ "riscv64" ], @@ -401,13 +391,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.20.2.tgz", - "integrity": "sha512-wcWISOobRWNm3cezm5HOZcYz1sKoHLd8VL1dl309DiixxVFoFe/o8HnwuIwn6sXre88Nwj+VwZUvJf4AFxkyrQ==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.23.0.tgz", + "integrity": "sha512-WDi3+NVAuyjg/Wxi+o5KPqRbZY0QhI9TjrEEm+8dmpY9Xir8+HE/HNx2JoLckhKbFopW0RdO2D72w8trZOV+Wg==", "cpu": [ "s390x" ], @@ -417,13 +407,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/linux-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.20.2.tgz", - "integrity": "sha512-1MdwI6OOTsfQfek8sLwgyjOXAu+wKhLEoaOLTjbijk6E2WONYpH9ZU2mNtR+lZ2B4uwr+usqGuVfFT9tMtGvGw==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.23.0.tgz", + "integrity": "sha512-a3pMQhUEJkITgAw6e0bWA+F+vFtCciMjW/LPtoj99MhVt+Mfb6bbL9hu2wmTZgNd994qTAEw+U/r6k3qHWWaOQ==", "cpu": [ "x64" ], @@ -433,13 +423,13 @@ "linux" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.20.2.tgz", - "integrity": "sha512-K8/DhBxcVQkzYc43yJXDSyjlFeHQJBiowJ0uVL6Tor3jGQfSGHNNJcWxNbOI8v5k82prYqzPuwkzHt3J1T1iZQ==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.23.0.tgz", + "integrity": "sha512-cRK+YDem7lFTs2Q5nEv/HHc4LnrfBCbH5+JHu6wm2eP+d8OZNoSMYgPZJq78vqQ9g+9+nMuIsAO7skzphRXHyw==", "cpu": [ "x64" ], @@ -449,13 +439,29 @@ "netbsd" ], "engines": { - "node": ">=12" + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.23.0.tgz", + "integrity": "sha512-suXjq53gERueVWu0OKxzWqk7NxiUWSUlrxoZK7usiF50C6ipColGR5qie2496iKGYNLhDZkPxBI3erbnYkU0rQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.20.2.tgz", - "integrity": "sha512-eMpKlV0SThJmmJgiVyN9jTPJ2VBPquf6Kt/nAoo6DgHAoN57K15ZghiHaMvqjCye/uU4X5u3YSMgVBI1h3vKrQ==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.23.0.tgz", + "integrity": "sha512-6p3nHpby0DM/v15IFKMjAaayFhqnXV52aEmv1whZHX56pdkK+MEaLoQWj+H42ssFarP1PcomVhbsR4pkz09qBg==", "cpu": [ "x64" ], @@ -465,13 +471,13 @@ "openbsd" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.20.2.tgz", - "integrity": "sha512-2UyFtRC6cXLyejf/YEld4Hajo7UHILetzE1vsRcGL3earZEW77JxrFjH4Ez2qaTiEfMgAXxfAZCm1fvM/G/o8w==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.23.0.tgz", + "integrity": "sha512-BFelBGfrBwk6LVrmFzCq1u1dZbG4zy/Kp93w2+y83Q5UGYF1d8sCzeLI9NXjKyujjBBniQa8R8PzLFAUrSM9OA==", "cpu": [ "x64" ], @@ -481,13 +487,13 @@ "sunos" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.20.2.tgz", - "integrity": "sha512-GRibxoawM9ZCnDxnP3usoUDO9vUkpAxIIZ6GQI+IlVmr5kP3zUq+l17xELTHMWTWzjxa2guPNyrpq1GWmPvcGQ==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.23.0.tgz", + "integrity": "sha512-lY6AC8p4Cnb7xYHuIxQ6iYPe6MfO2CC43XXKo9nBXDb35krYt7KGhQnOkRGar5psxYkircpCqfbNDB4uJbS2jQ==", "cpu": [ "arm64" ], @@ -497,13 +503,13 @@ "win32" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.20.2.tgz", - "integrity": "sha512-HfLOfn9YWmkSKRQqovpnITazdtquEW8/SoHW7pWpuEeguaZI4QnCRW6b+oZTztdBnZOS2hqJ6im/D5cPzBTTlQ==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.23.0.tgz", + "integrity": "sha512-7L1bHlOTcO4ByvI7OXVI5pNN6HSu6pUQq9yodga8izeuB1KcT2UkHaH6118QJwopExPn0rMHIseCTx1CRo/uNA==", "cpu": [ "ia32" ], @@ -513,13 +519,13 @@ "win32" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@esbuild/win32-x64": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.20.2.tgz", - "integrity": "sha512-N49X4lJX27+l9jbLKSqZ6bKNjzQvHaT8IIFUy+YIqmXQdjYCToGWwOItDrfby14c78aDd5NHQl29xingXfCdLQ==", + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.23.0.tgz", + "integrity": "sha512-Arm+WgUFLUATuoxCJcahGuk6Yj9Pzxd6l11Zb/2aAuv5kWWvvfhLFo2fni4uSK5vzlUdCGZ/BdV5tH8klj8p8g==", "cpu": [ "x64" ], @@ -529,7 +535,7 @@ "win32" ], "engines": { - "node": ">=12" + "node": ">=18" } }, "node_modules/@eslint-community/eslint-utils": { @@ -548,9 +554,9 @@ } }, "node_modules/@eslint-community/regexpp": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", - "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", + "version": "4.11.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.11.0.tgz", + "integrity": "sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==", "dev": true, "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" @@ -729,6 +735,7 @@ "version": "0.11.14", "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", + "deprecated": "Use @eslint/config-array instead", "dev": true, "dependencies": { "@humanwhocodes/object-schema": "^2.0.2", @@ -753,9 +760,10 @@ } }, "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz", - "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", + "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", + "deprecated": "Use @eslint/object-schema instead", "dev": true }, "node_modules/@inquirer/confirm": { @@ -1099,20 +1107,6 @@ "node": ">=8" } }, - "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", - "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", - "dev": true, - "dependencies": { - "@jridgewell/set-array": "^1.2.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/@jridgewell/resolve-uri": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", @@ -1122,25 +1116,6 @@ "node": ">=6.0.0" } }, - "node_modules/@jridgewell/set-array": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", - "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/source-map": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", - "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", - "dev": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.25" - } - }, "node_modules/@jridgewell/sourcemap-codec": { "version": "1.4.15", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", @@ -1299,29 +1274,29 @@ "node": ">=14" } }, - "node_modules/@playwright/browser-chromium": { - "version": "1.43.1", - "resolved": "https://registry.npmjs.org/@playwright/browser-chromium/-/browser-chromium-1.43.1.tgz", - "integrity": "sha512-CBuHhRIF/VGyUnPvK7/4IUbm0AAOZZI5huHlr+qNr5cFQpQ6TXBqOwSMef/xUz9HcjxWOxDPION7br1kOlyV/A==", + "node_modules/@pkgr/core": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.1.1.tgz", + "integrity": "sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==", "dev": true, - "hasInstallScript": true, - "dependencies": { - "playwright-core": "1.43.1" - }, "engines": { - "node": ">=16" + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts" } }, - "node_modules/@playwright/browser-chromium/node_modules/playwright-core": { - "version": "1.43.1", - "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.43.1.tgz", - "integrity": "sha512-EI36Mto2Vrx6VF7rm708qSnesVQKbxEWvPrfA1IPY6HgczBplDx7ENtx+K2n4kJ41sLLkuGfmb0ZLSSXlDhqPg==", + "node_modules/@playwright/browser-chromium": { + "version": "1.45.3", + "resolved": "https://registry.npmjs.org/@playwright/browser-chromium/-/browser-chromium-1.45.3.tgz", + "integrity": "sha512-UVPW8HveE8SghaahoMy8CfG0QdJ2mO0BZLOcPT8nlQh7Z97Gkv4e3Ad69D1oCqM3m3zYkDPAiGB+hOASNS0d/g==", "dev": true, - "bin": { - "playwright-core": "cli.js" + "hasInstallScript": true, + "dependencies": { + "playwright-core": "1.45.3" }, "engines": { - "node": ">=16" + "node": ">=18" } }, "node_modules/@promptbook/utils": { @@ -1484,32 +1459,6 @@ "integrity": "sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==", "dev": true }, - "node_modules/@types/eslint": { - "version": "8.44.7", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.44.7.tgz", - "integrity": "sha512-f5ORu2hcBbKei97U73mf+l9t4zTGl74IqZ0GQk4oVea/VS8tQZYkUveSYojk+frraAVYId0V2WC9O4PTNru2FQ==", - "dev": true, - "dependencies": { - "@types/estree": "*", - "@types/json-schema": "*" - } - }, - "node_modules/@types/eslint-scope": { - "version": "3.7.7", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", - "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", - "dev": true, - "dependencies": { - "@types/eslint": "*", - "@types/estree": "*" - } - }, - "node_modules/@types/estree": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", - "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", - "dev": true - }, "node_modules/@types/glob": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/@types/glob/-/glob-8.1.0.tgz", @@ -1550,12 +1499,6 @@ "@types/istanbul-lib-report": "*" } }, - "node_modules/@types/json-schema": { - "version": "7.0.15", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", - "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", - "dev": true - }, "node_modules/@types/minimatch": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz", @@ -1593,9 +1536,9 @@ "dev": true }, "node_modules/@types/semver": { - "version": "7.5.5", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.5.tgz", - "integrity": "sha512-+d+WYC1BxJ6yVOgUgzK8gWvp5qF8ssV5r4nsDcZWKRWcDQLQ619tvWAxJQYGgBrO1MnLJC7a5GtiYsAoQ47dJg==", + "version": "7.5.8", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", + "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==", "dev": true }, "node_modules/@types/stack-utils": { @@ -1616,12 +1559,6 @@ "integrity": "sha512-DnIXf2ftWv+9LWOB5OJeIeaLigLHF7fdXF6atfc7X5g2w/wVZBgk0amP7b+ub5xAuW1q7qP5YcFvOcit/DtyCQ==", "dev": true }, - "node_modules/@types/webpack-env": { - "version": "1.18.4", - "resolved": "https://registry.npmjs.org/@types/webpack-env/-/webpack-env-1.18.4.tgz", - "integrity": "sha512-I6e+9+HtWADAWeeJWDFQtdk4EVSAbj6Rtz4q8fJ7mSr1M0jzlFcs8/HZ+Xb5SHzVm1dxH7aUiI+A8kA8Gcrm0A==", - "dev": true - }, "node_modules/@types/which": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/@types/which/-/which-3.0.2.tgz", @@ -1669,32 +1606,31 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.62.0.tgz", - "integrity": "sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==", + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.17.0.tgz", + "integrity": "sha512-pyiDhEuLM3PuANxH7uNYan1AaFs5XE0zw1hq69JBvGvE7gSuEoQl1ydtEe/XQeoC3GQxLXyOVa5kNOATgM638A==", "dev": true, "dependencies": { - "@eslint-community/regexpp": "^4.4.0", - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/type-utils": "5.62.0", - "@typescript-eslint/utils": "5.62.0", - "debug": "^4.3.4", + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "7.17.0", + "@typescript-eslint/type-utils": "7.17.0", + "@typescript-eslint/utils": "7.17.0", + "@typescript-eslint/visitor-keys": "7.17.0", "graphemer": "^1.4.0", - "ignore": "^5.2.0", - "natural-compare-lite": "^1.4.0", - "semver": "^7.3.7", - "tsutils": "^3.21.0" + "ignore": "^5.3.1", + "natural-compare": "^1.4.0", + "ts-api-utils": "^1.3.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^5.0.0", - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + "@typescript-eslint/parser": "^7.0.0", + "eslint": "^8.56.0" }, "peerDependenciesMeta": { "typescript": { @@ -1703,25 +1639,26 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz", - "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==", + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.17.0.tgz", + "integrity": "sha512-puiYfGeg5Ydop8eusb/Hy1k7QmOU6X3nvsqCgzrB2K4qMavK//21+PzNE8qeECgNOIoertJPUC1SpegHDI515A==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/typescript-estree": "5.62.0", + "@typescript-eslint/scope-manager": "7.17.0", + "@typescript-eslint/types": "7.17.0", + "@typescript-eslint/typescript-estree": "7.17.0", + "@typescript-eslint/visitor-keys": "7.17.0", "debug": "^4.3.4" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + "eslint": "^8.56.0" }, "peerDependenciesMeta": { "typescript": { @@ -1730,16 +1667,16 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", - "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.17.0.tgz", + "integrity": "sha512-0P2jTTqyxWp9HiKLu/Vemr2Rg1Xb5B7uHItdVZ6iAenXmPo4SZ86yOPCJwMqpCyaMiEHTNqizHfsbmCFT1x9SA==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0" + "@typescript-eslint/types": "7.17.0", + "@typescript-eslint/visitor-keys": "7.17.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", @@ -1747,25 +1684,25 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.62.0.tgz", - "integrity": "sha512-xsSQreu+VnfbqQpW5vnCJdq1Z3Q0U31qiWmRhr98ONQmcp/yhiPJFPq8MXiJVLiksmOKSjIldZzkebzHuCGzew==", + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.17.0.tgz", + "integrity": "sha512-XD3aaBt+orgkM/7Cei0XNEm1vwUxQ958AOLALzPlbPqb8C1G8PZK85tND7Jpe69Wualri81PLU+Zc48GVKIMMA==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "5.62.0", - "@typescript-eslint/utils": "5.62.0", + "@typescript-eslint/typescript-estree": "7.17.0", + "@typescript-eslint/utils": "7.17.0", "debug": "^4.3.4", - "tsutils": "^3.21.0" + "ts-api-utils": "^1.3.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "*" + "eslint": "^8.56.0" }, "peerDependenciesMeta": { "typescript": { @@ -1774,12 +1711,12 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", - "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.17.0.tgz", + "integrity": "sha512-a29Ir0EbyKTKHnZWbNsrc/gqfIBqYPwj3F2M+jWE/9bqfEHg0AMtXzkbUkOG6QgEScxh2+Pz9OXe11jHDnHR7A==", "dev": true, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", @@ -1787,21 +1724,22 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", - "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.17.0.tgz", + "integrity": "sha512-72I3TGq93t2GoSBWI093wmKo0n6/b7O4j9o8U+f65TVD0FS6bI2180X5eGEr8MA8PhKMvYe9myZJquUT2JkCZw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0", + "@typescript-eslint/types": "7.17.0", + "@typescript-eslint/visitor-keys": "7.17.0", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", @@ -1813,43 +1751,63 @@ } } }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/@typescript-eslint/utils": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", - "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.17.0.tgz", + "integrity": "sha512-r+JFlm5NdB+JXc7aWWZ3fKSm1gn0pkswEwIYsrGPdsT2GjsRATAKXiNtp3vgAAO1xZhX8alIOEQnNMl3kbTgJw==", "dev": true, "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@types/json-schema": "^7.0.9", - "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/typescript-estree": "5.62.0", - "eslint-scope": "^5.1.1", - "semver": "^7.3.7" + "@eslint-community/eslint-utils": "^4.4.0", + "@typescript-eslint/scope-manager": "7.17.0", + "@typescript-eslint/types": "7.17.0", + "@typescript-eslint/typescript-estree": "7.17.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + "eslint": "^8.56.0" } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", - "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", + "version": "7.17.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.17.0.tgz", + "integrity": "sha512-RVGC9UhPOCsfCdI9pU++K4nD7to+jTcMIbXTSOcrLqUEW6gF2pU1UUbYJKc9cvcRSK1UDeMJ7pdMxf4bhMpV/A==", "dev": true, "dependencies": { - "@typescript-eslint/types": "5.62.0", - "eslint-visitor-keys": "^3.3.0" + "@typescript-eslint/types": "7.17.0", + "eslint-visitor-keys": "^3.4.3" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", @@ -1959,24 +1917,25 @@ } }, "node_modules/@vscode/test-web": { - "version": "0.0.50", - "resolved": "https://registry.npmjs.org/@vscode/test-web/-/test-web-0.0.50.tgz", - "integrity": "sha512-aFcwTyA3qirjfr6f5oKEV/07MbsbNeJEqElIh/ceNPEnJIyKYQeffbU7Cia9XtTKk1Ue1qMqwhdIO8OnUa9QBg==", + "version": "0.0.56", + "resolved": "https://registry.npmjs.org/@vscode/test-web/-/test-web-0.0.56.tgz", + "integrity": "sha512-lR688n+D6A9odw+IZ5cU8CYr2YXLB61bGgyZpPVJe/sJy4/DYX5CAxPb7Wj9ZMYL41CTvWq5DeXtfCjlabPcYA==", "dev": true, "dependencies": { "@koa/cors": "^5.0.0", "@koa/router": "^12.0.1", - "@playwright/browser-chromium": "^1.40.1", + "@playwright/browser-chromium": "^1.45.0", + "glob": "^10.4.2", "gunzip-maybe": "^1.4.2", - "http-proxy-agent": "^7.0.0", - "https-proxy-agent": "^7.0.2", - "koa": "^2.14.2", + "http-proxy-agent": "^7.0.2", + "https-proxy-agent": "^7.0.4", + "koa": "^2.15.3", "koa-morgan": "^1.0.1", "koa-mount": "^4.0.0", "koa-static": "^5.0.0", "minimist": "^1.2.8", - "playwright": "^1.40.1", - "tar-fs": "^3.0.4", + "playwright": "^1.45.0", + "tar-fs": "^3.0.6", "vscode-uri": "^3.0.8" }, "bin": { @@ -1987,9 +1946,9 @@ } }, "node_modules/@vscode/test-web/node_modules/agent-base": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz", - "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", + "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", "dev": true, "dependencies": { "debug": "^4.3.4" @@ -1999,9 +1958,9 @@ } }, "node_modules/@vscode/test-web/node_modules/http-proxy-agent": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.0.tgz", - "integrity": "sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ==", + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", "dev": true, "dependencies": { "agent-base": "^7.1.0", @@ -2012,9 +1971,9 @@ } }, "node_modules/@vscode/test-web/node_modules/https-proxy-agent": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.2.tgz", - "integrity": "sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA==", + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz", + "integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==", "dev": true, "dependencies": { "agent-base": "^7.0.2", @@ -2025,20 +1984,23 @@ } }, "node_modules/@vscode/test-web/node_modules/tar-fs": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.4.tgz", - "integrity": "sha512-5AFQU8b9qLfZCX9zp2duONhPmZv0hGYiBPJsyUdqMjzq/mqVpy/rEUSeHk1+YitmxugaptgBh5oDGU3VsAJq4w==", + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.6.tgz", + "integrity": "sha512-iokBDQQkUyeXhgPYaZxmczGPhnhXZ0CmrqI+MOb/WFGS9DW5wnfrLgtjUJBvz50vQ3qfRwJ62QVoCFu8mPVu5w==", "dev": true, "dependencies": { - "mkdirp-classic": "^0.5.2", "pump": "^3.0.0", "tar-stream": "^3.1.5" + }, + "optionalDependencies": { + "bare-fs": "^2.1.1", + "bare-path": "^2.1.0" } }, "node_modules/@vscode/test-web/node_modules/tar-stream": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.6.tgz", - "integrity": "sha512-B/UyjYwPpMBv+PaFSWAmtYjwdrlEaZQEhMIBFNC5oEG8lpiW8XjcSdmEaClj28ArfKScKHs2nshz3k2le6crsg==", + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz", + "integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==", "dev": true, "dependencies": { "b4a": "^1.6.4", @@ -2483,226 +2445,24 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@webassemblyjs/ast": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.12.1.tgz", - "integrity": "sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==", + "node_modules/@zip.js/zip.js": { + "version": "2.7.44", + "resolved": "https://registry.npmjs.org/@zip.js/zip.js/-/zip.js-2.7.44.tgz", + "integrity": "sha512-ZzMhAcAyRAYi1FZELsvKaw8I4ADxNTqbiVIjyo/syBe4HGWop9+OADnuBnHpm2TxgXPogxxhhPffOhDD40jUdA==", "dev": true, - "dependencies": { - "@webassemblyjs/helper-numbers": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6" + "engines": { + "bun": ">=0.7.0", + "deno": ">=1.0.0", + "node": ">=16.5.0" } }, - "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", - "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", - "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.12.1.tgz", - "integrity": "sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-numbers": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", - "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", - "dev": true, - "dependencies": { - "@webassemblyjs/floating-point-hex-parser": "1.11.6", - "@webassemblyjs/helper-api-error": "1.11.6", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", - "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.12.1.tgz", - "integrity": "sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-buffer": "1.12.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/wasm-gen": "1.12.1" - } - }, - "node_modules/@webassemblyjs/ieee754": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", - "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", - "dev": true, - "dependencies": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "node_modules/@webassemblyjs/leb128": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", - "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", - "dev": true, - "dependencies": { - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/utf8": { - "version": "1.11.6", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", - "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==", - "dev": true - }, - "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.12.1.tgz", - "integrity": "sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-buffer": "1.12.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/helper-wasm-section": "1.12.1", - "@webassemblyjs/wasm-gen": "1.12.1", - "@webassemblyjs/wasm-opt": "1.12.1", - "@webassemblyjs/wasm-parser": "1.12.1", - "@webassemblyjs/wast-printer": "1.12.1" - } - }, - "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.12.1.tgz", - "integrity": "sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" - } - }, - "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.12.1.tgz", - "integrity": "sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-buffer": "1.12.1", - "@webassemblyjs/wasm-gen": "1.12.1", - "@webassemblyjs/wasm-parser": "1.12.1" - } - }, - "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz", - "integrity": "sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@webassemblyjs/helper-api-error": "1.11.6", - "@webassemblyjs/helper-wasm-bytecode": "1.11.6", - "@webassemblyjs/ieee754": "1.11.6", - "@webassemblyjs/leb128": "1.11.6", - "@webassemblyjs/utf8": "1.11.6" - } - }, - "node_modules/@webassemblyjs/wast-printer": { - "version": "1.12.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.12.1.tgz", - "integrity": "sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.12.1", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webpack-cli/configtest": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-2.1.1.tgz", - "integrity": "sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==", - "dev": true, - "engines": { - "node": ">=14.15.0" - }, - "peerDependencies": { - "webpack": "5.x.x", - "webpack-cli": "5.x.x" - } - }, - "node_modules/@webpack-cli/info": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-2.0.2.tgz", - "integrity": "sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==", - "dev": true, - "engines": { - "node": ">=14.15.0" - }, - "peerDependencies": { - "webpack": "5.x.x", - "webpack-cli": "5.x.x" - } - }, - "node_modules/@webpack-cli/serve": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-2.0.5.tgz", - "integrity": "sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==", - "dev": true, - "engines": { - "node": ">=14.15.0" - }, - "peerDependencies": { - "webpack": "5.x.x", - "webpack-cli": "5.x.x" - }, - "peerDependenciesMeta": { - "webpack-dev-server": { - "optional": true - } - } - }, - "node_modules/@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "dev": true - }, - "node_modules/@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "dev": true - }, - "node_modules/@zip.js/zip.js": { - "version": "2.7.44", - "resolved": "https://registry.npmjs.org/@zip.js/zip.js/-/zip.js-2.7.44.tgz", - "integrity": "sha512-ZzMhAcAyRAYi1FZELsvKaw8I4ADxNTqbiVIjyo/syBe4HGWop9+OADnuBnHpm2TxgXPogxxhhPffOhDD40jUdA==", - "dev": true, - "engines": { - "bun": ">=0.7.0", - "deno": ">=1.0.0", - "node": ">=16.5.0" - } - }, - "node_modules/@zodios/core": { - "version": "10.9.6", - "resolved": "https://registry.npmjs.org/@zodios/core/-/core-10.9.6.tgz", - "integrity": "sha512-aH4rOdb3AcezN7ws8vDgBfGboZMk2JGGzEq/DtW65MhnRxyTGRuLJRWVQ/2KxDgWvV2F5oTkAS+5pnjKbl0n+A==", - "peerDependencies": { - "axios": "^0.x || ^1.0.0", - "zod": "^3.x" + "node_modules/@zodios/core": { + "version": "10.9.6", + "resolved": "https://registry.npmjs.org/@zodios/core/-/core-10.9.6.tgz", + "integrity": "sha512-aH4rOdb3AcezN7ws8vDgBfGboZMk2JGGzEq/DtW65MhnRxyTGRuLJRWVQ/2KxDgWvV2F5oTkAS+5pnjKbl0n+A==", + "peerDependencies": { + "axios": "^0.x || ^1.0.0", + "zod": "^3.x" } }, "node_modules/@zodios/plugins": { @@ -2760,15 +2520,6 @@ "node": ">=0.4.0" } }, - "node_modules/acorn-import-assertions": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", - "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", - "dev": true, - "peerDependencies": { - "acorn": "^8" - } - }, "node_modules/acorn-jsx": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", @@ -2854,15 +2605,6 @@ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "dev": true }, - "node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true, - "peerDependencies": { - "ajv": "^6.9.1" - } - }, "node_modules/ansi-colors": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", @@ -3161,6 +2903,22 @@ "dequal": "^2.0.3" } }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", + "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.5", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/array-union": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", @@ -3170,6 +2928,28 @@ "node": ">=8" } }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", + "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.2.1", + "get-intrinsic": "^1.2.3", + "is-array-buffer": "^3.0.4", + "is-shared-array-buffer": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/asn1.js": { "version": "5.4.1", "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", @@ -3246,10 +3026,13 @@ } }, "node_modules/available-typed-arrays": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", "dev": true, + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, "engines": { "node": ">= 0.4" }, @@ -3400,15 +3183,6 @@ "node": ">=0.6" } }, - "node_modules/big.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", - "dev": true, - "engines": { - "node": "*" - } - }, "node_modules/binary-extensions": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", @@ -3498,38 +3272,6 @@ "pako": "~0.2.0" } }, - "node_modules/browserslist": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.1.tgz", - "integrity": "sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "caniuse-lite": "^1.0.30001541", - "electron-to-chromium": "^1.4.535", - "node-releases": "^2.0.13", - "update-browserslist-db": "^1.0.13" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, "node_modules/buffer": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", @@ -3704,26 +3446,6 @@ "node": ">=6" } }, - "node_modules/caniuse-lite": { - "version": "1.0.30001561", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001561.tgz", - "integrity": "sha512-NTt0DNoKe958Q0BE0j0c1V9jbUzhBxHIEJy7asmGrpE0yG63KTV7PLHPnK2E1O9RsQrQ081I3NLuXGS6zht3cw==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/caniuse-lite" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ] - }, "node_modules/chai": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/chai/-/chai-4.4.1.tgz", @@ -3858,15 +3580,6 @@ "dev": true, "optional": true }, - "node_modules/chrome-trace-event": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", - "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", - "dev": true, - "engines": { - "node": ">=6.0" - } - }, "node_modules/chromium-bidi": { "version": "0.4.16", "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-0.4.16.tgz", @@ -4144,20 +3857,6 @@ "node": ">=0.8" } }, - "node_modules/clone-deep": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", - "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", - "dev": true, - "dependencies": { - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.2", - "shallow-clone": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/clone-response": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", @@ -4210,12 +3909,6 @@ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", "dev": true }, - "node_modules/colorette": { - "version": "2.0.20", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", - "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", - "dev": true - }, "node_modules/combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", @@ -4356,9 +4049,9 @@ } }, "node_modules/cookies": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/cookies/-/cookies-0.8.0.tgz", - "integrity": "sha512-8aPsApQfebXnuI+537McwYsDtjVxGm8gTIzQI3FDW6t5t/DAhERxtnbEPN/8RX+uZthoz4eCOgloXaE5cYyNow==", + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/cookies/-/cookies-0.9.1.tgz", + "integrity": "sha512-TG2hpqe4ELx54QER/S3HQ9SRVnQnGBtKUz5bLQWtYAQ+o6GpgMs6sYUvaiJjVxb+UXwhRhAEP3m7LbsIZ77Hmw==", "dev": true, "dependencies": { "depd": "~2.0.0", @@ -4561,6 +4254,57 @@ "node": ">= 12" } }, + "node_modules/data-view-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", + "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", + "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", + "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", @@ -5530,27 +5274,12 @@ "node": ">=0.10.0" } }, - "node_modules/electron-to-chromium": { - "version": "1.4.579", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.579.tgz", - "integrity": "sha512-bJKvA+awBIzYR0xRced7PrQuRIwGQPpo6ZLP62GAShahU9fWpsNN2IP6BSP1BLDDSbxvBVRGAMWlvVVq3npmLA==", - "dev": true - }, "node_modules/emoji-regex": { "version": "9.2.2", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", "dev": true }, - "node_modules/emojis-list": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", - "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, "node_modules/encodeurl": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", @@ -5594,18 +5323,6 @@ "url": "https://github.com/fb55/entities?sponsor=1" } }, - "node_modules/envinfo": { - "version": "7.11.0", - "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-7.11.0.tgz", - "integrity": "sha512-G9/6xF1FPbIw0TtalAMaVPpiq2aDEuKLXM314jPVAO9r2fo2a4BLqMNkmRS7O/xPPZ+COAhGIz3ETvHEV3eUcg==", - "dev": true, - "bin": { - "envinfo": "dist/cli.js" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/error-ex": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", @@ -5615,6 +5332,66 @@ "is-arrayish": "^0.2.1" } }, + "node_modules/es-abstract": { + "version": "1.23.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz", + "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "arraybuffer.prototype.slice": "^1.0.3", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "data-view-buffer": "^1.0.1", + "data-view-byte-length": "^1.0.1", + "data-view-byte-offset": "^1.0.0", + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-set-tostringtag": "^2.0.3", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.4", + "get-symbol-description": "^1.0.2", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", + "has-symbols": "^1.0.3", + "hasown": "^2.0.2", + "internal-slot": "^1.0.7", + "is-array-buffer": "^3.0.4", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.1", + "is-negative-zero": "^2.0.3", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.3", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.13", + "is-weakref": "^1.0.2", + "object-inspect": "^1.13.1", + "object-keys": "^1.1.1", + "object.assign": "^4.1.5", + "regexp.prototype.flags": "^1.5.2", + "safe-array-concat": "^1.1.2", + "safe-regex-test": "^1.0.3", + "string.prototype.trim": "^1.2.9", + "string.prototype.trimend": "^1.0.8", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.2", + "typed-array-byte-length": "^1.0.1", + "typed-array-byte-offset": "^1.0.2", + "typed-array-length": "^1.0.6", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.15" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/es-define-property": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", @@ -5634,76 +5411,86 @@ "node": ">= 0.4" } }, - "node_modules/es-module-lexer": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.3.1.tgz", - "integrity": "sha512-JUFAyicQV9mXc3YRxPnDlrfBKpqt6hUYzz9/boprUJHs4e4KVr3XwOF70doO6gwXUor6EWZJAyWAfKki84t20Q==", - "dev": true - }, - "node_modules/esbuild": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.20.2.tgz", - "integrity": "sha512-WdOOppmUNU+IbZ0PaDiTst80zjnrOkyJNHoKupIcVyU8Lvla3Ugx94VzkQ32Ijqd7UhHJy75gNWDMUekcrSJ6g==", + "node_modules/es-object-atoms": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", + "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", "dev": true, - "hasInstallScript": true, - "bin": { - "esbuild": "bin/esbuild" + "dependencies": { + "es-errors": "^1.3.0" }, "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "@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" - } - }, - "node_modules/esbuild-loader": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/esbuild-loader/-/esbuild-loader-4.1.0.tgz", - "integrity": "sha512-543TtIvqbqouEMlOHg4xKoDQkmdImlwIpyAIgpUtDPvMuklU/c2k+Qt2O3VeDBgAwozxmlEbjOzV+F8CZ0g+Bw==", + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", + "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", "dev": true, "dependencies": { - "esbuild": "^0.20.0", - "get-tsconfig": "^4.7.0", - "loader-utils": "^2.0.4", - "webpack-sources": "^1.4.3" - }, - "funding": { - "url": "https://github.com/privatenumber/esbuild-loader?sponsor=1" + "get-intrinsic": "^1.2.4", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.1" }, - "peerDependencies": { - "webpack": "^4.40.0 || ^5.0.0" + "engines": { + "node": ">= 0.4" } }, - "node_modules/esbuild-loader/node_modules/webpack-sources": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", - "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", "dev": true, "dependencies": { - "source-list-map": "^2.0.0", - "source-map": "~0.6.1" + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/esbuild": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.23.0.tgz", + "integrity": "sha512-1lvV17H2bMYda/WaFb2jLPeHU3zml2k4/yagNMG8Q/YtfMjCwEUZa2eXXMgZTVSL5q1n4H7sQ0X6CdJDqqeCFA==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.23.0", + "@esbuild/android-arm": "0.23.0", + "@esbuild/android-arm64": "0.23.0", + "@esbuild/android-x64": "0.23.0", + "@esbuild/darwin-arm64": "0.23.0", + "@esbuild/darwin-x64": "0.23.0", + "@esbuild/freebsd-arm64": "0.23.0", + "@esbuild/freebsd-x64": "0.23.0", + "@esbuild/linux-arm": "0.23.0", + "@esbuild/linux-arm64": "0.23.0", + "@esbuild/linux-ia32": "0.23.0", + "@esbuild/linux-loong64": "0.23.0", + "@esbuild/linux-mips64el": "0.23.0", + "@esbuild/linux-ppc64": "0.23.0", + "@esbuild/linux-riscv64": "0.23.0", + "@esbuild/linux-s390x": "0.23.0", + "@esbuild/linux-x64": "0.23.0", + "@esbuild/netbsd-x64": "0.23.0", + "@esbuild/openbsd-arm64": "0.23.0", + "@esbuild/openbsd-x64": "0.23.0", + "@esbuild/sunos-x64": "0.23.0", + "@esbuild/win32-arm64": "0.23.0", + "@esbuild/win32-ia32": "0.23.0", + "@esbuild/win32-x64": "0.23.0" } }, "node_modules/escalade": { @@ -5751,15 +5538,6 @@ "source-map": "~0.6.1" } }, - "node_modules/escodegen/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, "node_modules/eslint": { "version": "8.57.0", "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", @@ -5816,9 +5594,9 @@ } }, "node_modules/eslint-config-prettier": { - "version": "8.10.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.10.0.tgz", - "integrity": "sha512-SM8AMJdeQqRYT9O9zguiruQZaN7+z+E4eAP9oiLNGKMtomwaB1E9dcgUD6ZAn/eQAb52USbvezbiljfZUhbJcg==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz", + "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==", "dev": true, "bin": { "eslint-config-prettier": "bin/cli.js" @@ -5828,37 +5606,49 @@ } }, "node_modules/eslint-plugin-prettier": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz", - "integrity": "sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==", + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.2.1.tgz", + "integrity": "sha512-gH3iR3g4JfF+yYPaJYkN7jEl9QbweL/YfkoRlNnuIEHEz1vHVlCmWOS+eGGiRuzHQXdJFCOTxRgvju9b8VUmrw==", "dev": true, "dependencies": { - "prettier-linter-helpers": "^1.0.0" + "prettier-linter-helpers": "^1.0.0", + "synckit": "^0.9.1" }, "engines": { - "node": ">=12.0.0" + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint-plugin-prettier" }, "peerDependencies": { - "eslint": ">=7.28.0", - "prettier": ">=2.0.0" + "@types/eslint": ">=8.0.0", + "eslint": ">=8.0.0", + "eslint-config-prettier": "*", + "prettier": ">=3.0.0" }, "peerDependenciesMeta": { + "@types/eslint": { + "optional": true + }, "eslint-config-prettier": { "optional": true } } }, "node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", "dev": true, "dependencies": { "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" + "estraverse": "^5.2.0" }, "engines": { - "node": ">=8.0.0" + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/eslint-visitor-keys": { @@ -5934,31 +5724,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint/node_modules/eslint-scope": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, "node_modules/eslint/node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -6011,9 +5776,9 @@ } }, "node_modules/esquery": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", "dev": true, "dependencies": { "estraverse": "^5.1.0" @@ -6022,15 +5787,6 @@ "node": ">=0.10" } }, - "node_modules/esquery/node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, "node_modules/esrecurse": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", @@ -6043,7 +5799,7 @@ "node": ">=4.0" } }, - "node_modules/esrecurse/node_modules/estraverse": { + "node_modules/estraverse": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", @@ -6052,15 +5808,6 @@ "node": ">=4.0" } }, - "node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, "node_modules/esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", @@ -6391,15 +6138,6 @@ "integrity": "sha512-eel5UKGn369gGEWOqBShmFJWfq/xSJvsgDzgLYC845GneayWvXBf0lJCBn5qTABfewy1ZDPoaR5OZCP+kssfuw==", "dev": true }, - "node_modules/fastest-levenshtein": { - "version": "1.0.16", - "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", - "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", - "dev": true, - "engines": { - "node": ">= 4.9.1" - } - }, "node_modules/fastify": { "version": "4.27.0", "resolved": "https://registry.npmjs.org/fastify/-/fastify-4.27.0.tgz", @@ -6647,9 +6385,9 @@ } }, "node_modules/flat-cache": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.1.1.tgz", - "integrity": "sha512-/qM2b3LUIaIgviBQovTLvijfyOQXPtSRnRK26ksj2J7rzPIecePUIpJsZ4T02Qg+xiAEKIs5K8dsHEd+VaKa/Q==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", "dev": true, "dependencies": { "flatted": "^3.2.9", @@ -6657,13 +6395,13 @@ "rimraf": "^3.0.2" }, "engines": { - "node": ">=12.0.0" + "node": "^10.12.0 || >=12.0.0" } }, "node_modules/flatted": { - "version": "3.2.9", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz", - "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", "dev": true }, "node_modules/follow-redirects": { @@ -6870,6 +6608,33 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/function.prototype.name": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/gaze": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz", @@ -7064,16 +6829,21 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/get-tsconfig": { - "version": "4.7.5", - "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.5.tgz", - "integrity": "sha512-ZCuZCnlqNzjb4QprAzXKdpp/gh6KTxSJuw3IBsPnV/7fV4NxC9ckB+vPTt8w7fJA0TaSD7c55BR47JD6MEDyDw==", + "node_modules/get-symbol-description": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", + "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", "dev": true, "dependencies": { - "resolve-pkg-maps": "^1.0.0" + "call-bind": "^1.0.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/get-uri": { @@ -7108,23 +6878,21 @@ "optional": true }, "node_modules/glob": { - "version": "10.3.12", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.12.tgz", - "integrity": "sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg==", + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", "dev": true, "dependencies": { "foreground-child": "^3.1.0", - "jackspeak": "^2.3.6", - "minimatch": "^9.0.1", - "minipass": "^7.0.4", - "path-scurry": "^1.10.2" + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" }, "bin": { "glob": "dist/esm/bin.mjs" }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, "funding": { "url": "https://github.com/sponsors/isaacs" } @@ -7141,12 +6909,6 @@ "node": ">=10.13.0" } }, - "node_modules/glob-to-regexp": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", - "dev": true - }, "node_modules/glob/node_modules/brace-expansion": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", @@ -7157,9 +6919,9 @@ } }, "node_modules/glob/node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, "dependencies": { "brace-expansion": "^2.0.1" @@ -7186,6 +6948,22 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "dev": true, + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/globby": { "version": "11.1.0", "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", @@ -7345,6 +7123,15 @@ "gunzip-maybe": "bin.js" } }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", @@ -7366,9 +7153,9 @@ } }, "node_modules/has-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", "engines": { "node": ">= 0.4" }, @@ -7409,12 +7196,12 @@ } }, "node_modules/has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", "dev": true, "dependencies": { - "has-symbols": "^1.0.2" + "has-symbols": "^1.0.3" }, "engines": { "node": ">= 0.4" @@ -7424,9 +7211,9 @@ } }, "node_modules/hasown": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", - "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", "dependencies": { "function-bind": "^1.1.2" }, @@ -7646,9 +7433,9 @@ ] }, "node_modules/ignore": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", "dev": true, "engines": { "node": ">= 4" @@ -7676,25 +7463,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/import-local": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", - "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", - "dev": true, - "dependencies": { - "pkg-dir": "^4.2.0", - "resolve-cwd": "^3.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/import-meta-resolve": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.1.0.tgz", @@ -7851,13 +7619,18 @@ "node": ">=8" } }, - "node_modules/interpret": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-3.1.1.tgz", - "integrity": "sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==", + "node_modules/internal-slot": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", + "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", "dev": true, + "dependencies": { + "es-errors": "^1.3.0", + "hasown": "^2.0.0", + "side-channel": "^1.0.4" + }, "engines": { - "node": ">=10.13.0" + "node": ">= 0.4" } }, "node_modules/into-stream": { @@ -7911,12 +7684,40 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-array-buffer": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", + "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", "dev": true }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", @@ -7929,6 +7730,22 @@ "node": ">=8" } }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-callable": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", @@ -7953,6 +7770,36 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-data-view": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", + "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", + "dev": true, + "dependencies": { + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-deflate": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-deflate/-/is-deflate-1.0.0.tgz", @@ -8059,6 +7906,18 @@ "integrity": "sha512-Y4LTamMe0DDQIIAlaer9eKebAlDSV6huy+TWhJVPlzZh2o4tRP5SQWFlLn5N0To4mDD22/qdOq+veo1cSISLgQ==", "dev": true }, + "node_modules/is-negative-zero": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-node-process": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/is-node-process/-/is-node-process-1.2.0.tgz", @@ -8074,6 +7933,21 @@ "node": ">=0.12.0" } }, + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-object": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.2.tgz", @@ -8101,18 +7975,22 @@ "node": ">=8" } }, - "node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", "dev": true, "dependencies": { - "isobject": "^3.0.1" + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" }, "engines": { - "node": ">=0.10.0" - } - }, + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-retry-allowed": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz", @@ -8122,6 +8000,21 @@ "node": ">=0.10.0" } }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", + "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-stream": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", @@ -8134,13 +8027,43 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-typed-array": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", - "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", + "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", "dev": true, "dependencies": { - "which-typed-array": "^1.1.11" + "which-typed-array": "^1.1.14" }, "engines": { "node": ">= 0.4" @@ -8161,6 +8084,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-wsl": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", @@ -8184,15 +8119,6 @@ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" }, - "node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/istanbul-lib-coverage": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", @@ -8264,16 +8190,13 @@ } }, "node_modules/jackspeak": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", - "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", "dev": true, "dependencies": { "@isaacs/cliui": "^8.0.2" }, - "engines": { - "node": ">=14" - }, "funding": { "url": "https://github.com/sponsors/isaacs" }, @@ -8725,44 +8648,6 @@ "node": ">=8" } }, - "node_modules/jest-worker": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", - "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", - "dev": true, - "dependencies": { - "@types/node": "*", - "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, - "node_modules/jest-worker/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -8793,10 +8678,10 @@ "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", "dev": true }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "node_modules/json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", "dev": true }, "node_modules/json-schema-ref-resolver": { @@ -8820,18 +8705,6 @@ "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", "dev": true }, - "node_modules/json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/jsonc-parser": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", @@ -8901,26 +8774,17 @@ "json-buffer": "3.0.1" } }, - "node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/koa": { - "version": "2.14.2", - "resolved": "https://registry.npmjs.org/koa/-/koa-2.14.2.tgz", - "integrity": "sha512-VFI2bpJaodz6P7x2uyLiX6RLYpZmOJqNmoCst/Yyd7hQlszyPwG/I9CQJ63nOtKSxpt5M7NH67V6nJL2BwCl7g==", + "version": "2.15.3", + "resolved": "https://registry.npmjs.org/koa/-/koa-2.15.3.tgz", + "integrity": "sha512-j/8tY9j5t+GVMLeioLaxweJiKUayFhlGqNTzf2ZGwL0ZCQijd2RLHK0SLW5Tsko8YyyqCZC2cojIb0/s62qTAg==", "dev": true, "dependencies": { "accepts": "^1.3.5", "cache-content-type": "^1.0.0", "content-disposition": "~0.5.2", "content-type": "^1.0.4", - "cookies": "~0.8.0", + "cookies": "~0.9.0", "debug": "^4.3.2", "delegates": "^1.0.0", "depd": "^2.0.0", @@ -9182,27 +9046,41 @@ "uc.micro": "^1.0.1" } }, - "node_modules/loader-runner": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", - "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "node_modules/load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==", "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + }, "engines": { - "node": ">=6.11.5" + "node": ">=4" } }, - "node_modules/loader-utils": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.4.tgz", - "integrity": "sha512-xXqpXoINfFhgua9xiqD8fPFHgkoq1mmmpE92WlDbm9rNRd/EbRb+Gqf908T2DMfuHjjJlksiK2RbHVOdD/MqSw==", + "node_modules/load-json-file/node_modules/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", "dev": true, "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^3.0.0", - "json5": "^2.1.2" + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" }, "engines": { - "node": ">=8.9.0" + "node": ">=4" + } + }, + "node_modules/load-json-file/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true, + "engines": { + "node": ">=4" } }, "node_modules/locate-app": { @@ -9508,6 +9386,15 @@ "node": ">= 0.6" } }, + "node_modules/memorystream": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", + "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==", + "dev": true, + "engines": { + "node": ">= 0.10.0" + } + }, "node_modules/merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", @@ -9628,9 +9515,9 @@ } }, "node_modules/minipass": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", - "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", "dev": true, "engines": { "node": ">=16 || 14 >=14.17" @@ -10087,12 +9974,6 @@ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", "dev": true }, - "node_modules/natural-compare-lite": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", - "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==", - "dev": true - }, "node_modules/negotiator": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", @@ -10102,12 +9983,6 @@ "node": ">= 0.6" } }, - "node_modules/neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true - }, "node_modules/netmask": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz", @@ -10117,6 +9992,12 @@ "node": ">= 0.4.0" } }, + "node_modules/nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, "node_modules/node-abi": { "version": "3.51.0", "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.51.0.tgz", @@ -10174,12 +10055,6 @@ "url": "https://opencollective.com/node-fetch" } }, - "node_modules/node-releases": { - "version": "2.0.13", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.13.tgz", - "integrity": "sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==", - "dev": true - }, "node_modules/normalize-package-data": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.1.tgz", @@ -10237,6 +10112,151 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/npm-run-all": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz", + "integrity": "sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "chalk": "^2.4.1", + "cross-spawn": "^6.0.5", + "memorystream": "^0.3.1", + "minimatch": "^3.0.4", + "pidtree": "^0.3.0", + "read-pkg": "^3.0.0", + "shell-quote": "^1.6.1", + "string.prototype.padend": "^3.0.0" + }, + "bin": { + "npm-run-all": "bin/npm-run-all/index.js", + "run-p": "bin/run-p/index.js", + "run-s": "bin/run-s/index.js" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/npm-run-all/node_modules/cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" + } + }, + "node_modules/npm-run-all/node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "node_modules/npm-run-all/node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/npm-run-all/node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-all/node_modules/path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "dependencies": { + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-all/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-all/node_modules/read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==", + "dev": true, + "dependencies": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-all/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/npm-run-all/node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "dev": true, + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-all/node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-all/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, "node_modules/npm-run-path": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", @@ -10319,13 +10339,13 @@ } }, "node_modules/object.assign": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", - "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", "has-symbols": "^1.0.3", "object-keys": "^1.1.1" }, @@ -10415,17 +10435,17 @@ } }, "node_modules/optionator": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", - "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", "dev": true, "dependencies": { - "@aashutoshrathi/word-wrap": "^1.2.3", "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", - "type-check": "^0.4.0" + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" }, "engines": { "node": ">= 0.8.0" @@ -10620,15 +10640,6 @@ "node": ">=4" } }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, "node_modules/pac-proxy-agent": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-7.0.1.tgz", @@ -10699,6 +10710,12 @@ "node": ">= 14" } }, + "node_modules/package-json-from-dist": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz", + "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==", + "dev": true + }, "node_modules/pako": { "version": "0.2.9", "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", @@ -10852,29 +10869,26 @@ "dev": true }, "node_modules/path-scurry": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.2.tgz", - "integrity": "sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", "dev": true, "dependencies": { "lru-cache": "^10.2.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" }, "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">=16 || 14 >=14.18" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", - "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", - "dev": true, - "engines": { - "node": "14 || >=16.14" - } + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true }, "node_modules/path-to-regexp": { "version": "6.2.1", @@ -10941,6 +10955,18 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/pidtree": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.3.1.tgz", + "integrity": "sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==", + "dev": true, + "bin": { + "pidtree": "bin/pidtree.js" + }, + "engines": { + "node": ">=0.10" + } + }, "node_modules/pify": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", @@ -11058,98 +11084,34 @@ "integrity": "sha512-e906FRY0+tV27iq4juKzSYPbUj2do2X2JX4EzSca1631EB2QJQUqGbDuERal7LCtOpxl6x3+nvo9NPZcmjkiFA==", "dev": true }, - "node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "node_modules/playwright": { + "version": "1.45.3", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.45.3.tgz", + "integrity": "sha512-QhVaS+lpluxCaioejDZ95l4Y4jSFCsBvl2UZkpeXlzxmqS+aABr5c82YmfMHrL6x27nvrvykJAFpkzT2eWdJww==", "dev": true, "dependencies": { - "find-up": "^4.0.0" + "playwright-core": "1.45.3" + }, + "bin": { + "playwright": "cli.js" }, "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pkg-dir/node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pkg-dir/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/playwright": { - "version": "1.40.1", - "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.40.1.tgz", - "integrity": "sha512-2eHI7IioIpQ0bS1Ovg/HszsN/XKNwEG1kbzSDDmADpclKc7CyqkHw7Mg2JCz/bbCxg25QUPcjksoMW7JcIFQmw==", - "dev": true, - "dependencies": { - "playwright-core": "1.40.1" - }, - "bin": { - "playwright": "cli.js" - }, - "engines": { - "node": ">=16" + "node": ">=18" }, "optionalDependencies": { "fsevents": "2.3.2" } }, "node_modules/playwright-core": { - "version": "1.40.1", - "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.40.1.tgz", - "integrity": "sha512-+hkOycxPiV534c4HhpfX6yrlawqVUzITRKwHAmYfmsVreltEl6fAZJ3DPfLMOODw0H3s1Itd6MDCWmP1fl/QvQ==", + "version": "1.45.3", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.45.3.tgz", + "integrity": "sha512-+ym0jNbcjikaOwwSZycFbwkWgfruWvYlJfThKYAlImbxUgdWFO2oW70ojPm4OpE4t6TAo2FY/smM+hpVTtkhDA==", "dev": true, "bin": { "playwright-core": "cli.js" }, "engines": { - "node": ">=16" + "node": ">=18" } }, "node_modules/playwright/node_modules/fsevents": { @@ -11166,6 +11128,15 @@ "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, + "node_modules/possible-typed-array-names": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", + "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/prebuild-install": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.1.tgz", @@ -11212,15 +11183,15 @@ } }, "node_modules/prettier": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", - "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz", + "integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==", "dev": true, "bin": { - "prettier": "bin-prettier.js" + "prettier": "bin/prettier.cjs" }, "engines": { - "node": ">=10.13.0" + "node": ">=14" }, "funding": { "url": "https://github.com/prettier/prettier?sponsor=1" @@ -11972,18 +11943,6 @@ "node": ">= 12.13.0" } }, - "node_modules/rechoir": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz", - "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==", - "dev": true, - "dependencies": { - "resolve": "^1.20.0" - }, - "engines": { - "node": ">= 10.13.0" - } - }, "node_modules/recursive-readdir": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.3.tgz", @@ -11996,6 +11955,24 @@ "node": ">=6.0.0" } }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", + "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.6", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "set-function-name": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -12037,27 +12014,6 @@ "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==", "dev": true }, - "node_modules/resolve-cwd": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", - "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", - "dev": true, - "dependencies": { - "resolve-from": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/resolve-cwd/node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", @@ -12125,15 +12081,6 @@ "node": ">= 0.6" } }, - "node_modules/resolve-pkg-maps": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", - "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", - "dev": true, - "funding": { - "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" - } - }, "node_modules/responselike": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz", @@ -12320,6 +12267,30 @@ "integrity": "sha512-4R309+gWflJktzPXBQCobbWEHlzC4aK3a+Ov3tz2Ib2aBxiwd11phkdIBH1l0EO22x24CJMUQkpKFumRriCSRg==", "dev": true }, + "node_modules/safe-array-concat": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", + "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-array-concat/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + }, "node_modules/safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -12340,6 +12311,23 @@ } ] }, + "node_modules/safe-regex-test": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", + "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-regex": "^1.1.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/safe-regex2": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/safe-regex2/-/safe-regex2-3.1.0.tgz", @@ -12370,24 +12358,6 @@ "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==", "dev": true }, - "node_modules/schema-utils": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", - "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.8", - "ajv": "^6.12.5", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - } - }, "node_modules/secure-json-parse": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/secure-json-parse/-/secure-json-parse-2.7.0.tgz", @@ -12485,6 +12455,21 @@ "node": ">= 0.4" } }, + "node_modules/set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "dev": true, + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/setimmediate": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", @@ -12497,18 +12482,6 @@ "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", "dev": true }, - "node_modules/shallow-clone": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", - "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -12530,6 +12503,15 @@ "node": ">=8" } }, + "node_modules/shell-quote": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", + "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/side-channel": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", @@ -12703,31 +12685,16 @@ "node": ">=0.10.0" } }, - "node_modules/source-list-map": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", - "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", - "dev": true - }, "node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, + "optional": true, "engines": { "node": ">=0.10.0" } }, - "node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dev": true, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, "node_modules/spacetrim": { "version": "0.11.25", "resolved": "https://registry.npmjs.org/spacetrim/-/spacetrim-0.11.25.tgz", @@ -12944,6 +12911,73 @@ "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, + "node_modules/string.prototype.padend": { + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.6.tgz", + "integrity": "sha512-XZpspuSB7vJWhvJc9DLSlrXl1mcA2BdoY5jjnS135ydXqLoqhs96JjDtCkjJEQHvfqZIp9hBuBMgI589peyx9Q==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", + "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.0", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", + "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -12969,6 +13003,15 @@ "node": ">=8" } }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/strip-dirs": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/strip-dirs/-/strip-dirs-2.1.0.tgz", @@ -13038,6 +13081,22 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/synckit": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.9.1.tgz", + "integrity": "sha512-7gr8p9TQP6RAHusBOSLs46F4564ZrjV8xFmw5zCmgmhGUcw2hxsShhJ6CEiHQMgPDwAQ1fWHPM0ypc4RMAig4A==", + "dev": true, + "dependencies": { + "@pkgr/core": "^0.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts" + } + }, "node_modules/tapable": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", @@ -13092,73 +13151,6 @@ "node": ">= 6" } }, - "node_modules/terser": { - "version": "5.30.3", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.30.3.tgz", - "integrity": "sha512-STdUgOUx8rLbMGO9IOwHLpCqolkDITFFQSMYYwKE1N2lY6MVSaeoi10z/EhWxRc6ybqoVmKSkhKYH/XUpl7vSA==", - "dev": true, - "dependencies": { - "@jridgewell/source-map": "^0.3.3", - "acorn": "^8.8.2", - "commander": "^2.20.0", - "source-map-support": "~0.5.20" - }, - "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/terser-webpack-plugin": { - "version": "5.3.10", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz", - "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==", - "dev": true, - "dependencies": { - "@jridgewell/trace-mapping": "^0.3.20", - "jest-worker": "^27.4.5", - "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.1", - "terser": "^5.26.0" - }, - "engines": { - "node": ">= 10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.1.0" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "esbuild": { - "optional": true - }, - "uglify-js": { - "optional": true - } - } - }, - "node_modules/terser-webpack-plugin/node_modules/serialize-javascript": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", - "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", - "dev": true, - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/terser/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, "node_modules/test-exclude": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", @@ -13308,103 +13300,16 @@ "node": ">=0.10.0" } }, - "node_modules/ts-loader": { - "version": "9.5.1", - "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.5.1.tgz", - "integrity": "sha512-rNH3sK9kGZcH9dYzC7CewQm4NtxJTjSEVRJ2DyBZR7f8/wcta+iV44UPCXc5+nzDzivKtlzV6c9P4e+oFhDLYg==", + "node_modules/ts-api-utils": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz", + "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==", "dev": true, - "dependencies": { - "chalk": "^4.1.0", - "enhanced-resolve": "^5.0.0", - "micromatch": "^4.0.0", - "semver": "^7.3.4", - "source-map": "^0.7.4" - }, "engines": { - "node": ">=12.0.0" + "node": ">=16" }, "peerDependencies": { - "typescript": "*", - "webpack": "^5.0.0" - } - }, - "node_modules/ts-loader/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/ts-loader/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/ts-loader/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/ts-loader/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/ts-loader/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/ts-loader/node_modules/source-map": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", - "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/ts-loader/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" + "typescript": ">=4.2.0" } }, "node_modules/ts-node": { @@ -13474,27 +13379,6 @@ "node": ">=0.6.x" } }, - "node_modules/tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "dev": true, - "dependencies": { - "tslib": "^1.8.1" - }, - "engines": { - "node": ">= 6" - }, - "peerDependencies": { - "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" - } - }, - "node_modules/tsutils/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true - }, "node_modules/tunnel": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", @@ -13563,6 +13447,79 @@ "node": ">= 0.6" } }, + "node_modules/typed-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", + "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", + "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", + "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz", + "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/typed-rest-client": { "version": "1.8.11", "resolved": "https://registry.npmjs.org/typed-rest-client/-/typed-rest-client-1.8.11.tgz", @@ -13593,6 +13550,21 @@ "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==", "dev": true }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/unbzip2-stream": { "version": "1.4.3", "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", @@ -13649,36 +13621,6 @@ "graceful-fs": "^4.2.2" } }, - "node_modules/update-browserslist-db": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", - "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/browserslist" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - }, - "bin": { - "update-browserslist-db": "cli.js" - }, - "peerDependencies": { - "browserslist": ">= 4.21.0" - } - }, "node_modules/uri-js": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", @@ -13937,19 +13879,6 @@ "node": ">=8" } }, - "node_modules/watchpack": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.1.tgz", - "integrity": "sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==", - "dev": true, - "dependencies": { - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.1.2" - }, - "engines": { - "node": ">=10.13.0" - } - }, "node_modules/wcwidth": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", @@ -14205,130 +14134,6 @@ "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", "dev": true }, - "node_modules/webpack": { - "version": "5.91.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.91.0.tgz", - "integrity": "sha512-rzVwlLeBWHJbmgTC/8TvAcu5vpJNII+MelQpylD4jNERPwpBJOE2lEcko1zJX3QJeLjTTAnQxn/OJ8bjDzVQaw==", - "dev": true, - "dependencies": { - "@types/eslint-scope": "^3.7.3", - "@types/estree": "^1.0.5", - "@webassemblyjs/ast": "^1.12.1", - "@webassemblyjs/wasm-edit": "^1.12.1", - "@webassemblyjs/wasm-parser": "^1.12.1", - "acorn": "^8.7.1", - "acorn-import-assertions": "^1.9.0", - "browserslist": "^4.21.10", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.16.0", - "es-module-lexer": "^1.2.1", - "eslint-scope": "5.1.1", - "events": "^3.2.0", - "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.2.11", - "json-parse-even-better-errors": "^2.3.1", - "loader-runner": "^4.2.0", - "mime-types": "^2.1.27", - "neo-async": "^2.6.2", - "schema-utils": "^3.2.0", - "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.3.10", - "watchpack": "^2.4.1", - "webpack-sources": "^3.2.3" - }, - "bin": { - "webpack": "bin/webpack.js" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependenciesMeta": { - "webpack-cli": { - "optional": true - } - } - }, - "node_modules/webpack-cli": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-5.1.4.tgz", - "integrity": "sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg==", - "dev": true, - "dependencies": { - "@discoveryjs/json-ext": "^0.5.0", - "@webpack-cli/configtest": "^2.1.1", - "@webpack-cli/info": "^2.0.2", - "@webpack-cli/serve": "^2.0.5", - "colorette": "^2.0.14", - "commander": "^10.0.1", - "cross-spawn": "^7.0.3", - "envinfo": "^7.7.3", - "fastest-levenshtein": "^1.0.12", - "import-local": "^3.0.2", - "interpret": "^3.1.1", - "rechoir": "^0.8.0", - "webpack-merge": "^5.7.3" - }, - "bin": { - "webpack-cli": "bin/cli.js" - }, - "engines": { - "node": ">=14.15.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "5.x.x" - }, - "peerDependenciesMeta": { - "@webpack-cli/generators": { - "optional": true - }, - "webpack-bundle-analyzer": { - "optional": true - }, - "webpack-dev-server": { - "optional": true - } - } - }, - "node_modules/webpack-cli/node_modules/commander": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", - "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", - "dev": true, - "engines": { - "node": ">=14" - } - }, - "node_modules/webpack-merge": { - "version": "5.10.0", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.10.0.tgz", - "integrity": "sha512-+4zXKdx7UnO+1jaN4l2lHVD+mFvnlZQP/6ljaJVb4SZiwIKeUnrT5l0gkT8z+n4hKpC+jpOv6O9R+gLtag7pSA==", - "dev": true, - "dependencies": { - "clone-deep": "^4.0.1", - "flat": "^5.0.2", - "wildcard": "^2.0.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/webpack-sources": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", - "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", - "dev": true, - "engines": { - "node": ">=10.13.0" - } - }, "node_modules/whatwg-url": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", @@ -14353,17 +14158,33 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/which-typed-array": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.13.tgz", - "integrity": "sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==", + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", + "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", "dev": true, "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.4", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", "for-each": "^0.3.3", "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" + "has-tostringtag": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -14372,11 +14193,14 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/wildcard": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", - "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==", - "dev": true + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } }, "node_modules/workerpool": { "version": "6.2.1", @@ -14686,9 +14510,9 @@ } }, "node_modules/ylru": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/ylru/-/ylru-1.3.2.tgz", - "integrity": "sha512-RXRJzMiK6U2ye0BlGGZnmpwJDPgakn6aNQ0A7gHRbD4I0uvK4TW6UqkK1V0pp9jskjJBAXd3dRrbzWkqJ+6cxA==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ylru/-/ylru-1.4.0.tgz", + "integrity": "sha512-2OQsPNEmBCvXuFlIni/a+Rn+R2pHW9INm0BxXJ4hVDA8TirqMj+J/Rp9ItLatT/5pZqWwefVrTQcHpixsxnVlA==", "dev": true, "engines": { "node": ">= 4.0.0" diff --git a/package.json b/package.json index 7fa1387..2cdf5cf 100644 --- a/package.json +++ b/package.json @@ -53,8 +53,8 @@ "workspaceContains:**/*.tf", "workspaceContains:**/*.tfvars" ], - "main": "./out/extension", - "browser": "./out/web/extension", + "main": "./dist/extension", + "browser": "./dist/web/extension", "contributes": { "languages": [ { @@ -884,23 +884,30 @@ }, "scripts": { "prepare": "npm run download:artifacts && cd src/test/e2e && npm install", - "compile": "webpack", - "compile:test": "tsc --project ./", - "compile:test:watch": "tsc --project ./ --watch", - "compile:prod": "webpack --mode production --devtool hidden-source-map", - "watch": "webpack --watch --mode development", - "web": "npm run compile && vscode-test-web --browserType=chromium --extensionDevelopmentPath=. ./testFixture", + "compile": "npm run check-types && npm run lint && node esbuild.js", + "compile:prod": "npm run check-types && npm run lint && node esbuild.js --production", + "compile:tests": "tsc -p .", + "watch": "npm-run-all -p watch:esbuild watch:tsc", + "watch:esbuild": "node esbuild.js --watch", + "watch:tsc": "tsc --noEmit --watch", + "watch:tests": "tsc -p . -w", + "watch:web": "npm-run-all -p watch:web:*", + "watch:web:esbuild": "node esbuild.js --watch", + "watch:web:tsc": "tsc --noEmit --watch", + "web": "npm run compile && vscode-test-web --browserType=chromium --extensionDevelopmentPath=. ./src/test/fixtures", "web:serve": "npx serve --cors -l 5001", "web:tunnel": "npx localtunnel -p 5001", "download:artifacts": "ts-node ./build/downloader.ts", "vscode:prepublish": "npm run compile:prod", "package": "vsce package", - "test": "npm run compile:test && vscode-test", + "pretest": "npm run compile:tests && npm run compile && npm run lint", + "test": "vscode-test", + "wdio": "npm run compile && wdio run ./src/test/e2e/wdio.conf.ts", "lint": "eslint src --ext ts", "prettier": "prettier \"**/*.+(js|json|ts)\"", "format": "npm run prettier -- --write", + "check-types": "tsc --noEmit", "check-format": "npm run prettier -- --check", - "wdio": "npm run compile && wdio run ./src/test/e2e/wdio.conf.ts", "changelog:build": "changie batch auto && changie merge && npm i --package-lock-only" }, "dependencies": { @@ -915,20 +922,21 @@ "zod": "^3.21.4" }, "devDependencies": { + "@esbuild-plugins/node-globals-polyfill": "^0.2.3", "@hashicorp/js-releases": "^1.7.1", "@playwright/browser-chromium": "^1.39.0", "@types/chai": "^4.3.5", "@types/glob": "^8.1.0", "@types/mocha": "^10.0.1", "@types/node": "^18.x", + "@types/semver": "^7.5.8", "@types/vscode": "~1.86", - "@types/webpack-env": "^1.18.0", "@types/which": "^3.0.0", - "@typescript-eslint/eslint-plugin": "^5.59.5", - "@typescript-eslint/parser": "^5.59.5", + "@typescript-eslint/eslint-plugin": "^7.17.0", + "@typescript-eslint/parser": "^7.17.0", "@vscode/test-cli": "^0.0.9", "@vscode/test-electron": "^2.3.9", - "@vscode/test-web": "^0.0.50", + "@vscode/test-web": "^0.0.56", "@vscode/vsce": "^2.19.0", "@wdio/cli": "^8.38.1", "@wdio/local-runner": "^8.38.0", @@ -936,20 +944,18 @@ "@wdio/spec-reporter": "^8.38.0", "assert": "^2.0.0", "chai": "^4.3.7", - "esbuild-loader": "^4.1.0", - "eslint": "^8.40.0", - "eslint-config-prettier": "^8.8.0", - "eslint-plugin-prettier": "^4.2.1", + "esbuild": "^0.23.0", + "eslint": "^8.57.0", + "eslint-config-prettier": "^9.1.0", + "eslint-plugin-prettier": "^5.2.1", "mocha": "^10.2.0", "msw": "^2.0.11", - "prettier": "^2.8.8", + "npm-run-all": "^4.1.5", + "prettier": "^3.3.3", "process": "^0.11.10", - "ts-loader": "^9.4.2", "ts-node": "^10.9.2", "typescript": "^5.1.3", "wdio-vscode-service": "^6.0.3", - "wdio-wait-for": "^3.0.11", - "webpack": "^5.82.0", - "webpack-cli": "^5.1.1" + "wdio-wait-for": "^3.0.11" } } diff --git a/src/commands/terraform.ts b/src/commands/terraform.ts index ee69d60..142d5f2 100644 --- a/src/commands/terraform.ts +++ b/src/commands/terraform.ts @@ -11,7 +11,10 @@ import * as terraform from '../api/terraform/terraform'; export class TerraformCommands implements vscode.Disposable { private commands: vscode.Disposable[]; - constructor(private client: LanguageClient, private reporter: TelemetryReporter) { + constructor( + private client: LanguageClient, + private reporter: TelemetryReporter, + ) { this.commands = [ vscode.commands.registerCommand('terraform.init', async () => { await terraform.initAskUserCommand(this.client, this.reporter); diff --git a/src/features/moduleCalls.ts b/src/features/moduleCalls.ts index 99afb3b..67e5ee8 100644 --- a/src/features/moduleCalls.ts +++ b/src/features/moduleCalls.ts @@ -19,7 +19,10 @@ const CLIENT_MODULE_CALLS_CMD_ID = 'client.refreshModuleCalls'; export class ModuleCallsFeature implements StaticFeature { private disposables: vscode.Disposable[] = []; - constructor(private client: BaseLanguageClient, private view: ModuleCallsDataProvider) {} + constructor( + private client: BaseLanguageClient, + private view: ModuleCallsDataProvider, + ) {} // eslint-disable-next-line @typescript-eslint/no-empty-function clear(): void {} diff --git a/src/features/moduleProviders.ts b/src/features/moduleProviders.ts index 4fab326..d76de50 100644 --- a/src/features/moduleProviders.ts +++ b/src/features/moduleProviders.ts @@ -19,7 +19,10 @@ export const CLIENT_MODULE_PROVIDERS_CMD_ID = 'client.refreshModuleProviders'; export class ModuleProvidersFeature implements StaticFeature { private disposables: vscode.Disposable[] = []; - constructor(private client: BaseLanguageClient, private view: ModuleProvidersDataProvider) {} + constructor( + private client: BaseLanguageClient, + private view: ModuleProvidersDataProvider, + ) {} // eslint-disable-next-line @typescript-eslint/no-empty-function clear(): void {} diff --git a/src/features/semanticTokens.ts b/src/features/semanticTokens.ts index 2480f97..58fab4d 100644 --- a/src/features/semanticTokens.ts +++ b/src/features/semanticTokens.ts @@ -23,7 +23,10 @@ interface ObjectWithId { } export class CustomSemanticTokens implements StaticFeature { - constructor(private _client: BaseLanguageClient, private manifest: PartialManifest) {} + constructor( + private _client: BaseLanguageClient, + private manifest: PartialManifest, + ) {} // eslint-disable-next-line @typescript-eslint/no-empty-function clear(): void {} diff --git a/src/features/telemetry.ts b/src/features/telemetry.ts index a337151..1b00432 100644 --- a/src/features/telemetry.ts +++ b/src/features/telemetry.ts @@ -20,7 +20,10 @@ type TelemetryEvent = { export class TelemetryFeature implements StaticFeature { private disposables: vscode.Disposable[] = []; - constructor(private client: BaseLanguageClient, private reporter: TelemetryReporter) {} + constructor( + private client: BaseLanguageClient, + private reporter: TelemetryReporter, + ) {} // eslint-disable-next-line @typescript-eslint/no-empty-function clear(): void {} diff --git a/src/providers/terraform/moduleCalls.ts b/src/providers/terraform/moduleCalls.ts index cce2ee9..61415f3 100644 --- a/src/providers/terraform/moduleCalls.ts +++ b/src/providers/terraform/moduleCalls.ts @@ -33,9 +33,11 @@ class ModuleCallItem extends vscode.TreeItem { } else { this.tooltip = `${this.sourceAddr}@${this.version}`; } + + this.iconPath = this.getIcon(this.sourceType); } - iconPath = this.getIcon(this.sourceType); + // iconPath = this.getIcon(this.sourceType); getIcon(type: string | undefined) { switch (type) { @@ -65,7 +67,11 @@ export class ModuleCallsDataProvider implements vscode.TreeDataProvider(); public readonly onDidChangeTreeData = this.didChangeTreeData.event; - constructor(ctx: vscode.ExtensionContext, private client: LanguageClient, private reporter: TelemetryReporter) { + constructor( + ctx: vscode.ExtensionContext, + private client: LanguageClient, + private reporter: TelemetryReporter, + ) { ctx.subscriptions.push( vscode.commands.registerCommand('terraform.providers.refreshList', () => this.refresh()), vscode.window.onDidChangeActiveTextEditor(async () => { diff --git a/src/providers/tfc/applyProvider.ts b/src/providers/tfc/applyProvider.ts index 9df1696..d3330ef 100644 --- a/src/providers/tfc/applyProvider.ts +++ b/src/providers/tfc/applyProvider.ts @@ -190,7 +190,10 @@ interface ApplyLog { } class AppliedChangesItem extends vscode.TreeItem implements ItemWithChildren { - constructor(private appliedChanges: AppliedChange[], summary?: ChangeSummary) { + constructor( + private appliedChanges: AppliedChange[], + summary?: ChangeSummary, + ) { let label = 'Applied changes'; if (summary) { const labels: string[] = []; diff --git a/src/providers/tfc/logHelpers.ts b/src/providers/tfc/logHelpers.ts index 3363fd9..f185ce5 100644 --- a/src/providers/tfc/logHelpers.ts +++ b/src/providers/tfc/logHelpers.ts @@ -50,7 +50,10 @@ class OutputChangeItem extends vscode.TreeItem { } export class DiagnosticsItem extends vscode.TreeItem implements ItemWithChildren { - constructor(private diagnostics: Diagnostic[], summary: DiagnosticSummary) { + constructor( + private diagnostics: Diagnostic[], + summary: DiagnosticSummary, + ) { const labels: string[] = []; if (summary.warningCount === 1) { labels.push(`1 warning`); diff --git a/src/providers/tfc/organizationPicker.ts b/src/providers/tfc/organizationPicker.ts index 6666227..bcab00a 100644 --- a/src/providers/tfc/organizationPicker.ts +++ b/src/providers/tfc/organizationPicker.ts @@ -52,7 +52,10 @@ export class OrganizationAPIResource implements APIResource { placeholder = 'Choose an organization (type to search)'; ignoreFocusOut = true; - constructor(private outputChannel: vscode.OutputChannel, private reporter: TelemetryReporter) {} + constructor( + private outputChannel: vscode.OutputChannel, + private reporter: TelemetryReporter, + ) {} private async createOrganizationItems(search?: string): Promise { const organizations = await apiClient.listOrganizations({ diff --git a/src/providers/tfc/planProvider.ts b/src/providers/tfc/planProvider.ts index afc0cc4..055646f 100644 --- a/src/providers/tfc/planProvider.ts +++ b/src/providers/tfc/planProvider.ts @@ -214,7 +214,10 @@ interface PlanLog { } class PlannedChangesItem extends vscode.TreeItem implements ItemWithChildren { - constructor(private plannedChanges: Change[], summary?: ChangeSummary) { + constructor( + private plannedChanges: Change[], + summary?: ChangeSummary, + ) { let label = 'Planned changes'; if (summary) { const labels: string[] = []; @@ -271,7 +274,10 @@ class PlannedChangeItem extends vscode.TreeItem { } class DriftChangesItem extends vscode.TreeItem implements ItemWithChildren { - constructor(private driftChanges: Change[], summary?: DriftSummary) { + constructor( + private driftChanges: Change[], + summary?: DriftSummary, + ) { let label = `Drifted resources`; if (summary) { const details = []; diff --git a/src/providers/tfc/runProvider.ts b/src/providers/tfc/runProvider.ts index be0546f..4445e2f 100644 --- a/src/providers/tfc/runProvider.ts +++ b/src/providers/tfc/runProvider.ts @@ -5,8 +5,8 @@ import * as vscode from 'vscode'; import axios from 'axios'; -import * as semver from 'semver'; import TelemetryReporter from '@vscode/extension-telemetry'; +import semver from 'semver'; import { TerraformCloudWebUrl, apiClient } from '../../api/terraformCloud'; import { TerraformCloudAuthenticationProvider } from './authenticationProvider'; @@ -302,7 +302,11 @@ export class RunTreeItem extends vscode.TreeItem { public applyAttributes?: ApplyAttributes; public applyId?: string; - constructor(public id: string, public attributes: RunAttributes, public workspace: WorkspaceTreeItem) { + constructor( + public id: string, + public attributes: RunAttributes, + public workspace: WorkspaceTreeItem, + ) { super(attributes.message, vscode.TreeItemCollapsibleState.None); this.id = id; @@ -321,7 +325,11 @@ export class RunTreeItem extends vscode.TreeItem { export class PlanTreeItem extends vscode.TreeItem { public logReadUrl = ''; - constructor(public id: string, public label: string, public attributes: PlanAttributes) { + constructor( + public id: string, + public label: string, + public attributes: PlanAttributes, + ) { super(label); this.iconPath = GetPlanApplyStatusIcon(attributes.status); if (attributes) { @@ -336,7 +344,11 @@ export class PlanTreeItem extends vscode.TreeItem { export class ApplyTreeItem extends vscode.TreeItem { public logReadUrl = ''; - constructor(public id: string, public label: string, public attributes: ApplyAttributes) { + constructor( + public id: string, + public label: string, + public attributes: ApplyAttributes, + ) { super(label); this.iconPath = GetPlanApplyStatusIcon(attributes.status); if (attributes) { diff --git a/tsconfig.json b/tsconfig.json index baf3f6a..47f2e48 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,8 +1,8 @@ { "compilerOptions": { - "module": "commonjs", - "target": "ES2020", - "lib": ["ES2020", "WebWorker"], + "module": "Node16", + "target": "ES2022", + "lib": ["ES2022", "WebWorker"], "outDir": "out", "rootDir": "src", "sourceMap": true, diff --git a/webpack.config.js b/webpack.config.js deleted file mode 100644 index 916b8da..0000000 --- a/webpack.config.js +++ /dev/null @@ -1,132 +0,0 @@ -/** - * Copyright (c) HashiCorp, Inc. - * SPDX-License-Identifier: MPL-2.0 - */ - -//@ts-check - -/* eslint-disable no-undef */ -/* eslint-disable @typescript-eslint/no-var-requires */ -/* eslint-disable @typescript-eslint/naming-convention */ - -'use strict'; - -const path = require('path'); -const webpack = require('webpack'); - -//@ts-check -/** @typedef {import('webpack').Configuration} WebpackConfig **/ - -/** @type WebpackConfig */ -const extensionConfig = { - name: 'desktop', - context: __dirname, - target: 'node', // VS Code extensions run in a Node.js-context 📖 -> https://webpack.js.org/configuration/node/ - mode: 'none', // this leaves the source code as close as possible to the original (when packaging we set this to 'production') - - entry: { - extension: './src/extension.ts', - }, // the entry point of this extension, 📖 -> https://webpack.js.org/configuration/entry-context/ - output: { - // the bundle is stored in the 'out' folder (check package.json), 📖 -> https://webpack.js.org/configuration/output/ - path: path.resolve(__dirname, 'out'), - filename: '[name].js', - libraryTarget: 'commonjs2', - }, - externals: { - // modules added here also need to be added in the .vscodeignore file - mocha: 'commonjs mocha', // don't bundle - '@vscode/test-electron': 'commonjs @vscode/test-electron', // don't bundle - vscode: 'commonjs vscode', // the vscode-module is created on-the-fly and must be excluded. Add other modules that cannot be webpack'ed, 📖 -> https://webpack.js.org/configuration/externals/ - // These dependencies are ignored because we don't use them, and App Insights has try-catch protecting their loading if they don't exist - // See: https://github.com/microsoft/vscode-extension-telemetry/issues/41#issuecomment-598852991 - 'applicationinsights-native-metrics': 'commonjs applicationinsights-native-metrics', - '@opentelemetry/tracing': 'commonjs @opentelemetry/tracing', - }, - resolve: { - mainFields: ['module', 'main'], - // support reading TypeScript and JavaScript files, 📖 -> https://github.com/TypeStrong/ts-loader - extensions: ['.ts', '.js'], - }, - performance: { - hints: false, - }, - module: { - rules: [ - { - test: /\.ts$/, - exclude: /node_modules/, - loader: 'esbuild-loader', - }, - ], - }, - devtool: 'nosources-source-map', - infrastructureLogging: { - level: 'log', // enables logging required for problem matchers - }, -}; - -/** @type WebpackConfig */ -const webExtensionConfig = { - name: 'web', - context: __dirname, - mode: 'none', // this leaves the source code as close as possible to the original (when packaging we set this to 'production') - target: 'webworker', // extensions run in a webworker context - entry: { - extension: './src/web/extension.ts', - }, - output: { - filename: '[name].js', - path: path.join(__dirname, './out/web'), - libraryTarget: 'commonjs', - devtoolModuleFilenameTemplate: '../../[resource-path]', - }, - resolve: { - mainFields: ['browser', 'module', 'main'], // look for `browser` entry point in imported node modules - extensions: ['.ts', '.js'], // support ts-files and js-files - alias: { - // provides alternate implementation for node module and source files - }, - fallback: { - // Webpack 5 no longer polyfills Node.js core modules automatically. - // see https://webpack.js.org/configuration/resolve/#resolvefallback - // for the list of Node.js core module polyfills. - assert: require.resolve('assert'), - }, - }, - module: { - rules: [ - { - test: /\.ts$/, - exclude: /node_modules/, - loader: 'esbuild-loader', - }, - ], - }, - plugins: [ - new webpack.optimize.LimitChunkCountPlugin({ - maxChunks: 1, // disable chunks by default since web extensions must be a single bundle - }), - new webpack.ProvidePlugin({ - process: 'process/browser', // provide a shim for the global `process` variable - }), - new webpack.WatchIgnorePlugin({ paths: [/\.*\.js/] }), - ], - externals: { - // modules added here also need to be added in the .vscodeignore file - vscode: 'commonjs vscode', // the vscode-module is created on-the-fly and must be excluded. Add other modules that cannot be webpack'ed, 📖 -> https://webpack.js.org/configuration/externals/ - // These dependencies are ignored because we don't use them, and App Insights has try-catch protecting their loading if they don't exist - // See: https://github.com/microsoft/vscode-extension-telemetry/issues/41#issuecomment-598852991 - 'applicationinsights-native-metrics': 'commonjs applicationinsights-native-metrics', - '@opentelemetry/tracing': 'commonjs @opentelemetry/tracing', - }, - performance: { - hints: false, - }, - devtool: 'nosources-source-map', // create a source map that points to the original source file - infrastructureLogging: { - level: 'log', // enables logging required for problem matchers - }, -}; - -module.exports = [extensionConfig, webExtensionConfig]; From 4c48e362147dd52790d61ac5e38de3e2ebcc282c Mon Sep 17 00:00:00 2001 From: James Pogran Date: Tue, 30 Jul 2024 12:40:51 -0400 Subject: [PATCH 08/26] Release 2.33.2024073012 --- .changes/unreleased/INTERNAL-20240724-124159.yaml | 6 ------ .changes/unreleased/INTERNAL-20240729-140356.yaml | 6 ------ .changes/v2.33.2024073012.md | 7 +++++++ CHANGELOG.md | 7 +++++++ package-lock.json | 4 ++-- package.json | 2 +- 6 files changed, 17 insertions(+), 15 deletions(-) delete mode 100644 .changes/unreleased/INTERNAL-20240724-124159.yaml delete mode 100644 .changes/unreleased/INTERNAL-20240729-140356.yaml create mode 100644 .changes/v2.33.2024073012.md diff --git a/.changes/unreleased/INTERNAL-20240724-124159.yaml b/.changes/unreleased/INTERNAL-20240724-124159.yaml deleted file mode 100644 index 2f99330..0000000 --- a/.changes/unreleased/INTERNAL-20240724-124159.yaml +++ /dev/null @@ -1,6 +0,0 @@ -kind: INTERNAL -body: Add development launch target for extensionHost -time: 2024-07-24T12:41:59.998606-04:00 -custom: - Issue: "1805" - Repository: vscode-terraform diff --git a/.changes/unreleased/INTERNAL-20240729-140356.yaml b/.changes/unreleased/INTERNAL-20240729-140356.yaml deleted file mode 100644 index be5304e..0000000 --- a/.changes/unreleased/INTERNAL-20240729-140356.yaml +++ /dev/null @@ -1,6 +0,0 @@ -kind: INTERNAL -body: Replace webpack with esbuild -time: 2024-07-29T14:03:56.583984-04:00 -custom: - Issue: "1807" - Repository: vscode-terraform diff --git a/.changes/v2.33.2024073012.md b/.changes/v2.33.2024073012.md new file mode 100644 index 0000000..83256bf --- /dev/null +++ b/.changes/v2.33.2024073012.md @@ -0,0 +1,7 @@ +## 2.33.2024073012 (2024-07-30) + +INTERNAL: + +* Add development launch target for extensionHost ([#1805](https://github.com/hashicorp/vscode-terraform/issues/1805)) +* Replace webpack with esbuild ([#1807](https://github.com/hashicorp/vscode-terraform/issues/1807)) + diff --git a/CHANGELOG.md b/CHANGELOG.md index e82fcc7..9007542 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## 2.33.2024073012 (2024-07-30) + +INTERNAL: + +* Add development launch target for extensionHost ([#1805](https://github.com/hashicorp/vscode-terraform/issues/1805)) +* Replace webpack with esbuild ([#1807](https://github.com/hashicorp/vscode-terraform/issues/1807)) + ## 2.32.2024070910 (2024-07-09) ENHANCEMENTS: diff --git a/package-lock.json b/package-lock.json index d19b320..3ddcab4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "terraform", - "version": "2.32.2", + "version": "2.33.2024073012", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "terraform", - "version": "2.32.2", + "version": "2.33.2024073012", "license": "MPL-2.0", "dependencies": { "@vscode/extension-telemetry": "^0.4.9", diff --git a/package.json b/package.json index 2cdf5cf..bfd3f7d 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "name": "terraform", "displayName": "HashiCorp Terraform", "description": "Syntax highlighting and autocompletion for Terraform", - "version": "2.32.2", + "version": "2.33.2024073012", "publisher": "hashicorp", "appInsightsKey": "885372d2-6f3c-499f-9d25-b8b219983a52", "license": "MPL-2.0", From 00995c206a1f64047c3d391dab3e85b1e2662c67 Mon Sep 17 00:00:00 2001 From: "hashicorp-tsccr[bot]" Date: Tue, 13 Aug 2024 08:12:35 +0000 Subject: [PATCH 09/26] Result of tsccr-helper -log-level=info gha update -latest . --- .github/workflows/deploy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 911ebb7..0b410cb 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -75,7 +75,7 @@ jobs: run: npm run package -- --target=${{ matrix.vsce_target }} - name: Upload vsix as artifact - uses: actions/upload-artifact@0b2256b8c012f0828dc542b3febcab082c67f72b # v4.3.4 + uses: actions/upload-artifact@89ef406dd8d7e03cfd12d9e0a4a378f454709029 # v4.3.5 with: name: ${{ matrix.vsce_target }} path: '*.vsix' From 6e9ec987d2a848ff0a6b6e8c4ca8ab59ec91534b Mon Sep 17 00:00:00 2001 From: "hashicorp-tsccr[bot]" Date: Mon, 19 Aug 2024 06:07:32 +0000 Subject: [PATCH 10/26] Result of tsccr-helper -log-level=info gha update -latest . --- .github/workflows/deploy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 0b410cb..fc30b8d 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -75,7 +75,7 @@ jobs: run: npm run package -- --target=${{ matrix.vsce_target }} - name: Upload vsix as artifact - uses: actions/upload-artifact@89ef406dd8d7e03cfd12d9e0a4a378f454709029 # v4.3.5 + uses: actions/upload-artifact@834a144ee995460fba8ed112a2fc961b36a5ec5a # v4.3.6 with: name: ${{ matrix.vsce_target }} path: '*.vsix' From eb7aae93d9b085b5a21ffda68094dcb9e6531735 Mon Sep 17 00:00:00 2001 From: James Pogran Date: Fri, 16 Aug 2024 14:52:11 -0400 Subject: [PATCH 11/26] Bump hashicorp/syntax from 0.5.0. to 0.7.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index bfd3f7d..0ae18bb 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,7 @@ "version": "0.34.2" }, "syntax": { - "version": "0.5.0" + "version": "0.7.0" }, "qna": "https://discuss.hashicorp.com/c/terraform-core/terraform-editor-integrations/46", "bugs": { From 4085605f1cf39ddc25ec069d5c96b91239a1d561 Mon Sep 17 00:00:00 2001 From: James Pogran Date: Fri, 16 Aug 2024 14:53:52 -0400 Subject: [PATCH 12/26] Add changelog entry for hashicorp/syntax 0.7.0 --- .changes/unreleased/ENHANCEMENTS-20240816-145322.yaml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 .changes/unreleased/ENHANCEMENTS-20240816-145322.yaml diff --git a/.changes/unreleased/ENHANCEMENTS-20240816-145322.yaml b/.changes/unreleased/ENHANCEMENTS-20240816-145322.yaml new file mode 100644 index 0000000..dbee479 --- /dev/null +++ b/.changes/unreleased/ENHANCEMENTS-20240816-145322.yaml @@ -0,0 +1,6 @@ +kind: ENHANCEMENTS +body: Bump hashicorp/syntax from 0.5.0 to 0.7.0 +time: 2024-08-16T14:53:22.557108-04:00 +custom: + Issue: "1820" + Repository: vscode-terraform From 5203d1564017df988adcfd6e49aed9192fa7ec56 Mon Sep 17 00:00:00 2001 From: James Pogran Date: Fri, 16 Aug 2024 12:39:16 -0400 Subject: [PATCH 13/26] Bump braces to 3.0.3 --- package-lock.json | 1376 +++++++++++++++++++++++++-------------------- 1 file changed, 751 insertions(+), 625 deletions(-) diff --git a/package-lock.json b/package-lock.json index 3ddcab4..68b2b28 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1117,9 +1117,9 @@ } }, "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", + "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==", "dev": true }, "node_modules/@jridgewell/trace-mapping": { @@ -1385,15 +1385,12 @@ "dev": true }, "node_modules/@sindresorhus/is": { - "version": "5.6.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-5.6.0.tgz", - "integrity": "sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==", + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.7.0.tgz", + "integrity": "sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow==", "dev": true, "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sindresorhus/is?sponsor=1" + "node": ">=4" } }, "node_modules/@szmarczak/http-timer": { @@ -1581,9 +1578,9 @@ } }, "node_modules/@types/yargs": { - "version": "17.0.32", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz", - "integrity": "sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==", + "version": "17.0.33", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz", + "integrity": "sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==", "dev": true, "dependencies": { "@types/yargs-parser": "*" @@ -1820,15 +1817,27 @@ "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", "dev": true }, + "node_modules/@vitest/pretty-format": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-2.0.5.tgz", + "integrity": "sha512-h8k+1oWHfwTkyTkb9egzwNMfJAEx4veaPSnMeKbVSjp4euqGSbQlm5+6VHwTr7u4FJslVVsUG5nopCaAYdOmSQ==", + "dev": true, + "dependencies": { + "tinyrainbow": "^1.2.0" + }, + "funding": { + "url": "https://opencollective.com/vitest" + } + }, "node_modules/@vitest/snapshot": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-1.6.0.tgz", - "integrity": "sha512-+Hx43f8Chus+DCmygqqfetcAZrDJwvTj0ymqjQq4CvmpKFSTVteEOBzCusu1x2tt4OJcvBflyHUE0DZSLgEMtQ==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-2.0.5.tgz", + "integrity": "sha512-SgCPUeDFLaM0mIUHfaArq8fD2WbaXG/zVXjRupthYfYGzc8ztbFbu6dUNOblBG7XLMR1kEhS/DNnfCZ2IhdDew==", "dev": true, "dependencies": { - "magic-string": "^0.30.5", - "pathe": "^1.1.1", - "pretty-format": "^29.7.0" + "@vitest/pretty-format": "2.0.5", + "magic-string": "^0.30.10", + "pathe": "^1.1.2" }, "funding": { "url": "https://opencollective.com/vitest" @@ -2068,19 +2077,19 @@ } }, "node_modules/@wdio/cli": { - "version": "8.38.1", - "resolved": "https://registry.npmjs.org/@wdio/cli/-/cli-8.38.1.tgz", - "integrity": "sha512-xif0RvJX+saXVdzrhlEafbEdptNyeyqm0pyilT4H7OI7OMa+23rWB67r2SPoIZbBrVeFv1iqtUx9hR73RRio2A==", + "version": "8.40.3", + "resolved": "https://registry.npmjs.org/@wdio/cli/-/cli-8.40.3.tgz", + "integrity": "sha512-woB6RQj3upBOaytL/Ru3QPErJa80Ct2E/jHvQMSTC0xBTAOqpL/Q/vgMriyNTdvwkFwLi8Z3Jpoi9FnAhX0Lfg==", "dev": true, "dependencies": { - "@types/node": "^20.1.1", - "@vitest/snapshot": "^1.2.1", - "@wdio/config": "8.38.0", - "@wdio/globals": "8.38.0", + "@types/node": "^22.2.0", + "@vitest/snapshot": "^2.0.4", + "@wdio/config": "8.40.3", + "@wdio/globals": "8.40.3", "@wdio/logger": "8.38.0", - "@wdio/protocols": "8.38.0", - "@wdio/types": "8.37.0", - "@wdio/utils": "8.38.0", + "@wdio/protocols": "8.40.3", + "@wdio/types": "8.40.3", + "@wdio/utils": "8.40.3", "async-exit-hook": "^2.0.1", "chalk": "^5.2.0", "chokidar": "^3.5.3", @@ -2095,7 +2104,7 @@ "lodash.union": "^4.6.0", "read-pkg-up": "10.0.0", "recursive-readdir": "^2.2.3", - "webdriverio": "8.38.0", + "webdriverio": "8.40.3", "yargs": "^17.7.2" }, "bin": { @@ -2106,12 +2115,48 @@ } }, "node_modules/@wdio/cli/node_modules/@types/node": { - "version": "20.12.12", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.12.tgz", - "integrity": "sha512-eWLDGF/FOSPtAvEqeRAQ4C8LSA7M1I7i0ky1I8U7kD1J5ITyW3AsRhQrKVoWf5pFKZ2kILsEGJhsI9r93PYnOw==", + "version": "22.3.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.3.0.tgz", + "integrity": "sha512-nrWpWVaDZuaVc5X84xJ0vNrLvomM205oQyLsRt7OHNZbSHslcWsvgFR7O7hire2ZonjLrWBbedmotmIlJDVd6g==", "dev": true, "dependencies": { - "undici-types": "~5.26.4" + "undici-types": "~6.18.2" + } + }, + "node_modules/@wdio/cli/node_modules/@wdio/types": { + "version": "8.40.3", + "resolved": "https://registry.npmjs.org/@wdio/types/-/types-8.40.3.tgz", + "integrity": "sha512-zK17uyON3Ise3m+XwiF5VrrdZcXXmvqB8AWXoKe88DiksFUPMVoCOuVL2SSX1KnA2YLlZBA55qcFZT99GORVKQ==", + "dev": true, + "dependencies": { + "@types/node": "^22.2.0" + }, + "engines": { + "node": "^16.13 || >=18" + } + }, + "node_modules/@wdio/cli/node_modules/@wdio/utils": { + "version": "8.40.3", + "resolved": "https://registry.npmjs.org/@wdio/utils/-/utils-8.40.3.tgz", + "integrity": "sha512-pv/848KGfPN3YXU4QRfTYGkAu4/lejIfoGzGpvGNDcACiVxgZhyRZkJ2xVaSnGaXzF0R7pMozrkU5/DnEhcxMg==", + "dev": true, + "dependencies": { + "@puppeteer/browsers": "^1.6.0", + "@wdio/logger": "8.38.0", + "@wdio/types": "8.40.3", + "decamelize": "^6.0.0", + "deepmerge-ts": "^5.1.0", + "edgedriver": "^5.5.0", + "geckodriver": "^4.3.1", + "get-port": "^7.0.0", + "import-meta-resolve": "^4.0.0", + "locate-app": "^2.1.0", + "safaridriver": "^0.1.0", + "split2": "^4.2.0", + "wait-port": "^1.0.4" + }, + "engines": { + "node": "^16.13 || >=18" } }, "node_modules/@wdio/cli/node_modules/chalk": { @@ -2126,15 +2171,33 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/@wdio/cli/node_modules/decamelize": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-6.0.0.tgz", + "integrity": "sha512-Fv96DCsdOgB6mdGl67MT5JaTNKRzrzill5OH5s8bjYJXVlcXyPYGyPsUkWyGV5p1TXI5esYIYMMeDJL0hEIwaA==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@wdio/cli/node_modules/undici-types": { + "version": "6.18.2", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.18.2.tgz", + "integrity": "sha512-5ruQbENj95yDYJNS3TvcaxPMshV7aizdv/hWYjGIKoANWKjhWNBsr2YEuYZKodQulB1b8l7ILOuDQep3afowQQ==", + "dev": true + }, "node_modules/@wdio/config": { - "version": "8.38.0", - "resolved": "https://registry.npmjs.org/@wdio/config/-/config-8.38.0.tgz", - "integrity": "sha512-9eMmHYkXw/0htj8Nok2vBa8Q+IS/wj7HXbLczKb5rEmDb57SW5iPMpZutFywGki1D/GIDLvejWaZvlxmS/yfBA==", + "version": "8.40.3", + "resolved": "https://registry.npmjs.org/@wdio/config/-/config-8.40.3.tgz", + "integrity": "sha512-HIi+JnHEDAExhzGRQuZOXw1HWIpe/bsVFHwNISJhY6wS4Nijaigmegs2p14Rv16ydOF19hGrxdKsl8k5STIP2A==", "dev": true, "dependencies": { "@wdio/logger": "8.38.0", - "@wdio/types": "8.37.0", - "@wdio/utils": "8.38.0", + "@wdio/types": "8.40.3", + "@wdio/utils": "8.40.3", "decamelize": "^6.0.0", "deepmerge-ts": "^5.0.0", "glob": "^10.2.2", @@ -2144,6 +2207,51 @@ "node": "^16.13 || >=18" } }, + "node_modules/@wdio/config/node_modules/@types/node": { + "version": "22.3.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.3.0.tgz", + "integrity": "sha512-nrWpWVaDZuaVc5X84xJ0vNrLvomM205oQyLsRt7OHNZbSHslcWsvgFR7O7hire2ZonjLrWBbedmotmIlJDVd6g==", + "dev": true, + "dependencies": { + "undici-types": "~6.18.2" + } + }, + "node_modules/@wdio/config/node_modules/@wdio/types": { + "version": "8.40.3", + "resolved": "https://registry.npmjs.org/@wdio/types/-/types-8.40.3.tgz", + "integrity": "sha512-zK17uyON3Ise3m+XwiF5VrrdZcXXmvqB8AWXoKe88DiksFUPMVoCOuVL2SSX1KnA2YLlZBA55qcFZT99GORVKQ==", + "dev": true, + "dependencies": { + "@types/node": "^22.2.0" + }, + "engines": { + "node": "^16.13 || >=18" + } + }, + "node_modules/@wdio/config/node_modules/@wdio/utils": { + "version": "8.40.3", + "resolved": "https://registry.npmjs.org/@wdio/utils/-/utils-8.40.3.tgz", + "integrity": "sha512-pv/848KGfPN3YXU4QRfTYGkAu4/lejIfoGzGpvGNDcACiVxgZhyRZkJ2xVaSnGaXzF0R7pMozrkU5/DnEhcxMg==", + "dev": true, + "dependencies": { + "@puppeteer/browsers": "^1.6.0", + "@wdio/logger": "8.38.0", + "@wdio/types": "8.40.3", + "decamelize": "^6.0.0", + "deepmerge-ts": "^5.1.0", + "edgedriver": "^5.5.0", + "geckodriver": "^4.3.1", + "get-port": "^7.0.0", + "import-meta-resolve": "^4.0.0", + "locate-app": "^2.1.0", + "safaridriver": "^0.1.0", + "split2": "^4.2.0", + "wait-port": "^1.0.4" + }, + "engines": { + "node": "^16.13 || >=18" + } + }, "node_modules/@wdio/config/node_modules/decamelize": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-6.0.0.tgz", @@ -2156,30 +2264,36 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/@wdio/config/node_modules/undici-types": { + "version": "6.18.2", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.18.2.tgz", + "integrity": "sha512-5ruQbENj95yDYJNS3TvcaxPMshV7aizdv/hWYjGIKoANWKjhWNBsr2YEuYZKodQulB1b8l7ILOuDQep3afowQQ==", + "dev": true + }, "node_modules/@wdio/globals": { - "version": "8.38.0", - "resolved": "https://registry.npmjs.org/@wdio/globals/-/globals-8.38.0.tgz", - "integrity": "sha512-3Lo7R305gwJrloUolrgSRaMbIFKwnj/SPoYUt94dsTF1oM3TpyWpomcVokElNQiOFx9WYjMmBla2M+YcnoGmgw==", + "version": "8.40.3", + "resolved": "https://registry.npmjs.org/@wdio/globals/-/globals-8.40.3.tgz", + "integrity": "sha512-oir+wEx8kfcDsuUzwgw48UvVXYDjvlXEj6/xYjymyAWzpWSL2rUADTdUbkm4StOlWQ47Z4h8Y5YoDEvWh7DwHA==", "dev": true, "engines": { "node": "^16.13 || >=18" }, "optionalDependencies": { "expect-webdriverio": "^4.11.2", - "webdriverio": "8.38.0" + "webdriverio": "8.40.3" } }, "node_modules/@wdio/local-runner": { - "version": "8.38.0", - "resolved": "https://registry.npmjs.org/@wdio/local-runner/-/local-runner-8.38.0.tgz", - "integrity": "sha512-++eVI+EQapBMRxtLSbeooK02uELAhIXNLzgBlC03s23OTZUUOxzl4WxFuGqaG8gpNHer5Bjg+uAy0rIbSMnklA==", + "version": "8.40.3", + "resolved": "https://registry.npmjs.org/@wdio/local-runner/-/local-runner-8.40.3.tgz", + "integrity": "sha512-rlTddOWPttPQSqxpXZfLgmrG9x1ZpbfaIu4uDTAbToYh13DsXKm+AgBMvHw7wZnPgFs+tW2v0+skFYGGWM0JtQ==", "dev": true, "dependencies": { - "@types/node": "^20.1.0", + "@types/node": "^22.2.0", "@wdio/logger": "8.38.0", - "@wdio/repl": "8.24.12", - "@wdio/runner": "8.38.0", - "@wdio/types": "8.37.0", + "@wdio/repl": "8.40.3", + "@wdio/runner": "8.40.3", + "@wdio/types": "8.40.3", "async-exit-hook": "^2.0.1", "split2": "^4.1.0", "stream-buffers": "^3.0.2" @@ -2189,14 +2303,32 @@ } }, "node_modules/@wdio/local-runner/node_modules/@types/node": { - "version": "20.12.12", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.12.tgz", - "integrity": "sha512-eWLDGF/FOSPtAvEqeRAQ4C8LSA7M1I7i0ky1I8U7kD1J5ITyW3AsRhQrKVoWf5pFKZ2kILsEGJhsI9r93PYnOw==", + "version": "22.3.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.3.0.tgz", + "integrity": "sha512-nrWpWVaDZuaVc5X84xJ0vNrLvomM205oQyLsRt7OHNZbSHslcWsvgFR7O7hire2ZonjLrWBbedmotmIlJDVd6g==", "dev": true, "dependencies": { - "undici-types": "~5.26.4" + "undici-types": "~6.18.2" + } + }, + "node_modules/@wdio/local-runner/node_modules/@wdio/types": { + "version": "8.40.3", + "resolved": "https://registry.npmjs.org/@wdio/types/-/types-8.40.3.tgz", + "integrity": "sha512-zK17uyON3Ise3m+XwiF5VrrdZcXXmvqB8AWXoKe88DiksFUPMVoCOuVL2SSX1KnA2YLlZBA55qcFZT99GORVKQ==", + "dev": true, + "dependencies": { + "@types/node": "^22.2.0" + }, + "engines": { + "node": "^16.13 || >=18" } }, + "node_modules/@wdio/local-runner/node_modules/undici-types": { + "version": "6.18.2", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.18.2.tgz", + "integrity": "sha512-5ruQbENj95yDYJNS3TvcaxPMshV7aizdv/hWYjGIKoANWKjhWNBsr2YEuYZKodQulB1b8l7ILOuDQep3afowQQ==", + "dev": true + }, "node_modules/@wdio/logger": { "version": "8.38.0", "resolved": "https://registry.npmjs.org/@wdio/logger/-/logger-8.38.0.tgz", @@ -2278,32 +2410,38 @@ } }, "node_modules/@wdio/protocols": { - "version": "8.38.0", - "resolved": "https://registry.npmjs.org/@wdio/protocols/-/protocols-8.38.0.tgz", - "integrity": "sha512-7BPi7aXwUtnXZPeWJRmnCNFjyDvGrXlBmN9D4Pi58nILkyjVRQKEY9/qv/pcdyB0cvmIvw++Kl/1Lg+RxG++UA==", + "version": "8.40.3", + "resolved": "https://registry.npmjs.org/@wdio/protocols/-/protocols-8.40.3.tgz", + "integrity": "sha512-wK7+eyrB3TAei8RwbdkcyoNk2dPu+mduMBOdPJjp8jf/mavd15nIUXLID1zA+w5m1Qt1DsT1NbvaeO9+aJQ33A==", "dev": true }, "node_modules/@wdio/repl": { - "version": "8.24.12", - "resolved": "https://registry.npmjs.org/@wdio/repl/-/repl-8.24.12.tgz", - "integrity": "sha512-321F3sWafnlw93uRTSjEBVuvWCxTkWNDs7ektQS15drrroL3TMeFOynu4rDrIz0jXD9Vas0HCD2Tq/P0uxFLdw==", + "version": "8.40.3", + "resolved": "https://registry.npmjs.org/@wdio/repl/-/repl-8.40.3.tgz", + "integrity": "sha512-mWEiBbaC7CgxvSd2/ozpbZWebnRIc8KRu/J81Hlw/txUWio27S7IpXBlZGVvhEsNzq0+cuxB/8gDkkXvMPbesw==", "dev": true, "dependencies": { - "@types/node": "^20.1.0" + "@types/node": "^22.2.0" }, "engines": { "node": "^16.13 || >=18" } }, "node_modules/@wdio/repl/node_modules/@types/node": { - "version": "20.12.12", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.12.tgz", - "integrity": "sha512-eWLDGF/FOSPtAvEqeRAQ4C8LSA7M1I7i0ky1I8U7kD1J5ITyW3AsRhQrKVoWf5pFKZ2kILsEGJhsI9r93PYnOw==", + "version": "22.3.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.3.0.tgz", + "integrity": "sha512-nrWpWVaDZuaVc5X84xJ0vNrLvomM205oQyLsRt7OHNZbSHslcWsvgFR7O7hire2ZonjLrWBbedmotmIlJDVd6g==", "dev": true, "dependencies": { - "undici-types": "~5.26.4" + "undici-types": "~6.18.2" } }, + "node_modules/@wdio/repl/node_modules/undici-types": { + "version": "6.18.2", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.18.2.tgz", + "integrity": "sha512-5ruQbENj95yDYJNS3TvcaxPMshV7aizdv/hWYjGIKoANWKjhWNBsr2YEuYZKodQulB1b8l7ILOuDQep3afowQQ==", + "dev": true + }, "node_modules/@wdio/reporter": { "version": "8.38.0", "resolved": "https://registry.npmjs.org/@wdio/reporter/-/reporter-8.38.0.tgz", @@ -2330,36 +2468,90 @@ } }, "node_modules/@wdio/runner": { - "version": "8.38.0", - "resolved": "https://registry.npmjs.org/@wdio/runner/-/runner-8.38.0.tgz", - "integrity": "sha512-pmoXwRMUxWXhqce64Y3gqoMqJn0YknJ1U9aHOMxp6uB3iHfzoPA+7Mf5ziSc0uDBcEyjXtau9qMfu7iBHUz62Q==", + "version": "8.40.3", + "resolved": "https://registry.npmjs.org/@wdio/runner/-/runner-8.40.3.tgz", + "integrity": "sha512-zk4KIMrkopW2FW/gbtwFFm4UbMiJxscwAAeCPnXHPYMcJZ/qf8VuBTDzt490csLT4DsumOK/1pH9TDXG+4/cQQ==", "dev": true, "dependencies": { - "@types/node": "^20.11.28", - "@wdio/config": "8.38.0", - "@wdio/globals": "8.38.0", + "@types/node": "^22.2.0", + "@wdio/config": "8.40.3", + "@wdio/globals": "8.40.3", "@wdio/logger": "8.38.0", - "@wdio/types": "8.37.0", - "@wdio/utils": "8.38.0", + "@wdio/types": "8.40.3", + "@wdio/utils": "8.40.3", "deepmerge-ts": "^5.1.0", "expect-webdriverio": "^4.12.0", "gaze": "^1.1.3", - "webdriver": "8.38.0", - "webdriverio": "8.38.0" + "webdriver": "8.40.3", + "webdriverio": "8.40.3" }, "engines": { "node": "^16.13 || >=18" } }, "node_modules/@wdio/runner/node_modules/@types/node": { - "version": "20.12.12", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.12.tgz", - "integrity": "sha512-eWLDGF/FOSPtAvEqeRAQ4C8LSA7M1I7i0ky1I8U7kD1J5ITyW3AsRhQrKVoWf5pFKZ2kILsEGJhsI9r93PYnOw==", + "version": "22.3.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.3.0.tgz", + "integrity": "sha512-nrWpWVaDZuaVc5X84xJ0vNrLvomM205oQyLsRt7OHNZbSHslcWsvgFR7O7hire2ZonjLrWBbedmotmIlJDVd6g==", "dev": true, "dependencies": { - "undici-types": "~5.26.4" + "undici-types": "~6.18.2" + } + }, + "node_modules/@wdio/runner/node_modules/@wdio/types": { + "version": "8.40.3", + "resolved": "https://registry.npmjs.org/@wdio/types/-/types-8.40.3.tgz", + "integrity": "sha512-zK17uyON3Ise3m+XwiF5VrrdZcXXmvqB8AWXoKe88DiksFUPMVoCOuVL2SSX1KnA2YLlZBA55qcFZT99GORVKQ==", + "dev": true, + "dependencies": { + "@types/node": "^22.2.0" + }, + "engines": { + "node": "^16.13 || >=18" + } + }, + "node_modules/@wdio/runner/node_modules/@wdio/utils": { + "version": "8.40.3", + "resolved": "https://registry.npmjs.org/@wdio/utils/-/utils-8.40.3.tgz", + "integrity": "sha512-pv/848KGfPN3YXU4QRfTYGkAu4/lejIfoGzGpvGNDcACiVxgZhyRZkJ2xVaSnGaXzF0R7pMozrkU5/DnEhcxMg==", + "dev": true, + "dependencies": { + "@puppeteer/browsers": "^1.6.0", + "@wdio/logger": "8.38.0", + "@wdio/types": "8.40.3", + "decamelize": "^6.0.0", + "deepmerge-ts": "^5.1.0", + "edgedriver": "^5.5.0", + "geckodriver": "^4.3.1", + "get-port": "^7.0.0", + "import-meta-resolve": "^4.0.0", + "locate-app": "^2.1.0", + "safaridriver": "^0.1.0", + "split2": "^4.2.0", + "wait-port": "^1.0.4" + }, + "engines": { + "node": "^16.13 || >=18" + } + }, + "node_modules/@wdio/runner/node_modules/decamelize": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-6.0.0.tgz", + "integrity": "sha512-Fv96DCsdOgB6mdGl67MT5JaTNKRzrzill5OH5s8bjYJXVlcXyPYGyPsUkWyGV5p1TXI5esYIYMMeDJL0hEIwaA==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/@wdio/runner/node_modules/undici-types": { + "version": "6.18.2", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.18.2.tgz", + "integrity": "sha512-5ruQbENj95yDYJNS3TvcaxPMshV7aizdv/hWYjGIKoANWKjhWNBsr2YEuYZKodQulB1b8l7ILOuDQep3afowQQ==", + "dev": true + }, "node_modules/@wdio/spec-reporter": { "version": "8.38.0", "resolved": "https://registry.npmjs.org/@wdio/spec-reporter/-/spec-reporter-8.38.0.tgz", @@ -3246,12 +3438,12 @@ } }, "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "dev": true, "dependencies": { - "fill-range": "^7.0.1" + "fill-range": "^7.1.1" }, "engines": { "node": ">=8" @@ -3390,33 +3582,51 @@ } }, "node_modules/cacheable-request": { - "version": "10.2.14", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.14.tgz", - "integrity": "sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-2.1.4.tgz", + "integrity": "sha512-vag0O2LKZ/najSoUwDbVlnlCFvhBE/7mGTY2B5FgCBDcRD+oVV1HYTOwM6JZfMg/hIcM6IwnTZ1uQQL5/X3xIQ==", "dev": true, "dependencies": { - "@types/http-cache-semantics": "^4.0.2", - "get-stream": "^6.0.1", - "http-cache-semantics": "^4.1.1", - "keyv": "^4.5.3", - "mimic-response": "^4.0.0", - "normalize-url": "^8.0.0", - "responselike": "^3.0.0" - }, - "engines": { - "node": ">=14.16" + "clone-response": "1.0.2", + "get-stream": "3.0.0", + "http-cache-semantics": "3.8.1", + "keyv": "3.0.0", + "lowercase-keys": "1.0.0", + "normalize-url": "2.0.1", + "responselike": "1.0.2" } }, "node_modules/cacheable-request/node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==", "dev": true, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=4" + } + }, + "node_modules/cacheable-request/node_modules/json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==", + "dev": true + }, + "node_modules/cacheable-request/node_modules/keyv": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.0.0.tgz", + "integrity": "sha512-eguHnq22OE3uVoSYG0LVWNP+4ppamWr9+zWBe1bsNcovIMy6huUJFPgy4mGwCd/rnl3vOLGW1MTlu4c57CT1xA==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.0" + } + }, + "node_modules/cacheable-request/node_modules/lowercase-keys": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz", + "integrity": "sha512-RPlX0+PHuvxVDZ7xX+EBVAp4RsVxP/TdDSN2mJYdiq1Lc4Hz7EUSjUI7RZrKKlmrIzVhf6Jo2stj7++gVarS0A==", + "dev": true, + "engines": { + "node": ">=0.10.0" } }, "node_modules/call-bind": { @@ -3581,12 +3791,13 @@ "optional": true }, "node_modules/chromium-bidi": { - "version": "0.4.16", - "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-0.4.16.tgz", - "integrity": "sha512-7ZbXdWERxRxSwo3txsBjjmc/NLxqb1Bk30mRb0BMS4YIaiV6zvKZqL/UAH+DdqcDYayDWk2n/y8klkBDODrPvA==", + "version": "0.5.8", + "resolved": "https://registry.npmjs.org/chromium-bidi/-/chromium-bidi-0.5.8.tgz", + "integrity": "sha512-blqh+1cEQbHBKmok3rVJkBlBxt9beKBgOsxbFgs7UJcoVbbeZ+K7+6liAsjgpc8l1Xd55cQUy14fXZdGSb4zIw==", "dev": true, "dependencies": { - "mitt": "3.0.0" + "mitt": "3.0.1", + "urlpattern-polyfill": "10.0.0" }, "peerDependencies": { "devtools-protocol": "*" @@ -3866,15 +4077,6 @@ "mimic-response": "^1.0.0" } }, - "node_modules/clone-response/node_modules/mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/co": { "version": "4.6.0", "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", @@ -4755,9 +4957,9 @@ } }, "node_modules/devtools-protocol": { - "version": "0.0.1302984", - "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1302984.tgz", - "integrity": "sha512-Rgh2Sk5fUSCtEx4QGH9iwTyECdFPySG2nlz5J8guGh2Wlha6uzSOCq/DCEC8faHlLaMPZJMuZ4ovgcX4LvOkKA==", + "version": "0.0.1340018", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1340018.tgz", + "integrity": "sha512-yiZNvYDYW8P93XT1q3QxB/y5n/4D7hGfKN6+342Bp1UJpkqzIlt9QLfZuSG8njk6lt6u2s2ZYyLXW3uABtKmtg==", "dev": true }, "node_modules/diff": { @@ -4891,155 +5093,16 @@ "node": ">=10" } }, - "node_modules/download/node_modules/@sindresorhus/is": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.7.0.tgz", - "integrity": "sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow==", + "node_modules/download/node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, "engines": { - "node": ">=4" - } - }, - "node_modules/download/node_modules/cacheable-request": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-2.1.4.tgz", - "integrity": "sha512-vag0O2LKZ/najSoUwDbVlnlCFvhBE/7mGTY2B5FgCBDcRD+oVV1HYTOwM6JZfMg/hIcM6IwnTZ1uQQL5/X3xIQ==", - "dev": true, - "dependencies": { - "clone-response": "1.0.2", - "get-stream": "3.0.0", - "http-cache-semantics": "3.8.1", - "keyv": "3.0.0", - "lowercase-keys": "1.0.0", - "normalize-url": "2.0.1", - "responselike": "1.0.2" - } - }, - "node_modules/download/node_modules/cacheable-request/node_modules/get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/download/node_modules/cacheable-request/node_modules/lowercase-keys": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz", - "integrity": "sha512-RPlX0+PHuvxVDZ7xX+EBVAp4RsVxP/TdDSN2mJYdiq1Lc4Hz7EUSjUI7RZrKKlmrIzVhf6Jo2stj7++gVarS0A==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/download/node_modules/decompress-response": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", - "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==", - "dev": true, - "dependencies": { - "mimic-response": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/download/node_modules/get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/download/node_modules/got": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/got/-/got-8.3.2.tgz", - "integrity": "sha512-qjUJ5U/hawxosMryILofZCkm3C84PLJS/0grRIpjAwu+Lkxxj5cxeCU25BG0/3mDSpXKTyZr8oh8wIgLaH0QCw==", - "dev": true, - "dependencies": { - "@sindresorhus/is": "^0.7.0", - "cacheable-request": "^2.1.1", - "decompress-response": "^3.3.0", - "duplexer3": "^0.1.4", - "get-stream": "^3.0.0", - "into-stream": "^3.1.0", - "is-retry-allowed": "^1.1.0", - "isurl": "^1.0.0-alpha5", - "lowercase-keys": "^1.0.0", - "mimic-response": "^1.0.0", - "p-cancelable": "^0.4.0", - "p-timeout": "^2.0.1", - "pify": "^3.0.0", - "safe-buffer": "^5.1.1", - "timed-out": "^4.0.1", - "url-parse-lax": "^3.0.0", - "url-to-options": "^1.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/download/node_modules/got/node_modules/get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/download/node_modules/got/node_modules/pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/download/node_modules/http-cache-semantics": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz", - "integrity": "sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==", - "dev": true - }, - "node_modules/download/node_modules/is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/download/node_modules/json-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==", - "dev": true - }, - "node_modules/download/node_modules/keyv": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.0.0.tgz", - "integrity": "sha512-eguHnq22OE3uVoSYG0LVWNP+4ppamWr9+zWBe1bsNcovIMy6huUJFPgy4mGwCd/rnl3vOLGW1MTlu4c57CT1xA==", - "dev": true, - "dependencies": { - "json-buffer": "3.0.0" - } - }, - "node_modules/download/node_modules/lowercase-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", - "dev": true, - "engines": { - "node": ">=0.10.0" + "node": ">=6" } }, "node_modules/download/node_modules/make-dir": { @@ -5055,47 +5118,6 @@ "node": ">=6" } }, - "node_modules/download/node_modules/mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/download/node_modules/normalize-url": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-2.0.1.tgz", - "integrity": "sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw==", - "dev": true, - "dependencies": { - "prepend-http": "^2.0.0", - "query-string": "^5.0.1", - "sort-keys": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/download/node_modules/p-cancelable": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.4.1.tgz", - "integrity": "sha512-HNa1A8LvB1kie7cERyy21VNeHb2CWJJYqyyC2o3klWFfMGlFmWv2Z7sFgZH8ZiaYL95ydToKTFVXgMV/Os0bBQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/download/node_modules/responselike": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", - "integrity": "sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==", - "dev": true, - "dependencies": { - "lowercase-keys": "^1.0.0" - } - }, "node_modules/download/node_modules/semver": { "version": "5.7.2", "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", @@ -5105,18 +5127,6 @@ "semver": "bin/semver" } }, - "node_modules/download/node_modules/sort-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz", - "integrity": "sha512-/dPCrG1s3ePpWm6yBbxZq5Be1dXGLyLn9Z791chDC3NFrpkVbWGzkBwPN1knaciexFXgRJ7hzdnwZ4stHSDmjg==", - "dev": true, - "dependencies": { - "is-plain-obj": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/duplexer2": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", @@ -5885,12 +5895,12 @@ } }, "node_modules/expect-webdriverio": { - "version": "4.13.0", - "resolved": "https://registry.npmjs.org/expect-webdriverio/-/expect-webdriverio-4.13.0.tgz", - "integrity": "sha512-y2LF6vECifTOiOk0i0FMPWJGyntiW+eqzQWFZimu9Cae8XMUH5q4F5SzpfGCxsvmOdf3uFjlr+u9IXrQBN5o0Q==", + "version": "4.15.3", + "resolved": "https://registry.npmjs.org/expect-webdriverio/-/expect-webdriverio-4.15.3.tgz", + "integrity": "sha512-aivwsfxMVAqjbTFyxMrWjHYb/EG1Exs12uWQQ2JN2yuit5MpdjvB8E+vcCXk/rbxx6Gwvhr9FXDu0qBZ31mWHQ==", "dev": true, "dependencies": { - "@vitest/snapshot": "^1.2.2", + "@vitest/snapshot": "^2.0.3", "expect": "^29.7.0", "jest-matcher-utils": "^29.7.0", "lodash.isequal": "^4.5.0" @@ -6334,9 +6344,9 @@ } }, "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, "dependencies": { "to-regex-range": "^5.0.1" @@ -7043,40 +7053,61 @@ } }, "node_modules/got": { - "version": "12.6.1", - "resolved": "https://registry.npmjs.org/got/-/got-12.6.1.tgz", - "integrity": "sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==", + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/got/-/got-8.3.2.tgz", + "integrity": "sha512-qjUJ5U/hawxosMryILofZCkm3C84PLJS/0grRIpjAwu+Lkxxj5cxeCU25BG0/3mDSpXKTyZr8oh8wIgLaH0QCw==", "dev": true, "dependencies": { - "@sindresorhus/is": "^5.2.0", - "@szmarczak/http-timer": "^5.0.1", - "cacheable-lookup": "^7.0.0", - "cacheable-request": "^10.2.8", - "decompress-response": "^6.0.0", - "form-data-encoder": "^2.1.2", - "get-stream": "^6.0.1", - "http2-wrapper": "^2.1.10", - "lowercase-keys": "^3.0.0", - "p-cancelable": "^3.0.0", - "responselike": "^3.0.0" + "@sindresorhus/is": "^0.7.0", + "cacheable-request": "^2.1.1", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "into-stream": "^3.1.0", + "is-retry-allowed": "^1.1.0", + "isurl": "^1.0.0-alpha5", + "lowercase-keys": "^1.0.0", + "mimic-response": "^1.0.0", + "p-cancelable": "^0.4.0", + "p-timeout": "^2.0.1", + "pify": "^3.0.0", + "safe-buffer": "^5.1.1", + "timed-out": "^4.0.1", + "url-parse-lax": "^3.0.0", + "url-to-options": "^1.0.1" }, "engines": { - "node": ">=14.16" + "node": ">=4" + } + }, + "node_modules/got/node_modules/decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==", + "dev": true, + "dependencies": { + "mimic-response": "^1.0.0" }, - "funding": { - "url": "https://github.com/sindresorhus/got?sponsor=1" + "engines": { + "node": ">=4" } }, "node_modules/got/node_modules/get-stream": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", - "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ==", "dev": true, "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=4" + } + }, + "node_modules/got/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true, + "engines": { + "node": ">=4" } }, "node_modules/graceful-fs": { @@ -7330,9 +7361,9 @@ } }, "node_modules/http-cache-semantics": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", - "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz", + "integrity": "sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==", "dev": true }, "node_modules/http-errors": { @@ -9294,15 +9325,12 @@ } }, "node_modules/lowercase-keys": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", - "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", "dev": true, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=0.10.0" } }, "node_modules/lru-cache": { @@ -9317,12 +9345,12 @@ } }, "node_modules/magic-string": { - "version": "0.30.10", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.10.tgz", - "integrity": "sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==", + "version": "0.30.11", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.11.tgz", + "integrity": "sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==", "dev": true, "dependencies": { - "@jridgewell/sourcemap-codec": "^1.4.15" + "@jridgewell/sourcemap-codec": "^1.5.0" } }, "node_modules/make-dir": { @@ -9476,15 +9504,12 @@ } }, "node_modules/mimic-response": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz", - "integrity": "sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", "dev": true, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=4" } }, "node_modules/minimalistic-assert": { @@ -9524,9 +9549,9 @@ } }, "node_modules/mitt": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.0.tgz", - "integrity": "sha512-7dX2/10ITVyqh4aOSVI9gdape+t9l2/8QxHrFmUXu4EEUpdlxl6RudZUPZoc+zuY2hk1j7XxVroIVIan/pD/SQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz", + "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==", "dev": true }, "node_modules/mkdirp": { @@ -10101,15 +10126,38 @@ } }, "node_modules/normalize-url": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.1.tgz", - "integrity": "sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-2.0.1.tgz", + "integrity": "sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw==", "dev": true, + "dependencies": { + "prepend-http": "^2.0.0", + "query-string": "^5.0.1", + "sort-keys": "^2.0.0" + }, "engines": { - "node": ">=14.16" + "node": ">=4" + } + }, + "node_modules/normalize-url/node_modules/is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url/node_modules/sort-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz", + "integrity": "sha512-/dPCrG1s3ePpWm6yBbxZq5Be1dXGLyLn9Z791chDC3NFrpkVbWGzkBwPN1knaciexFXgRJ7hzdnwZ4stHSDmjg==", + "dev": true, + "dependencies": { + "is-plain-obj": "^1.0.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">=4" } }, "node_modules/npm-run-all": { @@ -10560,12 +10608,12 @@ "dev": true }, "node_modules/p-cancelable": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", - "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==", + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.4.1.tgz", + "integrity": "sha512-HNa1A8LvB1kie7cERyy21VNeHb2CWJJYqyyC2o3klWFfMGlFmWv2Z7sFgZH8ZiaYL95ydToKTFVXgMV/Os0bBQ==", "dev": true, "engines": { - "node": ">=12.20" + "node": ">=4" } }, "node_modules/p-event": { @@ -11405,200 +11453,49 @@ } }, "node_modules/puppeteer-core": { - "version": "20.9.0", - "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-20.9.0.tgz", - "integrity": "sha512-H9fYZQzMTRrkboEfPmf7m3CLDN6JvbxXA3qTtS+dFt27tR+CsFHzPsT6pzp6lYL6bJbAPaR0HaPO6uSi+F94Pg==", + "version": "21.11.0", + "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-21.11.0.tgz", + "integrity": "sha512-ArbnyA3U5SGHokEvkfWjW+O8hOxV1RSJxOgriX/3A4xZRqixt9ZFHD0yPgZQF05Qj0oAqi8H/7stDorjoHY90Q==", "dev": true, "dependencies": { - "@puppeteer/browsers": "1.4.6", - "chromium-bidi": "0.4.16", + "@puppeteer/browsers": "1.9.1", + "chromium-bidi": "0.5.8", "cross-fetch": "4.0.0", "debug": "4.3.4", - "devtools-protocol": "0.0.1147663", - "ws": "8.13.0" + "devtools-protocol": "0.0.1232444", + "ws": "8.16.0" }, "engines": { - "node": ">=16.3.0" - }, - "peerDependencies": { - "typescript": ">= 4.7.4" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "node": ">=16.13.2" } }, - "node_modules/puppeteer-core/node_modules/@puppeteer/browsers": { - "version": "1.4.6", - "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-1.4.6.tgz", - "integrity": "sha512-x4BEjr2SjOPowNeiguzjozQbsc6h437ovD/wu+JpaenxVLm3jkgzHY2xOslMTp50HoTvQreMjiexiGQw1sqZlQ==", + "node_modules/puppeteer-core/node_modules/devtools-protocol": { + "version": "0.0.1232444", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1232444.tgz", + "integrity": "sha512-pM27vqEfxSxRkTMnF+XCmxSEb6duO5R+t8A9DEEJgy4Wz2RVanje2mmj99B6A3zv2r/qGfYlOvYznUhuokizmg==", + "dev": true + }, + "node_modules/puppeteer-core/node_modules/ws": { + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz", + "integrity": "sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==", "dev": true, - "dependencies": { - "debug": "4.3.4", - "extract-zip": "2.0.1", - "progress": "2.0.3", - "proxy-agent": "6.3.0", - "tar-fs": "3.0.4", - "unbzip2-stream": "1.4.3", - "yargs": "17.7.1" - }, - "bin": { - "browsers": "lib/cjs/main-cli.js" - }, "engines": { - "node": ">=16.3.0" + "node": ">=10.0.0" }, "peerDependencies": { - "typescript": ">= 4.7.4" + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" }, "peerDependenciesMeta": { - "typescript": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { "optional": true } } }, - "node_modules/puppeteer-core/node_modules/agent-base": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", - "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", - "dev": true, - "dependencies": { - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/puppeteer-core/node_modules/devtools-protocol": { - "version": "0.0.1147663", - "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1147663.tgz", - "integrity": "sha512-hyWmRrexdhbZ1tcJUGpO95ivbRhWXz++F4Ko+n21AY5PNln2ovoJw+8ZMNDTtip+CNFQfrtLVh/w4009dXO/eQ==", - "dev": true - }, - "node_modules/puppeteer-core/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/puppeteer-core/node_modules/http-proxy-agent": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", - "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", - "dev": true, - "dependencies": { - "agent-base": "^7.1.0", - "debug": "^4.3.4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/puppeteer-core/node_modules/https-proxy-agent": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz", - "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==", - "dev": true, - "dependencies": { - "agent-base": "^7.0.2", - "debug": "4" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/puppeteer-core/node_modules/lru-cache": { - "version": "7.18.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", - "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/puppeteer-core/node_modules/proxy-agent": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-6.3.0.tgz", - "integrity": "sha512-0LdR757eTj/JfuU7TL2YCuAZnxWXu3tkJbg4Oq3geW/qFNT/32T0sp2HnZ9O0lMR4q3vwAt0+xCA8SR0WAD0og==", - "dev": true, - "dependencies": { - "agent-base": "^7.0.2", - "debug": "^4.3.4", - "http-proxy-agent": "^7.0.0", - "https-proxy-agent": "^7.0.0", - "lru-cache": "^7.14.1", - "pac-proxy-agent": "^7.0.0", - "proxy-from-env": "^1.1.0", - "socks-proxy-agent": "^8.0.1" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/puppeteer-core/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/puppeteer-core/node_modules/tar-fs": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-3.0.4.tgz", - "integrity": "sha512-5AFQU8b9qLfZCX9zp2duONhPmZv0hGYiBPJsyUdqMjzq/mqVpy/rEUSeHk1+YitmxugaptgBh5oDGU3VsAJq4w==", - "dev": true, - "dependencies": { - "mkdirp-classic": "^0.5.2", - "pump": "^3.0.0", - "tar-stream": "^3.1.5" - } - }, - "node_modules/puppeteer-core/node_modules/tar-stream": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz", - "integrity": "sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==", - "dev": true, - "dependencies": { - "b4a": "^1.6.4", - "fast-fifo": "^1.2.0", - "streamx": "^2.15.0" - } - }, - "node_modules/puppeteer-core/node_modules/yargs": { - "version": "17.7.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.1.tgz", - "integrity": "sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw==", - "dev": true, - "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/puppeteer-core/node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true, - "engines": { - "node": ">=12" - } - }, "node_modules/qs": { "version": "6.11.2", "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz", @@ -12082,18 +11979,12 @@ } }, "node_modules/responselike": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz", - "integrity": "sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==", "dev": true, "dependencies": { - "lowercase-keys": "^3.0.0" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "lowercase-keys": "^1.0.0" } }, "node_modules/resq": { @@ -13225,6 +13116,15 @@ "node": ">=0.10.0" } }, + "node_modules/tinyrainbow": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-1.2.0.tgz", + "integrity": "sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==", + "dev": true, + "engines": { + "node": ">=14.0.0" + } + }, "node_modules/tmp": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", @@ -13657,6 +13557,12 @@ "node": ">= 4" } }, + "node_modules/urlpattern-polyfill": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/urlpattern-polyfill/-/urlpattern-polyfill-10.0.0.tgz", + "integrity": "sha512-H/A06tKD7sS1O1X2SshBVeA5FLycRpjqiBeqGKmBwBDBy28EnRjORxTNe269KSSr5un5qyWi1iL61wLxpd+ZOg==", + "dev": true + }, "node_modules/userhome": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/userhome/-/userhome-1.0.0.tgz", @@ -13889,9 +13795,9 @@ } }, "node_modules/wdio-vscode-service": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/wdio-vscode-service/-/wdio-vscode-service-6.0.3.tgz", - "integrity": "sha512-sfX3w8UxNPcms8GmunWsQSEkiM4bQm4yHe0f4K2En6tiIGc+aWOACZbwSF3WN+laL9kQ49dBcBaWVbAxnmReJg==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/wdio-vscode-service/-/wdio-vscode-service-6.1.0.tgz", + "integrity": "sha512-WyrfPQFvPIiVe8PeQMXOkdkdHYI/MjiQsTEJcO4q93EWkrMGUzQhCCypFuue5EpLzThnqwrS5EzlruAcD50ghw==", "dev": true, "dependencies": { "@fastify/cors": "^9.0.1", @@ -13960,27 +13866,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/wdio-vscode-service/node_modules/ws": { - "version": "8.17.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.0.tgz", - "integrity": "sha512-uJq6108EgZMAl20KagGkzCKfMEjxmKvZHG7Tlq0Z6nOky7YF7aq4mOx6xK8TJ/i1LeK4Qus7INktacctDgY8Ow==", - "dev": true, - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, "node_modules/wdio-vscode-service/node_modules/yargs-parser": { "version": "21.1.1", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", @@ -14009,18 +13894,18 @@ } }, "node_modules/webdriver": { - "version": "8.38.0", - "resolved": "https://registry.npmjs.org/webdriver/-/webdriver-8.38.0.tgz", - "integrity": "sha512-BT3sd667AqcZ1lzaOd7lphjnc7MNG3WgduAq4vUUDYlJAbs6SyjYd0EZPIPv9KUUYr0BoSJTDa0Xuyl/6PPW0Q==", + "version": "8.40.3", + "resolved": "https://registry.npmjs.org/webdriver/-/webdriver-8.40.3.tgz", + "integrity": "sha512-mc/pxLpgAQphnIaWvix/QXzp9CJpEvIA3YeF9t5plPaTbvbEaCAYYWkTP6e3vYPYWvx57krjGaYkNUnDCBNolA==", "dev": true, "dependencies": { - "@types/node": "^20.1.0", + "@types/node": "^22.2.0", "@types/ws": "^8.5.3", - "@wdio/config": "8.38.0", + "@wdio/config": "8.40.3", "@wdio/logger": "8.38.0", - "@wdio/protocols": "8.38.0", - "@wdio/types": "8.37.0", - "@wdio/utils": "8.38.0", + "@wdio/protocols": "8.40.3", + "@wdio/types": "8.40.3", + "@wdio/utils": "8.40.3", "deepmerge-ts": "^5.1.0", "got": "^12.6.1", "ky": "^0.33.0", @@ -14030,33 +13915,220 @@ "node": "^16.13 || >=18" } }, + "node_modules/webdriver/node_modules/@sindresorhus/is": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-5.6.0.tgz", + "integrity": "sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==", + "dev": true, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" + } + }, "node_modules/webdriver/node_modules/@types/node": { - "version": "20.12.12", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.12.tgz", - "integrity": "sha512-eWLDGF/FOSPtAvEqeRAQ4C8LSA7M1I7i0ky1I8U7kD1J5ITyW3AsRhQrKVoWf5pFKZ2kILsEGJhsI9r93PYnOw==", + "version": "22.3.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.3.0.tgz", + "integrity": "sha512-nrWpWVaDZuaVc5X84xJ0vNrLvomM205oQyLsRt7OHNZbSHslcWsvgFR7O7hire2ZonjLrWBbedmotmIlJDVd6g==", "dev": true, "dependencies": { - "undici-types": "~5.26.4" + "undici-types": "~6.18.2" + } + }, + "node_modules/webdriver/node_modules/@wdio/types": { + "version": "8.40.3", + "resolved": "https://registry.npmjs.org/@wdio/types/-/types-8.40.3.tgz", + "integrity": "sha512-zK17uyON3Ise3m+XwiF5VrrdZcXXmvqB8AWXoKe88DiksFUPMVoCOuVL2SSX1KnA2YLlZBA55qcFZT99GORVKQ==", + "dev": true, + "dependencies": { + "@types/node": "^22.2.0" + }, + "engines": { + "node": "^16.13 || >=18" + } + }, + "node_modules/webdriver/node_modules/@wdio/utils": { + "version": "8.40.3", + "resolved": "https://registry.npmjs.org/@wdio/utils/-/utils-8.40.3.tgz", + "integrity": "sha512-pv/848KGfPN3YXU4QRfTYGkAu4/lejIfoGzGpvGNDcACiVxgZhyRZkJ2xVaSnGaXzF0R7pMozrkU5/DnEhcxMg==", + "dev": true, + "dependencies": { + "@puppeteer/browsers": "^1.6.0", + "@wdio/logger": "8.38.0", + "@wdio/types": "8.40.3", + "decamelize": "^6.0.0", + "deepmerge-ts": "^5.1.0", + "edgedriver": "^5.5.0", + "geckodriver": "^4.3.1", + "get-port": "^7.0.0", + "import-meta-resolve": "^4.0.0", + "locate-app": "^2.1.0", + "safaridriver": "^0.1.0", + "split2": "^4.2.0", + "wait-port": "^1.0.4" + }, + "engines": { + "node": "^16.13 || >=18" + } + }, + "node_modules/webdriver/node_modules/cacheable-request": { + "version": "10.2.14", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-10.2.14.tgz", + "integrity": "sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ==", + "dev": true, + "dependencies": { + "@types/http-cache-semantics": "^4.0.2", + "get-stream": "^6.0.1", + "http-cache-semantics": "^4.1.1", + "keyv": "^4.5.3", + "mimic-response": "^4.0.0", + "normalize-url": "^8.0.0", + "responselike": "^3.0.0" + }, + "engines": { + "node": ">=14.16" + } + }, + "node_modules/webdriver/node_modules/decamelize": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-6.0.0.tgz", + "integrity": "sha512-Fv96DCsdOgB6mdGl67MT5JaTNKRzrzill5OH5s8bjYJXVlcXyPYGyPsUkWyGV5p1TXI5esYIYMMeDJL0hEIwaA==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/webdriver/node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/webdriver/node_modules/got": { + "version": "12.6.1", + "resolved": "https://registry.npmjs.org/got/-/got-12.6.1.tgz", + "integrity": "sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ==", + "dev": true, + "dependencies": { + "@sindresorhus/is": "^5.2.0", + "@szmarczak/http-timer": "^5.0.1", + "cacheable-lookup": "^7.0.0", + "cacheable-request": "^10.2.8", + "decompress-response": "^6.0.0", + "form-data-encoder": "^2.1.2", + "get-stream": "^6.0.1", + "http2-wrapper": "^2.1.10", + "lowercase-keys": "^3.0.0", + "p-cancelable": "^3.0.0", + "responselike": "^3.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sindresorhus/got?sponsor=1" + } + }, + "node_modules/webdriver/node_modules/http-cache-semantics": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", + "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", + "dev": true + }, + "node_modules/webdriver/node_modules/lowercase-keys": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", + "integrity": "sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/webdriver/node_modules/mimic-response": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-4.0.0.tgz", + "integrity": "sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/webdriver/node_modules/normalize-url": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-8.0.1.tgz", + "integrity": "sha512-IO9QvjUMWxPQQhs60oOu10CRkWCiZzSUkzbXGGV9pviYl1fXYcvkzQ5jV9z8Y6un8ARoVRl4EtC6v6jNqbaJ/w==", + "dev": true, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/webdriver/node_modules/p-cancelable": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", + "integrity": "sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw==", + "dev": true, + "engines": { + "node": ">=12.20" + } + }, + "node_modules/webdriver/node_modules/responselike": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz", + "integrity": "sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg==", + "dev": true, + "dependencies": { + "lowercase-keys": "^3.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/webdriver/node_modules/undici-types": { + "version": "6.18.2", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.18.2.tgz", + "integrity": "sha512-5ruQbENj95yDYJNS3TvcaxPMshV7aizdv/hWYjGIKoANWKjhWNBsr2YEuYZKodQulB1b8l7ILOuDQep3afowQQ==", + "dev": true + }, "node_modules/webdriverio": { - "version": "8.38.0", - "resolved": "https://registry.npmjs.org/webdriverio/-/webdriverio-8.38.0.tgz", - "integrity": "sha512-PxLtJPK8Aa+f/G/P8YGUwGH80uHowMA8cDHshhog6sKbp1BXEVB8x6PyC1AIswRlTWVijoes7cD0cUoVs6C87A==", + "version": "8.40.3", + "resolved": "https://registry.npmjs.org/webdriverio/-/webdriverio-8.40.3.tgz", + "integrity": "sha512-2UQ/Vg2X7tTHmfWmB6QaXuUheodRRNwzT8VK6cHM2JrDHxDZzUawqSt4L7H7ba6/ctuRt5/pgbmKFtU/moLfhA==", "dev": true, "dependencies": { - "@types/node": "^20.1.0", - "@wdio/config": "8.38.0", + "@types/node": "^22.2.0", + "@wdio/config": "8.40.3", "@wdio/logger": "8.38.0", - "@wdio/protocols": "8.38.0", - "@wdio/repl": "8.24.12", - "@wdio/types": "8.37.0", - "@wdio/utils": "8.38.0", + "@wdio/protocols": "8.40.3", + "@wdio/repl": "8.40.3", + "@wdio/types": "8.40.3", + "@wdio/utils": "8.40.3", "archiver": "^7.0.0", "aria-query": "^5.0.0", "css-shorthand-properties": "^1.1.1", "css-value": "^0.0.1", - "devtools-protocol": "^0.0.1302984", + "devtools-protocol": "^0.0.1340018", "grapheme-splitter": "^1.0.2", "import-meta-resolve": "^4.0.0", "is-plain-obj": "^4.1.0", @@ -14064,12 +14136,12 @@ "lodash.clonedeep": "^4.5.0", "lodash.zip": "^4.2.0", "minimatch": "^9.0.0", - "puppeteer-core": "^20.9.0", + "puppeteer-core": "^21.11.0", "query-selector-shadow-dom": "^1.0.0", "resq": "^1.9.1", "rgb2hex": "0.2.5", "serialize-error": "^11.0.1", - "webdriver": "8.38.0" + "webdriver": "8.40.3" }, "engines": { "node": "^16.13 || >=18" @@ -14084,12 +14156,48 @@ } }, "node_modules/webdriverio/node_modules/@types/node": { - "version": "20.12.12", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.12.tgz", - "integrity": "sha512-eWLDGF/FOSPtAvEqeRAQ4C8LSA7M1I7i0ky1I8U7kD1J5ITyW3AsRhQrKVoWf5pFKZ2kILsEGJhsI9r93PYnOw==", + "version": "22.3.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.3.0.tgz", + "integrity": "sha512-nrWpWVaDZuaVc5X84xJ0vNrLvomM205oQyLsRt7OHNZbSHslcWsvgFR7O7hire2ZonjLrWBbedmotmIlJDVd6g==", "dev": true, "dependencies": { - "undici-types": "~5.26.4" + "undici-types": "~6.18.2" + } + }, + "node_modules/webdriverio/node_modules/@wdio/types": { + "version": "8.40.3", + "resolved": "https://registry.npmjs.org/@wdio/types/-/types-8.40.3.tgz", + "integrity": "sha512-zK17uyON3Ise3m+XwiF5VrrdZcXXmvqB8AWXoKe88DiksFUPMVoCOuVL2SSX1KnA2YLlZBA55qcFZT99GORVKQ==", + "dev": true, + "dependencies": { + "@types/node": "^22.2.0" + }, + "engines": { + "node": "^16.13 || >=18" + } + }, + "node_modules/webdriverio/node_modules/@wdio/utils": { + "version": "8.40.3", + "resolved": "https://registry.npmjs.org/@wdio/utils/-/utils-8.40.3.tgz", + "integrity": "sha512-pv/848KGfPN3YXU4QRfTYGkAu4/lejIfoGzGpvGNDcACiVxgZhyRZkJ2xVaSnGaXzF0R7pMozrkU5/DnEhcxMg==", + "dev": true, + "dependencies": { + "@puppeteer/browsers": "^1.6.0", + "@wdio/logger": "8.38.0", + "@wdio/types": "8.40.3", + "decamelize": "^6.0.0", + "deepmerge-ts": "^5.1.0", + "edgedriver": "^5.5.0", + "geckodriver": "^4.3.1", + "get-port": "^7.0.0", + "import-meta-resolve": "^4.0.0", + "locate-app": "^2.1.0", + "safaridriver": "^0.1.0", + "split2": "^4.2.0", + "wait-port": "^1.0.4" + }, + "engines": { + "node": "^16.13 || >=18" } }, "node_modules/webdriverio/node_modules/brace-expansion": { @@ -14101,6 +14209,18 @@ "balanced-match": "^1.0.0" } }, + "node_modules/webdriverio/node_modules/decamelize": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-6.0.0.tgz", + "integrity": "sha512-Fv96DCsdOgB6mdGl67MT5JaTNKRzrzill5OH5s8bjYJXVlcXyPYGyPsUkWyGV5p1TXI5esYIYMMeDJL0hEIwaA==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/webdriverio/node_modules/is-plain-obj": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", @@ -14128,6 +14248,12 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/webdriverio/node_modules/undici-types": { + "version": "6.18.2", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.18.2.tgz", + "integrity": "sha512-5ruQbENj95yDYJNS3TvcaxPMshV7aizdv/hWYjGIKoANWKjhWNBsr2YEuYZKodQulB1b8l7ILOuDQep3afowQQ==", + "dev": true + }, "node_modules/webidl-conversions": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", @@ -14342,9 +14468,9 @@ "dev": true }, "node_modules/ws": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", - "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.0.tgz", + "integrity": "sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==", "dev": true, "engines": { "node": ">=10.0.0" From f261e294399cc903924c02ffdd9138b68f2ec55d Mon Sep 17 00:00:00 2001 From: James Pogran Date: Fri, 16 Aug 2024 12:42:00 -0400 Subject: [PATCH 14/26] changelog --- .changes/unreleased/INTERNAL-20240816-124103.yaml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 .changes/unreleased/INTERNAL-20240816-124103.yaml diff --git a/.changes/unreleased/INTERNAL-20240816-124103.yaml b/.changes/unreleased/INTERNAL-20240816-124103.yaml new file mode 100644 index 0000000..d5a0e22 --- /dev/null +++ b/.changes/unreleased/INTERNAL-20240816-124103.yaml @@ -0,0 +1,6 @@ +kind: INTERNAL +body: Bump braces to 3.0.3 +time: 2024-08-16T12:41:03.66767-04:00 +custom: + Issue: "1819" + Repository: vscode-terraform From 3b88cf1382cbe76f227f261b1301d228fd979e1c Mon Sep 17 00:00:00 2001 From: James Pogran Date: Fri, 16 Aug 2024 12:36:19 -0400 Subject: [PATCH 15/26] Bump axios to 1.7.4 --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 68b2b28..474377e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,7 +12,7 @@ "@vscode/extension-telemetry": "^0.4.9", "@zodios/core": "^10.9.2", "@zodios/plugins": "^10.6.0", - "axios": "^1.4.0", + "axios": "^1.7.4", "semver": "^7.5.4", "vscode-languageclient": "^9.0.1", "vscode-uri": "^3.0.7", @@ -3243,9 +3243,9 @@ } }, "node_modules/axios": { - "version": "1.6.8", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.8.tgz", - "integrity": "sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==", + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.4.tgz", + "integrity": "sha512-DukmaFRnY6AzAALSH4J2M3k6PkaC+MfaAGdEERRWcC9q3/TWQwLpHR8ZRLKTdQ3aBDL64EdluRDjJqKw+BPZEw==", "dependencies": { "follow-redirects": "^1.15.6", "form-data": "^4.0.0", diff --git a/package.json b/package.json index 0ae18bb..9f15521 100644 --- a/package.json +++ b/package.json @@ -914,7 +914,7 @@ "@vscode/extension-telemetry": "^0.4.9", "@zodios/core": "^10.9.2", "@zodios/plugins": "^10.6.0", - "axios": "^1.4.0", + "axios": "^1.7.4", "semver": "^7.5.4", "vscode-languageclient": "^9.0.1", "vscode-uri": "^3.0.7", From b05e866c6752ebfa83dc2c3538bda8f302cdc3b5 Mon Sep 17 00:00:00 2001 From: James Pogran Date: Fri, 16 Aug 2024 12:39:56 -0400 Subject: [PATCH 16/26] changelog --- .changes/unreleased/INTERNAL-20240816-123712.yaml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 .changes/unreleased/INTERNAL-20240816-123712.yaml diff --git a/.changes/unreleased/INTERNAL-20240816-123712.yaml b/.changes/unreleased/INTERNAL-20240816-123712.yaml new file mode 100644 index 0000000..935b175 --- /dev/null +++ b/.changes/unreleased/INTERNAL-20240816-123712.yaml @@ -0,0 +1,6 @@ +kind: INTERNAL +body: Bump axios to 1.7.4 +time: 2024-08-16T12:37:12.325251-04:00 +custom: + Issue: "1818" + Repository: vscode-terraform From 88a3b37e85739ecdcee59a22f096be8863106b87 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 19 Aug 2024 06:46:17 +0000 Subject: [PATCH 17/26] Bump axios from 1.7.2 to 1.7.4 in /src/test/e2e Bumps [axios](https://github.com/axios/axios) from 1.7.2 to 1.7.4. - [Release notes](https://github.com/axios/axios/releases) - [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md) - [Commits](https://github.com/axios/axios/compare/v1.7.2...v1.7.4) --- updated-dependencies: - dependency-name: axios dependency-type: indirect ... Signed-off-by: dependabot[bot] --- src/test/e2e/package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/test/e2e/package-lock.json b/src/test/e2e/package-lock.json index 05ae54d..b6c1096 100644 --- a/src/test/e2e/package-lock.json +++ b/src/test/e2e/package-lock.json @@ -1327,9 +1327,9 @@ } }, "node_modules/axios": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.2.tgz", - "integrity": "sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==", + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.4.tgz", + "integrity": "sha512-DukmaFRnY6AzAALSH4J2M3k6PkaC+MfaAGdEERRWcC9q3/TWQwLpHR8ZRLKTdQ3aBDL64EdluRDjJqKw+BPZEw==", "dependencies": { "follow-redirects": "^1.15.6", "form-data": "^4.0.0", From 81a1feb0fac2694b2748a41645efbf9e23aabeb1 Mon Sep 17 00:00:00 2001 From: Daniel Banck Date: Tue, 30 Jul 2024 15:39:13 +0200 Subject: [PATCH 18/26] Add language configuration for test & mock files --- package.json | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/package.json b/package.json index 9f15521..1eb41e9 100644 --- a/package.json +++ b/package.json @@ -103,6 +103,34 @@ "light": "assets/icons/terraform_stacks.svg" } }, + { + "id": "terraform-test", + "aliases": [ + "Terraform Test" + ], + "extensions": [ + ".tftest.hcl" + ], + "configuration": "./language-configuration.json", + "icon": { + "dark": "assets/icons/terraform_stacks.svg", + "light": "assets/icons/terraform_stacks.svg" + } + }, + { + "id": "terraform-mock", + "aliases": [ + "Terraform Mock" + ], + "extensions": [ + ".tfmock.hcl" + ], + "configuration": "./language-configuration.json", + "icon": { + "dark": "assets/icons/terraform_stacks.svg", + "light": "assets/icons/terraform_stacks.svg" + } + }, { "id": "json", "extensions": [ @@ -130,6 +158,16 @@ "language": "terraform-deploy", "scopeName": "source.hcl", "path": "./syntaxes/hcl.tmGrammar.json" + }, + { + "language": "terraform-test", + "scopeName": "source.hcl", + "path": "./syntaxes/hcl.tmGrammar.json" + }, + { + "language": "terraform-mock", + "scopeName": "source.hcl", + "path": "./syntaxes/hcl.tmGrammar.json" } ], "semanticTokenTypes": [ From 1854643f5d524c1faa07b04eefb99a6eeafcf8e9 Mon Sep 17 00:00:00 2001 From: Ansgar Mertens Date: Tue, 3 Sep 2024 15:44:20 +0200 Subject: [PATCH 19/26] chore: add changie entry --- .changes/unreleased/ENHANCEMENTS-20240903-154405.yaml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 .changes/unreleased/ENHANCEMENTS-20240903-154405.yaml diff --git a/.changes/unreleased/ENHANCEMENTS-20240903-154405.yaml b/.changes/unreleased/ENHANCEMENTS-20240903-154405.yaml new file mode 100644 index 0000000..c611168 --- /dev/null +++ b/.changes/unreleased/ENHANCEMENTS-20240903-154405.yaml @@ -0,0 +1,6 @@ +kind: ENHANCEMENTS +body: Support syntax highlighting for .tftest.hcl and .tfmock.hcl files +time: 2024-09-03T15:44:05.999572+02:00 +custom: + Issue: "1831" + Repository: vscode-terraform From bc7c5495eb17f9661ad3a49ed04ac9bd1b0831b6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 3 Sep 2024 15:36:15 -0400 Subject: [PATCH 20/26] Bump micromatch from 4.0.7 to 4.0.8 in /src/test/e2e (#1832) Bumps [micromatch](https://github.com/micromatch/micromatch) from 4.0.7 to 4.0.8. - [Release notes](https://github.com/micromatch/micromatch/releases) - [Changelog](https://github.com/micromatch/micromatch/blob/master/CHANGELOG.md) - [Commits](https://github.com/micromatch/micromatch/compare/4.0.7...4.0.8) --- updated-dependencies: - dependency-name: micromatch dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- src/test/e2e/package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/test/e2e/package-lock.json b/src/test/e2e/package-lock.json index b6c1096..fc8dc00 100644 --- a/src/test/e2e/package-lock.json +++ b/src/test/e2e/package-lock.json @@ -5077,9 +5077,9 @@ "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" }, "node_modules/micromatch": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz", - "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", "dependencies": { "braces": "^3.0.3", "picomatch": "^2.3.1" From 90c5c88b2ee9538b736a81075b8190871c0cd9fc Mon Sep 17 00:00:00 2001 From: James Pogran Date: Tue, 3 Sep 2024 15:32:14 -0400 Subject: [PATCH 21/26] Bump terraform-ls from 0.34.2 to 0.34.3 --- .changes/unreleased/ENHANCEMENTS-20240903-153309.yaml | 6 ++++++ package.json | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 .changes/unreleased/ENHANCEMENTS-20240903-153309.yaml diff --git a/.changes/unreleased/ENHANCEMENTS-20240903-153309.yaml b/.changes/unreleased/ENHANCEMENTS-20240903-153309.yaml new file mode 100644 index 0000000..e8f0e88 --- /dev/null +++ b/.changes/unreleased/ENHANCEMENTS-20240903-153309.yaml @@ -0,0 +1,6 @@ +kind: ENHANCEMENTS +body: Bump terraform-ls from 0.34.2 to 0.34.3 +time: 2024-09-03T15:33:09.134019-04:00 +custom: + Issue: "1833" + Repository: vscode-terraform diff --git a/package.json b/package.json index 1eb41e9..189c753 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,7 @@ "vscode": "^1.86.2" }, "langServer": { - "version": "0.34.2" + "version": "0.34.3" }, "syntax": { "version": "0.7.0" From 92fa32c138f2f207915889a9bf420b22582c5aab Mon Sep 17 00:00:00 2001 From: James Pogran Date: Thu, 5 Sep 2024 08:57:22 -0400 Subject: [PATCH 22/26] Release 2.32.3 --- .../unreleased/ENHANCEMENTS-20240816-145322.yaml | 6 ------ .../unreleased/ENHANCEMENTS-20240903-153309.yaml | 6 ------ .../unreleased/ENHANCEMENTS-20240903-154405.yaml | 6 ------ .changes/unreleased/INTERNAL-20240816-123712.yaml | 6 ------ .changes/unreleased/INTERNAL-20240816-124103.yaml | 6 ------ .changes/v2.32.3.md | 13 +++++++++++++ CHANGELOG.md | 13 +++++++++++++ package-lock.json | 4 ++-- package.json | 2 +- 9 files changed, 29 insertions(+), 33 deletions(-) delete mode 100644 .changes/unreleased/ENHANCEMENTS-20240816-145322.yaml delete mode 100644 .changes/unreleased/ENHANCEMENTS-20240903-153309.yaml delete mode 100644 .changes/unreleased/ENHANCEMENTS-20240903-154405.yaml delete mode 100644 .changes/unreleased/INTERNAL-20240816-123712.yaml delete mode 100644 .changes/unreleased/INTERNAL-20240816-124103.yaml create mode 100644 .changes/v2.32.3.md diff --git a/.changes/unreleased/ENHANCEMENTS-20240816-145322.yaml b/.changes/unreleased/ENHANCEMENTS-20240816-145322.yaml deleted file mode 100644 index dbee479..0000000 --- a/.changes/unreleased/ENHANCEMENTS-20240816-145322.yaml +++ /dev/null @@ -1,6 +0,0 @@ -kind: ENHANCEMENTS -body: Bump hashicorp/syntax from 0.5.0 to 0.7.0 -time: 2024-08-16T14:53:22.557108-04:00 -custom: - Issue: "1820" - Repository: vscode-terraform diff --git a/.changes/unreleased/ENHANCEMENTS-20240903-153309.yaml b/.changes/unreleased/ENHANCEMENTS-20240903-153309.yaml deleted file mode 100644 index e8f0e88..0000000 --- a/.changes/unreleased/ENHANCEMENTS-20240903-153309.yaml +++ /dev/null @@ -1,6 +0,0 @@ -kind: ENHANCEMENTS -body: Bump terraform-ls from 0.34.2 to 0.34.3 -time: 2024-09-03T15:33:09.134019-04:00 -custom: - Issue: "1833" - Repository: vscode-terraform diff --git a/.changes/unreleased/ENHANCEMENTS-20240903-154405.yaml b/.changes/unreleased/ENHANCEMENTS-20240903-154405.yaml deleted file mode 100644 index c611168..0000000 --- a/.changes/unreleased/ENHANCEMENTS-20240903-154405.yaml +++ /dev/null @@ -1,6 +0,0 @@ -kind: ENHANCEMENTS -body: Support syntax highlighting for .tftest.hcl and .tfmock.hcl files -time: 2024-09-03T15:44:05.999572+02:00 -custom: - Issue: "1831" - Repository: vscode-terraform diff --git a/.changes/unreleased/INTERNAL-20240816-123712.yaml b/.changes/unreleased/INTERNAL-20240816-123712.yaml deleted file mode 100644 index 935b175..0000000 --- a/.changes/unreleased/INTERNAL-20240816-123712.yaml +++ /dev/null @@ -1,6 +0,0 @@ -kind: INTERNAL -body: Bump axios to 1.7.4 -time: 2024-08-16T12:37:12.325251-04:00 -custom: - Issue: "1818" - Repository: vscode-terraform diff --git a/.changes/unreleased/INTERNAL-20240816-124103.yaml b/.changes/unreleased/INTERNAL-20240816-124103.yaml deleted file mode 100644 index d5a0e22..0000000 --- a/.changes/unreleased/INTERNAL-20240816-124103.yaml +++ /dev/null @@ -1,6 +0,0 @@ -kind: INTERNAL -body: Bump braces to 3.0.3 -time: 2024-08-16T12:41:03.66767-04:00 -custom: - Issue: "1819" - Repository: vscode-terraform diff --git a/.changes/v2.32.3.md b/.changes/v2.32.3.md new file mode 100644 index 0000000..2247426 --- /dev/null +++ b/.changes/v2.32.3.md @@ -0,0 +1,13 @@ +## 2.32.3 (2024-09-05) + +ENHANCEMENTS: + +* Bump hashicorp/syntax from 0.5.0 to 0.7.0 ([#1820](https://github.com/hashicorp/vscode-terraform/issues/1820)) +* Support syntax highlighting for .tftest.hcl and .tfmock.hcl files ([#1831](https://github.com/hashicorp/vscode-terraform/issues/1831)) +* Bump terraform-ls from 0.34.2 to 0.34.3 ([#1833](https://github.com/hashicorp/vscode-terraform/issues/1833)) + +INTERNAL: + +* Bump axios to 1.7.4 ([#1818](https://github.com/hashicorp/vscode-terraform/issues/1818)) +* Bump braces to 3.0.3 ([#1819](https://github.com/hashicorp/vscode-terraform/issues/1819)) + diff --git a/CHANGELOG.md b/CHANGELOG.md index 9007542..4543d2c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,19 @@ ENHANCEMENTS: * Add initial support for Terraform Stacks files and Deployment files. This provides block and attribute completion, hover, and diagnostics along with syntax validation for Terraform Stacks and Deployment files ([terraform-ls#1745](https://github.com/hashicorp/terraform-ls/issues/1745)) +## 2.32.3 (2024-09-05) + +ENHANCEMENTS: + +* Bump hashicorp/syntax from 0.5.0 to 0.7.0 ([#1820](https://github.com/hashicorp/vscode-terraform/issues/1820)) +* Support syntax highlighting for .tftest.hcl and .tfmock.hcl files ([#1831](https://github.com/hashicorp/vscode-terraform/issues/1831)) +* Bump terraform-ls from 0.34.2 to 0.34.3 ([#1833](https://github.com/hashicorp/vscode-terraform/issues/1833)) + +INTERNAL: + +* Bump axios to 1.7.4 ([#1818](https://github.com/hashicorp/vscode-terraform/issues/1818)) +* Bump braces to 3.0.3 ([#1819](https://github.com/hashicorp/vscode-terraform/issues/1819)) + ## 2.32.2 (2024-07-30) BUG FIXES: diff --git a/package-lock.json b/package-lock.json index 474377e..5d9707a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "terraform", - "version": "2.33.2024073012", + "version": "2.32.3", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "terraform", - "version": "2.33.2024073012", + "version": "2.32.3", "license": "MPL-2.0", "dependencies": { "@vscode/extension-telemetry": "^0.4.9", diff --git a/package.json b/package.json index 189c753..35231c6 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "name": "terraform", "displayName": "HashiCorp Terraform", "description": "Syntax highlighting and autocompletion for Terraform", - "version": "2.33.2024073012", + "version": "2.32.3", "publisher": "hashicorp", "appInsightsKey": "885372d2-6f3c-499f-9d25-b8b219983a52", "license": "MPL-2.0", From cf61a95b28a336f99ff8bfc829276c082bfc7cc3 Mon Sep 17 00:00:00 2001 From: Gamunu Balagalla Date: Wed, 11 Sep 2024 01:18:01 +0530 Subject: [PATCH 23/26] fix: update test opentofu version Signed-off-by: Gamunu Balagalla --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index eb9b2ad..1943fcf 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -66,7 +66,7 @@ jobs: uses: opentofu/setup-opentofu@v1 with: tofu_wrapper: false - tofu_version: 1.7.0 + tofu_version: 1.8.0 - name: Tofu version run: tofu version - name: Clean Install Dependencies From f41527a1178fd9ae524f4d26ab190c25f70b42d2 Mon Sep 17 00:00:00 2001 From: Gamunu Balagalla Date: Wed, 11 Sep 2024 01:36:50 +0530 Subject: [PATCH 24/26] fix: unit tests init.test.ts Signed-off-by: Gamunu Balagalla --- src/features/languageStatus.ts | 5 +- src/features/terraformVersion.ts | 5 +- src/providers/terraform/moduleCalls.ts | 5 +- src/providers/terraform/moduleProviders.ts | 5 +- src/providers/tfc/applyProvider.ts | 241 ---------- src/providers/tfc/logHelpers.ts | 89 ---- src/providers/tfc/organizationPicker.ts | 116 ----- src/providers/tfc/planProvider.ts | 315 ------------- src/providers/tfc/runProvider.ts | 443 ------------------ src/test/integration/init/init.test.ts | 4 +- .../integration/stacks/deployment.test.ts | 177 ------- src/test/integration/stacks/stack.test.ts | 157 ------- 12 files changed, 18 insertions(+), 1544 deletions(-) delete mode 100644 src/providers/tfc/applyProvider.ts delete mode 100644 src/providers/tfc/logHelpers.ts delete mode 100644 src/providers/tfc/organizationPicker.ts delete mode 100644 src/providers/tfc/planProvider.ts delete mode 100644 src/providers/tfc/runProvider.ts delete mode 100644 src/test/integration/stacks/deployment.test.ts delete mode 100644 src/test/integration/stacks/stack.test.ts diff --git a/src/features/languageStatus.ts b/src/features/languageStatus.ts index 9a21f68..8ac7b2d 100644 --- a/src/features/languageStatus.ts +++ b/src/features/languageStatus.ts @@ -12,7 +12,10 @@ import * as lsStatus from '../status/language'; export class LanguageStatusFeature implements StaticFeature { private disposables: vscode.Disposable[] = []; - constructor(private client: BaseLanguageClient, private outputChannel: vscode.OutputChannel) {} + constructor( + private client: BaseLanguageClient, + private outputChannel: vscode.OutputChannel, + ) {} // eslint-disable-next-line @typescript-eslint/no-empty-function clear(): void {} diff --git a/src/features/terraformVersion.ts b/src/features/terraformVersion.ts index f104302..e0e93f2 100644 --- a/src/features/terraformVersion.ts +++ b/src/features/terraformVersion.ts @@ -19,7 +19,10 @@ export class TerraformVersionFeature implements StaticFeature { private clientTerraformVersionCommandId = 'client.refreshTerraformVersion'; - constructor(private client: LanguageClient, private outputChannel: vscode.OutputChannel) {} + constructor( + private client: LanguageClient, + private outputChannel: vscode.OutputChannel, + ) {} // eslint-disable-next-line @typescript-eslint/no-empty-function clear(): void {} diff --git a/src/providers/terraform/moduleCalls.ts b/src/providers/terraform/moduleCalls.ts index 12620b6..4589fbc 100644 --- a/src/providers/terraform/moduleCalls.ts +++ b/src/providers/terraform/moduleCalls.ts @@ -66,7 +66,10 @@ export class ModuleCallsDataProvider implements vscode.TreeDataProvider(); public readonly onDidChangeTreeData = this.didChangeTreeData.event; - constructor(ctx: vscode.ExtensionContext, private client: LanguageClient) { + constructor( + ctx: vscode.ExtensionContext, + private client: LanguageClient, + ) { ctx.subscriptions.push( vscode.commands.registerCommand('terraform.providers.refreshList', () => this.refresh()), vscode.window.onDidChangeActiveTextEditor(async () => { diff --git a/src/providers/tfc/applyProvider.ts b/src/providers/tfc/applyProvider.ts deleted file mode 100644 index d3330ef..0000000 --- a/src/providers/tfc/applyProvider.ts +++ /dev/null @@ -1,241 +0,0 @@ -/** - * Copyright (c) HashiCorp, Inc. - * SPDX-License-Identifier: MPL-2.0 - */ - -import * as vscode from 'vscode'; -import * as readline from 'readline'; -import { Writable } from 'stream'; -import axios from 'axios'; -import TelemetryReporter from '@vscode/extension-telemetry'; - -import { TerraformCloudAuthenticationProvider } from './authenticationProvider'; -import { ZodiosError } from '@zodios/core'; -import { handleAuthError, handleZodiosError } from './uiHelpers'; -import { GetChangeActionIcon } from './helpers'; -import { AppliedChange, ChangeSummary, Diagnostic, LogLine, Outputs } from '../../api/terraformCloud/log'; -import { ApplyTreeItem } from './runProvider'; -import { OutputsItem, DiagnosticsItem, DiagnosticSummary, ItemWithChildren, isItemWithChildren } from './logHelpers'; - -export class ApplyTreeDataProvider implements vscode.TreeDataProvider, vscode.Disposable { - private readonly didChangeTreeData = new vscode.EventEmitter(); - public readonly onDidChangeTreeData = this.didChangeTreeData.event; - private apply: ApplyTreeItem | undefined; - - constructor( - private ctx: vscode.ExtensionContext, - private reporter: TelemetryReporter, - private outputChannel: vscode.OutputChannel, - ) { - this.ctx.subscriptions.push( - vscode.commands.registerCommand('terraform.cloud.run.apply.refresh', () => { - this.reporter.sendTelemetryEvent('tfc-run-apply-refresh'); - this.refresh(this.apply); - }), - ); - } - - refresh(apply?: ApplyTreeItem): void { - this.apply = apply; - this.didChangeTreeData.fire(); - } - - getTreeItem(element: vscode.TreeItem): vscode.TreeItem | Thenable { - return element; - } - - getChildren(element?: vscode.TreeItem | undefined): vscode.ProviderResult { - if (!this.apply) { - return []; - } - - if (!element) { - try { - return this.getRootChildren(this.apply); - } catch (error) { - return []; - } - } - - if (isItemWithChildren(element)) { - return element.getChildren(); - } - } - - private async getRootChildren(apply: ApplyTreeItem): Promise { - const applyLog = await this.getApplyFromUrl(apply); - - const items: vscode.TreeItem[] = []; - if (applyLog && applyLog.appliedChanges) { - items.push(new AppliedChangesItem(applyLog.appliedChanges, applyLog.changeSummary)); - } - if (applyLog && applyLog.outputs && Object.keys(applyLog.outputs).length > 0) { - items.push(new OutputsItem(applyLog.outputs)); - } - if (applyLog && applyLog.diagnostics && applyLog.diagnosticSummary && applyLog.diagnostics.length > 0) { - items.push(new DiagnosticsItem(applyLog.diagnostics, applyLog.diagnosticSummary)); - } - return items; - } - - private async getApplyFromUrl(apply: ApplyTreeItem): Promise { - const session = await vscode.authentication.getSession(TerraformCloudAuthenticationProvider.providerID, [], { - createIfNone: false, - }); - - if (session === undefined) { - return; - } - - try { - const result = await axios.get(apply.logReadUrl, { - headers: { Accept: 'text/plain' }, - responseType: 'stream', - }); - const lineStream = readline.createInterface({ - input: result.data, - output: new Writable(), - }); - - const applyLog: ApplyLog = {}; - - for await (const line of lineStream) { - try { - const logLine: LogLine = JSON.parse(line); - - if (logLine.type === 'apply_complete' && logLine.hook) { - if (!applyLog.appliedChanges) { - applyLog.appliedChanges = []; - } - applyLog.appliedChanges.push(logLine.hook); - continue; - } - if (logLine.type === 'change_summary' && logLine.changes) { - applyLog.changeSummary = logLine.changes; - continue; - } - if (logLine.type === 'outputs' && logLine.outputs) { - applyLog.outputs = logLine.outputs; - continue; - } - if (logLine.type === 'diagnostic' && logLine.diagnostic) { - if (!applyLog.diagnostics) { - applyLog.diagnostics = []; - } - if (!applyLog.diagnosticSummary) { - applyLog.diagnosticSummary = { - errorCount: 0, - warningCount: 0, - }; - } - applyLog.diagnostics.push(logLine.diagnostic); - if (logLine.diagnostic.severity === 'warning') { - applyLog.diagnosticSummary.warningCount += 1; - } - if (logLine.diagnostic.severity === 'error') { - applyLog.diagnosticSummary.errorCount += 1; - } - continue; - } - - // TODO: logLine.type=test_* - } catch (e) { - // skip any non-JSON lines, like Terraform version output - continue; - } - } - - return applyLog; - } catch (error) { - let message = `Failed to obtain apply log from ${apply.logReadUrl}: `; - - if (error instanceof ZodiosError) { - handleZodiosError(error, message, this.outputChannel, this.reporter); - return; - } - - if (axios.isAxiosError(error)) { - if (error.response?.status === 401) { - handleAuthError(); - return; - } - } - - if (error instanceof Error) { - message += error.message; - vscode.window.showErrorMessage(message); - this.reporter.sendTelemetryException(error); - return; - } - - if (typeof error === 'string') { - message += error; - } - vscode.window.showErrorMessage(message); - return; - } - } - - dispose() { - // - } -} - -interface ApplyLog { - appliedChanges?: AppliedChange[]; - changeSummary?: ChangeSummary; - outputs?: Outputs; - diagnostics?: Diagnostic[]; - diagnosticSummary?: DiagnosticSummary; -} - -class AppliedChangesItem extends vscode.TreeItem implements ItemWithChildren { - constructor( - private appliedChanges: AppliedChange[], - summary?: ChangeSummary, - ) { - let label = 'Applied changes'; - if (summary) { - const labels: string[] = []; - if (summary.import > 0) { - labels.push(`${summary.import} imported`); - } - if (summary.add > 0) { - labels.push(`${summary.add} added`); - } - if (summary.change > 0) { - labels.push(`${summary.change} changed`); - } - if (summary.remove > 0) { - labels.push(`${summary.remove} destroyed`); - } - if (labels.length > 0) { - label = `Applied changes: ${labels.join(', ')}`; - } - } - super(label, vscode.TreeItemCollapsibleState.Expanded); - } - - getChildren(): vscode.TreeItem[] { - return this.appliedChanges.map((change) => new AppliedChangeItem(change)); - } -} - -class AppliedChangeItem extends vscode.TreeItem { - constructor(public change: AppliedChange) { - const label = change.resource.addr; - - super(label, vscode.TreeItemCollapsibleState.None); - this.id = change.action + '/' + change.resource.addr; - this.iconPath = GetChangeActionIcon(change.action); - - this.description = change.action; - if (change.id_key && change.id_value) { - this.description = `${change.id_key}=${change.id_value}`; - } - - const tooltip = new vscode.MarkdownString(); - tooltip.appendMarkdown(`_${change.action}_ \`${change.resource.addr}\``); - this.tooltip = tooltip; - } -} diff --git a/src/providers/tfc/logHelpers.ts b/src/providers/tfc/logHelpers.ts deleted file mode 100644 index f185ce5..0000000 --- a/src/providers/tfc/logHelpers.ts +++ /dev/null @@ -1,89 +0,0 @@ -/** - * Copyright (c) HashiCorp, Inc. - * SPDX-License-Identifier: MPL-2.0 - */ - -import * as vscode from 'vscode'; -import { Outputs, OutputChange, Diagnostic } from '../../api/terraformCloud/log'; -import { GetChangeActionIcon, GetDiagnosticSeverityIcon } from './helpers'; - -export interface DiagnosticSummary { - errorCount: number; - warningCount: number; -} - -export interface ItemWithChildren { - getChildren(): vscode.TreeItem[]; -} - -export function isItemWithChildren(element: object): element is ItemWithChildren { - return 'getChildren' in element; -} - -export class OutputsItem extends vscode.TreeItem implements ItemWithChildren { - constructor(private outputs: Outputs) { - const size = Object.keys(outputs).length; - super(`${size} outputs`, vscode.TreeItemCollapsibleState.Expanded); - } - - getChildren(): vscode.TreeItem[] { - const items: vscode.TreeItem[] = []; - Object.entries(this.outputs).forEach(([name, change]: [string, OutputChange]) => { - items.push(new OutputChangeItem(name, change)); - }); - return items; - } -} - -class OutputChangeItem extends vscode.TreeItem { - constructor(name: string, output: OutputChange) { - super(name, vscode.TreeItemCollapsibleState.None); - this.id = 'output/' + output.action + '/' + name; - if (output.action) { - this.iconPath = GetChangeActionIcon(output.action); - } - this.description = output.action; - if (output.sensitive) { - this.description += ' (sensitive)'; - } - } -} - -export class DiagnosticsItem extends vscode.TreeItem implements ItemWithChildren { - constructor( - private diagnostics: Diagnostic[], - summary: DiagnosticSummary, - ) { - const labels: string[] = []; - if (summary.warningCount === 1) { - labels.push(`1 warning`); - } else if (summary.warningCount > 1) { - labels.push(`${summary.warningCount} warnings`); - } - if (summary.errorCount === 1) { - labels.push(`1 error`); - } else if (summary.errorCount > 1) { - labels.push(`${summary.errorCount} errors`); - } - super(labels.join(', '), vscode.TreeItemCollapsibleState.Expanded); - } - - getChildren(): vscode.TreeItem[] { - return this.diagnostics.map((diagnostic) => new DiagnosticItem(diagnostic)); - } -} - -export class DiagnosticItem extends vscode.TreeItem { - constructor(diagnostic: Diagnostic) { - super(diagnostic.summary, vscode.TreeItemCollapsibleState.None); - this.description = diagnostic.severity; - const icon = GetDiagnosticSeverityIcon(diagnostic.severity); - this.iconPath = icon; - - const tooltip = new vscode.MarkdownString(); - tooltip.supportThemeIcons = true; - tooltip.appendMarkdown(`$(${icon.id}) **${diagnostic.summary}**\n\n`); - tooltip.appendMarkdown(diagnostic.detail); - this.tooltip = tooltip; - } -} diff --git a/src/providers/tfc/organizationPicker.ts b/src/providers/tfc/organizationPicker.ts deleted file mode 100644 index bcab00a..0000000 --- a/src/providers/tfc/organizationPicker.ts +++ /dev/null @@ -1,116 +0,0 @@ -/** - * Copyright (c) HashiCorp, Inc. - * SPDX-License-Identifier: MPL-2.0 - */ - -import * as vscode from 'vscode'; -import { TerraformCloudWebUrl, apiClient } from '../../api/terraformCloud'; -import { APIResource, handleAuthError, handleZodiosError } from './uiHelpers'; -import { Organization } from '../../api/terraformCloud/organization'; -import { ZodiosError, isErrorFromAlias } from '@zodios/core'; -import axios from 'axios'; -import { apiErrorsToString } from '../../api/terraformCloud/errors'; -import TelemetryReporter from '@vscode/extension-telemetry'; - -export class CreateOrganizationItem implements vscode.QuickPickItem { - get label() { - return '$(add) Create new organization'; - } - get detail() { - return 'Open the browser to create a new organization'; - } - async open() { - await vscode.env.openExternal(vscode.Uri.parse(`${TerraformCloudWebUrl}/organizations/new`)); - } - get alwaysShow() { - return true; - } -} - -export class RefreshOrganizationItem implements vscode.QuickPickItem { - get label() { - return '$(refresh) Refresh organizations'; - } - get detail() { - return 'Refetch all organizations'; - } - get alwaysShow() { - return true; - } -} - -class OrganizationItem implements vscode.QuickPickItem { - constructor(protected organization: Organization) {} - get label() { - return this.organization.attributes.name; - } -} - -export class OrganizationAPIResource implements APIResource { - name = 'organizations'; - title = 'Welcome to HCP Terraform'; - placeholder = 'Choose an organization (type to search)'; - ignoreFocusOut = true; - - constructor( - private outputChannel: vscode.OutputChannel, - private reporter: TelemetryReporter, - ) {} - - private async createOrganizationItems(search?: string): Promise { - const organizations = await apiClient.listOrganizations({ - // Include query parameter only if search argument is passed - ...(search && { - queries: { - q: search, - }, - }), - }); - - if (organizations.data.length <= 0) { - await vscode.commands.executeCommand('setContext', 'terraform.cloud.organizationsExist', false); - } else { - await vscode.commands.executeCommand('setContext', 'terraform.cloud.organizationsExist', true); - } - - return organizations.data.map((organization) => new OrganizationItem(organization)); - } - - async fetchItems(query?: string): Promise { - const createItem = new CreateOrganizationItem(); - const refreshItem = new RefreshOrganizationItem(); - const picks: vscode.QuickPickItem[] = [ - createItem, - refreshItem, - { label: '', kind: vscode.QuickPickItemKind.Separator }, - ]; - - try { - picks.push(...(await this.createOrganizationItems(query))); - } catch (error) { - let message = 'Failed to fetch organizations'; - - if (error instanceof ZodiosError) { - handleZodiosError(error, message, this.outputChannel, this.reporter); - return picks; - } - - if (axios.isAxiosError(error) && error.response?.status === 401) { - handleAuthError(); - return picks; - } else if (isErrorFromAlias(apiClient.api, 'listOrganizations', error)) { - message += apiErrorsToString(error.response.data.errors); - this.reporter.sendTelemetryException(error); - } else if (error instanceof Error) { - message += error.message; - this.reporter.sendTelemetryException(error); - } else if (typeof error === 'string') { - message += error; - } - - picks.push({ label: `$(error) ${message}`, alwaysShow: true }); - } - - return picks; - } -} diff --git a/src/providers/tfc/planProvider.ts b/src/providers/tfc/planProvider.ts deleted file mode 100644 index 055646f..0000000 --- a/src/providers/tfc/planProvider.ts +++ /dev/null @@ -1,315 +0,0 @@ -/** - * Copyright (c) HashiCorp, Inc. - * SPDX-License-Identifier: MPL-2.0 - */ - -import * as vscode from 'vscode'; -import * as readline from 'readline'; -import { Writable } from 'stream'; -import axios from 'axios'; -import TelemetryReporter from '@vscode/extension-telemetry'; - -import { TerraformCloudAuthenticationProvider } from './authenticationProvider'; -import { ZodiosError } from '@zodios/core'; -import { handleAuthError, handleZodiosError } from './uiHelpers'; -import { GetChangeActionIcon, GetDriftChangeActionMessage } from './helpers'; -import { Change, ChangeSummary, Diagnostic, DriftSummary, LogLine, Outputs } from '../../api/terraformCloud/log'; -import { PlanTreeItem } from './runProvider'; -import { DiagnosticSummary, DiagnosticsItem, OutputsItem, isItemWithChildren, ItemWithChildren } from './logHelpers'; - -export class PlanTreeDataProvider implements vscode.TreeDataProvider, vscode.Disposable { - private readonly didChangeTreeData = new vscode.EventEmitter(); - public readonly onDidChangeTreeData = this.didChangeTreeData.event; - private plan: PlanTreeItem | undefined; - - constructor( - private ctx: vscode.ExtensionContext, - private reporter: TelemetryReporter, - private outputChannel: vscode.OutputChannel, - ) { - this.ctx.subscriptions.push( - vscode.commands.registerCommand('terraform.cloud.run.plan.refresh', () => { - this.reporter.sendTelemetryEvent('tfc-run-plan-refresh'); - this.refresh(this.plan); - }), - ); - } - - refresh(plan?: PlanTreeItem): void { - this.plan = plan; - this.didChangeTreeData.fire(); - } - - getTreeItem(element: vscode.TreeItem): vscode.TreeItem | Thenable { - return element; - } - - getChildren(element?: vscode.TreeItem | undefined): vscode.ProviderResult { - if (!this.plan) { - return []; - } - - if (!element) { - try { - return this.getRootChildren(this.plan); - } catch (error) { - return []; - } - } - - if (isItemWithChildren(element)) { - return element.getChildren(); - } - } - - private async getRootChildren(plan: PlanTreeItem): Promise { - const planLog = await this.getPlanFromUrl(plan); - - const items: vscode.TreeItem[] = []; - if (planLog && planLog.plannedChanges) { - items.push(new PlannedChangesItem(planLog.plannedChanges, planLog.changeSummary)); - } - if (planLog && planLog.driftChanges) { - items.push(new DriftChangesItem(planLog.driftChanges, planLog.driftSummary)); - } - if (planLog && planLog.outputs) { - items.push(new OutputsItem(planLog.outputs)); - } - if (planLog && planLog.diagnostics && planLog.diagnosticSummary && planLog.diagnostics.length > 0) { - items.push(new DiagnosticsItem(planLog.diagnostics, planLog.diagnosticSummary)); - } - return items; - } - - private async getPlanFromUrl(plan: PlanTreeItem): Promise { - const session = await vscode.authentication.getSession(TerraformCloudAuthenticationProvider.providerID, [], { - createIfNone: false, - }); - - if (session === undefined) { - return; - } - - try { - const result = await axios.get(plan.logReadUrl, { - headers: { Accept: 'text/plain' }, - responseType: 'stream', - }); - const lineStream = readline.createInterface({ - input: result.data, - output: new Writable(), - }); - - const planLog: PlanLog = {}; - - for await (const line of lineStream) { - try { - const logLine: LogLine = JSON.parse(line); - - if (logLine.type === 'planned_change' && logLine.change) { - if (!planLog.plannedChanges) { - planLog.plannedChanges = []; - } - planLog.plannedChanges.push(logLine.change); - continue; - } - if (logLine.type === 'resource_drift' && logLine.change) { - if (!planLog.driftChanges) { - planLog.driftChanges = []; - } - if (!planLog.driftSummary) { - planLog.driftSummary = { - changed: 0, - deleted: 0, - }; - } - planLog.driftChanges.push(logLine.change); - if (logLine.change.action === 'update') { - planLog.driftSummary.changed += 1; - } - if (logLine.change.action === 'delete') { - planLog.driftSummary.deleted += 1; - } - continue; - } - if (logLine.type === 'change_summary' && logLine.changes) { - planLog.changeSummary = logLine.changes; - continue; - } - if (logLine.type === 'outputs' && logLine.outputs) { - planLog.outputs = logLine.outputs; - continue; - } - if (logLine.type === 'diagnostic' && logLine.diagnostic) { - if (!planLog.diagnostics) { - planLog.diagnostics = []; - } - if (!planLog.diagnosticSummary) { - planLog.diagnosticSummary = { - errorCount: 0, - warningCount: 0, - }; - } - planLog.diagnostics.push(logLine.diagnostic); - if (logLine.diagnostic.severity === 'warning') { - planLog.diagnosticSummary.warningCount += 1; - } - if (logLine.diagnostic.severity === 'error') { - planLog.diagnosticSummary.errorCount += 1; - } - continue; - } - - // TODO: logLine.type=test_* - } catch (e) { - // skip any non-JSON lines, like Terraform version output - continue; - } - } - - return planLog; - } catch (error) { - let message = `Failed to obtain plan from ${plan.logReadUrl}: `; - - if (error instanceof ZodiosError) { - handleZodiosError(error, message, this.outputChannel, this.reporter); - return; - } - - if (axios.isAxiosError(error)) { - if (error.response?.status === 401) { - handleAuthError(); - return; - } - } - - if (error instanceof Error) { - message += error.message; - vscode.window.showErrorMessage(message); - this.reporter.sendTelemetryException(error); - return; - } - - if (typeof error === 'string') { - message += error; - } - vscode.window.showErrorMessage(message); - return; - } - } - - dispose() { - // - } -} - -interface PlanLog { - plannedChanges?: Change[]; - changeSummary?: ChangeSummary; - driftChanges?: Change[]; - driftSummary?: DriftSummary; - outputs?: Outputs; - diagnostics?: Diagnostic[]; - diagnosticSummary?: DiagnosticSummary; -} - -class PlannedChangesItem extends vscode.TreeItem implements ItemWithChildren { - constructor( - private plannedChanges: Change[], - summary?: ChangeSummary, - ) { - let label = 'Planned changes'; - if (summary) { - const labels: string[] = []; - if (summary.import > 0) { - labels.push(`${summary.import} to import`); - } - if (summary.add > 0) { - labels.push(`${summary.add} to add`); - } - if (summary.change > 0) { - labels.push(`${summary.change} to change`); - } - if (summary.remove > 0) { - labels.push(`${summary.remove} to destroy`); - } - if (labels.length > 0) { - label = `Planned changes: ${labels.join(', ')}`; - } - } - super(label, vscode.TreeItemCollapsibleState.Expanded); - } - - getChildren(): vscode.TreeItem[] { - return this.plannedChanges.map((change) => new PlannedChangeItem(change)); - } -} - -class PlannedChangeItem extends vscode.TreeItem { - constructor(public change: Change) { - let label = change.resource.addr; - if (change.previous_resource) { - label = `${change.previous_resource.addr} → ${change.resource.addr}`; - } - - super(label, vscode.TreeItemCollapsibleState.None); - this.id = change.action + '/' + change.resource.addr; - this.iconPath = GetChangeActionIcon(change.action); - this.description = change.action; - - const tooltip = new vscode.MarkdownString(); - if (change.previous_resource) { - tooltip.appendMarkdown( - `\`${change.previous_resource.addr}\` planned to _${change.action}_ to \`${change.resource.addr}\``, - ); - } else if (change.importing) { - tooltip.appendMarkdown( - `Planned to _${change.action}_ \`${change.resource.addr}\` (id=\`${change.importing.id}\`)`, - ); - } else { - tooltip.appendMarkdown(`Planned to _${change.action}_ \`${change.resource.addr}\``); - } - this.tooltip = tooltip; - } -} - -class DriftChangesItem extends vscode.TreeItem implements ItemWithChildren { - constructor( - private driftChanges: Change[], - summary?: DriftSummary, - ) { - let label = `Drifted resources`; - if (summary) { - const details = []; - if (summary.changed > 0) { - details.push(`${summary.changed} changed`); - } - if (summary.deleted > 0) { - details.push(`${summary.deleted} deleted`); - } - label = `Drifted resources: ${details.join(', ')}`; - } - - super(label, vscode.TreeItemCollapsibleState.Expanded); - } - - getChildren(): vscode.TreeItem[] { - return this.driftChanges.map((change) => new DriftChangeItem(change)); - } -} - -class DriftChangeItem extends vscode.TreeItem { - constructor(public change: Change) { - let label = change.resource.addr; - if (change.previous_resource) { - label = `${change.previous_resource.addr} → ${change.resource.addr}`; - } - - super(label, vscode.TreeItemCollapsibleState.None); - this.id = 'drift/' + change.action + '/' + change.resource.addr; - this.iconPath = GetChangeActionIcon(change.action); - const message = GetDriftChangeActionMessage(change.action); - this.description = message; - this.tooltip = new vscode.MarkdownString(`\`${change.resource.addr}\` _${message}_`); - } -} diff --git a/src/providers/tfc/runProvider.ts b/src/providers/tfc/runProvider.ts deleted file mode 100644 index 4445e2f..0000000 --- a/src/providers/tfc/runProvider.ts +++ /dev/null @@ -1,443 +0,0 @@ -/** - * Copyright (c) HashiCorp, Inc. - * SPDX-License-Identifier: MPL-2.0 - */ - -import * as vscode from 'vscode'; -import axios from 'axios'; -import TelemetryReporter from '@vscode/extension-telemetry'; -import semver from 'semver'; - -import { TerraformCloudWebUrl, apiClient } from '../../api/terraformCloud'; -import { TerraformCloudAuthenticationProvider } from './authenticationProvider'; -import { RUN_SOURCE, RunAttributes, TRIGGER_REASON } from '../../api/terraformCloud/run'; -import { WorkspaceTreeItem } from './workspaceProvider'; -import { GetPlanApplyStatusIcon, GetRunStatusIcon, GetRunStatusMessage, RelativeTimeFormat } from './helpers'; -import { ZodiosError, isErrorFromAlias } from '@zodios/core'; -import { apiErrorsToString } from '../../api/terraformCloud/errors'; -import { handleAuthError, handleZodiosError } from './uiHelpers'; -import { PlanAttributes } from '../../api/terraformCloud/plan'; -import { ApplyAttributes } from '../../api/terraformCloud/apply'; -import { CONFIGURATION_SOURCE } from '../../api/terraformCloud/configurationVersion'; -import { PlanTreeDataProvider } from './planProvider'; -import { ApplyTreeDataProvider } from './applyProvider'; - -export class RunTreeDataProvider implements vscode.TreeDataProvider, vscode.Disposable { - private readonly didChangeTreeData = new vscode.EventEmitter(); - public readonly onDidChangeTreeData = this.didChangeTreeData.event; - private activeWorkspace: WorkspaceTreeItem | undefined; - - constructor( - private ctx: vscode.ExtensionContext, - private reporter: TelemetryReporter, - private outputChannel: vscode.OutputChannel, - private planDataProvider: PlanTreeDataProvider, - private applyDataProvider: ApplyTreeDataProvider, - ) { - this.ctx.subscriptions.push( - vscode.commands.registerCommand('terraform.cloud.run.plan.downloadLog', async (run: PlanTreeItem) => { - this.downloadPlanLog(run); - }), - vscode.commands.registerCommand('terraform.cloud.run.apply.downloadLog', async (run: ApplyTreeItem) => - this.downloadApplyLog(run), - ), - vscode.commands.registerCommand('terraform.cloud.runs.refresh', () => { - this.reporter.sendTelemetryEvent('tfc-runs-refresh'); - this.refresh(this.activeWorkspace); - }), - vscode.commands.registerCommand('terraform.cloud.run.viewInBrowser', (run: RunTreeItem) => { - this.reporter.sendTelemetryEvent('tfc-runs-viewInBrowser'); - vscode.env.openExternal(run.websiteUri); - }), - vscode.commands.registerCommand('terraform.cloud.run.viewPlan', async (plan: PlanTreeItem) => { - if (!plan.logReadUrl) { - await vscode.window.showErrorMessage(`No plan found for ${plan.id}`); - return; - } - await vscode.commands.executeCommand('setContext', 'terraform.cloud.run.viewingPlan', true); - await vscode.commands.executeCommand('terraform.cloud.run.plan.focus'); - this.planDataProvider.refresh(plan); - }), - vscode.commands.registerCommand('terraform.cloud.run.viewApply', async (apply: ApplyTreeItem) => { - if (!apply.logReadUrl) { - await vscode.window.showErrorMessage(`No apply log found for ${apply.id}`); - return; - } - await vscode.commands.executeCommand('setContext', 'terraform.cloud.run.viewingApply', true); - await vscode.commands.executeCommand('terraform.cloud.run.apply.focus'); - this.applyDataProvider.refresh(apply); - }), - ); - } - - refresh(workspaceItem?: WorkspaceTreeItem): void { - this.activeWorkspace = workspaceItem; - this.didChangeTreeData.fire(); - } - - getTreeItem(element: TFCRunTreeItem): vscode.TreeItem | Thenable { - return element; - } - - getChildren(element?: TFCRunTreeItem | undefined): vscode.ProviderResult { - if (!this.activeWorkspace || !(this.activeWorkspace instanceof WorkspaceTreeItem)) { - return []; - } - - if (element) { - const items = this.getRunDetails(element); - return items; - } - - try { - return this.getRuns(this.activeWorkspace); - } catch (error) { - return []; - } - } - - async resolveTreeItem(item: vscode.TreeItem, element: TFCRunTreeItem): Promise { - if (element instanceof RunTreeItem) { - item.tooltip = await runMarkdown(element); - } - return item; - } - - private async getRuns(workspace: WorkspaceTreeItem): Promise { - const organization = this.ctx.workspaceState.get('terraform.cloud.organization', ''); - if (organization === '') { - return []; - } - - const session = await vscode.authentication.getSession(TerraformCloudAuthenticationProvider.providerID, [], { - createIfNone: false, - }); - - if (session === undefined) { - return []; - } - - if (!this.activeWorkspace) { - return []; - } - - try { - const runs = await apiClient.listRuns({ - params: { workspace_id: workspace.id }, - queries: { - 'page[size]': 100, - }, - }); - - this.reporter.sendTelemetryEvent('tfc-fetch-runs', undefined, { - totalCount: runs.meta.pagination['total-count'], - }); - - if (runs.data.length === 0) { - return [ - { - label: `No runs found for ${this.activeWorkspace.attributes.name}`, - tooltip: `No runs found for ${this.activeWorkspace.attributes.name}`, - contextValue: 'empty', - }, - ]; - } - - const items: RunTreeItem[] = []; - for (let index = 0; index < runs.data.length; index++) { - const run = runs.data[index]; - const runItem = new RunTreeItem(run.id, run.attributes, this.activeWorkspace); - - runItem.contextValue = 'isRun'; - runItem.organizationName = organization; - - runItem.configurationVersionId = run.relationships['configuration-version']?.data?.id; - runItem.createdByUserId = run.relationships['created-by']?.data?.id; - - runItem.planId = run.relationships.plan?.data?.id; - runItem.applyId = run.relationships.apply?.data?.id; - if (runItem.planId || runItem.applyId) { - runItem.collapsibleState = vscode.TreeItemCollapsibleState.Collapsed; - } - - items.push(runItem); - } - - return items; - } catch (error) { - let message = `Failed to list runs in ${this.activeWorkspace.attributes.name} (${workspace.id}): `; - - if (error instanceof ZodiosError) { - handleZodiosError(error, message, this.outputChannel, this.reporter); - return []; - } - - if (axios.isAxiosError(error)) { - if (error.response?.status === 401) { - handleAuthError(); - return []; - } - - if (error.response?.status === 404) { - vscode.window.showWarningMessage( - `Workspace ${this.activeWorkspace.attributes.name} (${workspace.id}) not found, please pick another one`, - ); - return []; - } - - if (isErrorFromAlias(apiClient.api, 'listRuns', error)) { - message += apiErrorsToString(error.response.data.errors); - vscode.window.showErrorMessage(message); - this.reporter.sendTelemetryException(error); - return []; - } - } - - if (error instanceof Error) { - message += error.message; - vscode.window.showErrorMessage(message); - this.reporter.sendTelemetryException(error); - return []; - } - - if (typeof error === 'string') { - message += error; - } - vscode.window.showErrorMessage(message); - return []; - } - } - - private async getRunDetails(element: TFCRunTreeItem) { - const items = []; - const root = element as RunTreeItem; - if (root.planId) { - const plan = await apiClient.getPlan({ params: { plan_id: root.planId } }); - if (plan) { - const status = plan.data.attributes.status; - const label = status === 'unreachable' ? 'Plan will not run' : `Plan ${status}`; - const item = new PlanTreeItem(root.planId, label, plan.data.attributes); - if (status === 'unreachable' || status === 'pending') { - item.label = label; - } else { - if (this.isJsonExpected(plan.data.attributes, root.attributes['terraform-version'])) { - item.contextValue = 'hasStructuredPlan'; - } else { - item.contextValue = 'hasRawPlan'; - } - } - items.push(item); - } - } - - if (root.applyId) { - const apply = await apiClient.getApply({ params: { apply_id: root.applyId } }); - if (apply) { - const status = apply.data.attributes.status; - const label = status === 'unreachable' ? 'Apply will not run' : `Apply ${status}`; - const item = new ApplyTreeItem(root.applyId, label, apply.data.attributes); - if (status === 'unreachable' || status === 'pending') { - item.label = label; - } else { - if (this.isJsonExpected(apply.data.attributes, root.attributes['terraform-version'])) { - item.contextValue = 'hasStructuredApply'; - } else { - item.contextValue = 'hasRawApply'; - } - } - items.push(item); - } - } - - return items; - } - - private isJsonExpected(attributes: PlanAttributes | ApplyAttributes, terraformVersion: string): boolean { - const jsonSupportedVersion = '> 0.15.2'; - if (!semver.satisfies(terraformVersion, jsonSupportedVersion)) { - return false; - } - return attributes['structured-run-output-enabled']; - } - - private async downloadPlanLog(run: PlanTreeItem) { - if (!run.id) { - await vscode.window.showErrorMessage(`No plan found for ${run.id}`); - return; - } - - const doc = await vscode.workspace.openTextDocument(run.documentUri); - return await vscode.window.showTextDocument(doc, { - preview: false, - }); - } - - private async downloadApplyLog(run: ApplyTreeItem) { - if (!run.id) { - await vscode.window.showErrorMessage(`No apply found for ${run.id}`); - return; - } - - const doc = await vscode.workspace.openTextDocument(run.documentUri); - return await vscode.window.showTextDocument(doc, { - preview: false, - }); - } - - dispose() { - // - } -} - -export type TFCRunTreeItem = RunTreeItem | PlanTreeItem | ApplyTreeItem | vscode.TreeItem; - -export class RunTreeItem extends vscode.TreeItem { - public organizationName?: string; - public configurationVersionId?: string; - public createdByUserId?: string; - - public planAttributes?: PlanAttributes; - public planId?: string; - - public applyAttributes?: ApplyAttributes; - public applyId?: string; - - constructor( - public id: string, - public attributes: RunAttributes, - public workspace: WorkspaceTreeItem, - ) { - super(attributes.message, vscode.TreeItemCollapsibleState.None); - this.id = id; - - this.workspace = workspace; - this.iconPath = GetRunStatusIcon(attributes.status); - this.description = `${attributes['trigger-reason']} ${attributes['created-at']}`; - } - - public get websiteUri(): vscode.Uri { - return vscode.Uri.parse( - `${TerraformCloudWebUrl}/${this.organizationName}/workspaces/${this.workspace.attributes.name}/runs/${this.id}`, - ); - } -} - -export class PlanTreeItem extends vscode.TreeItem { - public logReadUrl = ''; - - constructor( - public id: string, - public label: string, - public attributes: PlanAttributes, - ) { - super(label); - this.iconPath = GetPlanApplyStatusIcon(attributes.status); - if (attributes) { - this.logReadUrl = attributes['log-read-url'] ?? ''; - } - } - - public get documentUri(): vscode.Uri { - return vscode.Uri.parse(`vscode-terraform://plan/${this.id}`); - } -} - -export class ApplyTreeItem extends vscode.TreeItem { - public logReadUrl = ''; - constructor( - public id: string, - public label: string, - public attributes: ApplyAttributes, - ) { - super(label); - this.iconPath = GetPlanApplyStatusIcon(attributes.status); - if (attributes) { - this.logReadUrl = attributes['log-read-url'] ?? ''; - } - } - - public get documentUri(): vscode.Uri { - return vscode.Uri.parse(`vscode-terraform://apply/${this.id}`); - } -} - -async function runMarkdown(item: RunTreeItem) { - const markdown: vscode.MarkdownString = new vscode.MarkdownString(); - - // to allow image resizing - markdown.supportHtml = true; - markdown.supportThemeIcons = true; - - const configurationVersion = item.configurationVersionId - ? await apiClient.getConfigurationVersion({ - params: { - configuration_id: item.configurationVersionId, - }, - }) - : undefined; - const ingress = configurationVersion?.data.relationships['ingress-attributes']?.data?.id - ? await apiClient.getIngressAttributes({ - params: { - configuration_id: configurationVersion.data.id, - }, - }) - : undefined; - - const createdAtTime = RelativeTimeFormat(item.attributes['created-at']); - - if (item.createdByUserId) { - const user = await apiClient.getUser({ - params: { - user_id: item.createdByUserId, - }, - }); - - markdown.appendMarkdown( - ` **${user.data.attributes.username}**`, - ); - } else if (ingress) { - markdown.appendMarkdown( - ` **${ingress.data.attributes['sender-username']}**`, - ); - } - - const triggerReason = TRIGGER_REASON[item.attributes['trigger-reason']]; - const icon = GetRunStatusIcon(item.attributes.status); - const msg = GetRunStatusMessage(item.attributes.status); - - markdown.appendMarkdown(` ${triggerReason} from ${RUN_SOURCE[item.attributes.source]} ${createdAtTime}`); - markdown.appendMarkdown(` - ------ -_____ -| | | --:|-- -| **Run ID** | \`${item.id}\` | -| **Status** | $(${icon.id}) ${msg} | -`); - if (ingress && configurationVersion && configurationVersion.data.attributes.source) { - // Blind shortening like this may not be appropriate - // due to hash collisions but we just mimic what TFC does here - // which is fairly safe since it's just UI/text, not URL. - const shortCommitSha = ingress.data.attributes['commit-sha'].slice(0, 8); - - const cfgSource = CONFIGURATION_SOURCE[configurationVersion.data.attributes.source]; - markdown.appendMarkdown(`| **Configuration** | From ${cfgSource} by ${ingress.data.attributes['sender-username']} **Branch** ${ - ingress.data.attributes.branch - } **Repo** [${ingress.data.attributes.identifier}](${ingress.data.attributes['clone-url']}) | -| **Commit** | [${shortCommitSha}](${ingress.data.attributes['commit-url']}): ${ - ingress.data.attributes['commit-message'].split('\n')[0] - } | -`); - } else { - markdown.appendMarkdown(`| **Configuration** | From ${item.attributes.source} | -`); - } - - markdown.appendMarkdown(`| **Trigger** | ${triggerReason} | -| **Execution Mode** | ${item.workspace.attributes['execution-mode']} | -`); - return markdown; -} diff --git a/src/test/integration/init/init.test.ts b/src/test/integration/init/init.test.ts index f059814..669f04a 100644 --- a/src/test/integration/init/init.test.ts +++ b/src/test/integration/init/init.test.ts @@ -66,7 +66,7 @@ suite('init', () => { assert.equal(doc.languageId, 'terraform', 'document language should be `terraform`'); }); - test('completes resource not available in downloaded schema', async () => { + /* test('completes resource not available in downloaded schema', async () => { const actualCompletionList = await vscode.commands.executeCommand( 'vscode.executeCompletionItemProvider', docUri, @@ -81,7 +81,7 @@ suite('init', () => { // aws_eip_domain_name was added in provider version 5.46.0 but we initialized with 5.45.0 assert.isUndefined(item, 'aws_eip_domain_name should not be in completion list'); - }); + });*/ }); // This test is skipped as it fails weirdly on CI. It works fine locally and on Windows and OS X in CI. diff --git a/src/test/integration/stacks/deployment.test.ts b/src/test/integration/stacks/deployment.test.ts deleted file mode 100644 index a7993cf..0000000 --- a/src/test/integration/stacks/deployment.test.ts +++ /dev/null @@ -1,177 +0,0 @@ -/** - * Copyright (c) HashiCorp, Inc. - * SPDX-License-Identifier: MPL-2.0 - */ - -import * as vscode from 'vscode'; -import { assert } from 'chai'; -import { activateExtension, getDocUri, open, testCompletion } from '../../helper'; - -suite('stacks deployments', () => { - suite('basics', function () { - const docUri = getDocUri('deployments.tfdeploy.hcl'); - - this.beforeAll(async () => { - await open(docUri); - await activateExtension(); - }); - - this.afterAll(async () => { - await vscode.commands.executeCommand('workbench.action.closeAllEditors'); - }); - - this.afterEach(async () => { - // revert any changes made to the document after each test - await vscode.commands.executeCommand('workbench.action.files.revert'); - }); - - test('language is registered', async () => { - const doc = await vscode.workspace.openTextDocument(docUri); - assert.equal(doc.languageId, 'terraform-deploy', 'document language should be `terraform-deploy`'); - }); - - test('completes inputs attribute in deployment block', async () => { - // add a new incomplete "test" deployment block to use for completions - await vscode.window.activeTextEditor?.edit((editBuilder) => { - editBuilder.insert(new vscode.Position(14, 0), 'deployment "test" {\n\n}\n'); - }); - - const expected = [new vscode.CompletionItem('inputs', vscode.CompletionItemKind.Property)]; - - await testCompletion(docUri, new vscode.Position(15, 2), { - items: expected, - }); - }); - - // TODO: not implemented yet - test.skip('completes available inputs in deployment block', async () => { - // add a new incomplete "test" deployment block to use for completions - await vscode.window.activeTextEditor?.edit((editBuilder) => { - editBuilder.insert(new vscode.Position(14, 0), 'deployment "test" {\ninputs = {\n\n}\n}\n'); - }); - - const expected = [ - new vscode.CompletionItem('default_tags', vscode.CompletionItemKind.Property), - new vscode.CompletionItem('identity_token_file', vscode.CompletionItemKind.Property), - new vscode.CompletionItem('region', vscode.CompletionItemKind.Property), - new vscode.CompletionItem('role_arn', vscode.CompletionItemKind.Property), - ]; - - await testCompletion(docUri, new vscode.Position(17, 2), { - items: expected, - }); - }); - - // TODO: not implemented yet - test.skip('completes attributes of identity_token block', async () => { - // add a new incomplete deployment block to use for completions - await vscode.window.activeTextEditor?.edit((editBuilder) => { - editBuilder.insert( - new vscode.Position(14, 0), - ` -deployment "test" { - inputs = { - identity_token_file = identity_token.aws. - } -} -`, - ); - }); - - const expected = [new vscode.CompletionItem('jwt_filename', vscode.CompletionItemKind.Property)]; - - await testCompletion(docUri, new vscode.Position(17, 45), { - items: expected, - }); - }); - - test('completes audience in identity_token block', async () => { - // add a new incomplete "account_3" identity_token block to use for completions - await vscode.window.activeTextEditor?.edit((editBuilder) => { - editBuilder.insert(new vscode.Position(14, 0), 'identity_token {\n\n}\n'); - }); - - const expected = [new vscode.CompletionItem('audience', vscode.CompletionItemKind.Property)]; - - await testCompletion(docUri, new vscode.Position(15, 2), { - items: expected, - }); - }); - - // TODO: not implemented yet - test.skip('completes valid rule types of an orchestrate block', async () => { - await vscode.window.activeTextEditor?.edit((editBuilder) => { - editBuilder.insert(new vscode.Position(14, 0), 'orchestrate ""\n\n'); - }); - - const expected = [new vscode.CompletionItem('auto_approve', vscode.CompletionItemKind.Property)]; - - await testCompletion(docUri, new vscode.Position(14, 13), { - items: expected, - }); - }); - - suite('orchestrate block context', function () { - this.beforeAll(async () => { - await vscode.window.activeTextEditor?.edit((editBuilder) => { - editBuilder.insert( - new vscode.Position(14, 0), - ` - orchestrate "auto_approve" "no_api_gateway_changes" { - check { - condition = context.plan.component_changes["component.api_gateway"].total == 0 - reason = "Changes proposed to api_gateway component." - } - } - `, - ); - }); - }); - - // TODO: not implemented yet - test.skip('completes context root level', async () => { - const expected = [ - new vscode.CompletionItem('errors', vscode.CompletionItemKind.Property), - new vscode.CompletionItem('operation', vscode.CompletionItemKind.Property), - new vscode.CompletionItem('plan', vscode.CompletionItemKind.Property), - new vscode.CompletionItem('warnings', vscode.CompletionItemKind.Property), - ]; - - await testCompletion(docUri, new vscode.Position(17, 26), { - items: expected, - }); - }); - - // TODO: not implemented yet - test.skip('completes context.plan level', async () => { - const expected = [ - new vscode.CompletionItem('applyable', vscode.CompletionItemKind.Property), - new vscode.CompletionItem('changes', vscode.CompletionItemKind.Property), - new vscode.CompletionItem('component_changes', vscode.CompletionItemKind.Property), - new vscode.CompletionItem('deployment', vscode.CompletionItemKind.Property), - new vscode.CompletionItem('mode', vscode.CompletionItemKind.Property), - new vscode.CompletionItem('replans', vscode.CompletionItemKind.Property), - ]; - - await testCompletion(docUri, new vscode.Position(17, 31), { - items: expected, - }); - }); - - // TODO: not implemented yet - test.skip('completes context.plan.component_changes item level', async () => { - const expected = [ - new vscode.CompletionItem('add', vscode.CompletionItemKind.Property), - new vscode.CompletionItem('change', vscode.CompletionItemKind.Property), - new vscode.CompletionItem('import', vscode.CompletionItemKind.Property), - new vscode.CompletionItem('remove', vscode.CompletionItemKind.Property), - new vscode.CompletionItem('total', vscode.CompletionItemKind.Property), - ]; - - await testCompletion(docUri, new vscode.Position(17, 74), { - items: expected, - }); - }); - }); - }); -}); diff --git a/src/test/integration/stacks/stack.test.ts b/src/test/integration/stacks/stack.test.ts deleted file mode 100644 index 1276f81..0000000 --- a/src/test/integration/stacks/stack.test.ts +++ /dev/null @@ -1,157 +0,0 @@ -/** - * Copyright (c) HashiCorp, Inc. - * SPDX-License-Identifier: MPL-2.0 - */ - -import * as vscode from 'vscode'; -import { assert } from 'chai'; -import { activateExtension, getDocUri, open, testCompletion } from '../../helper'; - -suite('stacks stack', () => { - suite('root', function suite() { - const docUri = getDocUri('variables.tfstack.hcl'); - - this.beforeAll(async () => { - await open(docUri); - await activateExtension(); - }); - - teardown(async () => { - await vscode.commands.executeCommand('workbench.action.closeAllEditors'); - }); - - test('language is registered', async () => { - const doc = await vscode.workspace.openTextDocument(docUri); - assert.equal(doc.languageId, 'terraform-stack', 'document language should be `terraform-stack`'); - }); - - test('completes blocks available for stacks files', async () => { - const expected = [ - new vscode.CompletionItem('component', vscode.CompletionItemKind.Class), - new vscode.CompletionItem('output', vscode.CompletionItemKind.Class), - new vscode.CompletionItem('provider', vscode.CompletionItemKind.Class), - new vscode.CompletionItem('required_providers', vscode.CompletionItemKind.Class), - new vscode.CompletionItem('variable', vscode.CompletionItemKind.Class), - ]; - - await testCompletion(docUri, new vscode.Position(20, 0), { - items: expected, - }); - }); - }); - - suite('components', function suite() { - const docUri = getDocUri('components.tfstack.hcl'); - - this.beforeAll(async () => { - await open(docUri); - await activateExtension(); - }); - - teardown(async () => { - await vscode.commands.executeCommand('workbench.action.closeAllEditors'); - }); - - test('language is registered', async () => { - const doc = await vscode.workspace.openTextDocument(docUri); - assert.equal(doc.languageId, 'terraform-stack', 'document language should be `terraform-stack`'); - }); - - test('completes attributes of component block', async () => { - // await vscode.window.activeTextEditor?.edit((editBuilder) => { - // editBuilder.insert( - // new vscode.Position(2, 0), - // ` - // component "test" { - - // } - // `, - // ); - // }); - - const expected = [ - new vscode.CompletionItem('for_each', vscode.CompletionItemKind.Property), - new vscode.CompletionItem('inputs', vscode.CompletionItemKind.Property), - new vscode.CompletionItem('providers', vscode.CompletionItemKind.Property), - new vscode.CompletionItem('source', vscode.CompletionItemKind.Property), - new vscode.CompletionItem('version', vscode.CompletionItemKind.Property), - ]; - - // await testCompletion(docUri, new vscode.Position(4, 2), { - await testCompletion(docUri, new vscode.Position(4, 12), { - items: expected, - }); - }); - - // TODO: not implemented yet - test.skip('completes inputs for local component', async () => { - await vscode.window.activeTextEditor?.edit((editBuilder) => { - editBuilder.insert( - new vscode.Position(2, 0), - ` - component "test" { - source = "./lambda" - - inputs = { - - } - } - `, - ); - }); - - const expected = [new vscode.CompletionItem('bucket_id', vscode.CompletionItemKind.Property)]; - - await testCompletion(docUri, new vscode.Position(7, 4), { - items: expected, - }); - }); - - // TODO: not implemented yet - test.skip('completes references to provider blocks', async () => { - const expected = [ - new vscode.CompletionItem('archive', vscode.CompletionItemKind.Property), - new vscode.CompletionItem('aws', vscode.CompletionItemKind.Property), - new vscode.CompletionItem('local', vscode.CompletionItemKind.Property), - new vscode.CompletionItem('random', vscode.CompletionItemKind.Property), - ]; - - await testCompletion(docUri, new vscode.Position(11, 22), { - items: expected, - }); - }); - - // TODO implement this - test.skip('completes references to provider block names', async () => { - const expected = [new vscode.CompletionItem('this', vscode.CompletionItemKind.Property)]; - - await testCompletion(docUri, new vscode.Position(11, 26), { - items: expected, - }); - }); - }); - - suite('providers', function suite() { - const docUri = getDocUri('providers.tfstack.hcl'); - - this.beforeAll(async () => { - await open(docUri); - await activateExtension(); - }); - - teardown(async () => { - await vscode.commands.executeCommand('workbench.action.closeAllEditors'); - }); - - test('completes config and for_each blocks within provider', async () => { - const expected = [ - new vscode.CompletionItem('config', vscode.CompletionItemKind.Property), - new vscode.CompletionItem('for_each', vscode.CompletionItemKind.Property), - ]; - - await testCompletion(docUri, new vscode.Position(41, 0), { - items: expected, - }); - }); - }); -}); From 962d226da2976faa7fd34ff0dc990525834766b6 Mon Sep 17 00:00:00 2001 From: Gamunu Balagalla Date: Wed, 11 Sep 2024 12:05:27 +0530 Subject: [PATCH 25/26] fix: add env secrets.GITHUB_TOKEN to pipeline Signed-off-by: Gamunu Balagalla --- .github/workflows/test.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 1943fcf..3628979 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -51,6 +51,8 @@ jobs: - ubuntu-latest runs-on: ${{ matrix.os }} timeout-minutes: 10 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} steps: - name: Checkout Repo uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 From d13fce3c15c234c8451c324df73f54df68f52c47 Mon Sep 17 00:00:00 2001 From: Gamunu Balagalla Date: Wed, 11 Sep 2024 12:19:40 +0530 Subject: [PATCH 26/26] fix: update changelog file Signed-off-by: Gamunu Balagalla --- .changes/0.1.0.md | 2 + .changes/unreleased/.gitkeep | 0 .../ENHANCEMENTS-20240911-122605.yaml | 6 ++ .changes/v0.1.1.md | 2 + .changes/v0.2.0-beta1.md | 2 + .changes/v0.2.0.md | 2 + .changes/v0.2.1.md | 2 + .changes/v2.0.0.md | 27 --------- .changes/v2.0.1.md | 6 -- .changes/v2.0.2.md | 6 -- .changes/v2.1.0.md | 9 --- .changes/v2.1.1.md | 6 -- .changes/v2.10.0.md | 6 -- .changes/v2.10.1.md | 6 -- .changes/v2.10.2.md | 6 -- .changes/v2.11.0.md | 7 --- .changes/v2.12.0.md | 10 ---- .changes/v2.12.1.md | 6 -- .changes/v2.13.0.md | 6 -- .changes/v2.13.1.md | 6 -- .changes/v2.13.2.md | 6 -- .changes/v2.14.0.md | 16 ------ .changes/v2.15.0.md | 13 ----- .changes/v2.16.0.md | 12 ---- .changes/v2.17.0.md | 20 ------- .changes/v2.18.0.md | 15 ----- .changes/v2.19.0.md | 20 ------- .changes/v2.2.0.md | 17 ------ .changes/v2.2.1.md | 6 -- .changes/v2.2.2.md | 6 -- .changes/v2.2.3.md | 6 -- .changes/v2.20.0.md | 34 ----------- .changes/v2.20.1.md | 32 ----------- .changes/v2.21.0.md | 25 --------- .changes/v2.22.0.md | 37 ------------ .changes/v2.23.0.md | 30 ---------- .changes/v2.24.0.md | 56 ------------------- .changes/v2.24.1.md | 11 ---- .changes/v2.24.2.md | 16 ------ .changes/v2.24.3.md | 17 ------ .changes/v2.25.0.md | 12 ---- .changes/v2.25.1.md | 15 ----- .changes/v2.25.2.md | 6 -- .changes/v2.25.3.md | 15 ----- .changes/v2.25.4.md | 6 -- .changes/v2.26.0.md | 25 --------- .changes/v2.26.1.md | 14 ----- .changes/v2.27.0.md | 30 ---------- .changes/v2.27.1.md | 19 ------- .changes/v2.27.2.md | 13 ----- .changes/v2.28.0.md | 28 ---------- .changes/v2.28.1.md | 15 ----- .changes/v2.28.2.md | 13 ----- .changes/v2.29.0.md | 22 -------- .changes/v2.29.1.md | 26 --------- .changes/v2.29.2.md | 26 --------- .changes/v2.29.3.md | 18 ------ .changes/v2.29.4.md | 18 ------ .changes/v2.29.5.md | 10 ---- .changes/v2.3.0.md | 12 ---- .changes/v2.30.0.md | 36 ------------ .changes/v2.30.1.md | 18 ------ .changes/v2.30.2.md | 15 ----- .changes/v2.31.0.md | 10 ---- .changes/v2.31.2024061114.md | 10 ---- .changes/v2.32.0.md | 14 ----- .changes/v2.32.1.md | 6 -- .changes/v2.32.2.md | 6 -- .changes/v2.32.2024070910.md | 6 -- .changes/v2.32.3.md | 13 ----- .changes/v2.33.2024073012.md | 7 --- .changes/v2.4.0.md | 12 ---- .changes/v2.5.0.md | 7 --- .changes/v2.6.0.md | 6 -- .changes/v2.7.0.md | 7 --- .changes/v2.8.0.md | 10 ---- .changes/v2.8.1.md | 7 --- .changes/v2.8.2.md | 11 ---- .changes/v2.8.3.md | 6 -- .changes/v2.9.0.md | 11 ---- .changes/v2.9.1.md | 6 -- .changie.yaml | 6 +- CHANGELOG.md | 12 ++++ 83 files changed, 31 insertions(+), 1072 deletions(-) create mode 100644 .changes/0.1.0.md delete mode 100644 .changes/unreleased/.gitkeep create mode 100644 .changes/unreleased/ENHANCEMENTS-20240911-122605.yaml create mode 100644 .changes/v0.1.1.md create mode 100644 .changes/v0.2.0-beta1.md create mode 100644 .changes/v0.2.0.md create mode 100644 .changes/v0.2.1.md delete mode 100644 .changes/v2.0.0.md delete mode 100644 .changes/v2.0.1.md delete mode 100644 .changes/v2.0.2.md delete mode 100644 .changes/v2.1.0.md delete mode 100644 .changes/v2.1.1.md delete mode 100644 .changes/v2.10.0.md delete mode 100644 .changes/v2.10.1.md delete mode 100644 .changes/v2.10.2.md delete mode 100644 .changes/v2.11.0.md delete mode 100644 .changes/v2.12.0.md delete mode 100644 .changes/v2.12.1.md delete mode 100644 .changes/v2.13.0.md delete mode 100644 .changes/v2.13.1.md delete mode 100644 .changes/v2.13.2.md delete mode 100644 .changes/v2.14.0.md delete mode 100644 .changes/v2.15.0.md delete mode 100644 .changes/v2.16.0.md delete mode 100644 .changes/v2.17.0.md delete mode 100644 .changes/v2.18.0.md delete mode 100644 .changes/v2.19.0.md delete mode 100644 .changes/v2.2.0.md delete mode 100644 .changes/v2.2.1.md delete mode 100644 .changes/v2.2.2.md delete mode 100644 .changes/v2.2.3.md delete mode 100644 .changes/v2.20.0.md delete mode 100644 .changes/v2.20.1.md delete mode 100644 .changes/v2.21.0.md delete mode 100644 .changes/v2.22.0.md delete mode 100644 .changes/v2.23.0.md delete mode 100644 .changes/v2.24.0.md delete mode 100644 .changes/v2.24.1.md delete mode 100644 .changes/v2.24.2.md delete mode 100644 .changes/v2.24.3.md delete mode 100644 .changes/v2.25.0.md delete mode 100644 .changes/v2.25.1.md delete mode 100644 .changes/v2.25.2.md delete mode 100644 .changes/v2.25.3.md delete mode 100644 .changes/v2.25.4.md delete mode 100644 .changes/v2.26.0.md delete mode 100644 .changes/v2.26.1.md delete mode 100644 .changes/v2.27.0.md delete mode 100644 .changes/v2.27.1.md delete mode 100644 .changes/v2.27.2.md delete mode 100644 .changes/v2.28.0.md delete mode 100644 .changes/v2.28.1.md delete mode 100644 .changes/v2.28.2.md delete mode 100644 .changes/v2.29.0.md delete mode 100644 .changes/v2.29.1.md delete mode 100644 .changes/v2.29.2.md delete mode 100644 .changes/v2.29.3.md delete mode 100644 .changes/v2.29.4.md delete mode 100644 .changes/v2.29.5.md delete mode 100644 .changes/v2.3.0.md delete mode 100644 .changes/v2.30.0.md delete mode 100644 .changes/v2.30.1.md delete mode 100644 .changes/v2.30.2.md delete mode 100644 .changes/v2.31.0.md delete mode 100644 .changes/v2.31.2024061114.md delete mode 100644 .changes/v2.32.0.md delete mode 100644 .changes/v2.32.1.md delete mode 100644 .changes/v2.32.2.md delete mode 100644 .changes/v2.32.2024070910.md delete mode 100644 .changes/v2.32.3.md delete mode 100644 .changes/v2.33.2024073012.md delete mode 100644 .changes/v2.4.0.md delete mode 100644 .changes/v2.5.0.md delete mode 100644 .changes/v2.6.0.md delete mode 100644 .changes/v2.7.0.md delete mode 100644 .changes/v2.8.0.md delete mode 100644 .changes/v2.8.1.md delete mode 100644 .changes/v2.8.2.md delete mode 100644 .changes/v2.8.3.md delete mode 100644 .changes/v2.9.0.md delete mode 100644 .changes/v2.9.1.md diff --git a/.changes/0.1.0.md b/.changes/0.1.0.md new file mode 100644 index 0000000..1ee82c2 --- /dev/null +++ b/.changes/0.1.0.md @@ -0,0 +1,2 @@ +## 0.1.0 (2024-09-11) + diff --git a/.changes/unreleased/.gitkeep b/.changes/unreleased/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/.changes/unreleased/ENHANCEMENTS-20240911-122605.yaml b/.changes/unreleased/ENHANCEMENTS-20240911-122605.yaml new file mode 100644 index 0000000..416d7b3 --- /dev/null +++ b/.changes/unreleased/ENHANCEMENTS-20240911-122605.yaml @@ -0,0 +1,6 @@ +kind: ENHANCEMENTS +body: update opentofu ls 0.2.0 +time: 2024-09-11T12:26:05.5663+05:30 +custom: + Issue: "97" + Repository: opentofu-ls diff --git a/.changes/v0.1.1.md b/.changes/v0.1.1.md new file mode 100644 index 0000000..78064b4 --- /dev/null +++ b/.changes/v0.1.1.md @@ -0,0 +1,2 @@ +## 0.1.1 (2024-09-11) + diff --git a/.changes/v0.2.0-beta1.md b/.changes/v0.2.0-beta1.md new file mode 100644 index 0000000..1d1c728 --- /dev/null +++ b/.changes/v0.2.0-beta1.md @@ -0,0 +1,2 @@ +## 0.2.0-beta1 (2024-09-11) + diff --git a/.changes/v0.2.0.md b/.changes/v0.2.0.md new file mode 100644 index 0000000..f51e616 --- /dev/null +++ b/.changes/v0.2.0.md @@ -0,0 +1,2 @@ +## 0.2.0 (2024-09-11) + diff --git a/.changes/v0.2.1.md b/.changes/v0.2.1.md new file mode 100644 index 0000000..2dfc5b8 --- /dev/null +++ b/.changes/v0.2.1.md @@ -0,0 +1,2 @@ +## 0.2.1 (2024-09-11) + diff --git a/.changes/v2.0.0.md b/.changes/v2.0.0.md deleted file mode 100644 index b42cdcb..0000000 --- a/.changes/v2.0.0.md +++ /dev/null @@ -1,27 +0,0 @@ -## 2.0.0 (2020-06-10) - -The Terraform VSCode extension has [a new home at HashiCorp](https://www.hashicorp.com/blog/supporting-the-hashicorp-terraform-extension-for-visual-studio-code/)! We're integrating with a [new language server](https://github.com/hashicorp/terraform-ls) designed to create a stable integration with Terraform through public APIs. When you upgrade to v2.0.0, the new language server will be installed by default, and checking for updates automatically. - -Two commands have been added to manage the language server manually, which you can access via the [Command Palette](https://code.visualstudio.com/docs/getstarted/userinterface#_command-palette): "Terraform: Enable Language Server" and "Terraform: Disable Language Server". - -If you want to use a custom-built language server, it can be enabled with the Terraform extension setting "terraform.languageServer.pathToBinary". Include the full path and binary name. - -In this version, we've updated the syntax highlighting to work under Terraform 0.12. Errors that were seen in trying to read 0.12 files have also been eliminated. Highlighting and other core features will be partially compatible under 0.11 as well but continuing development will only focus on 0.12 and future versions. If you work in 0.11, you should [pin your extension to an earlier version](https://code.visualstudio.com/updates/v1_30#_install-previous-versions). - -Other updates: - -* Full-document formatting is provided through the language server and [can be configured](https://code.visualstudio.com/docs/editor/codebasics#_formatting) through user or workspace settings -* Added shortcuts (snippets) for variable and for_each syntax -- `fore`, `vare`, `varm` -* For contributors, the TypeScript testing and linting frameworks have been brought current with the recommended packages -* Logos now match the current brand guidelines (pretty snazzy!) -* Auto-completion, hover, and definition features are now managed by the language server, so see their [changelog](https://github.com/hashicorp/terraform-ls/blob/main/CHANGELOG.md) for the most recent updates -* External commands such as `terraform validate` and `tflint` are removed from the extension, but we plan to add hooks for these and/or additional integrations via the language server. -* The outline view and model overview have been removed for now in order to focus on core features - -### Previous Releases - -For information on prior major and minor releases, see their changelogs: - -* [v1.4.0 and earlier](https://github.com/hashicorp/vscode-terraform/blob/v1.4.0/CHANGELOG.md#140) -* [v0.0.23 and earlier](https://github.com/hashicorp/vscode-terraform/blob/0.0.23/CHANGELOG.md#0.0.23) - diff --git a/.changes/v2.0.1.md b/.changes/v2.0.1.md deleted file mode 100644 index d034646..0000000 --- a/.changes/v2.0.1.md +++ /dev/null @@ -1,6 +0,0 @@ -## 2.0.1 (2020-06-10) - -BUG FIXES: - -Fix for Marketplace listing issue - diff --git a/.changes/v2.0.2.md b/.changes/v2.0.2.md deleted file mode 100644 index 2cf0458..0000000 --- a/.changes/v2.0.2.md +++ /dev/null @@ -1,6 +0,0 @@ -## 2.0.2 (2020-06-23) - -BUG FIXES: - -* Hide language server output window to prevent stealing focus ([#408](https://github.com/hashicorp/vscode-terraform/pulls/408)) - diff --git a/.changes/v2.1.0.md b/.changes/v2.1.0.md deleted file mode 100644 index d31ef00..0000000 --- a/.changes/v2.1.0.md +++ /dev/null @@ -1,9 +0,0 @@ -## 2.1.0 (2020-07-14) - -ENHANCEMENTS: - -* Verify shasum of language server binary on install ([#414](https://github.com/hashicorp/vscode-terraform/pulls/414)) -* Add link to language server changelog on completed install ([#424](https://github.com/hashicorp/vscode-terraform/pulls/424)) -* Add syntax for object and tuple structural types ([#428](https://github.com/hashicorp/vscode-terraform/pulls/428)) -* Add setting for workspace root module configuration ([#423](https://github.com/hashicorp/vscode-terraform/pulls/423)) - diff --git a/.changes/v2.1.1.md b/.changes/v2.1.1.md deleted file mode 100644 index 192c1f0..0000000 --- a/.changes/v2.1.1.md +++ /dev/null @@ -1,6 +0,0 @@ -## 2.1.1 (2020-07-15) - -BUG FIXES: - -* Fix race in shasum verification ([#438](https://github.com/hashicorp/vscode-terraform/pulls/438)) - diff --git a/.changes/v2.10.0.md b/.changes/v2.10.0.md deleted file mode 100644 index cd5e5eb..0000000 --- a/.changes/v2.10.0.md +++ /dev/null @@ -1,6 +0,0 @@ -## 2.10.0 (2021-04-13) - -ENHANCEMENTS: - -* Update syntax highlighting for Terraform 0.15 ([#604](https://github.com/hashicorp/vscode-terraform/pulls/604)) - diff --git a/.changes/v2.10.1.md b/.changes/v2.10.1.md deleted file mode 100644 index 29c19ee..0000000 --- a/.changes/v2.10.1.md +++ /dev/null @@ -1,6 +0,0 @@ -## 2.10.1 (2021-04-28) - -BUG FIXES: - -* Update js-releases dependency to resolve security issue [HCSEC-2021-12](https://discuss.hashicorp.com/t/hcsec-2021-12-codecov-security-event-and-hashicorp-gpg-key-exposure/23512) ([#612](https://github.com/hashicorp/vscode-terraform/pulls/612)) - diff --git a/.changes/v2.10.2.md b/.changes/v2.10.2.md deleted file mode 100644 index 8fd442c..0000000 --- a/.changes/v2.10.2.md +++ /dev/null @@ -1,6 +0,0 @@ -## 2.10.2 (2021-05-03) - -BUG FIXES: - -* Correct delay for language server version check ([#620](https://github.com/hashicorp/vscode-terraform/pulls/620)) - diff --git a/.changes/v2.11.0.md b/.changes/v2.11.0.md deleted file mode 100644 index 76ac864..0000000 --- a/.changes/v2.11.0.md +++ /dev/null @@ -1,7 +0,0 @@ -## 2.11.0 (2021-05-18) - -BUG FIXES: - -* Reorder functions to prioritize abspath highlight ([#630](https://github.com/hashicorp/vscode-terraform/pulls/630)) -* Only trigger language server auto update once ([#623](https://github.com/hashicorp/vscode-terraform/pulls/623)) - diff --git a/.changes/v2.12.0.md b/.changes/v2.12.0.md deleted file mode 100644 index 263170e..0000000 --- a/.changes/v2.12.0.md +++ /dev/null @@ -1,10 +0,0 @@ -## 2.12.0 (2021-06-08) - -BUG FIXES: - - - Avoid launching more servers if server supports multiple folders ([#654](https://github.com/hashicorp/vscode-terraform/pulls/654)) - -INTERNAL: - - - Rename `rootModules` command to `module.callers` ([#633](https://github.com/hashicorp/vscode-terraform/pulls/633)) - diff --git a/.changes/v2.12.1.md b/.changes/v2.12.1.md deleted file mode 100644 index 14bc86e..0000000 --- a/.changes/v2.12.1.md +++ /dev/null @@ -1,6 +0,0 @@ -## 2.12.1 (2021-06-11) - -BUG FIXES: - - - Avoid duplicate language clients for non-multi-folder setup ([#663](https://github.com/hashicorp/vscode-terraform/pulls/663)) - diff --git a/.changes/v2.13.0.md b/.changes/v2.13.0.md deleted file mode 100644 index ffe2468..0000000 --- a/.changes/v2.13.0.md +++ /dev/null @@ -1,6 +0,0 @@ -## 2.13.0 (2021-06-23) - -FEATURES: - - - Add support for Terraform variable files (`tfvars`) ([#661](https://github.com/hashicorp/vscode-terraform/pulls/661)) - diff --git a/.changes/v2.13.1.md b/.changes/v2.13.1.md deleted file mode 100644 index f1b586d..0000000 --- a/.changes/v2.13.1.md +++ /dev/null @@ -1,6 +0,0 @@ -## 2.13.1 (2021-07-16) - -BUG FIXES: - - - Fix DocumentSelector for multi-folder workspace ([#688](https://github.com/hashicorp/vscode-terraform/pulls/688)) - diff --git a/.changes/v2.13.2.md b/.changes/v2.13.2.md deleted file mode 100644 index 5ccfbba..0000000 --- a/.changes/v2.13.2.md +++ /dev/null @@ -1,6 +0,0 @@ -## 2.13.2 (2021-07-19) - -BUG FIXES: - - - Fix language server update logic ([#690](https://github.com/hashicorp/vscode-terraform/pulls/690)) - diff --git a/.changes/v2.14.0.md b/.changes/v2.14.0.md deleted file mode 100644 index 58a7d8e..0000000 --- a/.changes/v2.14.0.md +++ /dev/null @@ -1,16 +0,0 @@ -## 2.14.0 (2021-07-22) - -FEATURES: - - - Register command to show references ([#686](https://github.com/hashicorp/vscode-terraform/pulls/686)) - -ENHANCEMENTS: - - - Install native LS build for Apple Silicon (darwin/arm64) ([#563](https://github.com/hashicorp/vscode-terraform/pulls/563)) - - Add semver based version pin for Language Server via `requiredVersion` config option ([#656](https://github.com/hashicorp/vscode-terraform/pulls/656)) - - Improve error handling ([#691](https://github.com/hashicorp/vscode-terraform/pulls/691)) - -BUG FIXES: - - - fix: launch LS even if path contains escapable characters ([#694](https://github.com/hashicorp/vscode-terraform/pulls/694)) - diff --git a/.changes/v2.15.0.md b/.changes/v2.15.0.md deleted file mode 100644 index 422d755..0000000 --- a/.changes/v2.15.0.md +++ /dev/null @@ -1,13 +0,0 @@ -## 2.15.0 (2021-09-22) - -ENHANCEMENTS: - - - Add support for language server side config option `terraformExecPath` ([#741](https://github.com/hashicorp/vscode-terraform/pulls/741)) - - Add support for language server side config option `terraformExecTimeout` ([#741](https://github.com/hashicorp/vscode-terraform/pulls/741)) - - Add support for language server side config option `terraformLogFilePath` ([#741](https://github.com/hashicorp/vscode-terraform/pulls/741)) - -BUG FIXES: - - - fix: avoid tracking client which is not ready yet ([#778](https://github.com/hashicorp/vscode-terraform/pulls/778)) - - fix: avoid considering output panes as editors ([#771](https://github.com/hashicorp/vscode-terraform/pulls/771)) - diff --git a/.changes/v2.16.0.md b/.changes/v2.16.0.md deleted file mode 100644 index 3781c80..0000000 --- a/.changes/v2.16.0.md +++ /dev/null @@ -1,12 +0,0 @@ -## 2.16.0 (2021-10-14) - -ENHANCEMENTS: - - - Add module calls view to Explorer pane ([#746](https://github.com/hashicorp/vscode-terraform/pulls/746)) - - Add experimental `prefillRequiredFields` feature ([#799](https://github.com/hashicorp/vscode-terraform/pulls/799)) - - Install LS into dedicated persistent global storage (to avoid the need for LS reinstallation upon extension upgrade) ([#811](https://github.com/hashicorp/vscode-terraform/pulls/811)) - -INTERNAL: - - - deps: bump vscode-extension-telemetry to 0.4.2 ([#790](https://github.com/hashicorp/vscode-terraform/pulls/790)) - diff --git a/.changes/v2.17.0.md b/.changes/v2.17.0.md deleted file mode 100644 index da094fc..0000000 --- a/.changes/v2.17.0.md +++ /dev/null @@ -1,20 +0,0 @@ -## 2.17.0 (2021-12-02) - -ENHANCEMENTS: - - - Add new setting which toggles displaying reference counts above top level blocks and attributes ([#837](https://github.com/hashicorp/vscode-terraform/pull/837)) - - Add support for language server side config option `ignoreDirectoryNames` ([#833](https://github.com/hashicorp/vscode-terraform/pull/833)) - - Add module providers view to Explorer pane ([#850](https://github.com/hashicorp/vscode-terraform/pull/850)) - - Process telemetry from the language server ([#823](https://github.com/hashicorp/vscode-terraform/pull/823)) - - Add a new command for generating bug reports ([#851](https://github.com/hashicorp/vscode-terraform/pull/851)) - -BUG FIXES: - - - Fix Terraform status bar not being displayed ([#857](https://github.com/hashicorp/vscode-terraform/pull/857)) - -INTERNAL: - - - Refactor extension to only use one LanguageClient per workspace ([#845](https://github.com/hashicorp/vscode-terraform/pull/845)) - - Stop exposing a public extension API ([#858](https://github.com/hashicorp/vscode-terraform/pull/858)) - - deps: bump vscode-extension-telemetry to 0.4.3 ([#846](https://github.com/hashicorp/vscode-terraform/pull/846)) - diff --git a/.changes/v2.18.0.md b/.changes/v2.18.0.md deleted file mode 100644 index 65d1829..0000000 --- a/.changes/v2.18.0.md +++ /dev/null @@ -1,15 +0,0 @@ -## 2.18.0 (2022-01-07) - -ENHANCEMENTS: - - - Improve language server installation ([#868](https://github.com/hashicorp/vscode-terraform/pull/868)) - - Make reference count code lens opt-in (disabled by default) ([#893](https://github.com/hashicorp/vscode-terraform/pull/893)) - -BUG FIXES: - - - Fix Terraform file detection ([#870](https://github.com/hashicorp/vscode-terraform/pull/870)) - -INTERNAL: - - - deps: bump vscode-extension-telemetry to 0.4.4 ([#884](https://github.com/hashicorp/vscode-terraform/pull/884)) - diff --git a/.changes/v2.19.0.md b/.changes/v2.19.0.md deleted file mode 100644 index 4daf16c..0000000 --- a/.changes/v2.19.0.md +++ /dev/null @@ -1,20 +0,0 @@ -## 2.19.0 (2022-01-20) - -NOTES: - - - Deprecate terraform.languageServer.requiredVersion [#903](https://github.com/hashicorp/vscode-terraform/pull/903) - -ENHANCEMENTS: - - - Update telemetry configuration documentation [#894](https://github.com/hashicorp/vscode-terraform/pull/894) - -INTERNAL: - - - deps: Update to Node 16 and VS Code 1.61 [#904](https://github.com/hashicorp/vscode-terraform/pull/904) - - deps: Bump @vscode/test-electron from 2.0.1 to 2.0.3 [#899](https://github.com/hashicorp/vscode-terraform/pull/899) - - deps: Bump jest from 27.4.6 to 27.4.7 [#892](https://github.com/hashicorp/vscode-terraform/pull/892) - - deps: Update actions/setup-node to v2 [#897](https://github.com/hashicorp/vscode-terraform/pull/897) - - deps: Update eslint and minimal ruleset [#896](https://github.com/hashicorp/vscode-terraform/pull/896) - - Test VS Code Version Matrix [#886](https://github.com/hashicorp/vscode-terraform/pull/886) - - Ignore jest config when packaging [#895](https://github.com/hashicorp/vscode-terraform/pull/895) - diff --git a/.changes/v2.2.0.md b/.changes/v2.2.0.md deleted file mode 100644 index 936becb..0000000 --- a/.changes/v2.2.0.md +++ /dev/null @@ -1,17 +0,0 @@ -## 2.2.0 (2020-08-20) - -ENHANCEMENTS: - -* Perform PGP verification of zip/shasums ([#450](https://github.com/hashicorp/vscode-terraform/pulls/450)) -* Upgrade LS client library to major version 6 ([#454](https://github.com/hashicorp/vscode-terraform/pulls/454)) -* Add multi-folder workspace support ([#448](https://github.com/hashicorp/vscode-terraform/pulls/448)) -* Ensure downloaded zips are deleted ([#464](https://github.com/hashicorp/vscode-terraform/pulls/464)) -* Add configuration to exclude root modules ([#446](https://github.com/hashicorp/vscode-terraform/pulls/446)) - -BUG FIXES: - -* Refactor and fix install bugs ([#444](https://github.com/hashicorp/vscode-terraform/pulls/444)) -* Fix block syntax labels ([#458](https://github.com/hashicorp/vscode-terraform/pulls/458)) -* Fix parenthesis syntax error ([#459](https://github.com/hashicorp/vscode-terraform/pulls/459)) -* Fix syntax highlighting for object expressions ([#462](https://github.com/hashicorp/vscode-terraform/pulls/462)) - diff --git a/.changes/v2.2.1.md b/.changes/v2.2.1.md deleted file mode 100644 index 701aacd..0000000 --- a/.changes/v2.2.1.md +++ /dev/null @@ -1,6 +0,0 @@ -## 2.2.1 (2020-08-24) - -BUG FIXES: - -* Fix object key syntax highlighting ([#475](https://github.com/hashicorp/vscode-terraform/pulls/475)) - diff --git a/.changes/v2.2.2.md b/.changes/v2.2.2.md deleted file mode 100644 index ffdc237..0000000 --- a/.changes/v2.2.2.md +++ /dev/null @@ -1,6 +0,0 @@ -## 2.2.2 (2020-08-25) - -BUG FIXES: - -* Fix additional object key matching issues ([#478](https://github.com/hashicorp/vscode-terraform/pulls/478)) - diff --git a/.changes/v2.2.3.md b/.changes/v2.2.3.md deleted file mode 100644 index d25c1f5..0000000 --- a/.changes/v2.2.3.md +++ /dev/null @@ -1,6 +0,0 @@ -## 2.2.3 (2020-09-03) - -BUG FIXES: - -* Update object syntax highlighting to fix unmatched cases ([#485](https://github.com/hashicorp/vscode-terraform/pulls/485)) - diff --git a/.changes/v2.20.0.md b/.changes/v2.20.0.md deleted file mode 100644 index 5322f63..0000000 --- a/.changes/v2.20.0.md +++ /dev/null @@ -1,34 +0,0 @@ -## 2.20.0 (2022-03-01) - -ENHANCEMENTS: - - - Publish Platform Specific Extension [#905](https://github.com/hashicorp/vscode-terraform/pull/905) - - Update list/map syntax highlighting [#918](https://github.com/hashicorp/vscode-terraform/pull/918) - - Improve comment detection [#935](https://github.com/hashicorp/vscode-terraform/pull/935) - - Highlight block label as "enumMember" & highlight unquoted labels [#943](https://github.com/hashicorp/vscode-terraform/pull/943) - - Add new scope for block type and name [#934](https://github.com/hashicorp/vscode-terraform/pull/934) - - Resolve issue with tfvars comment toggling [#937](https://github.com/hashicorp/vscode-terraform/pull/937) - - Improve Extension Documentation [#942](https://github.com/hashicorp/vscode-terraform/pull/942) - -BUG FIXES: - - - Fix Nested Map Highlighting [#925](https://github.com/hashicorp/vscode-terraform/pull/925) - - Fix npm run syntax tests [#928](https://github.com/hashicorp/vscode-terraform/pull/928) - - Move TextMate scope.terraform to source.terraform [#921](https://github.com/hashicorp/vscode-terraform/pull/921) - - Fix highlighting for attribute access with a dash [#933](https://github.com/hashicorp/vscode-terraform/pull/933) - - Fix highlighting for nested expression syntax [#940](https://github.com/hashicorp/vscode-terraform/pull/940) - - Update description for log file argument [#945](https://github.com/hashicorp/vscode-terraform/pull/945) - -INTERNAL: - - - deps: Update vsce, mocha, and node-fetch [#908](https://github.com/hashicorp/vscode-terraform/pull/908) - - deps: Update vsce to 2.6.6 [#916](https://github.com/hashicorp/vscode-terraform/pull/916) - - Fix preview publish trigger [#910](https://github.com/hashicorp/vscode-terraform/pull/910) - - Manual Preview release workflow dispatch [#911](https://github.com/hashicorp/vscode-terraform/pull/911) - - Terraform TextMate Test Infrastructure [#912](https://github.com/hashicorp/vscode-terraform/pull/912) - - Add Terraform language tmgrammar snapshots [#914](https://github.com/hashicorp/vscode-terraform/pull/914) - - Run syntax tests on all snapshot files [#917](https://github.com/hashicorp/vscode-terraform/pull/917) - - Run syntax tests when grammar changes [#922](https://github.com/hashicorp/vscode-terraform/pull/922) - - deps: Update to @vscode/extension-telemetry [#939](https://github.com/hashicorp/vscode-terraform/pull/) - - Fix ignore markdown files [#946](https://github.com/hashicorp/vscode-terraform/pull/946) - diff --git a/.changes/v2.20.1.md b/.changes/v2.20.1.md deleted file mode 100644 index 657bf70..0000000 --- a/.changes/v2.20.1.md +++ /dev/null @@ -1,32 +0,0 @@ -## 2.20.1 (2022-03-17) - -BUG FIXES: - - - Advertise proper execution location [#989](https://github.com/hashicorp/vscode-terraform/pull/989) - -INTERNAL: - - - deps: Bump jest from 27.4.7 to 27.5.1 [#951](https://github.com/hashicorp/vscode-terraform/pull/951) - - deps: Bump @types/node from 16.11.22 to 16.11.26 [#948](https://github.com/hashicorp/vscode-terraform/pull/948) - - deps: Bump eslint-config-prettier from 8.3.0 to 8.5.0 [#957](https://github.com/hashicorp/vscode-terraform/pull/957) - - deps: Bump esbuild from 0.14.17 to 0.14.25 [#967](https://github.com/hashicorp/vscode-terraform/pull/967) - - deps: Bump @types/jest from 27.4.0 to 27.4.1 [#970](https://github.com/hashicorp/vscode-terraform/pull/970) - - deps: Bump mocha from 9.2.0 to 9.2.1 [#969](https://github.com/hashicorp/vscode-terraform/pull/969) - - deps: Bump @typescript-eslint/parser from 5.10.2 to 5.13.0 [#971](https://github.com/hashicorp/vscode-terraform/pull/971) - - deps: Bump @vscode/test-electron from 2.1.1 to 2.1.2 [#972](https://github.com/hashicorp/vscode-terraform/pull/972) - - deps: Bump vsce from 2.6.6 to 2.6.7 [#976](https://github.com/hashicorp/vscode-terraform/pull/976) - - deps: Bump @types/vscode from 1.63.2 to 1.65.0 [#959](https://github.com/hashicorp/vscode-terraform/pull/959) - - deps: Bump @typescript-eslint/eslint-plugin from 5.10.2 to 5.13.0 [#977](https://github.com/hashicorp/vscode-terraform/pull/977) - - deps: Bump ts-node from 10.4.0 to 10.7.0 [#981](https://github.com/hashicorp/vscode-terraform/pull/981) - - deps: Bump eslint from 8.8.0 to 8.10.0 [#974](https://github.com/hashicorp/vscode-terraform/pull/974) - - deps: Bump @vscode/test-electron from 2.1.2 to 2.1.3 [#984](https://github.com/hashicorp/vscode-terraform/pull/984) - - deps: Bump typescript from 4.5.5 to 4.6.2 [#973](https://github.com/hashicorp/vscode-terraform/pull/973) - - deps: Bump @typescript-eslint/eslint-plugin from 5.13.0 to 5.14.0 [#986](https://github.com/hashicorp/vscode-terraform/pull/986) - - deps: Bump @typescript-eslint/parser from 5.13.0 to 5.14.0 [#985](https://github.com/hashicorp/vscode-terraform/pull/985) - - deps: Bump eslint from 8.10.0 to 8.11.0 [#991](https://github.com/hashicorp/vscode-terraform/pull/991) - - deps: Bump vsce from 2.6.7 to 2.7.0 [#992](https://github.com/hashicorp/vscode-terraform/pull/992) - - deps: Bump mocha from 9.2.1 to 9.2.2 [#993](https://github.com/hashicorp/vscode-terraform/pull/993) - - deps: Bump esbuild from 0.14.25 to 0.14.27 [#995](https://github.com/hashicorp/vscode-terraform/pull/995) - - deps: Bump @typescript-eslint/eslint-plugin from 5.14.0 to 5.15.0 [#994](https://github.com/hashicorp/vscode-terraform/pull/994) - - deps: Bump @typescript-eslint/parser from 5.14.0 to 5.15.0 [#996](https://github.com/hashicorp/vscode-terraform/pull/996) - diff --git a/.changes/v2.21.0.md b/.changes/v2.21.0.md deleted file mode 100644 index 5c768a8..0000000 --- a/.changes/v2.21.0.md +++ /dev/null @@ -1,25 +0,0 @@ -## 2.21.0 (2022-03-21) - -ENHANCEMENTS: - - - Introduce go-to-variable from `tfvars` files ([terraform-ls#727](https://github.com/hashicorp/terraform-ls/pull/727)) - - Automatically refresh semantic tokens for more reliable highlighting ([terraform-ls#630](https://github.com/hashicorp/terraform-ls/pull/630)) - - Enhance semantic highlighting of block labels ([terraform-ls#802](https://github.com/hashicorp/terraform-ls/pull/802)) - - Enable completion, hover, go-to-definition/reference etc. for Terraform Registry modules ([terraform-ls#808](https://github.com/hashicorp/terraform-ls/pull/808)) - - Report dependent semantic highlighting modifiers as `defaultLibrary` (instead of `modification`) ([terraform-ls#817](https://github.com/hashicorp/terraform-ls/pull/817)) - - Semantically highlight type declarations in variable `type` ([terraform-ls#827](https://github.com/hashicorp/terraform-ls/pull/827)) - - Decouple highlighting Terraform grammar to `hashicorp/syntax` [`v0.1.0`](https://github.com/hashicorp/syntax/releases/tag/v0.1.0) & [`v0.2.0`](https://github.com/hashicorp/syntax/releases/tag/v0.2.0) ([#1004](https://github.com/hashicorp/vscode-terraform/pull/1004)) - -BUG FIXES: - - - Address race conditions typically surfaced as "out of range" errors, lack of completion/hover/etc. data or data associated with wrong position within the document ([terraform-ls#782](https://github.com/hashicorp/terraform-ls/pull/782)) - - Fix broken validate on save ([terraform-ls#799](https://github.com/hashicorp/terraform-ls/pull/799)) - - Fix encoding of unknown semantic token types ([terraform-ls#815](https://github.com/hashicorp/terraform-ls/pull/815)) - - Fix missing references for some blocks in a separate config file ([terraform-ls#829](https://github.com/hashicorp/terraform-ls/pull/829)) - -INTERNAL: - - - Bump terraform-ls to [`v0.26.0`](https://github.com/hashicorp/terraform-ls/releases/tag/v0.26.0) ([#1002](https://github.com/hashicorp/vscode-terraform/pull/1002)) - - Bump @hashicorp/js-releases from 1.4.0 to 1.5.1 ([#1001](https://github.com/hashicorp/vscode-terraform/pull/1001)) - - Bump @vscode/extension-telemetry from 0.4.9 to 0.4.10 ([#1003](https://github.com/hashicorp/vscode-terraform/pull/1003)) - diff --git a/.changes/v2.22.0.md b/.changes/v2.22.0.md deleted file mode 100644 index 19ad8cb..0000000 --- a/.changes/v2.22.0.md +++ /dev/null @@ -1,37 +0,0 @@ -## 2.22.0 (2022-04-19) - -BREAKING CHANGES: - - - Remove terraform.languageServer.requiredVersion ([#1021](https://github.com/hashicorp/vscode-terraform/pull/1021)) - - Remove terraform.languageServer.trace.server ([#1048](https://github.com/hashicorp/vscode-terraform/pull/1048)) - -NOTES: - - - Deprecate maxNumberOfProblems ([#1010](https://github.com/hashicorp/vscode-terraform/pull/1010)) - - Deprecate terraform-ls.rootmodule and terraform-ls.excludeRootModules ([#1049](https://github.com/hashicorp/vscode-terraform/pull/1049)) - -ENHANCEMENTS: - - - Support custom semantic tokens & modifiers ([#958](https://github.com/hashicorp/vscode-terraform/pull/958)) / [terraform-ls#833](https://github.com/hashicorp/terraform-ls/pull/833)) - - Enable 'go to module source' for local modules ([terraform-ls#849](https://github.com/hashicorp/terraform-ls/pull/849)) - - Enable opening a single Terraform file ([terraform-ls#843](https://github.com/hashicorp/terraform-ls/pull/843))/ ([#1031](https://github.com/hashicorp/vscode-terraform/pull/1031)) - - Organize extension settings into Sections ([#1024](https://github.com/hashicorp/vscode-terraform/pull/1024)) - - Prevent preview from activating when stable is enabled ([#1032](https://github.com/hashicorp/vscode-terraform/pull/1032)) - -BUG FIXES: - - - Add missing descriptions to semantic token types & modifiers ([#1039](https://github.com/hashicorp/vscode-terraform/pull/1039)) - - Avoid hanging when workspace contains >50 folders ([terraform-ls#839](https://github.com/hashicorp/terraform-ls/pull/839)) - - Make loading of parent directory after lower level directories work ([terraform-ls#851](https://github.com/hashicorp/terraform-ls/pull/851)) - - Fix corrupted diffs in formatting responses ([terraform-ls#876](https://github.com/hashicorp/terraform-ls/pull/876)) - - Fix Module View for Registry modules installed by Terraform v1.1+ ([terraform-ls#872](https://github.com/hashicorp/terraform-ls/pull/872)) - -INTERNAL: - - - Format semantic token settings ([#1019](https://github.com/hashicorp/vscode-terraform/pull/1019)) - - Disable naming convention warning for Code Action identifier ([#1036](https://github.com/hashicorp/vscode-terraform/pull/1036)) - - Add CODEOWNERS file ([#1038](https://github.com/hashicorp/vscode-terraform/pull/1038)) - - Fix LANGUAGE_SERVER_VERSION test in preview script ([#1034](https://github.com/hashicorp/vscode-terraform/pull/1034)) - - Github Release Notes Generator file ([#1051](https://github.com/hashicorp/vscode-terraform/pull/1051)) - - Bump terraform-ls from 0.26.0 to 0.27.0 ([#1060](https://github.com/hashicorp/vscode-terraform/pull/1060)) - diff --git a/.changes/v2.23.0.md b/.changes/v2.23.0.md deleted file mode 100644 index 33fc32c..0000000 --- a/.changes/v2.23.0.md +++ /dev/null @@ -1,30 +0,0 @@ -## 2.23.0 (2022-06-09) - -NOTES: - - - Remove `terraform.languageServer.maxNumberOfProblems`. This setting is not used by the extension as of v2.0.0. ([#1062](https://github.com/hashicorp/vscode-terraform/pull/1062)) - -ENHANCEMENTS: - - - Link to documentation from module source for Registry modules ([#673](https://github.com/hashicorp/vscode-terraform/issues/673) / [terraform-ls#874](https://github.com/hashicorp/terraform-ls/pull/874)) - - Improve performance by reducing amount of notifications sent for any single module changes ([terraform-ls#931](https://github.com/hashicorp/terraform-ls/pull/931)) - - Automatically refresh Providers view when providers change in open document ([#1084](https://github.com/hashicorp/vscode-terraform/pull/1084)) / [terraform-ls#902](https://github.com/hashicorp/terraform-ls/pull/902)) - - Automatically refresh Module Calls view when module calls change in open document ([#1088](https://github.com/hashicorp/vscode-terraform/pull/1088) / [terraform-ls#909](https://github.com/hashicorp/terraform-ls/pull/909)) - - Add Module Providers view refresh button ([#1065](https://github.com/hashicorp/vscode-terraform/pull/1065)) - - Use theme-universal icon with solid background ([#1119](https://github.com/hashicorp/vscode-terraform/pull/1119)) - - Watch `**/*.tf` & `**/*.tfvars` by default such that changes outside the editor (e.g. when changing git branch) can be reflected ([#1095](https://github.com/hashicorp/vscode-terraform/pull/1095) / [terraform-ls#790](https://github.com/hashicorp/terraform-ls/pull/790)) - -BUG FIXES: - - - Variables with no space between them break syntax highlighting ([syntax#34](https://github.com/hashicorp/syntax/pull/34)) - - Fix parsing block with dash in name ([syntax#42](https://github.com/hashicorp/syntax/pull/42)) - - Fix highlighting of `.0`, `.*` attribute access and `[*]` brackets ([syntax#44](https://github.com/hashicorp/syntax/pull/44)) - -INTERNAL: - - - Organize Static Features ([#1073](https://github.com/hashicorp/vscode-terraform/pull/1073)) - - Move utility functions to dedicated space ([#1074](https://github.com/hashicorp/vscode-terraform/pull/1074)) - - Remove command prefix ([#1075](https://github.com/hashicorp/vscode-terraform/pull/1075)) - - Optimize main entry point execution path ([#1079](https://github.com/hashicorp/vscode-terraform/pull/1079)) - - Extract LanguageClient from ClientHandler ([#1082](https://github.com/hashicorp/vscode-terraform/pull/1082)) - diff --git a/.changes/v2.24.0.md b/.changes/v2.24.0.md deleted file mode 100644 index a479479..0000000 --- a/.changes/v2.24.0.md +++ /dev/null @@ -1,56 +0,0 @@ -## 2.24.0 (2022-08-23) - -BREAKING CHANGES: - - - Raise minimum VS Code version from 1.61.1 to 1.65.2 ([#1176](https://github.com/hashicorp/vscode-terraform/pull/1176)) - - Add migration wizard to aid migrating [extension settings](https://github.com/hashicorp/vscode-terraform/blob/v2.24.0/docs/settings-migration.md) to follow VS Code setting naming conventions and align better with the naming convention of language server settings ([#1156](https://github.com/hashicorp/vscode-terraform/pull/1156), [#1193](https://github.com/hashicorp/vscode-terraform/pull/1193)) - - Setting [`terraform.languageServer`](https://github.com/hashicorp/vscode-terraform/blob/v2.24.0/docs/settings-migration.md) block has been extracted out to individual settings ([#1156](https://github.com/hashicorp/vscode-terraform/pull/1156), [#1193](https://github.com/hashicorp/vscode-terraform/pull/1193)) - - Setting [`terraform.languageServer.external`](https://github.com/hashicorp/vscode-terraform/blob/v2.24.0/docs/settings-migration.md) has been renamed to `terraform.languageServer.enable` ([#1156](https://github.com/hashicorp/vscode-terraform/pull/1156), [#1193](https://github.com/hashicorp/vscode-terraform/pull/1193)) - - Setting [`terraform.languageServer.pathToBinary`](https://github.com/hashicorp/vscode-terraform/blob/v2.24.0/docs/settings-migration.md) has been renamed to `terraform.languageServer.path` ([#1156](https://github.com/hashicorp/vscode-terraform/pull/1156), [#1193](https://github.com/hashicorp/vscode-terraform/pull/1193)) - - Setting [`terraform-ls.terraformExecPath`](https://github.com/hashicorp/vscode-terraform/blob/v2.24.0/docs/settings-migration.md) has been renamed to `terraform.languageServer.terraform.path` ([#1156](https://github.com/hashicorp/vscode-terraform/pull/1156), [#1193](https://github.com/hashicorp/vscode-terraform/pull/1193)) - - Setting [`terraform-ls.terraformExecTimeout`](https://github.com/hashicorp/vscode-terraform/blob/v2.24.0/docs/settings-migration.md) has been renamed to `terraform.languageServer.terraform.timeout` ([#1156](https://github.com/hashicorp/vscode-terraform/pull/1156), [#1193](https://github.com/hashicorp/vscode-terraform/pull/1193)) - - Setting [`terraform-ls.terraformExecLogFilePath`](https://github.com/hashicorp/vscode-terraform/blob/v2.24.0/docs/settings-migration.md) has been renamed to `terraform.languageServer.terraform.logFilePath` ([#1156](https://github.com/hashicorp/vscode-terraform/pull/1156), [#1193](https://github.com/hashicorp/vscode-terraform/pull/1193)) - - Setting [`terraform-ls.rootModules`](https://github.com/hashicorp/vscode-terraform/blob/v2.24.0/docs/settings-migration.md) has been deprecated and is ignored. Users should instead leverage the VS Code workspace functionality and add the folder to a workspace to be indexed ([#1003](https://github.com/hashicorp/terraform-ls/pull/1003)) - - Setting [`terraform-ls.excludeModulePaths`](https://github.com/hashicorp/vscode-terraform/blob/v2.24.0/docs/settings-migration.md) has been renamed to `terraform.languageServer.indexing.ignorePaths` ([#1003](https://github.com/hashicorp/terraform-ls/pull/1003)) - - Setting [`terraform-ls.ignoreDirectoryNames`](https://github.com/hashicorp/vscode-terraform/blob/v2.24.0/docs/settings-migration.md) has been renamed to `terraform.languageServer.indexing.ignoreDirectoryNames` ([#1156](https://github.com/hashicorp/vscode-terraform/pull/1156), [#1193](https://github.com/hashicorp/vscode-terraform/pull/1193)) - - Setting [`terraform.experimentalFeatures`](https://github.com/hashicorp/vscode-terraform/blob/v2.24.0/docs/settings-migration.md) setting block has been extracted out to individual settings ([#1156](https://github.com/hashicorp/vscode-terraform/pull/1156), [#1193](https://github.com/hashicorp/vscode-terraform/pull/1193)) - - Set proper scope for machine based extension settings ([#1164](https://github.com/hashicorp/vscode-terraform/pull/1164)) - -ENHANCEMENTS: - - - Use dark extension icon for preview extension ([#1143](https://github.com/hashicorp/vscode-terraform/pull/1143)) - - Introduce support for extension connecting to LSP over TCP, with port configurable via `terraform.languageServer.tcp.port` ([#755](https://github.com/hashicorp/vscode-terraform/pull/755)) - - New Terraform View side bar ([#1171](https://github.com/hashicorp/vscode-terraform/pull/1171)) - - Only show language server related commands when they're relevant ([#1178](https://github.com/hashicorp/vscode-terraform/pull/1178)) - - Replace internal watcher (used for watching changes in installed plugins and modules) with LSP dynamic capability registration & `workspace/didChangeWatchedFiles`. This should lead to improved performance in most cases. ([terraform-ls#953](https://github.com/hashicorp/terraform-ls/pull/953)) - - Provide completion, hover and docs links for uninitialized Registry modules ([terraform-ls#924](https://github.com/hashicorp/terraform-ls/pull/924)) - - Provide basic IntelliSense (except for diagnostics) for hidden `*.tf` files ([terraform-ls#971](https://github.com/hashicorp/terraform-ls/pull/971)) - - Introduce v1.1 `terraform` `cloud` block ([terraform-schema#117](https://github.com/hashicorp/terraform-schema/pull/117)) - - Introduce v1.1 `moved` block ([terraform-schema#121](https://github.com/hashicorp/terraform-schema/pull/121)) - - Introduce v1.2 `lifecycle` conditions ([terraform-schema#115](https://github.com/hashicorp/terraform-schema/pull/115)) - - Introduce v1.2 `lifecycle` `replace_triggered_by` ([terraform-schema#123](https://github.com/hashicorp/terraform-schema/pull/123)) - - Use `module` declarations from parsed configuration as source of truth for `module.calls` ([terraform-ls#987](https://github.com/hashicorp/terraform-ls/pull/987)) - - Index uninitialized modules ([terraform-ls#997](https://github.com/hashicorp/terraform-ls/pull/997)) - - Recognize inputs and outputs of uninitialized local modules ([terraform-ls#598](https://github.com/hashicorp/terraform-ls/issues/598)) - - Enable go to module output declaration from reference ([terraform-ls#1007](https://github.com/hashicorp/terraform-ls/issues/1007)) - - New option [`indexing.ignorePaths`](https://github.com/hashicorp/terraform-ls/blob/v0.29.0/docs/SETTINGS.md#ignorepaths-string) was introduced ([terraform-ls#1003](https://github.com/hashicorp/terraform-ls/pull/1003), [terraform-ls#1010](https://github.com/hashicorp/terraform-ls/pull/1010)) - - Introduce `module.terraform` custom LSP command to expose Terraform requirements & version ([terraform-ls#1016](https://github.com/hashicorp/terraform-ls/pull/1016)) - - Avoid obtaining schema via Terraform CLI if the same version is already cached (based on plugin lock file) ([terraform-ls#1014](https://github.com/hashicorp/terraform-ls/pull/1014)) - - Complete module source and version attributes for local and registry modules ([#1024](https://github.com/hashicorp/terraform-ls/pull/1024)) - -BUG FIXES: - - - Ensure extension is installed in remote contexts automatically ([#1163](https://github.com/hashicorp/vscode-terraform/pull/1163)) - - Return partially parsed metadata from `module.providers` ([terraform-ls#951](https://github.com/hashicorp/terraform-ls/pull/951)) - - Avoid ignoring hidden `*.tfvars` files ([terraform-ls#968](https://github.com/hashicorp/terraform-ls/pull/968)) - - Avoid crash on invalid URIs ([terraform-ls#969](https://github.com/hashicorp/terraform-ls/pull/969)) - - Avoid crash on invalid provider name ([terraform-ls#1030](https://github.com/hashicorp/terraform-ls/pull/1030)) - -INTERNAL: - - - Refactor Terraform Execution API [#1185](https://github.com/hashicorp/vscode-terraform/pull/1185)) - - Bump @hashicorp/js-releases from 1.5.1 to 1.6.0 ([#1144](https://github.com/hashicorp/vscode-terraform/pull/1144)) - - indexer: refactor & improve/cleanup error handling ([terraform-ls#988](https://github.com/hashicorp/terraform-ls/pull/988)) - - indexer/walker: Avoid running jobs where not needed ([terraform-ls#1006](https://github.com/hashicorp/terraform-ls/pull/1006)) - - job: introduce explicit priority for jobs ([terraform-ls#977](https://github.com/hashicorp/terraform-ls/pull/977)) - diff --git a/.changes/v2.24.1.md b/.changes/v2.24.1.md deleted file mode 100644 index 6c076a2..0000000 --- a/.changes/v2.24.1.md +++ /dev/null @@ -1,11 +0,0 @@ -## 2.24.1 (2022-08-24) - -ENHANCEMENTS: - - - Add link to post explaining vim plugin installation ([terraform-ls#1044](https://github.com/hashicorp/terraform-ls/pull/1044)) - -BUG FIXES: - - - Fix panic on obtaining provider schemas ([terraform-ls#1048](https://github.com/hashicorp/terraform-ls/pull/1048)) - - Use correct ldflag (versionPrerelease) when compiling LS ([terraform-ls#1043](https://github.com/hashicorp/terraform-ls/pull/1043)) - diff --git a/.changes/v2.24.2.md b/.changes/v2.24.2.md deleted file mode 100644 index 97115e0..0000000 --- a/.changes/v2.24.2.md +++ /dev/null @@ -1,16 +0,0 @@ -## 2.24.2 (2022-09-07) - -ENHANCEMENTS: - - - Ask user to use Remote WSL Extension when using WSL UNC Paths [#1219](https://github.com/hashicorp/vscode-terraform/pull/1219) - -BUG FIXES: - - - fix: Improve IntelliSense accuracy by tracking provider schema versions (bug introduced in 2.24.0) ([terraform-ls#1060](https://github.com/hashicorp/terraform-ls/pull/1060)) - - Don't query the Terraform Registry for module sources starting with `.` in completion ([terraform-ls#1062](https://github.com/hashicorp/terraform-ls/pull/1062)) - - fix race condition (panic) in schema merging ([terraform-schema#137](https://github.com/hashicorp/terraform-schema/pull/137)) - -INTERNAL: - -- Improve error telemetry [#1215](https://github.com/hashicorp/vscode-terraform/pull/1215) - diff --git a/.changes/v2.24.3.md b/.changes/v2.24.3.md deleted file mode 100644 index 8095cb5..0000000 --- a/.changes/v2.24.3.md +++ /dev/null @@ -1,17 +0,0 @@ -## 2.24.3 (2022-10-13) - -ENHANCEMENTS: - - - Significantly reduce the memory footprint of the language server by 85% to 98% for most users ([terraform-ls#1071](https://github.com/hashicorp/terraform-ls/pull/1071)) - -BUG FIXES: - - - Fix enable terraform-ls after disabling [#1238](https://github.com/hashicorp/vscode-terraform/pull/1238) - - fix: Enable IntelliSense for resources & data sources whose name match the provider (e.g. `data`) ([terraform-ls#1072](https://github.com/hashicorp/terraform-ls/pull/1072)) - - fix: avoid infinite recursion (surfaced as crash with "goroutine stack exceeds 1000000000-byte limit" message) ([terraform-ls#1084](https://github.com/hashicorp/terraform-ls/pull/1084)) - - fix: race condition in terraform-schema (surfaced as crash with "fatal error: concurrent map read and map write" message) ([terraform-ls#1086](https://github.com/hashicorp/terraform-ls/pull/1086)) - -INTERNAL: - - - Reduce duplicate error telemetry [#1230](https://github.com/hashicorp/vscode-terraform/pull/1230) - diff --git a/.changes/v2.25.0.md b/.changes/v2.25.0.md deleted file mode 100644 index daac832..0000000 --- a/.changes/v2.25.0.md +++ /dev/null @@ -1,12 +0,0 @@ -## 2.25.0 (2022-11-14) - -ENHANCEMENTS: - - - Publish Terrafor Web Extension by [#1210](https://github.com/hashicorp/vscode-terraform/pull/1210) - -INTERNAL: - - - Use `npm ci` for installing dependencies inside CI [#1257](https://github.com/hashicorp/vscode-terraform/pull/1257) - - Enable publishing web extensions [#1262](https://github.com/hashicorp/vscode-terraform/pull/1262) - - [COMPLIANCE] Update MPL 2.0 LICENSE [#1247](https://github.com/hashicorp/vscode-terraform/pull/1247) - diff --git a/.changes/v2.25.1.md b/.changes/v2.25.1.md deleted file mode 100644 index 9613583..0000000 --- a/.changes/v2.25.1.md +++ /dev/null @@ -1,15 +0,0 @@ -## 2.25.1 (2022-12-01) - -ENHANCEMENTS: - - - All past versions of the extension were backfilled into [OpenVSX Registry](https://open-vsx.org) and future versions will become available automatically ([#1064](https://github.com/hashicorp/vscode-terraform/pull/1064)) - - - Support `count.index` references in blocks with `count` for completion, hover documentation and semantic tokens highlighting ([terraform-ls#860](https://github.com/hashicorp/terraform-ls/issues/860), [hcl-lang#160](https://github.com/hashicorp/hcl-lang/pull/160)) - - Support `each.*` references in blocks with `for_each` for completion, hover documentation and semantic tokens highlighting ([terraform-ls#861](https://github.com/hashicorp/terraform-ls/issues/861), [hcl-lang#162](https://github.com/hashicorp/hcl-lang/pull/162)) - - Support `self.*` references in `provisioner`, `connection` and `postcondition` blocks for completion, hover documentation and semantic tokens highlighting ([terraform-ls#859](https://github.com/hashicorp/terraform-ls/issues/859), [hcl-lang#163](https://github.com/hashicorp/hcl-lang/pull/163)) - - `dynamic` block support, including label and content completion ([terraform-ls#530](https://github.com/hashicorp/terraform-ls/issues/530), [hcl-lang#154](https://github.com/hashicorp/hcl-lang/pull/154)) - - Go-to-definition/go-to-references for `count.index`/`count` ([terraform-ls#1093](https://github.com/hashicorp/terraform-ls/issues/1093)) - - Go-to-definition/go-to-references for `each.*`/`for_each` ([terraform-ls#1095](https://github.com/hashicorp/terraform-ls/issues/1095)) - - Go-to-definition/go-to-references for `self.*` in `provisioner`, `connection` and `postcondition` blocks ([terraform-ls#1096](https://github.com/hashicorp/terraform-ls/issues/1096)) - - Remove deprecated backends in Terraform 1.3.0 ([terraform-schema#159](https://github.com/hashicorp/terraform-schema/pull/159)) - diff --git a/.changes/v2.25.2.md b/.changes/v2.25.2.md deleted file mode 100644 index ff967c8..0000000 --- a/.changes/v2.25.2.md +++ /dev/null @@ -1,6 +0,0 @@ -## 2.25.2 (2022-12-15) - -BUG FIXES: - - - Improve attribute name matching ([syntax#49](https://github.com/hashicorp/syntax/pull/49)) - diff --git a/.changes/v2.25.3.md b/.changes/v2.25.3.md deleted file mode 100644 index 1e6710e..0000000 --- a/.changes/v2.25.3.md +++ /dev/null @@ -1,15 +0,0 @@ -## 2.25.3 (2023-02-22) - -BUG FIXES: - - - Ignore inaccessible files (such as emacs backup files) ([terraform-ls#1172](https://github.com/hashicorp/terraform-ls/issues/1067)) - - Fix crash when parsing JSON files (introduced in 2.25.0) ([hcl-lang#202](https://github.com/hashicorp/hcl-lang/pull/202)) - - Fix spelling of preview in readme ([#1329](https://github.com/hashicorp/vscode-terraform/pull/1329)) - -ENHANCEMENTS: - - - Show detected Terraform Version in status bar ([#1325](https://github.com/hashicorp/vscode-terraform/pull/1325)) - - Improve error handling on initialization ([#1327](https://github.com/hashicorp/vscode-terraform/pull/1327)) - - Parse `optional()` object attribute _default values_ correctly, as introduced in Terraform v1.3 ([terraform-schema#184](https://github.com/hashicorp/terraform-schema/pull/184)) - - diff --git a/.changes/v2.25.4.md b/.changes/v2.25.4.md deleted file mode 100644 index f4e7da3..0000000 --- a/.changes/v2.25.4.md +++ /dev/null @@ -1,6 +0,0 @@ -## 2.25.4 (2023-02-22) - -BUG FIXES: - - - Bundle static builds of Linux binaries (again) ([terraform-ls#1193](https://github.com/hashicorp/terraform-ls/issues/1193)) - diff --git a/.changes/v2.26.0.md b/.changes/v2.26.0.md deleted file mode 100644 index 0446ff2..0000000 --- a/.changes/v2.26.0.md +++ /dev/null @@ -1,25 +0,0 @@ -## 2.26.0 (2023-04-27) - -BUG FIXES: - -* When completing `LiteralValue` do not ignore `Description` & `IsDeprecated` fields ([hcl-lang#253](https://github.com/hashicorp/hcl-lang/pull/253)) -* Provide completion for `Tuple` attribute types and values ([hcl-lang#255](https://github.com/hashicorp/hcl-lang/pull/255)) -* Display `Tuple` hover data on invalid elements ([hcl-lang#254](https://github.com/hashicorp/hcl-lang/pull/254)) -* Display fully inferred type of List, Set, Tuple, Map and Object complex types ([hcl-lang#259](https://github.com/hashicorp/hcl-lang/pull/259)) -* Collect targets w/ interpolation for `Any` correctly ([hcl-lang#257](https://github.com/hashicorp/hcl-lang/pull/257)) -* Fix remote backend usage in ([terraform-ls#1218](https://github.com/hashicorp/terraform-ls/pull/1218)) -* Display completion label details even if empty by updating to gopls v0.10.0 tsprotocol.go to ([#1256](https://github.com/hashicorp/terraform-ls/pull/1256)) - -ENHANCEMENTS: - -* Improve editor performance in cases where Terraform module information is unavailable due to private registries, submodules, no network, or other similiar situations ([terraform-ls#1258](https://github.com/hashicorp/terraform-ls/pull/1258)) -* Add completion, hover, semantic highlighting and go-to-* support for nested expressions within objects, maps, lists, sets and tuples ([terraform-ls#1237](https://github.com/hashicorp/terraform-ls/pull/1237), [hcl-lang#232](https://github.com/hashicorp/hcl-lang/pull/232), [hcl-lang#203](https://github.com/hashicorp/hcl-lang/pull/203), [hcl-lang#199](https://github.com/hashicorp/hcl-lang/pull/199), [hcl-lang#186](https://github.com/hashicorp/hcl-lang/pull/186), [hcl-lang#185](https://github.com/hashicorp/hcl-lang/pull/185), [hcl-lang#184](https://github.com/hashicorp/hcl-lang/pull/184)) -* Add completion, hover and semantic highlighting for nested types in type declarations within `variable` `type` ([hcl-lang#183](https://github.com/hashicorp/hcl-lang/pull/183)) -* Add support for function signature completion, hover and more ([terraform-ls#1077](https://github.com/hashicorp/terraform-ls/pull/1077)) -* Recognise new semantic token types for function names ([#1371](https://github.com/hashicorp/vscode-terraform/pull/1371), [terraform-ls#1233](https://github.com/hashicorp/terraform-ls/pull/1233)) - -INTERNAL: - -* Add copywrite GHA ([#1347](https://github.com/hashicorp/vscode-terraform/pull/1347)) -* Add TFC usage detection ([#1208](https://github.com/hashicorp/terraform-ls/pull/1208)) - diff --git a/.changes/v2.26.1.md b/.changes/v2.26.1.md deleted file mode 100644 index 56daa00..0000000 --- a/.changes/v2.26.1.md +++ /dev/null @@ -1,14 +0,0 @@ -## 2.26.1 (2023-05-11) - -BUG FIXES: - -* Fix crash on prefix completion ([hcl-lang#275](https://github.com/hashicorp/hcl-lang/pull/275)) - -INTERNAL: - -* Update vscode-languageclient to `8.1.0` ([#1408](https://github.com/hashicorp/vscode-terraform/pull/1408)) -* Bump VS Code from `1.67.2` to `1.75.1` ([#1409](https://github.com/hashicorp/vscode-terraform/pull/1409)) -* Onboard to pre-release extensions ([#1412](https://github.com/hashicorp/vscode-terraform/pull/1412)) -* Remove default activation events ([#1419](https://github.com/hashicorp/vscode-terraform/pull/1419)) -* Remove legacy settings ([#1414](https://github.com/hashicorp/vscode-terraform/pull/1414)) - diff --git a/.changes/v2.27.0.md b/.changes/v2.27.0.md deleted file mode 100644 index a834777..0000000 --- a/.changes/v2.27.0.md +++ /dev/null @@ -1,30 +0,0 @@ -## 2.27.0 (2023-07-04) - -ENHANCEMENTS: - -* Introduce v1.5 `check` block ([terraform-schema#229](https://github.com/hashicorp/terraform-schema/pull/229)) -* Introduce v1.5 `import` block ([terraform-schema#228](https://github.com/hashicorp/terraform-schema/pull/228)) -* Re-generate function signatures for v1.5 ([terraform-schema#213](https://github.com/hashicorp/terraform-schema/pull/213)) -* Add v1.4 `local-exec` provisioner `quiet` attribute ([terraform-schema#218](https://github.com/hashicorp/terraform-schema/pull/218)) -* Reflect 1.4 changes in `gcs` backend ([terraform-schema#227](https://github.com/hashicorp/terraform-schema/pull/227)) -* Reflect 1.4 changes in `http` backend ([terraform-schema#226](https://github.com/hashicorp/terraform-schema/pull/226)) -* Reflect 1.3 & 1.4 changes in `cos` backend ([terraform-schema#217](https://github.com/hashicorp/terraform-schema/pull/217)) -* Reflect 1.2 & 1.3 changes in `azurerm` backend ([terraform-schema#225](https://github.com/hashicorp/terraform-schema/pull/225)) -* Reflect Terraform 1.4 and 1.5 language changes in the highlighting grammar ([syntax#78](https://github.com/hashicorp/syntax/pull/78)) - -INTERNAL: - -* Add copyright headers automagically instead of failing a check on PRs ([#1456](https://github.com/hashicorp/vscode-terraform/pull/1456)) -* Bump @vscode/test-electron from 2.3.0 to 2.3.3 ([#1429](https://github.com/hashicorp/vscode-terraform/pull/1429), [#1479](https://github.com/hashicorp/vscode-terraform/pull/1479)) -* Bump actions/checkout from 3.5.2 to 3.5.3 ([#1480](https://github.com/hashicorp/vscode-terraform/pull/1480)) -* Bump dessant/lock-threads from 4.0.0 to 4.0.1 ([#1485](https://github.com/hashicorp/vscode-terraform/pull/1485)) -* Bump eslint from 8.40.0 to 8.43.0 ([#1439](https://github.com/hashicorp/vscode-terraform/pull/1439), [#1465](https://github.com/hashicorp/vscode-terraform/pull/1465), [#1497](https://github.com/hashicorp/vscode-terraform/pull/1497)) -* Bump glob from 10.2.3 to 10.3.1 ([#1433](https://github.com/hashicorp/vscode-terraform/pull/1433), [#1437](https://github.com/hashicorp/vscode-terraform/pull/1437), [#1438](https://github.com/hashicorp/vscode-terraform/pull/1438), [#1471](https://github.com/hashicorp/vscode-terraform/pull/1471), [#1512](https://github.com/hashicorp/vscode-terraform/pull/1512), [#1519](https://github.com/hashicorp/vscode-terraform/pull/1519)) -* Bump ts-jest from 29.1.0 to 29.1.1 ([#1527](https://github.com/hashicorp/vscode-terraform/pull/1527)) -* Bump ts-loader from 9.4.2 to 9.4.4 ([#1442](https://github.com/hashicorp/vscode-terraform/pull/1442), [#1522](https://github.com/hashicorp/vscode-terraform/pull/1522)) -* Bump typescript from 5.0.4 to 5.1.6 ([#1462](https://github.com/hashicorp/vscode-terraform/pull/1462), [#1523](https://github.com/hashicorp/vscode-terraform/pull/1523)) -* Bump webpack from 5.82.1 to 5.88.1 ([#1436](https://github.com/hashicorp/vscode-terraform/pull/1436), [#1446](https://github.com/hashicorp/vscode-terraform/pull/1446), [#1450](https://github.com/hashicorp/vscode-terraform/pull/1450), [#1461](https://github.com/hashicorp/vscode-terraform/pull/1461), [#1469](https://github.com/hashicorp/vscode-terraform/pull/1469), [#1474](https://github.com/hashicorp/vscode-terraform/pull/1474), [#1492](https://github.com/hashicorp/vscode-terraform/pull/1492), [#1513](https://github.com/hashicorp/vscode-terraform/pull/1513), [#1521](https://github.com/hashicorp/vscode-terraform/pull/1521)) -* Bump webpack-cli from 5.1.1 to 5.1.4 ([#1464](https://github.com/hashicorp/vscode-terraform/pull/1464), [#1473](https://github.com/hashicorp/vscode-terraform/pull/1473)) -* deps: bump semver to 7.5.3 ([#1515](https://github.com/hashicorp/vscode-terraform/pull/1515)) -* Switch to GitHub issue form templates ([#1463](https://github.com/hashicorp/vscode-terraform/pull/1463)) - diff --git a/.changes/v2.27.1.md b/.changes/v2.27.1.md deleted file mode 100644 index 9e7d4e0..0000000 --- a/.changes/v2.27.1.md +++ /dev/null @@ -1,19 +0,0 @@ -## 2.27.1 (2023-08-02) - -ENHANCEMENTS: - -* Language Status progress indicator ([#1547](https://github.com/hashicorp/vscode-terraform/pull/1547)) -* Explicitly set diagnosticCollectionName to help avoid conflicts with other extensions generating diagnostics ([#1548](https://github.com/hashicorp/vscode-terraform/pull/1548)) -* Don't wait for `GetModuleDataFromRegistry` job in terraform-ls to improve performance ([terraform-ls#1332](https://github.com/hashicorp/terraform-ls/pull/1332)) - -INTERNAL: - -* Bump eslint from 8.43.0 to 8.45.0 ([#1529](https://github.com/hashicorp/vscode-terraform/pull/1529), [#1537](https://github.com/hashicorp/vscode-terraform/pull/1537) -* Bump jest from 29.5.0 to 29.6.0 ([#1528](https://github.com/hashicorp/vscode-terraform/pull/1528)) -* Bump actions/setup-node from 3.6.0 to 3.7.0 ([#1530](https://github.com/hashicorp/vscode-terraform/pull/1530)) -* Bump jest from 29.6.0 to 29.6.1 ([#1531](https://github.com/hashicorp/vscode-terraform/pull/1531)) -* Correct invalid json in README.md ([#1477](https://github.com/hashicorp/vscode-terraform/pull/1477)) -* Bump glob from 10.3.1 to 10.3.3 ([#1533](https://github.com/hashicorp/vscode-terraform/pull/1533)) -* Streamline extension publishing ([#1532](https://github.com/hashicorp/vscode-terraform/pull/1532)) -* Bump webpack from 5.88.1 to 5.88.2 ([#1538](https://github.com/hashicorp/vscode-terraform/pull/1538)) - diff --git a/.changes/v2.27.2.md b/.changes/v2.27.2.md deleted file mode 100644 index 90e1f30..0000000 --- a/.changes/v2.27.2.md +++ /dev/null @@ -1,13 +0,0 @@ -## 2.27.2 (2023-09-06) - -ENHANCEMENTS: - -* Improve `PreloadEmbeddedSchema` job performance in terraform-ls ([terraform-ls#1369](https://github.com/hashicorp/terraform-ls/pull/1369)) -* Avoid re-processing open files in terraform-ls after file saving to improve performance ([terraform-ls#1372](https://github.com/hashicorp/terraform-ls/pull/1372)) - - -INTERNAL: - -* Bump actions/setup-node from 3.7.0 to 3.8.1 by ([#1558](https://github.com/hashicorp/vscode-terraform/pull/1558)) -* Bump actions/checkout from 3.5.3 to 4.0.0 by ([#1559](https://github.com/hashicorp/vscode-terraform/pull/1559), [#1560](https://github.com/hashicorp/vscode-terraform/pull/1560)) - diff --git a/.changes/v2.28.0.md b/.changes/v2.28.0.md deleted file mode 100644 index 09beb0c..0000000 --- a/.changes/v2.28.0.md +++ /dev/null @@ -1,28 +0,0 @@ -## 2.28.0 (2023-10-04) - -ENHANCEMENTS: - -* Enhanced validation provides additional diagnostics for [selected invalid Terraform language constructs](https://github.com/hashicorp/terraform-ls/blob/v0.32.0/docs/validation.md#enhanced-validation) based on detected Terraform version and provider versions are provided. ([#1368](https://github.com/hashicorp/terraform-ls/pull/1368)) -* Improve performance by parsing changed `*.tf` file (as opposed to all files in the module) ([#1404](https://github.com/hashicorp/terraform-ls/pull/1404)) -* Improve performance by parsing changed `*.tfvars` file (as opposed to all files in the directory) ([#1422](https://github.com/hashicorp/terraform-ls/pull/1422)) -* Add `project` attribute to workspaces block ([terraform-schema#257](https://github.com/hashicorp/terraform-schema/pull/257)) -* Update `import` ID to be interpolatable ([terraform-schema#260](https://github.com/hashicorp/terraform-schema/pull/260)) -* Add `nullable` to `variable` blocks for `v1.1+` ([terraform-schema#261](https://github.com/hashicorp/terraform-schema/pull/261)) -* Add `endpoint` and `domain` to `cos` backend ([terraform-schema#262](https://github.com/hashicorp/terraform-schema/pull/262)) -* Add `proxy_url` to `kubernetes` backend ([terraform-schema#263](https://github.com/hashicorp/terraform-schema/pull/263)) -* Update `s3` backend with `v1.6` changes ([terraform-schema#265](https://github.com/hashicorp/terraform-schema/pull/265)) - -BUG FIXES: - -* Allow `list(any)` to be passed into `dynamic` block's `for_each` ([hcl-lang#313](https://github.com/hashicorp/hcl-lang/pull/313)) -* Make `dynamic` `content` block required ([hcl-lang#314](https://github.com/hashicorp/hcl-lang/pull/314)) -* indexer: Ensure declared module calls get decoded ([#1395](https://github.com/hashicorp/terraform-ls/pull/1395)) - -INTERNAL: - -* Bump actions/upload-artifact from 3.1.2 to 3.1.3 ([#1562](https://github.com/hashicorp/vscode-terraform/pull/1562)) -* Add sleep to code action test ([#1565](https://github.com/hashicorp/vscode-terraform/pull/1565)) -* Bump Terraform version in CI ([#1564](https://github.com/hashicorp/vscode-terraform/pull/1564)) -* deps: Bump js-releases to 1.7.0 ([#1563](https://github.com/hashicorp/vscode-terraform/pull/1563)) -* Bump actions/checkout from 4.0.0 to 4.1.0 ([#1569](https://github.com/hashicorp/vscode-terraform/pull/1569)) - diff --git a/.changes/v2.28.1.md b/.changes/v2.28.1.md deleted file mode 100644 index 7eb3df3..0000000 --- a/.changes/v2.28.1.md +++ /dev/null @@ -1,15 +0,0 @@ -## 2.28.1 (2023-10-06) - -ENHANCEMENTS: - -* decoder: Add support for binary & unary operators ([hcl-lang#320](https://github.com/hashicorp/hcl-lang/pull/320)) - -BUG FIXES: - -* Fix incorrect schema for `terraform_remote_state` data source ([terraform-schema#272](https://github.com/hashicorp/terraform-schema/pull/272)) -* Make `cloud` `organization` optional ([terraform-schema#271](https://github.com/hashicorp/terraform-schema/pull/271)) -* Ensure empty objects & tuples still get recognised ([hcl-lang#330](https://github.com/hashicorp/hcl-lang/pull/330)) -* Introduce default value `"ssh"` for `type` under `connection` block to enable recognition of attributes such as `bastion_host` even when `type` is not declared ([hcl-lang#327 ([terraform-schema#270](https://github.com/hashicorp/terraform-schema/pull/270)) -* Introduce v1.3 proxy related fields for provisioner `connection` block ([terraform-schema#269](https://github.com/hashicorp/terraform-schema/pull/269)) -* Ensure `target_platform` is recognised in nested `connection` block ([terraform-schema#268](https://github.com/hashicorp/terraform-schema/pull/268)) - diff --git a/.changes/v2.28.2.md b/.changes/v2.28.2.md deleted file mode 100644 index c849525..0000000 --- a/.changes/v2.28.2.md +++ /dev/null @@ -1,13 +0,0 @@ -## 2.28.2 (2023-10-16) - -ENHANCEMENTS: - -* Add `skip_requesting_account_id` to `s3` backend ([terraform-schema#279](https://github.com/hashicorp/terraform-schema/pull/279)) - -BUG FIXES: - -* Work around 'unreliable' input data for Registry modules ([terraform-ls#1456](https://github.com/hashicorp/terraform-ls/pull/1456)) -* Resolve version correctly for backend schema ([terraform-ls#1453](https://github.com/hashicorp/terraform-ls/pull/1453)) -* Allow objects in `for_each` ([hcl-lang#333](https://github.com/hashicorp/hcl-lang/pull/333)) -* Fix `output` block `precondition` in 1.2 schema ([terraform-schema#282](https://github.com/hashicorp/terraform-schema/pull/282)) - diff --git a/.changes/v2.29.0.md b/.changes/v2.29.0.md deleted file mode 100644 index 7eb90a7..0000000 --- a/.changes/v2.29.0.md +++ /dev/null @@ -1,22 +0,0 @@ -## 2.29.0 (2023-11-08) - -ENHANCEMENTS: - -* Login to Terraform Cloud using an Authentication Token -* View Terraform Cloud Workspaces and status detail inside VS Code -* View Terraform Cloud Runs and status detail inside VS Code -* Filter Terraform Cloud Workspaces by Project -* Switch Terraform Cloud Organizations to view different workspaces -* View Plan and Apply logs directly in the editor - -BUG FIXES: - -* Validate required attributes more selectively to relax `provider` validation ([#1485](https://github.com/hashicorp/terraform-ls/pull/1485)) -* Skip inferring variable type from default values ([hcl-lang#338](https://github.com/hashicorp/hcl-lang/pull/338)) -* Ensure partially unknown dependent body is handled ([hcl-lang#339](https://github.com/hashicorp/hcl-lang/pull/339)) -* Fix type-unaware target collection ([hcl-lang#340](https://github.com/hashicorp/hcl-lang/pull/340)) -* Allow variable references in `depends_on` ([terraform-schema#290](https://github.com/hashicorp/terraform-schema/pull/290)) -* Fix provider attribute to block conversion ([terraform-schema#288](https://github.com/hashicorp/terraform-schema/pull/288)) -* Skip inferring module inputs for default values ([terraform-schema#289](https://github.com/hashicorp/terraform-schema/pull/289)) -* Allow local references in `depends_on` ([terraform-schema#292](https://github.com/hashicorp/terraform-schema/pull/292)) - diff --git a/.changes/v2.29.1.md b/.changes/v2.29.1.md deleted file mode 100644 index eff3f1b..0000000 --- a/.changes/v2.29.1.md +++ /dev/null @@ -1,26 +0,0 @@ -## 2.29.1 (2023-12-13) - -BREAKING CHANGES: - -* Publishing extensions for the `win32-ia32` target has been disabled, so we can no longer provide builds for Windows 32bit. (see [microsoft/vscode-vsce#908](https://github.com/microsoft/vscode-vsce/pull/908) and [microsoft/vscode#195559](https://github.com/microsoft/vscode/pull/195559)) - -ENHANCEMENTS: - -* Add new panel for Terraform Cloud structured plans ([#1590](https://github.com/hashicorp/vscode-terraform/pull/1590)) -* Add new panel for Terraform Cloud structured applies ([#1647](https://github.com/hashicorp/vscode-terraform/pull/1647)) -* Document TFC account log out ([#1642](https://github.com/hashicorp/vscode-terraform/pull/1642)) -* Add support for conditional expression ([hcl-lang#326](https://github.com/hashicorp/hcl-lang/pull/326)) -* Add support for template expressions ([hcl-lang#322](https://github.com/hashicorp/hcl-lang/pull/322)) -* Reflect new SSO endpoint override in S3 backend ([terraform-schema#302](https://github.com/hashicorp/terraform-schema/pull/302)) -* Reflect new proxy settings in S3 backend ([terraform-schema#301](https://github.com/hashicorp/terraform-schema/pull/301)) -* Reflect new `skip_s3_checksum` attribute in S3 backend ([terraform-schema#295](https://github.com/hashicorp/terraform-schema/pull/295)) - -BUG FIXES: - -* Improve traversal completion for lists, tuples, and sets ([hcl-lang#344](https://github.com/hashicorp/hcl-lang/pull/344)) -* Update version resolution for empty constraints ([terraform-schema#296](https://github.com/hashicorp/terraform-schema/pull/296)) - -INTERNAL: - -* Update Node to v18 ([#1625](https://github.com/hashicorp/vscode-terraform/pull/1625)) - diff --git a/.changes/v2.29.2.md b/.changes/v2.29.2.md deleted file mode 100644 index c6d0153..0000000 --- a/.changes/v2.29.2.md +++ /dev/null @@ -1,26 +0,0 @@ -## 2.29.2 (2024-01-16) - -BREAKING CHANGES: - -* Bump minimal engine version to `1.82.3` ([#1660](https://github.com/hashicorp/vscode-terraform/pull/1660)) - -ENHANCEMENTS: - -* Configure command enablement ([#1643](https://github.com/hashicorp/vscode-terraform/pull/1643)) -* Alert on `wsl.localhost` Path ([#1522](https://github.com/hashicorp/terraform-ls/pull/1522)) -* Enable `for_each` for `import` blocks (Terraform 1.7) ([terraform-schema#315](https://github.com/hashicorp/terraform-schema/pull/315)) -* Add `removed` block (Terraform 1.7) ([terraform-schema#313](https://github.com/hashicorp/terraform-schema/pull/313)) -* Deprecate `use_legacy_workflow` in S3 Backend (Terraform 1.7) ([terraform-schema#314](https://github.com/hashicorp/terraform-schema/pull/314)) - -BUG FIXES: - -* Fix test failures on main ([#1659](https://github.com/hashicorp/vscode-terraform/pull/1659)) - -INTERNAL: - -* Rename `hcl-typeCapsule` to `hcl-typeComplex` ([#1656](https://github.com/hashicorp/vscode-terraform/pull/1656)) -* Rename `hcl-traversalStep` to `hcl-referenceStep` ([#1664](https://github.com/hashicorp/vscode-terraform/pull/1664)) -* build(deps): Bump workflows to latest trusted versions ([#1655](https://github.com/hashicorp/vscode-terraform/pull/1655), [#1661](https://github.com/hashicorp/vscode-terraform/pull/1661)) -* Remove `terraform init` from integration tests ([#1645](https://github.com/hashicorp/vscode-terraform/pull/1645)) -* Upgrade `@vscode/test-web` and `js-releases` ([#1662](https://github.com/hashicorp/vscode-terraform/pull/1662)) - diff --git a/.changes/v2.29.3.md b/.changes/v2.29.3.md deleted file mode 100644 index fc67d31..0000000 --- a/.changes/v2.29.3.md +++ /dev/null @@ -1,18 +0,0 @@ -## 2.29.3 (2024-01-23) - -ENHANCEMENTS: - -* Remove authentication provider registration to allow disabling the extension ([#1670](https://github.com/hashicorp/vscode-terraform/pull/1670)) -* Enable interpolated map keys and object attribute names ([terraform-schema#316](https://github.com/hashicorp/terraform-schema/pull/316)) -* Add support for complex index expressions ([hcl-lang#365](https://github.com/hashicorp/hcl-lang/pull/365)) -* Add support for parenthesis on RHS ([hcl-lang#366](https://github.com/hashicorp/hcl-lang/pull/366)) -* Add support for parenthesis on LHS (map keys & attribute names) ([hcl-lang#367](https://github.com/hashicorp/hcl-lang/pull/367)) - -BUG FIXES: - -* Revert "Alert on `wsl.localhost` Path ([#1522](https://github.com/hashicorp/terraform-ls/pull/1522))" ([#1597](https://github.com/hashicorp/terraform-ls/pull/1597)) - -INTERNAL: - -* build(deps): Bump workflows to latest trusted versions ([#1675](https://github.com/hashicorp/vscode-terraform/pull/1675)) - diff --git a/.changes/v2.29.4.md b/.changes/v2.29.4.md deleted file mode 100644 index df5a0a8..0000000 --- a/.changes/v2.29.4.md +++ /dev/null @@ -1,18 +0,0 @@ -## 2.29.4 (2024-02-13) - -ENHANCEMENTS: - -* Improve module providers and module calls welcome views ([#1676](https://github.com/hashicorp/vscode-terraform/pull/1676)) -* Support `for`-`in`-`if` expressions ([hcl-lang#368](https://github.com/hashicorp/hcl-lang/pull/368)) - -BUG FIXES: - -* Fix prefix completion in template interpolation ([hcl-lang#371](https://github.com/hashicorp/hcl-lang/pull/371)) -* Fix language server crash on prefix completion with leading space ([hcl-lang#373](https://github.com/hashicorp/hcl-lang/pull/373)) -* Fix language server crash on missing symbols in client capabilities ([terraform-ls#1619](https://github.com/hashicorp/terraform-ls/pull/1619)) - -INTERNAL: - -* Add CONTRIBUTING file ([#1680](https://github.com/hashicorp/vscode-terraform/pull/1680)) -* build(deps): Bump workflows to latest trusted versions ([#1687](https://github.com/hashicorp/vscode-terraform/pull/1687), [#1690](https://github.com/hashicorp/vscode-terraform/pull/1690)) - diff --git a/.changes/v2.29.5.md b/.changes/v2.29.5.md deleted file mode 100644 index ece80e7..0000000 --- a/.changes/v2.29.5.md +++ /dev/null @@ -1,10 +0,0 @@ -## 2.29.5 (2024-03-11) - -BUG FIXES: - -* Fix `for` expression collection constraints ([hcl-lang#375](https://github.com/hashicorp/hcl-lang/pull/375)) - -INTERNAL: - -* build(deps): Bump workflows to latest trusted versions ([#1695](https://github.com/hashicorp/vscode-terraform/pull/1695), [#1704](https://github.com/hashicorp/vscode-terraform/pull/1704), [#1706](https://github.com/hashicorp/vscode-terraform/pull/1706)) - diff --git a/.changes/v2.3.0.md b/.changes/v2.3.0.md deleted file mode 100644 index 89da071..0000000 --- a/.changes/v2.3.0.md +++ /dev/null @@ -1,12 +0,0 @@ -## 2.3.0 (2020-11-12) - -NOTES: - -* Set up integration tests in GitHub actions ([#483](https://github.com/hashicorp/vscode-terraform/pulls/483)) - -BUG FIXES: - -* Fix 32bit downloads of language server ([#483](https://github.com/hashicorp/vscode-terraform/pulls/483)) -* Prune nested workspace folders to prevent running multiple language servers for the same directory ([#499](https://github.com/hashicorp/vscode-terraform/pulls/499)) -* Prefix workspace command names to prevent multi-instance name collisions ([#514](https://github.com/hashicorp/vscode-terraform/pulls/514)) - diff --git a/.changes/v2.30.0.md b/.changes/v2.30.0.md deleted file mode 100644 index abbe035..0000000 --- a/.changes/v2.30.0.md +++ /dev/null @@ -1,36 +0,0 @@ -## 2.30.0 (2024-04-10) - -ENHANCEMENTS: - -* Support new provider-defined functions ([terraform-ls#1636](https://github.com/hashicorp/terraform-ls/pull/1636)) -* Support new provider defined functions syntax ([syntax#99](https://github.com/hashicorp/syntax/pull/99)) -* Remove `use_legacy_workflow` from S3 backend ([terraform-schema#338](https://github.com/hashicorp/terraform-schema/pull/338)) -* Add `issensitive` function ([terraform-schema#340](https://github.com/hashicorp/terraform-schema/pull/340)) -* Conclude `module_variable_optional_attrs` language experiment ([terraform-schema#337](https://github.com/hashicorp/terraform-schema/pull/337)) - -BUG FIXES: - -* Only merge provider-defined functions for Terraform >= 1.8 ([terraform-ls#1672](https://github.com/hashicorp/terraform-ls/pull/1672), [terraform-schema#336](https://github.com/hashicorp/terraform-schema/pull/336)) -* Fix panics on `nil` expressions ([hcl-lang#376](https://github.com/hashicorp/hcl-lang/pull/376)) -* Fix panics on `nil` expressions in early decoder ([terraform-schema#324](https://github.com/hashicorp/terraform-schema/pull/324)) - -INTERNAL: - -* Webdriver.io End to End Testing ([#1691](https://github.com/hashicorp/vscode-terraform/pull/1691)) -* Add test fixture files for E2E test ([#1721](https://github.com/hashicorp/vscode-terraform/pull/1721)) -* Remove unused packages ([#1731](https://github.com/hashicorp/vscode-terraform/pull/1731)) -* Bump axios from 1.6.5 to 1.6.8 ([#1712](https://github.com/hashicorp/vscode-terraform/pull/1712)) -* Bump ts-loader from 9.5.0 to 9.5.1 ([#1715](https://github.com/hashicorp/vscode-terraform/pull/1715)) -* Bump chai from 4.3.10 to 4.4.1 ([#1714](https://github.com/hashicorp/vscode-terraform/pull/1714)) -* Bump msw from 1.3.2 to 1.3.3 ([#1717](https://github.com/hashicorp/vscode-terraform/pull/1717)) -* Bump ts-jest from 29.1.1 to 29.1.2 ([#1720](https://github.com/hashicorp/vscode-terraform/pull/1720)) -* Bump typescript from 5.2.2 to 5.4.4 ([#1719](https://github.com/hashicorp/vscode-terraform/pull/1719), [#1734](https://github.com/hashicorp/vscode-terraform/pull/1734)) -* Bump @vscode/test-electron from 2.3.8 to 2.3.9 ([#1713](https://github.com/hashicorp/vscode-terraform/pull/1713)) -* Bump eslint from 8.53.0 to 8.57.0 ([#1710](https://github.com/hashicorp/vscode-terraform/pull/1710)) -* Bump mocha from 10.2.0 to 10.4.0 ([#1728](https://github.com/hashicorp/vscode-terraform/pull/1728)) -* Bump @vscode/vsce from 2.22.0 to 2.24.0 ([#1727](https://github.com/hashicorp/vscode-terraform/pull/1727)) -* Bump semver from 7.5.4 to 7.6.0 ([#1726](https://github.com/hashicorp/vscode-terraform/pull/1726)) -* Bump glob from 10.3.10 to 10.3.12 ([#1725](https://github.com/hashicorp/vscode-terraform/pull/1725)) -* Bump webpack from 5.89.0 to 5.91.0 ([#1733](https://github.com/hashicorp/vscode-terraform/pull/1733)) -* Bump @playwright/browser-chromium from 1.40.1 to 1.42.1 ([#1718](https://github.com/hashicorp/vscode-terraform/pull/1718)) - diff --git a/.changes/v2.30.1.md b/.changes/v2.30.1.md deleted file mode 100644 index a30c91d..0000000 --- a/.changes/v2.30.1.md +++ /dev/null @@ -1,18 +0,0 @@ -## 2.30.1 (2024-04-22) - -ENHANCEMENTS: - -* Fix finding TFC credential file on windows ([#1735](https://github.com/hashicorp/vscode-terraform/pull/1735)) -* Rename TFC to HCP Terraform ([#1741](https://github.com/hashicorp/vscode-terraform/pull/1741)) -* Rename TFC to HCP Terraform in documentation ([terraform-ls#1687](https://github.com/hashicorp/terraform-ls/pull/1687)) -* Rename TFC to HCP Terraform in hover documentation ([terraform-schema#1687](https://github.com/hashicorp/terraform-schema/pull/343)) - -INTERNAL: - -* Add end to end extension to language server testing ([#1739](https://github.com/hashicorp/vscode-terraform/pull/1739)) -* Update npm engine requirements to 10 ([#1740](https://github.com/hashicorp/vscode-terraform/pull/1740)) -* Update MSW to 2.0 ([#1657](https://github.com/hashicorp/vscode-terraform/pull/1657)) -* Bump typescript from 5.4.4 to 5.4.5 ([#1738](https://github.com/hashicorp/vscode-terraform/pull/1738)) -* Bump @vscode/vsce from 2.24.0 to 2.25.0 ([#1743](https://github.com/hashicorp/vscode-terraform/pull/1743)) -* Bump @playwright/browser-chromium from 1.42.1 to 1.43.1 ([#1742](https://github.com/hashicorp/vscode-terraform/pull/1742)) - diff --git a/.changes/v2.30.2.md b/.changes/v2.30.2.md deleted file mode 100644 index 257db5f..0000000 --- a/.changes/v2.30.2.md +++ /dev/null @@ -1,15 +0,0 @@ -## 2.30.2 (2024-06-06) - -BUG FIXES: - -* Fix data race in schema merging logic ([hcl-lang#397](https://github.com/hashicorp/hcl-lang/issues/397)) - -INTERNAL: - -* Ignore changie logs in vsix package ([#1760](https://github.com/hashicorp/vscode-terraform/issues/1760)) -* Remove old web testing infrastructure and update the test GHA ([#1759](https://github.com/hashicorp/vscode-terraform/issues/1759)) -* Organize code placement for better maintainability ([#1758](https://github.com/hashicorp/vscode-terraform/issues/1758)) -* Use esbuild with webpack to speed up development time ([#1761](https://github.com/hashicorp/vscode-terraform/issues/1761)) -* Cache npm packages in GHA ([#1762](https://github.com/hashicorp/vscode-terraform/issues/1762)) -* Move TF and HCP Terraform view testing to test folder ([#1765](https://github.com/hashicorp/vscode-terraform/issues/1765)) - diff --git a/.changes/v2.31.0.md b/.changes/v2.31.0.md deleted file mode 100644 index 6f1c2b3..0000000 --- a/.changes/v2.31.0.md +++ /dev/null @@ -1,10 +0,0 @@ -## 2.31.0 (2024-06-27) - -ENHANCEMENTS: - -* Allow custom HCP Terraform or Terraform Enterprise instance selection ([#1678](https://github.com/hashicorp/vscode-terraform/issues/1678)) -* Declare support for Terraform Stack files ([#1773](https://github.com/hashicorp/vscode-terraform/issues/1773)) -* Adds file icons for the Stacks language which will apply to all tfstack.hcl and tfdeploy.hcl files ([#1774](https://github.com/hashicorp/vscode-terraform/issues/1774)) -* Add support for the new `templatestring` functions in Terraform 1.9 ([terraform-ls#357](https://github.com/hashicorp/terraform-ls/issues/357)) -* Introduce provisioners to `removed` blocks in Terraform 1.9 ([terraform-schema#358](https://github.com/hashicorp/terraform-schema/issues/358)) - diff --git a/.changes/v2.31.2024061114.md b/.changes/v2.31.2024061114.md deleted file mode 100644 index 25da5e7..0000000 --- a/.changes/v2.31.2024061114.md +++ /dev/null @@ -1,10 +0,0 @@ -## 2.31.2024061114 (2024-06-11) - -ENHANCEMENTS: - -* Re-architect the language server for improved performance and resource utilization ([terraform-ls#1667](https://github.com/hashicorp/terraform-ls/issues/1667)) - -This marks the completion of a major refactoring effort. The language server will now start up much faster and use less resources, especially on larger workspaces. We achieve this by doing less work during the initial walk of a workspace. Instead, we only parse modules with open files. Whenever a file of a module is opened, we schedule all the jobs needed to understand the contents of that directory (and the referenced modules). - -We have tested this with workspaces and configurations of different sizes, but still expect some bugs. Please give this preview a try and let us know how it works for you. - diff --git a/.changes/v2.32.0.md b/.changes/v2.32.0.md deleted file mode 100644 index dea3336..0000000 --- a/.changes/v2.32.0.md +++ /dev/null @@ -1,14 +0,0 @@ -## 2.32.0 (2024-07-15) - -ENHANCEMENTS: - -* Add initial support for Terraform Stacks files and Deployment files. This provides block and attribute completion, hover, and diagnostics along with syntax validation for Terraform Stacks and Deployment files ([terraform-ls#1745](https://github.com/hashicorp/terraform-ls/issues/1745)) -* Enable completion for all locally installed remote modules ([terraform-ls#1760](https://github.com/hashicorp/terraform-ls/issues/1760)) -* Re-architect the language server for improved performance and resource utilization ([terraform-ls#1667](https://github.com/hashicorp/terraform-ls/issues/1667)) - -This marks the completion of a major refactoring effort. The language server will now start up much faster and use less resources, especially on larger workspaces. We achieve this by doing less work during the initial walk of a workspace. Instead, we only parse modules with open files. Whenever a file of a module is opened, we schedule all the jobs needed to understand the contents of that directory (and the referenced modules). - -INTERNAL: - -* Introduce a workflow that checks for changelog entries ([#1796](https://github.com/hashicorp/vscode-terraform/issues/1796)) - diff --git a/.changes/v2.32.1.md b/.changes/v2.32.1.md deleted file mode 100644 index a918505..0000000 --- a/.changes/v2.32.1.md +++ /dev/null @@ -1,6 +0,0 @@ -## 2.32.1 (2024-07-22) - -BUG FIXES: - -* Fix validation error by checking for submodules when fetching schemas from the registry ([terraform-ls#1772](https://github.com/hashicorp/terraform-ls/issues/1772)) - diff --git a/.changes/v2.32.2.md b/.changes/v2.32.2.md deleted file mode 100644 index 927eb48..0000000 --- a/.changes/v2.32.2.md +++ /dev/null @@ -1,6 +0,0 @@ -## 2.32.2 (2024-07-30) - -BUG FIXES: - -* Ensure validation runs after decoding the whole module to avoid stale diagnostics ([terraform-ls#1777](https://github.com/hashicorp/terraform-ls/issues/1777)) - diff --git a/.changes/v2.32.2024070910.md b/.changes/v2.32.2024070910.md deleted file mode 100644 index 7d01828..0000000 --- a/.changes/v2.32.2024070910.md +++ /dev/null @@ -1,6 +0,0 @@ -## 2.32.2024070910 (2024-07-09) - -ENHANCEMENTS: - -* Add initial support for Terraform Stacks files and Deployment files. This provides block and attribute completion, hover, and diagnostics along with syntax validation for Terraform Stacks and Deployment files ([terraform-ls#1745](https://github.com/hashicorp/terraform-ls/issues/1745)) - diff --git a/.changes/v2.32.3.md b/.changes/v2.32.3.md deleted file mode 100644 index 2247426..0000000 --- a/.changes/v2.32.3.md +++ /dev/null @@ -1,13 +0,0 @@ -## 2.32.3 (2024-09-05) - -ENHANCEMENTS: - -* Bump hashicorp/syntax from 0.5.0 to 0.7.0 ([#1820](https://github.com/hashicorp/vscode-terraform/issues/1820)) -* Support syntax highlighting for .tftest.hcl and .tfmock.hcl files ([#1831](https://github.com/hashicorp/vscode-terraform/issues/1831)) -* Bump terraform-ls from 0.34.2 to 0.34.3 ([#1833](https://github.com/hashicorp/vscode-terraform/issues/1833)) - -INTERNAL: - -* Bump axios to 1.7.4 ([#1818](https://github.com/hashicorp/vscode-terraform/issues/1818)) -* Bump braces to 3.0.3 ([#1819](https://github.com/hashicorp/vscode-terraform/issues/1819)) - diff --git a/.changes/v2.33.2024073012.md b/.changes/v2.33.2024073012.md deleted file mode 100644 index 83256bf..0000000 --- a/.changes/v2.33.2024073012.md +++ /dev/null @@ -1,7 +0,0 @@ -## 2.33.2024073012 (2024-07-30) - -INTERNAL: - -* Add development launch target for extensionHost ([#1805](https://github.com/hashicorp/vscode-terraform/issues/1805)) -* Replace webpack with esbuild ([#1807](https://github.com/hashicorp/vscode-terraform/issues/1807)) - diff --git a/.changes/v2.4.0.md b/.changes/v2.4.0.md deleted file mode 100644 index bbee315..0000000 --- a/.changes/v2.4.0.md +++ /dev/null @@ -1,12 +0,0 @@ -## 2.4.0 (2021-01-07) - -FEATURES: - -* Use amd64 binary to support Apple Silicon Macs ([#527](https://github.com/hashicorp/vscode-terraform/pulls/527)) -* Add command and statusbar interface for running terraform init ([#495](https://github.com/hashicorp/vscode-terraform/pulls/495)) - -ENHANCEMENTS: - -* Read LS version from stdout ([#512](https://github.com/hashicorp/vscode-terraform/pulls/512)) -* Prepare for semantic token based highlighting ([#523](https://github.com/hashicorp/vscode-terraform/pulls/523)) - diff --git a/.changes/v2.5.0.md b/.changes/v2.5.0.md deleted file mode 100644 index b9dc35e..0000000 --- a/.changes/v2.5.0.md +++ /dev/null @@ -1,7 +0,0 @@ -## 2.5.0 (2021-01-14) - -FEATURES: - -* Add setting for experimental features to enable validateOnSave ([#536](https://github.com/hashicorp/vscode-terraform/pulls/536)) -* Add terraform validate command ([#540](https://github.com/hashicorp/vscode-terraform/pulls/540)) - diff --git a/.changes/v2.6.0.md b/.changes/v2.6.0.md deleted file mode 100644 index 9eb22d4..0000000 --- a/.changes/v2.6.0.md +++ /dev/null @@ -1,6 +0,0 @@ -## 2.6.0 (2021-02-09) - -FEATURES: - -* Execute terraform plan and apply using the VSCode terminal ([#551](https://github.com/hashicorp/vscode-terraform/pulls/551)) - diff --git a/.changes/v2.7.0.md b/.changes/v2.7.0.md deleted file mode 100644 index 5017cea..0000000 --- a/.changes/v2.7.0.md +++ /dev/null @@ -1,7 +0,0 @@ -## 2.7.0 (2021-02-22) - -ENHANCEMENTS: - -* Add telemetry for error reporting ([#557](https://github.com/hashicorp/vscode-terraform/pulls/557)) -* Use version JSON output of LS during installation ([#560](https://github.com/hashicorp/vscode-terraform/pulls/560)) - diff --git a/.changes/v2.8.0.md b/.changes/v2.8.0.md deleted file mode 100644 index e1e5d8b..0000000 --- a/.changes/v2.8.0.md +++ /dev/null @@ -1,10 +0,0 @@ -## 2.8.0 (2021-03-09) - -ENHANCEMENTS: - -* Add stopClient and execWorkspaceCommand telemetry events ([#577](https://github.com/hashicorp/vscode-terraform/pulls/577)) - -BUG FIXES: - -* Cancel language server install when upgrade message is closed ([#570](https://github.com/hashicorp/vscode-terraform/pulls/570)) - diff --git a/.changes/v2.8.1.md b/.changes/v2.8.1.md deleted file mode 100644 index 3203c26..0000000 --- a/.changes/v2.8.1.md +++ /dev/null @@ -1,7 +0,0 @@ -## 2.8.1 (2021-03-10) - -BUG FIXES: - -* Improve error message for failed language server install ([#580](https://github.com/hashicorp/vscode-terraform/pulls/580)) -* Add telemetry for tracking language server installed and upgrade versions ([#579](https://github.com/hashicorp/vscode-terraform/pulls/579)) - diff --git a/.changes/v2.8.2.md b/.changes/v2.8.2.md deleted file mode 100644 index 88d4c92..0000000 --- a/.changes/v2.8.2.md +++ /dev/null @@ -1,11 +0,0 @@ -## 2.8.2 (2021-03-11) - -ENHANCEMENTS: - -* Change telemetry value for the language server version to make it easier to filter ([#582](https://github.com/hashicorp/vscode-terraform/pulls/582)) - -BUG FIXES: - -* Match correct language server binary name per platform – fixes language server upgrade problems on Windows ([#583](https://github.com/hashicorp/vscode-terraform/pulls/583)) -* Rescue version check errors on language server install ([#584](https://github.com/hashicorp/vscode-terraform/pulls/584)) - diff --git a/.changes/v2.8.3.md b/.changes/v2.8.3.md deleted file mode 100644 index 1d6af02..0000000 --- a/.changes/v2.8.3.md +++ /dev/null @@ -1,6 +0,0 @@ -## 2.8.3 (2021-03-16) - -ENHANCEMENTS: - -* Update client telemetry ([#587](https://github.com/hashicorp/vscode-terraform/pulls/587)) - diff --git a/.changes/v2.9.0.md b/.changes/v2.9.0.md deleted file mode 100644 index 9c5ea9e..0000000 --- a/.changes/v2.9.0.md +++ /dev/null @@ -1,11 +0,0 @@ -## 2.9.0 (2021-03-24) - -ENHANCEMENTS: - -* Check for language server updates every 24 hours ([#595](https://github.com/hashicorp/vscode-terraform/pulls/595)) - -BUG FIXES: - -* Normalize language server installer file paths ([#589](https://github.com/hashicorp/vscode-terraform/pulls/589)) -* Disable statusbar feature if a custom language server is in use ([#593](https://github.com/hashicorp/vscode-terraform/pulls/593)) - diff --git a/.changes/v2.9.1.md b/.changes/v2.9.1.md deleted file mode 100644 index 99431ce..0000000 --- a/.changes/v2.9.1.md +++ /dev/null @@ -1,6 +0,0 @@ -## 2.9.1 (2021-03-24) - -BUG FIXES: - -* Fix contents of vsix package - diff --git a/.changie.yaml b/.changie.yaml index 2b8e4da..c4d2583 100644 --- a/.changie.yaml +++ b/.changie.yaml @@ -9,14 +9,14 @@ versionExt: md versionFormat: '## {{.VersionNoPrefix}} ({{.Time.Format "2006-01-02"}})' kindFormat: '{{.Kind}}:' changeFormat: |- - * {{.Body}} ([{{- if not (eq .Custom.Repository "vscode-terraform")}}{{.Custom.Repository}}{{- end}}#{{.Custom.Issue}}](https://github.com/hashicorp/{{.Custom.Repository}}/issues/{{.Custom.Issue}})) + * {{.Body}} ([{{- if not (eq .Custom.Repository "vscode-opentofu")}}{{.Custom.Repository}}{{- end}}#{{.Custom.Issue}}](https://github.com/hashicorp/{{.Custom.Repository}}/issues/{{.Custom.Issue}})) custom: - key: Repository label: Repository type: enum enumOptions: - - vscode-terraform - - terraform-ls + - vscode-opentofu + - opentofu-ls - terraform-schema - hcl-lang - key: Issue diff --git a/CHANGELOG.md b/CHANGELOG.md index e69de29..6387407 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -0,0 +1,12 @@ +# Changelog + +## 0.2.1 (2024-09-11) + +## 0.2.0 (2024-09-11) + +## 0.2.0-beta1 (2024-09-11) + +## 0.1.1 (2024-09-11) + +## 0.1.0 (2024-09-11) +