From bc2ad6656a2b5c72a5e6face4bb24380ac3a3d15 Mon Sep 17 00:00:00 2001 From: Maxwell Huang-Hobbs Date: Sat, 21 Jun 2025 19:34:45 -0700 Subject: [PATCH 01/22] add `commonjs` annotation to package.json (See: https://nodejs.org/api/packages.html#packagejson-and-file-extensions) --- package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/package.json b/package.json index e1ba8c29..a2fa023e 100644 --- a/package.json +++ b/package.json @@ -6,6 +6,7 @@ "type": "git", "url": "https://github.com/Microsoft/vsce" }, + "type": "commonjs", "homepage": "https://code.visualstudio.com", "bugs": "https://github.com/Microsoft/vsce/issues", "keywords": [ From 294d71b0173bc5f2017a4dac880a0206621a14e6 Mon Sep 17 00:00:00 2001 From: Raymond Zhao <7199958+rzhao271@users.noreply.github.com> Date: Tue, 15 Jul 2025 09:17:31 -0700 Subject: [PATCH 02/22] chore: onboard OSS pipeline to 1ES template (#1185) --- build/azure-pipelines.oss.yml | 63 ++++++++++++++++++++++------------- build/build.oss.yml | 11 ++++++ 2 files changed, 51 insertions(+), 23 deletions(-) create mode 100644 build/build.oss.yml diff --git a/build/azure-pipelines.oss.yml b/build/azure-pipelines.oss.yml index 714e0b31..2a75b43b 100644 --- a/build/azure-pipelines.oss.yml +++ b/build/azure-pipelines.oss.yml @@ -8,28 +8,45 @@ variables: - name: skipComponentGovernanceDetection value: true -jobs: -- job: BuildAndTest - strategy: - matrix: - Linux: - imageName: 'ubuntu-latest' - MacOS: - imageName: 'macos-latest' - Windows: - imageName: 'windows-latest' - - pool: - vmImage: $(imageName) - - steps: - - task: NodeTool@0 - inputs: - versionSpec: '20.x' - displayName: 'Install Node.js' +resources: + repositories: + - repository: 1esPipelines + type: git + name: 1ESPipelineTemplates/1ESPipelineTemplates + ref: refs/tags/release - - script: npm ci - displayName: 'Install dependencies' +extends: + template: v1/1ES.Unofficial.PipelineTemplate.yml@1esPipelines + parameters: + sdl: + sourceAnalysisPool: 1es-oss-windows-2022-x64 + codeql: + compiled: + enabled: false + componentgovernance: + enabled: false + tsa: + enabled: true - - script: npm test - displayName: 'Run tests' \ No newline at end of file + stages: + - stage: BuildAndTest + jobs: + - job: Windows + pool: + name: '1es-oss-windows-2022-x64' + os: windows + steps: + - template: ./build/build.oss.yml@self + - job: macOS + pool: + name: Azure Pipelines + vmImage: macOS-latest + os: macOS + steps: + - template: ./build/build.oss.yml@self + - job: Linux + pool: + name: '1es-oss-ubuntu-22.04-x64' + os: linux + steps: + - template: ./build/build.oss.yml@self diff --git a/build/build.oss.yml b/build/build.oss.yml new file mode 100644 index 00000000..ff8e7918 --- /dev/null +++ b/build/build.oss.yml @@ -0,0 +1,11 @@ +steps: +- task: NodeTool@0 + inputs: + versionSpec: '20.x' + displayName: 'Install Node.js' + +- script: npm ci + displayName: 'Install dependencies' + +- script: npm test + displayName: 'Run tests' From 322bd413151cfb24393adfdf507c077cff3f70b1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 28 Jul 2025 09:35:39 -0700 Subject: [PATCH 03/22] Bump form-data from 4.0.0 to 4.0.4 (#1187) --- updated-dependencies: - dependency-name: form-data dependency-version: 4.0.4 dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 291 +++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 261 insertions(+), 30 deletions(-) diff --git a/package-lock.json b/package-lock.json index 1d4b3ae6..2cf68190 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1520,6 +1520,18 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -1879,6 +1891,19 @@ "url": "https://github.com/fb55/domutils?sponsor=1" } }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/eastasianwidth": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", @@ -1938,6 +1963,47 @@ "is-arrayish": "^0.2.1" } }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/escalade": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", @@ -2110,12 +2176,14 @@ } }, "node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.4.tgz", + "integrity": "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==", "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.2", "mime-types": "^2.1.12" }, "engines": { @@ -2157,9 +2225,12 @@ } }, "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0= sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/gauge": { "version": "2.7.4", @@ -2223,18 +2294,40 @@ } }, "node_modules/get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha1-FfWfN2+FXERpY5SPDSTNNje0q8Y= sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/github-from-package": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", @@ -2317,6 +2410,17 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", @@ -2326,6 +2430,7 @@ "version": "1.0.3", "resolved": "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz", "integrity": "sha1-ci18v8H2qoJB8W3YFOAR4fQeh5Y= sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, "dependencies": { "function-bind": "^1.1.1" }, @@ -2343,9 +2448,23 @@ } }, "node_modules/has-symbols": { - "version": "1.0.1", - "resolved": "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz", - "integrity": "sha1-n1IUdYpEGWxAbZvXbOv4HsLdMeg= sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dependencies": { + "has-symbols": "^1.0.3" + }, "engines": { "node": ">= 0.4" }, @@ -2359,6 +2478,17 @@ "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", "optional": true }, + "node_modules/hasown": { + "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" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/he": { "version": "1.2.0", "resolved": "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz", @@ -2917,6 +3047,14 @@ "url": "https://github.com/fb55/entities?sponsor=1" } }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/mdurl": { "version": "2.0.0", "resolved": "https://registry.npmmirror.com/mdurl/-/mdurl-2.0.0.tgz", @@ -5933,6 +6071,15 @@ "get-intrinsic": "^1.0.2" } }, + "call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "requires": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + } + }, "chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -6178,6 +6325,16 @@ "domhandler": "^4.2.0" } }, + "dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "requires": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + } + }, "eastasianwidth": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", @@ -6226,6 +6383,35 @@ "is-arrayish": "^0.2.1" } }, + "es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==" + }, + "es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==" + }, + "es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "requires": { + "es-errors": "^1.3.0" + } + }, + "es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "requires": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + } + }, "escalade": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", @@ -6341,12 +6527,14 @@ } }, "form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.4.tgz", + "integrity": "sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==", "requires": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.2", "mime-types": "^2.1.12" } }, @@ -6375,9 +6563,9 @@ "optional": true }, "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0= sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==" }, "gauge": { "version": "2.7.4", @@ -6430,13 +6618,29 @@ "dev": true }, "get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha1-FfWfN2+FXERpY5SPDSTNNje0q8Y= sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "requires": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + } + }, + "get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" } }, "github-from-package": { @@ -6497,6 +6701,11 @@ "unicorn-magic": "^0.3.0" } }, + "gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==" + }, "graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", @@ -6506,6 +6715,7 @@ "version": "1.0.3", "resolved": "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz", "integrity": "sha1-ci18v8H2qoJB8W3YFOAR4fQeh5Y= sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, "requires": { "function-bind": "^1.1.1" } @@ -6516,9 +6726,17 @@ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" }, "has-symbols": { - "version": "1.0.1", - "resolved": "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz", - "integrity": "sha1-n1IUdYpEGWxAbZvXbOv4HsLdMeg= sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==" + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==" + }, + "has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "requires": { + "has-symbols": "^1.0.3" + } }, "has-unicode": { "version": "2.0.1", @@ -6526,6 +6744,14 @@ "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", "optional": true }, + "hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "requires": { + "function-bind": "^1.1.2" + } + }, "he": { "version": "1.2.0", "resolved": "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz", @@ -6941,6 +7167,11 @@ } } }, + "math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==" + }, "mdurl": { "version": "2.0.0", "resolved": "https://registry.npmmirror.com/mdurl/-/mdurl-2.0.0.tgz", From 7241240007ac1c447ad29b6069934f5f8b4e0ea0 Mon Sep 17 00:00:00 2001 From: BeniBenj Date: Mon, 4 Aug 2025 17:28:10 +0200 Subject: [PATCH 04/22] update secretlint --- package-lock.json | 709 ++++++++++++++++++++++++---------------------- package.json | 10 +- 2 files changed, 369 insertions(+), 350 deletions(-) diff --git a/package-lock.json b/package-lock.json index 2cf68190..6c42d9ec 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,10 +10,10 @@ "license": "MIT", "dependencies": { "@azure/identity": "^4.1.0", - "@secretlint/node": "^10.1.1", - "@secretlint/secretlint-formatter-sarif": "^10.1.1", - "@secretlint/secretlint-rule-no-dotenv": "^10.1.1", - "@secretlint/secretlint-rule-preset-recommend": "^10.1.1", + "@secretlint/node": "^10.1.2", + "@secretlint/secretlint-formatter-sarif": "^10.1.2", + "@secretlint/secretlint-rule-no-dotenv": "^10.1.2", + "@secretlint/secretlint-rule-preset-recommend": "^10.1.2", "@vscode/vsce-sign": "^2.0.0", "azure-devops-node-api": "^12.5.0", "chalk": "^4.1.2", @@ -30,7 +30,7 @@ "minimatch": "^3.0.3", "parse-semver": "^1.1.1", "read": "^1.0.7", - "secretlint": "^10.1.1", + "secretlint": "^10.1.2", "semver": "^7.5.2", "tmp": "^0.2.3", "typed-rest-client": "^1.8.4", @@ -634,26 +634,26 @@ } }, "node_modules/@secretlint/config-creator": { - "version": "10.1.1", - "resolved": "https://registry.npmjs.org/@secretlint/config-creator/-/config-creator-10.1.1.tgz", - "integrity": "sha512-TJ42CHZqqnEe9ORvIXVVMqdu3KAtyZRxLspjFexo6XgrwJ6CoFHQYzIihilqRjo2sJh9HMrpnYSj/5hopofGrA==", + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@secretlint/config-creator/-/config-creator-10.2.2.tgz", + "integrity": "sha512-BynOBe7Hn3LJjb3CqCHZjeNB09s/vgf0baBaHVw67w7gHF0d25c3ZsZ5+vv8TgwSchRdUCRrbbcq5i2B1fJ2QQ==", "license": "MIT", "dependencies": { - "@secretlint/types": "^10.1.1" + "@secretlint/types": "^10.2.2" }, "engines": { "node": ">=20.0.0" } }, "node_modules/@secretlint/config-loader": { - "version": "10.1.1", - "resolved": "https://registry.npmjs.org/@secretlint/config-loader/-/config-loader-10.1.1.tgz", - "integrity": "sha512-jBClVFmS6Yu/zI5ejBCRF5a5ASYsE4gOjogjB+WsaHbQHtGvnyY7I26Qtdg4ihCc/VPKYQg0LdM75pLTXzwsjg==", + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@secretlint/config-loader/-/config-loader-10.2.2.tgz", + "integrity": "sha512-ndjjQNgLg4DIcMJp4iaRD6xb9ijWQZVbd9694Ol2IszBIbGPPkwZHzJYKICbTBmh6AH/pLr0CiCaWdGJU7RbpQ==", "license": "MIT", "dependencies": { - "@secretlint/profiler": "^10.1.1", - "@secretlint/resolver": "^10.1.1", - "@secretlint/types": "^10.1.1", + "@secretlint/profiler": "^10.2.2", + "@secretlint/resolver": "^10.2.2", + "@secretlint/types": "^10.2.2", "ajv": "^8.17.1", "debug": "^4.4.1", "rc-config-loader": "^4.1.3" @@ -685,13 +685,13 @@ "license": "MIT" }, "node_modules/@secretlint/core": { - "version": "10.1.1", - "resolved": "https://registry.npmjs.org/@secretlint/core/-/core-10.1.1.tgz", - "integrity": "sha512-COLCxSoH/iVQdLeaZPVtBj0UWKOagO09SqYkCQgfFfZ+soGxKVK405dL317r4PnH9Pm8/s8xQC6OSY5rWTRObQ==", + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@secretlint/core/-/core-10.2.2.tgz", + "integrity": "sha512-6rdwBwLP9+TO3rRjMVW1tX+lQeo5gBbxl1I5F8nh8bgGtKwdlCMhMKsBWzWg1ostxx/tIG7OjZI0/BxsP8bUgw==", "license": "MIT", "dependencies": { - "@secretlint/profiler": "^10.1.1", - "@secretlint/types": "^10.1.1", + "@secretlint/profiler": "^10.2.2", + "@secretlint/types": "^10.2.2", "debug": "^4.4.1", "structured-source": "^4.0.0" }, @@ -700,39 +700,78 @@ } }, "node_modules/@secretlint/formatter": { - "version": "10.1.1", - "resolved": "https://registry.npmjs.org/@secretlint/formatter/-/formatter-10.1.1.tgz", - "integrity": "sha512-Gpd8gTPN121SJ0h/9e6nWlZU7PitfhXUiEzW7Kyswg6kNGs+bSqmgTgWFtbo1VQ4ygJYiveWPNT05RCImBexJw==", + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@secretlint/formatter/-/formatter-10.2.2.tgz", + "integrity": "sha512-10f/eKV+8YdGKNQmoDUD1QnYL7TzhI2kzyx95vsJKbEa8akzLAR5ZrWIZ3LbcMmBLzxlSQMMccRmi05yDQ5YDA==", "license": "MIT", "dependencies": { - "@secretlint/resolver": "^10.1.1", - "@secretlint/types": "^10.1.1", - "@textlint/linter-formatter": "^14.8.4", - "@textlint/module-interop": "^14.8.4", - "@textlint/types": "^14.8.4", - "chalk": "^4.1.2", + "@secretlint/resolver": "^10.2.2", + "@secretlint/types": "^10.2.2", + "@textlint/linter-formatter": "^15.2.0", + "@textlint/module-interop": "^15.2.0", + "@textlint/types": "^15.2.0", + "chalk": "^5.4.1", "debug": "^4.4.1", "pluralize": "^8.0.0", - "strip-ansi": "^6.0.1", + "strip-ansi": "^7.1.0", "table": "^6.9.0", - "terminal-link": "^2.1.1" + "terminal-link": "^4.0.0" }, "engines": { "node": ">=20.0.0" } }, + "node_modules/@secretlint/formatter/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@secretlint/formatter/node_modules/chalk": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.5.0.tgz", + "integrity": "sha512-1tm8DTaJhPBG3bIkVeZt1iZM9GfSX2lzOeDVZH9R9ffRHpmHvxZ/QhgQH/aDTkswQVt+YHdXAdS/In/30OjCbg==", + "license": "MIT", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/@secretlint/formatter/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, "node_modules/@secretlint/node": { - "version": "10.1.1", - "resolved": "https://registry.npmjs.org/@secretlint/node/-/node-10.1.1.tgz", - "integrity": "sha512-AhN+IGqljVObm8a+B33b23FY79wihu5E61Nd3oYSoZV7SxUvMjpafqhLfpt4frNSY7Ghf/pirWu7JY7GMujFrA==", + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@secretlint/node/-/node-10.2.2.tgz", + "integrity": "sha512-eZGJQgcg/3WRBwX1bRnss7RmHHK/YlP/l7zOQsrjexYt6l+JJa5YhUmHbuGXS94yW0++3YkEJp0kQGYhiw1DMQ==", "license": "MIT", "dependencies": { - "@secretlint/config-loader": "^10.1.1", - "@secretlint/core": "^10.1.1", - "@secretlint/formatter": "^10.1.1", - "@secretlint/profiler": "^10.1.1", - "@secretlint/source-creator": "^10.1.1", - "@secretlint/types": "^10.1.1", + "@secretlint/config-loader": "^10.2.2", + "@secretlint/core": "^10.2.2", + "@secretlint/formatter": "^10.2.2", + "@secretlint/profiler": "^10.2.2", + "@secretlint/source-creator": "^10.2.2", + "@secretlint/types": "^10.2.2", "debug": "^4.4.1", "p-map": "^7.0.3" }, @@ -741,54 +780,54 @@ } }, "node_modules/@secretlint/profiler": { - "version": "10.1.1", - "resolved": "https://registry.npmjs.org/@secretlint/profiler/-/profiler-10.1.1.tgz", - "integrity": "sha512-kReI+Wr7IQz0LbVwYByzlnPbx4BEF2oEWJBc4Oa45g24alCjHu+jD9h9mzkTJqYUgMnVYD3o7HfzeqxFrV+9XA==", + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@secretlint/profiler/-/profiler-10.2.2.tgz", + "integrity": "sha512-qm9rWfkh/o8OvzMIfY8a5bCmgIniSpltbVlUVl983zDG1bUuQNd1/5lUEeWx5o/WJ99bXxS7yNI4/KIXfHexig==", "license": "MIT" }, "node_modules/@secretlint/resolver": { - "version": "10.1.1", - "resolved": "https://registry.npmjs.org/@secretlint/resolver/-/resolver-10.1.1.tgz", - "integrity": "sha512-GdQzxnBtdBRjBULvZ8ERkaRqDp0njVwXrzBCav1pb0XshVk76C1cjeDqtTqM4RJ1Awo/g5U5MIWYztYv67v5Gg==", + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@secretlint/resolver/-/resolver-10.2.2.tgz", + "integrity": "sha512-3md0cp12e+Ae5V+crPQYGd6aaO7ahw95s28OlULGyclyyUtf861UoRGS2prnUrKh7MZb23kdDOyGCYb9br5e4w==", "license": "MIT" }, "node_modules/@secretlint/secretlint-formatter-sarif": { - "version": "10.1.1", - "resolved": "https://registry.npmjs.org/@secretlint/secretlint-formatter-sarif/-/secretlint-formatter-sarif-10.1.1.tgz", - "integrity": "sha512-Dyq8nzy6domjSlZKX1E5PEzuWxeTqjQJWrlXBmVmOjwLBLfRZDlm5Vq+AduBmEk03KEIKIZi4cZQwsniuRPO9Q==", + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@secretlint/secretlint-formatter-sarif/-/secretlint-formatter-sarif-10.2.2.tgz", + "integrity": "sha512-ojiF9TGRKJJw308DnYBucHxkpNovDNu1XvPh7IfUp0A12gzTtxuWDqdpuVezL7/IP8Ua7mp5/VkDMN9OLp1doQ==", "license": "MIT", "dependencies": { - "node-sarif-builder": "^2.0.3" + "node-sarif-builder": "^3.2.0" } }, "node_modules/@secretlint/secretlint-rule-no-dotenv": { - "version": "10.1.1", - "resolved": "https://registry.npmjs.org/@secretlint/secretlint-rule-no-dotenv/-/secretlint-rule-no-dotenv-10.1.1.tgz", - "integrity": "sha512-a3/sOUUtEHuw1HCadtxUjViNeomiiohfJj+rwtHxJkCq4pjITS3HSYhQBXnNvkctQNljKIzFm7JUA/4QJ6I4sQ==", + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@secretlint/secretlint-rule-no-dotenv/-/secretlint-rule-no-dotenv-10.2.2.tgz", + "integrity": "sha512-KJRbIShA9DVc5Va3yArtJ6QDzGjg3PRa1uYp9As4RsyKtKSSZjI64jVca57FZ8gbuk4em0/0Jq+uy6485wxIdg==", "license": "MIT", "dependencies": { - "@secretlint/types": "^10.1.1" + "@secretlint/types": "^10.2.2" }, "engines": { "node": ">=20.0.0" } }, "node_modules/@secretlint/secretlint-rule-preset-recommend": { - "version": "10.1.1", - "resolved": "https://registry.npmjs.org/@secretlint/secretlint-rule-preset-recommend/-/secretlint-rule-preset-recommend-10.1.1.tgz", - "integrity": "sha512-+GeISCXVgpnoeRZE4ZPsuO97+fm6z8Ge23LNq6LvR9ZJAq018maXVftkJhHj4hnvYB5URUAEerBBkPGNk5/Ong==", + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@secretlint/secretlint-rule-preset-recommend/-/secretlint-rule-preset-recommend-10.2.2.tgz", + "integrity": "sha512-K3jPqjva8bQndDKJqctnGfwuAxU2n9XNCPtbXVI5JvC7FnQiNg/yWlQPbMUlBXtBoBGFYp08A94m6fvtc9v+zA==", "license": "MIT", "engines": { "node": ">=20.0.0" } }, "node_modules/@secretlint/source-creator": { - "version": "10.1.1", - "resolved": "https://registry.npmjs.org/@secretlint/source-creator/-/source-creator-10.1.1.tgz", - "integrity": "sha512-IWjvHcE0bhC/x88a9M9jbZlFRZGUEbBzujxrs2KzI5IQ2BXTBRBRhRSjE/BEpWqDHILB22c3mfam8X+UjukphA==", + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@secretlint/source-creator/-/source-creator-10.2.2.tgz", + "integrity": "sha512-h6I87xJfwfUTgQ7irWq7UTdq/Bm1RuQ/fYhA3dtTIAop5BwSFmZyrchph4WcoEvbN460BWKmk4RYSvPElIIvxw==", "license": "MIT", "dependencies": { - "@secretlint/types": "^10.1.1", + "@secretlint/types": "^10.2.2", "istextorbinary": "^9.5.0" }, "engines": { @@ -796,9 +835,9 @@ } }, "node_modules/@secretlint/types": { - "version": "10.1.1", - "resolved": "https://registry.npmjs.org/@secretlint/types/-/types-10.1.1.tgz", - "integrity": "sha512-/JGAvVkurVHkargk3AC7UxRy+Ymc+52AVBO/fZA5pShuLW2dX4O/rKc4n8cyhQiOb/3ym5ACSlLQuQ8apPfxrQ==", + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@secretlint/types/-/types-10.2.2.tgz", + "integrity": "sha512-Nqc90v4lWCXyakD6xNyNACBJNJ0tNCwj2WNk/7ivyacYHxiITVgmLUFXTBOeCdy79iz6HtN9Y31uw/jbLrdOAg==", "license": "MIT", "engines": { "node": ">=20.0.0" @@ -817,22 +856,22 @@ } }, "node_modules/@textlint/ast-node-types": { - "version": "14.8.4", - "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.8.4.tgz", - "integrity": "sha512-+fI7miec/r9VeniFV9ppL4jRCmHNsTxieulTUf/4tvGII3db5hGriKHC4p/diq1SkQ9Sgs7kg6UyydxZtpTz1Q==", + "version": "15.2.1", + "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-15.2.1.tgz", + "integrity": "sha512-20fEcLPsXg81yWpApv4FQxrZmlFF/Ta7/kz1HGIL+pJo5cSTmkc+eCki3GpOPZIoZk0tbJU8hrlwUb91F+3SNQ==", "license": "MIT" }, "node_modules/@textlint/linter-formatter": { - "version": "14.8.4", - "resolved": "https://registry.npmjs.org/@textlint/linter-formatter/-/linter-formatter-14.8.4.tgz", - "integrity": "sha512-sZ0UfYRDBNHnfMVBqLqqYnqTB7Ec169ljlmo+SEHR1T+dHUPYy1/DZK4p7QREXlBSFL4cnkswETCbc9xRodm4Q==", + "version": "15.2.1", + "resolved": "https://registry.npmjs.org/@textlint/linter-formatter/-/linter-formatter-15.2.1.tgz", + "integrity": "sha512-oollG/BHa07+mMt372amxHohteASC+Zxgollc1sZgiyxo4S6EuureV3a4QIQB0NecA+Ak3d0cl0WI/8nou38jw==", "license": "MIT", "dependencies": { "@azu/format-text": "^1.0.2", "@azu/style-format": "^1.0.1", - "@textlint/module-interop": "14.8.4", - "@textlint/resolver": "14.8.4", - "@textlint/types": "14.8.4", + "@textlint/module-interop": "15.2.1", + "@textlint/resolver": "15.2.1", + "@textlint/types": "15.2.1", "chalk": "^4.1.2", "debug": "^4.4.1", "js-yaml": "^3.14.1", @@ -873,24 +912,24 @@ "license": "MIT" }, "node_modules/@textlint/module-interop": { - "version": "14.8.4", - "resolved": "https://registry.npmjs.org/@textlint/module-interop/-/module-interop-14.8.4.tgz", - "integrity": "sha512-1LdPYLAVpa27NOt6EqvuFO99s4XLB0c19Hw9xKSG6xQ1K82nUEyuWhzTQKb3KJ5Qx7qj14JlXZLfnEuL6A16Bw==", + "version": "15.2.1", + "resolved": "https://registry.npmjs.org/@textlint/module-interop/-/module-interop-15.2.1.tgz", + "integrity": "sha512-b/C/ZNrm05n1ypymDknIcpkBle30V2ZgE3JVqQlA9PnQV46Ky510qrZk6s9yfKgA3m1YRnAw04m8xdVtqjq1qg==", "license": "MIT" }, "node_modules/@textlint/resolver": { - "version": "14.8.4", - "resolved": "https://registry.npmjs.org/@textlint/resolver/-/resolver-14.8.4.tgz", - "integrity": "sha512-nMDOgDAVwNU9ommh+Db0U+MCMNDPbQ/1HBNjbnHwxZkCpcT6hsAJwBe38CW/DtWVUv8yeR4R40IYNPT84srNwA==", + "version": "15.2.1", + "resolved": "https://registry.npmjs.org/@textlint/resolver/-/resolver-15.2.1.tgz", + "integrity": "sha512-FY3aK4tElEcOJVUsaMj4Zro4jCtKEEwUMIkDL0tcn6ljNcgOF7Em+KskRRk/xowFWayqDtdz5T3u7w/6fjjuJQ==", "license": "MIT" }, "node_modules/@textlint/types": { - "version": "14.8.4", - "resolved": "https://registry.npmjs.org/@textlint/types/-/types-14.8.4.tgz", - "integrity": "sha512-9nyY8vVXlr8hHKxa6+37omJhXWCwovMQcgMteuldYd4dOxGm14AK2nXdkgtKEUQnzLGaXy46xwLCfhQy7V7/YA==", + "version": "15.2.1", + "resolved": "https://registry.npmjs.org/@textlint/types/-/types-15.2.1.tgz", + "integrity": "sha512-zyqNhSatK1cwxDUgosEEN43hFh3WCty9Zm2Vm3ogU566IYegifwqN54ey/CiRy/DiO4vMcFHykuQnh2Zwp6LLw==", "license": "MIT", "dependencies": { - "@textlint/ast-node-types": "14.8.4" + "@textlint/ast-node-types": "15.2.1" } }, "node_modules/@tsconfig/node10": { @@ -1231,27 +1270,15 @@ } }, "node_modules/ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-7.0.0.tgz", + "integrity": "sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==", "license": "MIT", "dependencies": { - "type-fest": "^0.21.3" + "environment": "^1.0.0" }, "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/ansi-escapes/node_modules/type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -1954,13 +1981,16 @@ "url": "https://github.com/fb55/entities?sponsor=1" } }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "node_modules/environment": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/environment/-/environment-1.1.0.tgz", + "integrity": "sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==", "license": "MIT", - "dependencies": { - "is-arrayish": "^0.2.1" + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/es-define-property": { @@ -2589,6 +2619,18 @@ "node": ">=8" } }, + "node_modules/index-to-position": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/index-to-position/-/index-to-position-1.1.0.tgz", + "integrity": "sha512-XPdx9Dq4t9Qk1mTMbWONJqU7boCoumEH7fRET37HX5+khDUl3J2W6PdALxhILYlIYx2amlwYcRPp28p0tSiojg==", + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", @@ -2601,12 +2643,6 @@ "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", "optional": true }, - "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==", - "license": "MIT" - }, "node_modules/is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", @@ -2775,15 +2811,6 @@ "js-yaml": "bin/js-yaml.js" } }, - "node_modules/json-parse-even-better-errors": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.2.tgz", - "integrity": "sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==", - "license": "MIT", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, "node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", @@ -2894,15 +2921,6 @@ "node": ">=6" } }, - "node_modules/lines-and-columns": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-2.0.4.tgz", - "integrity": "sha512-wM1+Z03eypVAVUCE7QdSqpVIvelbOakn1M0bPDoA4SGWPx3sNDVUiMo3L6To6WWGClB7VyXnhQ4Sn7gxiJbE6A==", - "license": "MIT", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - } - }, "node_modules/linkify-it": { "version": "5.0.0", "resolved": "https://registry.npmmirror.com/linkify-it/-/linkify-it-5.0.0.tgz", @@ -3366,22 +3384,22 @@ "optional": true }, "node_modules/node-sarif-builder": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/node-sarif-builder/-/node-sarif-builder-2.0.3.tgz", - "integrity": "sha512-Pzr3rol8fvhG/oJjIq2NTVB0vmdNNlz22FENhhPojYRZ4/ee08CfK4YuKmuL54V9MLhI1kpzxfOJ/63LzmZzDg==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/node-sarif-builder/-/node-sarif-builder-3.2.0.tgz", + "integrity": "sha512-kVIOdynrF2CRodHZeP/97Rh1syTUHBNiw17hUCIVhlhEsWlfJm19MuO56s4MdKbr22xWx6mzMnNAgXzVlIYM9Q==", "license": "MIT", "dependencies": { - "@types/sarif": "^2.1.4", - "fs-extra": "^10.0.0" + "@types/sarif": "^2.1.7", + "fs-extra": "^11.1.1" }, "engines": { - "node": ">=14" + "node": ">=18" } }, "node_modules/node-sarif-builder/node_modules/fs-extra": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "version": "11.3.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.0.tgz", + "integrity": "sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==", "license": "MIT", "dependencies": { "graceful-fs": "^4.2.0", @@ -3389,7 +3407,7 @@ "universalify": "^2.0.0" }, "engines": { - "node": ">=12" + "node": ">=14.14" } }, "node_modules/node-sarif-builder/node_modules/jsonfile": { @@ -3576,31 +3594,17 @@ "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==" }, "node_modules/parse-json": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-7.1.1.tgz", - "integrity": "sha512-SgOTCX/EZXtZxBE5eJ97P4yGM5n37BwRU+YMsH4vNzFqJV/oWFXXCmwFlgWUM4PrakybVOueJJ6pwHqSVhTFDw==", + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-8.3.0.tgz", + "integrity": "sha512-ybiGyvspI+fAoRQbIPRddCcSTV9/LsJbf0e/S85VLowVGzRmokfneg2kwVW/KU5rOXrPSbF1qAKPMgNTqqROQQ==", "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.21.4", - "error-ex": "^1.3.2", - "json-parse-even-better-errors": "^3.0.0", - "lines-and-columns": "^2.0.3", - "type-fest": "^3.8.0" + "@babel/code-frame": "^7.26.2", + "index-to-position": "^1.1.0", + "type-fest": "^4.39.1" }, "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/parse-json/node_modules/type-fest": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.13.1.tgz", - "integrity": "sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==", - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=14.16" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -3859,18 +3863,31 @@ } }, "node_modules/read-pkg": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-8.1.0.tgz", - "integrity": "sha512-PORM8AgzXeskHO/WEv312k9U03B8K9JSiWF/8N9sUuFjBa+9SF2u6K7VClzXwDXab51jCd8Nd36CNM+zR97ScQ==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-9.0.1.tgz", + "integrity": "sha512-9viLL4/n1BJUCT1NXVTdS1jtm80yDEgR5T4yCelII49Mbj0v1rZdKqj7zCiYdbB0CuCgdrvHcNogAKTFPBocFA==", "license": "MIT", "dependencies": { - "@types/normalize-package-data": "^2.4.1", + "@types/normalize-package-data": "^2.4.3", "normalize-package-data": "^6.0.0", - "parse-json": "^7.0.0", - "type-fest": "^4.2.0" + "parse-json": "^8.0.0", + "type-fest": "^4.6.0", + "unicorn-magic": "^0.1.0" }, "engines": { - "node": ">=16" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg/node_modules/unicorn-magic": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.1.0.tgz", + "integrity": "sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==", + "license": "MIT", + "engines": { + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -3996,18 +4013,18 @@ "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" }, "node_modules/secretlint": { - "version": "10.1.1", - "resolved": "https://registry.npmjs.org/secretlint/-/secretlint-10.1.1.tgz", - "integrity": "sha512-q50i+I9w6HH8P6o34LVq6M3hm5GZn2Eq5lYGHkEByOAbVqBHn8gsMGgyxjP1xSrSv1QjDtjxs/zKPm6JtkNzGw==", + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/secretlint/-/secretlint-10.2.2.tgz", + "integrity": "sha512-xVpkeHV/aoWe4vP4TansF622nBEImzCY73y/0042DuJ29iKIaqgoJ8fGxre3rVSHHbxar4FdJobmTnLp9AU0eg==", "license": "MIT", "dependencies": { - "@secretlint/config-creator": "^10.1.1", - "@secretlint/formatter": "^10.1.1", - "@secretlint/node": "^10.1.1", - "@secretlint/profiler": "^10.1.1", + "@secretlint/config-creator": "^10.2.2", + "@secretlint/formatter": "^10.2.2", + "@secretlint/node": "^10.2.2", + "@secretlint/profiler": "^10.2.2", "debug": "^4.4.1", "globby": "^14.1.0", - "read-pkg": "^8.1.0" + "read-pkg": "^9.0.1" }, "bin": { "secretlint": "bin/secretlint.js" @@ -4345,16 +4362,19 @@ } }, "node_modules/supports-hyperlinks": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", - "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-3.2.0.tgz", + "integrity": "sha512-zFObLMyZeEwzAoKCyu1B91U79K2t7ApXuQfo8OuxwXLDgcKxuwM+YvcbIhm6QWqz7mHUH1TVytR1PwVVjEuMig==", "license": "MIT", "dependencies": { "has-flag": "^4.0.0", "supports-color": "^7.0.0" }, "engines": { - "node": ">=8" + "node": ">=14.18" + }, + "funding": { + "url": "https://github.com/chalk/supports-hyperlinks?sponsor=1" } }, "node_modules/supports-preserve-symlinks-flag": { @@ -4437,16 +4457,16 @@ } }, "node_modules/terminal-link": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", - "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-4.0.0.tgz", + "integrity": "sha512-lk+vH+MccxNqgVqSnkMVKx4VLJfnLjDBGzH16JVZjKE2DoxP57s6/vt6JmXV5I3jBcfGrxNrYtC+mPtU7WJztA==", "license": "MIT", "dependencies": { - "ansi-escapes": "^4.2.1", - "supports-hyperlinks": "^2.0.0" + "ansi-escapes": "^7.0.0", + "supports-hyperlinks": "^3.2.0" }, "engines": { - "node": ">=8" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -5395,21 +5415,21 @@ } }, "@secretlint/config-creator": { - "version": "10.1.1", - "resolved": "https://registry.npmjs.org/@secretlint/config-creator/-/config-creator-10.1.1.tgz", - "integrity": "sha512-TJ42CHZqqnEe9ORvIXVVMqdu3KAtyZRxLspjFexo6XgrwJ6CoFHQYzIihilqRjo2sJh9HMrpnYSj/5hopofGrA==", + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@secretlint/config-creator/-/config-creator-10.2.2.tgz", + "integrity": "sha512-BynOBe7Hn3LJjb3CqCHZjeNB09s/vgf0baBaHVw67w7gHF0d25c3ZsZ5+vv8TgwSchRdUCRrbbcq5i2B1fJ2QQ==", "requires": { - "@secretlint/types": "^10.1.1" + "@secretlint/types": "^10.2.2" } }, "@secretlint/config-loader": { - "version": "10.1.1", - "resolved": "https://registry.npmjs.org/@secretlint/config-loader/-/config-loader-10.1.1.tgz", - "integrity": "sha512-jBClVFmS6Yu/zI5ejBCRF5a5ASYsE4gOjogjB+WsaHbQHtGvnyY7I26Qtdg4ihCc/VPKYQg0LdM75pLTXzwsjg==", + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@secretlint/config-loader/-/config-loader-10.2.2.tgz", + "integrity": "sha512-ndjjQNgLg4DIcMJp4iaRD6xb9ijWQZVbd9694Ol2IszBIbGPPkwZHzJYKICbTBmh6AH/pLr0CiCaWdGJU7RbpQ==", "requires": { - "@secretlint/profiler": "^10.1.1", - "@secretlint/resolver": "^10.1.1", - "@secretlint/types": "^10.1.1", + "@secretlint/profiler": "^10.2.2", + "@secretlint/resolver": "^10.2.2", + "@secretlint/types": "^10.2.2", "ajv": "^8.17.1", "debug": "^4.4.1", "rc-config-loader": "^4.1.3" @@ -5434,93 +5454,113 @@ } }, "@secretlint/core": { - "version": "10.1.1", - "resolved": "https://registry.npmjs.org/@secretlint/core/-/core-10.1.1.tgz", - "integrity": "sha512-COLCxSoH/iVQdLeaZPVtBj0UWKOagO09SqYkCQgfFfZ+soGxKVK405dL317r4PnH9Pm8/s8xQC6OSY5rWTRObQ==", + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@secretlint/core/-/core-10.2.2.tgz", + "integrity": "sha512-6rdwBwLP9+TO3rRjMVW1tX+lQeo5gBbxl1I5F8nh8bgGtKwdlCMhMKsBWzWg1ostxx/tIG7OjZI0/BxsP8bUgw==", "requires": { - "@secretlint/profiler": "^10.1.1", - "@secretlint/types": "^10.1.1", + "@secretlint/profiler": "^10.2.2", + "@secretlint/types": "^10.2.2", "debug": "^4.4.1", "structured-source": "^4.0.0" } }, "@secretlint/formatter": { - "version": "10.1.1", - "resolved": "https://registry.npmjs.org/@secretlint/formatter/-/formatter-10.1.1.tgz", - "integrity": "sha512-Gpd8gTPN121SJ0h/9e6nWlZU7PitfhXUiEzW7Kyswg6kNGs+bSqmgTgWFtbo1VQ4ygJYiveWPNT05RCImBexJw==", - "requires": { - "@secretlint/resolver": "^10.1.1", - "@secretlint/types": "^10.1.1", - "@textlint/linter-formatter": "^14.8.4", - "@textlint/module-interop": "^14.8.4", - "@textlint/types": "^14.8.4", - "chalk": "^4.1.2", + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@secretlint/formatter/-/formatter-10.2.2.tgz", + "integrity": "sha512-10f/eKV+8YdGKNQmoDUD1QnYL7TzhI2kzyx95vsJKbEa8akzLAR5ZrWIZ3LbcMmBLzxlSQMMccRmi05yDQ5YDA==", + "requires": { + "@secretlint/resolver": "^10.2.2", + "@secretlint/types": "^10.2.2", + "@textlint/linter-formatter": "^15.2.0", + "@textlint/module-interop": "^15.2.0", + "@textlint/types": "^15.2.0", + "chalk": "^5.4.1", "debug": "^4.4.1", "pluralize": "^8.0.0", - "strip-ansi": "^6.0.1", + "strip-ansi": "^7.1.0", "table": "^6.9.0", - "terminal-link": "^2.1.1" + "terminal-link": "^4.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==" + }, + "chalk": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.5.0.tgz", + "integrity": "sha512-1tm8DTaJhPBG3bIkVeZt1iZM9GfSX2lzOeDVZH9R9ffRHpmHvxZ/QhgQH/aDTkswQVt+YHdXAdS/In/30OjCbg==" + }, + "strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "requires": { + "ansi-regex": "^6.0.1" + } + } } }, "@secretlint/node": { - "version": "10.1.1", - "resolved": "https://registry.npmjs.org/@secretlint/node/-/node-10.1.1.tgz", - "integrity": "sha512-AhN+IGqljVObm8a+B33b23FY79wihu5E61Nd3oYSoZV7SxUvMjpafqhLfpt4frNSY7Ghf/pirWu7JY7GMujFrA==", - "requires": { - "@secretlint/config-loader": "^10.1.1", - "@secretlint/core": "^10.1.1", - "@secretlint/formatter": "^10.1.1", - "@secretlint/profiler": "^10.1.1", - "@secretlint/source-creator": "^10.1.1", - "@secretlint/types": "^10.1.1", + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@secretlint/node/-/node-10.2.2.tgz", + "integrity": "sha512-eZGJQgcg/3WRBwX1bRnss7RmHHK/YlP/l7zOQsrjexYt6l+JJa5YhUmHbuGXS94yW0++3YkEJp0kQGYhiw1DMQ==", + "requires": { + "@secretlint/config-loader": "^10.2.2", + "@secretlint/core": "^10.2.2", + "@secretlint/formatter": "^10.2.2", + "@secretlint/profiler": "^10.2.2", + "@secretlint/source-creator": "^10.2.2", + "@secretlint/types": "^10.2.2", "debug": "^4.4.1", "p-map": "^7.0.3" } }, "@secretlint/profiler": { - "version": "10.1.1", - "resolved": "https://registry.npmjs.org/@secretlint/profiler/-/profiler-10.1.1.tgz", - "integrity": "sha512-kReI+Wr7IQz0LbVwYByzlnPbx4BEF2oEWJBc4Oa45g24alCjHu+jD9h9mzkTJqYUgMnVYD3o7HfzeqxFrV+9XA==" + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@secretlint/profiler/-/profiler-10.2.2.tgz", + "integrity": "sha512-qm9rWfkh/o8OvzMIfY8a5bCmgIniSpltbVlUVl983zDG1bUuQNd1/5lUEeWx5o/WJ99bXxS7yNI4/KIXfHexig==" }, "@secretlint/resolver": { - "version": "10.1.1", - "resolved": "https://registry.npmjs.org/@secretlint/resolver/-/resolver-10.1.1.tgz", - "integrity": "sha512-GdQzxnBtdBRjBULvZ8ERkaRqDp0njVwXrzBCav1pb0XshVk76C1cjeDqtTqM4RJ1Awo/g5U5MIWYztYv67v5Gg==" + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@secretlint/resolver/-/resolver-10.2.2.tgz", + "integrity": "sha512-3md0cp12e+Ae5V+crPQYGd6aaO7ahw95s28OlULGyclyyUtf861UoRGS2prnUrKh7MZb23kdDOyGCYb9br5e4w==" }, "@secretlint/secretlint-formatter-sarif": { - "version": "10.1.1", - "resolved": "https://registry.npmjs.org/@secretlint/secretlint-formatter-sarif/-/secretlint-formatter-sarif-10.1.1.tgz", - "integrity": "sha512-Dyq8nzy6domjSlZKX1E5PEzuWxeTqjQJWrlXBmVmOjwLBLfRZDlm5Vq+AduBmEk03KEIKIZi4cZQwsniuRPO9Q==", + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@secretlint/secretlint-formatter-sarif/-/secretlint-formatter-sarif-10.2.2.tgz", + "integrity": "sha512-ojiF9TGRKJJw308DnYBucHxkpNovDNu1XvPh7IfUp0A12gzTtxuWDqdpuVezL7/IP8Ua7mp5/VkDMN9OLp1doQ==", "requires": { - "node-sarif-builder": "^2.0.3" + "node-sarif-builder": "^3.2.0" } }, "@secretlint/secretlint-rule-no-dotenv": { - "version": "10.1.1", - "resolved": "https://registry.npmjs.org/@secretlint/secretlint-rule-no-dotenv/-/secretlint-rule-no-dotenv-10.1.1.tgz", - "integrity": "sha512-a3/sOUUtEHuw1HCadtxUjViNeomiiohfJj+rwtHxJkCq4pjITS3HSYhQBXnNvkctQNljKIzFm7JUA/4QJ6I4sQ==", + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@secretlint/secretlint-rule-no-dotenv/-/secretlint-rule-no-dotenv-10.2.2.tgz", + "integrity": "sha512-KJRbIShA9DVc5Va3yArtJ6QDzGjg3PRa1uYp9As4RsyKtKSSZjI64jVca57FZ8gbuk4em0/0Jq+uy6485wxIdg==", "requires": { - "@secretlint/types": "^10.1.1" + "@secretlint/types": "^10.2.2" } }, "@secretlint/secretlint-rule-preset-recommend": { - "version": "10.1.1", - "resolved": "https://registry.npmjs.org/@secretlint/secretlint-rule-preset-recommend/-/secretlint-rule-preset-recommend-10.1.1.tgz", - "integrity": "sha512-+GeISCXVgpnoeRZE4ZPsuO97+fm6z8Ge23LNq6LvR9ZJAq018maXVftkJhHj4hnvYB5URUAEerBBkPGNk5/Ong==" + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@secretlint/secretlint-rule-preset-recommend/-/secretlint-rule-preset-recommend-10.2.2.tgz", + "integrity": "sha512-K3jPqjva8bQndDKJqctnGfwuAxU2n9XNCPtbXVI5JvC7FnQiNg/yWlQPbMUlBXtBoBGFYp08A94m6fvtc9v+zA==" }, "@secretlint/source-creator": { - "version": "10.1.1", - "resolved": "https://registry.npmjs.org/@secretlint/source-creator/-/source-creator-10.1.1.tgz", - "integrity": "sha512-IWjvHcE0bhC/x88a9M9jbZlFRZGUEbBzujxrs2KzI5IQ2BXTBRBRhRSjE/BEpWqDHILB22c3mfam8X+UjukphA==", + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@secretlint/source-creator/-/source-creator-10.2.2.tgz", + "integrity": "sha512-h6I87xJfwfUTgQ7irWq7UTdq/Bm1RuQ/fYhA3dtTIAop5BwSFmZyrchph4WcoEvbN460BWKmk4RYSvPElIIvxw==", "requires": { - "@secretlint/types": "^10.1.1", + "@secretlint/types": "^10.2.2", "istextorbinary": "^9.5.0" } }, "@secretlint/types": { - "version": "10.1.1", - "resolved": "https://registry.npmjs.org/@secretlint/types/-/types-10.1.1.tgz", - "integrity": "sha512-/JGAvVkurVHkargk3AC7UxRy+Ymc+52AVBO/fZA5pShuLW2dX4O/rKc4n8cyhQiOb/3ym5ACSlLQuQ8apPfxrQ==" + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/@secretlint/types/-/types-10.2.2.tgz", + "integrity": "sha512-Nqc90v4lWCXyakD6xNyNACBJNJ0tNCwj2WNk/7ivyacYHxiITVgmLUFXTBOeCdy79iz6HtN9Y31uw/jbLrdOAg==" }, "@sindresorhus/merge-streams": { "version": "2.3.0", @@ -5528,20 +5568,20 @@ "integrity": "sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==" }, "@textlint/ast-node-types": { - "version": "14.8.4", - "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-14.8.4.tgz", - "integrity": "sha512-+fI7miec/r9VeniFV9ppL4jRCmHNsTxieulTUf/4tvGII3db5hGriKHC4p/diq1SkQ9Sgs7kg6UyydxZtpTz1Q==" + "version": "15.2.1", + "resolved": "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-15.2.1.tgz", + "integrity": "sha512-20fEcLPsXg81yWpApv4FQxrZmlFF/Ta7/kz1HGIL+pJo5cSTmkc+eCki3GpOPZIoZk0tbJU8hrlwUb91F+3SNQ==" }, "@textlint/linter-formatter": { - "version": "14.8.4", - "resolved": "https://registry.npmjs.org/@textlint/linter-formatter/-/linter-formatter-14.8.4.tgz", - "integrity": "sha512-sZ0UfYRDBNHnfMVBqLqqYnqTB7Ec169ljlmo+SEHR1T+dHUPYy1/DZK4p7QREXlBSFL4cnkswETCbc9xRodm4Q==", + "version": "15.2.1", + "resolved": "https://registry.npmjs.org/@textlint/linter-formatter/-/linter-formatter-15.2.1.tgz", + "integrity": "sha512-oollG/BHa07+mMt372amxHohteASC+Zxgollc1sZgiyxo4S6EuureV3a4QIQB0NecA+Ak3d0cl0WI/8nou38jw==", "requires": { "@azu/format-text": "^1.0.2", "@azu/style-format": "^1.0.1", - "@textlint/module-interop": "14.8.4", - "@textlint/resolver": "14.8.4", - "@textlint/types": "14.8.4", + "@textlint/module-interop": "15.2.1", + "@textlint/resolver": "15.2.1", + "@textlint/types": "15.2.1", "chalk": "^4.1.2", "debug": "^4.4.1", "js-yaml": "^3.14.1", @@ -5578,21 +5618,21 @@ } }, "@textlint/module-interop": { - "version": "14.8.4", - "resolved": "https://registry.npmjs.org/@textlint/module-interop/-/module-interop-14.8.4.tgz", - "integrity": "sha512-1LdPYLAVpa27NOt6EqvuFO99s4XLB0c19Hw9xKSG6xQ1K82nUEyuWhzTQKb3KJ5Qx7qj14JlXZLfnEuL6A16Bw==" + "version": "15.2.1", + "resolved": "https://registry.npmjs.org/@textlint/module-interop/-/module-interop-15.2.1.tgz", + "integrity": "sha512-b/C/ZNrm05n1ypymDknIcpkBle30V2ZgE3JVqQlA9PnQV46Ky510qrZk6s9yfKgA3m1YRnAw04m8xdVtqjq1qg==" }, "@textlint/resolver": { - "version": "14.8.4", - "resolved": "https://registry.npmjs.org/@textlint/resolver/-/resolver-14.8.4.tgz", - "integrity": "sha512-nMDOgDAVwNU9ommh+Db0U+MCMNDPbQ/1HBNjbnHwxZkCpcT6hsAJwBe38CW/DtWVUv8yeR4R40IYNPT84srNwA==" + "version": "15.2.1", + "resolved": "https://registry.npmjs.org/@textlint/resolver/-/resolver-15.2.1.tgz", + "integrity": "sha512-FY3aK4tElEcOJVUsaMj4Zro4jCtKEEwUMIkDL0tcn6ljNcgOF7Em+KskRRk/xowFWayqDtdz5T3u7w/6fjjuJQ==" }, "@textlint/types": { - "version": "14.8.4", - "resolved": "https://registry.npmjs.org/@textlint/types/-/types-14.8.4.tgz", - "integrity": "sha512-9nyY8vVXlr8hHKxa6+37omJhXWCwovMQcgMteuldYd4dOxGm14AK2nXdkgtKEUQnzLGaXy46xwLCfhQy7V7/YA==", + "version": "15.2.1", + "resolved": "https://registry.npmjs.org/@textlint/types/-/types-15.2.1.tgz", + "integrity": "sha512-zyqNhSatK1cwxDUgosEEN43hFh3WCty9Zm2Vm3ogU566IYegifwqN54ey/CiRy/DiO4vMcFHykuQnh2Zwp6LLw==", "requires": { - "@textlint/ast-node-types": "14.8.4" + "@textlint/ast-node-types": "15.2.1" } }, "@tsconfig/node10": { @@ -5858,18 +5898,11 @@ "dev": true }, "ansi-escapes": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", - "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-7.0.0.tgz", + "integrity": "sha512-GdYO7a61mR0fOlAsvC9/rIHf7L96sBc6dEWzeOu+KAea5bZyQRPIpojrVoI4AXGJS/ycu/fBTdLrUkA4ODrvjw==", "requires": { - "type-fest": "^0.21.3" - }, - "dependencies": { - "type-fest": { - "version": "0.21.3", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", - "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==" - } + "environment": "^1.0.0" } }, "ansi-regex": { @@ -6375,13 +6408,10 @@ "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==" }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "requires": { - "is-arrayish": "^0.2.1" - } + "environment": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/environment/-/environment-1.1.0.tgz", + "integrity": "sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==" }, "es-define-property": { "version": "1.0.1", @@ -6812,6 +6842,11 @@ "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==", "dev": true }, + "index-to-position": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/index-to-position/-/index-to-position-1.1.0.tgz", + "integrity": "sha512-XPdx9Dq4t9Qk1mTMbWONJqU7boCoumEH7fRET37HX5+khDUl3J2W6PdALxhILYlIYx2amlwYcRPp28p0tSiojg==" + }, "inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", @@ -6824,11 +6859,6 @@ "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", "optional": true }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" - }, "is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", @@ -6942,11 +6972,6 @@ "argparse": "^2.0.1" } }, - "json-parse-even-better-errors": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.2.tgz", - "integrity": "sha512-fi0NG4bPjCHunUJffmLd0gxssIgkNmArMvis4iNah6Owg1MCJjWhEcDLmsK6iGkJq3tHwbDkTlce70/tmXN4cQ==" - }, "json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", @@ -7044,11 +7069,6 @@ "resolved": "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz", "integrity": "sha1-d4kd6DQGTMy6gq54QrtrFKE+1/I= sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==" }, - "lines-and-columns": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-2.0.4.tgz", - "integrity": "sha512-wM1+Z03eypVAVUCE7QdSqpVIvelbOakn1M0bPDoA4SGWPx3sNDVUiMo3L6To6WWGClB7VyXnhQ4Sn7gxiJbE6A==" - }, "linkify-it": { "version": "5.0.0", "resolved": "https://registry.npmmirror.com/linkify-it/-/linkify-it-5.0.0.tgz", @@ -7392,18 +7412,18 @@ "optional": true }, "node-sarif-builder": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/node-sarif-builder/-/node-sarif-builder-2.0.3.tgz", - "integrity": "sha512-Pzr3rol8fvhG/oJjIq2NTVB0vmdNNlz22FENhhPojYRZ4/ee08CfK4YuKmuL54V9MLhI1kpzxfOJ/63LzmZzDg==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/node-sarif-builder/-/node-sarif-builder-3.2.0.tgz", + "integrity": "sha512-kVIOdynrF2CRodHZeP/97Rh1syTUHBNiw17hUCIVhlhEsWlfJm19MuO56s4MdKbr22xWx6mzMnNAgXzVlIYM9Q==", "requires": { - "@types/sarif": "^2.1.4", - "fs-extra": "^10.0.0" + "@types/sarif": "^2.1.7", + "fs-extra": "^11.1.1" }, "dependencies": { "fs-extra": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "version": "11.3.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.0.tgz", + "integrity": "sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==", "requires": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", @@ -7544,22 +7564,13 @@ "integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==" }, "parse-json": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-7.1.1.tgz", - "integrity": "sha512-SgOTCX/EZXtZxBE5eJ97P4yGM5n37BwRU+YMsH4vNzFqJV/oWFXXCmwFlgWUM4PrakybVOueJJ6pwHqSVhTFDw==", + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-8.3.0.tgz", + "integrity": "sha512-ybiGyvspI+fAoRQbIPRddCcSTV9/LsJbf0e/S85VLowVGzRmokfneg2kwVW/KU5rOXrPSbF1qAKPMgNTqqROQQ==", "requires": { - "@babel/code-frame": "^7.21.4", - "error-ex": "^1.3.2", - "json-parse-even-better-errors": "^3.0.0", - "lines-and-columns": "^2.0.3", - "type-fest": "^3.8.0" - }, - "dependencies": { - "type-fest": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.13.1.tgz", - "integrity": "sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==" - } + "@babel/code-frame": "^7.26.2", + "index-to-position": "^1.1.0", + "type-fest": "^4.39.1" } }, "parse-semver": { @@ -7744,14 +7755,22 @@ } }, "read-pkg": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-8.1.0.tgz", - "integrity": "sha512-PORM8AgzXeskHO/WEv312k9U03B8K9JSiWF/8N9sUuFjBa+9SF2u6K7VClzXwDXab51jCd8Nd36CNM+zR97ScQ==", + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-9.0.1.tgz", + "integrity": "sha512-9viLL4/n1BJUCT1NXVTdS1jtm80yDEgR5T4yCelII49Mbj0v1rZdKqj7zCiYdbB0CuCgdrvHcNogAKTFPBocFA==", "requires": { - "@types/normalize-package-data": "^2.4.1", + "@types/normalize-package-data": "^2.4.3", "normalize-package-data": "^6.0.0", - "parse-json": "^7.0.0", - "type-fest": "^4.2.0" + "parse-json": "^8.0.0", + "type-fest": "^4.6.0", + "unicorn-magic": "^0.1.0" + }, + "dependencies": { + "unicorn-magic": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.1.0.tgz", + "integrity": "sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==" + } } }, "readable-stream": { @@ -7820,17 +7839,17 @@ "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==" }, "secretlint": { - "version": "10.1.1", - "resolved": "https://registry.npmjs.org/secretlint/-/secretlint-10.1.1.tgz", - "integrity": "sha512-q50i+I9w6HH8P6o34LVq6M3hm5GZn2Eq5lYGHkEByOAbVqBHn8gsMGgyxjP1xSrSv1QjDtjxs/zKPm6JtkNzGw==", - "requires": { - "@secretlint/config-creator": "^10.1.1", - "@secretlint/formatter": "^10.1.1", - "@secretlint/node": "^10.1.1", - "@secretlint/profiler": "^10.1.1", + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/secretlint/-/secretlint-10.2.2.tgz", + "integrity": "sha512-xVpkeHV/aoWe4vP4TansF622nBEImzCY73y/0042DuJ29iKIaqgoJ8fGxre3rVSHHbxar4FdJobmTnLp9AU0eg==", + "requires": { + "@secretlint/config-creator": "^10.2.2", + "@secretlint/formatter": "^10.2.2", + "@secretlint/node": "^10.2.2", + "@secretlint/profiler": "^10.2.2", "debug": "^4.4.1", "globby": "^14.1.0", - "read-pkg": "^8.1.0" + "read-pkg": "^9.0.1" } }, "semver": { @@ -8065,9 +8084,9 @@ } }, "supports-hyperlinks": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", - "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-3.2.0.tgz", + "integrity": "sha512-zFObLMyZeEwzAoKCyu1B91U79K2t7ApXuQfo8OuxwXLDgcKxuwM+YvcbIhm6QWqz7mHUH1TVytR1PwVVjEuMig==", "requires": { "has-flag": "^4.0.0", "supports-color": "^7.0.0" @@ -8135,12 +8154,12 @@ } }, "terminal-link": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", - "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-4.0.0.tgz", + "integrity": "sha512-lk+vH+MccxNqgVqSnkMVKx4VLJfnLjDBGzH16JVZjKE2DoxP57s6/vt6JmXV5I3jBcfGrxNrYtC+mPtU7WJztA==", "requires": { - "ansi-escapes": "^4.2.1", - "supports-hyperlinks": "^2.0.0" + "ansi-escapes": "^7.0.0", + "supports-hyperlinks": "^3.2.0" } }, "text-table": { diff --git a/package.json b/package.json index a2fa023e..197209d9 100644 --- a/package.json +++ b/package.json @@ -40,10 +40,10 @@ }, "dependencies": { "@azure/identity": "^4.1.0", - "@secretlint/node": "^10.1.1", - "@secretlint/secretlint-formatter-sarif": "^10.1.1", - "@secretlint/secretlint-rule-no-dotenv": "^10.1.1", - "@secretlint/secretlint-rule-preset-recommend": "^10.1.1", + "@secretlint/node": "^10.1.2", + "@secretlint/secretlint-formatter-sarif": "^10.1.2", + "@secretlint/secretlint-rule-no-dotenv": "^10.1.2", + "@secretlint/secretlint-rule-preset-recommend": "^10.1.2", "@vscode/vsce-sign": "^2.0.0", "azure-devops-node-api": "^12.5.0", "chalk": "^4.1.2", @@ -60,7 +60,7 @@ "minimatch": "^3.0.3", "parse-semver": "^1.1.1", "read": "^1.0.7", - "secretlint": "^10.1.1", + "secretlint": "^10.1.2", "semver": "^7.5.2", "tmp": "^0.2.3", "typed-rest-client": "^1.8.4", From 29a2b7581d52de0579d1d87190cae6a7d3d7ce1e Mon Sep 17 00:00:00 2001 From: Raymond Zhao <7199958+rzhao271@users.noreply.github.com> Date: Wed, 6 Aug 2025 00:45:14 -0700 Subject: [PATCH 05/22] chore: migrate PR check to GitHub Actions (#1190) --- .github/workflows/ci.yml | 32 +++++++++++++++++++++ build/azure-pipelines.oss.yml | 52 ----------------------------------- build/build.oss.yml | 11 -------- 3 files changed, 32 insertions(+), 63 deletions(-) create mode 100644 .github/workflows/ci.yml delete mode 100644 build/azure-pipelines.oss.yml delete mode 100644 build/build.oss.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 00000000..c691b95b --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,32 @@ +name: CI + +on: + pull_request: + branches: [main] + push: + branches: [main] + +jobs: + test: + name: Test on ${{ matrix.os }} + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ubuntu-latest, windows-latest, macos-latest] + + steps: + - name: Checkout code + uses: actions/checkout@v4 + with: + persist-credentials: false + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: '20.x' + + - name: Install dependencies + run: npm ci + + - name: Run tests + run: npm test diff --git a/build/azure-pipelines.oss.yml b/build/azure-pipelines.oss.yml deleted file mode 100644 index 2a75b43b..00000000 --- a/build/azure-pipelines.oss.yml +++ /dev/null @@ -1,52 +0,0 @@ -trigger: none - -pr: [main] - -variables: - - name: Codeql.SkipTaskAutoInjection - value: true - - name: skipComponentGovernanceDetection - value: true - -resources: - repositories: - - repository: 1esPipelines - type: git - name: 1ESPipelineTemplates/1ESPipelineTemplates - ref: refs/tags/release - -extends: - template: v1/1ES.Unofficial.PipelineTemplate.yml@1esPipelines - parameters: - sdl: - sourceAnalysisPool: 1es-oss-windows-2022-x64 - codeql: - compiled: - enabled: false - componentgovernance: - enabled: false - tsa: - enabled: true - - stages: - - stage: BuildAndTest - jobs: - - job: Windows - pool: - name: '1es-oss-windows-2022-x64' - os: windows - steps: - - template: ./build/build.oss.yml@self - - job: macOS - pool: - name: Azure Pipelines - vmImage: macOS-latest - os: macOS - steps: - - template: ./build/build.oss.yml@self - - job: Linux - pool: - name: '1es-oss-ubuntu-22.04-x64' - os: linux - steps: - - template: ./build/build.oss.yml@self diff --git a/build/build.oss.yml b/build/build.oss.yml deleted file mode 100644 index ff8e7918..00000000 --- a/build/build.oss.yml +++ /dev/null @@ -1,11 +0,0 @@ -steps: -- task: NodeTool@0 - inputs: - versionSpec: '20.x' - displayName: 'Install Node.js' - -- script: npm ci - displayName: 'Install dependencies' - -- script: npm test - displayName: 'Run tests' From 6b0b21d56bca4b4e9c2151ae9ee399e8cf1c675d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomislav=20Grospi=C4=87?= Date: Wed, 6 Aug 2025 19:11:57 +0200 Subject: [PATCH 06/22] Avoid Node.js DEP0190 warning by using string form for prepublish command (#1188) * fix: avoid Node.js DEP0190 warning by using string command with shell: true * refactor: extract prepublish command for clarity --- src/package.ts | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/package.ts b/src/package.ts index 34ae3c6d..f995c2e3 100644 --- a/src/package.ts +++ b/src/package.ts @@ -1876,11 +1876,14 @@ export async function prepublish(cwd: string, manifest: ManifestPackage, useYarn useYarn = await detectYarn(cwd); } - console.log(`Executing prepublish script '${useYarn ? 'yarn' : 'npm'} run vscode:prepublish'...`); + const tool = useYarn ? 'yarn' : 'npm'; + const prepublish = `${tool} run vscode:prepublish`; + + console.log(`Executing prepublish script '${prepublish}'...`); await new Promise((c, e) => { - const tool = useYarn ? 'yarn' : 'npm'; - const child = cp.spawn(tool, ['run', 'vscode:prepublish'], { cwd, shell: true, stdio: 'inherit' }); + // Use string command to avoid Node.js DEP0190 warning (args + shell: true is deprecated). + const child = cp.spawn(prepublish, { cwd, shell: true, stdio: 'inherit' }); child.on('exit', code => (code === 0 ? c() : e(`${tool} failed with exit code ${code}`))); child.on('error', e); }); From 8fa2eb5e61db3ba792cf3c03d1c16f99f8d3c690 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 6 Aug 2025 10:12:35 -0700 Subject: [PATCH 07/22] Bump tmp from 0.2.3 to 0.2.4 (#1191) Bumps [tmp](https://github.com/raszi/node-tmp) from 0.2.3 to 0.2.4. - [Changelog](https://github.com/raszi/node-tmp/blob/master/CHANGELOG.md) - [Commits](https://github.com/raszi/node-tmp/compare/v0.2.3...v0.2.4) --- updated-dependencies: - dependency-name: tmp dependency-version: 0.2.4 dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- package-lock.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/package-lock.json b/package-lock.json index 6c42d9ec..1089e58b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4494,9 +4494,9 @@ } }, "node_modules/tmp": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz", - "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==", + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.4.tgz", + "integrity": "sha512-UdiSoX6ypifLmrfQ/XfiawN6hkjSBpCjhKxxZcWlUUmoXLaCKQU0bx4HF/tdDK2uzRuchf1txGvrWBzYREssoQ==", "engines": { "node": ">=14.14" } @@ -8176,9 +8176,9 @@ } }, "tmp": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz", - "integrity": "sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==" + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.4.tgz", + "integrity": "sha512-UdiSoX6ypifLmrfQ/XfiawN6hkjSBpCjhKxxZcWlUUmoXLaCKQU0bx4HF/tdDK2uzRuchf1txGvrWBzYREssoQ==" }, "to-regex-range": { "version": "5.0.1", From 6d9f87e83f31dfa40086e3f19348e466cfb0ed66 Mon Sep 17 00:00:00 2001 From: Raymond Zhao <7199958+rzhao271@users.noreply.github.com> Date: Fri, 15 Aug 2025 10:53:24 -0700 Subject: [PATCH 08/22] fix: check exec params (#1193) --- src/package.ts | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/package.ts b/src/package.ts index f995c2e3..58f70d93 100644 --- a/src/package.ts +++ b/src/package.ts @@ -1925,16 +1925,23 @@ export async function pack(options: IPackageOptions = {}): Promise { + if (!fs.existsSync(packageFile)) { + throw new Error(`Package file not found: ${packageFile}`); + } + if (!fs.existsSync(signTool)) { + throw new Error(`Sign tool not found: ${signTool}`); + } + const packageFolder = path.dirname(packageFile); const packageName = path.basename(packageFile, '.vsix'); const manifestFile = path.join(packageFolder, `${packageName}.signature.manifest`); - const signatureFile = path.join(packageFolder, `${packageName}.signature.p7s`); + const signatureFile = path.join(packageFolder, `${packageName}.signature.p7s`); // CodeQL [SM03609] the parameters to execSync are checked above. const signatureZip = path.join(packageFolder, `${packageName}.signature.zip`); await generateManifest(packageFile, manifestFile); // Sign the manifest file to generate the signature file - cp.execSync(`${signTool} "${manifestFile}" "${signatureFile}"`, { stdio: 'inherit' }); + cp.execSync(`"${signTool}" "${manifestFile}" "${signatureFile}"`, { stdio: 'inherit' }); return createSignatureArchive(manifestFile, signatureFile, signatureZip); } From 91b53818149b567b8d4400f34bcfab91b1272902 Mon Sep 17 00:00:00 2001 From: Ladislau Szomoru <3372902+lszomoru@users.noreply.github.com> Date: Tue, 19 Aug 2025 08:16:21 +0000 Subject: [PATCH 09/22] Engineering - do not run Azure Pipeline for pull requests (#1194) --- build/azure-pipelines.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/azure-pipelines.yml b/build/azure-pipelines.yml index 7e725a40..6e104e86 100644 --- a/build/azure-pipelines.yml +++ b/build/azure-pipelines.yml @@ -4,7 +4,7 @@ trigger: include: - main -pr: [main] +pr: none resources: repositories: From d9422df55f5fc38c87d852ace80843e379567c20 Mon Sep 17 00:00:00 2001 From: Raymond Zhao <7199958+rzhao271@users.noreply.github.com> Date: Mon, 22 Sep 2025 15:27:03 -0700 Subject: [PATCH 10/22] chore: bump vsce-sign to 2.0.7 (#1198) --- package-lock.json | 166 ++++++++++++++++++++++++---------------------- 1 file changed, 88 insertions(+), 78 deletions(-) diff --git a/package-lock.json b/package-lock.json index 1089e58b..1d4a9547 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1087,125 +1087,135 @@ } }, "node_modules/@vscode/vsce-sign": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@vscode/vsce-sign/-/vsce-sign-2.0.3.tgz", - "integrity": "sha512-NYktTVXYIjJ41CTfImuWLYSw2UoZwYYFk7VcVYTjTZnD7NnuaM3DizaFZfuRG5YMRT/oZa1t1d4bwzrBALR3VQ==", + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@vscode/vsce-sign/-/vsce-sign-2.0.7.tgz", + "integrity": "sha512-cz0GFW8qCxpypOy3y509u26K1FIPMlDIHBwGmDyvEbgoma2v3y5YIHHuijr8zCYBp9kzCCOJd28s/0PG7cA7ew==", "hasInstallScript": true, + "license": "SEE LICENSE IN LICENSE.txt", "optionalDependencies": { - "@vscode/vsce-sign-alpine-arm64": "2.0.1", - "@vscode/vsce-sign-alpine-x64": "2.0.1", - "@vscode/vsce-sign-darwin-arm64": "2.0.1", - "@vscode/vsce-sign-darwin-x64": "2.0.1", - "@vscode/vsce-sign-linux-arm": "2.0.1", - "@vscode/vsce-sign-linux-arm64": "2.0.1", - "@vscode/vsce-sign-linux-x64": "2.0.1", - "@vscode/vsce-sign-win32-arm64": "2.0.1", - "@vscode/vsce-sign-win32-x64": "2.0.1" + "@vscode/vsce-sign-alpine-arm64": "2.0.6", + "@vscode/vsce-sign-alpine-x64": "2.0.6", + "@vscode/vsce-sign-darwin-arm64": "2.0.6", + "@vscode/vsce-sign-darwin-x64": "2.0.6", + "@vscode/vsce-sign-linux-arm": "2.0.6", + "@vscode/vsce-sign-linux-arm64": "2.0.6", + "@vscode/vsce-sign-linux-x64": "2.0.6", + "@vscode/vsce-sign-win32-arm64": "2.0.6", + "@vscode/vsce-sign-win32-x64": "2.0.6" } }, "node_modules/@vscode/vsce-sign-alpine-arm64": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-alpine-arm64/-/vsce-sign-alpine-arm64-2.0.1.tgz", - "integrity": "sha512-HM2BHzyRKoUHVaaVmLFYcKlnMOcUAfU99oA1yAWX46D6iLZ8rWJYy2IOKTSMOXtVoc5d2hQdZR4+BCV5By4Flg==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-alpine-arm64/-/vsce-sign-alpine-arm64-2.0.6.tgz", + "integrity": "sha512-wKkJBsvKF+f0GfsUuGT0tSW0kZL87QggEiqNqK6/8hvqsXvpx8OsTEc3mnE1kejkh5r+qUyQ7PtF8jZYN0mo8Q==", "cpu": [ "arm64" ], + "license": "SEE LICENSE IN LICENSE.txt", "optional": true, "os": [ "alpine" ] }, "node_modules/@vscode/vsce-sign-alpine-x64": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-alpine-x64/-/vsce-sign-alpine-x64-2.0.1.tgz", - "integrity": "sha512-GNh4dNmqwQqEDP2ngUgdu5ZYkJZAHomTppMI0v9sveFoZdML5iWuNGemvCEyInUpSb6Xjxc78ejeMoDay22wBw==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-alpine-x64/-/vsce-sign-alpine-x64-2.0.6.tgz", + "integrity": "sha512-YoAGlmdK39vKi9jA18i4ufBbd95OqGJxRvF3n6ZbCyziwy3O+JgOpIUPxv5tjeO6gQfx29qBivQ8ZZTUF2Ba0w==", "cpu": [ "x64" ], + "license": "SEE LICENSE IN LICENSE.txt", "optional": true, "os": [ "alpine" ] }, "node_modules/@vscode/vsce-sign-darwin-arm64": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-darwin-arm64/-/vsce-sign-darwin-arm64-2.0.1.tgz", - "integrity": "sha512-iFnCbC8RBUyT0ZKEmop5yi7/NxP5G2gIW/giJHYDYppkhfyAR5STxlpf8Vx9hqIS0jPbeldNSn5a5BGMKtGXug==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-darwin-arm64/-/vsce-sign-darwin-arm64-2.0.6.tgz", + "integrity": "sha512-5HMHaJRIQuozm/XQIiJiA0W9uhdblwwl2ZNDSSAeXGO9YhB9MH5C4KIHOmvyjUnKy4UCuiP43VKpIxW1VWP4tQ==", "cpu": [ "arm64" ], + "license": "SEE LICENSE IN LICENSE.txt", "optional": true, "os": [ "darwin" ] }, "node_modules/@vscode/vsce-sign-darwin-x64": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-darwin-x64/-/vsce-sign-darwin-x64-2.0.1.tgz", - "integrity": "sha512-Dpv3PRpOzfDpji9JGVxe+hHyh41evyquMeXYykkTdcB3u3bZMoAgYoBlEOGnu87xb4s2J5DTj/J590yN0+dI0A==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-darwin-x64/-/vsce-sign-darwin-x64-2.0.6.tgz", + "integrity": "sha512-25GsUbTAiNfHSuRItoQafXOIpxlYj+IXb4/qarrXu7kmbH94jlm5sdWSCKrrREs8+GsXF1b+l3OB7VJy5jsykw==", "cpu": [ "x64" ], + "license": "SEE LICENSE IN LICENSE.txt", "optional": true, "os": [ "darwin" ] }, "node_modules/@vscode/vsce-sign-linux-arm": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-linux-arm/-/vsce-sign-linux-arm-2.0.1.tgz", - "integrity": "sha512-iltMQuS8K63aIabVrPBB8P2L37XkSwUqPTFLYlH6Bw+UpWJTFFvFFCKlmbxWrq1j8WkG+68Fm437ZfAkRW/rjQ==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-linux-arm/-/vsce-sign-linux-arm-2.0.6.tgz", + "integrity": "sha512-UndEc2Xlq4HsuMPnwu7420uqceXjs4yb5W8E2/UkaHBB9OWCwMd3/bRe/1eLe3D8kPpxzcaeTyXiK3RdzS/1CA==", "cpu": [ "arm" ], + "license": "SEE LICENSE IN LICENSE.txt", "optional": true, "os": [ "linux" ] }, "node_modules/@vscode/vsce-sign-linux-arm64": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-linux-arm64/-/vsce-sign-linux-arm64-2.0.1.tgz", - "integrity": "sha512-SL6MeobrArp5SKPeUYVr5chp7a42L83vYAzLvD+oQM8fQ8DrZWYpNIyVkxGgsppZRyAt0UU2/5ShPxuNKfnZOA==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-linux-arm64/-/vsce-sign-linux-arm64-2.0.6.tgz", + "integrity": "sha512-cfb1qK7lygtMa4NUl2582nP7aliLYuDEVpAbXJMkDq1qE+olIw/es+C8j1LJwvcRq1I2yWGtSn3EkDp9Dq5FdA==", "cpu": [ "arm64" ], + "license": "SEE LICENSE IN LICENSE.txt", "optional": true, "os": [ "linux" ] }, "node_modules/@vscode/vsce-sign-linux-x64": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-linux-x64/-/vsce-sign-linux-x64-2.0.1.tgz", - "integrity": "sha512-6N6dkZoJX/WKezZ3efCKVKjnbx+TlnUtNUkepyUUhCa3dGjGDqUkeakE2Kz266Bsp0Mm/68zS9HLKVOEv9vn0A==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-linux-x64/-/vsce-sign-linux-x64-2.0.6.tgz", + "integrity": "sha512-/olerl1A4sOqdP+hjvJ1sbQjKN07Y3DVnxO4gnbn/ahtQvFrdhUi0G1VsZXDNjfqmXw57DmPi5ASnj/8PGZhAA==", "cpu": [ "x64" ], + "license": "SEE LICENSE IN LICENSE.txt", "optional": true, "os": [ "linux" ] }, "node_modules/@vscode/vsce-sign-win32-arm64": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-win32-arm64/-/vsce-sign-win32-arm64-2.0.1.tgz", - "integrity": "sha512-t4uYPpQummrmKaDw5Ka6QMEQ+We/Uo6xDEytFjN2jZ3jNOno3Mi7yWlTLg3VDAteHNGA7eBbMZ89Habl6xn8bg==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-win32-arm64/-/vsce-sign-win32-arm64-2.0.6.tgz", + "integrity": "sha512-ivM/MiGIY0PJNZBoGtlRBM/xDpwbdlCWomUWuLmIxbi1Cxe/1nooYrEQoaHD8ojVRgzdQEUzMsRbyF5cJJgYOg==", "cpu": [ "arm64" ], + "license": "SEE LICENSE IN LICENSE.txt", "optional": true, "os": [ "win32" ] }, "node_modules/@vscode/vsce-sign-win32-x64": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-win32-x64/-/vsce-sign-win32-x64-2.0.1.tgz", - "integrity": "sha512-ofY1iXoXaNlM3zDt5jw7v59NMh0y2GvKrP4A74aUDJjaXaDd6n/hLaOpDLk4a+MjX6HWiEBr5yNqHGKYa+t2jg==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-win32-x64/-/vsce-sign-win32-x64-2.0.6.tgz", + "integrity": "sha512-mgth9Kvze+u8CruYMmhHw6Zgy3GRX2S+Ed5oSokDEK5vPEwGGKnmuXua9tmFhomeAnhgJnL4DCna3TiNuGrBTQ==", "cpu": [ "x64" ], + "license": "SEE LICENSE IN LICENSE.txt", "optional": true, "os": [ "win32" @@ -5790,73 +5800,73 @@ } }, "@vscode/vsce-sign": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@vscode/vsce-sign/-/vsce-sign-2.0.3.tgz", - "integrity": "sha512-NYktTVXYIjJ41CTfImuWLYSw2UoZwYYFk7VcVYTjTZnD7NnuaM3DizaFZfuRG5YMRT/oZa1t1d4bwzrBALR3VQ==", + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@vscode/vsce-sign/-/vsce-sign-2.0.7.tgz", + "integrity": "sha512-cz0GFW8qCxpypOy3y509u26K1FIPMlDIHBwGmDyvEbgoma2v3y5YIHHuijr8zCYBp9kzCCOJd28s/0PG7cA7ew==", "requires": { - "@vscode/vsce-sign-alpine-arm64": "2.0.1", - "@vscode/vsce-sign-alpine-x64": "2.0.1", - "@vscode/vsce-sign-darwin-arm64": "2.0.1", - "@vscode/vsce-sign-darwin-x64": "2.0.1", - "@vscode/vsce-sign-linux-arm": "2.0.1", - "@vscode/vsce-sign-linux-arm64": "2.0.1", - "@vscode/vsce-sign-linux-x64": "2.0.1", - "@vscode/vsce-sign-win32-arm64": "2.0.1", - "@vscode/vsce-sign-win32-x64": "2.0.1" + "@vscode/vsce-sign-alpine-arm64": "2.0.6", + "@vscode/vsce-sign-alpine-x64": "2.0.6", + "@vscode/vsce-sign-darwin-arm64": "2.0.6", + "@vscode/vsce-sign-darwin-x64": "2.0.6", + "@vscode/vsce-sign-linux-arm": "2.0.6", + "@vscode/vsce-sign-linux-arm64": "2.0.6", + "@vscode/vsce-sign-linux-x64": "2.0.6", + "@vscode/vsce-sign-win32-arm64": "2.0.6", + "@vscode/vsce-sign-win32-x64": "2.0.6" } }, "@vscode/vsce-sign-alpine-arm64": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-alpine-arm64/-/vsce-sign-alpine-arm64-2.0.1.tgz", - "integrity": "sha512-HM2BHzyRKoUHVaaVmLFYcKlnMOcUAfU99oA1yAWX46D6iLZ8rWJYy2IOKTSMOXtVoc5d2hQdZR4+BCV5By4Flg==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-alpine-arm64/-/vsce-sign-alpine-arm64-2.0.6.tgz", + "integrity": "sha512-wKkJBsvKF+f0GfsUuGT0tSW0kZL87QggEiqNqK6/8hvqsXvpx8OsTEc3mnE1kejkh5r+qUyQ7PtF8jZYN0mo8Q==", "optional": true }, "@vscode/vsce-sign-alpine-x64": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-alpine-x64/-/vsce-sign-alpine-x64-2.0.1.tgz", - "integrity": "sha512-GNh4dNmqwQqEDP2ngUgdu5ZYkJZAHomTppMI0v9sveFoZdML5iWuNGemvCEyInUpSb6Xjxc78ejeMoDay22wBw==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-alpine-x64/-/vsce-sign-alpine-x64-2.0.6.tgz", + "integrity": "sha512-YoAGlmdK39vKi9jA18i4ufBbd95OqGJxRvF3n6ZbCyziwy3O+JgOpIUPxv5tjeO6gQfx29qBivQ8ZZTUF2Ba0w==", "optional": true }, "@vscode/vsce-sign-darwin-arm64": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-darwin-arm64/-/vsce-sign-darwin-arm64-2.0.1.tgz", - "integrity": "sha512-iFnCbC8RBUyT0ZKEmop5yi7/NxP5G2gIW/giJHYDYppkhfyAR5STxlpf8Vx9hqIS0jPbeldNSn5a5BGMKtGXug==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-darwin-arm64/-/vsce-sign-darwin-arm64-2.0.6.tgz", + "integrity": "sha512-5HMHaJRIQuozm/XQIiJiA0W9uhdblwwl2ZNDSSAeXGO9YhB9MH5C4KIHOmvyjUnKy4UCuiP43VKpIxW1VWP4tQ==", "optional": true }, "@vscode/vsce-sign-darwin-x64": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-darwin-x64/-/vsce-sign-darwin-x64-2.0.1.tgz", - "integrity": "sha512-Dpv3PRpOzfDpji9JGVxe+hHyh41evyquMeXYykkTdcB3u3bZMoAgYoBlEOGnu87xb4s2J5DTj/J590yN0+dI0A==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-darwin-x64/-/vsce-sign-darwin-x64-2.0.6.tgz", + "integrity": "sha512-25GsUbTAiNfHSuRItoQafXOIpxlYj+IXb4/qarrXu7kmbH94jlm5sdWSCKrrREs8+GsXF1b+l3OB7VJy5jsykw==", "optional": true }, "@vscode/vsce-sign-linux-arm": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-linux-arm/-/vsce-sign-linux-arm-2.0.1.tgz", - "integrity": "sha512-iltMQuS8K63aIabVrPBB8P2L37XkSwUqPTFLYlH6Bw+UpWJTFFvFFCKlmbxWrq1j8WkG+68Fm437ZfAkRW/rjQ==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-linux-arm/-/vsce-sign-linux-arm-2.0.6.tgz", + "integrity": "sha512-UndEc2Xlq4HsuMPnwu7420uqceXjs4yb5W8E2/UkaHBB9OWCwMd3/bRe/1eLe3D8kPpxzcaeTyXiK3RdzS/1CA==", "optional": true }, "@vscode/vsce-sign-linux-arm64": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-linux-arm64/-/vsce-sign-linux-arm64-2.0.1.tgz", - "integrity": "sha512-SL6MeobrArp5SKPeUYVr5chp7a42L83vYAzLvD+oQM8fQ8DrZWYpNIyVkxGgsppZRyAt0UU2/5ShPxuNKfnZOA==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-linux-arm64/-/vsce-sign-linux-arm64-2.0.6.tgz", + "integrity": "sha512-cfb1qK7lygtMa4NUl2582nP7aliLYuDEVpAbXJMkDq1qE+olIw/es+C8j1LJwvcRq1I2yWGtSn3EkDp9Dq5FdA==", "optional": true }, "@vscode/vsce-sign-linux-x64": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-linux-x64/-/vsce-sign-linux-x64-2.0.1.tgz", - "integrity": "sha512-6N6dkZoJX/WKezZ3efCKVKjnbx+TlnUtNUkepyUUhCa3dGjGDqUkeakE2Kz266Bsp0Mm/68zS9HLKVOEv9vn0A==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-linux-x64/-/vsce-sign-linux-x64-2.0.6.tgz", + "integrity": "sha512-/olerl1A4sOqdP+hjvJ1sbQjKN07Y3DVnxO4gnbn/ahtQvFrdhUi0G1VsZXDNjfqmXw57DmPi5ASnj/8PGZhAA==", "optional": true }, "@vscode/vsce-sign-win32-arm64": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-win32-arm64/-/vsce-sign-win32-arm64-2.0.1.tgz", - "integrity": "sha512-t4uYPpQummrmKaDw5Ka6QMEQ+We/Uo6xDEytFjN2jZ3jNOno3Mi7yWlTLg3VDAteHNGA7eBbMZ89Habl6xn8bg==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-win32-arm64/-/vsce-sign-win32-arm64-2.0.6.tgz", + "integrity": "sha512-ivM/MiGIY0PJNZBoGtlRBM/xDpwbdlCWomUWuLmIxbi1Cxe/1nooYrEQoaHD8ojVRgzdQEUzMsRbyF5cJJgYOg==", "optional": true }, "@vscode/vsce-sign-win32-x64": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-win32-x64/-/vsce-sign-win32-x64-2.0.1.tgz", - "integrity": "sha512-ofY1iXoXaNlM3zDt5jw7v59NMh0y2GvKrP4A74aUDJjaXaDd6n/hLaOpDLk4a+MjX6HWiEBr5yNqHGKYa+t2jg==", + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@vscode/vsce-sign-win32-x64/-/vsce-sign-win32-x64-2.0.6.tgz", + "integrity": "sha512-mgth9Kvze+u8CruYMmhHw6Zgy3GRX2S+Ed5oSokDEK5vPEwGGKnmuXua9tmFhomeAnhgJnL4DCna3TiNuGrBTQ==", "optional": true }, "acorn": { From 70f353522aa037a95353b748601993a06cd659a9 Mon Sep 17 00:00:00 2001 From: Joyce Er Date: Thu, 25 Sep 2025 04:01:48 -0700 Subject: [PATCH 11/22] fix: generate language model tag for `languageModelChatProvider` contributions --- src/package.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/package.ts b/src/package.ts index 58f70d93..272c44bf 100644 --- a/src/package.ts +++ b/src/package.ts @@ -683,7 +683,7 @@ export class TagsProcessor extends BaseProcessor { const remoteMenu = doesContribute('menus', 'statusBar/remoteIndicator') ? ['remote-menu'] : []; const chatParticipants = doesContribute('chatParticipants') ? ['chat-participant'] : []; const languageModelTools = doesContribute('languageModelTools') ? ['tools', 'language-model-tools'] : []; - const languageModels = doesContribute('languageModels') ? ['language-models'] : []; + const languageModels = doesContribute('languageModelChatProviders') ? ['language-models'] : []; const mcp = doesContribute('modelContextServerCollections') ? ['mcp', 'language-model-tools'] : []; const localizationContributions = ((contributes && contributes['localizations']) ?? []).reduce( From 623d46c5baacbc7c5f0345163fc8e5801ea68d00 Mon Sep 17 00:00:00 2001 From: BeniBenj Date: Thu, 25 Sep 2025 15:21:48 +0200 Subject: [PATCH 12/22] fix test --- src/test/package.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/package.test.ts b/src/test/package.test.ts index d2e1788b..d6d8e89d 100644 --- a/src/test/package.test.ts +++ b/src/test/package.test.ts @@ -1486,7 +1486,7 @@ describe('toVsixManifest', () => { version: '0.0.1', engines: Object.create(null), contributes: { - languageModels: [{ name: 'test', id: 'test' }], + languageModelChatProviders: [{ name: 'test', id: 'test' }], }, }; From fb4cfdadfe380346048ba81b1c1edcd4281d48c4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 26 Sep 2025 19:48:12 +0000 Subject: [PATCH 13/22] Bump tar-fs from 2.1.3 to 2.1.4 Bumps [tar-fs](https://github.com/mafintosh/tar-fs) from 2.1.3 to 2.1.4. - [Commits](https://github.com/mafintosh/tar-fs/compare/v2.1.3...v2.1.4) --- updated-dependencies: - dependency-name: tar-fs dependency-version: 2.1.4 dependency-type: indirect ... Signed-off-by: dependabot[bot] --- package-lock.json | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/package-lock.json b/package-lock.json index 1d4a9547..38e29a1f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4438,10 +4438,9 @@ "license": "MIT" }, "node_modules/tar-fs": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.3.tgz", - "integrity": "sha512-090nwYJDmlhwFwEW3QQl+vaNnxsO2yVsd45eTKRBzSzu+hlb1w2K9inVq5b0ngXuLVqQ4ApvsUHHnu/zQNkWAg==", - "license": "MIT", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.4.tgz", + "integrity": "sha512-mDAjwmZdh7LTT6pNleZ05Yt65HC3E+NiQzl672vQG38jIrehtJk/J3mNwIg+vShQPcLF/LV7CMnDW6vjj6sfYQ==", "optional": true, "dependencies": { "chownr": "^1.1.1", @@ -8139,9 +8138,9 @@ } }, "tar-fs": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.3.tgz", - "integrity": "sha512-090nwYJDmlhwFwEW3QQl+vaNnxsO2yVsd45eTKRBzSzu+hlb1w2K9inVq5b0ngXuLVqQ4ApvsUHHnu/zQNkWAg==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.4.tgz", + "integrity": "sha512-mDAjwmZdh7LTT6pNleZ05Yt65HC3E+NiQzl672vQG38jIrehtJk/J3mNwIg+vShQPcLF/LV7CMnDW6vjj6sfYQ==", "optional": true, "requires": { "chownr": "^1.1.1", From e8579e5a2e3fc236794d876f38968bd7d5e3b3da Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 28 Oct 2025 02:23:50 +0000 Subject: [PATCH 14/22] Bump validator from 13.9.0 to 13.15.20 Bumps [validator](https://github.com/validatorjs/validator.js) from 13.9.0 to 13.15.20. - [Release notes](https://github.com/validatorjs/validator.js/releases) - [Changelog](https://github.com/validatorjs/validator.js/blob/master/CHANGELOG.md) - [Commits](https://github.com/validatorjs/validator.js/compare/13.9.0...13.15.20) --- updated-dependencies: - dependency-name: validator dependency-version: 13.15.20 dependency-type: indirect ... Signed-off-by: dependabot[bot] --- package-lock.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/package-lock.json b/package-lock.json index 38e29a1f..9872b590 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4710,9 +4710,9 @@ } }, "node_modules/validator": { - "version": "13.9.0", - "resolved": "https://registry.npmjs.org/validator/-/validator-13.9.0.tgz", - "integrity": "sha512-B+dGG8U3fdtM0/aNK4/X8CXq/EcxU2WPrPEkJGslb47qyHsxmbggTWK0yEA4qnYVNF+nxNlN88o14hIcPmSIEA==", + "version": "13.15.20", + "resolved": "https://registry.npmjs.org/validator/-/validator-13.15.20.tgz", + "integrity": "sha512-KxPOq3V2LmfQPP4eqf3Mq/zrT0Dqp2Vmx2Bn285LwVahLc+CsxOM0crBHczm8ijlcjZ0Q5Xd6LW3z3odTPnlrw==", "dev": true, "engines": { "node": ">= 0.10" @@ -8328,9 +8328,9 @@ } }, "validator": { - "version": "13.9.0", - "resolved": "https://registry.npmjs.org/validator/-/validator-13.9.0.tgz", - "integrity": "sha512-B+dGG8U3fdtM0/aNK4/X8CXq/EcxU2WPrPEkJGslb47qyHsxmbggTWK0yEA4qnYVNF+nxNlN88o14hIcPmSIEA==", + "version": "13.15.20", + "resolved": "https://registry.npmjs.org/validator/-/validator-13.15.20.tgz", + "integrity": "sha512-KxPOq3V2LmfQPP4eqf3Mq/zrT0Dqp2Vmx2Bn285LwVahLc+CsxOM0crBHczm8ijlcjZ0Q5Xd6LW3z3odTPnlrw==", "dev": true }, "version-range": { From 888e2b62c5f161d4fdba2e8bc4713d7683a0f03d Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 2 Nov 2025 22:57:55 +0000 Subject: [PATCH 15/22] Initial plan From 7bda2f1a2507c818014fd39cd7b6e3d1fae542c1 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 2 Nov 2025 23:11:55 +0000 Subject: [PATCH 16/22] Add validation for lowercase extension dependencies - Add validateExtensionDependencies function to validation.ts - Integrate validation into validateManifestForPackaging - Add comprehensive tests for the new validation logic Co-authored-by: benibenj <44439583+benibenj@users.noreply.github.com> --- src/package.ts | 5 ++++ src/test/package.test.ts | 24 +++++++++++++++++ src/test/validation.test.ts | 51 +++++++++++++++++++++++++++++++++++++ src/validation.ts | 26 +++++++++++++++++++ 4 files changed, 106 insertions(+) diff --git a/src/package.ts b/src/package.ts index 272c44bf..f795bfc1 100644 --- a/src/package.ts +++ b/src/package.ts @@ -21,6 +21,7 @@ import { validateEngineCompatibility, validateVSCodeTypesCompatibility, validatePublisher, + validateExtensionDependencies, } from './validation'; import { detectYarn, getDependencies } from './npm'; import * as GitHost from 'hosted-git-info'; @@ -1427,6 +1428,10 @@ export function validateManifestForPackaging(manifest: UnverifiedManifest): Mani } } + // Validate extension dependencies and extension pack use lowercase IDs + validateExtensionDependencies(manifest.extensionDependencies, 'extensionDependencies'); + validateExtensionDependencies(manifest.extensionPack, 'extensionPack'); + return { ...manifest, name, diff --git a/src/test/package.test.ts b/src/test/package.test.ts index d6d8e89d..61eaf929 100644 --- a/src/test/package.test.ts +++ b/src/test/package.test.ts @@ -604,6 +604,30 @@ describe('validateManifest', () => { validateManifestForPackaging(createManifest({ sponsor: { url: 'http://www.foo.com' } })); }); + it('should validate extensionDependencies are lowercase', () => { + // Valid lowercase dependencies + validateManifestForPackaging(createManifest({ extensionDependencies: ['publisher.extension'] })); + validateManifestForPackaging(createManifest({ extensionDependencies: ['pub.ext', 'another.dep'] })); + validateManifestForPackaging(createManifest({ extensionDependencies: ['pub-name.ext-name'] })); + + // Invalid uppercase dependencies + assert.throws(() => validateManifestForPackaging(createManifest({ extensionDependencies: ['Publisher.extension'] }))); + assert.throws(() => validateManifestForPackaging(createManifest({ extensionDependencies: ['publisher.Extension'] }))); + assert.throws(() => validateManifestForPackaging(createManifest({ extensionDependencies: ['PUBLISHER.EXTENSION'] }))); + assert.throws(() => validateManifestForPackaging(createManifest({ extensionDependencies: ['valid.ext', 'Invalid.Ext'] }))); + }); + + it('should validate extensionPack are lowercase', () => { + // Valid lowercase pack + validateManifestForPackaging(createManifest({ extensionPack: ['publisher.extension'] })); + validateManifestForPackaging(createManifest({ extensionPack: ['pub.ext', 'another.dep'] })); + + // Invalid uppercase pack + assert.throws(() => validateManifestForPackaging(createManifest({ extensionPack: ['Publisher.extension'] }))); + assert.throws(() => validateManifestForPackaging(createManifest({ extensionPack: ['publisher.Extension'] }))); + assert.throws(() => validateManifestForPackaging(createManifest({ extensionPack: ['valid.ext', 'Invalid.Ext'] }))); + }); + it('should validate pricing', () => { assert.throws(() => validateManifestForPackaging(createManifest({ pricing: 'Paid' }))); validateManifestForPackaging(createManifest({ pricing: 'Trial' })); diff --git a/src/test/validation.test.ts b/src/test/validation.test.ts index 5778ae99..fa07315f 100644 --- a/src/test/validation.test.ts +++ b/src/test/validation.test.ts @@ -5,6 +5,7 @@ import { validateVersion, validateEngineCompatibility, validateVSCodeTypesCompatibility, + validateExtensionDependencies, } from '../validation'; describe('validatePublisher', () => { @@ -135,3 +136,53 @@ describe('validateVSCodeTypesCompatibility', () => { assert.throws(() => validateVSCodeTypesCompatibility('1.5', '1.30')); }); }); + +describe('validateExtensionDependencies', () => { + it('should allow empty or undefined dependencies', () => { + validateExtensionDependencies(undefined, 'extensionDependencies'); + validateExtensionDependencies([], 'extensionDependencies'); + }); + + it('should allow lowercase extension IDs', () => { + validateExtensionDependencies(['publisher.extension'], 'extensionDependencies'); + validateExtensionDependencies(['publisher.extension-name'], 'extensionDependencies'); + validateExtensionDependencies(['publisher-name.extension-name'], 'extensionDependencies'); + validateExtensionDependencies(['pub123.ext456'], 'extensionDependencies'); + validateExtensionDependencies( + ['publisher1.extension1', 'publisher2.extension2'], + 'extensionDependencies' + ); + }); + + it('should reject uppercase letters in extension IDs', () => { + assert.throws(() => validateExtensionDependencies(['Publisher.extension'], 'extensionDependencies')); + assert.throws(() => validateExtensionDependencies(['publisher.Extension'], 'extensionDependencies')); + assert.throws(() => validateExtensionDependencies(['Publisher.Extension'], 'extensionDependencies')); + assert.throws(() => validateExtensionDependencies(['PUBLISHER.EXTENSION'], 'extensionDependencies')); + }); + + it('should reject mixed case in extension IDs', () => { + assert.throws(() => validateExtensionDependencies(['MyPublisher.my-extension'], 'extensionDependencies')); + assert.throws(() => validateExtensionDependencies(['my-publisher.MyExtension'], 'extensionDependencies')); + }); + + it('should work with extensionPack field', () => { + validateExtensionDependencies(['publisher.extension'], 'extensionPack'); + assert.throws(() => validateExtensionDependencies(['Publisher.Extension'], 'extensionPack')); + }); + + it('should list all invalid dependencies in error message', () => { + try { + validateExtensionDependencies( + ['valid.extension', 'Invalid.Extension', 'another.Valid', 'Another.Invalid'], + 'extensionDependencies' + ); + assert.fail('Should have thrown an error'); + } catch (error: any) { + assert.ok(error.message.includes('Invalid.Extension')); + assert.ok(error.message.includes('Another.Invalid')); + assert.ok(!error.message.includes('valid.extension')); + assert.ok(!error.message.includes('another.Valid')); + } + }); +}); diff --git a/src/validation.ts b/src/validation.ts index ffda705b..264d9ecf 100644 --- a/src/validation.ts +++ b/src/validation.ts @@ -115,3 +115,29 @@ export function validateVSCodeTypesCompatibility(engineVersion: string, typeVers throw error; } } + +/** + * Validates that extension IDs use only lowercase letters. + * Extension IDs should be in the format "publisher.extension-name" where both parts use lowercase letters. + */ +export function validateExtensionDependencies(dependencies: string[] | undefined, fieldName: string): void { + if (!dependencies || dependencies.length === 0) { + return; + } + + const invalidDependencies: string[] = []; + + for (const dep of dependencies) { + // Extension IDs should be lowercase + if (dep !== dep.toLowerCase()) { + invalidDependencies.push(dep); + } + } + + if (invalidDependencies.length > 0) { + const depList = invalidDependencies.map(d => `"${d}"`).join(', '); + throw new Error( + `The extension IDs in "${fieldName}" must use lowercase letters only. Invalid IDs: ${depList}. Learn more: https://code.visualstudio.com/api/references/extension-manifest` + ); + } +} From 10f6236461c49857f43d0187d3896c092be59bdc Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 2 Nov 2025 23:14:04 +0000 Subject: [PATCH 17/22] Improve documentation for validateExtensionDependencies - Clarify that validation only checks for lowercase letters - Add notes about what the validation does not check - Address code review feedback Co-authored-by: benibenj <44439583+benibenj@users.noreply.github.com> --- src/validation.ts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/validation.ts b/src/validation.ts index 264d9ecf..510c4bcc 100644 --- a/src/validation.ts +++ b/src/validation.ts @@ -118,7 +118,10 @@ export function validateVSCodeTypesCompatibility(engineVersion: string, typeVers /** * Validates that extension IDs use only lowercase letters. - * Extension IDs should be in the format "publisher.extension-name" where both parts use lowercase letters. + * This validation ensures compliance with VS Code extension marketplace requirements. + * + * Note: This only validates the case (lowercase). It does not validate the format + * or structure of extension IDs (e.g., presence of dot separator, valid characters). */ export function validateExtensionDependencies(dependencies: string[] | undefined, fieldName: string): void { if (!dependencies || dependencies.length === 0) { @@ -128,7 +131,8 @@ export function validateExtensionDependencies(dependencies: string[] | undefined const invalidDependencies: string[] = []; for (const dep of dependencies) { - // Extension IDs should be lowercase + // Check if extension ID uses only lowercase letters + // Note: This does not validate the format of the extension ID itself if (dep !== dep.toLowerCase()) { invalidDependencies.push(dep); } From e5a89abe0ad6240877cfe0118491f6dc353e610b Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 2 Nov 2025 23:31:24 +0000 Subject: [PATCH 18/22] Add warning for deprecated github.copilot dependency - Warn when github.copilot is used in extensionDependencies or extensionPack - Suggest using github.copilot-chat instead - Add comprehensive tests for the warning Co-authored-by: benibenj <44439583+benibenj@users.noreply.github.com> --- src/package.ts | 11 +++++++++++ src/test/package.test.ts | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+) diff --git a/src/package.ts b/src/package.ts index f795bfc1..48aa9fac 100644 --- a/src/package.ts +++ b/src/package.ts @@ -1432,6 +1432,17 @@ export function validateManifestForPackaging(manifest: UnverifiedManifest): Mani validateExtensionDependencies(manifest.extensionDependencies, 'extensionDependencies'); validateExtensionDependencies(manifest.extensionPack, 'extensionPack'); + // Warn about deprecated github.copilot dependency + const allDependencies = [ + ...(manifest.extensionDependencies || []), + ...(manifest.extensionPack || []) + ]; + if (allDependencies.includes('github.copilot')) { + util.log.warn( + `The "github.copilot" extension is being deprecated. Please use "github.copilot-chat" instead.` + ); + } + return { ...manifest, name, diff --git a/src/test/package.test.ts b/src/test/package.test.ts index 61eaf929..7c4a72cb 100644 --- a/src/test/package.test.ts +++ b/src/test/package.test.ts @@ -628,6 +628,38 @@ describe('validateManifest', () => { assert.throws(() => validateManifestForPackaging(createManifest({ extensionPack: ['valid.ext', 'Invalid.Ext'] }))); }); + it('should warn about deprecated github.copilot dependency', () => { + const originalLogWarn = log.warn; + const warnings: string[] = []; + log.warn = (message: string) => warnings.push(message); + + try { + // Test with extensionDependencies + validateManifestForPackaging(createManifest({ extensionDependencies: ['github.copilot'] })); + assert.strictEqual(warnings.length, 1); + assert.ok(warnings[0].includes('github.copilot')); + assert.ok(warnings[0].includes('deprecated')); + assert.ok(warnings[0].includes('github.copilot-chat')); + + // Reset warnings + warnings.length = 0; + + // Test with extensionPack + validateManifestForPackaging(createManifest({ extensionPack: ['github.copilot'] })); + assert.strictEqual(warnings.length, 1); + assert.ok(warnings[0].includes('github.copilot')); + + // Reset warnings + warnings.length = 0; + + // Test with no github.copilot dependency + validateManifestForPackaging(createManifest({ extensionDependencies: ['other.extension'] })); + assert.strictEqual(warnings.length, 0); + } finally { + log.warn = originalLogWarn; + } + }); + it('should validate pricing', () => { assert.throws(() => validateManifestForPackaging(createManifest({ pricing: 'Paid' }))); validateManifestForPackaging(createManifest({ pricing: 'Trial' })); From 0b7a9ebddbed93d049dbf39c921dc87b50cde18c Mon Sep 17 00:00:00 2001 From: BeniBenj Date: Mon, 3 Nov 2025 09:36:52 +0100 Subject: [PATCH 19/22] fix warning --- src/package.ts | 11 ----------- src/validation.ts | 7 +++++++ 2 files changed, 7 insertions(+), 11 deletions(-) diff --git a/src/package.ts b/src/package.ts index 48aa9fac..f795bfc1 100644 --- a/src/package.ts +++ b/src/package.ts @@ -1432,17 +1432,6 @@ export function validateManifestForPackaging(manifest: UnverifiedManifest): Mani validateExtensionDependencies(manifest.extensionDependencies, 'extensionDependencies'); validateExtensionDependencies(manifest.extensionPack, 'extensionPack'); - // Warn about deprecated github.copilot dependency - const allDependencies = [ - ...(manifest.extensionDependencies || []), - ...(manifest.extensionPack || []) - ]; - if (allDependencies.includes('github.copilot')) { - util.log.warn( - `The "github.copilot" extension is being deprecated. Please use "github.copilot-chat" instead.` - ); - } - return { ...manifest, name, diff --git a/src/validation.ts b/src/validation.ts index 510c4bcc..38be7241 100644 --- a/src/validation.ts +++ b/src/validation.ts @@ -1,5 +1,6 @@ import * as semver from 'semver'; import parseSemver from 'parse-semver'; +import { log } from './util'; const nameRegex = /^[a-z0-9][a-z0-9\-]*$/i; @@ -136,6 +137,12 @@ export function validateExtensionDependencies(dependencies: string[] | undefined if (dep !== dep.toLowerCase()) { invalidDependencies.push(dep); } + + if (dep === 'github.copilot') { + log.warn( + `The "github.copilot" extension is being deprecated in favor of the "github.copilot-chat" extension. Please use "github.copilot-chat" in ${fieldName} instead.` + ); + } } if (invalidDependencies.length > 0) { From 82c80d6f774c5fdc83e3257e8ede35dde18818a9 Mon Sep 17 00:00:00 2001 From: BeniBenj Date: Mon, 3 Nov 2025 09:43:25 +0100 Subject: [PATCH 20/22] :lipstick: --- src/test/validation.test.ts | 4 ++-- src/validation.ts | 6 ++---- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/src/test/validation.test.ts b/src/test/validation.test.ts index fa07315f..185e3ff5 100644 --- a/src/test/validation.test.ts +++ b/src/test/validation.test.ts @@ -174,15 +174,15 @@ describe('validateExtensionDependencies', () => { it('should list all invalid dependencies in error message', () => { try { validateExtensionDependencies( - ['valid.extension', 'Invalid.Extension', 'another.Valid', 'Another.Invalid'], + ['valid.extension', 'Invalid.Extension', 'another.Invalid', 'Another.Invalid'], 'extensionDependencies' ); assert.fail('Should have thrown an error'); } catch (error: any) { assert.ok(error.message.includes('Invalid.Extension')); assert.ok(error.message.includes('Another.Invalid')); + assert.ok(error.message.includes('another.Invalid')); assert.ok(!error.message.includes('valid.extension')); - assert.ok(!error.message.includes('another.Valid')); } }); }); diff --git a/src/validation.ts b/src/validation.ts index 38be7241..516da3f6 100644 --- a/src/validation.ts +++ b/src/validation.ts @@ -139,16 +139,14 @@ export function validateExtensionDependencies(dependencies: string[] | undefined } if (dep === 'github.copilot') { - log.warn( - `The "github.copilot" extension is being deprecated in favor of the "github.copilot-chat" extension. Please use "github.copilot-chat" in ${fieldName} instead.` - ); + log.warn(`The "github.copilot" extension is being deprecated in favor of the "github.copilot-chat" extension. Please use "github.copilot-chat" in ${fieldName} instead.`); } } if (invalidDependencies.length > 0) { const depList = invalidDependencies.map(d => `"${d}"`).join(', '); throw new Error( - `The extension IDs in "${fieldName}" must use lowercase letters only. Invalid IDs: ${depList}. Learn more: https://code.visualstudio.com/api/references/extension-manifest` + `The extension IDs in "${fieldName}" must use lowercase letters only. Invalid IDs: ${depList}.` ); } } From be09f0f0b688fbf861fe50528eedd8d912fd9bf8 Mon Sep 17 00:00:00 2001 From: BeniBenj Date: Wed, 5 Nov 2025 12:53:47 +0100 Subject: [PATCH 21/22] remove invalid validation --- src/package.ts | 1 - src/test/validation.test.ts | 51 ------------------------------------- src/validation.ts | 26 ++----------------- 3 files changed, 2 insertions(+), 76 deletions(-) diff --git a/src/package.ts b/src/package.ts index f795bfc1..94e0ce0f 100644 --- a/src/package.ts +++ b/src/package.ts @@ -1428,7 +1428,6 @@ export function validateManifestForPackaging(manifest: UnverifiedManifest): Mani } } - // Validate extension dependencies and extension pack use lowercase IDs validateExtensionDependencies(manifest.extensionDependencies, 'extensionDependencies'); validateExtensionDependencies(manifest.extensionPack, 'extensionPack'); diff --git a/src/test/validation.test.ts b/src/test/validation.test.ts index 185e3ff5..5778ae99 100644 --- a/src/test/validation.test.ts +++ b/src/test/validation.test.ts @@ -5,7 +5,6 @@ import { validateVersion, validateEngineCompatibility, validateVSCodeTypesCompatibility, - validateExtensionDependencies, } from '../validation'; describe('validatePublisher', () => { @@ -136,53 +135,3 @@ describe('validateVSCodeTypesCompatibility', () => { assert.throws(() => validateVSCodeTypesCompatibility('1.5', '1.30')); }); }); - -describe('validateExtensionDependencies', () => { - it('should allow empty or undefined dependencies', () => { - validateExtensionDependencies(undefined, 'extensionDependencies'); - validateExtensionDependencies([], 'extensionDependencies'); - }); - - it('should allow lowercase extension IDs', () => { - validateExtensionDependencies(['publisher.extension'], 'extensionDependencies'); - validateExtensionDependencies(['publisher.extension-name'], 'extensionDependencies'); - validateExtensionDependencies(['publisher-name.extension-name'], 'extensionDependencies'); - validateExtensionDependencies(['pub123.ext456'], 'extensionDependencies'); - validateExtensionDependencies( - ['publisher1.extension1', 'publisher2.extension2'], - 'extensionDependencies' - ); - }); - - it('should reject uppercase letters in extension IDs', () => { - assert.throws(() => validateExtensionDependencies(['Publisher.extension'], 'extensionDependencies')); - assert.throws(() => validateExtensionDependencies(['publisher.Extension'], 'extensionDependencies')); - assert.throws(() => validateExtensionDependencies(['Publisher.Extension'], 'extensionDependencies')); - assert.throws(() => validateExtensionDependencies(['PUBLISHER.EXTENSION'], 'extensionDependencies')); - }); - - it('should reject mixed case in extension IDs', () => { - assert.throws(() => validateExtensionDependencies(['MyPublisher.my-extension'], 'extensionDependencies')); - assert.throws(() => validateExtensionDependencies(['my-publisher.MyExtension'], 'extensionDependencies')); - }); - - it('should work with extensionPack field', () => { - validateExtensionDependencies(['publisher.extension'], 'extensionPack'); - assert.throws(() => validateExtensionDependencies(['Publisher.Extension'], 'extensionPack')); - }); - - it('should list all invalid dependencies in error message', () => { - try { - validateExtensionDependencies( - ['valid.extension', 'Invalid.Extension', 'another.Invalid', 'Another.Invalid'], - 'extensionDependencies' - ); - assert.fail('Should have thrown an error'); - } catch (error: any) { - assert.ok(error.message.includes('Invalid.Extension')); - assert.ok(error.message.includes('Another.Invalid')); - assert.ok(error.message.includes('another.Invalid')); - assert.ok(!error.message.includes('valid.extension')); - } - }); -}); diff --git a/src/validation.ts b/src/validation.ts index 516da3f6..04989ae9 100644 --- a/src/validation.ts +++ b/src/validation.ts @@ -117,36 +117,14 @@ export function validateVSCodeTypesCompatibility(engineVersion: string, typeVers } } -/** - * Validates that extension IDs use only lowercase letters. - * This validation ensures compliance with VS Code extension marketplace requirements. - * - * Note: This only validates the case (lowercase). It does not validate the format - * or structure of extension IDs (e.g., presence of dot separator, valid characters). - */ export function validateExtensionDependencies(dependencies: string[] | undefined, fieldName: string): void { if (!dependencies || dependencies.length === 0) { return; } - const invalidDependencies: string[] = []; - for (const dep of dependencies) { - // Check if extension ID uses only lowercase letters - // Note: This does not validate the format of the extension ID itself - if (dep !== dep.toLowerCase()) { - invalidDependencies.push(dep); - } - - if (dep === 'github.copilot') { - log.warn(`The "github.copilot" extension is being deprecated in favor of the "github.copilot-chat" extension. Please use "github.copilot-chat" in ${fieldName} instead.`); + if (dep.toLowerCase() === 'github.copilot') { + log.warn(`The "${dep}" extension is being deprecated in favor of the "${dep}-chat" extension. Please use "${dep}-chat" in ${fieldName} instead and remove any references to "${dep}".`); } } - - if (invalidDependencies.length > 0) { - const depList = invalidDependencies.map(d => `"${d}"`).join(', '); - throw new Error( - `The extension IDs in "${fieldName}" must use lowercase letters only. Invalid IDs: ${depList}.` - ); - } } From 7b65808c78de8d5c35b183eba1e2abafcb80320f Mon Sep 17 00:00:00 2001 From: BeniBenj Date: Wed, 5 Nov 2025 14:57:16 +0100 Subject: [PATCH 22/22] remove tests --- src/test/package.test.ts | 24 ------------------------ 1 file changed, 24 deletions(-) diff --git a/src/test/package.test.ts b/src/test/package.test.ts index 7c4a72cb..e250da37 100644 --- a/src/test/package.test.ts +++ b/src/test/package.test.ts @@ -604,30 +604,6 @@ describe('validateManifest', () => { validateManifestForPackaging(createManifest({ sponsor: { url: 'http://www.foo.com' } })); }); - it('should validate extensionDependencies are lowercase', () => { - // Valid lowercase dependencies - validateManifestForPackaging(createManifest({ extensionDependencies: ['publisher.extension'] })); - validateManifestForPackaging(createManifest({ extensionDependencies: ['pub.ext', 'another.dep'] })); - validateManifestForPackaging(createManifest({ extensionDependencies: ['pub-name.ext-name'] })); - - // Invalid uppercase dependencies - assert.throws(() => validateManifestForPackaging(createManifest({ extensionDependencies: ['Publisher.extension'] }))); - assert.throws(() => validateManifestForPackaging(createManifest({ extensionDependencies: ['publisher.Extension'] }))); - assert.throws(() => validateManifestForPackaging(createManifest({ extensionDependencies: ['PUBLISHER.EXTENSION'] }))); - assert.throws(() => validateManifestForPackaging(createManifest({ extensionDependencies: ['valid.ext', 'Invalid.Ext'] }))); - }); - - it('should validate extensionPack are lowercase', () => { - // Valid lowercase pack - validateManifestForPackaging(createManifest({ extensionPack: ['publisher.extension'] })); - validateManifestForPackaging(createManifest({ extensionPack: ['pub.ext', 'another.dep'] })); - - // Invalid uppercase pack - assert.throws(() => validateManifestForPackaging(createManifest({ extensionPack: ['Publisher.extension'] }))); - assert.throws(() => validateManifestForPackaging(createManifest({ extensionPack: ['publisher.Extension'] }))); - assert.throws(() => validateManifestForPackaging(createManifest({ extensionPack: ['valid.ext', 'Invalid.Ext'] }))); - }); - it('should warn about deprecated github.copilot dependency', () => { const originalLogWarn = log.warn; const warnings: string[] = [];