diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 59f804f05fb..e0932cb45c3 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -16,6 +16,7 @@ jobs: # - build-tests-samples/heft-storybook-v9-react-tutorial/build.js # - build-tests-samples/heft-storybook-v9-react-tutorial-app/build.js # - The "globalOverrides" entry for "@vscode/vsce>cheerio" in common/config/rush/pnpm-config.json + # - libraries/module-minifier/src/cryptoPolyfill.ts - NodeVersion: 18.20.x NodeVersionDisplayName: 18 OS: ubuntu-latest @@ -33,6 +34,8 @@ jobs: OS: windows-latest name: Node.js v${{ matrix.NodeVersionDisplayName }} (${{ matrix.OS }}) runs-on: ${{ matrix.OS }} + env: + INSTALL_RUN_RUSH_LOCKFILE_PATH: ${{ github.workspace }}/repo-a/common/config/validation/rush-package-lock.json steps: - name: Create ~/.rush-user/settings.json shell: pwsh @@ -88,7 +91,11 @@ jobs: working-directory: repo-a - name: Collect JSON schemas - run: node repo-scripts/repo-toolbox/lib-commonjs/start.js collect-json-schemas --output-path ${GITHUB_WORKSPACE}/artifacts/json-schemas + run: node repo-scripts/repo-toolbox/lib-commonjs/start.js collect-project-files --subfolder temp/json-schemas --output-path ${GITHUB_WORKSPACE}/artifacts/json-schemas + working-directory: repo-a + + - name: Collect API review files + run: node repo-scripts/repo-toolbox/lib-commonjs/start.js collect-project-files --subfolder temp/api --output-path ${GITHUB_WORKSPACE}/artifacts/api working-directory: repo-a - name: Clone another copy of the repo to test the build cache diff --git a/README.md b/README.md index be4cb6d41cb..8a54e1dea4e 100644 --- a/README.md +++ b/README.md @@ -76,6 +76,7 @@ These GitHub repositories provide supplementary resources for Rush Stack: | [/heft-plugins/heft-sass-load-themed-styles-plugin](./heft-plugins/heft-sass-load-themed-styles-plugin/) | [![npm version](https://badge.fury.io/js/%40rushstack%2Fheft-sass-load-themed-styles-plugin.svg)](https://badge.fury.io/js/%40rushstack%2Fheft-sass-load-themed-styles-plugin) | [changelog](./heft-plugins/heft-sass-load-themed-styles-plugin/CHANGELOG.md) | [@rushstack/heft-sass-load-themed-styles-plugin](https://www.npmjs.com/package/@rushstack/heft-sass-load-themed-styles-plugin) | | [/heft-plugins/heft-sass-plugin](./heft-plugins/heft-sass-plugin/) | [![npm version](https://badge.fury.io/js/%40rushstack%2Fheft-sass-plugin.svg)](https://badge.fury.io/js/%40rushstack%2Fheft-sass-plugin) | [changelog](./heft-plugins/heft-sass-plugin/CHANGELOG.md) | [@rushstack/heft-sass-plugin](https://www.npmjs.com/package/@rushstack/heft-sass-plugin) | | [/heft-plugins/heft-serverless-stack-plugin](./heft-plugins/heft-serverless-stack-plugin/) | [![npm version](https://badge.fury.io/js/%40rushstack%2Fheft-serverless-stack-plugin.svg)](https://badge.fury.io/js/%40rushstack%2Fheft-serverless-stack-plugin) | [changelog](./heft-plugins/heft-serverless-stack-plugin/CHANGELOG.md) | [@rushstack/heft-serverless-stack-plugin](https://www.npmjs.com/package/@rushstack/heft-serverless-stack-plugin) | +| [/heft-plugins/heft-static-asset-typings-plugin](./heft-plugins/heft-static-asset-typings-plugin/) | [![npm version](https://badge.fury.io/js/%40rushstack%2Fheft-static-asset-typings-plugin.svg)](https://badge.fury.io/js/%40rushstack%2Fheft-static-asset-typings-plugin) | [changelog](./heft-plugins/heft-static-asset-typings-plugin/CHANGELOG.md) | [@rushstack/heft-static-asset-typings-plugin](https://www.npmjs.com/package/@rushstack/heft-static-asset-typings-plugin) | | [/heft-plugins/heft-storybook-plugin](./heft-plugins/heft-storybook-plugin/) | [![npm version](https://badge.fury.io/js/%40rushstack%2Fheft-storybook-plugin.svg)](https://badge.fury.io/js/%40rushstack%2Fheft-storybook-plugin) | [changelog](./heft-plugins/heft-storybook-plugin/CHANGELOG.md) | [@rushstack/heft-storybook-plugin](https://www.npmjs.com/package/@rushstack/heft-storybook-plugin) | | [/heft-plugins/heft-typescript-plugin](./heft-plugins/heft-typescript-plugin/) | [![npm version](https://badge.fury.io/js/%40rushstack%2Fheft-typescript-plugin.svg)](https://badge.fury.io/js/%40rushstack%2Fheft-typescript-plugin) | [changelog](./heft-plugins/heft-typescript-plugin/CHANGELOG.md) | [@rushstack/heft-typescript-plugin](https://www.npmjs.com/package/@rushstack/heft-typescript-plugin) | | [/heft-plugins/heft-vscode-extension-plugin](./heft-plugins/heft-vscode-extension-plugin/) | [![npm version](https://badge.fury.io/js/%40rushstack%2Fheft-vscode-extension-plugin.svg)](https://badge.fury.io/js/%40rushstack%2Fheft-vscode-extension-plugin) | [changelog](./heft-plugins/heft-vscode-extension-plugin/CHANGELOG.md) | [@rushstack/heft-vscode-extension-plugin](https://www.npmjs.com/package/@rushstack/heft-vscode-extension-plugin) | @@ -116,6 +117,7 @@ These GitHub repositories provide supplementary resources for Rush Stack: | [/rush-plugins/rush-buildxl-graph-plugin](./rush-plugins/rush-buildxl-graph-plugin/) | [![npm version](https://badge.fury.io/js/%40rushstack%2Frush-buildxl-graph-plugin.svg)](https://badge.fury.io/js/%40rushstack%2Frush-buildxl-graph-plugin) | | [@rushstack/rush-buildxl-graph-plugin](https://www.npmjs.com/package/@rushstack/rush-buildxl-graph-plugin) | | [/rush-plugins/rush-http-build-cache-plugin](./rush-plugins/rush-http-build-cache-plugin/) | [![npm version](https://badge.fury.io/js/%40rushstack%2Frush-http-build-cache-plugin.svg)](https://badge.fury.io/js/%40rushstack%2Frush-http-build-cache-plugin) | | [@rushstack/rush-http-build-cache-plugin](https://www.npmjs.com/package/@rushstack/rush-http-build-cache-plugin) | | [/rush-plugins/rush-mcp-docs-plugin](./rush-plugins/rush-mcp-docs-plugin/) | [![npm version](https://badge.fury.io/js/%40rushstack%2Frush-mcp-docs-plugin.svg)](https://badge.fury.io/js/%40rushstack%2Frush-mcp-docs-plugin) | [changelog](./rush-plugins/rush-mcp-docs-plugin/CHANGELOG.md) | [@rushstack/rush-mcp-docs-plugin](https://www.npmjs.com/package/@rushstack/rush-mcp-docs-plugin) | +| [/rush-plugins/rush-published-versions-json-plugin](./rush-plugins/rush-published-versions-json-plugin/) | [![npm version](https://badge.fury.io/js/%40rushstack%2Frush-published-versions-json-plugin.svg)](https://badge.fury.io/js/%40rushstack%2Frush-published-versions-json-plugin) | [changelog](./rush-plugins/rush-published-versions-json-plugin/CHANGELOG.md) | [@rushstack/rush-published-versions-json-plugin](https://www.npmjs.com/package/@rushstack/rush-published-versions-json-plugin) | | [/rush-plugins/rush-redis-cobuild-plugin](./rush-plugins/rush-redis-cobuild-plugin/) | [![npm version](https://badge.fury.io/js/%40rushstack%2Frush-redis-cobuild-plugin.svg)](https://badge.fury.io/js/%40rushstack%2Frush-redis-cobuild-plugin) | | [@rushstack/rush-redis-cobuild-plugin](https://www.npmjs.com/package/@rushstack/rush-redis-cobuild-plugin) | | [/rush-plugins/rush-resolver-cache-plugin](./rush-plugins/rush-resolver-cache-plugin/) | [![npm version](https://badge.fury.io/js/%40rushstack%2Frush-resolver-cache-plugin.svg)](https://badge.fury.io/js/%40rushstack%2Frush-resolver-cache-plugin) | | [@rushstack/rush-resolver-cache-plugin](https://www.npmjs.com/package/@rushstack/rush-resolver-cache-plugin) | | [/rush-plugins/rush-serve-plugin](./rush-plugins/rush-serve-plugin/) | [![npm version](https://badge.fury.io/js/%40rushstack%2Frush-serve-plugin.svg)](https://badge.fury.io/js/%40rushstack%2Frush-serve-plugin) | | [@rushstack/rush-serve-plugin](https://www.npmjs.com/package/@rushstack/rush-serve-plugin) | @@ -215,6 +217,7 @@ These GitHub repositories provide supplementary resources for Rush Stack: | [/build-tests/package-extractor-test-02](./build-tests/package-extractor-test-02/) | This project is used by tests in the @rushstack/package-extractor package. | | [/build-tests/package-extractor-test-03](./build-tests/package-extractor-test-03/) | This project is used by tests in the @rushstack/package-extractor package. | | [/build-tests/package-extractor-test-04](./build-tests/package-extractor-test-04/) | This project is used by tests in the @rushstack/package-extractor package. | +| [/build-tests/package-extractor-test-05](./build-tests/package-extractor-test-05/) | This project is used by tests in the @rushstack/package-extractor package. | | [/build-tests/run-scenarios-helpers](./build-tests/run-scenarios-helpers/) | Helpers for the *-scenarios test projects. | | [/build-tests/rush-amazon-s3-build-cache-plugin-integration-test](./build-tests/rush-amazon-s3-build-cache-plugin-integration-test/) | Tests connecting to an amazon S3 endpoint | | [/build-tests/rush-lib-declaration-paths-test](./build-tests/rush-lib-declaration-paths-test/) | This project ensures all of the paths in rush-lib/lib/... have imports that resolve correctly. If this project builds, all `lib/**/*.d.ts` files in the `@microsoft/rush-lib` package are valid. | diff --git a/apps/api-documenter/.npmignore b/apps/api-documenter/.npmignore index bc349f9a4be..f7a40e10213 100644 --- a/apps/api-documenter/.npmignore +++ b/apps/api-documenter/.npmignore @@ -8,6 +8,7 @@ !/lib/** !/lib-*/** !/dist/** +!/includes/** !CHANGELOG.md !CHANGELOG.json @@ -20,6 +21,9 @@ /lib/**/test/ /lib-*/**/test/ *.test.js +*.test.[cm]js +*.test.d.ts +*.test.d.[cm]ts # NOTE: These don't need to be specified, because NPM includes them automatically. # diff --git a/apps/api-documenter/CHANGELOG.json b/apps/api-documenter/CHANGELOG.json index ef90ad9f908..264d5207923 100644 --- a/apps/api-documenter/CHANGELOG.json +++ b/apps/api-documenter/CHANGELOG.json @@ -1,6 +1,93 @@ { "name": "@microsoft/api-documenter", "entries": [ + { + "version": "7.29.7", + "tag": "@microsoft/api-documenter_v7.29.7", + "date": "Mon, 09 Mar 2026 15:14:08 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.7`" + } + ] + } + }, + { + "version": "7.29.6", + "tag": "@microsoft/api-documenter_v7.29.6", + "date": "Wed, 25 Feb 2026 21:39:42 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@microsoft/api-extractor-model\" to `7.33.4`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.6`" + } + ] + } + }, + { + "version": "7.29.5", + "tag": "@microsoft/api-documenter_v7.29.5", + "date": "Wed, 25 Feb 2026 00:34:29 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@microsoft/api-extractor-model\" to `7.33.3`" + }, + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `5.20.3`" + }, + { + "comment": "Updating dependency \"@rushstack/terminal\" to `0.22.3`" + }, + { + "comment": "Updating dependency \"@rushstack/ts-command-line\" to `5.3.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.5`" + } + ] + } + }, + { + "version": "7.29.4", + "tag": "@microsoft/api-documenter_v7.29.4", + "date": "Tue, 24 Feb 2026 01:13:27 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@microsoft/api-extractor-model\" to `7.33.2`" + }, + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `5.20.2`" + }, + { + "comment": "Updating dependency \"@rushstack/terminal\" to `0.22.2`" + }, + { + "comment": "Updating dependency \"@rushstack/ts-command-line\" to `5.3.2`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.4`" + } + ] + } + }, + { + "version": "7.29.3", + "tag": "@microsoft/api-documenter_v7.29.3", + "date": "Mon, 23 Feb 2026 00:42:21 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.3`" + } + ] + } + }, { "version": "7.29.2", "tag": "@microsoft/api-documenter_v7.29.2", diff --git a/apps/api-documenter/CHANGELOG.md b/apps/api-documenter/CHANGELOG.md index a71c4d1cc50..9c945bfb002 100644 --- a/apps/api-documenter/CHANGELOG.md +++ b/apps/api-documenter/CHANGELOG.md @@ -1,6 +1,31 @@ # Change Log - @microsoft/api-documenter -This log was last generated on Fri, 20 Feb 2026 16:14:49 GMT and should not be manually modified. +This log was last generated on Mon, 09 Mar 2026 15:14:08 GMT and should not be manually modified. + +## 7.29.7 +Mon, 09 Mar 2026 15:14:08 GMT + +_Version update only_ + +## 7.29.6 +Wed, 25 Feb 2026 21:39:42 GMT + +_Version update only_ + +## 7.29.5 +Wed, 25 Feb 2026 00:34:29 GMT + +_Version update only_ + +## 7.29.4 +Tue, 24 Feb 2026 01:13:27 GMT + +_Version update only_ + +## 7.29.3 +Mon, 23 Feb 2026 00:42:21 GMT + +_Version update only_ ## 7.29.2 Fri, 20 Feb 2026 16:14:49 GMT diff --git a/apps/api-documenter/config/api-extractor.json b/apps/api-documenter/config/api-extractor.json index 05c675a8601..d34381e01f3 100644 --- a/apps/api-documenter/config/api-extractor.json +++ b/apps/api-documenter/config/api-extractor.json @@ -1,17 +1,6 @@ { "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", - - "mainEntryPointFilePath": "/lib-dts/index.d.ts", - - "apiReport": { - "enabled": true, - "reportFolder": "../../../common/reviews/api" - }, - - "docModel": { - "enabled": true, - "apiJsonFilePath": "../../../common/temp/api/.api.json" - }, + "extends": "local-node-rig/profiles/default/config/api-extractor-base.json", "dtsRollup": { "enabled": true, diff --git a/apps/api-documenter/package.json b/apps/api-documenter/package.json index 938c63b6b64..4a7bce82d18 100644 --- a/apps/api-documenter/package.json +++ b/apps/api-documenter/package.json @@ -1,6 +1,6 @@ { "name": "@microsoft/api-documenter", - "version": "7.29.2", + "version": "7.29.7", "description": "Read JSON files from api-extractor, generate documentation pages", "repository": { "type": "git", diff --git a/apps/api-extractor/.npmignore b/apps/api-extractor/.npmignore index 8b61d7caa66..64ed79eb4bc 100644 --- a/apps/api-extractor/.npmignore +++ b/apps/api-extractor/.npmignore @@ -8,6 +8,7 @@ !/lib/** !/lib-*/** !/dist/** +!/includes/** !CHANGELOG.md !CHANGELOG.json @@ -20,6 +21,9 @@ /lib/**/test/ /lib-*/**/test/ *.test.js +*.test.[cm]js +*.test.d.ts +*.test.d.[cm]ts # NOTE: These don't need to be specified, because NPM includes them automatically. # diff --git a/apps/api-extractor/CHANGELOG.json b/apps/api-extractor/CHANGELOG.json index 39b67d07207..1a010b1441c 100644 --- a/apps/api-extractor/CHANGELOG.json +++ b/apps/api-extractor/CHANGELOG.json @@ -1,6 +1,92 @@ { "name": "@microsoft/api-extractor", "entries": [ + { + "version": "7.57.7", + "tag": "@microsoft/api-extractor_v7.57.7", + "date": "Mon, 09 Mar 2026 15:14:07 GMT", + "comments": { + "patch": [ + { + "comment": "Bump `minimatch` version from `10.2.1` to `10.2.3` to address CVE-2026-27903." + } + ] + } + }, + { + "version": "7.57.6", + "tag": "@microsoft/api-extractor_v7.57.6", + "date": "Wed, 25 Feb 2026 21:39:42 GMT", + "comments": { + "patch": [ + { + "comment": "Bump `@microsoft/tsdoc-config` to `~0.18.1` to mitigate CVE-2025-69873." + } + ], + "dependency": [ + { + "comment": "Updating dependency \"@microsoft/api-extractor-model\" to `7.33.4`" + } + ] + } + }, + { + "version": "7.57.5", + "tag": "@microsoft/api-extractor_v7.57.5", + "date": "Wed, 25 Feb 2026 00:34:29 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@microsoft/api-extractor-model\" to `7.33.3`" + }, + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `5.20.3`" + }, + { + "comment": "Updating dependency \"@rushstack/rig-package\" to `0.7.2`" + }, + { + "comment": "Updating dependency \"@rushstack/terminal\" to `0.22.3`" + }, + { + "comment": "Updating dependency \"@rushstack/ts-command-line\" to `5.3.3`" + } + ] + } + }, + { + "version": "7.57.4", + "tag": "@microsoft/api-extractor_v7.57.4", + "date": "Tue, 24 Feb 2026 01:13:27 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@microsoft/api-extractor-model\" to `7.33.2`" + }, + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `5.20.2`" + }, + { + "comment": "Updating dependency \"@rushstack/terminal\" to `0.22.2`" + }, + { + "comment": "Updating dependency \"@rushstack/ts-command-line\" to `5.3.2`" + } + ] + } + }, + { + "version": "7.57.3", + "tag": "@microsoft/api-extractor_v7.57.3", + "date": "Mon, 23 Feb 2026 00:42:21 GMT", + "comments": { + "patch": [ + { + "comment": "Add missing \"./extends/*.json\" to the package.json \"exports\" field so that \"@microsoft/api-extractor/extends/tsdoc-base.json\" is importable." + } + ] + } + }, { "version": "7.57.2", "tag": "@microsoft/api-extractor_v7.57.2", diff --git a/apps/api-extractor/CHANGELOG.md b/apps/api-extractor/CHANGELOG.md index ecd341fa4d4..4d6df0d1442 100644 --- a/apps/api-extractor/CHANGELOG.md +++ b/apps/api-extractor/CHANGELOG.md @@ -1,6 +1,37 @@ # Change Log - @microsoft/api-extractor -This log was last generated on Fri, 20 Feb 2026 16:14:49 GMT and should not be manually modified. +This log was last generated on Mon, 09 Mar 2026 15:14:07 GMT and should not be manually modified. + +## 7.57.7 +Mon, 09 Mar 2026 15:14:07 GMT + +### Patches + +- Bump `minimatch` version from `10.2.1` to `10.2.3` to address CVE-2026-27903. + +## 7.57.6 +Wed, 25 Feb 2026 21:39:42 GMT + +### Patches + +- Bump `@microsoft/tsdoc-config` to `~0.18.1` to mitigate CVE-2025-69873. + +## 7.57.5 +Wed, 25 Feb 2026 00:34:29 GMT + +_Version update only_ + +## 7.57.4 +Tue, 24 Feb 2026 01:13:27 GMT + +_Version update only_ + +## 7.57.3 +Mon, 23 Feb 2026 00:42:21 GMT + +### Patches + +- Add missing "./extends/*.json" to the package.json "exports" field so that "@microsoft/api-extractor/extends/tsdoc-base.json" is importable. ## 7.57.2 Fri, 20 Feb 2026 16:14:49 GMT diff --git a/apps/api-extractor/config/api-extractor.json b/apps/api-extractor/config/api-extractor.json index 05c675a8601..bf6aa143c60 100644 --- a/apps/api-extractor/config/api-extractor.json +++ b/apps/api-extractor/config/api-extractor.json @@ -1,17 +1,6 @@ { "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", - - "mainEntryPointFilePath": "/lib-dts/index.d.ts", - - "apiReport": { - "enabled": true, - "reportFolder": "../../../common/reviews/api" - }, - - "docModel": { - "enabled": true, - "apiJsonFilePath": "../../../common/temp/api/.api.json" - }, + "extends": "decoupled-local-node-rig/profiles/default/config/api-extractor-base.json", "dtsRollup": { "enabled": true, diff --git a/apps/api-extractor/package.json b/apps/api-extractor/package.json index 8b381d8c169..37058f36fe6 100644 --- a/apps/api-extractor/package.json +++ b/apps/api-extractor/package.json @@ -1,6 +1,6 @@ { "name": "@microsoft/api-extractor", - "version": "7.57.2", + "version": "7.57.7", "description": "Analyze the exported API for a TypeScript library and generate reviews, documentation, and .d.ts rollups", "keywords": [ "typescript", @@ -63,7 +63,7 @@ }, "dependencies": { "@microsoft/api-extractor-model": "workspace:*", - "@microsoft/tsdoc-config": "~0.18.0", + "@microsoft/tsdoc-config": "~0.18.1", "@microsoft/tsdoc": "~0.16.0", "@rushstack/node-core-library": "workspace:*", "@rushstack/rig-package": "workspace:*", @@ -71,14 +71,14 @@ "@rushstack/ts-command-line": "workspace:*", "diff": "~8.0.2", "lodash": "~4.17.23", - "minimatch": "10.2.1", + "minimatch": "10.2.3", "resolve": "~1.22.1", "semver": "~7.5.4", "source-map": "~0.6.1", "typescript": "5.8.2" }, "devDependencies": { - "@rushstack/heft": "1.2.0", + "@rushstack/heft": "1.2.7", "@types/lodash": "4.17.23", "@types/resolve": "1.20.2", "@types/semver": "7.5.0", diff --git a/apps/cpu-profile-summarizer/.npmignore b/apps/cpu-profile-summarizer/.npmignore index bc349f9a4be..f7a40e10213 100644 --- a/apps/cpu-profile-summarizer/.npmignore +++ b/apps/cpu-profile-summarizer/.npmignore @@ -8,6 +8,7 @@ !/lib/** !/lib-*/** !/dist/** +!/includes/** !CHANGELOG.md !CHANGELOG.json @@ -20,6 +21,9 @@ /lib/**/test/ /lib-*/**/test/ *.test.js +*.test.[cm]js +*.test.d.ts +*.test.d.[cm]ts # NOTE: These don't need to be specified, because NPM includes them automatically. # diff --git a/apps/cpu-profile-summarizer/CHANGELOG.json b/apps/cpu-profile-summarizer/CHANGELOG.json index ec7b6cba794..054c63a0d8d 100644 --- a/apps/cpu-profile-summarizer/CHANGELOG.json +++ b/apps/cpu-profile-summarizer/CHANGELOG.json @@ -1,6 +1,87 @@ { "name": "@rushstack/cpu-profile-summarizer", "entries": [ + { + "version": "0.2.7", + "tag": "@rushstack/cpu-profile-summarizer_v0.2.7", + "date": "Mon, 09 Mar 2026 15:14:08 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/worker-pool\" to `0.7.7`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.7`" + } + ] + } + }, + { + "version": "0.2.6", + "tag": "@rushstack/cpu-profile-summarizer_v0.2.6", + "date": "Wed, 25 Feb 2026 21:39:42 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/worker-pool\" to `0.7.6`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.6`" + } + ] + } + }, + { + "version": "0.2.5", + "tag": "@rushstack/cpu-profile-summarizer_v0.2.5", + "date": "Wed, 25 Feb 2026 00:34:29 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/ts-command-line\" to `5.3.3`" + }, + { + "comment": "Updating dependency \"@rushstack/worker-pool\" to `0.7.5`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.5`" + } + ] + } + }, + { + "version": "0.2.4", + "tag": "@rushstack/cpu-profile-summarizer_v0.2.4", + "date": "Tue, 24 Feb 2026 01:13:27 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/ts-command-line\" to `5.3.2`" + }, + { + "comment": "Updating dependency \"@rushstack/worker-pool\" to `0.7.4`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.4`" + } + ] + } + }, + { + "version": "0.2.3", + "tag": "@rushstack/cpu-profile-summarizer_v0.2.3", + "date": "Mon, 23 Feb 2026 00:42:21 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/worker-pool\" to `0.7.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.3`" + } + ] + } + }, { "version": "0.2.2", "tag": "@rushstack/cpu-profile-summarizer_v0.2.2", diff --git a/apps/cpu-profile-summarizer/CHANGELOG.md b/apps/cpu-profile-summarizer/CHANGELOG.md index 084254ffd37..93b649f7e9f 100644 --- a/apps/cpu-profile-summarizer/CHANGELOG.md +++ b/apps/cpu-profile-summarizer/CHANGELOG.md @@ -1,6 +1,31 @@ # Change Log - @rushstack/cpu-profile-summarizer -This log was last generated on Fri, 20 Feb 2026 16:14:49 GMT and should not be manually modified. +This log was last generated on Mon, 09 Mar 2026 15:14:08 GMT and should not be manually modified. + +## 0.2.7 +Mon, 09 Mar 2026 15:14:08 GMT + +_Version update only_ + +## 0.2.6 +Wed, 25 Feb 2026 21:39:42 GMT + +_Version update only_ + +## 0.2.5 +Wed, 25 Feb 2026 00:34:29 GMT + +_Version update only_ + +## 0.2.4 +Tue, 24 Feb 2026 01:13:27 GMT + +_Version update only_ + +## 0.2.3 +Mon, 23 Feb 2026 00:42:21 GMT + +_Version update only_ ## 0.2.2 Fri, 20 Feb 2026 16:14:49 GMT diff --git a/apps/cpu-profile-summarizer/package.json b/apps/cpu-profile-summarizer/package.json index 873fab4d9cc..0cfd5f7a24a 100644 --- a/apps/cpu-profile-summarizer/package.json +++ b/apps/cpu-profile-summarizer/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/cpu-profile-summarizer", - "version": "0.2.2", + "version": "0.2.7", "description": "CLI tool for running analytics on multiple V8 .cpuprofile files", "repository": { "type": "git", diff --git a/apps/heft/.npmignore b/apps/heft/.npmignore index 52bcd7587a7..1d4b6d39ec5 100644 --- a/apps/heft/.npmignore +++ b/apps/heft/.npmignore @@ -8,6 +8,7 @@ !/lib/** !/lib-*/** !/dist/** +!/includes/** !CHANGELOG.md !CHANGELOG.json @@ -20,6 +21,9 @@ /lib/**/test/ /lib-*/**/test/ *.test.js +*.test.[cm]js +*.test.d.ts +*.test.d.[cm]ts # NOTE: These don't need to be specified, because NPM includes them automatically. # @@ -31,6 +35,4 @@ # DO NOT MODIFY ABOVE THIS LINE! Add any project-specific overrides below. # --------------------------------------------------------------------------- -!/includes/** !UPGRADING.md -lib-*/legacy-compatibility/** diff --git a/apps/heft/CHANGELOG.json b/apps/heft/CHANGELOG.json index 980a398ee79..6f10265f5da 100644 --- a/apps/heft/CHANGELOG.json +++ b/apps/heft/CHANGELOG.json @@ -1,6 +1,99 @@ { "name": "@rushstack/heft", "entries": [ + { + "version": "1.2.7", + "tag": "@rushstack/heft_v1.2.7", + "date": "Mon, 09 Mar 2026 15:14:08 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@microsoft/api-extractor\" to `7.57.7`" + } + ] + } + }, + { + "version": "1.2.6", + "tag": "@rushstack/heft_v1.2.6", + "date": "Wed, 25 Feb 2026 21:39:42 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@microsoft/api-extractor\" to `7.57.6`" + } + ] + } + }, + { + "version": "1.2.5", + "tag": "@rushstack/heft_v1.2.5", + "date": "Wed, 25 Feb 2026 00:34:29 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft-config-file\" to `0.20.3`" + }, + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `5.20.3`" + }, + { + "comment": "Updating dependency \"@rushstack/operation-graph\" to `0.6.3`" + }, + { + "comment": "Updating dependency \"@rushstack/rig-package\" to `0.7.2`" + }, + { + "comment": "Updating dependency \"@rushstack/terminal\" to `0.22.3`" + }, + { + "comment": "Updating dependency \"@rushstack/ts-command-line\" to `5.3.3`" + }, + { + "comment": "Updating dependency \"@microsoft/api-extractor\" to `7.57.5`" + } + ] + } + }, + { + "version": "1.2.4", + "tag": "@rushstack/heft_v1.2.4", + "date": "Tue, 24 Feb 2026 01:13:27 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft-config-file\" to `0.20.2`" + }, + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `5.20.2`" + }, + { + "comment": "Updating dependency \"@rushstack/operation-graph\" to `0.6.2`" + }, + { + "comment": "Updating dependency \"@rushstack/terminal\" to `0.22.2`" + }, + { + "comment": "Updating dependency \"@rushstack/ts-command-line\" to `5.3.2`" + }, + { + "comment": "Updating dependency \"@microsoft/api-extractor\" to `7.57.4`" + } + ] + } + }, + { + "version": "1.2.3", + "tag": "@rushstack/heft_v1.2.3", + "date": "Mon, 23 Feb 2026 00:42:21 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@microsoft/api-extractor\" to `7.57.3`" + } + ] + } + }, { "version": "1.2.2", "tag": "@rushstack/heft_v1.2.2", diff --git a/apps/heft/CHANGELOG.md b/apps/heft/CHANGELOG.md index 535b4dce668..f1fb9e35280 100644 --- a/apps/heft/CHANGELOG.md +++ b/apps/heft/CHANGELOG.md @@ -1,6 +1,31 @@ # Change Log - @rushstack/heft -This log was last generated on Fri, 20 Feb 2026 16:14:49 GMT and should not be manually modified. +This log was last generated on Mon, 09 Mar 2026 15:14:08 GMT and should not be manually modified. + +## 1.2.7 +Mon, 09 Mar 2026 15:14:08 GMT + +_Version update only_ + +## 1.2.6 +Wed, 25 Feb 2026 21:39:42 GMT + +_Version update only_ + +## 1.2.5 +Wed, 25 Feb 2026 00:34:29 GMT + +_Version update only_ + +## 1.2.4 +Tue, 24 Feb 2026 01:13:27 GMT + +_Version update only_ + +## 1.2.3 +Mon, 23 Feb 2026 00:42:21 GMT + +_Version update only_ ## 1.2.2 Fri, 20 Feb 2026 16:14:49 GMT diff --git a/apps/heft/config/api-extractor.json b/apps/heft/config/api-extractor.json index 1ddb4758d09..005e818a08b 100644 --- a/apps/heft/config/api-extractor.json +++ b/apps/heft/config/api-extractor.json @@ -1,15 +1,7 @@ { "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", + "extends": "decoupled-local-node-rig/profiles/default/config/api-extractor-base.json", - "mainEntryPointFilePath": "/lib-dts/index.d.ts", - "apiReport": { - "enabled": true, - "reportFolder": "../../../common/reviews/api" - }, - "docModel": { - "enabled": true, - "apiJsonFilePath": "../../../common/temp/api/.api.json" - }, "dtsRollup": { "enabled": true, "betaTrimmedFilePath": "/dist/.d.ts" diff --git a/apps/heft/package.json b/apps/heft/package.json index 8792ac4d8f7..b7bfdb7e512 100644 --- a/apps/heft/package.json +++ b/apps/heft/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/heft", - "version": "1.2.2", + "version": "1.2.7", "description": "Build all your JavaScript projects the same way: A way that works.", "keywords": [ "toolchain", @@ -74,7 +74,7 @@ }, "devDependencies": { "@microsoft/api-extractor": "workspace:*", - "@rushstack/heft": "1.2.0", + "@rushstack/heft": "1.2.7", "@types/watchpack": "2.4.0", "decoupled-local-node-rig": "workspace:*", "eslint": "~9.37.0" diff --git a/apps/lockfile-explorer/.npmignore b/apps/lockfile-explorer/.npmignore index 538016c27d7..2253c0c3ac5 100644 --- a/apps/lockfile-explorer/.npmignore +++ b/apps/lockfile-explorer/.npmignore @@ -8,6 +8,7 @@ !/lib/** !/lib-*/** !/dist/** +!/includes/** !CHANGELOG.md !CHANGELOG.json @@ -20,6 +21,9 @@ /lib/**/test/ /lib-*/**/test/ *.test.js +*.test.[cm]js +*.test.d.ts +*.test.d.[cm]ts # NOTE: These don't need to be specified, because NPM includes them automatically. # diff --git a/apps/lockfile-explorer/CHANGELOG.json b/apps/lockfile-explorer/CHANGELOG.json index 7d5888b19d3..a71ac00b02f 100644 --- a/apps/lockfile-explorer/CHANGELOG.json +++ b/apps/lockfile-explorer/CHANGELOG.json @@ -1,6 +1,84 @@ { "name": "@rushstack/lockfile-explorer", "entries": [ + { + "version": "2.2.8", + "tag": "@rushstack/lockfile-explorer_v2.2.8", + "date": "Mon, 09 Mar 2026 15:14:08 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.7`" + } + ] + } + }, + { + "version": "2.2.7", + "tag": "@rushstack/lockfile-explorer_v2.2.7", + "date": "Wed, 25 Feb 2026 21:39:42 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.6`" + } + ] + } + }, + { + "version": "2.2.6", + "tag": "@rushstack/lockfile-explorer_v2.2.6", + "date": "Wed, 25 Feb 2026 00:34:30 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `5.20.3`" + }, + { + "comment": "Updating dependency \"@rushstack/terminal\" to `0.22.3`" + }, + { + "comment": "Updating dependency \"@rushstack/ts-command-line\" to `5.3.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.5`" + } + ] + } + }, + { + "version": "2.2.5", + "tag": "@rushstack/lockfile-explorer_v2.2.5", + "date": "Tue, 24 Feb 2026 01:13:27 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `5.20.2`" + }, + { + "comment": "Updating dependency \"@rushstack/terminal\" to `0.22.2`" + }, + { + "comment": "Updating dependency \"@rushstack/ts-command-line\" to `5.3.2`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.4`" + } + ] + } + }, + { + "version": "2.2.4", + "tag": "@rushstack/lockfile-explorer_v2.2.4", + "date": "Mon, 23 Feb 2026 00:42:21 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.3`" + } + ] + } + }, { "version": "2.2.3", "tag": "@rushstack/lockfile-explorer_v2.2.3", diff --git a/apps/lockfile-explorer/CHANGELOG.md b/apps/lockfile-explorer/CHANGELOG.md index 601d9e92e1b..930d823c5b7 100644 --- a/apps/lockfile-explorer/CHANGELOG.md +++ b/apps/lockfile-explorer/CHANGELOG.md @@ -1,6 +1,31 @@ # Change Log - @rushstack/lockfile-explorer -This log was last generated on Fri, 20 Feb 2026 16:14:49 GMT and should not be manually modified. +This log was last generated on Mon, 09 Mar 2026 15:14:08 GMT and should not be manually modified. + +## 2.2.8 +Mon, 09 Mar 2026 15:14:08 GMT + +_Version update only_ + +## 2.2.7 +Wed, 25 Feb 2026 21:39:42 GMT + +_Version update only_ + +## 2.2.6 +Wed, 25 Feb 2026 00:34:30 GMT + +_Version update only_ + +## 2.2.5 +Tue, 24 Feb 2026 01:13:27 GMT + +_Version update only_ + +## 2.2.4 +Mon, 23 Feb 2026 00:42:21 GMT + +_Version update only_ ## 2.2.3 Fri, 20 Feb 2026 16:14:49 GMT diff --git a/apps/lockfile-explorer/package.json b/apps/lockfile-explorer/package.json index d2a8a32bb0a..0a413926942 100644 --- a/apps/lockfile-explorer/package.json +++ b/apps/lockfile-explorer/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/lockfile-explorer", - "version": "2.2.3", + "version": "2.2.8", "description": "Rush Lockfile Explorer: The UI for solving version conflicts quickly in a large monorepo", "keywords": [ "conflict", diff --git a/apps/playwright-browser-tunnel/.npmignore b/apps/playwright-browser-tunnel/.npmignore index bc349f9a4be..f7a40e10213 100644 --- a/apps/playwright-browser-tunnel/.npmignore +++ b/apps/playwright-browser-tunnel/.npmignore @@ -8,6 +8,7 @@ !/lib/** !/lib-*/** !/dist/** +!/includes/** !CHANGELOG.md !CHANGELOG.json @@ -20,6 +21,9 @@ /lib/**/test/ /lib-*/**/test/ *.test.js +*.test.[cm]js +*.test.d.ts +*.test.d.[cm]ts # NOTE: These don't need to be specified, because NPM includes them automatically. # diff --git a/apps/playwright-browser-tunnel/CHANGELOG.json b/apps/playwright-browser-tunnel/CHANGELOG.json index ef1e699f4ad..79ca86eb9a1 100644 --- a/apps/playwright-browser-tunnel/CHANGELOG.json +++ b/apps/playwright-browser-tunnel/CHANGELOG.json @@ -1,6 +1,101 @@ { "name": "@rushstack/playwright-browser-tunnel", "entries": [ + { + "version": "0.3.9", + "tag": "@rushstack/playwright-browser-tunnel_v0.3.9", + "date": "Mon, 09 Mar 2026 15:14:08 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.7`" + } + ] + } + }, + { + "version": "0.3.8", + "tag": "@rushstack/playwright-browser-tunnel_v0.3.8", + "date": "Fri, 06 Mar 2026 01:14:37 GMT", + "comments": { + "patch": [ + { + "comment": "Fix the launch-options param" + } + ] + } + }, + { + "version": "0.3.7", + "tag": "@rushstack/playwright-browser-tunnel_v0.3.7", + "date": "Wed, 25 Feb 2026 21:39:42 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.6`" + } + ] + } + }, + { + "version": "0.3.6", + "tag": "@rushstack/playwright-browser-tunnel_v0.3.6", + "date": "Wed, 25 Feb 2026 00:34:29 GMT", + "comments": { + "patch": [ + { + "comment": "Add playwright-versioning and remove semver" + } + ], + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `5.20.3`" + }, + { + "comment": "Updating dependency \"@rushstack/terminal\" to `0.22.3`" + }, + { + "comment": "Updating dependency \"@rushstack/ts-command-line\" to `5.3.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.5`" + } + ] + } + }, + { + "version": "0.3.5", + "tag": "@rushstack/playwright-browser-tunnel_v0.3.5", + "date": "Tue, 24 Feb 2026 01:13:27 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `5.20.2`" + }, + { + "comment": "Updating dependency \"@rushstack/terminal\" to `0.22.2`" + }, + { + "comment": "Updating dependency \"@rushstack/ts-command-line\" to `5.3.2`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.4`" + } + ] + } + }, + { + "version": "0.3.4", + "tag": "@rushstack/playwright-browser-tunnel_v0.3.4", + "date": "Mon, 23 Feb 2026 00:42:21 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.3`" + } + ] + } + }, { "version": "0.3.3", "tag": "@rushstack/playwright-browser-tunnel_v0.3.3", diff --git a/apps/playwright-browser-tunnel/CHANGELOG.md b/apps/playwright-browser-tunnel/CHANGELOG.md index 0f34854db87..71056f0cbc0 100644 --- a/apps/playwright-browser-tunnel/CHANGELOG.md +++ b/apps/playwright-browser-tunnel/CHANGELOG.md @@ -1,6 +1,40 @@ # Change Log - @rushstack/playwright-browser-tunnel -This log was last generated on Fri, 20 Feb 2026 16:14:49 GMT and should not be manually modified. +This log was last generated on Mon, 09 Mar 2026 15:14:08 GMT and should not be manually modified. + +## 0.3.9 +Mon, 09 Mar 2026 15:14:08 GMT + +_Version update only_ + +## 0.3.8 +Fri, 06 Mar 2026 01:14:37 GMT + +### Patches + +- Fix the launch-options param + +## 0.3.7 +Wed, 25 Feb 2026 21:39:42 GMT + +_Version update only_ + +## 0.3.6 +Wed, 25 Feb 2026 00:34:29 GMT + +### Patches + +- Add playwright-versioning and remove semver + +## 0.3.5 +Tue, 24 Feb 2026 01:13:27 GMT + +_Version update only_ + +## 0.3.4 +Mon, 23 Feb 2026 00:42:21 GMT + +_Version update only_ ## 0.3.3 Fri, 20 Feb 2026 16:14:49 GMT diff --git a/apps/playwright-browser-tunnel/config/api-extractor.json b/apps/playwright-browser-tunnel/config/api-extractor.json index 5dbfda704f4..3dbb76c0e6f 100644 --- a/apps/playwright-browser-tunnel/config/api-extractor.json +++ b/apps/playwright-browser-tunnel/config/api-extractor.json @@ -1,19 +1,4 @@ { "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", - - "mainEntryPointFilePath": "/lib-dts/index.d.ts", - - "apiReport": { - "enabled": true, - "reportFolder": "../../../common/reviews/api" - }, - - "docModel": { - "enabled": true, - "apiJsonFilePath": "../../../common/temp/api/.api.json" - }, - - "dtsRollup": { - "enabled": true - } + "extends": "local-node-rig/profiles/default/config/api-extractor-base.json" } diff --git a/apps/playwright-browser-tunnel/package.json b/apps/playwright-browser-tunnel/package.json index 5b0c33d823c..1b6ce57b273 100644 --- a/apps/playwright-browser-tunnel/package.json +++ b/apps/playwright-browser-tunnel/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/playwright-browser-tunnel", - "version": "0.3.3", + "version": "0.3.9", "description": "Run a remote Playwright Browser Tunnel. Useful in remote development environments.", "license": "MIT", "repository": { @@ -48,7 +48,6 @@ "@rushstack/terminal": "workspace:*", "@rushstack/ts-command-line": "workspace:*", "string-argv": "~0.3.1", - "semver": "~7.5.4", "ws": "~8.14.1", "playwright": "1.56.1" }, diff --git a/apps/playwright-browser-tunnel/src/PlaywrightBrowserTunnel.ts b/apps/playwright-browser-tunnel/src/PlaywrightBrowserTunnel.ts index 6b5a084eabf..1fa0627b531 100644 --- a/apps/playwright-browser-tunnel/src/PlaywrightBrowserTunnel.ts +++ b/apps/playwright-browser-tunnel/src/PlaywrightBrowserTunnel.ts @@ -6,7 +6,6 @@ import { once } from 'node:events'; import type { BrowserServer, BrowserType, LaunchOptions } from 'playwright-core'; import { type RawData, WebSocket, type WebSocketServer } from 'ws'; -import semver from 'semver'; import { TerminalProviderSeverity, TerminalStreamWritable, type ITerminal } from '@rushstack/terminal'; import { Executable, FileSystem, Async } from '@rushstack/node-core-library'; @@ -48,7 +47,7 @@ export interface IHandshake { action: 'handshake'; browserName: BrowserName; launchOptions: LaunchOptions; - playwrightVersion: semver.SemVer; + playwrightVersion: string; } type TunnelMode = 'poll-connection' | 'wait-for-incoming-connection'; @@ -432,10 +431,7 @@ export class PlaywrightTunnel { if (action !== 'handshake') { throw new Error(`Invalid action: ${action}. Expected 'handshake'.`); } - const playwrightVersionSemver: semver.SemVer | null = semver.coerce(playwrightVersion); - if (!playwrightVersionSemver) { - throw new Error(`Invalid Playwright version: ${playwrightVersion}. Must be a valid semver version.`); - } + if (!isValidBrowserName(browserName)) { throw new Error( `Invalid browser name: ${browserName}. Must be one of ${Array.from(validBrowserNames).join(', ')}.` @@ -445,7 +441,7 @@ export class PlaywrightTunnel { return { action, launchOptions: launchOptions as LaunchOptions, - playwrightVersion: playwrightVersionSemver, + playwrightVersion, browserName }; } diff --git a/apps/playwright-browser-tunnel/src/tunneledBrowserConnection/TunneledBrowserConnection.ts b/apps/playwright-browser-tunnel/src/tunneledBrowserConnection/TunneledBrowserConnection.ts index 0d466c6067f..23f0f560067 100644 --- a/apps/playwright-browser-tunnel/src/tunneledBrowserConnection/TunneledBrowserConnection.ts +++ b/apps/playwright-browser-tunnel/src/tunneledBrowserConnection/TunneledBrowserConnection.ts @@ -23,15 +23,14 @@ import type { } from './ITunneledBrowserConnection'; import { DEFAULT_LISTEN_PORT, SUPPORTED_BROWSER_NAMES } from './constants'; -const { version: playwrightVersion } = playwrightPackageJson; - /** * Creates a tunneled WebSocket endpoint that a local Playwright client can connect to. * @beta */ export async function tunneledBrowserConnection( logger: ITerminal, - port: number = DEFAULT_LISTEN_PORT + port: number = DEFAULT_LISTEN_PORT, + playwrightVersion: string = playwrightPackageJson.version ): Promise { // Server that remote peer (actual browser host) connects to const remoteWsServer: WebSocketServer = new WebSocketServer({ port }); @@ -157,7 +156,8 @@ export async function tunneledBrowserConnection( if (bName && SUPPORTED_BROWSER_NAMES.has(bName)) { browserName = bName as BrowserName; } - const launchOptionsParam: string | null = parsed.searchParams.get('launchOptions'); + const launchOptionsParam: string | null = + parsed.searchParams.get('launch-options') || parsed.searchParams.get('launchOptions'); if (launchOptionsParam) { try { launchOptions = JSON.parse(launchOptionsParam); diff --git a/apps/rundown/.npmignore b/apps/rundown/.npmignore index bc349f9a4be..f7a40e10213 100644 --- a/apps/rundown/.npmignore +++ b/apps/rundown/.npmignore @@ -8,6 +8,7 @@ !/lib/** !/lib-*/** !/dist/** +!/includes/** !CHANGELOG.md !CHANGELOG.json @@ -20,6 +21,9 @@ /lib/**/test/ /lib-*/**/test/ *.test.js +*.test.[cm]js +*.test.d.ts +*.test.d.[cm]ts # NOTE: These don't need to be specified, because NPM includes them automatically. # diff --git a/apps/rundown/CHANGELOG.json b/apps/rundown/CHANGELOG.json index 744ce093e36..01795dae5f1 100644 --- a/apps/rundown/CHANGELOG.json +++ b/apps/rundown/CHANGELOG.json @@ -1,6 +1,78 @@ { "name": "@rushstack/rundown", "entries": [ + { + "version": "1.3.7", + "tag": "@rushstack/rundown_v1.3.7", + "date": "Mon, 09 Mar 2026 15:14:08 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.7`" + } + ] + } + }, + { + "version": "1.3.6", + "tag": "@rushstack/rundown_v1.3.6", + "date": "Wed, 25 Feb 2026 21:39:42 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.6`" + } + ] + } + }, + { + "version": "1.3.5", + "tag": "@rushstack/rundown_v1.3.5", + "date": "Wed, 25 Feb 2026 00:34:30 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `5.20.3`" + }, + { + "comment": "Updating dependency \"@rushstack/ts-command-line\" to `5.3.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.5`" + } + ] + } + }, + { + "version": "1.3.4", + "tag": "@rushstack/rundown_v1.3.4", + "date": "Tue, 24 Feb 2026 01:13:27 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `5.20.2`" + }, + { + "comment": "Updating dependency \"@rushstack/ts-command-line\" to `5.3.2`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.4`" + } + ] + } + }, + { + "version": "1.3.3", + "tag": "@rushstack/rundown_v1.3.3", + "date": "Mon, 23 Feb 2026 00:42:21 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.3`" + } + ] + } + }, { "version": "1.3.2", "tag": "@rushstack/rundown_v1.3.2", diff --git a/apps/rundown/CHANGELOG.md b/apps/rundown/CHANGELOG.md index 2c1200d769c..2ea76fbf931 100644 --- a/apps/rundown/CHANGELOG.md +++ b/apps/rundown/CHANGELOG.md @@ -1,6 +1,31 @@ # Change Log - @rushstack/rundown -This log was last generated on Fri, 20 Feb 2026 16:14:49 GMT and should not be manually modified. +This log was last generated on Mon, 09 Mar 2026 15:14:08 GMT and should not be manually modified. + +## 1.3.7 +Mon, 09 Mar 2026 15:14:08 GMT + +_Version update only_ + +## 1.3.6 +Wed, 25 Feb 2026 21:39:42 GMT + +_Version update only_ + +## 1.3.5 +Wed, 25 Feb 2026 00:34:30 GMT + +_Version update only_ + +## 1.3.4 +Tue, 24 Feb 2026 01:13:27 GMT + +_Version update only_ + +## 1.3.3 +Mon, 23 Feb 2026 00:42:21 GMT + +_Version update only_ ## 1.3.2 Fri, 20 Feb 2026 16:14:49 GMT diff --git a/apps/rundown/package.json b/apps/rundown/package.json index dfe054e65b6..85ecf82e5ef 100644 --- a/apps/rundown/package.json +++ b/apps/rundown/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/rundown", - "version": "1.3.2", + "version": "1.3.7", "description": "Detect load time regressions by running an app, tracing require() calls, and generating a deterministic report", "repository": { "type": "git", diff --git a/apps/rush-mcp-server/.npmignore b/apps/rush-mcp-server/.npmignore index bc349f9a4be..f7a40e10213 100644 --- a/apps/rush-mcp-server/.npmignore +++ b/apps/rush-mcp-server/.npmignore @@ -8,6 +8,7 @@ !/lib/** !/lib-*/** !/dist/** +!/includes/** !CHANGELOG.md !CHANGELOG.json @@ -20,6 +21,9 @@ /lib/**/test/ /lib-*/**/test/ *.test.js +*.test.[cm]js +*.test.d.ts +*.test.d.[cm]ts # NOTE: These don't need to be specified, because NPM includes them automatically. # diff --git a/apps/rush-mcp-server/CHANGELOG.json b/apps/rush-mcp-server/CHANGELOG.json index 0e616492ce6..130360e3728 100644 --- a/apps/rush-mcp-server/CHANGELOG.json +++ b/apps/rush-mcp-server/CHANGELOG.json @@ -1,6 +1,84 @@ { "name": "@rushstack/mcp-server", "entries": [ + { + "version": "0.4.7", + "tag": "@rushstack/mcp-server_v0.4.7", + "date": "Mon, 09 Mar 2026 15:14:08 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.7`" + } + ] + } + }, + { + "version": "0.4.6", + "tag": "@rushstack/mcp-server_v0.4.6", + "date": "Wed, 25 Feb 2026 21:39:42 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.6`" + } + ] + } + }, + { + "version": "0.4.5", + "tag": "@rushstack/mcp-server_v0.4.5", + "date": "Wed, 25 Feb 2026 00:34:30 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `5.20.3`" + }, + { + "comment": "Updating dependency \"@rushstack/terminal\" to `0.22.3`" + }, + { + "comment": "Updating dependency \"@rushstack/ts-command-line\" to `5.3.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.5`" + } + ] + } + }, + { + "version": "0.4.4", + "tag": "@rushstack/mcp-server_v0.4.4", + "date": "Tue, 24 Feb 2026 01:13:27 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `5.20.2`" + }, + { + "comment": "Updating dependency \"@rushstack/terminal\" to `0.22.2`" + }, + { + "comment": "Updating dependency \"@rushstack/ts-command-line\" to `5.3.2`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.4`" + } + ] + } + }, + { + "version": "0.4.3", + "tag": "@rushstack/mcp-server_v0.4.3", + "date": "Mon, 23 Feb 2026 00:42:21 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.3`" + } + ] + } + }, { "version": "0.4.2", "tag": "@rushstack/mcp-server_v0.4.2", diff --git a/apps/rush-mcp-server/CHANGELOG.md b/apps/rush-mcp-server/CHANGELOG.md index 32758f4fb33..e4da6e0e923 100644 --- a/apps/rush-mcp-server/CHANGELOG.md +++ b/apps/rush-mcp-server/CHANGELOG.md @@ -1,6 +1,31 @@ # Change Log - @rushstack/mcp-server -This log was last generated on Fri, 20 Feb 2026 16:14:49 GMT and should not be manually modified. +This log was last generated on Mon, 09 Mar 2026 15:14:08 GMT and should not be manually modified. + +## 0.4.7 +Mon, 09 Mar 2026 15:14:08 GMT + +_Version update only_ + +## 0.4.6 +Wed, 25 Feb 2026 21:39:42 GMT + +_Version update only_ + +## 0.4.5 +Wed, 25 Feb 2026 00:34:30 GMT + +_Version update only_ + +## 0.4.4 +Tue, 24 Feb 2026 01:13:27 GMT + +_Version update only_ + +## 0.4.3 +Mon, 23 Feb 2026 00:42:21 GMT + +_Version update only_ ## 0.4.2 Fri, 20 Feb 2026 16:14:49 GMT diff --git a/apps/rush-mcp-server/config/api-extractor.json b/apps/rush-mcp-server/config/api-extractor.json index 5dbfda704f4..3dbb76c0e6f 100644 --- a/apps/rush-mcp-server/config/api-extractor.json +++ b/apps/rush-mcp-server/config/api-extractor.json @@ -1,19 +1,4 @@ { "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", - - "mainEntryPointFilePath": "/lib-dts/index.d.ts", - - "apiReport": { - "enabled": true, - "reportFolder": "../../../common/reviews/api" - }, - - "docModel": { - "enabled": true, - "apiJsonFilePath": "../../../common/temp/api/.api.json" - }, - - "dtsRollup": { - "enabled": true - } + "extends": "local-node-rig/profiles/default/config/api-extractor-base.json" } diff --git a/apps/rush-mcp-server/package.json b/apps/rush-mcp-server/package.json index b11602fb469..738c2ccf087 100644 --- a/apps/rush-mcp-server/package.json +++ b/apps/rush-mcp-server/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/mcp-server", - "version": "0.4.2", + "version": "0.4.7", "description": "A Model Context Protocol server implementation for Rush", "keywords": [ "rush", diff --git a/apps/rush/.npmignore b/apps/rush/.npmignore index ae494d9c693..0bc76278fc1 100644 --- a/apps/rush/.npmignore +++ b/apps/rush/.npmignore @@ -8,6 +8,7 @@ !/lib/** !/lib-*/** !/dist/** +!/includes/** !CHANGELOG.md !CHANGELOG.json @@ -20,6 +21,9 @@ /lib/**/test/ /lib-*/**/test/ *.test.js +*.test.[cm]js +*.test.d.ts +*.test.d.[cm]ts # NOTE: These don't need to be specified, because NPM includes them automatically. # @@ -30,6 +34,6 @@ # --------------------------------------------------------------------------- # DO NOT MODIFY ABOVE THIS LINE! Add any project-specific overrides below. # --------------------------------------------------------------------------- + /lib-*/start-dev.* /lib-*/start-dev-docs.* - diff --git a/apps/rush/CHANGELOG.json b/apps/rush/CHANGELOG.json index ccdc74284e2..b7cb4bb3ffe 100644 --- a/apps/rush/CHANGELOG.json +++ b/apps/rush/CHANGELOG.json @@ -1,6 +1,103 @@ { "name": "@microsoft/rush", "entries": [ + { + "version": "5.172.1", + "tag": "@microsoft/rush_v5.172.1", + "date": "Wed, 25 Mar 2026 01:01:07 GMT", + "comments": { + "none": [ + { + "comment": "Fix an issue where \"rush deploy\" could fail with EEXIST due to a \"npm-packlist\" regression (GitHub #5720)" + } + ] + } + }, + { + "version": "5.172.0", + "tag": "@microsoft/rush_v5.172.0", + "date": "Tue, 24 Mar 2026 21:52:13 GMT", + "comments": { + "none": [ + { + "comment": "Add `getCustomParametersByLongName()` and `setHandled()` to `IGlobalCommand`, enabling Rush plugins to handle global command execution and access parsed command-line parameter values." + }, + { + "comment": "Add a new \"globalPlugin\" command kind for command-line.json that allows Rush plugins to define global commands without a shellCommand. This command kind can only be used in plugin-provided command-line.json files." + } + ] + } + }, + { + "version": "5.171.0", + "tag": "@microsoft/rush_v5.171.0", + "date": "Sat, 21 Mar 2026 03:10:24 GMT", + "comments": { + "minor": [ + { + "comment": "Add RUSH_QUIET_MODE environment variable that, when set to `1` or `true`, is equivalent to passing `--quiet` for `rush`, `rushx`, and `install-run-rush.ts`" + } + ], + "patch": [ + { + "comment": "Update OperationExecutionRecord to only set `this.logFilePaths` if the value to be assigned is not `undefined`" + }, + { + "comment": "Fix ProblemCollector wiring in OperationExecutionRecord: add preventAutoclose, strip ANSI colors before matching, and always include problemCollector in the terminal pipeline" + }, + { + "comment": "Fix weighted concurrency budget being capped by operation count" + } + ], + "none": [ + { + "comment": "Fix an issue where the assets used by `rush init` weren't shipped." + } + ] + } + }, + { + "version": "5.170.1", + "tag": "@microsoft/rush_v5.170.1", + "date": "Thu, 12 Mar 2026 22:33:34 GMT", + "comments": { + "none": [ + { + "comment": "Fix a recent regression that sometimes produced ENOENT errors when installing autoinstallers" + } + ] + } + }, + { + "version": "5.170.0", + "tag": "@microsoft/rush_v5.170.0", + "date": "Thu, 12 Mar 2026 09:15:52 GMT", + "comments": { + "none": [ + { + "comment": "Add custom endpoint support via a `storageEndpoint` configuration option for the Azure Storage build cache plugin." + }, + { + "comment": "Fix autoinstaller plugin loader behavior." + }, + { + "comment": "Support percentage weight in operationSettings in rush-project.json file." + } + ] + } + }, + { + "version": "5.169.3", + "tag": "@microsoft/rush_v5.169.3", + "date": "Mon, 23 Feb 2026 00:42:39 GMT", + "comments": { + "none": [ + { + "comment": "Fix .npmrc syncing to common/temp incorrectly caching results, which caused pnpm-specific properties like hoist-pattern to be stripped when the same .npmrc was processed with different options." + } + ] + } + }, { "version": "5.169.2", "tag": "@microsoft/rush_v5.169.2", diff --git a/apps/rush/CHANGELOG.md b/apps/rush/CHANGELOG.md index b8388e41b9c..43efb0a66b2 100644 --- a/apps/rush/CHANGELOG.md +++ b/apps/rush/CHANGELOG.md @@ -1,6 +1,61 @@ # Change Log - @microsoft/rush -This log was last generated on Fri, 20 Feb 2026 00:15:23 GMT and should not be manually modified. +This log was last generated on Wed, 25 Mar 2026 01:01:07 GMT and should not be manually modified. + +## 5.172.1 +Wed, 25 Mar 2026 01:01:07 GMT + +### Updates + +- Fix an issue where "rush deploy" could fail with EEXIST due to a "npm-packlist" regression (GitHub #5720) + +## 5.172.0 +Tue, 24 Mar 2026 21:52:13 GMT + +### Updates + +- Add `getCustomParametersByLongName()` and `setHandled()` to `IGlobalCommand`, enabling Rush plugins to handle global command execution and access parsed command-line parameter values. +- Add a new "globalPlugin" command kind for command-line.json that allows Rush plugins to define global commands without a shellCommand. This command kind can only be used in plugin-provided command-line.json files. + +## 5.171.0 +Sat, 21 Mar 2026 03:10:24 GMT + +### Minor changes + +- Add RUSH_QUIET_MODE environment variable that, when set to `1` or `true`, is equivalent to passing `--quiet` for `rush`, `rushx`, and `install-run-rush.ts` + +### Patches + +- Update OperationExecutionRecord to only set `this.logFilePaths` if the value to be assigned is not `undefined` +- Fix ProblemCollector wiring in OperationExecutionRecord: add preventAutoclose, strip ANSI colors before matching, and always include problemCollector in the terminal pipeline +- Fix weighted concurrency budget being capped by operation count + +### Updates + +- Fix an issue where the assets used by `rush init` weren't shipped. + +## 5.170.1 +Thu, 12 Mar 2026 22:33:34 GMT + +### Updates + +- Fix a recent regression that sometimes produced ENOENT errors when installing autoinstallers + +## 5.170.0 +Thu, 12 Mar 2026 09:15:52 GMT + +### Updates + +- Add custom endpoint support via a `storageEndpoint` configuration option for the Azure Storage build cache plugin. +- Fix autoinstaller plugin loader behavior. +- Support percentage weight in operationSettings in rush-project.json file. + +## 5.169.3 +Mon, 23 Feb 2026 00:42:39 GMT + +### Updates + +- Fix .npmrc syncing to common/temp incorrectly caching results, which caused pnpm-specific properties like hoist-pattern to be stripped when the same .npmrc was processed with different options. ## 5.169.2 Fri, 20 Feb 2026 00:15:23 GMT diff --git a/apps/rush/package.json b/apps/rush/package.json index 5bc13169d3d..7ee1ae9bb93 100644 --- a/apps/rush/package.json +++ b/apps/rush/package.json @@ -1,6 +1,6 @@ { "name": "@microsoft/rush", - "version": "5.169.2", + "version": "5.172.1", "description": "A professional solution for consolidating all your JavaScript projects in one Git repo", "keywords": [ "install", diff --git a/apps/trace-import/.npmignore b/apps/trace-import/.npmignore index bc349f9a4be..f7a40e10213 100644 --- a/apps/trace-import/.npmignore +++ b/apps/trace-import/.npmignore @@ -8,6 +8,7 @@ !/lib/** !/lib-*/** !/dist/** +!/includes/** !CHANGELOG.md !CHANGELOG.json @@ -20,6 +21,9 @@ /lib/**/test/ /lib-*/**/test/ *.test.js +*.test.[cm]js +*.test.d.ts +*.test.d.[cm]ts # NOTE: These don't need to be specified, because NPM includes them automatically. # diff --git a/apps/trace-import/CHANGELOG.json b/apps/trace-import/CHANGELOG.json index 7401fe859a1..d2e594d65b8 100644 --- a/apps/trace-import/CHANGELOG.json +++ b/apps/trace-import/CHANGELOG.json @@ -1,6 +1,84 @@ { "name": "@rushstack/trace-import", "entries": [ + { + "version": "0.7.7", + "tag": "@rushstack/trace-import_v0.7.7", + "date": "Mon, 09 Mar 2026 15:14:08 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.7`" + } + ] + } + }, + { + "version": "0.7.6", + "tag": "@rushstack/trace-import_v0.7.6", + "date": "Wed, 25 Feb 2026 21:39:42 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.6`" + } + ] + } + }, + { + "version": "0.7.5", + "tag": "@rushstack/trace-import_v0.7.5", + "date": "Wed, 25 Feb 2026 00:34:30 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `5.20.3`" + }, + { + "comment": "Updating dependency \"@rushstack/terminal\" to `0.22.3`" + }, + { + "comment": "Updating dependency \"@rushstack/ts-command-line\" to `5.3.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.5`" + } + ] + } + }, + { + "version": "0.7.4", + "tag": "@rushstack/trace-import_v0.7.4", + "date": "Tue, 24 Feb 2026 01:13:27 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `5.20.2`" + }, + { + "comment": "Updating dependency \"@rushstack/terminal\" to `0.22.2`" + }, + { + "comment": "Updating dependency \"@rushstack/ts-command-line\" to `5.3.2`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.4`" + } + ] + } + }, + { + "version": "0.7.3", + "tag": "@rushstack/trace-import_v0.7.3", + "date": "Mon, 23 Feb 2026 00:42:21 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.3`" + } + ] + } + }, { "version": "0.7.2", "tag": "@rushstack/trace-import_v0.7.2", diff --git a/apps/trace-import/CHANGELOG.md b/apps/trace-import/CHANGELOG.md index 23a2eab0315..61aa3d32318 100644 --- a/apps/trace-import/CHANGELOG.md +++ b/apps/trace-import/CHANGELOG.md @@ -1,6 +1,31 @@ # Change Log - @rushstack/trace-import -This log was last generated on Fri, 20 Feb 2026 16:14:49 GMT and should not be manually modified. +This log was last generated on Mon, 09 Mar 2026 15:14:08 GMT and should not be manually modified. + +## 0.7.7 +Mon, 09 Mar 2026 15:14:08 GMT + +_Version update only_ + +## 0.7.6 +Wed, 25 Feb 2026 21:39:42 GMT + +_Version update only_ + +## 0.7.5 +Wed, 25 Feb 2026 00:34:30 GMT + +_Version update only_ + +## 0.7.4 +Tue, 24 Feb 2026 01:13:27 GMT + +_Version update only_ + +## 0.7.3 +Mon, 23 Feb 2026 00:42:21 GMT + +_Version update only_ ## 0.7.2 Fri, 20 Feb 2026 16:14:49 GMT diff --git a/apps/trace-import/package.json b/apps/trace-import/package.json index f62c74673ad..33e2b05d075 100644 --- a/apps/trace-import/package.json +++ b/apps/trace-import/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/trace-import", - "version": "0.7.2", + "version": "0.7.7", "description": "CLI tool for understanding how require() and \"import\" statements get resolved", "repository": { "type": "git", diff --git a/apps/zipsync/.npmignore b/apps/zipsync/.npmignore index bc349f9a4be..f7a40e10213 100644 --- a/apps/zipsync/.npmignore +++ b/apps/zipsync/.npmignore @@ -8,6 +8,7 @@ !/lib/** !/lib-*/** !/dist/** +!/includes/** !CHANGELOG.md !CHANGELOG.json @@ -20,6 +21,9 @@ /lib/**/test/ /lib-*/**/test/ *.test.js +*.test.[cm]js +*.test.d.ts +*.test.d.[cm]ts # NOTE: These don't need to be specified, because NPM includes them automatically. # diff --git a/apps/zipsync/CHANGELOG.json b/apps/zipsync/CHANGELOG.json index 7549e9f5d60..2f661488ca3 100644 --- a/apps/zipsync/CHANGELOG.json +++ b/apps/zipsync/CHANGELOG.json @@ -1,6 +1,93 @@ { "name": "@rushstack/zipsync", "entries": [ + { + "version": "0.3.7", + "tag": "@rushstack/zipsync_v0.3.7", + "date": "Mon, 09 Mar 2026 15:14:08 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/lookup-by-path\" to `0.9.7`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.7`" + } + ] + } + }, + { + "version": "0.3.6", + "tag": "@rushstack/zipsync_v0.3.6", + "date": "Wed, 25 Feb 2026 21:39:42 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/lookup-by-path\" to `0.9.6`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.6`" + } + ] + } + }, + { + "version": "0.3.5", + "tag": "@rushstack/zipsync_v0.3.5", + "date": "Wed, 25 Feb 2026 00:34:30 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/terminal\" to `0.22.3`" + }, + { + "comment": "Updating dependency \"@rushstack/ts-command-line\" to `5.3.3`" + }, + { + "comment": "Updating dependency \"@rushstack/lookup-by-path\" to `0.9.5`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.5`" + } + ] + } + }, + { + "version": "0.3.4", + "tag": "@rushstack/zipsync_v0.3.4", + "date": "Tue, 24 Feb 2026 01:13:27 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/terminal\" to `0.22.2`" + }, + { + "comment": "Updating dependency \"@rushstack/ts-command-line\" to `5.3.2`" + }, + { + "comment": "Updating dependency \"@rushstack/lookup-by-path\" to `0.9.4`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.4`" + } + ] + } + }, + { + "version": "0.3.3", + "tag": "@rushstack/zipsync_v0.3.3", + "date": "Mon, 23 Feb 2026 00:42:21 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/lookup-by-path\" to `0.9.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.3`" + } + ] + } + }, { "version": "0.3.2", "tag": "@rushstack/zipsync_v0.3.2", diff --git a/apps/zipsync/CHANGELOG.md b/apps/zipsync/CHANGELOG.md index 50bd6c2b544..d7e188628a7 100644 --- a/apps/zipsync/CHANGELOG.md +++ b/apps/zipsync/CHANGELOG.md @@ -1,6 +1,31 @@ # Change Log - @rushstack/zipsync -This log was last generated on Fri, 20 Feb 2026 16:14:49 GMT and should not be manually modified. +This log was last generated on Mon, 09 Mar 2026 15:14:08 GMT and should not be manually modified. + +## 0.3.7 +Mon, 09 Mar 2026 15:14:08 GMT + +_Version update only_ + +## 0.3.6 +Wed, 25 Feb 2026 21:39:42 GMT + +_Version update only_ + +## 0.3.5 +Wed, 25 Feb 2026 00:34:30 GMT + +_Version update only_ + +## 0.3.4 +Tue, 24 Feb 2026 01:13:27 GMT + +_Version update only_ + +## 0.3.3 +Mon, 23 Feb 2026 00:42:21 GMT + +_Version update only_ ## 0.3.2 Fri, 20 Feb 2026 16:14:49 GMT diff --git a/apps/zipsync/package.json b/apps/zipsync/package.json index 785afcffc39..a662e6c40b2 100644 --- a/apps/zipsync/package.json +++ b/apps/zipsync/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/zipsync", - "version": "0.3.2", + "version": "0.3.7", "description": "CLI tool for creating and extracting ZIP archives with intelligent filesystem synchronization", "repository": { "type": "git", diff --git a/build-tests-samples/heft-web-rig-app-tutorial/src/ExampleApp.tsx b/build-tests-samples/heft-web-rig-app-tutorial/src/ExampleApp.tsx index 1fb8c83d1d4..3ef0dfdafab 100644 --- a/build-tests-samples/heft-web-rig-app-tutorial/src/ExampleApp.tsx +++ b/build-tests-samples/heft-web-rig-app-tutorial/src/ExampleApp.tsx @@ -4,6 +4,8 @@ import * as React from 'react'; import { ToggleSwitch, type IToggleEventArgs } from 'heft-web-rig-library-tutorial'; +import exampleImage from './example-image.png'; + /** * This React component renders the application page. */ @@ -24,10 +26,7 @@ export class ExampleApp extends React.Component {

Here is an example image:

- + ); } diff --git a/build-tests/api-extractor-test-05/dist/tsdoc-metadata.json b/build-tests/api-extractor-test-05/dist/tsdoc-metadata.json index 35d93708271..35155da29c8 100644 --- a/build-tests/api-extractor-test-05/dist/tsdoc-metadata.json +++ b/build-tests/api-extractor-test-05/dist/tsdoc-metadata.json @@ -5,7 +5,7 @@ "toolPackages": [ { "packageName": "@microsoft/api-extractor", - "packageVersion": "7.57.0" + "packageVersion": "7.57.7" } ] } diff --git a/build-tests/eslint-8-test/package.json b/build-tests/eslint-8-test/package.json index 431233b8090..b431562561c 100644 --- a/build-tests/eslint-8-test/package.json +++ b/build-tests/eslint-8-test/package.json @@ -35,7 +35,7 @@ "@rushstack/eslint-config": "workspace:*", "@rushstack/heft": "workspace:*", "@types/node": "20.17.19", - "@typescript-eslint/parser": "~8.46.0", + "@typescript-eslint/parser": "~8.56.1", "eslint": "~8.57.0", "local-node-rig": "workspace:*", "typescript": "~5.8.2" diff --git a/build-tests/eslint-9-test/package.json b/build-tests/eslint-9-test/package.json index 22bca4bed5f..085c1165292 100644 --- a/build-tests/eslint-9-test/package.json +++ b/build-tests/eslint-9-test/package.json @@ -36,7 +36,7 @@ "@rushstack/heft": "workspace:*", "local-node-rig": "workspace:*", "@types/node": "20.17.19", - "@typescript-eslint/parser": "~8.46.0", + "@typescript-eslint/parser": "~8.56.1", "eslint": "~9.37.0", "typescript": "~5.8.2" } diff --git a/build-tests/eslint-bulk-suppressions-test-flat/package.json b/build-tests/eslint-bulk-suppressions-test-flat/package.json index 2c36ddfe4d9..a3b74d88134 100644 --- a/build-tests/eslint-bulk-suppressions-test-flat/package.json +++ b/build-tests/eslint-bulk-suppressions-test-flat/package.json @@ -11,7 +11,7 @@ "@rushstack/eslint-patch": "workspace:*", "@rushstack/heft": "workspace:*", "@rushstack/node-core-library": "workspace:*", - "@typescript-eslint/parser": "~8.46.0", + "@typescript-eslint/parser": "~8.56.1", "eslint": "~9.37.0", "local-node-rig": "workspace:*", "typescript": "~5.8.2" diff --git a/build-tests/eslint-bulk-suppressions-test-legacy/package.json b/build-tests/eslint-bulk-suppressions-test-legacy/package.json index d2826697e1e..e848729288f 100644 --- a/build-tests/eslint-bulk-suppressions-test-legacy/package.json +++ b/build-tests/eslint-bulk-suppressions-test-legacy/package.json @@ -12,7 +12,7 @@ "@rushstack/eslint-patch": "workspace:*", "@rushstack/heft": "workspace:*", "@rushstack/node-core-library": "workspace:*", - "@typescript-eslint/parser": "~8.46.0", + "@typescript-eslint/parser": "~8.56.1", "eslint": "~8.57.0", "eslint-8.23": "npm:eslint@8.23.1", "eslint-oldest": "npm:eslint@8.6.0", diff --git a/build-tests/eslint-bulk-suppressions-test/package.json b/build-tests/eslint-bulk-suppressions-test/package.json index 554d9653b9a..b5e8dec61db 100644 --- a/build-tests/eslint-bulk-suppressions-test/package.json +++ b/build-tests/eslint-bulk-suppressions-test/package.json @@ -12,7 +12,7 @@ "@rushstack/eslint-patch": "workspace:*", "@rushstack/heft": "workspace:*", "@rushstack/node-core-library": "workspace:*", - "@typescript-eslint/parser": "~8.46.0", + "@typescript-eslint/parser": "~8.56.1", "eslint": "~8.57.0", "local-node-rig": "workspace:*", "typescript": "~5.8.2" diff --git a/build-tests/heft-node-everything-esm-module-test/config/heft.json b/build-tests/heft-node-everything-esm-module-test/config/heft.json index bfb4f25a904..e2e0619b020 100644 --- a/build-tests/heft-node-everything-esm-module-test/config/heft.json +++ b/build-tests/heft-node-everything-esm-module-test/config/heft.json @@ -9,7 +9,18 @@ "cleanFiles": [{ "includeGlobs": ["dist", "lib-commonjs", "lib", "lib-esm", "lib-esnext", "lib-umd"] }], "tasksByName": { + "text-typings": { + "taskPlugin": { + "pluginPackage": "@rushstack/heft-static-asset-typings-plugin", + "pluginName": "source-assets-plugin", + "options": { + "configType": "file", + "configFileName": "source-assets.json" + } + } + }, "typescript": { + "taskDependencies": ["text-typings"], "taskPlugin": { "pluginPackage": "@rushstack/heft-typescript-plugin" } diff --git a/build-tests/heft-node-everything-esm-module-test/config/source-assets.json b/build-tests/heft-node-everything-esm-module-test/config/source-assets.json new file mode 100644 index 00000000000..7d3efa3121a --- /dev/null +++ b/build-tests/heft-node-everything-esm-module-test/config/source-assets.json @@ -0,0 +1,6 @@ +{ + "fileExtensions": [".html"], + "cjsOutputFolders": ["lib-commonjs"], + "esmOutputFolders": ["lib-esm"], + "generatedTsFolders": ["temp/text-typings"] +} diff --git a/build-tests/heft-node-everything-esm-module-test/etc/heft-node-everything-esm-module-test.api.md b/build-tests/heft-node-everything-esm-module-test/etc/heft-node-everything-esm-module-test.api.md index 9d5bceee423..86361b68da7 100644 --- a/build-tests/heft-node-everything-esm-module-test/etc/heft-node-everything-esm-module-test.api.md +++ b/build-tests/heft-node-everything-esm-module-test/etc/heft-node-everything-esm-module-test.api.md @@ -4,6 +4,9 @@ ```ts +// @public +export const templateContent: string; + // @public (undocumented) export class TestClass { } diff --git a/build-tests/heft-node-everything-esm-module-test/package.json b/build-tests/heft-node-everything-esm-module-test/package.json index 0f4196f00ab..cffaca35a45 100644 --- a/build-tests/heft-node-everything-esm-module-test/package.json +++ b/build-tests/heft-node-everything-esm-module-test/package.json @@ -17,6 +17,7 @@ "@rushstack/heft-api-extractor-plugin": "workspace:*", "@rushstack/heft-jest-plugin": "workspace:*", "@rushstack/heft-lint-plugin": "workspace:*", + "@rushstack/heft-static-asset-typings-plugin": "workspace:*", "@rushstack/heft-typescript-plugin": "workspace:*", "@types/heft-jest": "1.0.1", "@types/node": "20.17.19", diff --git a/build-tests/heft-node-everything-esm-module-test/src/exampleTemplate.html b/build-tests/heft-node-everything-esm-module-test/src/exampleTemplate.html new file mode 100644 index 00000000000..44ab8a9ae74 --- /dev/null +++ b/build-tests/heft-node-everything-esm-module-test/src/exampleTemplate.html @@ -0,0 +1 @@ +

This is an example template imported as a text asset.

diff --git a/build-tests/heft-node-everything-esm-module-test/src/index.ts b/build-tests/heft-node-everything-esm-module-test/src/index.ts index 659610ef84f..22b50eb31b1 100644 --- a/build-tests/heft-node-everything-esm-module-test/src/index.ts +++ b/build-tests/heft-node-everything-esm-module-test/src/index.ts @@ -1,6 +1,14 @@ // Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. // See LICENSE in the project root for license information. +import exampleTemplate from './exampleTemplate.html'; + +/** + * The content of exampleTemplate.html, imported as a text asset. + * @public + */ +export const templateContent: string = exampleTemplate; + /** * @public */ diff --git a/build-tests/heft-node-everything-esm-module-test/tsconfig.json b/build-tests/heft-node-everything-esm-module-test/tsconfig.json index d08637a6a20..550c1aa1ab3 100644 --- a/build-tests/heft-node-everything-esm-module-test/tsconfig.json +++ b/build-tests/heft-node-everything-esm-module-test/tsconfig.json @@ -4,7 +4,7 @@ "compilerOptions": { "outDir": "lib-commonjs", "declarationDir": "lib-dts", - "rootDir": "src", + "rootDirs": ["src", "temp/text-typings"], "forceConsistentCasingInFileNames": true, "jsx": "react", diff --git a/build-tests/heft-node-everything-test/config/heft.json b/build-tests/heft-node-everything-test/config/heft.json index 717d3c6576c..ba8a4e8318b 100644 --- a/build-tests/heft-node-everything-test/config/heft.json +++ b/build-tests/heft-node-everything-test/config/heft.json @@ -16,7 +16,23 @@ "cleanFiles": [{ "includeGlobs": ["dist", "lib-commonjs", "lib", "lib-esm", "lib-esnext", "lib-umd"] }], "tasksByName": { + "text-typings": { + "taskPlugin": { + "pluginPackage": "@rushstack/heft-static-asset-typings-plugin", + "pluginName": "source-assets-plugin", + "options": { + "configType": "inline", + "config": { + "fileExtensions": [".html"], + "cjsOutputFolders": ["lib-commonjs"], + "esmOutputFolders": ["lib-esm"], + "generatedTsFolders": ["temp/text-typings"] + } + } + } + }, "typescript": { + "taskDependencies": ["text-typings"], "taskPlugin": { "pluginPackage": "@rushstack/heft-typescript-plugin" } diff --git a/build-tests/heft-node-everything-test/config/jest.config.json b/build-tests/heft-node-everything-test/config/jest.config.json index c0687c6d488..d22ada97183 100644 --- a/build-tests/heft-node-everything-test/config/jest.config.json +++ b/build-tests/heft-node-everything-test/config/jest.config.json @@ -1,6 +1,9 @@ { "extends": "@rushstack/heft-jest-plugin/includes/jest-shared.config.json", + "roots": ["/lib-commonjs"], + "testMatch": ["/lib-commonjs/**/*.test.{cjs,js}"], + // Enable code coverage for Jest "collectCoverage": true, "coverageDirectory": "/coverage", diff --git a/build-tests/heft-node-everything-test/config/rush-project.json b/build-tests/heft-node-everything-test/config/rush-project.json index 40a0d93f857..50339f80875 100644 --- a/build-tests/heft-node-everything-test/config/rush-project.json +++ b/build-tests/heft-node-everything-test/config/rush-project.json @@ -4,7 +4,7 @@ "operationSettings": [ { "operationName": "_phase:build", - "outputFolderNames": ["dist", "lib-commonjs", "lib-esm", "lib-umd", "lib-dts"] + "outputFolderNames": ["dist", "lib-commonjs", "lib-esm", "lib-umd", "lib-dts", "temp/text-typings"] }, { "operationName": "_phase:test", diff --git a/build-tests/heft-node-everything-test/config/source-assets.json b/build-tests/heft-node-everything-test/config/source-assets.json new file mode 100644 index 00000000000..e35e877e016 --- /dev/null +++ b/build-tests/heft-node-everything-test/config/source-assets.json @@ -0,0 +1,4 @@ +{ + "fileExtensions": [".html"], + "generatedTsFolder": "temp/text-typings" +} diff --git a/build-tests/heft-node-everything-test/etc/heft-node-everything-test.api.md b/build-tests/heft-node-everything-test/etc/heft-node-everything-test.api.md index 73e6e6a967e..906e342ef52 100644 --- a/build-tests/heft-node-everything-test/etc/heft-node-everything-test.api.md +++ b/build-tests/heft-node-everything-test/etc/heft-node-everything-test.api.md @@ -4,6 +4,9 @@ ```ts +// @public +export const templateContent: string; + // @public (undocumented) export class TestClass { } diff --git a/build-tests/heft-node-everything-test/package.json b/build-tests/heft-node-everything-test/package.json index bd60e9a4a55..fcf92f04c29 100644 --- a/build-tests/heft-node-everything-test/package.json +++ b/build-tests/heft-node-everything-test/package.json @@ -16,6 +16,7 @@ "@microsoft/api-extractor": "workspace:*", "@rushstack/heft": "workspace:*", "@rushstack/heft-api-extractor-plugin": "workspace:*", + "@rushstack/heft-static-asset-typings-plugin": "workspace:*", "@rushstack/heft-jest-plugin": "workspace:*", "@rushstack/heft-lint-plugin": "workspace:*", "@rushstack/heft-typescript-plugin": "workspace:*", diff --git a/build-tests/heft-node-everything-test/src/exampleTemplate.html b/build-tests/heft-node-everything-test/src/exampleTemplate.html new file mode 100644 index 00000000000..bba457469cc --- /dev/null +++ b/build-tests/heft-node-everything-test/src/exampleTemplate.html @@ -0,0 +1,9 @@ + + + + Example Template + + +

Hello, world!

+ + diff --git a/build-tests/heft-node-everything-test/src/index.ts b/build-tests/heft-node-everything-test/src/index.ts index 659610ef84f..22b50eb31b1 100644 --- a/build-tests/heft-node-everything-test/src/index.ts +++ b/build-tests/heft-node-everything-test/src/index.ts @@ -1,6 +1,14 @@ // Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. // See LICENSE in the project root for license information. +import exampleTemplate from './exampleTemplate.html'; + +/** + * The content of exampleTemplate.html, imported as a text asset. + * @public + */ +export const templateContent: string = exampleTemplate; + /** * @public */ diff --git a/build-tests/heft-node-everything-test/src/test/ExampleTest.test.ts b/build-tests/heft-node-everything-test/src/test/ExampleTest.test.ts index ccae242d321..26fa4ae4bb1 100644 --- a/build-tests/heft-node-everything-test/src/test/ExampleTest.test.ts +++ b/build-tests/heft-node-everything-test/src/test/ExampleTest.test.ts @@ -1,6 +1,8 @@ // Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. // See LICENSE in the project root for license information. +import { templateContent } from '../index'; + interface IInterface { element: string; } @@ -20,4 +22,10 @@ describe('Example Test', () => { }; expect(interfaceInstance).toBeTruthy(); }); + + it('Correctly imports text assets', () => { + expect(typeof templateContent).toBe('string'); + expect(templateContent).toContain('Example Template'); + expect(templateContent).toContain('Hello, world!'); + }); }); diff --git a/build-tests/heft-node-everything-test/tsconfig.json b/build-tests/heft-node-everything-test/tsconfig.json index d08637a6a20..f5ce1bd1dcc 100644 --- a/build-tests/heft-node-everything-test/tsconfig.json +++ b/build-tests/heft-node-everything-test/tsconfig.json @@ -5,6 +5,7 @@ "outDir": "lib-commonjs", "declarationDir": "lib-dts", "rootDir": "src", + "rootDirs": ["src", "temp/text-typings"], "forceConsistentCasingInFileNames": true, "jsx": "react", diff --git a/build-tests/heft-rspack-everything-test/config/heft.json b/build-tests/heft-rspack-everything-test/config/heft.json index 7d826b05556..9221aa19e99 100644 --- a/build-tests/heft-rspack-everything-test/config/heft.json +++ b/build-tests/heft-rspack-everything-test/config/heft.json @@ -10,7 +10,21 @@ "cleanFiles": [{ "includeGlobs": ["dist", "lib", "lib-commonjs"] }], "tasksByName": { + "image-typings": { + "taskPlugin": { + "pluginPackage": "@rushstack/heft-static-asset-typings-plugin", + "pluginName": "resource-assets-plugin", + "options": { + "configType": "inline", + "config": { + "fileExtensions": [".png"], + "generatedTsFolders": ["temp/image-typings"] + } + } + } + }, "typescript": { + "taskDependencies": ["image-typings"], "taskPlugin": { "pluginPackage": "@rushstack/heft-typescript-plugin" } diff --git a/build-tests/heft-rspack-everything-test/config/rush-project.json b/build-tests/heft-rspack-everything-test/config/rush-project.json index 1c0d7da9a5d..f1de027644c 100644 --- a/build-tests/heft-rspack-everything-test/config/rush-project.json +++ b/build-tests/heft-rspack-everything-test/config/rush-project.json @@ -4,7 +4,7 @@ "operationSettings": [ { "operationName": "_phase:build", - "outputFolderNames": ["lib-esm", "lib-commonjs", "dist"] + "outputFolderNames": ["lib-esm", "lib-commonjs", "dist", "temp/image-typings"] }, { "operationName": "_phase:test", diff --git a/build-tests/heft-rspack-everything-test/package.json b/build-tests/heft-rspack-everything-test/package.json index 081fc7ac997..9ef1796e971 100644 --- a/build-tests/heft-rspack-everything-test/package.json +++ b/build-tests/heft-rspack-everything-test/package.json @@ -12,6 +12,7 @@ }, "devDependencies": { "@rushstack/heft-dev-cert-plugin": "workspace:*", + "@rushstack/heft-static-asset-typings-plugin": "workspace:*", "@rushstack/heft-jest-plugin": "workspace:*", "@rushstack/heft-lint-plugin": "workspace:*", "@rushstack/heft-typescript-plugin": "workspace:*", diff --git a/build-tests/heft-rspack-everything-test/tsconfig.json b/build-tests/heft-rspack-everything-test/tsconfig.json index e36104a9897..619397b3a75 100644 --- a/build-tests/heft-rspack-everything-test/tsconfig.json +++ b/build-tests/heft-rspack-everything-test/tsconfig.json @@ -3,9 +3,8 @@ "compilerOptions": { "outDir": "lib-esm", - "rootDir": "src", + "rootDirs": ["src", "temp/image-typings"], - "allowArbitraryExtensions": true, "forceConsistentCasingInFileNames": true, "esModuleInterop": true, "allowSyntheticDefaultImports": true, diff --git a/build-tests/heft-typescript-v4-test/package.json b/build-tests/heft-typescript-v4-test/package.json index 82af9000999..027a3cbabf7 100644 --- a/build-tests/heft-typescript-v4-test/package.json +++ b/build-tests/heft-typescript-v4-test/package.json @@ -12,7 +12,7 @@ }, "devDependencies": { "@microsoft/api-extractor": "workspace:*", - "@rushstack/eslint-config": "4.6.2", + "@rushstack/eslint-config": "4.6.4", "@rushstack/eslint-patch": "workspace:*", "@rushstack/heft": "workspace:*", "@rushstack/heft-api-extractor-plugin": "workspace:*", diff --git a/build-tests/heft-webpack4-everything-test/config/heft.json b/build-tests/heft-webpack4-everything-test/config/heft.json index 2f7ae591fd6..e90bf3d3c74 100644 --- a/build-tests/heft-webpack4-everything-test/config/heft.json +++ b/build-tests/heft-webpack4-everything-test/config/heft.json @@ -10,7 +10,18 @@ "cleanFiles": [{ "includeGlobs": ["dist", "lib", "lib-commonjs"] }], "tasksByName": { + "image-typings": { + "taskPlugin": { + "pluginPackage": "@rushstack/heft-static-asset-typings-plugin", + "pluginName": "resource-assets-plugin", + "options": { + "configType": "file", + "configFileName": "resource-assets.json" + } + } + }, "typescript": { + "taskDependencies": ["image-typings"], "taskPlugin": { "pluginPackage": "@rushstack/heft-typescript-plugin" } diff --git a/build-tests/heft-webpack4-everything-test/config/resource-assets.json b/build-tests/heft-webpack4-everything-test/config/resource-assets.json new file mode 100644 index 00000000000..09dfe4998d3 --- /dev/null +++ b/build-tests/heft-webpack4-everything-test/config/resource-assets.json @@ -0,0 +1,4 @@ +{ + "fileExtensions": [".png"], + "generatedTsFolders": ["temp/image-typings"] +} diff --git a/build-tests/heft-webpack4-everything-test/config/rush-project.json b/build-tests/heft-webpack4-everything-test/config/rush-project.json index 1c0d7da9a5d..f1de027644c 100644 --- a/build-tests/heft-webpack4-everything-test/config/rush-project.json +++ b/build-tests/heft-webpack4-everything-test/config/rush-project.json @@ -4,7 +4,7 @@ "operationSettings": [ { "operationName": "_phase:build", - "outputFolderNames": ["lib-esm", "lib-commonjs", "dist"] + "outputFolderNames": ["lib-esm", "lib-commonjs", "dist", "temp/image-typings"] }, { "operationName": "_phase:test", diff --git a/build-tests/heft-webpack4-everything-test/package.json b/build-tests/heft-webpack4-everything-test/package.json index affffe9d6f7..0742ce3648d 100644 --- a/build-tests/heft-webpack4-everything-test/package.json +++ b/build-tests/heft-webpack4-everything-test/package.json @@ -11,6 +11,7 @@ }, "devDependencies": { "@rushstack/heft-dev-cert-plugin": "workspace:*", + "@rushstack/heft-static-asset-typings-plugin": "workspace:*", "@rushstack/heft-jest-plugin": "workspace:*", "@rushstack/heft-lint-plugin": "workspace:*", "@rushstack/heft-typescript-plugin": "workspace:*", diff --git a/build-tests/heft-webpack4-everything-test/src/chunks/ChunkClass.ts b/build-tests/heft-webpack4-everything-test/src/chunks/ChunkClass.ts index ddbf7d148c7..50e541f593d 100644 --- a/build-tests/heft-webpack4-everything-test/src/chunks/ChunkClass.ts +++ b/build-tests/heft-webpack4-everything-test/src/chunks/ChunkClass.ts @@ -1,6 +1,8 @@ // Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. // See LICENSE in the project root for license information. +import image from './image.png'; + export class ChunkClass { public doStuff(): void { // eslint-disable-next-line no-console @@ -8,7 +10,6 @@ export class ChunkClass { } public getImageUrl(): string { - // eslint-disable-next-line @typescript-eslint/no-require-imports - return require('./image.png'); + return image; } } diff --git a/build-tests/heft-webpack4-everything-test/tsconfig.json b/build-tests/heft-webpack4-everything-test/tsconfig.json index 2b5b7ac9673..ebef84f93fc 100644 --- a/build-tests/heft-webpack4-everything-test/tsconfig.json +++ b/build-tests/heft-webpack4-everything-test/tsconfig.json @@ -3,9 +3,11 @@ "compilerOptions": { "outDir": "lib-esm", - "rootDir": "src", + "rootDirs": ["src", "temp/image-typings"], "forceConsistentCasingInFileNames": true, + "esModuleInterop": true, + "allowSyntheticDefaultImports": true, "jsx": "react", "declaration": true, "sourceMap": true, diff --git a/build-tests/heft-webpack5-everything-test/config/heft.json b/build-tests/heft-webpack5-everything-test/config/heft.json index db369f8f99d..319963689d5 100644 --- a/build-tests/heft-webpack5-everything-test/config/heft.json +++ b/build-tests/heft-webpack5-everything-test/config/heft.json @@ -10,7 +10,21 @@ "cleanFiles": [{ "includeGlobs": ["dist", "lib", "lib-commonjs"] }], "tasksByName": { + "image-typings": { + "taskPlugin": { + "pluginPackage": "@rushstack/heft-static-asset-typings-plugin", + "pluginName": "resource-assets-plugin", + "options": { + "configType": "inline", + "config": { + "fileExtensions": [".png"], + "generatedTsFolders": ["temp/image-typings"] + } + } + } + }, "typescript": { + "taskDependencies": ["image-typings"], "taskPlugin": { "pluginPackage": "@rushstack/heft-typescript-plugin" } diff --git a/build-tests/heft-webpack5-everything-test/config/rush-project.json b/build-tests/heft-webpack5-everything-test/config/rush-project.json index 1c0d7da9a5d..f1de027644c 100644 --- a/build-tests/heft-webpack5-everything-test/config/rush-project.json +++ b/build-tests/heft-webpack5-everything-test/config/rush-project.json @@ -4,7 +4,7 @@ "operationSettings": [ { "operationName": "_phase:build", - "outputFolderNames": ["lib-esm", "lib-commonjs", "dist"] + "outputFolderNames": ["lib-esm", "lib-commonjs", "dist", "temp/image-typings"] }, { "operationName": "_phase:test", diff --git a/build-tests/heft-webpack5-everything-test/package.json b/build-tests/heft-webpack5-everything-test/package.json index 204dc75de8c..3e891b7778c 100644 --- a/build-tests/heft-webpack5-everything-test/package.json +++ b/build-tests/heft-webpack5-everything-test/package.json @@ -13,6 +13,7 @@ }, "devDependencies": { "@rushstack/heft-dev-cert-plugin": "workspace:*", + "@rushstack/heft-static-asset-typings-plugin": "workspace:*", "@rushstack/heft-jest-plugin": "workspace:*", "@rushstack/heft-lint-plugin": "workspace:*", "@rushstack/heft-typescript-plugin": "workspace:*", diff --git a/build-tests/heft-webpack5-everything-test/src/chunks/ChunkClass.ts b/build-tests/heft-webpack5-everything-test/src/chunks/ChunkClass.ts index ddbf7d148c7..50e541f593d 100644 --- a/build-tests/heft-webpack5-everything-test/src/chunks/ChunkClass.ts +++ b/build-tests/heft-webpack5-everything-test/src/chunks/ChunkClass.ts @@ -1,6 +1,8 @@ // Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. // See LICENSE in the project root for license information. +import image from './image.png'; + export class ChunkClass { public doStuff(): void { // eslint-disable-next-line no-console @@ -8,7 +10,6 @@ export class ChunkClass { } public getImageUrl(): string { - // eslint-disable-next-line @typescript-eslint/no-require-imports - return require('./image.png'); + return image; } } diff --git a/build-tests/heft-webpack5-everything-test/src/chunks/image.d.png.ts b/build-tests/heft-webpack5-everything-test/src/chunks/image.d.png.ts deleted file mode 100644 index f38a285dfd9..00000000000 --- a/build-tests/heft-webpack5-everything-test/src/chunks/image.d.png.ts +++ /dev/null @@ -1,6 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. -// See LICENSE in the project root for license information. - -declare const path: string; - -export default path; diff --git a/build-tests/heft-webpack5-everything-test/tsconfig.json b/build-tests/heft-webpack5-everything-test/tsconfig.json index e3c0ce2496a..1707aad311e 100644 --- a/build-tests/heft-webpack5-everything-test/tsconfig.json +++ b/build-tests/heft-webpack5-everything-test/tsconfig.json @@ -3,9 +3,8 @@ "compilerOptions": { "outDir": "lib-esm", - "rootDir": "src", + "rootDirs": ["src", "temp/image-typings"], - "allowArbitraryExtensions": true, "forceConsistentCasingInFileNames": true, "esModuleInterop": true, "allowSyntheticDefaultImports": true, diff --git a/build-tests/package-extractor-test-05/package.json b/build-tests/package-extractor-test-05/package.json new file mode 100644 index 00000000000..a168568c337 --- /dev/null +++ b/build-tests/package-extractor-test-05/package.json @@ -0,0 +1,16 @@ +{ + "name": "package-extractor-test-05", + "description": "This project is used by tests in the @rushstack/package-extractor package.", + "version": "1.0.0", + "private": true, + "main": "./dist/index.js", + "files": [ + "dist" + ], + "scripts": { + "_phase:build": "" + }, + "dependencies": { + "@rushstack/node-core-library": "workspace:*" + } +} diff --git a/build-tests/package-extractor-test-05/src/index.js b/build-tests/package-extractor-test-05/src/index.js new file mode 100644 index 00000000000..cb0ff5c3b54 --- /dev/null +++ b/build-tests/package-extractor-test-05/src/index.js @@ -0,0 +1 @@ +export {}; diff --git a/build-tests/rush-mcp-example-plugin/.npmignore b/build-tests/rush-mcp-example-plugin/.npmignore index dc4a664618b..f7a40e10213 100644 --- a/build-tests/rush-mcp-example-plugin/.npmignore +++ b/build-tests/rush-mcp-example-plugin/.npmignore @@ -8,6 +8,7 @@ !/lib/** !/lib-*/** !/dist/** +!/includes/** !CHANGELOG.md !CHANGELOG.json @@ -20,6 +21,9 @@ /lib/**/test/ /lib-*/**/test/ *.test.js +*.test.[cm]js +*.test.d.ts +*.test.d.[cm]ts # NOTE: These don't need to be specified, because NPM includes them automatically. # @@ -30,6 +34,3 @@ # --------------------------------------------------------------------------- # DO NOT MODIFY ABOVE THIS LINE! Add any project-specific overrides below. # --------------------------------------------------------------------------- - -!rush-mcp-plugin.json -!*.schema.json diff --git a/common/autoinstallers/plugins/package.json b/common/autoinstallers/plugins/package.json new file mode 100644 index 00000000000..106dd139955 --- /dev/null +++ b/common/autoinstallers/plugins/package.json @@ -0,0 +1,8 @@ +{ + "name": "plugins", + "version": "1.0.0", + "private": true, + "dependencies": { + "@rushstack/rush-published-versions-json-plugin": "0.1.0" + } +} diff --git a/common/autoinstallers/plugins/pnpm-lock.yaml b/common/autoinstallers/plugins/pnpm-lock.yaml new file mode 100644 index 00000000000..3f722f3ce13 --- /dev/null +++ b/common/autoinstallers/plugins/pnpm-lock.yaml @@ -0,0 +1,316 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + dependencies: + '@rushstack/rush-published-versions-json-plugin': + specifier: 0.1.0 + version: 0.1.0 + +packages: + + '@pnpm/lockfile.types@900.0.0': + resolution: {integrity: sha512-/4+3CAu4uIjx0ln1DYXNdj0qKJ3wyRDY+RS+eFzV6OHjreaTKWsF2WcjigYp1M5mxL4kj2RsRGgBGEyKtCfEWg==} + engines: {node: '>=18.12'} + + '@pnpm/patching.types@900.0.0': + resolution: {integrity: sha512-A/3kgRD4Xy2tBMPjOBdx5ZdgmpUobphzWkqDB72S5SIB6gdyCg32AUV0/aO12DwMxpT7kyqMhkkynUOPBfdlUQ==} + engines: {node: '>=18.12'} + + '@pnpm/types@900.0.0': + resolution: {integrity: sha512-GucC9h/EVbU03Kl7M/FqVes1s5RCQaGCW2f41lFA7VqqHWQElR6k1q33iF6f6fXDUSCdzB1IUxSq9ghP2J+8Pw==} + engines: {node: '>=18.12'} + + '@rushstack/credential-cache@0.2.7': + resolution: {integrity: sha512-5vYUGreyf0ZvQ5lLFsQHLbJe1//hBZeI8G7BMoyDaLt4/uegfHNTmiXgYNXDQaqpnM9ImHyXSuOS/DrcbM3aMA==} + + '@rushstack/lookup-by-path@0.9.7': + resolution: {integrity: sha512-wlyXv5n0scQF7DEcv4KcFxsoVbSLXfZhVvS91S6gc6fOWpLoqIzSGANY9yIQtQpyJqrr0vwLUppa+zv/CB4sYw==} + peerDependencies: + '@types/node': '*' + peerDependenciesMeta: + '@types/node': + optional: true + + '@rushstack/node-core-library@5.20.3': + resolution: {integrity: sha512-95JgEPq2k7tHxhF9/OJnnyHDXfC9cLhhta0An/6MlkDsX2A6dTzDrTUG18vx4vjc280V0fi0xDH9iQczpSuWsw==} + peerDependencies: + '@types/node': '*' + peerDependenciesMeta: + '@types/node': + optional: true + + '@rushstack/package-deps-hash@4.7.7': + resolution: {integrity: sha512-nj7wspFmch+SmPr6RT46zO9aKGD6IjVBP8z3JMmiiJq5p7WgNyqEENOBWGZ42Hwpav9qjj9hWxMggHJiwLg3mA==} + + '@rushstack/problem-matcher@0.2.1': + resolution: {integrity: sha512-gulfhBs6n+I5b7DvjKRfhMGyUejtSgOHTclF/eONr8hcgF1APEDjhxIsfdUYYMzC3rvLwGluqLjbwCFZ8nxrog==} + peerDependencies: + '@types/node': '*' + peerDependenciesMeta: + '@types/node': + optional: true + + '@rushstack/rush-published-versions-json-plugin@0.1.0': + resolution: {integrity: sha512-LS3U3ChGkS+6zRknmz4DT8LjegPBRFLs8pM2D3+s5fOn8bPxAiAVRtIfpkde02HSXyNf7h9RV8xn8Z13gBF54w==} + + '@rushstack/rush-sdk@5.172.0': + resolution: {integrity: sha512-SC5txCn1pFKfY2ozXSvppM9YViETmqUwRb0cpwhzKs5BqMDT5YcQHPwHySRjmzGaTEkHLT2VuTJ5iuJ2dpJzNQ==} + + '@rushstack/terminal@0.22.3': + resolution: {integrity: sha512-gHC9pIMrUPzAbBiI4VZMU7Q+rsCzb8hJl36lFIulIzoceKotyKL3Rd76AZ2CryCTKEg+0bnTj406HE5YY5OQvw==} + peerDependencies: + '@types/node': '*' + peerDependenciesMeta: + '@types/node': + optional: true + + ajv-draft-04@1.0.0: + resolution: {integrity: sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==} + peerDependencies: + ajv: ^8.5.0 + peerDependenciesMeta: + ajv: + optional: true + + ajv-formats@3.0.1: + resolution: {integrity: sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==} + peerDependencies: + ajv: ^8.0.0 + peerDependenciesMeta: + ajv: + optional: true + + ajv@8.18.0: + resolution: {integrity: sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==} + + fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + + fast-uri@3.1.0: + resolution: {integrity: sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==} + + fs-extra@11.3.4: + resolution: {integrity: sha512-CTXd6rk/M3/ULNQj8FBqBWHYBVYybQ3VPBw0xGKFe3tuH7ytT6ACnvzpIQ3UZtB8yvUKC2cXn1a+x+5EVQLovA==} + engines: {node: '>=14.14'} + + function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + + graceful-fs@4.2.11: + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + + has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + + hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} + + import-lazy@4.0.0: + resolution: {integrity: sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==} + engines: {node: '>=8'} + + is-core-module@2.16.1: + resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} + engines: {node: '>= 0.4'} + + jju@1.4.0: + resolution: {integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==} + + json-schema-traverse@1.0.0: + resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + + jsonfile@6.2.0: + resolution: {integrity: sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==} + + lru-cache@6.0.0: + resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} + engines: {node: '>=10'} + + path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + + require-from-string@2.0.2: + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} + engines: {node: '>=0.10.0'} + + resolve@1.22.11: + resolution: {integrity: sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==} + engines: {node: '>= 0.4'} + hasBin: true + + semver@7.5.4: + resolution: {integrity: sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==} + engines: {node: '>=10'} + hasBin: true + + supports-color@8.1.1: + resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} + engines: {node: '>=10'} + + supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + + tapable@2.2.1: + resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} + engines: {node: '>=6'} + + universalify@2.0.1: + resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} + engines: {node: '>= 10.0.0'} + + yallist@4.0.0: + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + +snapshots: + + '@pnpm/lockfile.types@900.0.0': + dependencies: + '@pnpm/patching.types': 900.0.0 + '@pnpm/types': 900.0.0 + + '@pnpm/patching.types@900.0.0': {} + + '@pnpm/types@900.0.0': {} + + '@rushstack/credential-cache@0.2.7': + dependencies: + '@rushstack/node-core-library': 5.20.3 + transitivePeerDependencies: + - '@types/node' + + '@rushstack/lookup-by-path@0.9.7': {} + + '@rushstack/node-core-library@5.20.3': + dependencies: + ajv: 8.18.0 + ajv-draft-04: 1.0.0(ajv@8.18.0) + ajv-formats: 3.0.1(ajv@8.18.0) + fs-extra: 11.3.4 + import-lazy: 4.0.0 + jju: 1.4.0 + resolve: 1.22.11 + semver: 7.5.4 + + '@rushstack/package-deps-hash@4.7.7': + dependencies: + '@rushstack/node-core-library': 5.20.3 + transitivePeerDependencies: + - '@types/node' + + '@rushstack/problem-matcher@0.2.1': {} + + '@rushstack/rush-published-versions-json-plugin@0.1.0': + dependencies: + '@rushstack/node-core-library': 5.20.3 + '@rushstack/rush-sdk': 5.172.0 + '@rushstack/terminal': 0.22.3 + transitivePeerDependencies: + - '@types/node' + + '@rushstack/rush-sdk@5.172.0': + dependencies: + '@pnpm/lockfile.types-900': '@pnpm/lockfile.types@900.0.0' + '@rushstack/credential-cache': 0.2.7 + '@rushstack/lookup-by-path': 0.9.7 + '@rushstack/node-core-library': 5.20.3 + '@rushstack/package-deps-hash': 4.7.7 + '@rushstack/terminal': 0.22.3 + tapable: 2.2.1 + transitivePeerDependencies: + - '@types/node' + + '@rushstack/terminal@0.22.3': + dependencies: + '@rushstack/node-core-library': 5.20.3 + '@rushstack/problem-matcher': 0.2.1 + supports-color: 8.1.1 + + ajv-draft-04@1.0.0(ajv@8.18.0): + optionalDependencies: + ajv: 8.18.0 + + ajv-formats@3.0.1(ajv@8.18.0): + optionalDependencies: + ajv: 8.18.0 + + ajv@8.18.0: + dependencies: + fast-deep-equal: 3.1.3 + fast-uri: 3.1.0 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + + fast-deep-equal@3.1.3: {} + + fast-uri@3.1.0: {} + + fs-extra@11.3.4: + dependencies: + graceful-fs: 4.2.11 + jsonfile: 6.2.0 + universalify: 2.0.1 + + function-bind@1.1.2: {} + + graceful-fs@4.2.11: {} + + has-flag@4.0.0: {} + + hasown@2.0.2: + dependencies: + function-bind: 1.1.2 + + import-lazy@4.0.0: {} + + is-core-module@2.16.1: + dependencies: + hasown: 2.0.2 + + jju@1.4.0: {} + + json-schema-traverse@1.0.0: {} + + jsonfile@6.2.0: + dependencies: + universalify: 2.0.1 + optionalDependencies: + graceful-fs: 4.2.11 + + lru-cache@6.0.0: + dependencies: + yallist: 4.0.0 + + path-parse@1.0.7: {} + + require-from-string@2.0.2: {} + + resolve@1.22.11: + dependencies: + is-core-module: 2.16.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + + semver@7.5.4: + dependencies: + lru-cache: 6.0.0 + + supports-color@8.1.1: + dependencies: + has-flag: 4.0.0 + + supports-preserve-symlinks-flag@1.0.0: {} + + tapable@2.2.1: {} + + universalify@2.0.1: {} + + yallist@4.0.0: {} diff --git a/common/autoinstallers/plugins/rush-plugins/@rushstack/rush-published-versions-json-plugin/rush-plugin-manifest.json b/common/autoinstallers/plugins/rush-plugins/@rushstack/rush-published-versions-json-plugin/rush-plugin-manifest.json new file mode 100644 index 00000000000..03631898b98 --- /dev/null +++ b/common/autoinstallers/plugins/rush-plugins/@rushstack/rush-published-versions-json-plugin/rush-plugin-manifest.json @@ -0,0 +1,12 @@ +{ + "$schema": "https://developer.microsoft.com/json-schemas/rush/v5/rush-plugin-manifest.schema.json", + "plugins": [ + { + "pluginName": "rush-published-versions-json-plugin", + "description": "A Rush plugin for generating a JSON file containing the versions of all published packages in the monorepo.", + "entryPoint": "./lib-commonjs/index.js", + "associatedCommands": ["record-published-versions"], + "commandLineJsonFilePath": "./command-line.json" + } + ] +} diff --git a/common/autoinstallers/plugins/rush-plugins/@rushstack/rush-published-versions-json-plugin/rush-published-versions-json-plugin/command-line.json b/common/autoinstallers/plugins/rush-plugins/@rushstack/rush-published-versions-json-plugin/rush-published-versions-json-plugin/command-line.json new file mode 100644 index 00000000000..248cc35030b --- /dev/null +++ b/common/autoinstallers/plugins/rush-plugins/@rushstack/rush-published-versions-json-plugin/rush-published-versions-json-plugin/command-line.json @@ -0,0 +1,22 @@ +{ + "$schema": "https://developer.microsoft.com/json-schemas/rush/v5/command-line.schema.json", + "commands": [ + { + "commandKind": "globalPlugin", + "name": "record-published-versions", + "summary": "Generates a JSON file recording the version numbers of all published packages.", + "safeForSimultaneousRushProcesses": true + } + ], + "parameters": [ + { + "parameterKind": "string", + "longName": "--output-path", + "shortName": "-o", + "argumentName": "FILE_PATH", + "description": "The path to the output JSON file. Relative paths are resolved from the repo root.", + "associatedCommands": ["record-published-versions"], + "required": true + } + ] +} diff --git a/common/changes/@microsoft/api-extractor-model/automated-bump-decoupled-deps_2026-02-25-22-01.json b/common/changes/@microsoft/api-extractor-model/automated-bump-decoupled-deps_2026-02-25-22-01.json new file mode 100644 index 00000000000..300fd9139cf --- /dev/null +++ b/common/changes/@microsoft/api-extractor-model/automated-bump-decoupled-deps_2026-02-25-22-01.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "comment": "", + "type": "none", + "packageName": "@microsoft/api-extractor-model" + } + ], + "packageName": "@microsoft/api-extractor-model", + "email": "rushbot@users.noreply.github.com" +} \ No newline at end of file diff --git a/common/changes/@microsoft/api-extractor-model/automated-bump-decoupled-deps_2026-03-09-15-36.json b/common/changes/@microsoft/api-extractor-model/automated-bump-decoupled-deps_2026-03-09-15-36.json new file mode 100644 index 00000000000..300fd9139cf --- /dev/null +++ b/common/changes/@microsoft/api-extractor-model/automated-bump-decoupled-deps_2026-03-09-15-36.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "comment": "", + "type": "none", + "packageName": "@microsoft/api-extractor-model" + } + ], + "packageName": "@microsoft/api-extractor-model", + "email": "rushbot@users.noreply.github.com" +} \ No newline at end of file diff --git a/common/changes/@microsoft/api-extractor/automated-bump-decoupled-deps_2026-03-09-15-36.json b/common/changes/@microsoft/api-extractor/automated-bump-decoupled-deps_2026-03-09-15-36.json new file mode 100644 index 00000000000..c767a964ce4 --- /dev/null +++ b/common/changes/@microsoft/api-extractor/automated-bump-decoupled-deps_2026-03-09-15-36.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "comment": "", + "type": "none", + "packageName": "@microsoft/api-extractor" + } + ], + "packageName": "@microsoft/api-extractor", + "email": "rushbot@users.noreply.github.com" +} \ No newline at end of file diff --git a/common/changes/@microsoft/api-extractor/fix-missing-exports_2026-02-21-19-28.json b/common/changes/@microsoft/api-extractor/fix-missing-exports_2026-02-21-19-28.json deleted file mode 100644 index b90352304e7..00000000000 --- a/common/changes/@microsoft/api-extractor/fix-missing-exports_2026-02-21-19-28.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "changes": [ - { - "packageName": "@microsoft/api-extractor", - "comment": "Add missing \"./extends/*.json\" to the package.json \"exports\" field so that \"@microsoft/api-extractor/extends/tsdoc-base.json\" is importable.", - "type": "patch" - } - ], - "packageName": "@microsoft/api-extractor" -} diff --git a/common/changes/@microsoft/rush-lib/fix-npmrc-syncing_2026-02-19-02-14.json b/common/changes/@microsoft/rush-lib/fix-npmrc-syncing_2026-02-19-02-14.json deleted file mode 100644 index bb37b050f97..00000000000 --- a/common/changes/@microsoft/rush-lib/fix-npmrc-syncing_2026-02-19-02-14.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "changes": [ - { - "packageName": "@microsoft/rush", - "comment": "Fix .npmrc syncing to common/temp incorrectly caching results, which caused pnpm-specific properties like hoist-pattern to be stripped when the same .npmrc was processed with different options.", - "type": "none" - } - ], - "packageName": "@microsoft/rush" -} diff --git a/common/changes/@microsoft/rush/rework-PackageJsonEditor_2026-03-24-00-00.json b/common/changes/@microsoft/rush/rework-PackageJsonEditor_2026-03-24-00-00.json new file mode 100644 index 00000000000..2dbff73d652 --- /dev/null +++ b/common/changes/@microsoft/rush/rework-PackageJsonEditor_2026-03-24-00-00.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "comment": "Add async variants of disk-touching APIs in `PackageJsonEditor` (`loadAsync`, `saveIfModifiedAsync`), `CommonVersionsConfiguration` (`loadFromFileAsync`, `saveAsync`), and `VersionPolicy` (`setDependenciesBeforePublishAsync`, `setDependenciesBeforeCommitAsync`); deprecate corresponding sync methods.", + "type": "minor", + "packageName": "@microsoft/rush" + } + ], + "packageName": "@microsoft/rush", + "email": "iclanton@users.noreply.github.com" +} diff --git a/common/changes/@rushstack/eslint-patch/automated-bump-decoupled-deps_2026-02-25-01-32.json b/common/changes/@rushstack/eslint-patch/automated-bump-decoupled-deps_2026-02-25-01-32.json new file mode 100644 index 00000000000..4182a0eb140 --- /dev/null +++ b/common/changes/@rushstack/eslint-patch/automated-bump-decoupled-deps_2026-02-25-01-32.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "comment": "", + "type": "none", + "packageName": "@rushstack/eslint-patch" + } + ], + "packageName": "@rushstack/eslint-patch", + "email": "rushbot@users.noreply.github.com" +} \ No newline at end of file diff --git a/common/changes/@rushstack/eslint-patch/automated-bump-decoupled-deps_2026-02-25-22-01.json b/common/changes/@rushstack/eslint-patch/automated-bump-decoupled-deps_2026-02-25-22-01.json new file mode 100644 index 00000000000..4182a0eb140 --- /dev/null +++ b/common/changes/@rushstack/eslint-patch/automated-bump-decoupled-deps_2026-02-25-22-01.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "comment": "", + "type": "none", + "packageName": "@rushstack/eslint-patch" + } + ], + "packageName": "@rushstack/eslint-patch", + "email": "rushbot@users.noreply.github.com" +} \ No newline at end of file diff --git a/common/changes/@rushstack/eslint-patch/automated-bump-decoupled-deps_2026-03-09-15-36.json b/common/changes/@rushstack/eslint-patch/automated-bump-decoupled-deps_2026-03-09-15-36.json new file mode 100644 index 00000000000..4182a0eb140 --- /dev/null +++ b/common/changes/@rushstack/eslint-patch/automated-bump-decoupled-deps_2026-03-09-15-36.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "comment": "", + "type": "none", + "packageName": "@rushstack/eslint-patch" + } + ], + "packageName": "@rushstack/eslint-patch", + "email": "rushbot@users.noreply.github.com" +} \ No newline at end of file diff --git a/common/changes/@rushstack/eslint-patch/bump-tsdoc-and-typescript-eslint_2026-02-25-03-24.json b/common/changes/@rushstack/eslint-patch/bump-tsdoc-and-typescript-eslint_2026-02-25-03-24.json new file mode 100644 index 00000000000..ceefa44d69e --- /dev/null +++ b/common/changes/@rushstack/eslint-patch/bump-tsdoc-and-typescript-eslint_2026-02-25-03-24.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@rushstack/eslint-patch", + "comment": "", + "type": "none" + } + ], + "packageName": "@rushstack/eslint-patch" +} \ No newline at end of file diff --git a/common/changes/@rushstack/eslint-patch/normalize-npmrcs_2026-02-25-19-47.json b/common/changes/@rushstack/eslint-patch/normalize-npmrcs_2026-02-25-19-47.json new file mode 100644 index 00000000000..ceefa44d69e --- /dev/null +++ b/common/changes/@rushstack/eslint-patch/normalize-npmrcs_2026-02-25-19-47.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@rushstack/eslint-patch", + "comment": "", + "type": "none" + } + ], + "packageName": "@rushstack/eslint-patch" +} \ No newline at end of file diff --git a/common/changes/@rushstack/eslint-plugin-packlets/automated-bump-decoupled-deps_2026-02-25-22-01.json b/common/changes/@rushstack/eslint-plugin-packlets/automated-bump-decoupled-deps_2026-02-25-22-01.json new file mode 100644 index 00000000000..7ee8e7c8b81 --- /dev/null +++ b/common/changes/@rushstack/eslint-plugin-packlets/automated-bump-decoupled-deps_2026-02-25-22-01.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "comment": "", + "type": "none", + "packageName": "@rushstack/eslint-plugin-packlets" + } + ], + "packageName": "@rushstack/eslint-plugin-packlets", + "email": "rushbot@users.noreply.github.com" +} \ No newline at end of file diff --git a/common/changes/@rushstack/eslint-plugin-packlets/automated-bump-decoupled-deps_2026-03-09-15-36.json b/common/changes/@rushstack/eslint-plugin-packlets/automated-bump-decoupled-deps_2026-03-09-15-36.json new file mode 100644 index 00000000000..7ee8e7c8b81 --- /dev/null +++ b/common/changes/@rushstack/eslint-plugin-packlets/automated-bump-decoupled-deps_2026-03-09-15-36.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "comment": "", + "type": "none", + "packageName": "@rushstack/eslint-plugin-packlets" + } + ], + "packageName": "@rushstack/eslint-plugin-packlets", + "email": "rushbot@users.noreply.github.com" +} \ No newline at end of file diff --git a/common/changes/@rushstack/eslint-plugin-security/automated-bump-decoupled-deps_2026-02-25-22-01.json b/common/changes/@rushstack/eslint-plugin-security/automated-bump-decoupled-deps_2026-02-25-22-01.json new file mode 100644 index 00000000000..4b6878d5549 --- /dev/null +++ b/common/changes/@rushstack/eslint-plugin-security/automated-bump-decoupled-deps_2026-02-25-22-01.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "comment": "", + "type": "none", + "packageName": "@rushstack/eslint-plugin-security" + } + ], + "packageName": "@rushstack/eslint-plugin-security", + "email": "rushbot@users.noreply.github.com" +} \ No newline at end of file diff --git a/common/changes/@rushstack/eslint-plugin-security/automated-bump-decoupled-deps_2026-03-09-15-36.json b/common/changes/@rushstack/eslint-plugin-security/automated-bump-decoupled-deps_2026-03-09-15-36.json new file mode 100644 index 00000000000..4b6878d5549 --- /dev/null +++ b/common/changes/@rushstack/eslint-plugin-security/automated-bump-decoupled-deps_2026-03-09-15-36.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "comment": "", + "type": "none", + "packageName": "@rushstack/eslint-plugin-security" + } + ], + "packageName": "@rushstack/eslint-plugin-security", + "email": "rushbot@users.noreply.github.com" +} \ No newline at end of file diff --git a/common/changes/@rushstack/eslint-plugin/automated-bump-decoupled-deps_2026-02-25-22-01.json b/common/changes/@rushstack/eslint-plugin/automated-bump-decoupled-deps_2026-02-25-22-01.json new file mode 100644 index 00000000000..eb5d63adacf --- /dev/null +++ b/common/changes/@rushstack/eslint-plugin/automated-bump-decoupled-deps_2026-02-25-22-01.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "comment": "", + "type": "none", + "packageName": "@rushstack/eslint-plugin" + } + ], + "packageName": "@rushstack/eslint-plugin", + "email": "rushbot@users.noreply.github.com" +} \ No newline at end of file diff --git a/common/changes/@rushstack/eslint-plugin/automated-bump-decoupled-deps_2026-03-09-15-36.json b/common/changes/@rushstack/eslint-plugin/automated-bump-decoupled-deps_2026-03-09-15-36.json new file mode 100644 index 00000000000..eb5d63adacf --- /dev/null +++ b/common/changes/@rushstack/eslint-plugin/automated-bump-decoupled-deps_2026-03-09-15-36.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "comment": "", + "type": "none", + "packageName": "@rushstack/eslint-plugin" + } + ], + "packageName": "@rushstack/eslint-plugin", + "email": "rushbot@users.noreply.github.com" +} \ No newline at end of file diff --git a/common/changes/@rushstack/heft-config-file/automated-bump-decoupled-deps_2026-02-25-01-32.json b/common/changes/@rushstack/heft-config-file/automated-bump-decoupled-deps_2026-02-25-01-32.json new file mode 100644 index 00000000000..5ebf376352e --- /dev/null +++ b/common/changes/@rushstack/heft-config-file/automated-bump-decoupled-deps_2026-02-25-01-32.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "comment": "", + "type": "none", + "packageName": "@rushstack/heft-config-file" + } + ], + "packageName": "@rushstack/heft-config-file", + "email": "rushbot@users.noreply.github.com" +} \ No newline at end of file diff --git a/common/changes/@rushstack/heft-config-file/automated-bump-decoupled-deps_2026-02-25-22-01.json b/common/changes/@rushstack/heft-config-file/automated-bump-decoupled-deps_2026-02-25-22-01.json new file mode 100644 index 00000000000..5ebf376352e --- /dev/null +++ b/common/changes/@rushstack/heft-config-file/automated-bump-decoupled-deps_2026-02-25-22-01.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "comment": "", + "type": "none", + "packageName": "@rushstack/heft-config-file" + } + ], + "packageName": "@rushstack/heft-config-file", + "email": "rushbot@users.noreply.github.com" +} \ No newline at end of file diff --git a/common/changes/@rushstack/heft-config-file/automated-bump-decoupled-deps_2026-03-09-15-36.json b/common/changes/@rushstack/heft-config-file/automated-bump-decoupled-deps_2026-03-09-15-36.json new file mode 100644 index 00000000000..5ebf376352e --- /dev/null +++ b/common/changes/@rushstack/heft-config-file/automated-bump-decoupled-deps_2026-03-09-15-36.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "comment": "", + "type": "none", + "packageName": "@rushstack/heft-config-file" + } + ], + "packageName": "@rushstack/heft-config-file", + "email": "rushbot@users.noreply.github.com" +} \ No newline at end of file diff --git a/common/changes/@rushstack/heft-config-file/normalize-npmrcs_2026-02-25-19-56.json b/common/changes/@rushstack/heft-config-file/normalize-npmrcs_2026-02-25-19-56.json new file mode 100644 index 00000000000..9b24a4fdcca --- /dev/null +++ b/common/changes/@rushstack/heft-config-file/normalize-npmrcs_2026-02-25-19-56.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@rushstack/heft-config-file", + "comment": "", + "type": "none" + } + ], + "packageName": "@rushstack/heft-config-file" +} \ No newline at end of file diff --git a/common/changes/@rushstack/heft-jest-plugin/fix-missing-exports_2026-02-21-19-28.json b/common/changes/@rushstack/heft-jest-plugin/fix-missing-exports_2026-02-21-19-28.json deleted file mode 100644 index 8ca4a9bfbaf..00000000000 --- a/common/changes/@rushstack/heft-jest-plugin/fix-missing-exports_2026-02-21-19-28.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "changes": [ - { - "packageName": "@rushstack/heft-jest-plugin", - "comment": "Add missing \"./includes/*.json\" to the package.json \"exports\" field so that Jest config files like \"@rushstack/heft-jest-plugin/includes/jest-shared.config.json\" are importable.", - "type": "patch" - } - ], - "packageName": "@rushstack/heft-jest-plugin" -} diff --git a/common/changes/@rushstack/heft/automated-bump-decoupled-deps_2026-03-09-15-36.json b/common/changes/@rushstack/heft/automated-bump-decoupled-deps_2026-03-09-15-36.json new file mode 100644 index 00000000000..d773a7585e3 --- /dev/null +++ b/common/changes/@rushstack/heft/automated-bump-decoupled-deps_2026-03-09-15-36.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "comment": "", + "type": "none", + "packageName": "@rushstack/heft" + } + ], + "packageName": "@rushstack/heft", + "email": "rushbot@users.noreply.github.com" +} \ No newline at end of file diff --git a/common/changes/@rushstack/node-core-library/automated-bump-decoupled-deps_2026-02-25-01-32.json b/common/changes/@rushstack/node-core-library/automated-bump-decoupled-deps_2026-02-25-01-32.json new file mode 100644 index 00000000000..bf210f74baf --- /dev/null +++ b/common/changes/@rushstack/node-core-library/automated-bump-decoupled-deps_2026-02-25-01-32.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "comment": "", + "type": "none", + "packageName": "@rushstack/node-core-library" + } + ], + "packageName": "@rushstack/node-core-library", + "email": "rushbot@users.noreply.github.com" +} \ No newline at end of file diff --git a/common/changes/@rushstack/node-core-library/automated-bump-decoupled-deps_2026-02-25-22-01.json b/common/changes/@rushstack/node-core-library/automated-bump-decoupled-deps_2026-02-25-22-01.json new file mode 100644 index 00000000000..bf210f74baf --- /dev/null +++ b/common/changes/@rushstack/node-core-library/automated-bump-decoupled-deps_2026-02-25-22-01.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "comment": "", + "type": "none", + "packageName": "@rushstack/node-core-library" + } + ], + "packageName": "@rushstack/node-core-library", + "email": "rushbot@users.noreply.github.com" +} \ No newline at end of file diff --git a/common/changes/@rushstack/node-core-library/automated-bump-decoupled-deps_2026-03-09-15-36.json b/common/changes/@rushstack/node-core-library/automated-bump-decoupled-deps_2026-03-09-15-36.json new file mode 100644 index 00000000000..bf210f74baf --- /dev/null +++ b/common/changes/@rushstack/node-core-library/automated-bump-decoupled-deps_2026-03-09-15-36.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "comment": "", + "type": "none", + "packageName": "@rushstack/node-core-library" + } + ], + "packageName": "@rushstack/node-core-library", + "email": "rushbot@users.noreply.github.com" +} \ No newline at end of file diff --git a/common/changes/@rushstack/node-core-library/normalize-npmrcs_2026-02-25-19-56.json b/common/changes/@rushstack/node-core-library/normalize-npmrcs_2026-02-25-19-56.json new file mode 100644 index 00000000000..d702845598d --- /dev/null +++ b/common/changes/@rushstack/node-core-library/normalize-npmrcs_2026-02-25-19-56.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@rushstack/node-core-library", + "comment": "", + "type": "none" + } + ], + "packageName": "@rushstack/node-core-library" +} \ No newline at end of file diff --git a/common/changes/@rushstack/operation-graph/automated-bump-decoupled-deps_2026-02-25-01-32.json b/common/changes/@rushstack/operation-graph/automated-bump-decoupled-deps_2026-02-25-01-32.json new file mode 100644 index 00000000000..bebea85d5d6 --- /dev/null +++ b/common/changes/@rushstack/operation-graph/automated-bump-decoupled-deps_2026-02-25-01-32.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "comment": "", + "type": "none", + "packageName": "@rushstack/operation-graph" + } + ], + "packageName": "@rushstack/operation-graph", + "email": "rushbot@users.noreply.github.com" +} \ No newline at end of file diff --git a/common/changes/@rushstack/operation-graph/automated-bump-decoupled-deps_2026-02-25-22-01.json b/common/changes/@rushstack/operation-graph/automated-bump-decoupled-deps_2026-02-25-22-01.json new file mode 100644 index 00000000000..bebea85d5d6 --- /dev/null +++ b/common/changes/@rushstack/operation-graph/automated-bump-decoupled-deps_2026-02-25-22-01.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "comment": "", + "type": "none", + "packageName": "@rushstack/operation-graph" + } + ], + "packageName": "@rushstack/operation-graph", + "email": "rushbot@users.noreply.github.com" +} \ No newline at end of file diff --git a/common/changes/@rushstack/operation-graph/automated-bump-decoupled-deps_2026-03-09-15-36.json b/common/changes/@rushstack/operation-graph/automated-bump-decoupled-deps_2026-03-09-15-36.json new file mode 100644 index 00000000000..bebea85d5d6 --- /dev/null +++ b/common/changes/@rushstack/operation-graph/automated-bump-decoupled-deps_2026-03-09-15-36.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "comment": "", + "type": "none", + "packageName": "@rushstack/operation-graph" + } + ], + "packageName": "@rushstack/operation-graph", + "email": "rushbot@users.noreply.github.com" +} \ No newline at end of file diff --git a/common/changes/@rushstack/operation-graph/normalize-npmrcs_2026-02-25-19-56.json b/common/changes/@rushstack/operation-graph/normalize-npmrcs_2026-02-25-19-56.json new file mode 100644 index 00000000000..eabefe94ed8 --- /dev/null +++ b/common/changes/@rushstack/operation-graph/normalize-npmrcs_2026-02-25-19-56.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@rushstack/operation-graph", + "comment": "", + "type": "none" + } + ], + "packageName": "@rushstack/operation-graph" +} \ No newline at end of file diff --git a/common/changes/@rushstack/problem-matcher/automated-bump-decoupled-deps_2026-02-25-01-32.json b/common/changes/@rushstack/problem-matcher/automated-bump-decoupled-deps_2026-02-25-01-32.json new file mode 100644 index 00000000000..67a23d58850 --- /dev/null +++ b/common/changes/@rushstack/problem-matcher/automated-bump-decoupled-deps_2026-02-25-01-32.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "comment": "", + "type": "none", + "packageName": "@rushstack/problem-matcher" + } + ], + "packageName": "@rushstack/problem-matcher", + "email": "rushbot@users.noreply.github.com" +} \ No newline at end of file diff --git a/common/changes/@rushstack/problem-matcher/automated-bump-decoupled-deps_2026-02-25-22-01.json b/common/changes/@rushstack/problem-matcher/automated-bump-decoupled-deps_2026-02-25-22-01.json new file mode 100644 index 00000000000..67a23d58850 --- /dev/null +++ b/common/changes/@rushstack/problem-matcher/automated-bump-decoupled-deps_2026-02-25-22-01.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "comment": "", + "type": "none", + "packageName": "@rushstack/problem-matcher" + } + ], + "packageName": "@rushstack/problem-matcher", + "email": "rushbot@users.noreply.github.com" +} \ No newline at end of file diff --git a/common/changes/@rushstack/problem-matcher/automated-bump-decoupled-deps_2026-03-09-15-36.json b/common/changes/@rushstack/problem-matcher/automated-bump-decoupled-deps_2026-03-09-15-36.json new file mode 100644 index 00000000000..67a23d58850 --- /dev/null +++ b/common/changes/@rushstack/problem-matcher/automated-bump-decoupled-deps_2026-03-09-15-36.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "comment": "", + "type": "none", + "packageName": "@rushstack/problem-matcher" + } + ], + "packageName": "@rushstack/problem-matcher", + "email": "rushbot@users.noreply.github.com" +} \ No newline at end of file diff --git a/common/changes/@rushstack/problem-matcher/normalize-npmrcs_2026-02-25-19-56.json b/common/changes/@rushstack/problem-matcher/normalize-npmrcs_2026-02-25-19-56.json new file mode 100644 index 00000000000..222a84da6d7 --- /dev/null +++ b/common/changes/@rushstack/problem-matcher/normalize-npmrcs_2026-02-25-19-56.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@rushstack/problem-matcher", + "comment": "", + "type": "none" + } + ], + "packageName": "@rushstack/problem-matcher" +} \ No newline at end of file diff --git a/common/changes/@rushstack/problem-matcher/publish-api-artifact_2026-02-22-22-14.json b/common/changes/@rushstack/problem-matcher/publish-api-artifact_2026-02-22-22-14.json new file mode 100644 index 00000000000..a8d616334fa --- /dev/null +++ b/common/changes/@rushstack/problem-matcher/publish-api-artifact_2026-02-22-22-14.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "comment": "", + "type": "none", + "packageName": "@rushstack/problem-matcher" + } + ], + "packageName": "@rushstack/problem-matcher", + "email": "iclanton@users.noreply.github.com" +} \ No newline at end of file diff --git a/common/changes/@rushstack/rig-package/automated-bump-decoupled-deps_2026-02-25-01-32.json b/common/changes/@rushstack/rig-package/automated-bump-decoupled-deps_2026-02-25-01-32.json new file mode 100644 index 00000000000..cc5c78afc2a --- /dev/null +++ b/common/changes/@rushstack/rig-package/automated-bump-decoupled-deps_2026-02-25-01-32.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "comment": "", + "type": "none", + "packageName": "@rushstack/rig-package" + } + ], + "packageName": "@rushstack/rig-package", + "email": "rushbot@users.noreply.github.com" +} \ No newline at end of file diff --git a/common/changes/@rushstack/rig-package/automated-bump-decoupled-deps_2026-02-25-22-01.json b/common/changes/@rushstack/rig-package/automated-bump-decoupled-deps_2026-02-25-22-01.json new file mode 100644 index 00000000000..cc5c78afc2a --- /dev/null +++ b/common/changes/@rushstack/rig-package/automated-bump-decoupled-deps_2026-02-25-22-01.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "comment": "", + "type": "none", + "packageName": "@rushstack/rig-package" + } + ], + "packageName": "@rushstack/rig-package", + "email": "rushbot@users.noreply.github.com" +} \ No newline at end of file diff --git a/common/changes/@rushstack/rig-package/automated-bump-decoupled-deps_2026-03-09-15-36.json b/common/changes/@rushstack/rig-package/automated-bump-decoupled-deps_2026-03-09-15-36.json new file mode 100644 index 00000000000..cc5c78afc2a --- /dev/null +++ b/common/changes/@rushstack/rig-package/automated-bump-decoupled-deps_2026-03-09-15-36.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "comment": "", + "type": "none", + "packageName": "@rushstack/rig-package" + } + ], + "packageName": "@rushstack/rig-package", + "email": "rushbot@users.noreply.github.com" +} \ No newline at end of file diff --git a/common/changes/@rushstack/rig-package/normalize-npmrcs_2026-02-25-19-56.json b/common/changes/@rushstack/rig-package/normalize-npmrcs_2026-02-25-19-56.json new file mode 100644 index 00000000000..1c1df562afb --- /dev/null +++ b/common/changes/@rushstack/rig-package/normalize-npmrcs_2026-02-25-19-56.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@rushstack/rig-package", + "comment": "", + "type": "none" + } + ], + "packageName": "@rushstack/rig-package" +} \ No newline at end of file diff --git a/common/changes/@rushstack/terminal/automated-bump-decoupled-deps_2026-02-25-01-32.json b/common/changes/@rushstack/terminal/automated-bump-decoupled-deps_2026-02-25-01-32.json new file mode 100644 index 00000000000..da1765f19fc --- /dev/null +++ b/common/changes/@rushstack/terminal/automated-bump-decoupled-deps_2026-02-25-01-32.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "comment": "", + "type": "none", + "packageName": "@rushstack/terminal" + } + ], + "packageName": "@rushstack/terminal", + "email": "rushbot@users.noreply.github.com" +} \ No newline at end of file diff --git a/common/changes/@rushstack/terminal/automated-bump-decoupled-deps_2026-02-25-22-01.json b/common/changes/@rushstack/terminal/automated-bump-decoupled-deps_2026-02-25-22-01.json new file mode 100644 index 00000000000..da1765f19fc --- /dev/null +++ b/common/changes/@rushstack/terminal/automated-bump-decoupled-deps_2026-02-25-22-01.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "comment": "", + "type": "none", + "packageName": "@rushstack/terminal" + } + ], + "packageName": "@rushstack/terminal", + "email": "rushbot@users.noreply.github.com" +} \ No newline at end of file diff --git a/common/changes/@rushstack/terminal/automated-bump-decoupled-deps_2026-03-09-15-36.json b/common/changes/@rushstack/terminal/automated-bump-decoupled-deps_2026-03-09-15-36.json new file mode 100644 index 00000000000..da1765f19fc --- /dev/null +++ b/common/changes/@rushstack/terminal/automated-bump-decoupled-deps_2026-03-09-15-36.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "comment": "", + "type": "none", + "packageName": "@rushstack/terminal" + } + ], + "packageName": "@rushstack/terminal", + "email": "rushbot@users.noreply.github.com" +} \ No newline at end of file diff --git a/common/changes/@rushstack/terminal/normalize-npmrcs_2026-02-25-19-56.json b/common/changes/@rushstack/terminal/normalize-npmrcs_2026-02-25-19-56.json new file mode 100644 index 00000000000..72b4a6eb492 --- /dev/null +++ b/common/changes/@rushstack/terminal/normalize-npmrcs_2026-02-25-19-56.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@rushstack/terminal", + "comment": "", + "type": "none" + } + ], + "packageName": "@rushstack/terminal" +} \ No newline at end of file diff --git a/common/changes/@rushstack/tree-pattern/automated-bump-decoupled-deps_2026-02-25-01-32.json b/common/changes/@rushstack/tree-pattern/automated-bump-decoupled-deps_2026-02-25-01-32.json new file mode 100644 index 00000000000..85eb782e9cb --- /dev/null +++ b/common/changes/@rushstack/tree-pattern/automated-bump-decoupled-deps_2026-02-25-01-32.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "comment": "", + "type": "none", + "packageName": "@rushstack/tree-pattern" + } + ], + "packageName": "@rushstack/tree-pattern", + "email": "rushbot@users.noreply.github.com" +} \ No newline at end of file diff --git a/common/changes/@rushstack/tree-pattern/automated-bump-decoupled-deps_2026-02-25-22-01.json b/common/changes/@rushstack/tree-pattern/automated-bump-decoupled-deps_2026-02-25-22-01.json new file mode 100644 index 00000000000..85eb782e9cb --- /dev/null +++ b/common/changes/@rushstack/tree-pattern/automated-bump-decoupled-deps_2026-02-25-22-01.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "comment": "", + "type": "none", + "packageName": "@rushstack/tree-pattern" + } + ], + "packageName": "@rushstack/tree-pattern", + "email": "rushbot@users.noreply.github.com" +} \ No newline at end of file diff --git a/common/changes/@rushstack/tree-pattern/automated-bump-decoupled-deps_2026-03-09-15-36.json b/common/changes/@rushstack/tree-pattern/automated-bump-decoupled-deps_2026-03-09-15-36.json new file mode 100644 index 00000000000..85eb782e9cb --- /dev/null +++ b/common/changes/@rushstack/tree-pattern/automated-bump-decoupled-deps_2026-03-09-15-36.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "comment": "", + "type": "none", + "packageName": "@rushstack/tree-pattern" + } + ], + "packageName": "@rushstack/tree-pattern", + "email": "rushbot@users.noreply.github.com" +} \ No newline at end of file diff --git a/common/changes/@rushstack/tree-pattern/normalize-npmrcs_2026-02-25-19-56.json b/common/changes/@rushstack/tree-pattern/normalize-npmrcs_2026-02-25-19-56.json new file mode 100644 index 00000000000..120c33a1f7e --- /dev/null +++ b/common/changes/@rushstack/tree-pattern/normalize-npmrcs_2026-02-25-19-56.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@rushstack/tree-pattern", + "comment": "", + "type": "none" + } + ], + "packageName": "@rushstack/tree-pattern" +} \ No newline at end of file diff --git a/common/changes/@microsoft/rush/fix-url-deprecation-warning_2026-02-21-01-15.json b/common/changes/@rushstack/tree-pattern/publish-api-artifact_2026-02-22-22-14.json similarity index 57% rename from common/changes/@microsoft/rush/fix-url-deprecation-warning_2026-02-21-01-15.json rename to common/changes/@rushstack/tree-pattern/publish-api-artifact_2026-02-22-22-14.json index efcd84c45fb..619a10c75e3 100644 --- a/common/changes/@microsoft/rush/fix-url-deprecation-warning_2026-02-21-01-15.json +++ b/common/changes/@rushstack/tree-pattern/publish-api-artifact_2026-02-22-22-14.json @@ -3,9 +3,9 @@ { "comment": "", "type": "none", - "packageName": "@microsoft/rush" + "packageName": "@rushstack/tree-pattern" } ], - "packageName": "@microsoft/rush", + "packageName": "@rushstack/tree-pattern", "email": "iclanton@users.noreply.github.com" } \ No newline at end of file diff --git a/common/changes/@rushstack/ts-command-line/automated-bump-decoupled-deps_2026-02-25-01-32.json b/common/changes/@rushstack/ts-command-line/automated-bump-decoupled-deps_2026-02-25-01-32.json new file mode 100644 index 00000000000..e4b2e545b21 --- /dev/null +++ b/common/changes/@rushstack/ts-command-line/automated-bump-decoupled-deps_2026-02-25-01-32.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "comment": "", + "type": "none", + "packageName": "@rushstack/ts-command-line" + } + ], + "packageName": "@rushstack/ts-command-line", + "email": "rushbot@users.noreply.github.com" +} \ No newline at end of file diff --git a/common/changes/@rushstack/ts-command-line/automated-bump-decoupled-deps_2026-02-25-22-01.json b/common/changes/@rushstack/ts-command-line/automated-bump-decoupled-deps_2026-02-25-22-01.json new file mode 100644 index 00000000000..e4b2e545b21 --- /dev/null +++ b/common/changes/@rushstack/ts-command-line/automated-bump-decoupled-deps_2026-02-25-22-01.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "comment": "", + "type": "none", + "packageName": "@rushstack/ts-command-line" + } + ], + "packageName": "@rushstack/ts-command-line", + "email": "rushbot@users.noreply.github.com" +} \ No newline at end of file diff --git a/common/changes/@rushstack/ts-command-line/automated-bump-decoupled-deps_2026-03-09-15-36.json b/common/changes/@rushstack/ts-command-line/automated-bump-decoupled-deps_2026-03-09-15-36.json new file mode 100644 index 00000000000..e4b2e545b21 --- /dev/null +++ b/common/changes/@rushstack/ts-command-line/automated-bump-decoupled-deps_2026-03-09-15-36.json @@ -0,0 +1,11 @@ +{ + "changes": [ + { + "comment": "", + "type": "none", + "packageName": "@rushstack/ts-command-line" + } + ], + "packageName": "@rushstack/ts-command-line", + "email": "rushbot@users.noreply.github.com" +} \ No newline at end of file diff --git a/common/changes/@rushstack/ts-command-line/normalize-npmrcs_2026-02-25-19-56.json b/common/changes/@rushstack/ts-command-line/normalize-npmrcs_2026-02-25-19-56.json new file mode 100644 index 00000000000..a03064b455f --- /dev/null +++ b/common/changes/@rushstack/ts-command-line/normalize-npmrcs_2026-02-25-19-56.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@rushstack/ts-command-line", + "comment": "", + "type": "none" + } + ], + "packageName": "@rushstack/ts-command-line" +} \ No newline at end of file diff --git a/common/config/azure-pipelines/npm-post-publish.yaml b/common/config/azure-pipelines/npm-post-publish.yaml new file mode 100644 index 00000000000..a95355bc7da --- /dev/null +++ b/common/config/azure-pipelines/npm-post-publish.yaml @@ -0,0 +1,271 @@ +parameters: + - name: delayMinutes + displayName: 'Minutes to wait for packages to propagate before running' + type: number + default: 5 + +name: 'Post-publish $(Date:yyyyMMdd).$(Rev:r) (triggered by $(resources.triggeringAlias))' + +variables: + - name: FORCE_COLOR + value: 1 + +# This pipeline is triggered only by pipeline resources (npm publish pipelines), +# not by CI pushes or PR builds. +trigger: none +pr: none + +resources: + pipelines: + - pipeline: npmPublish + source: 'rushstack NPM Publish' + trigger: + enabled: true + branches: + include: + - refs/heads/main + - pipeline: npmPublishRush + source: 'rushstack NPM Publish (rush)' + trigger: + enabled: true + branches: + include: + - refs/heads/main + repositories: + - repository: 1esPipelines + type: git + name: 1ESPipelineTemplates/1ESPipelineTemplates + ref: refs/tags/release + - repository: rushstackWebsites + type: github + name: microsoft/rushstack-websites + endpoint: GitHubProjects + ref: refs/heads/main + +extends: + template: v1/1ES.Official.PipelineTemplate.yml@1esPipelines + parameters: + sdl: + sourceRepositoriesToScan: + exclude: + - repository: rushstackWebsites + pool: + name: Azure-Pipelines-1ESPT-ExDShared + os: windows + stages: + # ────────────────────────────────────────────────────────────────────────── + # Stage 0: Wait for packages to propagate to the npm registry + # ────────────────────────────────────────────────────────────────────────── + - stage: WaitForPropagation + displayName: 'Wait for npm propagation' + jobs: + - job: + displayName: 'Delay' + pool: server + timeoutInMinutes: 120 + steps: + - task: Delay@1 + displayName: 'Wait ${{ parameters.delayMinutes }} minute(s)' + inputs: + delayForMinutes: '${{ parameters.delayMinutes }}' + + # ────────────────────────────────────────────────────────────────────────── + # Stage 1: Bump decoupled local dependencies + # ────────────────────────────────────────────────────────────────────────── + - stage: BumpDecoupledDeps + displayName: 'Bump decoupled local dependencies' + dependsOn: WaitForPropagation + variables: + BranchName: 'automated/bump-decoupled-deps' + CommitMessage: 'chore: bump decoupled local dependencies' + jobs: + - job: + displayName: 'Bump decoupled dependencies and create PR' + pool: + name: publish-rushstack + os: linux + steps: + - checkout: self + persistCredentials: true + + - template: /common/config/azure-pipelines/templates/install-node.yaml@self + + - script: 'git config --local user.email rushbot@users.noreply.github.com' + displayName: 'git config email' + + - script: 'git config --local user.name Rushbot' + displayName: 'git config name' + + - template: /common/config/azure-pipelines/templates/install-run-rush.yaml@self + parameters: + Arguments: > + install + --to repo-toolbox + DisplayName: 'Rush Install' + + - template: /common/config/azure-pipelines/templates/install-run-rush.yaml@self + parameters: + Arguments: > + build + --to repo-toolbox + --verbose + DisplayName: 'Rush Build (repo-toolbox)' + + - template: /common/config/azure-pipelines/templates/run-repo-toolbox.yaml@self + parameters: + Arguments: 'bump-decoupled-local-dependencies' + DisplayName: 'Bump decoupled local dependencies' + + # If Rush itself was updated by bump-decoupled-local-dependencies, we need to bootstrap + # the new version and update the checked-in lockfile before running `rush update`. + # Otherwise install-run-rush.js would fail lockfile validation when trying to install + # the new version of Rush (the checked-in lockfile still references the old version). + - template: /common/config/azure-pipelines/templates/install-run-rush.yaml@self + parameters: + Arguments: '--help' + DisplayName: 'Install new Rush version (skip lockfile validation)' + DisableInstallRunRushLockfile: true + Condition: "eq(variables['RushWasUpdated'], 'true')" + + - bash: > + cp + "common/temp/install-run/@microsoft+rush@$(NewRushVersion)/package-lock.json" + common/config/validation/rush-package-lock.json + displayName: 'Update rush-package-lock.json (new Rush version)' + condition: eq(variables['RushWasUpdated'], 'true') + + - template: /common/config/azure-pipelines/templates/install-run-rush.yaml@self + parameters: + Arguments: 'update' + DisplayName: 'Rush Update' + + - template: /common/config/azure-pipelines/templates/install-run-rush.yaml@self + parameters: + Arguments: 'update-autoinstaller --name plugins' + DisplayName: 'Rush Update Autoinstaller (plugins)' + + - bash: | + set -e + + if git diff --quiet; then + echo "No changes detected. Skipping commit and PR." + echo "##vso[task.setvariable variable=HasChanges]false" + exit 0 + fi + + echo "##vso[task.setvariable variable=HasChanges]true" + + git checkout -B $(BranchName) + git add --all + git commit -m "$(CommitMessage)" + displayName: 'Commit dependency changes' + + - template: /common/config/azure-pipelines/templates/install-run-rush.yaml@self + parameters: + Arguments: > + change + --bulk + --bump-type none + --commit-message "chore: generate change files for decoupled dependency bump" + DisplayName: 'Generate change files' + Condition: "and(succeeded(), eq(variables.HasChanges, 'true'))" + + - template: /common/config/azure-pipelines/templates/push-and-create-github-pr.yaml@self + parameters: + BranchName: $(BranchName) + PrTitle: $(CommitMessage) + PrDescription: 'Automated PR to bump decoupled local dependencies to the latest published versions.' + + # ────────────────────────────────────────────────────────────────────────── + # Stage 2: Update API documentation on rushstack-websites + # ────────────────────────────────────────────────────────────────────────── + - stage: UpdateApiDocs + displayName: 'Update API documentation' + dependsOn: WaitForPropagation + variables: + BranchName: 'automated/update-api-docs' + CommitMessage: 'docs: update API documentation' + jobs: + - job: + displayName: 'Update API docs and create PR' + pool: + name: publish-rushstack + os: linux + steps: + - checkout: rushstackWebsites + persistCredentials: true + + - template: /common/config/azure-pipelines/templates/install-node.yaml@self + parameters: + NodeMajorVersion: 24 + + - template: /common/config/azure-pipelines/templates/install-run-rush.yaml@self + parameters: + Arguments: 'install' + DisplayName: 'Rush Install (rushstack-websites)' + # rushstack-websites doesn't have an `install-run-rush` lockfile checked in + DisableInstallRunRushLockfile: true + + - template: /common/config/azure-pipelines/templates/install-run-rush.yaml@self + parameters: + Arguments: > + build + --to-except api.rushstack.io + --verbose + DisplayName: 'Rush Build to-except api.rushstack.io (rushstack-websites)' + # rushstack-websites doesn't have an `install-run-rush` lockfile checked in + DisableInstallRunRushLockfile: true + + # Download the api artifact from the triggering publish pipeline. + # AzDO automatically resolves which pipeline resource triggered this run. + - task: DownloadPipelineArtifact@2 + displayName: 'Download API review files' + inputs: + source: specific + project: GitHubProjects + pipeline: 'rushstack NPM Publish' + preferTriggeringPipeline: true + runVersion: latest + artifact: api + path: $(Pipeline.Workspace)/api + + # Run api-documenter with the Docusaurus plugin from the + # api.rushstack.io project directory so it picks up + # config/api-documenter.json. + - script: > + npx @microsoft/api-documenter@latest + generate + --input-folder $(Pipeline.Workspace)/api + --output-folder ./docs/pages + displayName: 'Generate API documentation' + workingDirectory: websites/api.rushstack.io + + # Update the API docs folder in rushstack-websites and commit. + - bash: | + set -e + + git config --local user.email rushbot@users.noreply.github.com + git config --local user.name Rushbot + + # Move the generated nav data file to the expected location. + mv websites/api.rushstack.io/docs/api_nav.json websites/api.rushstack.io/data/api_nav.json + + # Check for changes (tracked and untracked) + if git diff --quiet && [ -z "$(git ls-files --others --exclude-standard)" ]; then + echo "No API documentation changes detected." + echo "##vso[task.setvariable variable=HasChanges]false" + exit 0 + fi + + echo "##vso[task.setvariable variable=HasChanges]true" + + git checkout -B $(BranchName) + git add --all + git commit -m "$(CommitMessage)" + displayName: 'Update API docs and commit' + + - template: /common/config/azure-pipelines/templates/push-and-create-github-pr.yaml@self + parameters: + BranchName: $(BranchName) + PrTitle: $(CommitMessage) + PrDescription: 'Automated PR to update API reference documentation from the latest published packages.' diff --git a/common/config/azure-pipelines/npm-publish-rush.yaml b/common/config/azure-pipelines/npm-publish-rush.yaml index ee40eec3c8d..70727beb73d 100644 --- a/common/config/azure-pipelines/npm-publish-rush.yaml +++ b/common/config/azure-pipelines/npm-publish-rush.yaml @@ -42,6 +42,9 @@ extends: - output: pipelineArtifact targetPath: $(Build.ArtifactStagingDirectory)/packages artifactName: packages + - output: pipelineArtifact + targetPath: $(Build.ArtifactStagingDirectory)/api + artifactName: api steps: - checkout: self persistCredentials: true diff --git a/common/config/azure-pipelines/npm-publish.yaml b/common/config/azure-pipelines/npm-publish.yaml index dfb163c14b8..2b589c4a732 100644 --- a/common/config/azure-pipelines/npm-publish.yaml +++ b/common/config/azure-pipelines/npm-publish.yaml @@ -42,6 +42,9 @@ extends: - output: pipelineArtifact targetPath: $(Build.ArtifactStagingDirectory)/packages artifactName: packages + - output: pipelineArtifact + targetPath: $(Build.ArtifactStagingDirectory)/api + artifactName: api steps: - checkout: self persistCredentials: true diff --git a/common/config/azure-pipelines/templates/build.yaml b/common/config/azure-pipelines/templates/build.yaml index 0d1204c016d..b600ec1eb25 100644 --- a/common/config/azure-pipelines/templates/build.yaml +++ b/common/config/azure-pipelines/templates/build.yaml @@ -10,11 +10,17 @@ steps: - script: 'git config --local user.name Rushbot' displayName: 'git config name' - - script: 'node common/scripts/install-run-rush.js change --verify' - displayName: 'Verify Change Logs' + - template: /common/config/azure-pipelines/templates/install-run-rush.yaml@self + parameters: + Arguments: > + change + --verify + DisplayName: 'Verify Change Logs' - - script: 'node common/scripts/install-run-rush.js install' - displayName: 'Rush Install' + - template: /common/config/azure-pipelines/templates/install-run-rush.yaml@self + parameters: + Arguments: 'install' + DisplayName: 'Rush Install' # - bash: | # /usr/bin/Xvfb :99 -screen 0 1024x768x24 > /dev/null 2>&1 & @@ -22,8 +28,13 @@ steps: # displayName: Start xvfb # condition: and(succeeded(), eq(variables['Agent.OS'], 'Linux')) - - script: 'node common/scripts/install-run-rush.js retest --verbose --production ${{ parameters.BuildParameters }}' - displayName: 'Rush retest (install-run-rush)' + - template: /common/config/azure-pipelines/templates/install-run-rush.yaml@self + parameters: + Arguments: > + retest + --verbose + --production ${{ parameters.BuildParameters }} + DisplayName: 'Rush retest (install-run-rush)' - script: 'npm run test' workingDirectory: 'build-tests/rush-package-manager-integration-test' diff --git a/common/config/azure-pipelines/templates/bump-versions.yaml b/common/config/azure-pipelines/templates/bump-versions.yaml index b2b461b987a..17f8922afbf 100644 --- a/common/config/azure-pipelines/templates/bump-versions.yaml +++ b/common/config/azure-pipelines/templates/bump-versions.yaml @@ -6,5 +6,11 @@ parameters: default: $(Build.SourceBranchName) steps: - - script: 'node common/scripts/install-run-rush.js version --bump --version-policy ${{ parameters.VersionPolicyName }} --target-branch ${{ parameters.BranchName }}' - displayName: 'Rush Version (Policy: ${{ parameters.VersionPolicyName }})' + - template: /common/config/azure-pipelines/templates/install-run-rush.yaml@self + parameters: + Arguments: > + version + --bump + --version-policy ${{ parameters.VersionPolicyName }} + --target-branch ${{ parameters.BranchName }} + DisplayName: 'Rush Version (Policy: ${{ parameters.VersionPolicyName }})' diff --git a/common/config/azure-pipelines/templates/install-run-rush.yaml b/common/config/azure-pipelines/templates/install-run-rush.yaml new file mode 100644 index 00000000000..2a44f1c471a --- /dev/null +++ b/common/config/azure-pipelines/templates/install-run-rush.yaml @@ -0,0 +1,31 @@ +# Runs install-run-rush.js with the specified CLI arguments and sets the +# INSTALL_RUN_RUSH_LOCKFILE_PATH environment variable. +parameters: + - name: Arguments + type: string + - name: DisplayName + type: string + - name: Condition + type: string + default: '' + - name: NpmAuthToken + type: string + default: '' + - name: RepoPath + type: string + default: '$(Build.SourcesDirectory)' + - name: DisableInstallRunRushLockfile + type: boolean + default: false + +steps: + - script: 'node common/scripts/install-run-rush.js ${{ parameters.Arguments }}' + displayName: '${{ parameters.DisplayName }}' + workingDirectory: ${{ parameters.RepoPath }} + ${{ if ne(parameters.Condition, '') }}: + condition: ${{ parameters.Condition }} + env: + ${{ if not(parameters.DisableInstallRunRushLockfile) }}: + INSTALL_RUN_RUSH_LOCKFILE_PATH: ${{ parameters.RepoPath }}/common/config/validation/rush-package-lock.json + ${{ if ne(parameters.NpmAuthToken, '') }}: + NPM_AUTH_TOKEN: ${{ parameters.NpmAuthToken }} diff --git a/common/config/azure-pipelines/templates/pack.yaml b/common/config/azure-pipelines/templates/pack.yaml index 9b646b2312c..a54eb77e822 100644 --- a/common/config/azure-pipelines/templates/pack.yaml +++ b/common/config/azure-pipelines/templates/pack.yaml @@ -1,3 +1,10 @@ steps: - - script: 'node common/scripts/install-run-rush.js publish --publish --pack --include-all --release-folder $(Build.ArtifactStagingDirectory)/packages' - displayName: 'Rush Pack' + - template: /common/config/azure-pipelines/templates/install-run-rush.yaml@self + parameters: + Arguments: > + publish + --publish + --pack + --include-all + --release-folder $(Build.ArtifactStagingDirectory)/packages + DisplayName: 'Rush Pack' diff --git a/common/config/azure-pipelines/templates/post-publish.yaml b/common/config/azure-pipelines/templates/post-publish.yaml index c25ab635df9..a08e554a06e 100644 --- a/common/config/azure-pipelines/templates/post-publish.yaml +++ b/common/config/azure-pipelines/templates/post-publish.yaml @@ -1,5 +1,23 @@ steps: - - script: 'node repo-scripts/repo-toolbox/lib-commonjs/start.js record-versions --out-file $(Build.ArtifactStagingDirectory)/published-versions/published-versions.json' - displayName: 'Record Published Versions' - - script: 'node repo-scripts/repo-toolbox/lib-commonjs/start.js collect-json-schemas --output-path $(Build.ArtifactStagingDirectory)/json-schemas' - displayName: 'Collect JSON Schemas' + - template: /common/config/azure-pipelines/templates/install-run-rush.yaml@self + parameters: + Arguments: > + record-published-versions + --output-path $(Build.ArtifactStagingDirectory)/published-versions/published-versions.json + DisplayName: 'Record Published Versions' + + - template: /common/config/azure-pipelines/templates/run-repo-toolbox.yaml@self + parameters: + Arguments: > + collect-project-files + --subfolder temp/json-schemas + --output-path $(Build.ArtifactStagingDirectory)/json-schemas + DisplayName: 'Collect JSON Schemas' + + - template: /common/config/azure-pipelines/templates/run-repo-toolbox.yaml@self + parameters: + Arguments: > + collect-project-files + --subfolder temp/api + --output-path $(Build.ArtifactStagingDirectory)/api + DisplayName: 'Collect API review files' diff --git a/common/config/azure-pipelines/templates/publish.yaml b/common/config/azure-pipelines/templates/publish.yaml index 281d7edae9b..4e964bb937e 100644 --- a/common/config/azure-pipelines/templates/publish.yaml +++ b/common/config/azure-pipelines/templates/publish.yaml @@ -6,7 +6,14 @@ parameters: default: $(Build.SourceBranchName) steps: - - script: 'node common/scripts/install-run-rush.js publish --apply --publish --include-all --target-branch ${{ parameters.BranchName }} --add-commit-details --set-access-level public' - displayName: 'Rush Publish (Policy: ${{ parameters.VersionPolicyName }})' - env: - NPM_AUTH_TOKEN: $(npmToken) + - template: /common/config/azure-pipelines/templates/install-run-rush.yaml@self + parameters: + Arguments: > + publish + --apply + --publish + --include-all + --target-branch ${{ parameters.BranchName }} + --add-commit-details --set-access-level public + DisplayName: 'Rush Publish (Policy: ${{ parameters.VersionPolicyName }})' + NpmAuthToken: $(npmToken) diff --git a/common/config/azure-pipelines/templates/push-and-create-github-pr.yaml b/common/config/azure-pipelines/templates/push-and-create-github-pr.yaml new file mode 100644 index 00000000000..2aa09ac32d6 --- /dev/null +++ b/common/config/azure-pipelines/templates/push-and-create-github-pr.yaml @@ -0,0 +1,119 @@ +parameters: + - name: BranchName + type: string + - name: PrTitle + type: string + - name: PrDescription + type: string + default: '' + - name: TargetBranch + type: string + default: 'main' + - name: HasChangesVariableName + type: string + default: 'HasChanges' + - name: WorkingDirectory + type: string + default: '$(Build.SourcesDirectory)' + +steps: + # Force-push the branch. This is safe because the branch (e.g. "automated/bump-decoupled-deps") + # is exclusively owned by this pipeline and is never manually committed to. + - bash: | + set -e + git push origin ${{ parameters.BranchName }} --force + displayName: 'Push branch' + condition: and(succeeded(), eq(variables['${{ parameters.HasChangesVariableName }}'], 'true')) + workingDirectory: ${{ parameters.WorkingDirectory }} + + - bash: | + set -e + + # ── Resolve the GitHub owner/repo from the git remote URL ── + # Handles both HTTPS (https://github.com/owner/repo.git) and SSH (git@github.com:owner/repo.git) URLs. + REPO_SLUG=$(git remote get-url origin | sed -E 's#.*github\.com[:/](.+/[^.]+)(\.git)?$#\1#') + echo "Repository: ${REPO_SLUG}" + OWNER=$(echo "${REPO_SLUG}" | cut -d/ -f1) + + # ── Extract credentials from the AzDO-managed git config ── + # When "persistCredentials: true" is set on the checkout step, AzDO injects an + # "http..extraheader" git config entry containing an "AUTHORIZATION: basic " + # header for the GitHub service connection. We reuse this for GitHub API calls so that + # no additional secrets or PATs need to be configured. + AUTH_HEADER=$(git config --get-regexp 'http\..*\.extraheader' | head -1 | sed 's/^[^ ]* //') + if [ -z "$AUTH_HEADER" ]; then + echo "##[error]Could not extract authorization header from git config. Ensure persistCredentials is enabled on the checkout step." + exit 1 + fi + + # ── Write credentials to a temporary curl config file ── + # This avoids passing the auth token as a command-line argument, which would be + # visible in process listings (e.g. "ps aux") and could leak into logs. + CURL_CONFIG=$(mktemp) + trap 'rm -f "$CURL_CONFIG"' EXIT + echo "-H \"${AUTH_HEADER}\"" > "$CURL_CONFIG" + echo '-H "Accept: application/vnd.github+json"' >> "$CURL_CONFIG" + + API_BASE="https://api.github.com/repos/${REPO_SLUG}" + + # ── GitHub API helper ── + # Calls the GitHub API using the temporary curl config file for auth headers. + # On success (2xx), prints the response body to stdout. + # On failure, prints the HTTP status and error body to stderr and returns non-zero. + github_api() { + local RESPONSE HTTP_CODE BODY + RESPONSE=$(curl -s -w "\n%{http_code}" -K "$CURL_CONFIG" "$@") + HTTP_CODE=$(echo "$RESPONSE" | tail -n1) + BODY=$(echo "$RESPONSE" | sed '$d') + + if [[ "$HTTP_CODE" -ge 200 && "$HTTP_CODE" -lt 300 ]]; then + echo "$BODY" + else + echo "##[error]GitHub API returned HTTP ${HTTP_CODE}:" >&2 + echo "$BODY" >&2 + return 1 + fi + } + + # ── Check for an existing open PR from this branch ── + # The GitHub "List pull requests" API filters by "head=OWNER:BRANCH" to find any + # open PR already targeting this branch. If one exists, we update it instead of + # creating a duplicate. + EXISTING_PR=$(github_api \ + "${API_BASE}/pulls?head=${OWNER}:${{ parameters.BranchName }}&state=open" \ + | jq '.[0].number // empty') + + if [ -n "$EXISTING_PR" ]; then + # ── Update existing PR ── + # Only the description is updated; the title is left as-is since the branch was + # already force-pushed with the new commits above. + echo "Updating existing PR #${EXISTING_PR}" + github_api -X PATCH \ + "${API_BASE}/pulls/${EXISTING_PR}" \ + -d "$(jq -n --arg body "$PR_BODY" '{body: $body}')" > /dev/null + else + # ── Create new PR ── + # jq --arg safely handles JSON escaping of the title and body, so special + # characters (quotes, newlines, etc.) in the parameter values are safe. + echo "Creating new PR" + github_api -X POST \ + "${API_BASE}/pulls" \ + -d "$(jq -n \ + --arg title "$PR_TITLE" \ + --arg body "$PR_BODY" \ + --arg head "${{ parameters.BranchName }}" \ + --arg base "${{ parameters.TargetBranch }}" \ + '{title: $title, body: $body, head: $head, base: $base}')" > /dev/null + fi + displayName: 'Create or update GitHub PR' + condition: and(succeeded(), eq(variables['${{ parameters.HasChangesVariableName }}'], 'true')) + # Pass PR title and description as environment variables rather than using + # ${{ }} template expansion inside the script. Template expansion would + # substitute the raw string into the Bash source code, which breaks if the + # value contains quotes or other shell metacharacters. Environment variables + # are set by the AzDO agent outside of the shell, so they are safe regardless + # of content. + workingDirectory: ${{ parameters.WorkingDirectory }} + env: + PR_TITLE: ${{ parameters.PrTitle }} + PR_BODY: ${{ parameters.PrDescription }} diff --git a/common/config/azure-pipelines/templates/run-repo-toolbox.yaml b/common/config/azure-pipelines/templates/run-repo-toolbox.yaml new file mode 100644 index 00000000000..7e8786d8866 --- /dev/null +++ b/common/config/azure-pipelines/templates/run-repo-toolbox.yaml @@ -0,0 +1,10 @@ +# Runs repo-toolbox with the specified CLI arguments. +parameters: + - name: Arguments + type: string + - name: DisplayName + type: string + +steps: + - script: 'node repo-scripts/repo-toolbox/lib-commonjs/start.js ${{ parameters.Arguments }}' + displayName: '${{ parameters.DisplayName }}' diff --git a/common/config/rush/nonbrowser-approved-packages.json b/common/config/rush/nonbrowser-approved-packages.json index 3f6756df1a8..4eb4bb89b8d 100644 --- a/common/config/rush/nonbrowser-approved-packages.json +++ b/common/config/rush/nonbrowser-approved-packages.json @@ -198,6 +198,10 @@ "name": "@rushstack/heft-dev-cert-plugin", "allowedCategories": [ "libraries", "tests" ] }, + { + "name": "@rushstack/heft-static-asset-typings-plugin", + "allowedCategories": [ "libraries", "tests" ] + }, { "name": "@rushstack/heft-isolated-typescript-transpile-plugin", "allowedCategories": [ "tests" ] diff --git a/common/config/rush/pnpm-config.json b/common/config/rush/pnpm-config.json index acd69794ec3..c07cc2d18a3 100644 --- a/common/config/rush/pnpm-config.json +++ b/common/config/rush/pnpm-config.json @@ -249,7 +249,10 @@ "@vscode/vsce>cheerio": "1.0.0-rc.12", // `loader-utils@2.0.0` has a vulnerability - "loader-utils@^2.0.0": "2.0.4" + "loader-utils@^2.0.0": "2.0.4", + + // `fast-xml-parser@5.3.3` has a vulnerability + "fast-xml-parser@^5.3.3": "5.3.5" }, /** diff --git a/common/config/rush/rush-plugins.json b/common/config/rush/rush-plugins.json index bee0e46c491..ad93f5d3910 100644 --- a/common/config/rush/rush-plugins.json +++ b/common/config/rush/rush-plugins.json @@ -25,5 +25,10 @@ // */ // "autoinstallerName": "rush-plugins" // } + { + "packageName": "@rushstack/rush-published-versions-json-plugin", + "pluginName": "rush-published-versions-json-plugin", + "autoinstallerName": "plugins" + } ] } diff --git a/common/config/rush/version-policies.json b/common/config/rush/version-policies.json index 1769dd8d19f..464024df7aa 100644 --- a/common/config/rush/version-policies.json +++ b/common/config/rush/version-policies.json @@ -102,7 +102,7 @@ { "policyName": "rush", "definitionName": "lockStepVersion", - "version": "5.169.2", + "version": "5.172.1", "nextBump": "patch", "mainProject": "@microsoft/rush" } diff --git a/common/config/subspaces/build-tests-subspace/pnpm-lock.yaml b/common/config/subspaces/build-tests-subspace/pnpm-lock.yaml index cf41ad60f8c..e727c7f1134 100644 --- a/common/config/subspaces/build-tests-subspace/pnpm-lock.yaml +++ b/common/config/subspaces/build-tests-subspace/pnpm-lock.yaml @@ -10,6 +10,7 @@ overrides: '@types/react@17.0.74>@types/scheduler': 0.16.8 '@vscode/vsce>cheerio': 1.0.0-rc.12 loader-utils@^2.0.0: 2.0.4 + fast-xml-parser@^5.3.3: 5.3.5 packageExtensionsChecksum: sha256-8fXYR9X9qRA57SZJJSADz6C9KMP6QQYYut4DHyehah0= @@ -422,14 +423,6 @@ packages: '@types/node': optional: true - '@isaacs/balanced-match@4.0.1': - resolution: {integrity: sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==} - engines: {node: 20 || >=22} - - '@isaacs/brace-expansion@5.0.1': - resolution: {integrity: sha512-WMz71T1JS624nWj2n2fnYAuPovhv7EUhk69R6i9dsVyzxt5eM3bjwvgk9L+APE1TRscGysAVMANkB0jh0LQZrQ==} - engines: {node: 20 || >=22} - '@isaacs/fs-minipass@4.0.1': resolution: {integrity: sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==} engines: {node: '>=18.0.0'} @@ -578,8 +571,8 @@ packages: resolution: {directory: ../../../libraries/rush-lib, type: directory} engines: {node: '>=5.6.0'} - '@microsoft/tsdoc-config@0.18.0': - resolution: {integrity: sha512-8N/vClYyfOH+l4fLkkr9+myAoR6M7akc8ntBJ4DJdWH2b09uVfr71+LTMpNyG19fNqWDg8KEDZhx5wxuqHyGjw==} + '@microsoft/tsdoc-config@0.18.1': + resolution: {integrity: sha512-9brPoVdfN9k9g0dcWkFeA7IH9bbcttzDJlXvkf8b2OBzd5MueR1V2wkKBL0abn0otvmkHJC6aapBOTJDDeMCZg==} '@microsoft/tsdoc@0.16.0': resolution: {integrity: sha512-xgAyonlVVS+q7Vc7qLW0UrJU7rSFcETRWsqdXZtjzRU8dF+6CkozTK4V4y1LwOX7j8r/vHphjDeMeGI4tNGeGA==} @@ -844,7 +837,7 @@ packages: '@rushstack/heft-api-extractor-plugin@file:../../../heft-plugins/heft-api-extractor-plugin': resolution: {directory: ../../../heft-plugins/heft-api-extractor-plugin, type: directory} peerDependencies: - '@rushstack/heft': 1.2.0 + '@rushstack/heft': 1.2.7 '@rushstack/heft-config-file@file:../../../libraries/heft-config-file': resolution: {directory: ../../../libraries/heft-config-file, type: directory} @@ -853,7 +846,7 @@ packages: '@rushstack/heft-jest-plugin@file:../../../heft-plugins/heft-jest-plugin': resolution: {directory: ../../../heft-plugins/heft-jest-plugin, type: directory} peerDependencies: - '@rushstack/heft': ^1.2.0 + '@rushstack/heft': ^1.2.7 jest-environment-jsdom: ^29.5.0 jest-environment-node: ^29.5.0 peerDependenciesMeta: @@ -865,17 +858,17 @@ packages: '@rushstack/heft-lint-plugin@file:../../../heft-plugins/heft-lint-plugin': resolution: {directory: ../../../heft-plugins/heft-lint-plugin, type: directory} peerDependencies: - '@rushstack/heft': 1.2.0 + '@rushstack/heft': 1.2.7 '@rushstack/heft-node-rig@file:../../../rigs/heft-node-rig': resolution: {directory: ../../../rigs/heft-node-rig, type: directory} peerDependencies: - '@rushstack/heft': ^1.2.0 + '@rushstack/heft': ^1.2.7 '@rushstack/heft-typescript-plugin@file:../../../heft-plugins/heft-typescript-plugin': resolution: {directory: ../../../heft-plugins/heft-typescript-plugin, type: directory} peerDependencies: - '@rushstack/heft': 1.2.0 + '@rushstack/heft': 1.2.7 '@rushstack/heft@file:../../../apps/heft': resolution: {directory: ../../../apps/heft, type: directory} @@ -1042,65 +1035,65 @@ packages: '@types/yargs@17.0.35': resolution: {integrity: sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg==} - '@typescript-eslint/eslint-plugin@8.46.4': - resolution: {integrity: sha512-R48VhmTJqplNyDxCyqqVkFSZIx1qX6PzwqgcXn1olLrzxcSBDlOsbtcnQuQhNtnNiJ4Xe5gREI1foajYaYU2Vg==} + '@typescript-eslint/eslint-plugin@8.56.1': + resolution: {integrity: sha512-Jz9ZztpB37dNC+HU2HI28Bs9QXpzCz+y/twHOwhyrIRdbuVDxSytJNDl6z/aAKlaRIwC7y8wJdkBv7FxYGgi0A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^8.46.4 - eslint: ^8.57.0 || ^9.0.0 + '@typescript-eslint/parser': ^8.56.1 + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/parser@8.46.4': - resolution: {integrity: sha512-tK3GPFWbirvNgsNKto+UmB/cRtn6TZfyw0D6IKrW55n6Vbs7KJoZtI//kpTKzE/DUmmnAFD8/Ca46s7Obs92/w==} + '@typescript-eslint/parser@8.56.1': + resolution: {integrity: sha512-klQbnPAAiGYFyI02+znpBRLyjL4/BrBd0nyWkdC0s/6xFLkXYQ8OoRrSkqacS1ddVxf/LDyODIKbQ5TgKAf/Fg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^8.57.0 || ^9.0.0 + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/project-service@8.46.4': - resolution: {integrity: sha512-nPiRSKuvtTN+no/2N1kt2tUh/HoFzeEgOm9fQ6XQk4/ApGqjx0zFIIaLJ6wooR1HIoozvj2j6vTi/1fgAz7UYQ==} + '@typescript-eslint/project-service@8.56.1': + resolution: {integrity: sha512-TAdqQTzHNNvlVFfR+hu2PDJrURiwKsUvxFn1M0h95BB8ah5jejas08jUWG4dBA68jDMI988IvtfdAI53JzEHOQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/scope-manager@8.46.4': - resolution: {integrity: sha512-tMDbLGXb1wC+McN1M6QeDx7P7c0UWO5z9CXqp7J8E+xGcJuUuevWKxuG8j41FoweS3+L41SkyKKkia16jpX7CA==} + '@typescript-eslint/scope-manager@8.56.1': + resolution: {integrity: sha512-YAi4VDKcIZp0O4tz/haYKhmIDZFEUPOreKbfdAN3SzUDMcPhJ8QI99xQXqX+HoUVq8cs85eRKnD+rne2UAnj2w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/tsconfig-utils@8.46.4': - resolution: {integrity: sha512-+/XqaZPIAk6Cjg7NWgSGe27X4zMGqrFqZ8atJsX3CWxH/jACqWnrWI68h7nHQld0y+k9eTTjb9r+KU4twLoo9A==} + '@typescript-eslint/tsconfig-utils@8.56.1': + resolution: {integrity: sha512-qOtCYzKEeyr3aR9f28mPJqBty7+DBqsdd63eO0yyDwc6vgThj2UjWfJIcsFeSucYydqcuudMOprZ+x1SpF3ZuQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/type-utils@8.46.4': - resolution: {integrity: sha512-V4QC8h3fdT5Wro6vANk6eojqfbv5bpwHuMsBcJUJkqs2z5XnYhJzyz9Y02eUmF9u3PgXEUiOt4w4KHR3P+z0PQ==} + '@typescript-eslint/type-utils@8.56.1': + resolution: {integrity: sha512-yB/7dxi7MgTtGhZdaHCemf7PuwrHMenHjmzgUW1aJpO+bBU43OycnM3Wn+DdvDO/8zzA9HlhaJ0AUGuvri4oGg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^8.57.0 || ^9.0.0 + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/types@8.46.4': - resolution: {integrity: sha512-USjyxm3gQEePdUwJBFjjGNG18xY9A2grDVGuk7/9AkjIF1L+ZrVnwR5VAU5JXtUnBL/Nwt3H31KlRDaksnM7/w==} + '@typescript-eslint/types@8.56.1': + resolution: {integrity: sha512-dbMkdIUkIkchgGDIv7KLUpa0Mda4IYjo4IAMJUZ+3xNoUXxMsk9YtKpTHSChRS85o+H9ftm51gsK1dZReY9CVw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '*' - '@typescript-eslint/typescript-estree@8.46.4': - resolution: {integrity: sha512-7oV2qEOr1d4NWNmpXLR35LvCfOkTNymY9oyW+lUHkmCno7aOmIf/hMaydnJBUTBMRCOGZh8YjkFOc8dadEoNGA==} + '@typescript-eslint/typescript-estree@8.56.1': + resolution: {integrity: sha512-qzUL1qgalIvKWAf9C1HpvBjif+Vm6rcT5wZd4VoMb9+Km3iS3Cv9DY6dMRMDtPnwRAFyAi7YXJpTIEXLvdfPxg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/utils@8.46.4': - resolution: {integrity: sha512-AbSv11fklGXV6T28dp2Me04Uw90R2iJ30g2bgLz529Koehrmkbs1r7paFqr1vPCZi7hHwYxYtxfyQMRC8QaVSg==} + '@typescript-eslint/utils@8.56.1': + resolution: {integrity: sha512-HPAVNIME3tABJ61siYlHzSWCGtOoeP2RTIaHXFMPqjrQKCGB9OgUVdiNgH7TJS2JNIQ5qQ4RsAUDuGaGme/KOA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^8.57.0 || ^9.0.0 + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/visitor-keys@8.46.4': - resolution: {integrity: sha512-/++5CYLQqsO9HFGLI7APrxBJYo+5OCMpViuhV8q5/Qa3o5mMrF//eQHks+PXcsAVaLdn817fMuS7zqoXNNZGaw==} + '@typescript-eslint/visitor-keys@8.56.1': + resolution: {integrity: sha512-KiROIzYdEV85YygXw6BI/Dx4fnBlFQu6Mq4QE4MOH9fFnhohw6wX/OAvDY2/C+ut0I3RSPKenvZJIVYqJNkhEw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@ungap/structured-clone@1.3.0': @@ -1227,15 +1220,12 @@ packages: ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} - ajv@8.12.0: - resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} - - ajv@8.13.0: - resolution: {integrity: sha512-PRA911Blj99jR5RMeTunVbNXMF6Lp4vZXnk5GQjcnUWUTsrXtekg/pnmFFI2u/I36Y/2bITGS30GZCXei6uNkA==} - ajv@8.17.1: resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==} + ajv@8.18.0: + resolution: {integrity: sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==} + ansi-escapes@4.3.2: resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} engines: {node: '>=8'} @@ -1804,8 +1794,8 @@ packages: peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 - eslint-plugin-tsdoc@0.5.0: - resolution: {integrity: sha512-ush8ehCwub2rgE16OIgQPFyj/o0k3T8kL++9IrAI4knsmupNo8gvfO2ERgDHWWgTC5MglbwLVRswU93HyXqNpw==} + eslint-plugin-tsdoc@0.5.1: + resolution: {integrity: sha512-+EFu9XAFzogfoRspo2slmHZZ10amXqLAhmgCG0nbR6RZHNZK2XmsE7gfZ8gBjaO/p6C2DOGn09UpTGOlYy6OdQ==} eslint-scope@5.1.1: resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} @@ -1823,6 +1813,10 @@ packages: resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + eslint-visitor-keys@5.0.1: + resolution: {integrity: sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + eslint@9.25.1: resolution: {integrity: sha512-E6Mtz9oGQWDCpV12319d59n4tx9zOTXSTmc8BLVxBx+G/0RdM5MvEEJLU9c0+aleoePYYgVTOsRblx433qmhWQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -1917,6 +1911,15 @@ packages: fb-watchman@2.0.2: resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} + fdir@6.5.0: + resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} + engines: {node: '>=12.0.0'} + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + figures@3.0.0: resolution: {integrity: sha512-HKri+WoWoUgr83pehn/SIgLOMZ9nAWC6dcGj26RY2R4F50u4+RTUz0RCrUlOV3nKRAICW1UGzyb+kcX2qK1S/g==} engines: {node: '>=8'} @@ -2052,9 +2055,6 @@ packages: graceful-fs@4.2.4: resolution: {integrity: sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==} - graphemer@1.4.0: - resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} - has-bigints@1.1.0: resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==} engines: {node: '>= 0.4'} @@ -2683,13 +2683,9 @@ packages: resolution: {integrity: sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==} engines: {node: '>=8'} - minimatch@10.1.2: - resolution: {integrity: sha512-fu656aJ0n2kcXwsnwnv9g24tkU5uSmOlTjd6WyyaKm2Z+h1qmY6bAjrcaIxF/BslFqbZ8UBtbJi7KgQOZD2PTw==} - engines: {node: 20 || >=22} - - minimatch@10.2.1: - resolution: {integrity: sha512-MClCe8IL5nRRmawL6ib/eT4oLyeKMGCghibcDWK+J0hh0Q8kqSdia6BvbRMVk6mPa6WqUa5uR2oxt6C5jd533A==} - engines: {node: 20 || >=22} + minimatch@10.2.3: + resolution: {integrity: sha512-Rwi3pnapEqirPSbWbrZaa6N3nmqq4Xer/2XooiOKyV3q12ML06f7MOuc5DVH8ONZIFhwIYQ3yzPH4nt7iWHaTg==} + engines: {node: 18 || 20 || >=22} minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} @@ -2698,10 +2694,6 @@ packages: resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} engines: {node: '>=10'} - minimatch@9.0.5: - resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} - engines: {node: '>=16 || 14 >=14.17'} - minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} @@ -3381,6 +3373,10 @@ packages: through@2.3.8: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} + tinyglobby@0.2.15: + resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} + engines: {node: '>=12.0.0'} + tmpl@1.0.5: resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} @@ -3896,12 +3892,6 @@ snapshots: optionalDependencies: '@types/node': 20.17.19 - '@isaacs/balanced-match@4.0.1': {} - - '@isaacs/brace-expansion@5.0.1': - dependencies: - '@isaacs/balanced-match': 4.0.1 - '@isaacs/fs-minipass@4.0.1': dependencies: minipass: 7.1.2 @@ -4167,7 +4157,7 @@ snapshots: '@microsoft/api-extractor-model@file:../../../libraries/api-extractor-model(@types/node@20.17.19)': dependencies: '@microsoft/tsdoc': 0.16.0 - '@microsoft/tsdoc-config': 0.18.0 + '@microsoft/tsdoc-config': 0.18.1 '@rushstack/node-core-library': file:../../../libraries/node-core-library(@types/node@20.17.19) transitivePeerDependencies: - '@types/node' @@ -4176,14 +4166,14 @@ snapshots: dependencies: '@microsoft/api-extractor-model': file:../../../libraries/api-extractor-model(@types/node@20.17.19) '@microsoft/tsdoc': 0.16.0 - '@microsoft/tsdoc-config': 0.18.0 + '@microsoft/tsdoc-config': 0.18.1 '@rushstack/node-core-library': file:../../../libraries/node-core-library(@types/node@20.17.19) '@rushstack/rig-package': file:../../../libraries/rig-package '@rushstack/terminal': file:../../../libraries/terminal(@types/node@20.17.19) '@rushstack/ts-command-line': file:../../../libraries/ts-command-line(@types/node@20.17.19) diff: 8.0.3 lodash: 4.17.23 - minimatch: 10.2.1 + minimatch: 10.2.3 resolve: 1.22.11 semver: 7.5.4 source-map: 0.6.1 @@ -4236,10 +4226,10 @@ snapshots: - '@types/node' - supports-color - '@microsoft/tsdoc-config@0.18.0': + '@microsoft/tsdoc-config@0.18.1': dependencies: '@microsoft/tsdoc': 0.16.0 - ajv: 8.12.0 + ajv: 8.18.0 jju: 1.4.0 resolve: 1.22.11 @@ -4545,14 +4535,14 @@ snapshots: '@rushstack/eslint-plugin': file:../../../eslint/eslint-plugin(eslint@9.25.1)(typescript@4.9.5) '@rushstack/eslint-plugin-packlets': file:../../../eslint/eslint-plugin-packlets(eslint@9.25.1)(typescript@4.9.5) '@rushstack/eslint-plugin-security': file:../../../eslint/eslint-plugin-security(eslint@9.25.1)(typescript@4.9.5) - '@typescript-eslint/eslint-plugin': 8.46.4(@typescript-eslint/parser@8.46.4(eslint@9.25.1)(typescript@4.9.5))(eslint@9.25.1)(typescript@4.9.5) - '@typescript-eslint/parser': 8.46.4(eslint@9.25.1)(typescript@4.9.5) - '@typescript-eslint/typescript-estree': 8.46.4(typescript@4.9.5) - '@typescript-eslint/utils': 8.46.4(eslint@9.25.1)(typescript@4.9.5) + '@typescript-eslint/eslint-plugin': 8.56.1(@typescript-eslint/parser@8.56.1(eslint@9.25.1)(typescript@4.9.5))(eslint@9.25.1)(typescript@4.9.5) + '@typescript-eslint/parser': 8.56.1(eslint@9.25.1)(typescript@4.9.5) + '@typescript-eslint/typescript-estree': 8.56.1(typescript@4.9.5) + '@typescript-eslint/utils': 8.56.1(eslint@9.25.1)(typescript@4.9.5) eslint: 9.25.1 eslint-plugin-promise: 7.2.1(eslint@9.25.1) eslint-plugin-react: 7.37.5(eslint@9.25.1) - eslint-plugin-tsdoc: 0.5.0(eslint@9.25.1)(typescript@4.9.5) + eslint-plugin-tsdoc: 0.5.1(eslint@9.25.1)(typescript@4.9.5) typescript: 4.9.5 transitivePeerDependencies: - supports-color @@ -4563,14 +4553,14 @@ snapshots: '@rushstack/eslint-plugin': file:../../../eslint/eslint-plugin(eslint@9.37.0)(typescript@5.8.3) '@rushstack/eslint-plugin-packlets': file:../../../eslint/eslint-plugin-packlets(eslint@9.37.0)(typescript@5.8.3) '@rushstack/eslint-plugin-security': file:../../../eslint/eslint-plugin-security(eslint@9.37.0)(typescript@5.8.3) - '@typescript-eslint/eslint-plugin': 8.46.4(@typescript-eslint/parser@8.46.4(eslint@9.37.0)(typescript@5.8.3))(eslint@9.37.0)(typescript@5.8.3) - '@typescript-eslint/parser': 8.46.4(eslint@9.37.0)(typescript@5.8.3) - '@typescript-eslint/typescript-estree': 8.46.4(typescript@5.8.3) - '@typescript-eslint/utils': 8.46.4(eslint@9.37.0)(typescript@5.8.3) + '@typescript-eslint/eslint-plugin': 8.56.1(@typescript-eslint/parser@8.56.1(eslint@9.37.0)(typescript@5.8.3))(eslint@9.37.0)(typescript@5.8.3) + '@typescript-eslint/parser': 8.56.1(eslint@9.37.0)(typescript@5.8.3) + '@typescript-eslint/typescript-estree': 8.56.1(typescript@5.8.3) + '@typescript-eslint/utils': 8.56.1(eslint@9.37.0)(typescript@5.8.3) eslint: 9.37.0 eslint-plugin-promise: 7.2.1(eslint@9.37.0) eslint-plugin-react: 7.37.5(eslint@9.37.0) - eslint-plugin-tsdoc: 0.5.0(eslint@9.37.0)(typescript@5.8.3) + eslint-plugin-tsdoc: 0.5.1(eslint@9.37.0)(typescript@5.8.3) typescript: 5.8.3 transitivePeerDependencies: - supports-color @@ -4580,7 +4570,7 @@ snapshots: '@rushstack/eslint-plugin-packlets@file:../../../eslint/eslint-plugin-packlets(eslint@9.25.1)(typescript@4.9.5)': dependencies: '@rushstack/tree-pattern': file:../../../libraries/tree-pattern - '@typescript-eslint/utils': 8.46.4(eslint@9.25.1)(typescript@4.9.5) + '@typescript-eslint/utils': 8.56.1(eslint@9.25.1)(typescript@4.9.5) eslint: 9.25.1 transitivePeerDependencies: - supports-color @@ -4589,7 +4579,7 @@ snapshots: '@rushstack/eslint-plugin-packlets@file:../../../eslint/eslint-plugin-packlets(eslint@9.37.0)(typescript@5.8.3)': dependencies: '@rushstack/tree-pattern': file:../../../libraries/tree-pattern - '@typescript-eslint/utils': 8.46.4(eslint@9.37.0)(typescript@5.8.3) + '@typescript-eslint/utils': 8.56.1(eslint@9.37.0)(typescript@5.8.3) eslint: 9.37.0 transitivePeerDependencies: - supports-color @@ -4598,7 +4588,7 @@ snapshots: '@rushstack/eslint-plugin-security@file:../../../eslint/eslint-plugin-security(eslint@9.25.1)(typescript@4.9.5)': dependencies: '@rushstack/tree-pattern': file:../../../libraries/tree-pattern - '@typescript-eslint/utils': 8.46.4(eslint@9.25.1)(typescript@4.9.5) + '@typescript-eslint/utils': 8.56.1(eslint@9.25.1)(typescript@4.9.5) eslint: 9.25.1 transitivePeerDependencies: - supports-color @@ -4607,7 +4597,7 @@ snapshots: '@rushstack/eslint-plugin-security@file:../../../eslint/eslint-plugin-security(eslint@9.37.0)(typescript@5.8.3)': dependencies: '@rushstack/tree-pattern': file:../../../libraries/tree-pattern - '@typescript-eslint/utils': 8.46.4(eslint@9.37.0)(typescript@5.8.3) + '@typescript-eslint/utils': 8.56.1(eslint@9.37.0)(typescript@5.8.3) eslint: 9.37.0 transitivePeerDependencies: - supports-color @@ -4616,7 +4606,7 @@ snapshots: '@rushstack/eslint-plugin@file:../../../eslint/eslint-plugin(eslint@9.25.1)(typescript@4.9.5)': dependencies: '@rushstack/tree-pattern': file:../../../libraries/tree-pattern - '@typescript-eslint/utils': 8.46.4(eslint@9.25.1)(typescript@4.9.5) + '@typescript-eslint/utils': 8.56.1(eslint@9.25.1)(typescript@4.9.5) eslint: 9.25.1 transitivePeerDependencies: - supports-color @@ -4625,7 +4615,7 @@ snapshots: '@rushstack/eslint-plugin@file:../../../eslint/eslint-plugin(eslint@9.37.0)(typescript@5.8.3)': dependencies: '@rushstack/tree-pattern': file:../../../libraries/tree-pattern - '@typescript-eslint/utils': 8.46.4(eslint@9.37.0)(typescript@5.8.3) + '@typescript-eslint/utils': 8.56.1(eslint@9.37.0)(typescript@5.8.3) eslint: 9.37.0 transitivePeerDependencies: - supports-color @@ -4737,8 +4727,8 @@ snapshots: '@rushstack/node-core-library@file:../../../libraries/node-core-library(@types/node@20.17.19)': dependencies: - ajv: 8.13.0 - ajv-draft-04: 1.0.0(ajv@8.13.0) + ajv: 8.18.0 + ajv-draft-04: 1.0.0(ajv@8.18.0) ajv-formats: 3.0.1 fs-extra: 11.3.3 import-lazy: 4.0.0 @@ -4778,7 +4768,7 @@ snapshots: '@rushstack/ts-command-line': file:../../../libraries/ts-command-line(@types/node@20.17.19) ignore: 5.1.9 jszip: 3.8.0 - minimatch: 10.2.1 + minimatch: 10.2.3 npm-packlist: 5.1.3 semver: 7.5.4 transitivePeerDependencies: @@ -4945,16 +4935,15 @@ snapshots: dependencies: '@types/yargs-parser': 21.0.3 - '@typescript-eslint/eslint-plugin@8.46.4(@typescript-eslint/parser@8.46.4(eslint@9.25.1)(typescript@4.9.5))(eslint@9.25.1)(typescript@4.9.5)': + '@typescript-eslint/eslint-plugin@8.56.1(@typescript-eslint/parser@8.56.1(eslint@9.25.1)(typescript@4.9.5))(eslint@9.25.1)(typescript@4.9.5)': dependencies: '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 8.46.4(eslint@9.25.1)(typescript@4.9.5) - '@typescript-eslint/scope-manager': 8.46.4(typescript@4.9.5) - '@typescript-eslint/type-utils': 8.46.4(eslint@9.25.1)(typescript@4.9.5) - '@typescript-eslint/utils': 8.46.4(eslint@9.25.1)(typescript@4.9.5) - '@typescript-eslint/visitor-keys': 8.46.4(typescript@4.9.5) + '@typescript-eslint/parser': 8.56.1(eslint@9.25.1)(typescript@4.9.5) + '@typescript-eslint/scope-manager': 8.56.1(typescript@4.9.5) + '@typescript-eslint/type-utils': 8.56.1(eslint@9.25.1)(typescript@4.9.5) + '@typescript-eslint/utils': 8.56.1(eslint@9.25.1)(typescript@4.9.5) + '@typescript-eslint/visitor-keys': 8.56.1(typescript@4.9.5) eslint: 9.25.1 - graphemer: 1.4.0 ignore: 7.0.5 natural-compare: 1.4.0 ts-api-utils: 2.4.0(typescript@4.9.5) @@ -4962,16 +4951,15 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/eslint-plugin@8.46.4(@typescript-eslint/parser@8.46.4(eslint@9.37.0)(typescript@5.8.3))(eslint@9.37.0)(typescript@5.8.3)': + '@typescript-eslint/eslint-plugin@8.56.1(@typescript-eslint/parser@8.56.1(eslint@9.37.0)(typescript@5.8.3))(eslint@9.37.0)(typescript@5.8.3)': dependencies: '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 8.46.4(eslint@9.37.0)(typescript@5.8.3) - '@typescript-eslint/scope-manager': 8.46.4(typescript@5.8.3) - '@typescript-eslint/type-utils': 8.46.4(eslint@9.37.0)(typescript@5.8.3) - '@typescript-eslint/utils': 8.46.4(eslint@9.37.0)(typescript@5.8.3) - '@typescript-eslint/visitor-keys': 8.46.4(typescript@5.8.3) + '@typescript-eslint/parser': 8.56.1(eslint@9.37.0)(typescript@5.8.3) + '@typescript-eslint/scope-manager': 8.56.1(typescript@5.8.3) + '@typescript-eslint/type-utils': 8.56.1(eslint@9.37.0)(typescript@5.8.3) + '@typescript-eslint/utils': 8.56.1(eslint@9.37.0)(typescript@5.8.3) + '@typescript-eslint/visitor-keys': 8.56.1(typescript@5.8.3) eslint: 9.37.0 - graphemer: 1.4.0 ignore: 7.0.5 natural-compare: 1.4.0 ts-api-utils: 2.4.0(typescript@5.8.3) @@ -4979,75 +4967,75 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.46.4(eslint@9.25.1)(typescript@4.9.5)': + '@typescript-eslint/parser@8.56.1(eslint@9.25.1)(typescript@4.9.5)': dependencies: - '@typescript-eslint/scope-manager': 8.46.4(typescript@4.9.5) - '@typescript-eslint/types': 8.46.4(typescript@4.9.5) - '@typescript-eslint/typescript-estree': 8.46.4(typescript@4.9.5) - '@typescript-eslint/visitor-keys': 8.46.4(typescript@4.9.5) + '@typescript-eslint/scope-manager': 8.56.1(typescript@4.9.5) + '@typescript-eslint/types': 8.56.1(typescript@4.9.5) + '@typescript-eslint/typescript-estree': 8.56.1(typescript@4.9.5) + '@typescript-eslint/visitor-keys': 8.56.1(typescript@4.9.5) debug: 4.4.3 eslint: 9.25.1 typescript: 4.9.5 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.46.4(eslint@9.37.0)(typescript@5.8.3)': + '@typescript-eslint/parser@8.56.1(eslint@9.37.0)(typescript@5.8.3)': dependencies: - '@typescript-eslint/scope-manager': 8.46.4(typescript@5.8.3) - '@typescript-eslint/types': 8.46.4(typescript@5.8.3) - '@typescript-eslint/typescript-estree': 8.46.4(typescript@5.8.3) - '@typescript-eslint/visitor-keys': 8.46.4(typescript@5.8.3) + '@typescript-eslint/scope-manager': 8.56.1(typescript@5.8.3) + '@typescript-eslint/types': 8.56.1(typescript@5.8.3) + '@typescript-eslint/typescript-estree': 8.56.1(typescript@5.8.3) + '@typescript-eslint/visitor-keys': 8.56.1(typescript@5.8.3) debug: 4.4.3 eslint: 9.37.0 typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.46.4(typescript@4.9.5)': + '@typescript-eslint/project-service@8.56.1(typescript@4.9.5)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.46.4(typescript@4.9.5) - '@typescript-eslint/types': 8.46.4(typescript@4.9.5) + '@typescript-eslint/tsconfig-utils': 8.56.1(typescript@4.9.5) + '@typescript-eslint/types': 8.56.1(typescript@4.9.5) debug: 4.4.3 typescript: 4.9.5 transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.46.4(typescript@5.8.3)': + '@typescript-eslint/project-service@8.56.1(typescript@5.8.3)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.46.4(typescript@5.8.3) - '@typescript-eslint/types': 8.46.4(typescript@5.8.3) + '@typescript-eslint/tsconfig-utils': 8.56.1(typescript@5.8.3) + '@typescript-eslint/types': 8.56.1(typescript@5.8.3) debug: 4.4.3 typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.46.4(typescript@4.9.5)': + '@typescript-eslint/scope-manager@8.56.1(typescript@4.9.5)': dependencies: - '@typescript-eslint/types': 8.46.4(typescript@4.9.5) - '@typescript-eslint/visitor-keys': 8.46.4(typescript@4.9.5) + '@typescript-eslint/types': 8.56.1(typescript@4.9.5) + '@typescript-eslint/visitor-keys': 8.56.1(typescript@4.9.5) transitivePeerDependencies: - typescript - '@typescript-eslint/scope-manager@8.46.4(typescript@5.8.3)': + '@typescript-eslint/scope-manager@8.56.1(typescript@5.8.3)': dependencies: - '@typescript-eslint/types': 8.46.4(typescript@5.8.3) - '@typescript-eslint/visitor-keys': 8.46.4(typescript@5.8.3) + '@typescript-eslint/types': 8.56.1(typescript@5.8.3) + '@typescript-eslint/visitor-keys': 8.56.1(typescript@5.8.3) transitivePeerDependencies: - typescript - '@typescript-eslint/tsconfig-utils@8.46.4(typescript@4.9.5)': + '@typescript-eslint/tsconfig-utils@8.56.1(typescript@4.9.5)': dependencies: typescript: 4.9.5 - '@typescript-eslint/tsconfig-utils@8.46.4(typescript@5.8.3)': + '@typescript-eslint/tsconfig-utils@8.56.1(typescript@5.8.3)': dependencies: typescript: 5.8.3 - '@typescript-eslint/type-utils@8.46.4(eslint@9.25.1)(typescript@4.9.5)': + '@typescript-eslint/type-utils@8.56.1(eslint@9.25.1)(typescript@4.9.5)': dependencies: - '@typescript-eslint/types': 8.46.4(typescript@4.9.5) - '@typescript-eslint/typescript-estree': 8.46.4(typescript@4.9.5) - '@typescript-eslint/utils': 8.46.4(eslint@9.25.1)(typescript@4.9.5) + '@typescript-eslint/types': 8.56.1(typescript@4.9.5) + '@typescript-eslint/typescript-estree': 8.56.1(typescript@4.9.5) + '@typescript-eslint/utils': 8.56.1(eslint@9.25.1)(typescript@4.9.5) debug: 4.4.3 eslint: 9.25.1 ts-api-utils: 2.4.0(typescript@4.9.5) @@ -5055,11 +5043,11 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/type-utils@8.46.4(eslint@9.37.0)(typescript@5.8.3)': + '@typescript-eslint/type-utils@8.56.1(eslint@9.37.0)(typescript@5.8.3)': dependencies: - '@typescript-eslint/types': 8.46.4(typescript@5.8.3) - '@typescript-eslint/typescript-estree': 8.46.4(typescript@5.8.3) - '@typescript-eslint/utils': 8.46.4(eslint@9.37.0)(typescript@5.8.3) + '@typescript-eslint/types': 8.56.1(typescript@5.8.3) + '@typescript-eslint/typescript-estree': 8.56.1(typescript@5.8.3) + '@typescript-eslint/utils': 8.56.1(eslint@9.37.0)(typescript@5.8.3) debug: 4.4.3 eslint: 9.37.0 ts-api-utils: 2.4.0(typescript@5.8.3) @@ -5067,79 +5055,77 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/types@8.46.4(typescript@4.9.5)': + '@typescript-eslint/types@8.56.1(typescript@4.9.5)': dependencies: typescript: 4.9.5 - '@typescript-eslint/types@8.46.4(typescript@5.8.3)': + '@typescript-eslint/types@8.56.1(typescript@5.8.3)': dependencies: typescript: 5.8.3 - '@typescript-eslint/typescript-estree@8.46.4(typescript@4.9.5)': + '@typescript-eslint/typescript-estree@8.56.1(typescript@4.9.5)': dependencies: - '@typescript-eslint/project-service': 8.46.4(typescript@4.9.5) - '@typescript-eslint/tsconfig-utils': 8.46.4(typescript@4.9.5) - '@typescript-eslint/types': 8.46.4(typescript@4.9.5) - '@typescript-eslint/visitor-keys': 8.46.4(typescript@4.9.5) + '@typescript-eslint/project-service': 8.56.1(typescript@4.9.5) + '@typescript-eslint/tsconfig-utils': 8.56.1(typescript@4.9.5) + '@typescript-eslint/types': 8.56.1(typescript@4.9.5) + '@typescript-eslint/visitor-keys': 8.56.1(typescript@4.9.5) debug: 4.4.3 - fast-glob: 3.3.3 - is-glob: 4.0.3 - minimatch: 9.0.5 + minimatch: 10.2.3 semver: 7.7.3 + tinyglobby: 0.2.15 ts-api-utils: 2.4.0(typescript@4.9.5) typescript: 4.9.5 transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@8.46.4(typescript@5.8.3)': + '@typescript-eslint/typescript-estree@8.56.1(typescript@5.8.3)': dependencies: - '@typescript-eslint/project-service': 8.46.4(typescript@5.8.3) - '@typescript-eslint/tsconfig-utils': 8.46.4(typescript@5.8.3) - '@typescript-eslint/types': 8.46.4(typescript@5.8.3) - '@typescript-eslint/visitor-keys': 8.46.4(typescript@5.8.3) + '@typescript-eslint/project-service': 8.56.1(typescript@5.8.3) + '@typescript-eslint/tsconfig-utils': 8.56.1(typescript@5.8.3) + '@typescript-eslint/types': 8.56.1(typescript@5.8.3) + '@typescript-eslint/visitor-keys': 8.56.1(typescript@5.8.3) debug: 4.4.3 - fast-glob: 3.3.3 - is-glob: 4.0.3 - minimatch: 9.0.5 + minimatch: 10.2.3 semver: 7.7.3 + tinyglobby: 0.2.15 ts-api-utils: 2.4.0(typescript@5.8.3) typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.46.4(eslint@9.25.1)(typescript@4.9.5)': + '@typescript-eslint/utils@8.56.1(eslint@9.25.1)(typescript@4.9.5)': dependencies: '@eslint-community/eslint-utils': 4.9.1(eslint@9.25.1) - '@typescript-eslint/scope-manager': 8.46.4(typescript@4.9.5) - '@typescript-eslint/types': 8.46.4(typescript@4.9.5) - '@typescript-eslint/typescript-estree': 8.46.4(typescript@4.9.5) + '@typescript-eslint/scope-manager': 8.56.1(typescript@4.9.5) + '@typescript-eslint/types': 8.56.1(typescript@4.9.5) + '@typescript-eslint/typescript-estree': 8.56.1(typescript@4.9.5) eslint: 9.25.1 typescript: 4.9.5 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.46.4(eslint@9.37.0)(typescript@5.8.3)': + '@typescript-eslint/utils@8.56.1(eslint@9.37.0)(typescript@5.8.3)': dependencies: '@eslint-community/eslint-utils': 4.9.1(eslint@9.37.0) - '@typescript-eslint/scope-manager': 8.46.4(typescript@5.8.3) - '@typescript-eslint/types': 8.46.4(typescript@5.8.3) - '@typescript-eslint/typescript-estree': 8.46.4(typescript@5.8.3) + '@typescript-eslint/scope-manager': 8.56.1(typescript@5.8.3) + '@typescript-eslint/types': 8.56.1(typescript@5.8.3) + '@typescript-eslint/typescript-estree': 8.56.1(typescript@5.8.3) eslint: 9.37.0 typescript: 5.8.3 transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@8.46.4(typescript@4.9.5)': + '@typescript-eslint/visitor-keys@8.56.1(typescript@4.9.5)': dependencies: - '@typescript-eslint/types': 8.46.4(typescript@4.9.5) - eslint-visitor-keys: 4.2.1 + '@typescript-eslint/types': 8.56.1(typescript@4.9.5) + eslint-visitor-keys: 5.0.1 transitivePeerDependencies: - typescript - '@typescript-eslint/visitor-keys@8.46.4(typescript@5.8.3)': + '@typescript-eslint/visitor-keys@8.56.1(typescript@5.8.3)': dependencies: - '@typescript-eslint/types': 8.46.4(typescript@5.8.3) - eslint-visitor-keys: 4.2.1 + '@typescript-eslint/types': 8.56.1(typescript@5.8.3) + eslint-visitor-keys: 5.0.1 transitivePeerDependencies: - typescript @@ -5267,9 +5253,9 @@ snapshots: transitivePeerDependencies: - supports-color - ajv-draft-04@1.0.0(ajv@8.13.0): + ajv-draft-04@1.0.0(ajv@8.18.0): optionalDependencies: - ajv: 8.13.0 + ajv: 8.18.0 ajv-formats@2.1.1: dependencies: @@ -5277,7 +5263,7 @@ snapshots: ajv-formats@3.0.1: dependencies: - ajv: 8.13.0 + ajv: 8.18.0 ajv-keywords@5.1.0(ajv@8.17.1): dependencies: @@ -5291,21 +5277,14 @@ snapshots: json-schema-traverse: 0.4.1 uri-js: 4.4.1 - ajv@8.12.0: - dependencies: - fast-deep-equal: 3.1.3 - json-schema-traverse: 1.0.0 - require-from-string: 2.0.2 - uri-js: 4.4.1 - - ajv@8.13.0: + ajv@8.17.1: dependencies: fast-deep-equal: 3.1.3 + fast-uri: 3.1.0 json-schema-traverse: 1.0.0 require-from-string: 2.0.2 - uri-js: 4.4.1 - ajv@8.17.1: + ajv@8.18.0: dependencies: fast-deep-equal: 3.1.3 fast-uri: 3.1.0 @@ -6027,21 +6006,21 @@ snapshots: string.prototype.matchall: 4.0.12 string.prototype.repeat: 1.0.0 - eslint-plugin-tsdoc@0.5.0(eslint@9.25.1)(typescript@4.9.5): + eslint-plugin-tsdoc@0.5.1(eslint@9.25.1)(typescript@4.9.5): dependencies: '@microsoft/tsdoc': 0.16.0 - '@microsoft/tsdoc-config': 0.18.0 - '@typescript-eslint/utils': 8.46.4(eslint@9.25.1)(typescript@4.9.5) + '@microsoft/tsdoc-config': 0.18.1 + '@typescript-eslint/utils': 8.56.1(eslint@9.25.1)(typescript@4.9.5) transitivePeerDependencies: - eslint - supports-color - typescript - eslint-plugin-tsdoc@0.5.0(eslint@9.37.0)(typescript@5.8.3): + eslint-plugin-tsdoc@0.5.1(eslint@9.37.0)(typescript@5.8.3): dependencies: '@microsoft/tsdoc': 0.16.0 - '@microsoft/tsdoc-config': 0.18.0 - '@typescript-eslint/utils': 8.46.4(eslint@9.37.0)(typescript@5.8.3) + '@microsoft/tsdoc-config': 0.18.1 + '@typescript-eslint/utils': 8.56.1(eslint@9.37.0)(typescript@5.8.3) transitivePeerDependencies: - eslint - supports-color @@ -6061,6 +6040,8 @@ snapshots: eslint-visitor-keys@4.2.1: {} + eslint-visitor-keys@5.0.1: {} + eslint@9.25.1: dependencies: '@eslint-community/eslint-utils': 4.9.1(eslint@9.25.1) @@ -6222,6 +6203,10 @@ snapshots: dependencies: bser: 2.1.1 + fdir@6.5.0(picomatch@4.0.3): + optionalDependencies: + picomatch: 4.0.3 + figures@3.0.0: dependencies: escape-string-regexp: 1.0.5 @@ -6359,8 +6344,6 @@ snapshots: graceful-fs@4.2.4: {} - graphemer@1.4.0: {} - has-bigints@1.1.0: {} has-flag@3.0.0: {} @@ -7148,8 +7131,8 @@ snapshots: '@rushstack/eslint-config': file:../../../eslint/eslint-config(eslint@9.37.0)(typescript@5.8.3) '@rushstack/eslint-patch': file:../../../eslint/eslint-patch '@rushstack/eslint-plugin': file:../../../eslint/eslint-plugin(eslint@9.37.0)(typescript@5.8.3) - '@typescript-eslint/eslint-plugin': 8.46.4(@typescript-eslint/parser@8.46.4(eslint@9.37.0)(typescript@5.8.3))(eslint@9.37.0)(typescript@5.8.3) - '@typescript-eslint/parser': 8.46.4(eslint@9.37.0)(typescript@5.8.3) + '@typescript-eslint/eslint-plugin': 8.56.1(@typescript-eslint/parser@8.56.1(eslint@9.37.0)(typescript@5.8.3))(eslint@9.37.0)(typescript@5.8.3) + '@typescript-eslint/parser': 8.56.1(eslint@9.37.0)(typescript@5.8.3) eslint: 9.37.0 eslint-import-resolver-node: 0.3.9 eslint-plugin-header: 3.1.1(eslint@9.37.0) @@ -7252,11 +7235,7 @@ snapshots: mimic-fn@3.1.0: {} - minimatch@10.1.2: - dependencies: - '@isaacs/brace-expansion': 5.0.1 - - minimatch@10.2.1: + minimatch@10.2.3: dependencies: brace-expansion: 5.0.2 @@ -7268,10 +7247,6 @@ snapshots: dependencies: brace-expansion: 2.0.2 - minimatch@9.0.5: - dependencies: - brace-expansion: 2.0.2 - minimist@1.2.8: {} minipass@3.3.6: @@ -8026,6 +8001,11 @@ snapshots: through@2.3.8: {} + tinyglobby@0.2.15: + dependencies: + fdir: 6.5.0(picomatch@4.0.3) + picomatch: 4.0.3 + tmpl@1.0.5: {} to-regex-range@5.0.1: diff --git a/common/config/subspaces/build-tests-subspace/repo-state.json b/common/config/subspaces/build-tests-subspace/repo-state.json index 63190118101..bd056c2ae6e 100644 --- a/common/config/subspaces/build-tests-subspace/repo-state.json +++ b/common/config/subspaces/build-tests-subspace/repo-state.json @@ -1,6 +1,6 @@ // DO NOT MODIFY THIS FILE MANUALLY BUT DO COMMIT IT. It is generated and used by Rush. { - "pnpmShrinkwrapHash": "970749d264e69bf8ff6a9fb6007b379832c9ac09", + "pnpmShrinkwrapHash": "ae06e3ff5f65c89fd6b5c88cb4bce597f4a5aa18", "preferredVersionsHash": "550b4cee0bef4e97db6c6aad726df5149d20e7d9", - "packageJsonInjectedDependenciesHash": "0124c511e290517bf309935112b2dbab981575bb" + "packageJsonInjectedDependenciesHash": "fa90a0a032a0046e646e8751bbc6d0be86a4dda1" } diff --git a/common/config/subspaces/default/common-versions.json b/common/config/subspaces/default/common-versions.json index a688a847ba3..2027ea92b28 100644 --- a/common/config/subspaces/default/common-versions.json +++ b/common/config/subspaces/default/common-versions.json @@ -35,7 +35,7 @@ "eslint": "~9.37.0", // Updated minimatch and its types to latest major version to resolve ReDoS vulnerability - "minimatch": "10.2.1" + "minimatch": "10.2.3" }, /** diff --git a/common/config/subspaces/default/pnpm-lock.yaml b/common/config/subspaces/default/pnpm-lock.yaml index b992ec346ba..689bd6e5086 100644 --- a/common/config/subspaces/default/pnpm-lock.yaml +++ b/common/config/subspaces/default/pnpm-lock.yaml @@ -10,6 +10,7 @@ overrides: '@types/react@17.0.74>@types/scheduler': 0.16.8 '@vscode/vsce>cheerio': 1.0.0-rc.12 loader-utils@^2.0.0: 2.0.4 + fast-xml-parser@^5.3.3: 5.3.5 packageExtensionsChecksum: sha256-8fXYR9X9qRA57SZJJSADz6C9KMP6QQYYut4DHyehah0= @@ -68,8 +69,8 @@ importers: specifier: ~0.16.0 version: 0.16.0 '@microsoft/tsdoc-config': - specifier: ~0.18.0 - version: 0.18.0 + specifier: ~0.18.1 + version: 0.18.1 '@rushstack/node-core-library': specifier: workspace:* version: link:../../libraries/node-core-library @@ -89,8 +90,8 @@ importers: specifier: ~4.17.23 version: 4.17.23 minimatch: - specifier: 10.2.1 - version: 10.2.1 + specifier: 10.2.3 + version: 10.2.3 resolve: specifier: ~1.22.1 version: 1.22.11 @@ -105,8 +106,8 @@ importers: version: 5.8.2 devDependencies: '@rushstack/heft': - specifier: 1.2.0 - version: 1.2.0(@types/node@22.9.3) + specifier: 1.2.7 + version: 1.2.7(@types/node@22.9.3) '@types/lodash': specifier: 4.17.23 version: 4.17.23 @@ -188,8 +189,8 @@ importers: specifier: workspace:* version: link:../api-extractor '@rushstack/heft': - specifier: 1.2.0 - version: 1.2.0(@types/node@22.9.3) + specifier: 1.2.7 + version: 1.2.7(@types/node@22.9.3) '@types/watchpack': specifier: 2.4.0 version: 2.4.0 @@ -336,9 +337,6 @@ importers: playwright: specifier: 1.56.1 version: 1.56.1 - semver: - specifier: ~7.5.4 - version: 7.5.4 string-argv: specifier: ~0.3.1 version: 0.3.2 @@ -1516,8 +1514,8 @@ importers: specifier: 20.17.19 version: 20.17.19 '@typescript-eslint/parser': - specifier: ~8.46.0 - version: 8.46.4(eslint@8.57.1)(typescript@5.8.2) + specifier: ~8.56.1 + version: 8.56.1(eslint@8.57.1)(typescript@5.8.2) eslint: specifier: ~8.57.0 version: 8.57.1 @@ -1537,8 +1535,8 @@ importers: specifier: 20.17.19 version: 20.17.19 '@typescript-eslint/parser': - specifier: ~8.46.0 - version: 8.46.4(eslint@9.37.0)(typescript@5.8.2) + specifier: ~8.56.1 + version: 8.56.1(eslint@9.37.0)(typescript@5.8.2) eslint: specifier: ~9.37.0 version: 9.37.0 @@ -1567,8 +1565,8 @@ importers: specifier: workspace:* version: link:../../libraries/node-core-library '@typescript-eslint/parser': - specifier: ~8.46.0 - version: 8.46.4(eslint@8.57.1)(typescript@5.8.2) + specifier: ~8.56.1 + version: 8.56.1(eslint@8.57.1)(typescript@5.8.2) eslint: specifier: ~8.57.0 version: 8.57.1 @@ -1594,8 +1592,8 @@ importers: specifier: workspace:* version: link:../../libraries/node-core-library '@typescript-eslint/parser': - specifier: ~8.46.0 - version: 8.46.4(eslint@9.37.0)(typescript@5.8.2) + specifier: ~8.56.1 + version: 8.56.1(eslint@9.37.0)(typescript@5.8.2) eslint: specifier: ~9.37.0 version: 9.37.0 @@ -1624,8 +1622,8 @@ importers: specifier: workspace:* version: link:../../libraries/node-core-library '@typescript-eslint/parser': - specifier: ~8.46.0 - version: 8.46.4(eslint@8.57.1)(typescript@5.8.2) + specifier: ~8.56.1 + version: 8.56.1(eslint@8.57.1)(typescript@5.8.2) eslint: specifier: ~8.57.0 version: 8.57.1 @@ -1950,6 +1948,9 @@ importers: '@rushstack/heft-lint-plugin': specifier: workspace:* version: link:../../heft-plugins/heft-lint-plugin + '@rushstack/heft-static-asset-typings-plugin': + specifier: workspace:* + version: link:../../heft-plugins/heft-static-asset-typings-plugin '@rushstack/heft-typescript-plugin': specifier: workspace:* version: link:../../heft-plugins/heft-typescript-plugin @@ -1995,6 +1996,9 @@ importers: '@rushstack/heft-lint-plugin': specifier: workspace:* version: link:../../heft-plugins/heft-lint-plugin + '@rushstack/heft-static-asset-typings-plugin': + specifier: workspace:* + version: link:../../heft-plugins/heft-static-asset-typings-plugin '@rushstack/heft-typescript-plugin': specifier: workspace:* version: link:../../heft-plugins/heft-typescript-plugin @@ -2104,6 +2108,9 @@ importers: '@rushstack/heft-rspack-plugin': specifier: workspace:* version: link:../../heft-plugins/heft-rspack-plugin + '@rushstack/heft-static-asset-typings-plugin': + specifier: workspace:* + version: link:../../heft-plugins/heft-static-asset-typings-plugin '@rushstack/heft-typescript-plugin': specifier: workspace:* version: link:../../heft-plugins/heft-typescript-plugin @@ -2352,8 +2359,8 @@ importers: specifier: workspace:* version: link:../../apps/api-extractor '@rushstack/eslint-config': - specifier: 4.6.2 - version: 4.6.2(eslint@8.57.1)(typescript@4.9.5) + specifier: 4.6.4 + version: 4.6.4(eslint@8.57.1)(typescript@4.9.5) '@rushstack/eslint-patch': specifier: workspace:* version: link:../../eslint/eslint-patch @@ -2414,6 +2421,9 @@ importers: '@rushstack/heft-lint-plugin': specifier: workspace:* version: link:../../heft-plugins/heft-lint-plugin + '@rushstack/heft-static-asset-typings-plugin': + specifier: workspace:* + version: link:../../heft-plugins/heft-static-asset-typings-plugin '@rushstack/heft-typescript-plugin': specifier: workspace:* version: link:../../heft-plugins/heft-typescript-plugin @@ -2474,6 +2484,9 @@ importers: '@rushstack/heft-lint-plugin': specifier: workspace:* version: link:../../heft-plugins/heft-lint-plugin + '@rushstack/heft-static-asset-typings-plugin': + specifier: workspace:* + version: link:../../heft-plugins/heft-static-asset-typings-plugin '@rushstack/heft-typescript-plugin': specifier: workspace:* version: link:../../heft-plugins/heft-typescript-plugin @@ -2689,6 +2702,12 @@ importers: specifier: workspace:* version: link:../../libraries/node-core-library + ../../../build-tests/package-extractor-test-05: + dependencies: + '@rushstack/node-core-library': + specifier: workspace:* + version: link:../../libraries/node-core-library + ../../../build-tests/run-scenarios-helpers: dependencies: '@microsoft/api-extractor': @@ -2926,17 +2945,17 @@ importers: specifier: workspace:* version: link:../eslint-plugin-security '@typescript-eslint/eslint-plugin': - specifier: ~8.46.0 - version: 8.46.4(@typescript-eslint/parser@8.46.4(eslint@9.37.0)(typescript@5.8.2))(eslint@9.37.0)(typescript@5.8.2) + specifier: ~8.56.1 + version: 8.56.1(@typescript-eslint/parser@8.56.1(eslint@9.37.0)(typescript@5.8.2))(eslint@9.37.0)(typescript@5.8.2) '@typescript-eslint/parser': - specifier: ~8.46.0 - version: 8.46.4(eslint@9.37.0)(typescript@5.8.2) + specifier: ~8.56.1 + version: 8.56.1(eslint@9.37.0)(typescript@5.8.2) '@typescript-eslint/typescript-estree': - specifier: ~8.46.0 - version: 8.46.4(typescript@5.8.2) + specifier: ~8.56.1 + version: 8.56.1(typescript@5.8.2) '@typescript-eslint/utils': - specifier: ~8.46.0 - version: 8.46.4(eslint@9.37.0)(typescript@5.8.2) + specifier: ~8.56.1 + version: 8.56.1(eslint@9.37.0)(typescript@5.8.2) eslint-plugin-promise: specifier: ~7.2.1 version: 7.2.1(eslint@9.37.0) @@ -2944,8 +2963,8 @@ importers: specifier: ~7.37.5 version: 7.37.5(eslint@9.37.0) eslint-plugin-tsdoc: - specifier: ~0.5.0 - version: 0.5.0(eslint@9.37.0)(typescript@5.8.2) + specifier: ~0.5.1 + version: 0.5.1(eslint@9.37.0)(typescript@5.8.2) devDependencies: eslint: specifier: ~9.37.0 @@ -2957,8 +2976,8 @@ importers: ../../../eslint/eslint-patch: devDependencies: '@rushstack/heft': - specifier: 1.2.0 - version: 1.2.0(@types/node@22.9.3) + specifier: 1.2.7 + version: 1.2.7(@types/node@22.9.3) '@types/eslint-8': specifier: npm:@types/eslint@8.56.10 version: '@types/eslint@8.56.10' @@ -2966,8 +2985,8 @@ importers: specifier: npm:@types/eslint@9.6.1 version: '@types/eslint@9.6.1' '@typescript-eslint/types': - specifier: ~8.46.0 - version: 8.46.4(typescript@5.8.2) + specifier: ~8.56.1 + version: 8.56.1(typescript@5.8.2) decoupled-local-node-rig: specifier: workspace:* version: link:../../rigs/decoupled-local-node-rig @@ -2990,21 +3009,21 @@ importers: specifier: workspace:* version: link:../../libraries/tree-pattern '@typescript-eslint/utils': - specifier: ~8.46.0 - version: 8.46.4(eslint@9.37.0)(typescript@5.8.2) + specifier: ~8.56.1 + version: 8.56.1(eslint@9.37.0)(typescript@5.8.2) devDependencies: '@rushstack/heft': - specifier: 1.2.0 - version: 1.2.0(@types/node@22.9.3) + specifier: 1.2.7 + version: 1.2.7(@types/node@22.9.3) '@typescript-eslint/parser': - specifier: ~8.46.0 - version: 8.46.4(eslint@9.37.0)(typescript@5.8.2) + specifier: ~8.56.1 + version: 8.56.1(eslint@9.37.0)(typescript@5.8.2) '@typescript-eslint/rule-tester': - specifier: ~8.46.0 - version: 8.46.4(eslint@9.37.0)(typescript@5.8.2) + specifier: ~8.56.1 + version: 8.56.1(eslint@9.37.0)(typescript@5.8.2) '@typescript-eslint/types': - specifier: ~8.46.0 - version: 8.46.4(typescript@5.8.2) + specifier: ~8.56.1 + version: 8.56.1(typescript@5.8.2) decoupled-local-node-rig: specifier: workspace:* version: link:../../rigs/decoupled-local-node-rig @@ -3021,15 +3040,15 @@ importers: specifier: workspace:* version: link:../../libraries/tree-pattern '@typescript-eslint/utils': - specifier: ~8.46.0 - version: 8.46.4(eslint@9.37.0)(typescript@5.8.2) + specifier: ~8.56.1 + version: 8.56.1(eslint@9.37.0)(typescript@5.8.2) devDependencies: '@rushstack/heft': - specifier: 1.2.0 - version: 1.2.0(@types/node@22.9.3) + specifier: 1.2.7 + version: 1.2.7(@types/node@22.9.3) '@typescript-eslint/parser': - specifier: ~8.46.0 - version: 8.46.4(eslint@9.37.0)(typescript@5.8.2) + specifier: ~8.56.1 + version: 8.56.1(eslint@9.37.0)(typescript@5.8.2) decoupled-local-node-rig: specifier: workspace:* version: link:../../rigs/decoupled-local-node-rig @@ -3046,21 +3065,21 @@ importers: specifier: workspace:* version: link:../../libraries/tree-pattern '@typescript-eslint/utils': - specifier: ~8.46.0 - version: 8.46.4(eslint@9.37.0)(typescript@5.8.2) + specifier: ~8.56.1 + version: 8.56.1(eslint@9.37.0)(typescript@5.8.2) devDependencies: '@rushstack/heft': - specifier: 1.2.0 - version: 1.2.0(@types/node@22.9.3) + specifier: 1.2.7 + version: 1.2.7(@types/node@22.9.3) '@typescript-eslint/parser': - specifier: ~8.46.0 - version: 8.46.4(eslint@9.37.0)(typescript@5.8.2) + specifier: ~8.56.1 + version: 8.56.1(eslint@9.37.0)(typescript@5.8.2) '@typescript-eslint/rule-tester': - specifier: ~8.46.0 - version: 8.46.4(eslint@9.37.0)(typescript@5.8.2) + specifier: ~8.56.1 + version: 8.56.1(eslint@9.37.0)(typescript@5.8.2) '@typescript-eslint/typescript-estree': - specifier: ~8.46.0 - version: 8.46.4(typescript@5.8.2) + specifier: ~8.56.1 + version: 8.56.1(typescript@5.8.2) decoupled-local-node-rig: specifier: workspace:* version: link:../../rigs/decoupled-local-node-rig @@ -3083,11 +3102,11 @@ importers: specifier: workspace:* version: link:../eslint-plugin '@typescript-eslint/eslint-plugin': - specifier: ~8.46.0 - version: 8.46.4(@typescript-eslint/parser@8.46.4(eslint@9.37.0)(typescript@5.8.2))(eslint@9.37.0)(typescript@5.8.2) + specifier: ~8.56.1 + version: 8.56.1(@typescript-eslint/parser@8.56.1(eslint@9.37.0)(typescript@5.8.2))(eslint@9.37.0)(typescript@5.8.2) '@typescript-eslint/parser': - specifier: ~8.46.0 - version: 8.46.4(eslint@9.37.0)(typescript@5.8.2) + specifier: ~8.56.1 + version: 8.56.1(eslint@9.37.0)(typescript@5.8.2) eslint-import-resolver-node: specifier: 0.3.9 version: 0.3.9 @@ -3108,8 +3127,8 @@ importers: version: 5.2.0(eslint@9.37.0) devDependencies: '@rushstack/heft': - specifier: 1.2.0 - version: 1.2.0(@types/node@22.9.3) + specifier: 1.2.7 + version: 1.2.7(@types/node@22.9.3) decoupled-local-node-rig: specifier: workspace:* version: link:../../rigs/decoupled-local-node-rig @@ -3467,6 +3486,31 @@ importers: specifier: workspace:* version: link:../../rigs/local-node-rig + ../../../heft-plugins/heft-static-asset-typings-plugin: + dependencies: + '@rushstack/heft-config-file': + specifier: workspace:* + version: link:../../libraries/heft-config-file + '@rushstack/node-core-library': + specifier: workspace:* + version: link:../../libraries/node-core-library + '@rushstack/terminal': + specifier: workspace:* + version: link:../../libraries/terminal + '@rushstack/typings-generator': + specifier: workspace:* + version: link:../../libraries/typings-generator + devDependencies: + '@rushstack/heft': + specifier: workspace:* + version: link:../../apps/heft + eslint: + specifier: ~9.37.0 + version: 9.37.0 + local-node-rig: + specifier: workspace:* + version: link:../../rigs/local-node-rig + ../../../heft-plugins/heft-storybook-plugin: dependencies: '@rushstack/node-core-library': @@ -3643,15 +3687,15 @@ importers: specifier: ~0.16.0 version: 0.16.0 '@microsoft/tsdoc-config': - specifier: ~0.18.0 - version: 0.18.0 + specifier: ~0.18.1 + version: 0.18.1 '@rushstack/node-core-library': specifier: workspace:* version: link:../node-core-library devDependencies: '@rushstack/heft': - specifier: 1.2.0 - version: 1.2.0(@types/node@22.9.3) + specifier: 1.2.7 + version: 1.2.7(@types/node@22.9.3) decoupled-local-node-rig: specifier: workspace:* version: link:../../rigs/decoupled-local-node-rig @@ -3719,8 +3763,8 @@ importers: version: 10.3.0 devDependencies: '@rushstack/heft': - specifier: 1.2.0 - version: 1.2.0(@types/node@22.9.3) + specifier: 1.2.7 + version: 1.2.7(@types/node@22.9.3) '@types/ungap__structured-clone': specifier: ~1.2.0 version: 1.2.0 @@ -3792,8 +3836,8 @@ importers: specifier: workspace:* version: link:../worker-pool serialize-javascript: - specifier: 6.0.2 - version: 6.0.2 + specifier: 7.0.3 + version: 7.0.3 source-map: specifier: ~0.7.3 version: 0.7.6 @@ -3808,8 +3852,8 @@ importers: specifier: 20.17.19 version: 20.17.19 '@types/serialize-javascript': - specifier: 5.0.2 - version: 5.0.2 + specifier: 5.0.4 + version: 5.0.4 eslint: specifier: ~9.37.0 version: 9.37.0 @@ -3820,14 +3864,14 @@ importers: ../../../libraries/node-core-library: dependencies: ajv: - specifier: ~8.13.0 - version: 8.13.0 + specifier: ~8.18.0 + version: 8.18.0 ajv-draft-04: specifier: ~1.0.0 - version: 1.0.0(ajv@8.13.0) + version: 1.0.0(ajv@8.18.0) ajv-formats: specifier: ~3.0.1 - version: 3.0.1(ajv@8.13.0) + version: 3.0.1(ajv@8.18.0) fs-extra: specifier: ~11.3.0 version: 11.3.3 @@ -3845,8 +3889,8 @@ importers: version: 7.5.4 devDependencies: '@rushstack/heft': - specifier: 1.2.0 - version: 1.2.0(@types/node@22.9.3) + specifier: 1.2.7 + version: 1.2.7(@types/node@22.9.3) '@rushstack/problem-matcher': specifier: workspace:* version: link:../problem-matcher @@ -3910,8 +3954,8 @@ importers: version: link:../terminal devDependencies: '@rushstack/heft': - specifier: 1.2.0 - version: 1.2.0(@types/node@22.9.3) + specifier: 1.2.7 + version: 1.2.7(@types/node@22.9.3) decoupled-local-node-rig: specifier: workspace:* version: link:../../rigs/decoupled-local-node-rig @@ -3956,8 +4000,8 @@ importers: specifier: ~3.8.0 version: 3.8.0 minimatch: - specifier: 10.2.1 - version: 10.2.1 + specifier: 10.2.3 + version: 10.2.3 npm-packlist: specifier: ~5.1.3 version: 5.1.3 @@ -3996,8 +4040,8 @@ importers: ../../../libraries/problem-matcher: devDependencies: '@rushstack/heft': - specifier: 1.2.0 - version: 1.2.0(@types/node@22.9.3) + specifier: 1.2.7 + version: 1.2.7(@types/node@22.9.3) decoupled-local-node-rig: specifier: workspace:* version: link:../../rigs/decoupled-local-node-rig @@ -4015,14 +4059,14 @@ importers: version: 3.1.1 devDependencies: '@rushstack/heft': - specifier: 1.2.0 - version: 1.2.0(@types/node@22.9.3) + specifier: 1.2.7 + version: 1.2.7(@types/node@22.9.3) '@types/resolve': specifier: 1.20.2 version: 1.20.2 ajv: - specifier: ~8.13.0 - version: 8.13.0 + specifier: ~8.18.0 + version: 8.18.0 decoupled-local-node-rig: specifier: workspace:* version: link:../../rigs/decoupled-local-node-rig @@ -4411,8 +4455,8 @@ importers: version: 8.1.1 devDependencies: '@rushstack/heft': - specifier: 1.2.0 - version: 1.2.0(@types/node@22.9.3) + specifier: 1.2.7 + version: 1.2.7(@types/node@22.9.3) '@types/supports-color': specifier: 8.1.3 version: 8.1.3 @@ -4426,8 +4470,8 @@ importers: ../../../libraries/tree-pattern: devDependencies: '@rushstack/heft': - specifier: 1.2.0 - version: 1.2.0(@types/node@22.9.3) + specifier: 1.2.7 + version: 1.2.7(@types/node@22.9.3) decoupled-local-node-rig: specifier: workspace:* version: link:../../rigs/decoupled-local-node-rig @@ -4451,8 +4495,8 @@ importers: version: 0.3.2 devDependencies: '@rushstack/heft': - specifier: 1.2.0 - version: 1.2.0(@types/node@22.9.3) + specifier: 1.2.7 + version: 1.2.7(@types/node@22.9.3) '@rushstack/node-core-library': specifier: workspace:* version: link:../node-core-library @@ -4571,23 +4615,23 @@ importers: ../../../rigs/decoupled-local-node-rig: dependencies: '@microsoft/api-extractor': - specifier: 7.57.0 - version: 7.57.0(@types/node@20.17.19) + specifier: 7.57.7 + version: 7.57.7(@types/node@20.17.19) '@rushstack/eslint-config': - specifier: 4.6.2 - version: 4.6.2(eslint@9.37.0)(typescript@5.8.2) + specifier: 4.6.4 + version: 4.6.4(eslint@9.37.0)(typescript@5.8.2) '@rushstack/eslint-patch': - specifier: 1.16.0 - version: 1.16.0 + specifier: 1.16.1 + version: 1.16.1 '@rushstack/eslint-plugin': - specifier: 0.23.0 - version: 0.23.0(eslint@9.37.0)(typescript@5.8.2) + specifier: 0.23.2 + version: 0.23.2(eslint@9.37.0)(typescript@5.8.2) '@rushstack/heft': - specifier: 1.2.0 - version: 1.2.0(@types/node@20.17.19) + specifier: 1.2.7 + version: 1.2.7(@types/node@20.17.19) '@rushstack/heft-node-rig': - specifier: 2.11.20 - version: 2.11.20(@rushstack/heft@1.2.0(@types/node@20.17.19))(@types/node@20.17.19)(jest-environment-jsdom@29.5.0) + specifier: 2.11.27 + version: 2.11.27(@rushstack/heft@1.2.7(@types/node@20.17.19))(@types/node@20.17.19)(jest-environment-jsdom@29.5.0) '@types/heft-jest': specifier: 1.0.1 version: 1.0.1 @@ -4595,11 +4639,11 @@ importers: specifier: 20.17.19 version: 20.17.19 '@typescript-eslint/eslint-plugin': - specifier: ~8.46.0 - version: 8.46.4(@typescript-eslint/parser@8.46.4(eslint@9.37.0)(typescript@5.8.2))(eslint@9.37.0)(typescript@5.8.2) + specifier: ~8.56.1 + version: 8.56.1(@typescript-eslint/parser@8.56.1(eslint@9.37.0)(typescript@5.8.2))(eslint@9.37.0)(typescript@5.8.2) '@typescript-eslint/parser': - specifier: ~8.46.0 - version: 8.46.4(eslint@9.37.0)(typescript@5.8.2) + specifier: ~8.56.1 + version: 8.56.1(eslint@9.37.0)(typescript@5.8.2) eslint: specifier: ~9.37.0 version: 9.37.0 @@ -4719,6 +4763,9 @@ importers: '@rushstack/heft-sass-plugin': specifier: workspace:* version: link:../../heft-plugins/heft-sass-plugin + '@rushstack/heft-static-asset-typings-plugin': + specifier: workspace:* + version: link:../../heft-plugins/heft-static-asset-typings-plugin '@rushstack/heft-typescript-plugin': specifier: workspace:* version: link:../../heft-plugins/heft-typescript-plugin @@ -5049,6 +5096,31 @@ importers: specifier: workspace:* version: link:../../rigs/local-node-rig + ../../../rush-plugins/rush-published-versions-json-plugin: + dependencies: + '@rushstack/node-core-library': + specifier: workspace:* + version: link:../../libraries/node-core-library + '@rushstack/rush-sdk': + specifier: workspace:* + version: link:../../libraries/rush-sdk + '@rushstack/terminal': + specifier: workspace:* + version: link:../../libraries/terminal + devDependencies: + '@rushstack/heft': + specifier: workspace:* + version: link:../../apps/heft + '@rushstack/ts-command-line': + specifier: workspace:* + version: link:../../libraries/ts-command-line + eslint: + specifier: ~9.37.0 + version: 9.37.0 + local-node-rig: + specifier: workspace:* + version: link:../../rigs/local-node-rig + ../../../rush-plugins/rush-redis-cobuild-plugin: dependencies: '@redis/client': @@ -5608,8 +5680,8 @@ importers: specifier: 1.4.2 version: 1.4.2 minimatch: - specifier: 10.2.1 - version: 10.2.1 + specifier: 10.2.3 + version: 10.2.3 devDependencies: '@rushstack/heft': specifier: workspace:* @@ -7953,14 +8025,6 @@ packages: '@types/node': optional: true - '@isaacs/balanced-match@4.0.1': - resolution: {integrity: sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==} - engines: {node: 20 || >=22} - - '@isaacs/brace-expansion@5.0.1': - resolution: {integrity: sha512-WMz71T1JS624nWj2n2fnYAuPovhv7EUhk69R6i9dsVyzxt5eM3bjwvgk9L+APE1TRscGysAVMANkB0jh0LQZrQ==} - engines: {node: 20 || >=22} - '@isaacs/cliui@8.0.2': resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} engines: {node: '>=12'} @@ -8252,11 +8316,11 @@ packages: '@mdx-js/util@1.6.22': resolution: {integrity: sha512-H1rQc1ZOHANWBvPcW+JpGwr+juXSxM8Q8YCkm3GhZd8REu1fHR3z99CErO1p9pkcfcxZnMdIZdIsXkOHY0NilA==} - '@microsoft/api-extractor-model@7.33.0': - resolution: {integrity: sha512-cMrvErE9yJz8aImpRztUfbO085WRSI4nsvMQ+VNGgHxiQO7s5LAXrt+B35RUghIsn0JdNdqIzusXXtKgSnXh7Q==} + '@microsoft/api-extractor-model@7.33.4': + resolution: {integrity: sha512-u1LTaNTikZAQ9uK6KG1Ms7nvNedsnODnspq/gH2dcyETWvH4hVNGNDvRAEutH66kAmxA4/necElqGNs1FggC8w==} - '@microsoft/api-extractor@7.57.0': - resolution: {integrity: sha512-ZWflRQNLRBgG4DPRDUB6DQR2AL2Z+gYU/1PIwFKna8c8c9IGF4h0FHtb73MbV0LfufqfzDVnpaLPXmOtDAeUaA==} + '@microsoft/api-extractor@7.57.7': + resolution: {integrity: sha512-kmnmVs32MFWbV5X6BInC1/TfCs7y1ugwxv1xHsAIj/DyUfoe7vtO0alRUgbQa57+yRGHBBjlNcEk33SCAt5/dA==} hasBin: true '@microsoft/load-themed-styles@1.10.295': @@ -8269,8 +8333,8 @@ packages: '@microsoft/tsdoc-config@0.17.0': resolution: {integrity: sha512-v/EYRXnCAIHxOHW+Plb6OWuUoMotxTN0GLatnpOb1xq0KuTNw/WI3pamJx/UbsoJP5k9MCw1QxvvhPcF9pH3Zg==} - '@microsoft/tsdoc-config@0.18.0': - resolution: {integrity: sha512-8N/vClYyfOH+l4fLkkr9+myAoR6M7akc8ntBJ4DJdWH2b09uVfr71+LTMpNyG19fNqWDg8KEDZhx5wxuqHyGjw==} + '@microsoft/tsdoc-config@0.18.1': + resolution: {integrity: sha512-9brPoVdfN9k9g0dcWkFeA7IH9bbcttzDJlXvkf8b2OBzd5MueR1V2wkKBL0abn0otvmkHJC6aapBOTJDDeMCZg==} '@microsoft/tsdoc@0.15.0': resolution: {integrity: sha512-HZpPoABogPvjeJOdzCOSJsXeL/SMCBgBZMVC3X3d7YYp2gf31MfxhUoYUNwf1ERPJOnQc0wkFn9trqI6ZEdZuA==} @@ -8958,8 +9022,8 @@ packages: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 typescript: '>=4.7.0' - '@rushstack/eslint-config@4.6.2': - resolution: {integrity: sha512-8jWiDEOQFDckbFcwnkQS3N6KG6mfK4kv2DiQDLXEt8gerILTLZW/4Ow6OmPiXDyoMFxsvHam/uUBpaeo61UV7w==} + '@rushstack/eslint-config@4.6.4': + resolution: {integrity: sha512-nMd5JxzOqkICanNf2He3xebU4txXT5IiQ6ovMeJt5Ou72J+DZzor2kfVGKfQi6uBR2fyhZGYBOahwxnduH2bbA==} peerDependencies: eslint: ^8.57.0 || ^9.25.1 typescript: '>=4.7.0' @@ -8967,11 +9031,11 @@ packages: '@rushstack/eslint-patch@1.10.4': resolution: {integrity: sha512-WJgX9nzTqknM393q1QJDJmoW28kUfEnybeTfVNcNAPnIx210RXm2DiXiHzfNPJNIUUb1tJnz/l4QGtJ30PgWmA==} - '@rushstack/eslint-patch@1.16.0': - resolution: {integrity: sha512-TMAArRcXZE6ckNI98mXuWv24yXs3bxXT0yGnySY9fpN7y+VkNcyZPiXeV7Dyr3cNdes9JxjM6KzbsZ+JMpVNNA==} + '@rushstack/eslint-patch@1.16.1': + resolution: {integrity: sha512-TvZbIpeKqGQQ7X0zSCvPH9riMSFQFSggnfBjFZ1mEoILW+UuXCKwOoPcgjMwiUtRqFZ8jWhPJc4um14vC6I4ag==} - '@rushstack/eslint-plugin-packlets@0.15.0': - resolution: {integrity: sha512-E71+B3OnurEGVIpHKzhrn6ELvVV9ZDQM9M7fqg32W12ZG7StQ2XVlwtB1T7X4kksk1UQ5XtkA7u5NlP5l+ijpw==} + '@rushstack/eslint-plugin-packlets@0.15.2': + resolution: {integrity: sha512-mSW24B5Q1xGm/ANNlzZ+hPIqz8A1JCNeJwHOWOh7dcf43RxcRPqguhllE/7LhwIaly3IH43lUWFBwcamSvJzgw==} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0 @@ -8980,8 +9044,8 @@ packages: peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - '@rushstack/eslint-plugin-security@0.14.0': - resolution: {integrity: sha512-thCL1gZsPD86f1qNIpo7CFG95NTTif8f6x6Q4c/7QnZtF/QpyRngSEZAtBYBDD7Nc8x4kJ1BC4TJNt6wRzS2tg==} + '@rushstack/eslint-plugin-security@0.14.2': + resolution: {integrity: sha512-9iQwRJyQuMr+Qqj8N56/bqPZtBftuU0i0KEpV/K1dOnyl7IO7yPx4spLP3Hkjej7m6Qa0xnScGDRTvlg7j21Kg==} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0 @@ -8995,24 +9059,24 @@ packages: peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - '@rushstack/eslint-plugin@0.23.0': - resolution: {integrity: sha512-sL1rAf6yPYCe9TPNgaeQZ35HCZeKFdKSh98aRwhJTPHv0mpw9I52oXWe2Q0gCA2nFtOYDXEOdhjjT9U1TZJm8Q==} + '@rushstack/eslint-plugin@0.23.2': + resolution: {integrity: sha512-yMvd/jW/gUZ2IdXaOD5mr+DBU0UUjNgsZ/aDrFfzijIPvqdjtMich0gR68VBxvZjciUDQX0Zm4rfezvkxv/bRQ==} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0 - '@rushstack/heft-api-extractor-plugin@1.3.0': - resolution: {integrity: sha512-xuJ1fTEweukUQxGesppwb/VIHdVCc9RQR75Wop/a7kw405a5ULKc51wwKT/GBuiejJ3QzI4K/WX2QptWwqC7JQ==} + '@rushstack/heft-api-extractor-plugin@1.3.7': + resolution: {integrity: sha512-1XOJVF40o8gY3dYxdZXYAcyh3G1uKosdfKSM+KGD+bsVk/yosOvUu71Y4CSkVhCgnjf3n1Hmg9G1pwikwJVcSQ==} peerDependencies: - '@rushstack/heft': 1.2.0 + '@rushstack/heft': 1.2.7 - '@rushstack/heft-config-file@0.20.0': - resolution: {integrity: sha512-9J4/1PIu6+xzWs0mVUO0NAj6UhcFhB3MUkOU7dRpH2eITXEhbS3Kkbdywc/NjgGKSHYqmi92ua20BqWekaWuxQ==} + '@rushstack/heft-config-file@0.20.3': + resolution: {integrity: sha512-kVIBNxwtgV4wPQrqk4PCcaU3DKkmDmiULkELmb7RmhYKAYqR6XyA9dnyXdu/HgmF3zPn8EnuBT8/RhlKmbF8Zg==} engines: {node: '>=10.13.0'} - '@rushstack/heft-jest-plugin@1.2.0': - resolution: {integrity: sha512-x/QNHSWq0USbyuhhSNZ1WyPKeXv10mkv2vpOWCyMrmCE81CsTH1S5wkBYk3eBTBpbRmz/KmU0p66k/m3/YynOA==} + '@rushstack/heft-jest-plugin@1.2.7': + resolution: {integrity: sha512-Jal7D/a8xycCPBB+7pLWhggLCpZEzi1lBxZKmt3JTiJnZVcebHxubDnCaL/4qrJhVcyYZ/PK90B8/pG9dn9Tcg==} peerDependencies: - '@rushstack/heft': ^1.2.0 + '@rushstack/heft': ^1.2.7 jest-environment-jsdom: ^29.5.0 jest-environment-node: ^29.5.0 peerDependenciesMeta: @@ -9021,23 +9085,23 @@ packages: jest-environment-node: optional: true - '@rushstack/heft-lint-plugin@1.2.0': - resolution: {integrity: sha512-Z7AxUTUHBH+MNmNAdBGTn7TawMLP5tU50hi+E9g/s0WaoHm6TD7CqrI1kPwELGZl4fnqPQHQsgkXC4P94FDDWQ==} + '@rushstack/heft-lint-plugin@1.2.7': + resolution: {integrity: sha512-4Gb6SMB0CXRdiGr8H1ARfd3fB/zTDBh2n34DYzNH+k+PaQuDjKLDmw4TdM/7j3X+d/0okujmrE1VlI59XgC3yg==} peerDependencies: - '@rushstack/heft': 1.2.0 + '@rushstack/heft': 1.2.7 - '@rushstack/heft-node-rig@2.11.20': - resolution: {integrity: sha512-QTwVsAOkibWBLpFo6C6TeRxFiRIKcpCkeSMjmWgfccBqpnCWbxcTImiS2lGQIjJeLwyuK7XNogFDt0BeoMCOVg==} + '@rushstack/heft-node-rig@2.11.27': + resolution: {integrity: sha512-cE4SSJPgA+izofqu/gyHXgYtnqec74vuT3NYXGOBnyUdmCGabalesgFg9fomkjP8uqx6AdBZUr73+STHmc7XIQ==} peerDependencies: - '@rushstack/heft': ^1.2.0 + '@rushstack/heft': ^1.2.7 - '@rushstack/heft-typescript-plugin@1.2.0': - resolution: {integrity: sha512-rn03eJTONnepbRUm4lGE9rq1aniuLJQHGb4FjgOnNQpX4xENw4WbsDFlW9eWyk5UZhqvA3qXyjcO2VP4DMRFXA==} + '@rushstack/heft-typescript-plugin@1.3.2': + resolution: {integrity: sha512-oP8SLVW6zrlyaPUg7q01c0CLE/MuIA72E7BZDZX4OugbIBLhHTDOUAyXMnp0xFYX0bebD/vJbRLTWvRMpvuWyw==} peerDependencies: - '@rushstack/heft': 1.2.0 + '@rushstack/heft': 1.2.7 - '@rushstack/heft@1.2.0': - resolution: {integrity: sha512-jchfouKVt2caU4aQWR0wEXRRNnRu4YnMXYeD0UmdIWAtWxepMSCWA3fO3xgPdyOIp9EFfaWwAy7tUqbtNkelIg==} + '@rushstack/heft@1.2.7': + resolution: {integrity: sha512-ifomxye4nTr8fbEiABG+g3ybyke7Ayq029UAU4Y6ey3Tt07Gcxai1RtfHtabZ5kztK28QSGbbJM8rdkHO1euFQ==} engines: {node: '>=10.13.0'} hasBin: true @@ -9049,32 +9113,32 @@ packages: '@types/node': optional: true - '@rushstack/node-core-library@5.20.0': - resolution: {integrity: sha512-yix/WFzuMPvbECgQjdzjDqynv7YQnrcGUfy56WU7QWAVcoN4uB1wCwpt3heo/ghHp2nINrRecPtVS7sQmqY+OA==} + '@rushstack/node-core-library@5.20.3': + resolution: {integrity: sha512-95JgEPq2k7tHxhF9/OJnnyHDXfC9cLhhta0An/6MlkDsX2A6dTzDrTUG18vx4vjc280V0fi0xDH9iQczpSuWsw==} peerDependencies: '@types/node': '*' peerDependenciesMeta: '@types/node': optional: true - '@rushstack/operation-graph@0.6.0': - resolution: {integrity: sha512-rUYk1pq1O/rGZ2nFOm2WwPL9jWX689bejyTjQgUGvyF2pPgEDDkAdc7jTPaj3ULgzW2yUF0g2+KvgaunN+8bHQ==} + '@rushstack/operation-graph@0.6.3': + resolution: {integrity: sha512-HuC0N33aZ82p/eLMKpme8fzhY+L3JMejbRc7fUcli9VT5sXrgv0VOQBqWf6XeXnzoyhCSZCqrKlGPJAAb/R5Rg==} peerDependencies: '@types/node': '*' peerDependenciesMeta: '@types/node': optional: true - '@rushstack/problem-matcher@0.2.0': - resolution: {integrity: sha512-IHV2qdypwqEatMg8Ka9e/q26pu2tOyhG3fuJZtrrPA3O++ctW8y1p6oCeeeIV8v1/kJ3xJPtg1xdZshyNZb8sg==} + '@rushstack/problem-matcher@0.2.1': + resolution: {integrity: sha512-gulfhBs6n+I5b7DvjKRfhMGyUejtSgOHTclF/eONr8hcgF1APEDjhxIsfdUYYMzC3rvLwGluqLjbwCFZ8nxrog==} peerDependencies: '@types/node': '*' peerDependenciesMeta: '@types/node': optional: true - '@rushstack/rig-package@0.7.0': - resolution: {integrity: sha512-iPHSnI/DtLPv2lydP9WWZczhD9knVCJWwLle1H01IYnvYNkhZX8rbnuUH+HEwcANd3YlLjCpXydWN3LMoLOxPw==} + '@rushstack/rig-package@0.7.2': + resolution: {integrity: sha512-9XbFWuqMYcHUso4mnETfhGVUSaADBRj6HUAAEYk50nMPn8WRICmBuCphycQGNB3duIR6EEZX3Xj3SYc2XiP+9A==} '@rushstack/set-webpack-public-path-plugin@4.1.16': resolution: {integrity: sha512-9YD76OHSYr3pqJwc3wcxIFL1kSxPUyw3xThaZrJDBumMRdAEx7Wj3J0xkPtri5BS06yi49fIC1Di75CxeworzA==} @@ -9084,8 +9148,8 @@ packages: '@types/webpack': optional: true - '@rushstack/terminal@0.22.0': - resolution: {integrity: sha512-z5O2g5dws5iFNe3hAutAKLPmQARJs/VEWMxdpyew+xm0ohw1qh1G6+wY0nUzFPrLiKQjU+8KNA11VAEMb46ETg==} + '@rushstack/terminal@0.22.3': + resolution: {integrity: sha512-gHC9pIMrUPzAbBiI4VZMU7Q+rsCzb8hJl36lFIulIzoceKotyKL3Rd76AZ2CryCTKEg+0bnTj406HE5YY5OQvw==} peerDependencies: '@types/node': '*' peerDependenciesMeta: @@ -9095,11 +9159,11 @@ packages: '@rushstack/tree-pattern@0.3.4': resolution: {integrity: sha512-9uROnkiHWsQqxW6HirXABfTRlgzhYp6tevbYIGkwKQ09VaayUBkvFvt/urDKMwlo+tGU0iQQLuVige6c48wTgw==} - '@rushstack/tree-pattern@0.4.0': - resolution: {integrity: sha512-2US1h3CfgIjISjPqpczyY4VKfMJfocQZAgzYRWQvKLJQ8VjB/sg/xar5/B2YvfUGa/CcMH8NgnEj9E9SxDog7Q==} + '@rushstack/tree-pattern@0.4.1': + resolution: {integrity: sha512-eFuLBUWUfWQ42u5i25qO1VpTOg6nW2PXaLVwpmjm5tHpPREht0k0L2jsYht8iVvQ732odEeVnkXVcf2nIwbGxA==} - '@rushstack/ts-command-line@5.3.0': - resolution: {integrity: sha512-4hneaVxA5zPC8cwUGZtdvCUzGbW8A+b+qrBK3hYs/xO7TyWkgAMKxq/6FJY91fPG8awgmJ+s1w8GuqNXgxsTyw==} + '@rushstack/ts-command-line@5.3.3': + resolution: {integrity: sha512-c+ltdcvC7ym+10lhwR/vWiOhsrm/bP3By2VsFcs5qTKv+6tTmxgbVrtJ5NdNjANiV5TcmOZgUN+5KYQ4llsvEw==} '@rushstack/webpack-plugin-utilities@0.3.16': resolution: {integrity: sha512-0Xb0GESYEyv6Q7hzANZ8RIWa3seiJiCKBNNG83znQwMZ9l0bfnoJzZ3cYODkofoK0E8/nr4hTsn/pWKommf6Mw==} @@ -10190,8 +10254,8 @@ packages: '@types/send@1.2.1': resolution: {integrity: sha512-arsCikDvlU99zl1g69TcAB3mzZPpxgw0UQnaHeC1Nwb015xp8bknZv5rIfri9xTOcMuaVgvabfIRA7PSZVuZIQ==} - '@types/serialize-javascript@5.0.2': - resolution: {integrity: sha512-BRLlwZzRoZukGaBtcUxkLsZsQfWZpvog6MZk3PWQO9Q6pXmXFzjU5iGzZ+943evp6tkkbN98N1Z31KT0UG1yRw==} + '@types/serialize-javascript@5.0.4': + resolution: {integrity: sha512-Z2R7UKFuNWCP8eoa2o9e5rkD3hmWxx/1L0CYz0k2BZzGh0PhEVMp9kfGiqEml/0IglwNERXZ2hwNzIrSz/KHTA==} '@types/serve-index@1.9.4': resolution: {integrity: sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==} @@ -10288,12 +10352,12 @@ packages: typescript: optional: true - '@typescript-eslint/eslint-plugin@8.46.4': - resolution: {integrity: sha512-R48VhmTJqplNyDxCyqqVkFSZIx1qX6PzwqgcXn1olLrzxcSBDlOsbtcnQuQhNtnNiJ4Xe5gREI1foajYaYU2Vg==} + '@typescript-eslint/eslint-plugin@8.56.1': + resolution: {integrity: sha512-Jz9ZztpB37dNC+HU2HI28Bs9QXpzCz+y/twHOwhyrIRdbuVDxSytJNDl6z/aAKlaRIwC7y8wJdkBv7FxYGgi0A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^8.46.4 - eslint: ^8.57.0 || ^9.0.0 + '@typescript-eslint/parser': ^8.56.1 + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.0.0' '@typescript-eslint/parser@6.19.1': @@ -10306,35 +10370,35 @@ packages: typescript: optional: true - '@typescript-eslint/parser@8.46.4': - resolution: {integrity: sha512-tK3GPFWbirvNgsNKto+UmB/cRtn6TZfyw0D6IKrW55n6Vbs7KJoZtI//kpTKzE/DUmmnAFD8/Ca46s7Obs92/w==} + '@typescript-eslint/parser@8.56.1': + resolution: {integrity: sha512-klQbnPAAiGYFyI02+znpBRLyjL4/BrBd0nyWkdC0s/6xFLkXYQ8OoRrSkqacS1ddVxf/LDyODIKbQ5TgKAf/Fg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^8.57.0 || ^9.0.0 + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/project-service@8.46.4': - resolution: {integrity: sha512-nPiRSKuvtTN+no/2N1kt2tUh/HoFzeEgOm9fQ6XQk4/ApGqjx0zFIIaLJ6wooR1HIoozvj2j6vTi/1fgAz7UYQ==} + '@typescript-eslint/project-service@8.56.1': + resolution: {integrity: sha512-TAdqQTzHNNvlVFfR+hu2PDJrURiwKsUvxFn1M0h95BB8ah5jejas08jUWG4dBA68jDMI988IvtfdAI53JzEHOQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/rule-tester@8.46.4': - resolution: {integrity: sha512-5XRYlbxsKkugvwfkTQzJrB20FaBH6cajOQ5ys+WnCPRsMOIqMq4onIxRo21NFG+BWMJSEPmyy6c9PVFkECne7w==} + '@typescript-eslint/rule-tester@8.56.1': + resolution: {integrity: sha512-EWuV5Vq1EFYJEOVcILyWPO35PjnT0c6tv99PCpD12PgfZae5/Jo+F17hGjsEs2Moe+Dy1J7KIr8y037cK8+/rQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^8.57.0 || ^9.0.0 + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 '@typescript-eslint/scope-manager@6.19.1': resolution: {integrity: sha512-4CdXYjKf6/6aKNMSly/BP4iCSOpvMmqtDzRtqFyyAae3z5kkqEjKndR5vDHL8rSuMIIWP8u4Mw4VxLyxZW6D5w==} engines: {node: ^16.0.0 || >=18.0.0} - '@typescript-eslint/scope-manager@8.46.4': - resolution: {integrity: sha512-tMDbLGXb1wC+McN1M6QeDx7P7c0UWO5z9CXqp7J8E+xGcJuUuevWKxuG8j41FoweS3+L41SkyKKkia16jpX7CA==} + '@typescript-eslint/scope-manager@8.56.1': + resolution: {integrity: sha512-YAi4VDKcIZp0O4tz/haYKhmIDZFEUPOreKbfdAN3SzUDMcPhJ8QI99xQXqX+HoUVq8cs85eRKnD+rne2UAnj2w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/tsconfig-utils@8.46.4': - resolution: {integrity: sha512-+/XqaZPIAk6Cjg7NWgSGe27X4zMGqrFqZ8atJsX3CWxH/jACqWnrWI68h7nHQld0y+k9eTTjb9r+KU4twLoo9A==} + '@typescript-eslint/tsconfig-utils@8.56.1': + resolution: {integrity: sha512-qOtCYzKEeyr3aR9f28mPJqBty7+DBqsdd63eO0yyDwc6vgThj2UjWfJIcsFeSucYydqcuudMOprZ+x1SpF3ZuQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' @@ -10349,11 +10413,11 @@ packages: typescript: optional: true - '@typescript-eslint/type-utils@8.46.4': - resolution: {integrity: sha512-V4QC8h3fdT5Wro6vANk6eojqfbv5bpwHuMsBcJUJkqs2z5XnYhJzyz9Y02eUmF9u3PgXEUiOt4w4KHR3P+z0PQ==} + '@typescript-eslint/type-utils@8.56.1': + resolution: {integrity: sha512-yB/7dxi7MgTtGhZdaHCemf7PuwrHMenHjmzgUW1aJpO+bBU43OycnM3Wn+DdvDO/8zzA9HlhaJ0AUGuvri4oGg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^8.57.0 || ^9.0.0 + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.0.0' '@typescript-eslint/types@6.19.1': @@ -10362,8 +10426,8 @@ packages: peerDependencies: typescript: '*' - '@typescript-eslint/types@8.46.4': - resolution: {integrity: sha512-USjyxm3gQEePdUwJBFjjGNG18xY9A2grDVGuk7/9AkjIF1L+ZrVnwR5VAU5JXtUnBL/Nwt3H31KlRDaksnM7/w==} + '@typescript-eslint/types@8.56.1': + resolution: {integrity: sha512-dbMkdIUkIkchgGDIv7KLUpa0Mda4IYjo4IAMJUZ+3xNoUXxMsk9YtKpTHSChRS85o+H9ftm51gsK1dZReY9CVw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '*' @@ -10377,8 +10441,8 @@ packages: typescript: optional: true - '@typescript-eslint/typescript-estree@8.46.4': - resolution: {integrity: sha512-7oV2qEOr1d4NWNmpXLR35LvCfOkTNymY9oyW+lUHkmCno7aOmIf/hMaydnJBUTBMRCOGZh8YjkFOc8dadEoNGA==} + '@typescript-eslint/typescript-estree@8.56.1': + resolution: {integrity: sha512-qzUL1qgalIvKWAf9C1HpvBjif+Vm6rcT5wZd4VoMb9+Km3iS3Cv9DY6dMRMDtPnwRAFyAi7YXJpTIEXLvdfPxg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <6.0.0' @@ -10389,19 +10453,19 @@ packages: peerDependencies: eslint: ^7.0.0 || ^8.0.0 - '@typescript-eslint/utils@8.46.4': - resolution: {integrity: sha512-AbSv11fklGXV6T28dp2Me04Uw90R2iJ30g2bgLz529Koehrmkbs1r7paFqr1vPCZi7hHwYxYtxfyQMRC8QaVSg==} + '@typescript-eslint/utils@8.56.1': + resolution: {integrity: sha512-HPAVNIME3tABJ61siYlHzSWCGtOoeP2RTIaHXFMPqjrQKCGB9OgUVdiNgH7TJS2JNIQ5qQ4RsAUDuGaGme/KOA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^8.57.0 || ^9.0.0 + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.0.0' '@typescript-eslint/visitor-keys@6.19.1': resolution: {integrity: sha512-gkdtIO+xSO/SmI0W68DBg4u1KElmIUo3vXzgHyGPs6cxgB0sa3TlptRAAE0hUY1hM6FcDKEv7aIwiTGm76cXfQ==} engines: {node: ^16.0.0 || >=18.0.0} - '@typescript-eslint/visitor-keys@8.46.4': - resolution: {integrity: sha512-/++5CYLQqsO9HFGLI7APrxBJYo+5OCMpViuhV8q5/Qa3o5mMrF//eQHks+PXcsAVaLdn817fMuS7zqoXNNZGaw==} + '@typescript-eslint/visitor-keys@8.56.1': + resolution: {integrity: sha512-KiROIzYdEV85YygXw6BI/Dx4fnBlFQu6Mq4QE4MOH9fFnhohw6wX/OAvDY2/C+ut0I3RSPKenvZJIVYqJNkhEw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@typespec/ts-http-runtime@0.3.2': @@ -10746,8 +10810,8 @@ packages: ajv@8.12.0: resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} - ajv@8.13.0: - resolution: {integrity: sha512-PRA911Blj99jR5RMeTunVbNXMF6Lp4vZXnk5GQjcnUWUTsrXtekg/pnmFFI2u/I36Y/2bITGS30GZCXei6uNkA==} + ajv@8.18.0: + resolution: {integrity: sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==} ansi-align@3.0.1: resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==} @@ -12809,8 +12873,8 @@ packages: eslint-plugin-tsdoc@0.3.0: resolution: {integrity: sha512-0MuFdBrrJVBjT/gyhkP2BqpD0np1NxNLfQ38xXDlSs/KVVpKI2A6vN7jx2Rve/CyUsvOsMGwp9KKrinv7q9g3A==} - eslint-plugin-tsdoc@0.5.0: - resolution: {integrity: sha512-ush8ehCwub2rgE16OIgQPFyj/o0k3T8kL++9IrAI4knsmupNo8gvfO2ERgDHWWgTC5MglbwLVRswU93HyXqNpw==} + eslint-plugin-tsdoc@0.5.1: + resolution: {integrity: sha512-+EFu9XAFzogfoRspo2slmHZZ10amXqLAhmgCG0nbR6RZHNZK2XmsE7gfZ8gBjaO/p6C2DOGn09UpTGOlYy6OdQ==} eslint-scope@4.0.3: resolution: {integrity: sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==} @@ -12854,6 +12918,10 @@ packages: resolution: {integrity: sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + eslint-visitor-keys@5.0.1: + resolution: {integrity: sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + eslint@7.11.0: resolution: {integrity: sha512-G9+qtYVCHaDi1ZuWzBsOWo2wSwd70TXnU6UHA3cTYHp7gCTXZcpggWFoUVAMRarg68qtPoNfFbzPh+VdOgmwmw==} engines: {node: ^10.12.0 || >=12.0.0} @@ -13078,12 +13146,15 @@ packages: fast-safe-stringify@2.1.1: resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==} + fast-uri@3.1.0: + resolution: {integrity: sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==} + fast-xml-parser@5.2.5: resolution: {integrity: sha512-pfX9uG9Ki0yekDHx2SiuRIyFdyAr1kMIMitPvb0YBo8SUfKvia7w7FIyd/l6av85pFYRhZscS75MwMnbvY+hcQ==} hasBin: true - fast-xml-parser@5.3.3: - resolution: {integrity: sha512-2O3dkPAAC6JavuMm8+4+pgTk+5hoAs+CjZ+sWcQLkX9+/tHRuTkQh/Oaifr8qDmZ8iEHb771Ea6G8CdwkrgvYA==} + fast-xml-parser@5.3.5: + resolution: {integrity: sha512-JeaA2Vm9ffQKp9VjvfzObuMCjUYAp5WDYhRYL5LrBPY/jUDlUtOvDfot0vKSkB9tuX885BDHjtw4fZadD95wnA==} hasBin: true fastify-error@0.3.1: @@ -15157,13 +15228,9 @@ packages: minimalistic-crypto-utils@1.0.1: resolution: {integrity: sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==} - minimatch@10.1.2: - resolution: {integrity: sha512-fu656aJ0n2kcXwsnwnv9g24tkU5uSmOlTjd6WyyaKm2Z+h1qmY6bAjrcaIxF/BslFqbZ8UBtbJi7KgQOZD2PTw==} - engines: {node: 20 || >=22} - - minimatch@10.2.1: - resolution: {integrity: sha512-MClCe8IL5nRRmawL6ib/eT4oLyeKMGCghibcDWK+J0hh0Q8kqSdia6BvbRMVk6mPa6WqUa5uR2oxt6C5jd533A==} - engines: {node: 20 || >=22} + minimatch@10.2.3: + resolution: {integrity: sha512-Rwi3pnapEqirPSbWbrZaa6N3nmqq4Xer/2XooiOKyV3q12ML06f7MOuc5DVH8ONZIFhwIYQ3yzPH4nt7iWHaTg==} + engines: {node: 18 || 20 || >=22} minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} @@ -15176,10 +15243,6 @@ packages: resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} engines: {node: '>=16 || 14 >=14.17'} - minimatch@9.0.5: - resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} - engines: {node: '>=16 || 14 >=14.17'} - minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} @@ -17101,6 +17164,10 @@ packages: serialize-javascript@6.0.2: resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} + serialize-javascript@7.0.3: + resolution: {integrity: sha512-h+cZ/XXarqDgCjo+YSyQU/ulDEESGGf8AMK9pPNmhNSl/FzPl6L8pMp1leca5z6NuG6tvV/auC8/43tmovowww==} + engines: {node: '>=20.0.0'} + serve-favicon@2.5.1: resolution: {integrity: sha512-JndLBslCLA/ebr7rS3d+/EKkzTsTi1jI2T9l+vHfAaGJ7A7NhtDpSZ0lx81HCNWnnE0yHncG+SSnVf9IMxOwXQ==} engines: {node: '>= 0.8.0'} @@ -19320,7 +19387,7 @@ snapshots: '@azure/core-xml@1.5.0': dependencies: - fast-xml-parser: 5.3.3 + fast-xml-parser: 5.3.5 tslib: 2.8.1 '@azure/identity@4.5.0': @@ -22324,12 +22391,6 @@ snapshots: optionalDependencies: '@types/node': 22.9.3 - '@isaacs/balanced-match@4.0.1': {} - - '@isaacs/brace-expansion@5.0.1': - dependencies: - '@isaacs/balanced-match': 4.0.1 - '@isaacs/cliui@8.0.2': dependencies: string-width: 5.1.2 @@ -22873,26 +22934,26 @@ snapshots: '@mdx-js/util@1.6.22': {} - '@microsoft/api-extractor-model@7.33.0(@types/node@20.17.19)': + '@microsoft/api-extractor-model@7.33.4(@types/node@20.17.19)': dependencies: '@microsoft/tsdoc': 0.16.0 - '@microsoft/tsdoc-config': 0.18.0 - '@rushstack/node-core-library': 5.20.0(@types/node@20.17.19) + '@microsoft/tsdoc-config': 0.18.1 + '@rushstack/node-core-library': 5.20.3(@types/node@20.17.19) transitivePeerDependencies: - '@types/node' - '@microsoft/api-extractor@7.57.0(@types/node@20.17.19)': + '@microsoft/api-extractor@7.57.7(@types/node@20.17.19)': dependencies: - '@microsoft/api-extractor-model': 7.33.0(@types/node@20.17.19) + '@microsoft/api-extractor-model': 7.33.4(@types/node@20.17.19) '@microsoft/tsdoc': 0.16.0 - '@microsoft/tsdoc-config': 0.18.0 - '@rushstack/node-core-library': 5.20.0(@types/node@20.17.19) - '@rushstack/rig-package': 0.7.0 - '@rushstack/terminal': 0.22.0(@types/node@20.17.19) - '@rushstack/ts-command-line': 5.3.0(@types/node@20.17.19) + '@microsoft/tsdoc-config': 0.18.1 + '@rushstack/node-core-library': 5.20.3(@types/node@20.17.19) + '@rushstack/rig-package': 0.7.2 + '@rushstack/terminal': 0.22.3(@types/node@20.17.19) + '@rushstack/ts-command-line': 5.3.3(@types/node@20.17.19) diff: 8.0.3 lodash: 4.17.23 - minimatch: 10.1.2 + minimatch: 10.2.3 resolve: 1.22.11 semver: 7.5.4 source-map: 0.6.1 @@ -22911,10 +22972,10 @@ snapshots: jju: 1.4.0 resolve: 1.22.11 - '@microsoft/tsdoc-config@0.18.0': + '@microsoft/tsdoc-config@0.18.1': dependencies: '@microsoft/tsdoc': 0.16.0 - ajv: 8.12.0 + ajv: 8.18.0 jju: 1.4.0 resolve: 1.22.11 @@ -23787,59 +23848,59 @@ snapshots: transitivePeerDependencies: - supports-color - '@rushstack/eslint-config@4.6.2(eslint@8.57.1)(typescript@4.9.5)': + '@rushstack/eslint-config@4.6.4(eslint@8.57.1)(typescript@4.9.5)': dependencies: - '@rushstack/eslint-patch': 1.16.0 - '@rushstack/eslint-plugin': 0.23.0(eslint@8.57.1)(typescript@4.9.5) - '@rushstack/eslint-plugin-packlets': 0.15.0(eslint@8.57.1)(typescript@4.9.5) - '@rushstack/eslint-plugin-security': 0.14.0(eslint@8.57.1)(typescript@4.9.5) - '@typescript-eslint/eslint-plugin': 8.46.4(@typescript-eslint/parser@8.46.4(eslint@8.57.1)(typescript@4.9.5))(eslint@8.57.1)(typescript@4.9.5) - '@typescript-eslint/parser': 8.46.4(eslint@8.57.1)(typescript@4.9.5) - '@typescript-eslint/typescript-estree': 8.46.4(typescript@4.9.5) - '@typescript-eslint/utils': 8.46.4(eslint@8.57.1)(typescript@4.9.5) + '@rushstack/eslint-patch': 1.16.1 + '@rushstack/eslint-plugin': 0.23.2(eslint@8.57.1)(typescript@4.9.5) + '@rushstack/eslint-plugin-packlets': 0.15.2(eslint@8.57.1)(typescript@4.9.5) + '@rushstack/eslint-plugin-security': 0.14.2(eslint@8.57.1)(typescript@4.9.5) + '@typescript-eslint/eslint-plugin': 8.56.1(@typescript-eslint/parser@8.56.1(eslint@8.57.1)(typescript@4.9.5))(eslint@8.57.1)(typescript@4.9.5) + '@typescript-eslint/parser': 8.56.1(eslint@8.57.1)(typescript@4.9.5) + '@typescript-eslint/typescript-estree': 8.56.1(typescript@4.9.5) + '@typescript-eslint/utils': 8.56.1(eslint@8.57.1)(typescript@4.9.5) eslint: 8.57.1 eslint-plugin-promise: 7.2.1(eslint@8.57.1) eslint-plugin-react: 7.37.5(eslint@8.57.1) - eslint-plugin-tsdoc: 0.5.0(eslint@8.57.1)(typescript@4.9.5) + eslint-plugin-tsdoc: 0.5.1(eslint@8.57.1)(typescript@4.9.5) typescript: 4.9.5 transitivePeerDependencies: - supports-color - '@rushstack/eslint-config@4.6.2(eslint@9.37.0)(typescript@5.8.2)': + '@rushstack/eslint-config@4.6.4(eslint@9.37.0)(typescript@5.8.2)': dependencies: - '@rushstack/eslint-patch': 1.16.0 - '@rushstack/eslint-plugin': 0.23.0(eslint@9.37.0)(typescript@5.8.2) - '@rushstack/eslint-plugin-packlets': 0.15.0(eslint@9.37.0)(typescript@5.8.2) - '@rushstack/eslint-plugin-security': 0.14.0(eslint@9.37.0)(typescript@5.8.2) - '@typescript-eslint/eslint-plugin': 8.46.4(@typescript-eslint/parser@8.46.4(eslint@9.37.0)(typescript@5.8.2))(eslint@9.37.0)(typescript@5.8.2) - '@typescript-eslint/parser': 8.46.4(eslint@9.37.0)(typescript@5.8.2) - '@typescript-eslint/typescript-estree': 8.46.4(typescript@5.8.2) - '@typescript-eslint/utils': 8.46.4(eslint@9.37.0)(typescript@5.8.2) + '@rushstack/eslint-patch': 1.16.1 + '@rushstack/eslint-plugin': 0.23.2(eslint@9.37.0)(typescript@5.8.2) + '@rushstack/eslint-plugin-packlets': 0.15.2(eslint@9.37.0)(typescript@5.8.2) + '@rushstack/eslint-plugin-security': 0.14.2(eslint@9.37.0)(typescript@5.8.2) + '@typescript-eslint/eslint-plugin': 8.56.1(@typescript-eslint/parser@8.56.1(eslint@9.37.0)(typescript@5.8.2))(eslint@9.37.0)(typescript@5.8.2) + '@typescript-eslint/parser': 8.56.1(eslint@9.37.0)(typescript@5.8.2) + '@typescript-eslint/typescript-estree': 8.56.1(typescript@5.8.2) + '@typescript-eslint/utils': 8.56.1(eslint@9.37.0)(typescript@5.8.2) eslint: 9.37.0 eslint-plugin-promise: 7.2.1(eslint@9.37.0) eslint-plugin-react: 7.37.5(eslint@9.37.0) - eslint-plugin-tsdoc: 0.5.0(eslint@9.37.0)(typescript@5.8.2) + eslint-plugin-tsdoc: 0.5.1(eslint@9.37.0)(typescript@5.8.2) typescript: 5.8.2 transitivePeerDependencies: - supports-color '@rushstack/eslint-patch@1.10.4': {} - '@rushstack/eslint-patch@1.16.0': {} + '@rushstack/eslint-patch@1.16.1': {} - '@rushstack/eslint-plugin-packlets@0.15.0(eslint@8.57.1)(typescript@4.9.5)': + '@rushstack/eslint-plugin-packlets@0.15.2(eslint@8.57.1)(typescript@4.9.5)': dependencies: - '@rushstack/tree-pattern': 0.4.0 - '@typescript-eslint/utils': 8.46.4(eslint@8.57.1)(typescript@4.9.5) + '@rushstack/tree-pattern': 0.4.1 + '@typescript-eslint/utils': 8.56.1(eslint@8.57.1)(typescript@4.9.5) eslint: 8.57.1 transitivePeerDependencies: - supports-color - typescript - '@rushstack/eslint-plugin-packlets@0.15.0(eslint@9.37.0)(typescript@5.8.2)': + '@rushstack/eslint-plugin-packlets@0.15.2(eslint@9.37.0)(typescript@5.8.2)': dependencies: - '@rushstack/tree-pattern': 0.4.0 - '@typescript-eslint/utils': 8.46.4(eslint@9.37.0)(typescript@5.8.2) + '@rushstack/tree-pattern': 0.4.1 + '@typescript-eslint/utils': 8.56.1(eslint@9.37.0)(typescript@5.8.2) eslint: 9.37.0 transitivePeerDependencies: - supports-color @@ -23881,19 +23942,19 @@ snapshots: - supports-color - typescript - '@rushstack/eslint-plugin-security@0.14.0(eslint@8.57.1)(typescript@4.9.5)': + '@rushstack/eslint-plugin-security@0.14.2(eslint@8.57.1)(typescript@4.9.5)': dependencies: - '@rushstack/tree-pattern': 0.4.0 - '@typescript-eslint/utils': 8.46.4(eslint@8.57.1)(typescript@4.9.5) + '@rushstack/tree-pattern': 0.4.1 + '@typescript-eslint/utils': 8.56.1(eslint@8.57.1)(typescript@4.9.5) eslint: 8.57.1 transitivePeerDependencies: - supports-color - typescript - '@rushstack/eslint-plugin-security@0.14.0(eslint@9.37.0)(typescript@5.8.2)': + '@rushstack/eslint-plugin-security@0.14.2(eslint@9.37.0)(typescript@5.8.2)': dependencies: - '@rushstack/tree-pattern': 0.4.0 - '@typescript-eslint/utils': 8.46.4(eslint@9.37.0)(typescript@5.8.2) + '@rushstack/tree-pattern': 0.4.1 + '@typescript-eslint/utils': 8.56.1(eslint@9.37.0)(typescript@5.8.2) eslint: 9.37.0 transitivePeerDependencies: - supports-color @@ -23971,61 +24032,61 @@ snapshots: - supports-color - typescript - '@rushstack/eslint-plugin@0.23.0(eslint@8.57.1)(typescript@4.9.5)': + '@rushstack/eslint-plugin@0.23.2(eslint@8.57.1)(typescript@4.9.5)': dependencies: - '@rushstack/tree-pattern': 0.4.0 - '@typescript-eslint/utils': 8.46.4(eslint@8.57.1)(typescript@4.9.5) + '@rushstack/tree-pattern': 0.4.1 + '@typescript-eslint/utils': 8.56.1(eslint@8.57.1)(typescript@4.9.5) eslint: 8.57.1 transitivePeerDependencies: - supports-color - typescript - '@rushstack/eslint-plugin@0.23.0(eslint@9.37.0)(typescript@5.8.2)': + '@rushstack/eslint-plugin@0.23.2(eslint@9.37.0)(typescript@5.8.2)': dependencies: - '@rushstack/tree-pattern': 0.4.0 - '@typescript-eslint/utils': 8.46.4(eslint@9.37.0)(typescript@5.8.2) + '@rushstack/tree-pattern': 0.4.1 + '@typescript-eslint/utils': 8.56.1(eslint@9.37.0)(typescript@5.8.2) eslint: 9.37.0 transitivePeerDependencies: - supports-color - typescript - '@rushstack/heft-api-extractor-plugin@1.3.0(@rushstack/heft@1.2.0(@types/node@20.17.19))(@types/node@20.17.19)': + '@rushstack/heft-api-extractor-plugin@1.3.7(@rushstack/heft@1.2.7(@types/node@20.17.19))(@types/node@20.17.19)': dependencies: - '@rushstack/heft': 1.2.0(@types/node@20.17.19) - '@rushstack/node-core-library': 5.20.0(@types/node@20.17.19) + '@rushstack/heft': 1.2.7(@types/node@20.17.19) + '@rushstack/node-core-library': 5.20.3(@types/node@20.17.19) semver: 7.5.4 transitivePeerDependencies: - '@types/node' - '@rushstack/heft-config-file@0.20.0(@types/node@20.17.19)': + '@rushstack/heft-config-file@0.20.3(@types/node@20.17.19)': dependencies: - '@rushstack/node-core-library': 5.20.0(@types/node@20.17.19) - '@rushstack/rig-package': 0.7.0 - '@rushstack/terminal': 0.22.0(@types/node@20.17.19) + '@rushstack/node-core-library': 5.20.3(@types/node@20.17.19) + '@rushstack/rig-package': 0.7.2 + '@rushstack/terminal': 0.22.3(@types/node@20.17.19) '@ungap/structured-clone': 1.3.0 jsonpath-plus: 10.3.0 transitivePeerDependencies: - '@types/node' - '@rushstack/heft-config-file@0.20.0(@types/node@22.9.3)': + '@rushstack/heft-config-file@0.20.3(@types/node@22.9.3)': dependencies: - '@rushstack/node-core-library': 5.20.0(@types/node@22.9.3) - '@rushstack/rig-package': 0.7.0 - '@rushstack/terminal': 0.22.0(@types/node@22.9.3) + '@rushstack/node-core-library': 5.20.3(@types/node@22.9.3) + '@rushstack/rig-package': 0.7.2 + '@rushstack/terminal': 0.22.3(@types/node@22.9.3) '@ungap/structured-clone': 1.3.0 jsonpath-plus: 10.3.0 transitivePeerDependencies: - '@types/node' - '@rushstack/heft-jest-plugin@1.2.0(@rushstack/heft@1.2.0(@types/node@20.17.19))(@types/node@20.17.19)(jest-environment-jsdom@29.5.0)(jest-environment-node@29.5.0)': + '@rushstack/heft-jest-plugin@1.2.7(@rushstack/heft@1.2.7(@types/node@20.17.19))(@types/node@20.17.19)(jest-environment-jsdom@29.5.0)(jest-environment-node@29.5.0)': dependencies: '@jest/core': 29.5.0(babel-plugin-macros@3.1.0) '@jest/reporters': 29.5.0 '@jest/transform': 29.5.0 - '@rushstack/heft': 1.2.0(@types/node@20.17.19) - '@rushstack/heft-config-file': 0.20.0(@types/node@20.17.19) - '@rushstack/node-core-library': 5.20.0(@types/node@20.17.19) - '@rushstack/terminal': 0.22.0(@types/node@20.17.19) + '@rushstack/heft': 1.2.7(@types/node@20.17.19) + '@rushstack/heft-config-file': 0.20.3(@types/node@20.17.19) + '@rushstack/node-core-library': 5.20.3(@types/node@20.17.19) + '@rushstack/terminal': 0.22.3(@types/node@20.17.19) jest-config: 29.5.0(@types/node@20.17.19)(babel-plugin-macros@3.1.0) jest-resolve: 29.5.0 jest-snapshot: 29.5.0 @@ -24041,24 +24102,24 @@ snapshots: - supports-color - ts-node - '@rushstack/heft-lint-plugin@1.2.0(@rushstack/heft@1.2.0(@types/node@20.17.19))(@types/node@20.17.19)': + '@rushstack/heft-lint-plugin@1.2.7(@rushstack/heft@1.2.7(@types/node@20.17.19))(@types/node@20.17.19)': dependencies: - '@rushstack/heft': 1.2.0(@types/node@20.17.19) - '@rushstack/node-core-library': 5.20.0(@types/node@20.17.19) + '@rushstack/heft': 1.2.7(@types/node@20.17.19) + '@rushstack/node-core-library': 5.20.3(@types/node@20.17.19) json-stable-stringify-without-jsonify: 1.0.1 semver: 7.5.4 transitivePeerDependencies: - '@types/node' - '@rushstack/heft-node-rig@2.11.20(@rushstack/heft@1.2.0(@types/node@20.17.19))(@types/node@20.17.19)(jest-environment-jsdom@29.5.0)': + '@rushstack/heft-node-rig@2.11.27(@rushstack/heft@1.2.7(@types/node@20.17.19))(@types/node@20.17.19)(jest-environment-jsdom@29.5.0)': dependencies: - '@microsoft/api-extractor': 7.57.0(@types/node@20.17.19) - '@rushstack/eslint-config': 4.6.2(eslint@9.37.0)(typescript@5.8.2) - '@rushstack/heft': 1.2.0(@types/node@20.17.19) - '@rushstack/heft-api-extractor-plugin': 1.3.0(@rushstack/heft@1.2.0(@types/node@20.17.19))(@types/node@20.17.19) - '@rushstack/heft-jest-plugin': 1.2.0(@rushstack/heft@1.2.0(@types/node@20.17.19))(@types/node@20.17.19)(jest-environment-jsdom@29.5.0)(jest-environment-node@29.5.0) - '@rushstack/heft-lint-plugin': 1.2.0(@rushstack/heft@1.2.0(@types/node@20.17.19))(@types/node@20.17.19) - '@rushstack/heft-typescript-plugin': 1.2.0(@rushstack/heft@1.2.0(@types/node@20.17.19))(@types/node@20.17.19) + '@microsoft/api-extractor': 7.57.7(@types/node@20.17.19) + '@rushstack/eslint-config': 4.6.4(eslint@9.37.0)(typescript@5.8.2) + '@rushstack/heft': 1.2.7(@types/node@20.17.19) + '@rushstack/heft-api-extractor-plugin': 1.3.7(@rushstack/heft@1.2.7(@types/node@20.17.19))(@types/node@20.17.19) + '@rushstack/heft-jest-plugin': 1.2.7(@rushstack/heft@1.2.7(@types/node@20.17.19))(@types/node@20.17.19)(jest-environment-jsdom@29.5.0)(jest-environment-node@29.5.0) + '@rushstack/heft-lint-plugin': 1.2.7(@rushstack/heft@1.2.7(@types/node@20.17.19))(@types/node@20.17.19) + '@rushstack/heft-typescript-plugin': 1.3.2(@rushstack/heft@1.2.7(@types/node@20.17.19))(@types/node@20.17.19) '@types/heft-jest': 1.0.1 eslint: 9.37.0 jest-environment-node: 29.5.0 @@ -24072,25 +24133,25 @@ snapshots: - supports-color - ts-node - '@rushstack/heft-typescript-plugin@1.2.0(@rushstack/heft@1.2.0(@types/node@20.17.19))(@types/node@20.17.19)': + '@rushstack/heft-typescript-plugin@1.3.2(@rushstack/heft@1.2.7(@types/node@20.17.19))(@types/node@20.17.19)': dependencies: - '@rushstack/heft': 1.2.0(@types/node@20.17.19) - '@rushstack/heft-config-file': 0.20.0(@types/node@20.17.19) - '@rushstack/node-core-library': 5.20.0(@types/node@20.17.19) + '@rushstack/heft': 1.2.7(@types/node@20.17.19) + '@rushstack/heft-config-file': 0.20.3(@types/node@20.17.19) + '@rushstack/node-core-library': 5.20.3(@types/node@20.17.19) '@types/tapable': 1.0.6 semver: 7.5.4 tapable: 1.1.3 transitivePeerDependencies: - '@types/node' - '@rushstack/heft@1.2.0(@types/node@20.17.19)': + '@rushstack/heft@1.2.7(@types/node@20.17.19)': dependencies: - '@rushstack/heft-config-file': 0.20.0(@types/node@20.17.19) - '@rushstack/node-core-library': 5.20.0(@types/node@20.17.19) - '@rushstack/operation-graph': 0.6.0(@types/node@20.17.19) - '@rushstack/rig-package': 0.7.0 - '@rushstack/terminal': 0.22.0(@types/node@20.17.19) - '@rushstack/ts-command-line': 5.3.0(@types/node@20.17.19) + '@rushstack/heft-config-file': 0.20.3(@types/node@20.17.19) + '@rushstack/node-core-library': 5.20.3(@types/node@20.17.19) + '@rushstack/operation-graph': 0.6.3(@types/node@20.17.19) + '@rushstack/rig-package': 0.7.2 + '@rushstack/terminal': 0.22.3(@types/node@20.17.19) + '@rushstack/ts-command-line': 5.3.3(@types/node@20.17.19) '@types/tapable': 1.0.6 fast-glob: 3.3.3 git-repo-info: 2.1.1 @@ -24100,14 +24161,14 @@ snapshots: transitivePeerDependencies: - '@types/node' - '@rushstack/heft@1.2.0(@types/node@22.9.3)': + '@rushstack/heft@1.2.7(@types/node@22.9.3)': dependencies: - '@rushstack/heft-config-file': 0.20.0(@types/node@22.9.3) - '@rushstack/node-core-library': 5.20.0(@types/node@22.9.3) - '@rushstack/operation-graph': 0.6.0(@types/node@22.9.3) - '@rushstack/rig-package': 0.7.0 - '@rushstack/terminal': 0.22.0(@types/node@22.9.3) - '@rushstack/ts-command-line': 5.3.0(@types/node@22.9.3) + '@rushstack/heft-config-file': 0.20.3(@types/node@22.9.3) + '@rushstack/node-core-library': 5.20.3(@types/node@22.9.3) + '@rushstack/operation-graph': 0.6.3(@types/node@22.9.3) + '@rushstack/rig-package': 0.7.2 + '@rushstack/terminal': 0.22.3(@types/node@22.9.3) + '@rushstack/ts-command-line': 5.3.3(@types/node@22.9.3) '@types/tapable': 1.0.6 fast-glob: 3.3.3 git-repo-info: 2.1.1 @@ -24141,11 +24202,11 @@ snapshots: optionalDependencies: '@types/node': 22.9.3 - '@rushstack/node-core-library@5.20.0(@types/node@20.17.19)': + '@rushstack/node-core-library@5.20.3(@types/node@20.17.19)': dependencies: - ajv: 8.13.0 - ajv-draft-04: 1.0.0(ajv@8.13.0) - ajv-formats: 3.0.1(ajv@8.13.0) + ajv: 8.18.0 + ajv-draft-04: 1.0.0(ajv@8.18.0) + ajv-formats: 3.0.1(ajv@8.18.0) fs-extra: 11.3.3 import-lazy: 4.0.0 jju: 1.4.0 @@ -24154,11 +24215,11 @@ snapshots: optionalDependencies: '@types/node': 20.17.19 - '@rushstack/node-core-library@5.20.0(@types/node@22.9.3)': + '@rushstack/node-core-library@5.20.3(@types/node@22.9.3)': dependencies: - ajv: 8.13.0 - ajv-draft-04: 1.0.0(ajv@8.13.0) - ajv-formats: 3.0.1(ajv@8.13.0) + ajv: 8.18.0 + ajv-draft-04: 1.0.0(ajv@8.18.0) + ajv-formats: 3.0.1(ajv@8.18.0) fs-extra: 11.3.3 import-lazy: 4.0.0 jju: 1.4.0 @@ -24167,29 +24228,29 @@ snapshots: optionalDependencies: '@types/node': 22.9.3 - '@rushstack/operation-graph@0.6.0(@types/node@20.17.19)': + '@rushstack/operation-graph@0.6.3(@types/node@20.17.19)': dependencies: - '@rushstack/node-core-library': 5.20.0(@types/node@20.17.19) - '@rushstack/terminal': 0.22.0(@types/node@20.17.19) + '@rushstack/node-core-library': 5.20.3(@types/node@20.17.19) + '@rushstack/terminal': 0.22.3(@types/node@20.17.19) optionalDependencies: '@types/node': 20.17.19 - '@rushstack/operation-graph@0.6.0(@types/node@22.9.3)': + '@rushstack/operation-graph@0.6.3(@types/node@22.9.3)': dependencies: - '@rushstack/node-core-library': 5.20.0(@types/node@22.9.3) - '@rushstack/terminal': 0.22.0(@types/node@22.9.3) + '@rushstack/node-core-library': 5.20.3(@types/node@22.9.3) + '@rushstack/terminal': 0.22.3(@types/node@22.9.3) optionalDependencies: '@types/node': 22.9.3 - '@rushstack/problem-matcher@0.2.0(@types/node@20.17.19)': + '@rushstack/problem-matcher@0.2.1(@types/node@20.17.19)': optionalDependencies: '@types/node': 20.17.19 - '@rushstack/problem-matcher@0.2.0(@types/node@22.9.3)': + '@rushstack/problem-matcher@0.2.1(@types/node@22.9.3)': optionalDependencies: '@types/node': 22.9.3 - '@rushstack/rig-package@0.7.0': + '@rushstack/rig-package@0.7.2': dependencies: resolve: 1.22.11 strip-json-comments: 3.1.1 @@ -24214,38 +24275,38 @@ snapshots: - '@types/node' - webpack - '@rushstack/terminal@0.22.0(@types/node@20.17.19)': + '@rushstack/terminal@0.22.3(@types/node@20.17.19)': dependencies: - '@rushstack/node-core-library': 5.20.0(@types/node@20.17.19) - '@rushstack/problem-matcher': 0.2.0(@types/node@20.17.19) + '@rushstack/node-core-library': 5.20.3(@types/node@20.17.19) + '@rushstack/problem-matcher': 0.2.1(@types/node@20.17.19) supports-color: 8.1.1 optionalDependencies: '@types/node': 20.17.19 - '@rushstack/terminal@0.22.0(@types/node@22.9.3)': + '@rushstack/terminal@0.22.3(@types/node@22.9.3)': dependencies: - '@rushstack/node-core-library': 5.20.0(@types/node@22.9.3) - '@rushstack/problem-matcher': 0.2.0(@types/node@22.9.3) + '@rushstack/node-core-library': 5.20.3(@types/node@22.9.3) + '@rushstack/problem-matcher': 0.2.1(@types/node@22.9.3) supports-color: 8.1.1 optionalDependencies: '@types/node': 22.9.3 '@rushstack/tree-pattern@0.3.4': {} - '@rushstack/tree-pattern@0.4.0': {} + '@rushstack/tree-pattern@0.4.1': {} - '@rushstack/ts-command-line@5.3.0(@types/node@20.17.19)': + '@rushstack/ts-command-line@5.3.3(@types/node@20.17.19)': dependencies: - '@rushstack/terminal': 0.22.0(@types/node@20.17.19) + '@rushstack/terminal': 0.22.3(@types/node@20.17.19) '@types/argparse': 1.0.38 argparse: 1.0.10 string-argv: 0.3.2 transitivePeerDependencies: - '@types/node' - '@rushstack/ts-command-line@5.3.0(@types/node@22.9.3)': + '@rushstack/ts-command-line@5.3.3(@types/node@22.9.3)': dependencies: - '@rushstack/terminal': 0.22.0(@types/node@22.9.3) + '@rushstack/terminal': 0.22.3(@types/node@22.9.3) '@types/argparse': 1.0.38 argparse: 1.0.10 string-argv: 0.3.2 @@ -26192,7 +26253,7 @@ snapshots: '@types/minimatch@6.0.0': dependencies: - minimatch: 10.2.1 + minimatch: 10.2.3 '@types/mocha@10.0.6': {} @@ -26307,7 +26368,7 @@ snapshots: dependencies: '@types/node': 22.9.3 - '@types/serialize-javascript@5.0.2': {} + '@types/serialize-javascript@5.0.4': {} '@types/serve-index@1.9.4': dependencies: @@ -26487,16 +26548,15 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/eslint-plugin@8.46.4(@typescript-eslint/parser@8.46.4(eslint@8.57.1)(typescript@4.9.5))(eslint@8.57.1)(typescript@4.9.5)': + '@typescript-eslint/eslint-plugin@8.56.1(@typescript-eslint/parser@8.56.1(eslint@8.57.1)(typescript@4.9.5))(eslint@8.57.1)(typescript@4.9.5)': dependencies: '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 8.46.4(eslint@8.57.1)(typescript@4.9.5) - '@typescript-eslint/scope-manager': 8.46.4(typescript@4.9.5) - '@typescript-eslint/type-utils': 8.46.4(eslint@8.57.1)(typescript@4.9.5) - '@typescript-eslint/utils': 8.46.4(eslint@8.57.1)(typescript@4.9.5) - '@typescript-eslint/visitor-keys': 8.46.4(typescript@4.9.5) + '@typescript-eslint/parser': 8.56.1(eslint@8.57.1)(typescript@4.9.5) + '@typescript-eslint/scope-manager': 8.56.1(typescript@4.9.5) + '@typescript-eslint/type-utils': 8.56.1(eslint@8.57.1)(typescript@4.9.5) + '@typescript-eslint/utils': 8.56.1(eslint@8.57.1)(typescript@4.9.5) + '@typescript-eslint/visitor-keys': 8.56.1(typescript@4.9.5) eslint: 8.57.1 - graphemer: 1.4.0 ignore: 7.0.5 natural-compare: 1.4.0 ts-api-utils: 2.4.0(typescript@4.9.5) @@ -26504,16 +26564,15 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/eslint-plugin@8.46.4(@typescript-eslint/parser@8.46.4(eslint@9.37.0)(typescript@5.8.2))(eslint@9.37.0)(typescript@5.8.2)': + '@typescript-eslint/eslint-plugin@8.56.1(@typescript-eslint/parser@8.56.1(eslint@9.37.0)(typescript@5.8.2))(eslint@9.37.0)(typescript@5.8.2)': dependencies: '@eslint-community/regexpp': 4.12.2 - '@typescript-eslint/parser': 8.46.4(eslint@9.37.0)(typescript@5.8.2) - '@typescript-eslint/scope-manager': 8.46.4(typescript@5.8.2) - '@typescript-eslint/type-utils': 8.46.4(eslint@9.37.0)(typescript@5.8.2) - '@typescript-eslint/utils': 8.46.4(eslint@9.37.0)(typescript@5.8.2) - '@typescript-eslint/visitor-keys': 8.46.4(typescript@5.8.2) + '@typescript-eslint/parser': 8.56.1(eslint@9.37.0)(typescript@5.8.2) + '@typescript-eslint/scope-manager': 8.56.1(typescript@5.8.2) + '@typescript-eslint/type-utils': 8.56.1(eslint@9.37.0)(typescript@5.8.2) + '@typescript-eslint/utils': 8.56.1(eslint@9.37.0)(typescript@5.8.2) + '@typescript-eslint/visitor-keys': 8.56.1(typescript@5.8.2) eslint: 9.37.0 - graphemer: 1.4.0 ignore: 7.0.5 natural-compare: 1.4.0 ts-api-utils: 2.4.0(typescript@5.8.2) @@ -26573,66 +26632,66 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.46.4(eslint@8.57.1)(typescript@4.9.5)': + '@typescript-eslint/parser@8.56.1(eslint@8.57.1)(typescript@4.9.5)': dependencies: - '@typescript-eslint/scope-manager': 8.46.4(typescript@4.9.5) - '@typescript-eslint/types': 8.46.4(typescript@4.9.5) - '@typescript-eslint/typescript-estree': 8.46.4(typescript@4.9.5) - '@typescript-eslint/visitor-keys': 8.46.4(typescript@4.9.5) + '@typescript-eslint/scope-manager': 8.56.1(typescript@4.9.5) + '@typescript-eslint/types': 8.56.1(typescript@4.9.5) + '@typescript-eslint/typescript-estree': 8.56.1(typescript@4.9.5) + '@typescript-eslint/visitor-keys': 8.56.1(typescript@4.9.5) debug: 4.4.3(supports-color@8.1.1) eslint: 8.57.1 typescript: 4.9.5 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.46.4(eslint@8.57.1)(typescript@5.8.2)': + '@typescript-eslint/parser@8.56.1(eslint@8.57.1)(typescript@5.8.2)': dependencies: - '@typescript-eslint/scope-manager': 8.46.4(typescript@5.8.2) - '@typescript-eslint/types': 8.46.4(typescript@5.8.2) - '@typescript-eslint/typescript-estree': 8.46.4(typescript@5.8.2) - '@typescript-eslint/visitor-keys': 8.46.4(typescript@5.8.2) + '@typescript-eslint/scope-manager': 8.56.1(typescript@5.8.2) + '@typescript-eslint/types': 8.56.1(typescript@5.8.2) + '@typescript-eslint/typescript-estree': 8.56.1(typescript@5.8.2) + '@typescript-eslint/visitor-keys': 8.56.1(typescript@5.8.2) debug: 4.4.3(supports-color@8.1.1) eslint: 8.57.1 typescript: 5.8.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.46.4(eslint@9.37.0)(typescript@5.8.2)': + '@typescript-eslint/parser@8.56.1(eslint@9.37.0)(typescript@5.8.2)': dependencies: - '@typescript-eslint/scope-manager': 8.46.4(typescript@5.8.2) - '@typescript-eslint/types': 8.46.4(typescript@5.8.2) - '@typescript-eslint/typescript-estree': 8.46.4(typescript@5.8.2) - '@typescript-eslint/visitor-keys': 8.46.4(typescript@5.8.2) + '@typescript-eslint/scope-manager': 8.56.1(typescript@5.8.2) + '@typescript-eslint/types': 8.56.1(typescript@5.8.2) + '@typescript-eslint/typescript-estree': 8.56.1(typescript@5.8.2) + '@typescript-eslint/visitor-keys': 8.56.1(typescript@5.8.2) debug: 4.4.3(supports-color@8.1.1) eslint: 9.37.0 typescript: 5.8.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.46.4(typescript@4.9.5)': + '@typescript-eslint/project-service@8.56.1(typescript@4.9.5)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.46.4(typescript@4.9.5) - '@typescript-eslint/types': 8.46.4(typescript@4.9.5) + '@typescript-eslint/tsconfig-utils': 8.56.1(typescript@4.9.5) + '@typescript-eslint/types': 8.56.1(typescript@4.9.5) debug: 4.4.3(supports-color@8.1.1) typescript: 4.9.5 transitivePeerDependencies: - supports-color - '@typescript-eslint/project-service@8.46.4(typescript@5.8.2)': + '@typescript-eslint/project-service@8.56.1(typescript@5.8.2)': dependencies: - '@typescript-eslint/tsconfig-utils': 8.46.4(typescript@5.8.2) - '@typescript-eslint/types': 8.46.4(typescript@5.8.2) + '@typescript-eslint/tsconfig-utils': 8.56.1(typescript@5.8.2) + '@typescript-eslint/types': 8.56.1(typescript@5.8.2) debug: 4.4.3(supports-color@8.1.1) typescript: 5.8.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/rule-tester@8.46.4(eslint@9.37.0)(typescript@5.8.2)': + '@typescript-eslint/rule-tester@8.56.1(eslint@9.37.0)(typescript@5.8.2)': dependencies: '@types/semver': 7.5.0 - '@typescript-eslint/parser': 8.46.4(eslint@9.37.0)(typescript@5.8.2) - '@typescript-eslint/typescript-estree': 8.46.4(typescript@5.8.2) - '@typescript-eslint/utils': 8.46.4(eslint@9.37.0)(typescript@5.8.2) + '@typescript-eslint/parser': 8.56.1(eslint@9.37.0)(typescript@5.8.2) + '@typescript-eslint/typescript-estree': 8.56.1(typescript@5.8.2) + '@typescript-eslint/utils': 8.56.1(eslint@9.37.0)(typescript@5.8.2) ajv: 6.12.6 eslint: 9.37.0 json-stable-stringify-without-jsonify: 1.0.1 @@ -26649,25 +26708,25 @@ snapshots: transitivePeerDependencies: - typescript - '@typescript-eslint/scope-manager@8.46.4(typescript@4.9.5)': + '@typescript-eslint/scope-manager@8.56.1(typescript@4.9.5)': dependencies: - '@typescript-eslint/types': 8.46.4(typescript@4.9.5) - '@typescript-eslint/visitor-keys': 8.46.4(typescript@4.9.5) + '@typescript-eslint/types': 8.56.1(typescript@4.9.5) + '@typescript-eslint/visitor-keys': 8.56.1(typescript@4.9.5) transitivePeerDependencies: - typescript - '@typescript-eslint/scope-manager@8.46.4(typescript@5.8.2)': + '@typescript-eslint/scope-manager@8.56.1(typescript@5.8.2)': dependencies: - '@typescript-eslint/types': 8.46.4(typescript@5.8.2) - '@typescript-eslint/visitor-keys': 8.46.4(typescript@5.8.2) + '@typescript-eslint/types': 8.56.1(typescript@5.8.2) + '@typescript-eslint/visitor-keys': 8.56.1(typescript@5.8.2) transitivePeerDependencies: - typescript - '@typescript-eslint/tsconfig-utils@8.46.4(typescript@4.9.5)': + '@typescript-eslint/tsconfig-utils@8.56.1(typescript@4.9.5)': dependencies: typescript: 4.9.5 - '@typescript-eslint/tsconfig-utils@8.46.4(typescript@5.8.2)': + '@typescript-eslint/tsconfig-utils@8.56.1(typescript@5.8.2)': dependencies: typescript: 5.8.2 @@ -26719,11 +26778,11 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/type-utils@8.46.4(eslint@8.57.1)(typescript@4.9.5)': + '@typescript-eslint/type-utils@8.56.1(eslint@8.57.1)(typescript@4.9.5)': dependencies: - '@typescript-eslint/types': 8.46.4(typescript@4.9.5) - '@typescript-eslint/typescript-estree': 8.46.4(typescript@4.9.5) - '@typescript-eslint/utils': 8.46.4(eslint@8.57.1)(typescript@4.9.5) + '@typescript-eslint/types': 8.56.1(typescript@4.9.5) + '@typescript-eslint/typescript-estree': 8.56.1(typescript@4.9.5) + '@typescript-eslint/utils': 8.56.1(eslint@8.57.1)(typescript@4.9.5) debug: 4.4.3(supports-color@8.1.1) eslint: 8.57.1 ts-api-utils: 2.4.0(typescript@4.9.5) @@ -26731,11 +26790,11 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/type-utils@8.46.4(eslint@9.37.0)(typescript@5.8.2)': + '@typescript-eslint/type-utils@8.56.1(eslint@9.37.0)(typescript@5.8.2)': dependencies: - '@typescript-eslint/types': 8.46.4(typescript@5.8.2) - '@typescript-eslint/typescript-estree': 8.46.4(typescript@5.8.2) - '@typescript-eslint/utils': 8.46.4(eslint@9.37.0)(typescript@5.8.2) + '@typescript-eslint/types': 8.56.1(typescript@5.8.2) + '@typescript-eslint/typescript-estree': 8.56.1(typescript@5.8.2) + '@typescript-eslint/utils': 8.56.1(eslint@9.37.0)(typescript@5.8.2) debug: 4.4.3(supports-color@8.1.1) eslint: 9.37.0 ts-api-utils: 2.4.0(typescript@5.8.2) @@ -26747,11 +26806,11 @@ snapshots: dependencies: typescript: 5.8.2 - '@typescript-eslint/types@8.46.4(typescript@4.9.5)': + '@typescript-eslint/types@8.56.1(typescript@4.9.5)': dependencies: typescript: 4.9.5 - '@typescript-eslint/types@8.46.4(typescript@5.8.2)': + '@typescript-eslint/types@8.56.1(typescript@5.8.2)': dependencies: typescript: 5.8.2 @@ -26770,33 +26829,31 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@8.46.4(typescript@4.9.5)': + '@typescript-eslint/typescript-estree@8.56.1(typescript@4.9.5)': dependencies: - '@typescript-eslint/project-service': 8.46.4(typescript@4.9.5) - '@typescript-eslint/tsconfig-utils': 8.46.4(typescript@4.9.5) - '@typescript-eslint/types': 8.46.4(typescript@4.9.5) - '@typescript-eslint/visitor-keys': 8.46.4(typescript@4.9.5) + '@typescript-eslint/project-service': 8.56.1(typescript@4.9.5) + '@typescript-eslint/tsconfig-utils': 8.56.1(typescript@4.9.5) + '@typescript-eslint/types': 8.56.1(typescript@4.9.5) + '@typescript-eslint/visitor-keys': 8.56.1(typescript@4.9.5) debug: 4.4.3(supports-color@8.1.1) - fast-glob: 3.3.3 - is-glob: 4.0.3 - minimatch: 9.0.5 + minimatch: 10.2.3 semver: 7.7.3 + tinyglobby: 0.2.15 ts-api-utils: 2.4.0(typescript@4.9.5) typescript: 4.9.5 transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@8.46.4(typescript@5.8.2)': + '@typescript-eslint/typescript-estree@8.56.1(typescript@5.8.2)': dependencies: - '@typescript-eslint/project-service': 8.46.4(typescript@5.8.2) - '@typescript-eslint/tsconfig-utils': 8.46.4(typescript@5.8.2) - '@typescript-eslint/types': 8.46.4(typescript@5.8.2) - '@typescript-eslint/visitor-keys': 8.46.4(typescript@5.8.2) + '@typescript-eslint/project-service': 8.56.1(typescript@5.8.2) + '@typescript-eslint/tsconfig-utils': 8.56.1(typescript@5.8.2) + '@typescript-eslint/types': 8.56.1(typescript@5.8.2) + '@typescript-eslint/visitor-keys': 8.56.1(typescript@5.8.2) debug: 4.4.3(supports-color@8.1.1) - fast-glob: 3.3.3 - is-glob: 4.0.3 - minimatch: 9.0.5 + minimatch: 10.2.3 semver: 7.7.3 + tinyglobby: 0.2.15 ts-api-utils: 2.4.0(typescript@5.8.2) typescript: 5.8.2 transitivePeerDependencies: @@ -26858,23 +26915,23 @@ snapshots: - supports-color - typescript - '@typescript-eslint/utils@8.46.4(eslint@8.57.1)(typescript@4.9.5)': + '@typescript-eslint/utils@8.56.1(eslint@8.57.1)(typescript@4.9.5)': dependencies: '@eslint-community/eslint-utils': 4.9.1(eslint@8.57.1) - '@typescript-eslint/scope-manager': 8.46.4(typescript@4.9.5) - '@typescript-eslint/types': 8.46.4(typescript@4.9.5) - '@typescript-eslint/typescript-estree': 8.46.4(typescript@4.9.5) + '@typescript-eslint/scope-manager': 8.56.1(typescript@4.9.5) + '@typescript-eslint/types': 8.56.1(typescript@4.9.5) + '@typescript-eslint/typescript-estree': 8.56.1(typescript@4.9.5) eslint: 8.57.1 typescript: 4.9.5 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.46.4(eslint@9.37.0)(typescript@5.8.2)': + '@typescript-eslint/utils@8.56.1(eslint@9.37.0)(typescript@5.8.2)': dependencies: '@eslint-community/eslint-utils': 4.9.1(eslint@9.37.0) - '@typescript-eslint/scope-manager': 8.46.4(typescript@5.8.2) - '@typescript-eslint/types': 8.46.4(typescript@5.8.2) - '@typescript-eslint/typescript-estree': 8.46.4(typescript@5.8.2) + '@typescript-eslint/scope-manager': 8.56.1(typescript@5.8.2) + '@typescript-eslint/types': 8.56.1(typescript@5.8.2) + '@typescript-eslint/typescript-estree': 8.56.1(typescript@5.8.2) eslint: 9.37.0 typescript: 5.8.2 transitivePeerDependencies: @@ -26887,17 +26944,17 @@ snapshots: transitivePeerDependencies: - typescript - '@typescript-eslint/visitor-keys@8.46.4(typescript@4.9.5)': + '@typescript-eslint/visitor-keys@8.56.1(typescript@4.9.5)': dependencies: - '@typescript-eslint/types': 8.46.4(typescript@4.9.5) - eslint-visitor-keys: 4.2.1 + '@typescript-eslint/types': 8.56.1(typescript@4.9.5) + eslint-visitor-keys: 5.0.1 transitivePeerDependencies: - typescript - '@typescript-eslint/visitor-keys@8.46.4(typescript@5.8.2)': + '@typescript-eslint/visitor-keys@8.56.1(typescript@5.8.2)': dependencies: - '@typescript-eslint/types': 8.46.4(typescript@5.8.2) - eslint-visitor-keys: 4.2.1 + '@typescript-eslint/types': 8.56.1(typescript@5.8.2) + eslint-visitor-keys: 5.0.1 transitivePeerDependencies: - typescript @@ -27301,9 +27358,9 @@ snapshots: string.prototype.padstart: 3.1.7 symbol.prototype.description: 1.0.7 - ajv-draft-04@1.0.0(ajv@8.13.0): + ajv-draft-04@1.0.0(ajv@8.18.0): optionalDependencies: - ajv: 8.13.0 + ajv: 8.18.0 ajv-errors@1.0.1(ajv@6.12.6): dependencies: @@ -27311,19 +27368,19 @@ snapshots: ajv-formats@2.1.1: dependencies: - ajv: 8.13.0 + ajv: 8.18.0 - ajv-formats@3.0.1(ajv@8.13.0): + ajv-formats@3.0.1(ajv@8.18.0): optionalDependencies: - ajv: 8.13.0 + ajv: 8.18.0 ajv-keywords@3.5.2(ajv@6.12.6): dependencies: ajv: 6.12.6 - ajv-keywords@5.1.0(ajv@8.13.0): + ajv-keywords@5.1.0(ajv@8.18.0): dependencies: - ajv: 8.13.0 + ajv: 8.18.0 fast-deep-equal: 3.1.3 ajv@6.12.6: @@ -27340,12 +27397,12 @@ snapshots: require-from-string: 2.0.2 uri-js: 4.4.1 - ajv@8.13.0: + ajv@8.18.0: dependencies: fast-deep-equal: 3.1.3 + fast-uri: 3.1.0 json-schema-traverse: 1.0.0 require-from-string: 2.0.2 - uri-js: 4.4.1 ansi-align@3.0.1: dependencies: @@ -28589,7 +28646,7 @@ snapshots: conf@10.2.0: dependencies: - ajv: 8.13.0 + ajv: 8.18.0 ajv-formats: 2.1.1 atomically: 1.7.0 debounce-fn: 4.0.0 @@ -29914,21 +29971,21 @@ snapshots: '@microsoft/tsdoc': 0.15.0 '@microsoft/tsdoc-config': 0.17.0 - eslint-plugin-tsdoc@0.5.0(eslint@8.57.1)(typescript@4.9.5): + eslint-plugin-tsdoc@0.5.1(eslint@8.57.1)(typescript@4.9.5): dependencies: '@microsoft/tsdoc': 0.16.0 - '@microsoft/tsdoc-config': 0.18.0 - '@typescript-eslint/utils': 8.46.4(eslint@8.57.1)(typescript@4.9.5) + '@microsoft/tsdoc-config': 0.18.1 + '@typescript-eslint/utils': 8.56.1(eslint@8.57.1)(typescript@4.9.5) transitivePeerDependencies: - eslint - supports-color - typescript - eslint-plugin-tsdoc@0.5.0(eslint@9.37.0)(typescript@5.8.2): + eslint-plugin-tsdoc@0.5.1(eslint@9.37.0)(typescript@5.8.2): dependencies: '@microsoft/tsdoc': 0.16.0 - '@microsoft/tsdoc-config': 0.18.0 - '@typescript-eslint/utils': 8.46.4(eslint@9.37.0)(typescript@5.8.2) + '@microsoft/tsdoc-config': 0.18.1 + '@typescript-eslint/utils': 8.56.1(eslint@9.37.0)(typescript@5.8.2) transitivePeerDependencies: - eslint - supports-color @@ -29971,6 +30028,8 @@ snapshots: eslint-visitor-keys@4.2.1: {} + eslint-visitor-keys@5.0.1: {} + eslint@7.11.0: dependencies: '@babel/code-frame': 7.28.6 @@ -30145,7 +30204,7 @@ snapshots: eslint@8.57.1: dependencies: - '@eslint-community/eslint-utils': 4.9.1(eslint@9.37.0) + '@eslint-community/eslint-utils': 4.9.1(eslint@8.57.1) '@eslint-community/regexpp': 4.12.2 '@eslint/eslintrc': 2.1.4 '@eslint/js': 8.57.1 @@ -30633,11 +30692,13 @@ snapshots: fast-safe-stringify@2.1.1: {} + fast-uri@3.1.0: {} + fast-xml-parser@5.2.5: dependencies: strnum: 2.1.2 - fast-xml-parser@5.3.3: + fast-xml-parser@5.3.5: dependencies: strnum: 2.1.2 @@ -31154,7 +31215,7 @@ snapshots: dependencies: foreground-child: 3.3.1 jackspeak: 4.1.1 - minimatch: 10.2.1 + minimatch: 10.2.3 minipass: 7.1.2 package-json-from-dist: 1.0.1 path-scurry: 2.0.1 @@ -32905,7 +32966,7 @@ snapshots: light-my-request@4.12.0: dependencies: - ajv: 8.13.0 + ajv: 8.18.0 cookie: 0.5.0 process-warning: 1.0.0 set-cookie-parser: 2.7.2 @@ -33281,11 +33342,7 @@ snapshots: minimalistic-crypto-utils@1.0.1: {} - minimatch@10.1.2: - dependencies: - '@isaacs/brace-expansion': 5.0.1 - - minimatch@10.2.1: + minimatch@10.2.3: dependencies: brace-expansion: 5.0.2 @@ -33301,10 +33358,6 @@ snapshots: dependencies: brace-expansion: 2.0.2 - minimatch@9.0.5: - dependencies: - brace-expansion: 2.0.2 - minimist@1.2.8: {} minipass-collect@1.0.2: @@ -35368,9 +35421,9 @@ snapshots: schema-utils@4.3.3: dependencies: '@types/json-schema': 7.0.15 - ajv: 8.13.0 + ajv: 8.18.0 ajv-formats: 2.1.1 - ajv-keywords: 5.1.0(ajv@8.13.0) + ajv-keywords: 5.1.0(ajv@8.18.0) secure-json-parse@2.7.0: {} @@ -35478,6 +35531,8 @@ snapshots: dependencies: randombytes: 2.1.0 + serialize-javascript@7.0.3: {} + serve-favicon@2.5.1: dependencies: etag: 1.8.1 @@ -36141,7 +36196,7 @@ snapshots: table@6.9.0: dependencies: - ajv: 8.13.0 + ajv: 8.18.0 lodash.truncate: 4.4.2 slice-ansi: 4.0.0 string-width: 4.2.3 diff --git a/common/config/subspaces/default/repo-state.json b/common/config/subspaces/default/repo-state.json index 9b13d6b9d1a..bd4f7c897f2 100644 --- a/common/config/subspaces/default/repo-state.json +++ b/common/config/subspaces/default/repo-state.json @@ -1,5 +1,5 @@ // DO NOT MODIFY THIS FILE MANUALLY BUT DO COMMIT IT. It is generated and used by Rush. { - "pnpmShrinkwrapHash": "425296840bc63395649600913e66041583bdc287", - "preferredVersionsHash": "93bf435032db8da4a18734f1eaa359c12ad147c1" + "pnpmShrinkwrapHash": "c482c23c40b202ed750549c796c24b3550d0ba6e", + "preferredVersionsHash": "029c99bd6e65c5e1f25e2848340509811ff9753c" } diff --git a/common/config/validation/rush-package-lock.json b/common/config/validation/rush-package-lock.json new file mode 100644 index 00000000000..2f828e4e40e --- /dev/null +++ b/common/config/validation/rush-package-lock.json @@ -0,0 +1,5062 @@ +{ + "name": "ci-rush", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "ci-rush", + "version": "0.0.0", + "license": "MIT", + "dependencies": { + "@microsoft/rush": "5.172.0" + } + }, + "node_modules/@azure/abort-controller": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-2.1.2.tgz", + "integrity": "sha512-nBrLsEWm4J2u5LpAPjxADTlq3trDgVZZXHNKabeXZtpq3d3AbN/KGO82R87rdDz5/lYB024rtEf10/q0urNgsA==", + "license": "MIT", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@azure/core-auth": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/@azure/core-auth/-/core-auth-1.10.1.tgz", + "integrity": "sha512-ykRMW8PjVAn+RS6ww5cmK9U2CyH9p4Q88YJwvUslfuMmN98w/2rdGRLPqJYObapBCdzBVeDgYWdJnFPFb7qzpg==", + "license": "MIT", + "dependencies": { + "@azure/abort-controller": "^2.1.2", + "@azure/core-util": "^1.13.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@azure/core-client": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/@azure/core-client/-/core-client-1.10.1.tgz", + "integrity": "sha512-Nh5PhEOeY6PrnxNPsEHRr9eimxLwgLlpmguQaHKBinFYA/RU9+kOYVOQqOrTsCL+KSxrLLl1gD8Dk5BFW/7l/w==", + "license": "MIT", + "dependencies": { + "@azure/abort-controller": "^2.1.2", + "@azure/core-auth": "^1.10.0", + "@azure/core-rest-pipeline": "^1.22.0", + "@azure/core-tracing": "^1.3.0", + "@azure/core-util": "^1.13.0", + "@azure/logger": "^1.3.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@azure/core-http-compat": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/@azure/core-http-compat/-/core-http-compat-2.3.2.tgz", + "integrity": "sha512-Tf6ltdKzOJEgxZeWLCjMxrxbodB/ZeCbzzA1A2qHbhzAjzjHoBVSUeSl/baT/oHAxhc4qdqVaDKnc2+iE932gw==", + "license": "MIT", + "dependencies": { + "@azure/abort-controller": "^2.1.2" + }, + "engines": { + "node": ">=20.0.0" + }, + "peerDependencies": { + "@azure/core-client": "^1.10.0", + "@azure/core-rest-pipeline": "^1.22.0" + } + }, + "node_modules/@azure/core-lro": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/@azure/core-lro/-/core-lro-2.7.2.tgz", + "integrity": "sha512-0YIpccoX8m/k00O7mDDMdJpbr6mf1yWo2dfmxt5A8XVZVVMz2SSKaEbMCeJRvgQ0IaSlqhjT47p4hVIRRy90xw==", + "license": "MIT", + "dependencies": { + "@azure/abort-controller": "^2.0.0", + "@azure/core-util": "^1.2.0", + "@azure/logger": "^1.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@azure/core-paging": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/@azure/core-paging/-/core-paging-1.6.2.tgz", + "integrity": "sha512-YKWi9YuCU04B55h25cnOYZHxXYtEvQEbKST5vqRga7hWY9ydd3FZHdeQF8pyh+acWZvppw13M/LMGx0LABUVMA==", + "license": "MIT", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@azure/core-rest-pipeline": { + "version": "1.23.0", + "resolved": "https://registry.npmjs.org/@azure/core-rest-pipeline/-/core-rest-pipeline-1.23.0.tgz", + "integrity": "sha512-Evs1INHo+jUjwHi1T6SG6Ua/LHOQBCLuKEEE6efIpt4ZOoNonaT1kP32GoOcdNDbfqsD2445CPri3MubBy5DEQ==", + "license": "MIT", + "dependencies": { + "@azure/abort-controller": "^2.1.2", + "@azure/core-auth": "^1.10.0", + "@azure/core-tracing": "^1.3.0", + "@azure/core-util": "^1.13.0", + "@azure/logger": "^1.3.0", + "@typespec/ts-http-runtime": "^0.3.4", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@azure/core-tracing": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@azure/core-tracing/-/core-tracing-1.3.1.tgz", + "integrity": "sha512-9MWKevR7Hz8kNzzPLfX4EAtGM2b8mr50HPDBvio96bURP/9C+HjdH3sBlLSNNrvRAr5/k/svoH457gB5IKpmwQ==", + "license": "MIT", + "dependencies": { + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@azure/core-util": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/@azure/core-util/-/core-util-1.13.1.tgz", + "integrity": "sha512-XPArKLzsvl0Hf0CaGyKHUyVgF7oDnhKoP85Xv6M4StF/1AhfORhZudHtOyf2s+FcbuQ9dPRAjB8J2KvRRMUK2A==", + "license": "MIT", + "dependencies": { + "@azure/abort-controller": "^2.1.2", + "@typespec/ts-http-runtime": "^0.3.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@azure/core-xml": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@azure/core-xml/-/core-xml-1.5.0.tgz", + "integrity": "sha512-D/sdlJBMJfx7gqoj66PKVmhDDaU6TKA49ptcolxdas29X7AfvLTmfAGLjAcIMBK7UZ2o4lygHIqVckOlQU3xWw==", + "license": "MIT", + "dependencies": { + "fast-xml-parser": "^5.0.7", + "tslib": "^2.8.1" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@azure/identity": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/@azure/identity/-/identity-4.5.0.tgz", + "integrity": "sha512-EknvVmtBuSIic47xkOqyNabAme0RYTw52BTMz8eBgU1ysTyMrD1uOoM+JdS0J/4Yfp98IBT3osqq3BfwSaNaGQ==", + "license": "MIT", + "dependencies": { + "@azure/abort-controller": "^2.0.0", + "@azure/core-auth": "^1.9.0", + "@azure/core-client": "^1.9.2", + "@azure/core-rest-pipeline": "^1.17.0", + "@azure/core-tracing": "^1.0.0", + "@azure/core-util": "^1.11.0", + "@azure/logger": "^1.0.0", + "@azure/msal-browser": "^3.26.1", + "@azure/msal-node": "^2.15.0", + "events": "^3.0.0", + "jws": "^4.0.0", + "open": "^8.0.0", + "stoppable": "^1.1.0", + "tslib": "^2.2.0" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@azure/logger": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@azure/logger/-/logger-1.3.0.tgz", + "integrity": "sha512-fCqPIfOcLE+CGqGPd66c8bZpwAji98tZ4JI9i/mlTNTlsIWslCfpg48s/ypyLxZTump5sypjrKn2/kY7q8oAbA==", + "license": "MIT", + "dependencies": { + "@typespec/ts-http-runtime": "^0.3.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@azure/msal-browser": { + "version": "3.30.0", + "resolved": "https://registry.npmjs.org/@azure/msal-browser/-/msal-browser-3.30.0.tgz", + "integrity": "sha512-I0XlIGVdM4E9kYP5eTjgW8fgATdzwxJvQ6bm2PNiHaZhEuUz47NYw1xHthC9R+lXz4i9zbShS0VdLyxd7n0GGA==", + "license": "MIT", + "dependencies": { + "@azure/msal-common": "14.16.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@azure/msal-common": { + "version": "14.16.1", + "resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-14.16.1.tgz", + "integrity": "sha512-nyxsA6NA4SVKh5YyRpbSXiMr7oQbwark7JU9LMeg6tJYTSPyAGkdx61wPT4gyxZfxlSxMMEyAsWaubBlNyIa1w==", + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@azure/msal-node": { + "version": "2.16.3", + "resolved": "https://registry.npmjs.org/@azure/msal-node/-/msal-node-2.16.3.tgz", + "integrity": "sha512-CO+SE4weOsfJf+C5LM8argzvotrXw252/ZU6SM2Tz63fEblhH1uuVaaO4ISYFuN4Q6BhTo7I3qIdi8ydUQCqhw==", + "license": "MIT", + "dependencies": { + "@azure/msal-common": "14.16.1", + "jsonwebtoken": "^9.0.0", + "uuid": "^8.3.0" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/@azure/storage-blob": { + "version": "12.26.0", + "resolved": "https://registry.npmjs.org/@azure/storage-blob/-/storage-blob-12.26.0.tgz", + "integrity": "sha512-SriLPKezypIsiZ+TtlFfE46uuBIap2HeaQVS78e1P7rz5OSbq0rsd52WE1mC5f7vAeLiXqv7I7oRhL3WFZEw3Q==", + "license": "MIT", + "dependencies": { + "@azure/abort-controller": "^2.1.2", + "@azure/core-auth": "^1.4.0", + "@azure/core-client": "^1.6.2", + "@azure/core-http-compat": "^2.0.0", + "@azure/core-lro": "^2.2.0", + "@azure/core-paging": "^1.1.1", + "@azure/core-rest-pipeline": "^1.10.1", + "@azure/core-tracing": "^1.1.2", + "@azure/core-util": "^1.6.1", + "@azure/core-xml": "^1.4.3", + "@azure/logger": "^1.0.0", + "events": "^3.0.0", + "tslib": "^2.2.0" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.29.0", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.0.tgz", + "integrity": "sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==", + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.28.5", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@inquirer/external-editor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@inquirer/external-editor/-/external-editor-1.0.3.tgz", + "integrity": "sha512-RWbSrDiYmO4LbejWY7ttpxczuwQyZLBUyygsA9Nsv95hpzUWwnNTVQmAq3xuh7vNwCp07UTmE5i11XAEExx4RA==", + "license": "MIT", + "dependencies": { + "chardet": "^2.1.1", + "iconv-lite": "^0.7.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@isaacs/fs-minipass": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz", + "integrity": "sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==", + "license": "ISC", + "dependencies": { + "minipass": "^7.0.4" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@isaacs/fs-minipass/node_modules/minipass": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.3.tgz", + "integrity": "sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==", + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/@jsep-plugin/assignment": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@jsep-plugin/assignment/-/assignment-1.3.0.tgz", + "integrity": "sha512-VVgV+CXrhbMI3aSusQyclHkenWSAm95WaiKrMxRFam3JSUiIaQjoMIw2sEs/OX4XifnqeQUN4DYbJjlA8EfktQ==", + "license": "MIT", + "engines": { + "node": ">= 10.16.0" + }, + "peerDependencies": { + "jsep": "^0.4.0||^1.0.0" + } + }, + "node_modules/@jsep-plugin/regex": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@jsep-plugin/regex/-/regex-1.0.4.tgz", + "integrity": "sha512-q7qL4Mgjs1vByCaTnDFcBnV9HS7GVPJX5vyVoCgZHNSC9rjwIlmbXG5sUuorR5ndfHAIlJ8pVStxvjXHbNvtUg==", + "license": "MIT", + "engines": { + "node": ">= 10.16.0" + }, + "peerDependencies": { + "jsep": "^0.4.0||^1.0.0" + } + }, + "node_modules/@microsoft/rush": { + "version": "5.172.0", + "resolved": "https://registry.npmjs.org/@microsoft/rush/-/rush-5.172.0.tgz", + "integrity": "sha512-hEJqMY0GeahqCpeQ/AJhZpuq6L8tBviGFUnht+cKx28++XcmY4NuyRegfYxvfUSRwcYgDMHaXbA8yDddVAgygg==", + "license": "MIT", + "dependencies": { + "@microsoft/rush-lib": "5.172.0", + "@rushstack/node-core-library": "5.20.3", + "@rushstack/terminal": "0.22.3", + "semver": "~7.5.4" + }, + "bin": { + "rush": "bin/rush", + "rush-pnpm": "bin/rush-pnpm", + "rushx": "bin/rushx" + }, + "engines": { + "node": ">=5.6.0" + } + }, + "node_modules/@microsoft/rush-lib": { + "version": "5.172.0", + "resolved": "https://registry.npmjs.org/@microsoft/rush-lib/-/rush-lib-5.172.0.tgz", + "integrity": "sha512-WFPz7IdfVU0h3Q15RYWTvl46d2QKljVYGm2voE6zf52gs+ElEkPGGLZuCYYphIE5UmlrdSLr52mRX6DKqTsbJg==", + "license": "MIT", + "dependencies": { + "@pnpm/link-bins": "~5.3.7", + "@rushstack/credential-cache": "0.2.7", + "@rushstack/heft-config-file": "0.20.3", + "@rushstack/lookup-by-path": "0.9.7", + "@rushstack/node-core-library": "5.20.3", + "@rushstack/npm-check-fork": "0.2.7", + "@rushstack/package-deps-hash": "4.7.7", + "@rushstack/package-extractor": "0.12.8", + "@rushstack/rig-package": "0.7.2", + "@rushstack/rush-amazon-s3-build-cache-plugin": "5.172.0", + "@rushstack/rush-azure-storage-build-cache-plugin": "5.172.0", + "@rushstack/rush-http-build-cache-plugin": "5.172.0", + "@rushstack/rush-pnpm-kit-v10": "0.2.8", + "@rushstack/rush-pnpm-kit-v8": "0.2.8", + "@rushstack/rush-pnpm-kit-v9": "0.2.8", + "@rushstack/stream-collator": "4.2.7", + "@rushstack/terminal": "0.22.3", + "@rushstack/ts-command-line": "5.3.3", + "@yarnpkg/lockfile": "~1.0.2", + "builtin-modules": "~3.1.0", + "cli-table": "~0.3.1", + "dependency-path": "~9.2.8", + "dotenv": "~16.4.7", + "fast-glob": "~3.3.1", + "figures": "3.0.0", + "git-repo-info": "~2.1.0", + "glob-escape": "~0.0.2", + "https-proxy-agent": "~5.0.0", + "ignore": "~5.1.6", + "inquirer": "~8.2.7", + "js-yaml": "~4.1.0", + "npm-package-arg": "~6.1.0", + "object-hash": "3.0.0", + "pnpm-sync-lib": "0.3.3", + "read-package-tree": "~5.1.5", + "rxjs": "~6.6.7", + "semver": "~7.5.4", + "ssri": "~8.0.0", + "strict-uri-encode": "~2.0.0", + "tapable": "2.2.1", + "tar": "~7.5.6", + "true-case-path": "~2.2.1" + }, + "engines": { + "node": ">=5.6.0" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@pnpm/constants": { + "version": "1001.3.1", + "resolved": "https://registry.npmjs.org/@pnpm/constants/-/constants-1001.3.1.tgz", + "integrity": "sha512-2hf0s4pVrVEH8RvdJJ7YRKjQdiG8m0iAT26TTqXnCbK30kKwJW69VLmP5tED5zstmDRXcOeH5eRcrpkdwczQ9g==", + "license": "MIT", + "engines": { + "node": ">=18.12" + }, + "funding": { + "url": "https://opencollective.com/pnpm" + } + }, + "node_modules/@pnpm/crypto.base32-hash": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@pnpm/crypto.base32-hash/-/crypto.base32-hash-2.0.0.tgz", + "integrity": "sha512-3ttOeHBpmWRbgJrpDQ8Nwd3W8s8iuiP5YZM0JRyKWaMtX8lu9d7/AKyxPmhYsMJuN+q/1dwHa7QFeDZJ53b0oA==", + "license": "MIT", + "dependencies": { + "rfc4648": "^1.5.2" + }, + "engines": { + "node": ">=16.14" + }, + "funding": { + "url": "https://opencollective.com/pnpm" + } + }, + "node_modules/@pnpm/crypto.hash": { + "version": "1000.1.1", + "resolved": "https://registry.npmjs.org/@pnpm/crypto.hash/-/crypto.hash-1000.1.1.tgz", + "integrity": "sha512-lb5kwXaOXdIW/4bkLLmtM9HEVRvp2eIvp+TrdawcPoaptgA/5f0/sRG0P52BF8dFqeNDj+1tGdqH89WQEqJnxA==", + "license": "MIT", + "dependencies": { + "@pnpm/crypto.polyfill": "1000.1.0", + "@pnpm/graceful-fs": "1000.0.0", + "ssri": "10.0.5" + }, + "engines": { + "node": ">=18.12" + }, + "funding": { + "url": "https://opencollective.com/pnpm" + } + }, + "node_modules/@pnpm/crypto.hash/node_modules/minipass": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.3.tgz", + "integrity": "sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==", + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/@pnpm/crypto.hash/node_modules/ssri": { + "version": "10.0.5", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.5.tgz", + "integrity": "sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A==", + "license": "ISC", + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@pnpm/crypto.polyfill": { + "version": "1000.1.0", + "resolved": "https://registry.npmjs.org/@pnpm/crypto.polyfill/-/crypto.polyfill-1000.1.0.tgz", + "integrity": "sha512-tNe7a6U4rCpxLMBaR0SIYTdjxGdL0Vwb3G1zY8++sPtHSvy7qd54u8CIB0Z+Y6t5tc9pNYMYCMwhE/wdSY7ltg==", + "license": "MIT", + "engines": { + "node": ">=18.12" + }, + "funding": { + "url": "https://opencollective.com/pnpm" + } + }, + "node_modules/@pnpm/dependency-path": { + "version": "1001.1.10", + "resolved": "https://registry.npmjs.org/@pnpm/dependency-path/-/dependency-path-1001.1.10.tgz", + "integrity": "sha512-PNImtV2SmNTDpLi4HdN86tJPmsOeIxm4VhmxgBVsMrJPEBfkNEWFcflR3wU6XVn/26g9qWdvlNHaawtCjeB93Q==", + "license": "MIT", + "dependencies": { + "@pnpm/crypto.hash": "1000.2.2", + "@pnpm/types": "1001.3.0", + "semver": "^7.7.1" + }, + "engines": { + "node": ">=18.12" + }, + "funding": { + "url": "https://opencollective.com/pnpm" + } + }, + "node_modules/@pnpm/dependency-path-pnpm-v10": { + "name": "@pnpm/dependency-path", + "version": "1000.0.9", + "resolved": "https://registry.npmjs.org/@pnpm/dependency-path/-/dependency-path-1000.0.9.tgz", + "integrity": "sha512-0AhabApfiq3EEYeed5HKQEU3ftkrfyKTNgkMH9esGdp2yc+62Zu7eWFf8WW6IGyitDQPLWGYjSEWDC9Bvv8nPg==", + "license": "MIT", + "dependencies": { + "@pnpm/crypto.hash": "1000.1.1", + "@pnpm/types": "1000.6.0", + "semver": "^7.7.1" + }, + "engines": { + "node": ">=18.12" + }, + "funding": { + "url": "https://opencollective.com/pnpm" + } + }, + "node_modules/@pnpm/dependency-path-pnpm-v10/node_modules/@pnpm/types": { + "version": "1000.6.0", + "resolved": "https://registry.npmjs.org/@pnpm/types/-/types-1000.6.0.tgz", + "integrity": "sha512-6PsMNe98VKPGcg6LnXSW/LE3YfJ77nj+bPKiRjYRWAQLZ+xXjEQRaR0dAuyjCmchlv4wR/hpnMVRS21/fCod5w==", + "license": "MIT", + "engines": { + "node": ">=18.12" + }, + "funding": { + "url": "https://opencollective.com/pnpm" + } + }, + "node_modules/@pnpm/dependency-path-pnpm-v10/node_modules/semver": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@pnpm/dependency-path-pnpm-v8": { + "name": "@pnpm/dependency-path", + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/@pnpm/dependency-path/-/dependency-path-2.1.8.tgz", + "integrity": "sha512-ywBaTjy0iSEF7lH3DlF8UXrdL2bw4AQFV2tTOeNeY7wc1W5CE+RHSJhf9MXBYcZPesqGRrPiU7Pimj3l05L9VA==", + "license": "MIT", + "dependencies": { + "@pnpm/crypto.base32-hash": "2.0.0", + "@pnpm/types": "9.4.2", + "encode-registry": "^3.0.1", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=16.14" + }, + "funding": { + "url": "https://opencollective.com/pnpm" + } + }, + "node_modules/@pnpm/dependency-path-pnpm-v8/node_modules/@pnpm/types": { + "version": "9.4.2", + "resolved": "https://registry.npmjs.org/@pnpm/types/-/types-9.4.2.tgz", + "integrity": "sha512-g1hcF8Nv4gd76POilz9gD4LITAPXOe5nX4ijgr8ixCbLQZfcpYiMfJ+C1RlMNRUDo8vhlNB4O3bUlxmT6EAQXA==", + "license": "MIT", + "engines": { + "node": ">=16.14" + }, + "funding": { + "url": "https://opencollective.com/pnpm" + } + }, + "node_modules/@pnpm/dependency-path-pnpm-v9": { + "name": "@pnpm/dependency-path", + "version": "5.1.7", + "resolved": "https://registry.npmjs.org/@pnpm/dependency-path/-/dependency-path-5.1.7.tgz", + "integrity": "sha512-MKCyaTy1r9fhBXAnhDZNBVgo6ThPnicwJEG203FDp7pGhD7NruS/FhBI+uMd7GNsK3D7aIFCDAgbWpNTXn/eWw==", + "license": "MIT", + "dependencies": { + "@pnpm/crypto.base32-hash": "3.0.1", + "@pnpm/types": "12.2.0", + "semver": "^7.6.2" + }, + "engines": { + "node": ">=18.12" + }, + "funding": { + "url": "https://opencollective.com/pnpm" + } + }, + "node_modules/@pnpm/dependency-path-pnpm-v9/node_modules/@pnpm/crypto.base32-hash": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@pnpm/crypto.base32-hash/-/crypto.base32-hash-3.0.1.tgz", + "integrity": "sha512-DM4RR/tvB7tMb2FekL0Q97A5PCXNyEC+6ht8SaufAUFSJNxeozqHw9PHTZR03mzjziPzNQLOld0pNINBX3srtw==", + "license": "MIT", + "dependencies": { + "@pnpm/crypto.polyfill": "1.0.0", + "rfc4648": "^1.5.3" + }, + "engines": { + "node": ">=18.12" + }, + "funding": { + "url": "https://opencollective.com/pnpm" + } + }, + "node_modules/@pnpm/dependency-path-pnpm-v9/node_modules/@pnpm/crypto.polyfill": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@pnpm/crypto.polyfill/-/crypto.polyfill-1.0.0.tgz", + "integrity": "sha512-WbmsqqcUXKKaAF77ox1TQbpZiaQcr26myuMUu+WjUtoWYgD3VP6iKYEvSx35SZ6G2L316lu+pv+40A2GbWJc1w==", + "license": "MIT", + "engines": { + "node": ">=18.12" + }, + "funding": { + "url": "https://opencollective.com/pnpm" + } + }, + "node_modules/@pnpm/dependency-path-pnpm-v9/node_modules/@pnpm/types": { + "version": "12.2.0", + "resolved": "https://registry.npmjs.org/@pnpm/types/-/types-12.2.0.tgz", + "integrity": "sha512-5RtwWhX39j89/Tmyv2QSlpiNjErA357T/8r1Dkg+2lD3P7RuS7Xi2tChvmOC3VlezEFNcWnEGCOeKoGRkDuqFA==", + "license": "MIT", + "engines": { + "node": ">=18.12" + }, + "funding": { + "url": "https://opencollective.com/pnpm" + } + }, + "node_modules/@pnpm/dependency-path-pnpm-v9/node_modules/semver": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@pnpm/dependency-path/node_modules/@pnpm/crypto.hash": { + "version": "1000.2.2", + "resolved": "https://registry.npmjs.org/@pnpm/crypto.hash/-/crypto.hash-1000.2.2.tgz", + "integrity": "sha512-W8pLZvXWLlGG5p0Z2nCvtBhlM6uuTcbAbsS15wlGS31jBBJKJW2udLoFeM7qfWPo7E2PqRPGxca7APpVYAjJhw==", + "license": "MIT", + "dependencies": { + "@pnpm/crypto.polyfill": "1000.1.0", + "@pnpm/graceful-fs": "1000.1.0", + "ssri": "10.0.5" + }, + "engines": { + "node": ">=18.12" + }, + "funding": { + "url": "https://opencollective.com/pnpm" + } + }, + "node_modules/@pnpm/dependency-path/node_modules/@pnpm/graceful-fs": { + "version": "1000.1.0", + "resolved": "https://registry.npmjs.org/@pnpm/graceful-fs/-/graceful-fs-1000.1.0.tgz", + "integrity": "sha512-EsMX4slK0qJN2AR0/AYohY5m0HQNYGMNe+jhN74O994zp22/WbX+PbkIKyw3UQn39yQm2+z6SgwklDxbeapsmQ==", + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.11" + }, + "engines": { + "node": ">=18.12" + }, + "funding": { + "url": "https://opencollective.com/pnpm" + } + }, + "node_modules/@pnpm/dependency-path/node_modules/@pnpm/types": { + "version": "1001.3.0", + "resolved": "https://registry.npmjs.org/@pnpm/types/-/types-1001.3.0.tgz", + "integrity": "sha512-NLTXheat/u7OEGg5M5vF6Z85zx8uKUZE0+whtX/sbFV2XL48RdnOWGPTKYuVVkv8M+launaLUTgGEXNs/ess2w==", + "license": "MIT", + "engines": { + "node": ">=18.12" + }, + "funding": { + "url": "https://opencollective.com/pnpm" + } + }, + "node_modules/@pnpm/dependency-path/node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "license": "ISC" + }, + "node_modules/@pnpm/dependency-path/node_modules/minipass": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.3.tgz", + "integrity": "sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==", + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/@pnpm/dependency-path/node_modules/semver": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@pnpm/dependency-path/node_modules/ssri": { + "version": "10.0.5", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.5.tgz", + "integrity": "sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A==", + "license": "ISC", + "dependencies": { + "minipass": "^7.0.3" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@pnpm/error": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@pnpm/error/-/error-1.4.0.tgz", + "integrity": "sha512-vxkRrkneBPVmP23kyjnYwVOtipwlSl6UfL+h+Xa3TrABJTz5rYBXemlTsU5BzST8U4pD7YDkTb3SQu+MMuIDKA==", + "license": "MIT", + "engines": { + "node": ">=10.16" + }, + "funding": { + "url": "https://opencollective.com/pnpm" + } + }, + "node_modules/@pnpm/git-utils": { + "version": "1000.0.0", + "resolved": "https://registry.npmjs.org/@pnpm/git-utils/-/git-utils-1000.0.0.tgz", + "integrity": "sha512-W6isNTNgB26n6dZUgwCw6wly+uHQ2Zh5QiRKY1HHMbLAlsnZOxsSNGnuS9euKWHxDftvPfU7uR8XB5x95T5zPQ==", + "license": "MIT", + "dependencies": { + "execa": "npm:safe-execa@0.1.2" + }, + "engines": { + "node": ">=18.12" + }, + "funding": { + "url": "https://opencollective.com/pnpm" + } + }, + "node_modules/@pnpm/graceful-fs": { + "version": "1000.0.0", + "resolved": "https://registry.npmjs.org/@pnpm/graceful-fs/-/graceful-fs-1000.0.0.tgz", + "integrity": "sha512-RvMEliAmcfd/4UoaYQ93DLQcFeqit78jhYmeJJVPxqFGmj0jEcb9Tu0eAOXr7tGP3eJHpgvPbTU4o6pZ1bJhxg==", + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.11" + }, + "engines": { + "node": ">=18.12" + }, + "funding": { + "url": "https://opencollective.com/pnpm" + } + }, + "node_modules/@pnpm/graceful-fs/node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "license": "ISC" + }, + "node_modules/@pnpm/link-bins": { + "version": "5.3.25", + "resolved": "https://registry.npmjs.org/@pnpm/link-bins/-/link-bins-5.3.25.tgz", + "integrity": "sha512-9Xq8lLNRHFDqvYPXPgaiKkZ4rtdsm7izwM/cUsFDc5IMnG0QYIVBXQbgwhz2UvjUotbJrvfKLJaCfA3NGBnLDg==", + "license": "MIT", + "dependencies": { + "@pnpm/error": "1.4.0", + "@pnpm/package-bins": "4.1.0", + "@pnpm/read-modules-dir": "2.0.3", + "@pnpm/read-package-json": "4.0.0", + "@pnpm/read-project-manifest": "1.1.7", + "@pnpm/types": "6.4.0", + "@zkochan/cmd-shim": "^5.0.0", + "is-subdir": "^1.1.1", + "is-windows": "^1.0.2", + "mz": "^2.7.0", + "normalize-path": "^3.0.0", + "p-settle": "^4.1.1", + "ramda": "^0.27.1" + }, + "engines": { + "node": ">=10.16" + }, + "funding": { + "url": "https://opencollective.com/pnpm" + } + }, + "node_modules/@pnpm/lockfile-types": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@pnpm/lockfile-types/-/lockfile-types-5.1.5.tgz", + "integrity": "sha512-02FP0HynzX+2DcuPtuMy7PH+kLIC0pevAydAOK+zug2bwdlSLErlvSkc+4+3dw60eRWgUXUqyfO2eR/Ansdbng==", + "license": "MIT", + "dependencies": { + "@pnpm/types": "9.4.2" + }, + "engines": { + "node": ">=16.14" + }, + "funding": { + "url": "https://opencollective.com/pnpm" + } + }, + "node_modules/@pnpm/lockfile-types-pnpm-lock-v6": { + "name": "@pnpm/lockfile-types", + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@pnpm/lockfile-types/-/lockfile-types-5.1.5.tgz", + "integrity": "sha512-02FP0HynzX+2DcuPtuMy7PH+kLIC0pevAydAOK+zug2bwdlSLErlvSkc+4+3dw60eRWgUXUqyfO2eR/Ansdbng==", + "license": "MIT", + "dependencies": { + "@pnpm/types": "9.4.2" + }, + "engines": { + "node": ">=16.14" + }, + "funding": { + "url": "https://opencollective.com/pnpm" + } + }, + "node_modules/@pnpm/lockfile-types-pnpm-lock-v6/node_modules/@pnpm/types": { + "version": "9.4.2", + "resolved": "https://registry.npmjs.org/@pnpm/types/-/types-9.4.2.tgz", + "integrity": "sha512-g1hcF8Nv4gd76POilz9gD4LITAPXOe5nX4ijgr8ixCbLQZfcpYiMfJ+C1RlMNRUDo8vhlNB4O3bUlxmT6EAQXA==", + "license": "MIT", + "engines": { + "node": ">=16.14" + }, + "funding": { + "url": "https://opencollective.com/pnpm" + } + }, + "node_modules/@pnpm/lockfile-types/node_modules/@pnpm/types": { + "version": "9.4.2", + "resolved": "https://registry.npmjs.org/@pnpm/types/-/types-9.4.2.tgz", + "integrity": "sha512-g1hcF8Nv4gd76POilz9gD4LITAPXOe5nX4ijgr8ixCbLQZfcpYiMfJ+C1RlMNRUDo8vhlNB4O3bUlxmT6EAQXA==", + "license": "MIT", + "engines": { + "node": ">=16.14" + }, + "funding": { + "url": "https://opencollective.com/pnpm" + } + }, + "node_modules/@pnpm/lockfile.fs-pnpm-lock-v9": { + "name": "@pnpm/lockfile.fs", + "version": "1001.1.32", + "resolved": "https://registry.npmjs.org/@pnpm/lockfile.fs/-/lockfile.fs-1001.1.32.tgz", + "integrity": "sha512-I+aHBjbgDy2Ftxla8FVZkx/ARuKOyGag1zaCuVuZDzH4Xb2ETUuTeGAf1GTr1XqM7UnCNse1GKgr5KZJ0cz43w==", + "license": "MIT", + "dependencies": { + "@pnpm/constants": "1001.3.1", + "@pnpm/dependency-path": "1001.1.10", + "@pnpm/error": "1000.1.0", + "@pnpm/git-utils": "1000.0.0", + "@pnpm/lockfile.merger": "1001.0.20", + "@pnpm/lockfile.types": "1002.1.0", + "@pnpm/lockfile.utils": "1004.0.3", + "@pnpm/object.key-sorting": "1000.0.1", + "@pnpm/types": "1001.3.0", + "@zkochan/rimraf": "^3.0.2", + "comver-to-semver": "^1.0.0", + "js-yaml": "npm:@zkochan/js-yaml@0.0.11", + "normalize-path": "^3.0.0", + "ramda": "npm:@pnpm/ramda@0.28.1", + "semver": "^7.7.4", + "strip-bom": "^4.0.0", + "write-file-atomic": "^5.0.1" + }, + "engines": { + "node": ">=18.12" + }, + "funding": { + "url": "https://opencollective.com/pnpm" + }, + "peerDependencies": { + "@pnpm/logger": "^1001.0.1" + } + }, + "node_modules/@pnpm/lockfile.fs-pnpm-lock-v9/node_modules/@pnpm/error": { + "version": "1000.1.0", + "resolved": "https://registry.npmjs.org/@pnpm/error/-/error-1000.1.0.tgz", + "integrity": "sha512-Dqc2IJJPjUatwc9Letw+vG29rnaMrDGi5g6WCx1HiZYm0obXbTmLygeRafMbgf+sLKXrWE1shOeiayQuczBdoA==", + "license": "MIT", + "dependencies": { + "@pnpm/constants": "1001.3.1" + }, + "engines": { + "node": ">=18.12" + }, + "funding": { + "url": "https://opencollective.com/pnpm" + } + }, + "node_modules/@pnpm/lockfile.fs-pnpm-lock-v9/node_modules/@pnpm/types": { + "version": "1001.3.0", + "resolved": "https://registry.npmjs.org/@pnpm/types/-/types-1001.3.0.tgz", + "integrity": "sha512-NLTXheat/u7OEGg5M5vF6Z85zx8uKUZE0+whtX/sbFV2XL48RdnOWGPTKYuVVkv8M+launaLUTgGEXNs/ess2w==", + "license": "MIT", + "engines": { + "node": ">=18.12" + }, + "funding": { + "url": "https://opencollective.com/pnpm" + } + }, + "node_modules/@pnpm/lockfile.fs-pnpm-lock-v9/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "license": "Python-2.0" + }, + "node_modules/@pnpm/lockfile.fs-pnpm-lock-v9/node_modules/js-yaml": { + "name": "@zkochan/js-yaml", + "version": "0.0.11", + "resolved": "https://registry.npmjs.org/@zkochan/js-yaml/-/js-yaml-0.0.11.tgz", + "integrity": "sha512-SO+h5Jg079r2JvGle0jbdtk1EY7ppu6TGzmfWTp3Gy61IEb1OVKBocJ6ydTn4++nYFNfRKYenI2MniZQwsM9KQ==", + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@pnpm/lockfile.fs-pnpm-lock-v9/node_modules/ramda": { + "name": "@pnpm/ramda", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@pnpm/ramda/-/ramda-0.28.1.tgz", + "integrity": "sha512-zcAG+lvU0fMziNeGXpPyCyCJYp5ZVrPElEE4t14jAmViaihohocZ+dDkcRIyAomox8pQsuZnv1EyHR+pOhmUWw==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/ramda" + } + }, + "node_modules/@pnpm/lockfile.fs-pnpm-lock-v9/node_modules/semver": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@pnpm/lockfile.fs-pnpm-lock-v9/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@pnpm/lockfile.fs-pnpm-lock-v9/node_modules/write-file-atomic": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz", + "integrity": "sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==", + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@pnpm/lockfile.merger": { + "version": "1001.0.20", + "resolved": "https://registry.npmjs.org/@pnpm/lockfile.merger/-/lockfile.merger-1001.0.20.tgz", + "integrity": "sha512-93MKB5fObr49PMRoDZVcUewe2uuR6TRj8In0y1CeXeDzXY1SPVKZsODCVvAA2z2UxZ1YXKcw9Oaak31E9ln5CQ==", + "license": "MIT", + "dependencies": { + "@pnpm/lockfile.types": "1002.1.0", + "@pnpm/types": "1001.3.0", + "comver-to-semver": "^1.0.0", + "ramda": "npm:@pnpm/ramda@0.28.1", + "semver": "^7.7.4" + }, + "engines": { + "node": ">=18.12" + }, + "funding": { + "url": "https://opencollective.com/pnpm" + } + }, + "node_modules/@pnpm/lockfile.merger/node_modules/@pnpm/types": { + "version": "1001.3.0", + "resolved": "https://registry.npmjs.org/@pnpm/types/-/types-1001.3.0.tgz", + "integrity": "sha512-NLTXheat/u7OEGg5M5vF6Z85zx8uKUZE0+whtX/sbFV2XL48RdnOWGPTKYuVVkv8M+launaLUTgGEXNs/ess2w==", + "license": "MIT", + "engines": { + "node": ">=18.12" + }, + "funding": { + "url": "https://opencollective.com/pnpm" + } + }, + "node_modules/@pnpm/lockfile.merger/node_modules/ramda": { + "name": "@pnpm/ramda", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@pnpm/ramda/-/ramda-0.28.1.tgz", + "integrity": "sha512-zcAG+lvU0fMziNeGXpPyCyCJYp5ZVrPElEE4t14jAmViaihohocZ+dDkcRIyAomox8pQsuZnv1EyHR+pOhmUWw==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/ramda" + } + }, + "node_modules/@pnpm/lockfile.merger/node_modules/semver": { + "version": "7.7.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz", + "integrity": "sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@pnpm/lockfile.types": { + "version": "1002.1.0", + "resolved": "https://registry.npmjs.org/@pnpm/lockfile.types/-/lockfile.types-1002.1.0.tgz", + "integrity": "sha512-Oa9Fhwo4Ipodj3hyUPC5wUt5ucVkuttyct2DbFUkB79Fq5HL9MHHQ+JFYh03eajmLqWrN1t8+6DbmcKqRtNjNg==", + "license": "MIT", + "dependencies": { + "@pnpm/patching.types": "1000.1.0", + "@pnpm/resolver-base": "1005.4.1", + "@pnpm/types": "1001.3.0" + }, + "engines": { + "node": ">=18.12" + }, + "funding": { + "url": "https://opencollective.com/pnpm" + } + }, + "node_modules/@pnpm/lockfile.types-900": { + "name": "@pnpm/lockfile.types", + "version": "900.0.0", + "resolved": "https://registry.npmjs.org/@pnpm/lockfile.types/-/lockfile.types-900.0.0.tgz", + "integrity": "sha512-/4+3CAu4uIjx0ln1DYXNdj0qKJ3wyRDY+RS+eFzV6OHjreaTKWsF2WcjigYp1M5mxL4kj2RsRGgBGEyKtCfEWg==", + "license": "MIT", + "dependencies": { + "@pnpm/patching.types": "900.0.0", + "@pnpm/types": "900.0.0" + }, + "engines": { + "node": ">=18.12" + }, + "funding": { + "url": "https://opencollective.com/pnpm" + } + }, + "node_modules/@pnpm/lockfile.types-900/node_modules/@pnpm/patching.types": { + "version": "900.0.0", + "resolved": "https://registry.npmjs.org/@pnpm/patching.types/-/patching.types-900.0.0.tgz", + "integrity": "sha512-A/3kgRD4Xy2tBMPjOBdx5ZdgmpUobphzWkqDB72S5SIB6gdyCg32AUV0/aO12DwMxpT7kyqMhkkynUOPBfdlUQ==", + "license": "MIT", + "engines": { + "node": ">=18.12" + }, + "funding": { + "url": "https://opencollective.com/pnpm" + } + }, + "node_modules/@pnpm/lockfile.types-900/node_modules/@pnpm/types": { + "version": "900.0.0", + "resolved": "https://registry.npmjs.org/@pnpm/types/-/types-900.0.0.tgz", + "integrity": "sha512-GucC9h/EVbU03Kl7M/FqVes1s5RCQaGCW2f41lFA7VqqHWQElR6k1q33iF6f6fXDUSCdzB1IUxSq9ghP2J+8Pw==", + "license": "MIT", + "engines": { + "node": ">=18.12" + }, + "funding": { + "url": "https://opencollective.com/pnpm" + } + }, + "node_modules/@pnpm/lockfile.types-pnpm-lock-v9": { + "name": "@pnpm/lockfile.types", + "version": "1001.1.0", + "resolved": "https://registry.npmjs.org/@pnpm/lockfile.types/-/lockfile.types-1001.1.0.tgz", + "integrity": "sha512-/rfDUV8M9iMm0QXahHPv6SD6eKNkrMXlhECJVhDkdL4NIifcv6/HZwYtxd0PIndExz04+OE+iV9K8zKG9i/OEA==", + "license": "MIT", + "dependencies": { + "@pnpm/patching.types": "1000.1.0", + "@pnpm/types": "1000.7.0" + }, + "engines": { + "node": ">=18.12" + }, + "funding": { + "url": "https://opencollective.com/pnpm" + } + }, + "node_modules/@pnpm/lockfile.types-pnpm-lock-v9/node_modules/@pnpm/types": { + "version": "1000.7.0", + "resolved": "https://registry.npmjs.org/@pnpm/types/-/types-1000.7.0.tgz", + "integrity": "sha512-1s7FvDqmOEIeFGLUj/VO8sF5lGFxeE/1WALrBpfZhDnMXY/x8FbmuygTTE5joWifebcZ8Ww8Kw2CgBoStsIevQ==", + "license": "MIT", + "engines": { + "node": ">=18.12" + }, + "funding": { + "url": "https://opencollective.com/pnpm" + } + }, + "node_modules/@pnpm/lockfile.types/node_modules/@pnpm/types": { + "version": "1001.3.0", + "resolved": "https://registry.npmjs.org/@pnpm/types/-/types-1001.3.0.tgz", + "integrity": "sha512-NLTXheat/u7OEGg5M5vF6Z85zx8uKUZE0+whtX/sbFV2XL48RdnOWGPTKYuVVkv8M+launaLUTgGEXNs/ess2w==", + "license": "MIT", + "engines": { + "node": ">=18.12" + }, + "funding": { + "url": "https://opencollective.com/pnpm" + } + }, + "node_modules/@pnpm/lockfile.utils": { + "version": "1004.0.3", + "resolved": "https://registry.npmjs.org/@pnpm/lockfile.utils/-/lockfile.utils-1004.0.3.tgz", + "integrity": "sha512-02hFBFk/BGmZYhqd7paBjJm5mHy7GwI6DOJL25dakctRIPCr2kUZkPs/DH3WLKAjNLykEh7Dp/dPs5rnUsUE5g==", + "license": "MIT", + "dependencies": { + "@pnpm/dependency-path": "1001.1.10", + "@pnpm/lockfile.types": "1002.1.0", + "@pnpm/pick-fetcher": "1001.0.0", + "@pnpm/resolver-base": "1005.4.1", + "@pnpm/types": "1001.3.0", + "get-npm-tarball-url": "^2.1.0", + "ramda": "npm:@pnpm/ramda@0.28.1" + }, + "engines": { + "node": ">=18.12" + }, + "funding": { + "url": "https://opencollective.com/pnpm" + } + }, + "node_modules/@pnpm/lockfile.utils/node_modules/@pnpm/types": { + "version": "1001.3.0", + "resolved": "https://registry.npmjs.org/@pnpm/types/-/types-1001.3.0.tgz", + "integrity": "sha512-NLTXheat/u7OEGg5M5vF6Z85zx8uKUZE0+whtX/sbFV2XL48RdnOWGPTKYuVVkv8M+launaLUTgGEXNs/ess2w==", + "license": "MIT", + "engines": { + "node": ">=18.12" + }, + "funding": { + "url": "https://opencollective.com/pnpm" + } + }, + "node_modules/@pnpm/lockfile.utils/node_modules/ramda": { + "name": "@pnpm/ramda", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@pnpm/ramda/-/ramda-0.28.1.tgz", + "integrity": "sha512-zcAG+lvU0fMziNeGXpPyCyCJYp5ZVrPElEE4t14jAmViaihohocZ+dDkcRIyAomox8pQsuZnv1EyHR+pOhmUWw==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/ramda" + } + }, + "node_modules/@pnpm/logger": { + "version": "1001.0.1", + "resolved": "https://registry.npmjs.org/@pnpm/logger/-/logger-1001.0.1.tgz", + "integrity": "sha512-gdwlAMXC4Wc0s7Dmg/4wNybMEd/4lSd9LsXQxeg/piWY0PPXjgz1IXJWnVScx6dZRaaodWP3c1ornrw8mZdFZw==", + "license": "MIT", + "dependencies": { + "bole": "^5.0.17", + "split2": "^4.2.0" + }, + "engines": { + "node": ">=18.12" + }, + "funding": { + "url": "https://opencollective.com/pnpm" + } + }, + "node_modules/@pnpm/merge-lockfile-changes": { + "version": "5.0.7", + "resolved": "https://registry.npmjs.org/@pnpm/merge-lockfile-changes/-/merge-lockfile-changes-5.0.7.tgz", + "integrity": "sha512-fYmX1+EHv3wg7l4A9FCEkjgEBIHaY6JosknkLk3pL8dbB9k6unjIrF9f2onNtpj3XUlWxZ3aBw9THk/Bf6hKow==", + "license": "MIT", + "dependencies": { + "@pnpm/lockfile-types": "5.1.5", + "comver-to-semver": "^1.0.0", + "ramda": "npm:@pnpm/ramda@0.28.1", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=16.14" + }, + "funding": { + "url": "https://opencollective.com/pnpm" + } + }, + "node_modules/@pnpm/merge-lockfile-changes/node_modules/ramda": { + "name": "@pnpm/ramda", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@pnpm/ramda/-/ramda-0.28.1.tgz", + "integrity": "sha512-zcAG+lvU0fMziNeGXpPyCyCJYp5ZVrPElEE4t14jAmViaihohocZ+dDkcRIyAomox8pQsuZnv1EyHR+pOhmUWw==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/ramda" + } + }, + "node_modules/@pnpm/object.key-sorting": { + "version": "1000.0.1", + "resolved": "https://registry.npmjs.org/@pnpm/object.key-sorting/-/object.key-sorting-1000.0.1.tgz", + "integrity": "sha512-YTJCXyUGOrJuj4QqhSKqZa1vlVAm82h1/uw00ZmD/kL2OViggtyUwWyIe62kpwWVPwEYixfGjfvaFKVJy2mjzA==", + "license": "MIT", + "dependencies": { + "@pnpm/util.lex-comparator": "^3.0.2", + "sort-keys": "^4.2.0" + }, + "engines": { + "node": ">=18.12" + }, + "funding": { + "url": "https://opencollective.com/pnpm" + } + }, + "node_modules/@pnpm/package-bins": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@pnpm/package-bins/-/package-bins-4.1.0.tgz", + "integrity": "sha512-57/ioGYLBbVRR80Ux9/q2i3y8Q+uQADc3c+Yse8jr/60YLOi3jcWz13e2Jy+ANYtZI258Qc5wk2X077rp0Ly/Q==", + "license": "MIT", + "dependencies": { + "@pnpm/types": "6.4.0", + "fast-glob": "^3.2.4", + "is-subdir": "^1.1.1" + }, + "engines": { + "node": ">=10.16" + }, + "funding": { + "url": "https://opencollective.com/pnpm" + } + }, + "node_modules/@pnpm/patching.types": { + "version": "1000.1.0", + "resolved": "https://registry.npmjs.org/@pnpm/patching.types/-/patching.types-1000.1.0.tgz", + "integrity": "sha512-Zib2ysLctRnWM4KXXlljR44qSKwyEqYmLk+8VPBDBEK3l5Gp5mT3N4ix9E4qjYynvFqahumsxzOfxOYQhUGMGw==", + "license": "MIT", + "engines": { + "node": ">=18.12" + }, + "funding": { + "url": "https://opencollective.com/pnpm" + } + }, + "node_modules/@pnpm/pick-fetcher": { + "version": "1001.0.0", + "resolved": "https://registry.npmjs.org/@pnpm/pick-fetcher/-/pick-fetcher-1001.0.0.tgz", + "integrity": "sha512-Zl8npMjFSS1gSGM27KkbmfmeOuwU2MCxRFIofAUo/PkqOE2IzzXr0yzB1XYJM8Ml1nUXt9BHfwAlUQKC5MdBLA==", + "license": "MIT", + "engines": { + "node": ">=18.12" + }, + "funding": { + "url": "https://opencollective.com/pnpm" + } + }, + "node_modules/@pnpm/read-modules-dir": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@pnpm/read-modules-dir/-/read-modules-dir-2.0.3.tgz", + "integrity": "sha512-i9OgRvSlxrTS9a2oXokhDxvQzDtfqtsooJ9jaGoHkznue5aFCTSrNZFQ6M18o8hC03QWfnxaKi0BtOvNkKu2+A==", + "license": "MIT", + "dependencies": { + "mz": "^2.7.0" + }, + "engines": { + "node": ">=10.13" + }, + "funding": { + "url": "https://opencollective.com/pnpm" + } + }, + "node_modules/@pnpm/read-package-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@pnpm/read-package-json/-/read-package-json-4.0.0.tgz", + "integrity": "sha512-1cr2tEwe4YU6SI0Hmg+wnsr6yxBt2iJtqv6wrF84On8pS9hx4A2PLw3CIgbwxaG0b+ur5wzhNogwl4qD5FLFNg==", + "license": "MIT", + "dependencies": { + "@pnpm/error": "1.4.0", + "@pnpm/types": "6.4.0", + "load-json-file": "^6.2.0", + "normalize-package-data": "^3.0.2" + }, + "engines": { + "node": ">=10.16" + }, + "funding": { + "url": "https://opencollective.com/pnpm" + } + }, + "node_modules/@pnpm/read-project-manifest": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@pnpm/read-project-manifest/-/read-project-manifest-1.1.7.tgz", + "integrity": "sha512-tj8ExXZeDcMmMUj7D292ETe/RiEirr1X1wpT6Zy85z2MrFYoG9jfCJpps40OdZBNZBhxbuKtGPWKVSgXD0yrVw==", + "license": "MIT", + "dependencies": { + "@pnpm/error": "1.4.0", + "@pnpm/types": "6.4.0", + "@pnpm/write-project-manifest": "1.1.7", + "detect-indent": "^6.0.0", + "fast-deep-equal": "^3.1.3", + "graceful-fs": "4.2.4", + "is-windows": "^1.0.2", + "json5": "^2.1.3", + "parse-json": "^5.1.0", + "read-yaml-file": "^2.0.0", + "sort-keys": "^4.1.0", + "strip-bom": "^4.0.0" + }, + "engines": { + "node": ">=10.16" + }, + "funding": { + "url": "https://opencollective.com/pnpm" + } + }, + "node_modules/@pnpm/resolver-base": { + "version": "1005.4.1", + "resolved": "https://registry.npmjs.org/@pnpm/resolver-base/-/resolver-base-1005.4.1.tgz", + "integrity": "sha512-47zGgACkbZWLOmM61kaE0nkqxiYx63C6DJ4wzDsdj0iXDZJ9SJEl+T035pkhquHe8XEh3YxvwMg2BRyZSgmZ9Q==", + "license": "MIT", + "dependencies": { + "@pnpm/types": "1001.3.0" + }, + "engines": { + "node": ">=18.12" + }, + "funding": { + "url": "https://opencollective.com/pnpm" + } + }, + "node_modules/@pnpm/resolver-base/node_modules/@pnpm/types": { + "version": "1001.3.0", + "resolved": "https://registry.npmjs.org/@pnpm/types/-/types-1001.3.0.tgz", + "integrity": "sha512-NLTXheat/u7OEGg5M5vF6Z85zx8uKUZE0+whtX/sbFV2XL48RdnOWGPTKYuVVkv8M+launaLUTgGEXNs/ess2w==", + "license": "MIT", + "engines": { + "node": ">=18.12" + }, + "funding": { + "url": "https://opencollective.com/pnpm" + } + }, + "node_modules/@pnpm/types": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/@pnpm/types/-/types-6.4.0.tgz", + "integrity": "sha512-nco4+4sZqNHn60Y4VE/fbtlShCBqipyUO+nKRPvDHqLrecMW9pzHWMVRxk4nrMRoeowj3q0rX3GYRBa8lsHTAg==", + "license": "MIT", + "engines": { + "node": ">=10.16" + }, + "funding": { + "url": "https://opencollective.com/pnpm" + } + }, + "node_modules/@pnpm/util.lex-comparator": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@pnpm/util.lex-comparator/-/util.lex-comparator-3.0.2.tgz", + "integrity": "sha512-blFO4Ws97tWv/SNE6N39ZdGmZBrocXnBOfVp0ln4kELmns4pGPZizqyRtR8EjfOLMLstbmNCTReBoDvLz1isVg==", + "license": "MIT", + "engines": { + "node": ">=18.12" + } + }, + "node_modules/@pnpm/write-project-manifest": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/@pnpm/write-project-manifest/-/write-project-manifest-1.1.7.tgz", + "integrity": "sha512-OLkDZSqkA1mkoPNPvLFXyI6fb0enCuFji6Zfditi/CLAo9kmIhQFmEUDu4krSB8i908EljG8YwL5Xjxzm5wsWA==", + "license": "MIT", + "dependencies": { + "@pnpm/types": "6.4.0", + "json5": "^2.1.3", + "mz": "^2.7.0", + "write-file-atomic": "^3.0.3", + "write-yaml-file": "^4.1.3" + }, + "engines": { + "node": ">=10.16" + }, + "funding": { + "url": "https://opencollective.com/pnpm" + } + }, + "node_modules/@rushstack/credential-cache": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/@rushstack/credential-cache/-/credential-cache-0.2.7.tgz", + "integrity": "sha512-5vYUGreyf0ZvQ5lLFsQHLbJe1//hBZeI8G7BMoyDaLt4/uegfHNTmiXgYNXDQaqpnM9ImHyXSuOS/DrcbM3aMA==", + "license": "MIT", + "dependencies": { + "@rushstack/node-core-library": "5.20.3" + } + }, + "node_modules/@rushstack/heft-config-file": { + "version": "0.20.3", + "resolved": "https://registry.npmjs.org/@rushstack/heft-config-file/-/heft-config-file-0.20.3.tgz", + "integrity": "sha512-kVIBNxwtgV4wPQrqk4PCcaU3DKkmDmiULkELmb7RmhYKAYqR6XyA9dnyXdu/HgmF3zPn8EnuBT8/RhlKmbF8Zg==", + "license": "MIT", + "dependencies": { + "@rushstack/node-core-library": "5.20.3", + "@rushstack/rig-package": "0.7.2", + "@rushstack/terminal": "0.22.3", + "@ungap/structured-clone": "~1.3.0", + "jsonpath-plus": "~10.3.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/@rushstack/lookup-by-path": { + "version": "0.9.7", + "resolved": "https://registry.npmjs.org/@rushstack/lookup-by-path/-/lookup-by-path-0.9.7.tgz", + "integrity": "sha512-wlyXv5n0scQF7DEcv4KcFxsoVbSLXfZhVvS91S6gc6fOWpLoqIzSGANY9yIQtQpyJqrr0vwLUppa+zv/CB4sYw==", + "license": "MIT", + "peerDependencies": { + "@types/node": "*" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@rushstack/node-core-library": { + "version": "5.20.3", + "resolved": "https://registry.npmjs.org/@rushstack/node-core-library/-/node-core-library-5.20.3.tgz", + "integrity": "sha512-95JgEPq2k7tHxhF9/OJnnyHDXfC9cLhhta0An/6MlkDsX2A6dTzDrTUG18vx4vjc280V0fi0xDH9iQczpSuWsw==", + "license": "MIT", + "dependencies": { + "ajv": "~8.18.0", + "ajv-draft-04": "~1.0.0", + "ajv-formats": "~3.0.1", + "fs-extra": "~11.3.0", + "import-lazy": "~4.0.0", + "jju": "~1.4.0", + "resolve": "~1.22.1", + "semver": "~7.5.4" + }, + "peerDependencies": { + "@types/node": "*" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@rushstack/npm-check-fork": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/@rushstack/npm-check-fork/-/npm-check-fork-0.2.7.tgz", + "integrity": "sha512-ZCNkfge+qpXK/SBR+MA6hcYRP0KGd1npSXy0zsLl8Rb7JGY+uE/GhOUNVnw9FXtam7oK8j7WSOQFd64u9kO4dg==", + "license": "MIT", + "dependencies": { + "@rushstack/node-core-library": "5.20.3", + "giturl": "^2.0.0", + "lodash": "~4.17.23", + "semver": "~7.5.4" + } + }, + "node_modules/@rushstack/package-deps-hash": { + "version": "4.7.7", + "resolved": "https://registry.npmjs.org/@rushstack/package-deps-hash/-/package-deps-hash-4.7.7.tgz", + "integrity": "sha512-nj7wspFmch+SmPr6RT46zO9aKGD6IjVBP8z3JMmiiJq5p7WgNyqEENOBWGZ42Hwpav9qjj9hWxMggHJiwLg3mA==", + "license": "MIT", + "dependencies": { + "@rushstack/node-core-library": "5.20.3" + } + }, + "node_modules/@rushstack/package-extractor": { + "version": "0.12.8", + "resolved": "https://registry.npmjs.org/@rushstack/package-extractor/-/package-extractor-0.12.8.tgz", + "integrity": "sha512-oGm1Ku1IdCHAy7zAZL1Ns1v02al+l7vqiC3vARyLU+6jUwpgh7N/BLVZafckztvH9sH0Blp5reBvh+tT9q5bbg==", + "license": "MIT", + "dependencies": { + "@pnpm/link-bins": "~5.3.7", + "@rushstack/node-core-library": "5.20.3", + "@rushstack/terminal": "0.22.3", + "@rushstack/ts-command-line": "5.3.3", + "ignore": "~5.1.6", + "jszip": "~3.8.0", + "minimatch": "10.2.3", + "npm-packlist": "~5.1.3", + "semver": "~7.5.4" + } + }, + "node_modules/@rushstack/problem-matcher": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@rushstack/problem-matcher/-/problem-matcher-0.2.1.tgz", + "integrity": "sha512-gulfhBs6n+I5b7DvjKRfhMGyUejtSgOHTclF/eONr8hcgF1APEDjhxIsfdUYYMzC3rvLwGluqLjbwCFZ8nxrog==", + "license": "MIT", + "peerDependencies": { + "@types/node": "*" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@rushstack/rig-package": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/@rushstack/rig-package/-/rig-package-0.7.2.tgz", + "integrity": "sha512-9XbFWuqMYcHUso4mnETfhGVUSaADBRj6HUAAEYk50nMPn8WRICmBuCphycQGNB3duIR6EEZX3Xj3SYc2XiP+9A==", + "license": "MIT", + "dependencies": { + "resolve": "~1.22.1", + "strip-json-comments": "~3.1.1" + } + }, + "node_modules/@rushstack/rush-amazon-s3-build-cache-plugin": { + "version": "5.172.0", + "resolved": "https://registry.npmjs.org/@rushstack/rush-amazon-s3-build-cache-plugin/-/rush-amazon-s3-build-cache-plugin-5.172.0.tgz", + "integrity": "sha512-YISqf/24MWFEehFAp+OPcrHHYk13CU9cGHVXBFcq3tWSXkxuzAo42mfSeeMFG1Xwn4Sxzuw405ZMDX1TgwImeQ==", + "license": "MIT", + "dependencies": { + "@rushstack/credential-cache": "0.2.7", + "@rushstack/node-core-library": "5.20.3", + "@rushstack/rush-sdk": "5.172.0", + "@rushstack/terminal": "0.22.3", + "https-proxy-agent": "~5.0.0" + } + }, + "node_modules/@rushstack/rush-azure-storage-build-cache-plugin": { + "version": "5.172.0", + "resolved": "https://registry.npmjs.org/@rushstack/rush-azure-storage-build-cache-plugin/-/rush-azure-storage-build-cache-plugin-5.172.0.tgz", + "integrity": "sha512-u0sBoL3D0VTCEExwBOYbFQq1kLUEjMq9/HIrf9pefg3ZC82wJGo45sOemzA7K1U1o57jEFUQVgRWmmUi+iXKug==", + "license": "MIT", + "dependencies": { + "@azure/identity": "~4.5.0", + "@azure/storage-blob": "~12.26.0", + "@rushstack/credential-cache": "0.2.7", + "@rushstack/node-core-library": "5.20.3", + "@rushstack/rush-sdk": "5.172.0", + "@rushstack/terminal": "0.22.3" + } + }, + "node_modules/@rushstack/rush-http-build-cache-plugin": { + "version": "5.172.0", + "resolved": "https://registry.npmjs.org/@rushstack/rush-http-build-cache-plugin/-/rush-http-build-cache-plugin-5.172.0.tgz", + "integrity": "sha512-Yckd1CEoYN/8SZ7hMEHBG1s07YgTni1XQSrunz5yBBXOqRhw7LnrE6QUeTB/Hokws6XLNN8Xnhv+1cNl+ayv3A==", + "license": "MIT", + "dependencies": { + "@rushstack/credential-cache": "0.2.7", + "@rushstack/node-core-library": "5.20.3", + "@rushstack/rush-sdk": "5.172.0", + "https-proxy-agent": "~5.0.0" + } + }, + "node_modules/@rushstack/rush-pnpm-kit-v10": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/@rushstack/rush-pnpm-kit-v10/-/rush-pnpm-kit-v10-0.2.8.tgz", + "integrity": "sha512-u4mRegXxtLz4T5Bx5aYumTWGcaeSwUE9xpnh/PusC14lxzcAhdCHEsicd+6VRcJOPnRqfZjNVPaBQx6N94WyPA==", + "license": "MIT", + "dependencies": { + "@pnpm/dependency-path-pnpm-v10": "npm:@pnpm/dependency-path@~1000.0.9", + "@pnpm/lockfile.fs-pnpm-lock-v9": "npm:@pnpm/lockfile.fs@~1001.1.11", + "@pnpm/logger": "~1001.0.0" + } + }, + "node_modules/@rushstack/rush-pnpm-kit-v8": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/@rushstack/rush-pnpm-kit-v8/-/rush-pnpm-kit-v8-0.2.8.tgz", + "integrity": "sha512-Jw/qBr4ONJ5Jj+nnEZ0jxyCnxZQeFjyePovdEPQXZ8E4Q/hrT8GbEYeNVTi8VWrVe5odb5f5MfPp0zP5J2EHOg==", + "license": "MIT", + "dependencies": { + "@pnpm/dependency-path-pnpm-v8": "npm:@pnpm/dependency-path@~2.1.8", + "@pnpm/lockfile-file-pnpm-lock-v6": "npm:@pnpm/lockfile-file@~8.1.8", + "@pnpm/logger": "~5.0.0" + } + }, + "node_modules/@rushstack/rush-pnpm-kit-v8/node_modules/@pnpm/constants": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@pnpm/constants/-/constants-7.1.1.tgz", + "integrity": "sha512-31pZqMtjwV+Vaq7MaPrT1EoDFSYwye3dp6BiHIGRJmVThCQwySRKM7hCvqqI94epNkqFAAYoWrNynWoRYosGdw==", + "license": "MIT", + "engines": { + "node": ">=16.14" + }, + "funding": { + "url": "https://opencollective.com/pnpm" + } + }, + "node_modules/@rushstack/rush-pnpm-kit-v8/node_modules/@pnpm/dependency-path": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/@pnpm/dependency-path/-/dependency-path-2.1.8.tgz", + "integrity": "sha512-ywBaTjy0iSEF7lH3DlF8UXrdL2bw4AQFV2tTOeNeY7wc1W5CE+RHSJhf9MXBYcZPesqGRrPiU7Pimj3l05L9VA==", + "license": "MIT", + "dependencies": { + "@pnpm/crypto.base32-hash": "2.0.0", + "@pnpm/types": "9.4.2", + "encode-registry": "^3.0.1", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=16.14" + }, + "funding": { + "url": "https://opencollective.com/pnpm" + } + }, + "node_modules/@rushstack/rush-pnpm-kit-v8/node_modules/@pnpm/error": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/@pnpm/error/-/error-5.0.3.tgz", + "integrity": "sha512-ONJU5cUeoeJSy50qOYsMZQHTA/9QKmGgh1ATfEpCLgtbdwqUiwD9MxHNeXUYYI/pocBCz6r1ZCFqiQvO+8SUKA==", + "license": "MIT", + "dependencies": { + "@pnpm/constants": "7.1.1" + }, + "engines": { + "node": ">=16.14" + }, + "funding": { + "url": "https://opencollective.com/pnpm" + } + }, + "node_modules/@rushstack/rush-pnpm-kit-v8/node_modules/@pnpm/git-utils": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@pnpm/git-utils/-/git-utils-1.0.0.tgz", + "integrity": "sha512-lUI+XrzOJN4zdPGOGnFUrmtXAXpXi8wD8OI0nWOZmlh+raqbLzC3VkXu1zgaduOK6YonOcnQW88O+ojav1rAdA==", + "license": "MIT", + "dependencies": { + "execa": "npm:safe-execa@0.1.2" + }, + "engines": { + "node": ">=16.14" + }, + "funding": { + "url": "https://opencollective.com/pnpm" + } + }, + "node_modules/@rushstack/rush-pnpm-kit-v8/node_modules/@pnpm/lockfile-file-pnpm-lock-v6": { + "name": "@pnpm/lockfile-file", + "version": "8.1.8", + "resolved": "https://registry.npmjs.org/@pnpm/lockfile-file/-/lockfile-file-8.1.8.tgz", + "integrity": "sha512-bRadYzGFyFtwiynwp4Mkn7NDNHkgKvJ9xtjsCT5XiE6S8wpzS3W8yx2WzHGk9Mm1J/2wM0F52+NzCWhlz5eIqA==", + "license": "MIT", + "dependencies": { + "@pnpm/constants": "7.1.1", + "@pnpm/dependency-path": "2.1.8", + "@pnpm/error": "5.0.3", + "@pnpm/git-utils": "1.0.0", + "@pnpm/lockfile-types": "5.1.5", + "@pnpm/merge-lockfile-changes": "5.0.7", + "@pnpm/types": "9.4.2", + "@pnpm/util.lex-comparator": "1.0.0", + "@zkochan/rimraf": "^2.1.3", + "comver-to-semver": "^1.0.0", + "js-yaml": "npm:@zkochan/js-yaml@0.0.6", + "normalize-path": "^3.0.0", + "ramda": "npm:@pnpm/ramda@0.28.1", + "semver": "^7.5.4", + "sort-keys": "^4.2.0", + "strip-bom": "^4.0.0", + "write-file-atomic": "^5.0.1" + }, + "engines": { + "node": ">=16.14" + }, + "funding": { + "url": "https://opencollective.com/pnpm" + }, + "peerDependencies": { + "@pnpm/logger": "^5.0.0" + } + }, + "node_modules/@rushstack/rush-pnpm-kit-v8/node_modules/@pnpm/logger": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@pnpm/logger/-/logger-5.0.0.tgz", + "integrity": "sha512-YfcB2QrX+Wx1o6LD1G2Y2fhDhOix/bAY/oAnMpHoNLsKkWIRbt1oKLkIFvxBMzLwAEPqnYWguJrYC+J6i4ywbw==", + "license": "MIT", + "dependencies": { + "bole": "^5.0.0", + "ndjson": "^2.0.0" + }, + "engines": { + "node": ">=12.17" + } + }, + "node_modules/@rushstack/rush-pnpm-kit-v8/node_modules/@pnpm/types": { + "version": "9.4.2", + "resolved": "https://registry.npmjs.org/@pnpm/types/-/types-9.4.2.tgz", + "integrity": "sha512-g1hcF8Nv4gd76POilz9gD4LITAPXOe5nX4ijgr8ixCbLQZfcpYiMfJ+C1RlMNRUDo8vhlNB4O3bUlxmT6EAQXA==", + "license": "MIT", + "engines": { + "node": ">=16.14" + }, + "funding": { + "url": "https://opencollective.com/pnpm" + } + }, + "node_modules/@rushstack/rush-pnpm-kit-v8/node_modules/@pnpm/util.lex-comparator": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@pnpm/util.lex-comparator/-/util.lex-comparator-1.0.0.tgz", + "integrity": "sha512-3aBQPHntVgk5AweBWZn+1I/fqZ9krK/w01197aYVkAJQGftb+BVWgEepxY5GChjSW12j52XX+CmfynYZ/p0DFQ==", + "license": "MIT", + "engines": { + "node": ">=12.22.0" + } + }, + "node_modules/@rushstack/rush-pnpm-kit-v8/node_modules/@zkochan/rimraf": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@zkochan/rimraf/-/rimraf-2.1.3.tgz", + "integrity": "sha512-mCfR3gylCzPC+iqdxEA6z5SxJeOgzgbwmyxanKriIne5qZLswDe/M43aD3p5MNzwzXRhbZg/OX+MpES6Zk1a6A==", + "license": "MIT", + "dependencies": { + "rimraf": "^3.0.2" + }, + "engines": { + "node": ">=12.10" + } + }, + "node_modules/@rushstack/rush-pnpm-kit-v8/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "license": "Python-2.0" + }, + "node_modules/@rushstack/rush-pnpm-kit-v8/node_modules/js-yaml": { + "name": "@zkochan/js-yaml", + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/@zkochan/js-yaml/-/js-yaml-0.0.6.tgz", + "integrity": "sha512-nzvgl3VfhcELQ8LyVrYOru+UtAy1nrygk2+AGbTm8a5YcO6o8lSjAT+pfg3vJWxIoZKOUhrK6UU7xW/+00kQrg==", + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@rushstack/rush-pnpm-kit-v8/node_modules/ramda": { + "name": "@pnpm/ramda", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/@pnpm/ramda/-/ramda-0.28.1.tgz", + "integrity": "sha512-zcAG+lvU0fMziNeGXpPyCyCJYp5ZVrPElEE4t14jAmViaihohocZ+dDkcRIyAomox8pQsuZnv1EyHR+pOhmUWw==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/ramda" + } + }, + "node_modules/@rushstack/rush-pnpm-kit-v8/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@rushstack/rush-pnpm-kit-v8/node_modules/write-file-atomic": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz", + "integrity": "sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==", + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@rushstack/rush-pnpm-kit-v9": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/@rushstack/rush-pnpm-kit-v9/-/rush-pnpm-kit-v9-0.2.8.tgz", + "integrity": "sha512-4ZYSS3HkkT/mqJCgCSoDnKE2wqBFORysk30hSsmj6C3cL+iK0laQgY5zn1hY0DJvkeskiSWuMu1Pjmahs0mgSw==", + "license": "MIT", + "dependencies": { + "@pnpm/dependency-path-pnpm-v9": "npm:@pnpm/dependency-path@~5.1.7", + "@pnpm/lockfile.fs-pnpm-lock-v9": "npm:@pnpm/lockfile.fs@~1001.1.11", + "@pnpm/logger": "~1001.0.0" + } + }, + "node_modules/@rushstack/rush-sdk": { + "version": "5.172.0", + "resolved": "https://registry.npmjs.org/@rushstack/rush-sdk/-/rush-sdk-5.172.0.tgz", + "integrity": "sha512-SC5txCn1pFKfY2ozXSvppM9YViETmqUwRb0cpwhzKs5BqMDT5YcQHPwHySRjmzGaTEkHLT2VuTJ5iuJ2dpJzNQ==", + "license": "MIT", + "dependencies": { + "@pnpm/lockfile.types-900": "npm:@pnpm/lockfile.types@~900.0.0", + "@rushstack/credential-cache": "0.2.7", + "@rushstack/lookup-by-path": "0.9.7", + "@rushstack/node-core-library": "5.20.3", + "@rushstack/package-deps-hash": "4.7.7", + "@rushstack/terminal": "0.22.3", + "tapable": "2.2.1" + } + }, + "node_modules/@rushstack/stream-collator": { + "version": "4.2.7", + "resolved": "https://registry.npmjs.org/@rushstack/stream-collator/-/stream-collator-4.2.7.tgz", + "integrity": "sha512-USuC0VdqYdKJ1xs8Czse5on4y2tx53zgqnDHG2UzOmhOIsHmmyWhPbq6PzurOZ3Ll9DnB2ty1ZGo1tI1brgzeQ==", + "license": "MIT", + "dependencies": { + "@rushstack/node-core-library": "5.20.3", + "@rushstack/terminal": "0.22.3" + } + }, + "node_modules/@rushstack/terminal": { + "version": "0.22.3", + "resolved": "https://registry.npmjs.org/@rushstack/terminal/-/terminal-0.22.3.tgz", + "integrity": "sha512-gHC9pIMrUPzAbBiI4VZMU7Q+rsCzb8hJl36lFIulIzoceKotyKL3Rd76AZ2CryCTKEg+0bnTj406HE5YY5OQvw==", + "license": "MIT", + "dependencies": { + "@rushstack/node-core-library": "5.20.3", + "@rushstack/problem-matcher": "0.2.1", + "supports-color": "~8.1.1" + }, + "peerDependencies": { + "@types/node": "*" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@rushstack/ts-command-line": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/@rushstack/ts-command-line/-/ts-command-line-5.3.3.tgz", + "integrity": "sha512-c+ltdcvC7ym+10lhwR/vWiOhsrm/bP3By2VsFcs5qTKv+6tTmxgbVrtJ5NdNjANiV5TcmOZgUN+5KYQ4llsvEw==", + "license": "MIT", + "dependencies": { + "@rushstack/terminal": "0.22.3", + "@types/argparse": "1.0.38", + "argparse": "~1.0.9", + "string-argv": "~0.3.1" + } + }, + "node_modules/@types/argparse": { + "version": "1.0.38", + "resolved": "https://registry.npmjs.org/@types/argparse/-/argparse-1.0.38.tgz", + "integrity": "sha512-ebDJ9b0e702Yr7pWgB0jzm+CX4Srzz8RcXtLJDJB+BSccqMa36uyH/zUsSYao5+BD1ytv3k3rPYCq4mAE1hsXA==", + "license": "MIT" + }, + "node_modules/@typespec/ts-http-runtime": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/@typespec/ts-http-runtime/-/ts-http-runtime-0.3.4.tgz", + "integrity": "sha512-CI0NhTrz4EBaa0U+HaaUZrJhPoso8sG7ZFya8uQoBA57fjzrjRSv87ekCjLZOFExN+gXE/z0xuN2QfH4H2HrLQ==", + "license": "MIT", + "dependencies": { + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=20.0.0" + } + }, + "node_modules/@typespec/ts-http-runtime/node_modules/https-proxy-agent": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", + "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==", + "license": "ISC" + }, + "node_modules/@yarnpkg/lockfile": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.0.2.tgz", + "integrity": "sha512-MqJ00WXw89ga0rK6GZkdmmgv3bAsxpJixyTthjcix73O44pBqotyU2BejBkLuIsaOBI6SEu77vAnSyLe5iIHkw==", + "license": "BSD-2-Clause" + }, + "node_modules/@zkochan/cmd-shim": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/@zkochan/cmd-shim/-/cmd-shim-5.4.1.tgz", + "integrity": "sha512-odWb1qUzt0dIOEUPyWBEpFDYQPRjEMr/dbHHAfgBkVkYR9aO7Zo+I7oYWrXIxl+cKlC7+49ftPm8uJxL1MA9kw==", + "license": "BSD-2-Clause", + "dependencies": { + "cmd-extension": "^1.0.2", + "graceful-fs": "^4.2.10", + "is-windows": "^1.0.2" + }, + "engines": { + "node": ">=10.13" + } + }, + "node_modules/@zkochan/cmd-shim/node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "license": "ISC" + }, + "node_modules/@zkochan/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@zkochan/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-GBf4ua7ogWTr7fATnzk/JLowZDBnBJMm8RkMaC/KcvxZ9gxbMWix0/jImd815LmqKyIHZ7h7lADRddGMdGBuCA==", + "license": "MIT", + "engines": { + "node": ">=18.12" + } + }, + "node_modules/@zkochan/which": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@zkochan/which/-/which-2.0.3.tgz", + "integrity": "sha512-C1ReN7vt2/2O0fyTsx5xnbQuxBrmG5NMSbcIkPKCCfCTJgpZBsuRYzFXHj3nVq8vTfK7vxHUmzfCpSHgO7j4rg==", + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/agent-base": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", + "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", + "license": "MIT", + "engines": { + "node": ">= 14" + } + }, + "node_modules/ajv": { + "version": "8.18.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.18.0.tgz", + "integrity": "sha512-PlXPeEWMXMZ7sPYOHqmDyCJzcfNrUr3fGNKtezX14ykXOEIvyK81d+qydx89KY5O71FKMPaQ2vBfBFI5NHR63A==", + "license": "MIT", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-uri": "^3.0.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-draft-04": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/ajv-draft-04/-/ajv-draft-04-1.0.0.tgz", + "integrity": "sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==", + "license": "MIT", + "peerDependencies": { + "ajv": "^8.5.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/ajv-formats": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz", + "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==", + "license": "MIT", + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "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==", + "license": "MIT", + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "license": "MIT" + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "license": "MIT", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", + "license": "MIT" + }, + "node_modules/balanced-match": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", + "license": "MIT", + "engines": { + "node": "18 || 20 || >=22" + } + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/better-path-resolve": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/better-path-resolve/-/better-path-resolve-1.0.0.tgz", + "integrity": "sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==", + "license": "MIT", + "dependencies": { + "is-windows": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "license": "MIT", + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, + "node_modules/bl/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/bole": { + "version": "5.0.28", + "resolved": "https://registry.npmjs.org/bole/-/bole-5.0.28.tgz", + "integrity": "sha512-l+yybyZLV7zTD6EuGxoXsilpER1ctMCpdOqjSYNigJJma39ha85fzCtYccPx06oR1u7uCQLOcUAFFzvfXVBmuQ==", + "license": "MIT", + "dependencies": { + "fast-safe-stringify": "^2.0.7", + "individual": "^3.0.0" + } + }, + "node_modules/brace-expansion": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.5.tgz", + "integrity": "sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==", + "license": "MIT", + "dependencies": { + "balanced-match": "^4.0.2" + }, + "engines": { + "node": "18 || 20 || >=22" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-equal-constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==", + "license": "BSD-3-Clause" + }, + "node_modules/builtin-modules": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.1.0.tgz", + "integrity": "sha512-k0KL0aWZuBt2lrxrcASWDfwOLMnodeQjodT/1SxEQAXsHANgo6ZC/VEaSEHCXt7aSTZ4/4H5LKa+tBXmW7Vtvw==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/builtins": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", + "integrity": "sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==", + "license": "MIT" + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chalk/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/chardet": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-2.1.1.tgz", + "integrity": "sha512-PsezH1rqdV9VvyNhxxOW32/d75r01NY7TQCmOqomRo15ZSOKbpTFVsfjghxo6JloQUCGnH4k1LGu0R4yCLlWQQ==", + "license": "MIT" + }, + "node_modules/chownr": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz", + "integrity": "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==", + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } + }, + "node_modules/cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "license": "MIT", + "dependencies": { + "restore-cursor": "^3.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-spinners": { + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", + "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", + "license": "MIT", + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-table": { + "version": "0.3.11", + "resolved": "https://registry.npmjs.org/cli-table/-/cli-table-0.3.11.tgz", + "integrity": "sha512-IqLQi4lO0nIB4tcdTpN4LCB9FI3uqrJZK7RC515EnhZ6qBaglkIgICb1wjeAqpdoOabm1+SuQtkXIPdYC93jhQ==", + "dependencies": { + "colors": "1.0.3" + }, + "engines": { + "node": ">= 0.2.0" + } + }, + "node_modules/cli-width": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", + "license": "ISC", + "engines": { + "node": ">= 10" + } + }, + "node_modules/clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "license": "MIT", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/cmd-extension": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cmd-extension/-/cmd-extension-1.0.2.tgz", + "integrity": "sha512-iWDjmP8kvsMdBmLTHxFaqXikO8EdFRDfim7k6vUHglY/2xJ5jLrPsnQGijdfp4U+sr/BeecG0wKm02dSIAeQ1g==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT" + }, + "node_modules/colors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "integrity": "sha512-pFGrxThWcWQ2MsAz6RtgeWe4NK2kUE1WfsrvvlctdII745EW9I0yflqhe7++M5LEc7bV2c/9/5zc8sFcpL0Drw==", + "license": "MIT", + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/comver-to-semver": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/comver-to-semver/-/comver-to-semver-1.0.0.tgz", + "integrity": "sha512-gcGtbRxjwROQOdXLUWH1fQAXqThUVRZ219aAwgtX3KfYw429/Zv6EIJRf5TBSzWdAGwePmqH7w70WTaX4MDqag==", + "license": "MIT", + "engines": { + "node": ">=12.17" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "license": "MIT" + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "license": "MIT" + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/debug": { + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/debuglog": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/debuglog/-/debuglog-1.0.1.tgz", + "integrity": "sha512-syBZ+rnAK3EgMsH2aYEOLUW7mZSY9Gb+0wUMCFsZvcmiz+HigA0LOcq/HoQqVuGG+EKykunc7QG2bzrponfaSw==", + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/defaults": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", + "license": "MIT", + "dependencies": { + "clone": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/dependency-path": { + "version": "9.2.8", + "resolved": "https://registry.npmjs.org/dependency-path/-/dependency-path-9.2.8.tgz", + "integrity": "sha512-S0OhIK7sIyAsph8hVH/LMCTDL3jozKtlrPx3dMQrlE2nAlXTquTT+AcOufphDMTQqLkfn4acvfiem9I1IWZ4jQ==", + "license": "MIT", + "dependencies": { + "@pnpm/crypto.base32-hash": "1.0.1", + "@pnpm/types": "8.9.0", + "encode-registry": "^3.0.0", + "semver": "^7.3.8" + }, + "engines": { + "node": ">=14.6" + }, + "funding": { + "url": "https://opencollective.com/pnpm" + } + }, + "node_modules/dependency-path/node_modules/@pnpm/crypto.base32-hash": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@pnpm/crypto.base32-hash/-/crypto.base32-hash-1.0.1.tgz", + "integrity": "sha512-pzAXNn6KxTA3kbcI3iEnYs4vtH51XEVqmK/1EiD18MaPKylhqy8UvMJK3zKG+jeP82cqQbozcTGm4yOQ8i3vNw==", + "license": "MIT", + "dependencies": { + "rfc4648": "^1.5.1" + }, + "engines": { + "node": ">=14.6" + }, + "funding": { + "url": "https://opencollective.com/pnpm" + } + }, + "node_modules/dependency-path/node_modules/@pnpm/types": { + "version": "8.9.0", + "resolved": "https://registry.npmjs.org/@pnpm/types/-/types-8.9.0.tgz", + "integrity": "sha512-3MYHYm8epnciApn6w5Fzx6sepawmsNU7l6lvIq+ER22/DPSrr83YMhU/EQWnf4lORn2YyiXFj0FJSyJzEtIGmw==", + "license": "MIT", + "engines": { + "node": ">=14.6" + }, + "funding": { + "url": "https://opencollective.com/pnpm" + } + }, + "node_modules/detect-indent": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz", + "integrity": "sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/dezalgo": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.4.tgz", + "integrity": "sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==", + "license": "ISC", + "dependencies": { + "asap": "^2.0.0", + "wrappy": "1" + } + }, + "node_modules/dotenv": { + "version": "16.4.7", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.7.tgz", + "integrity": "sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/ecdsa-sig-formatter": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "license": "Apache-2.0", + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, + "node_modules/encode-registry": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/encode-registry/-/encode-registry-3.0.1.tgz", + "integrity": "sha512-6qOwkl1g0fv0DN3Y3ggr2EaZXN71aoAqPp3p/pVaWSBSIo+YjLOWN61Fva43oVyQNPf7kgm8lkudzlzojwE2jw==", + "license": "MIT", + "dependencies": { + "mem": "^8.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/error-ex": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz", + "integrity": "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==", + "license": "MIT", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "license": "MIT", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "license": "MIT", + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/execa": { + "name": "safe-execa", + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/safe-execa/-/safe-execa-0.1.2.tgz", + "integrity": "sha512-vdTshSQ2JsRCgT8eKZWNJIL26C6bVqy1SOmuCMlKHegVeo8KYRobRrefOdUq9OozSPUUiSxrylteeRmLOMFfWg==", + "license": "MIT", + "dependencies": { + "@zkochan/which": "^2.0.3", + "execa": "^5.1.1", + "path-name": "^1.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/execa/node_modules/execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", + "license": "MIT", + "dependencies": { + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/execa?sponsor=1" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "license": "MIT" + }, + "node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-safe-stringify": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", + "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", + "license": "MIT" + }, + "node_modules/fast-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.0.tgz", + "integrity": "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/fast-xml-builder": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/fast-xml-builder/-/fast-xml-builder-1.1.4.tgz", + "integrity": "sha512-f2jhpN4Eccy0/Uz9csxh3Nu6q4ErKxf0XIsasomfOihuSUa3/xw6w8dnOtCDgEItQFJG8KyXPzQXzcODDrrbOg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + } + ], + "license": "MIT", + "dependencies": { + "path-expression-matcher": "^1.1.3" + } + }, + "node_modules/fast-xml-parser": { + "version": "5.5.9", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-5.5.9.tgz", + "integrity": "sha512-jldvxr1MC6rtiZKgrFnDSvT8xuH+eJqxqOBThUVjYrxssYTo1avZLGql5l0a0BAERR01CadYzZ83kVEkbyDg+g==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + } + ], + "license": "MIT", + "dependencies": { + "fast-xml-builder": "^1.1.4", + "path-expression-matcher": "^1.2.0", + "strnum": "^2.2.2" + }, + "bin": { + "fxparser": "src/cli/cli.js" + } + }, + "node_modules/fastq": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz", + "integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==", + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/figures": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.0.0.tgz", + "integrity": "sha512-HKri+WoWoUgr83pehn/SIgLOMZ9nAWC6dcGj26RY2R4F50u4+RTUz0RCrUlOV3nKRAICW1UGzyb+kcX2qK1S/g==", + "license": "MIT", + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fs-extra": { + "version": "11.3.4", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.4.tgz", + "integrity": "sha512-CTXd6rk/M3/ULNQj8FBqBWHYBVYybQ3VPBw0xGKFe3tuH7ytT6ACnvzpIQ3UZtB8yvUKC2cXn1a+x+5EVQLovA==", + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "license": "ISC" + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-npm-tarball-url": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/get-npm-tarball-url/-/get-npm-tarball-url-2.1.0.tgz", + "integrity": "sha512-ro+DiMu5DXgRBabqXupW38h7WPZ9+Ad8UjwhvsmmN8w1sU7ab0nzAXvVZ4kqYg57OrqomRtJvepX5/xvFKNtjA==", + "license": "MIT", + "engines": { + "node": ">=12.17" + } + }, + "node_modules/get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/git-repo-info": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/git-repo-info/-/git-repo-info-2.1.1.tgz", + "integrity": "sha512-8aCohiDo4jwjOwma4FmYFd3i97urZulL8XL24nIPxuE+GZnfsAyy/g2Shqx6OjUiFKUXZM+Yy+KHnOmmA3FVcg==", + "license": "MIT", + "engines": { + "node": ">= 4.0" + } + }, + "node_modules/giturl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/giturl/-/giturl-2.0.0.tgz", + "integrity": "sha512-FB0MmghWLcqsyrBZyqsLCNeS2kIzYymT34t/6BxM5R0/9Pxvj0K1eK25SBbwRHMjKMLgQ7nYqBSduF6XyfkgFg==", + "license": "MIT", + "engines": { + "node": ">= 14.17.0" + } + }, + "node_modules/glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-escape": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/glob-escape/-/glob-escape-0.0.2.tgz", + "integrity": "sha512-L/cXYz8x7qer1HAyUQ+mbjcUsJVdpRxpAf7CwqHoNBs9vTpABlGfNN4tzkDxt+u3Z7ZncVyKlCNPtzb0R/7WbA==", + "license": "MIT", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/glob/node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "license": "MIT" + }, + "node_modules/glob/node_modules/brace-expansion": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "5.1.9", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.9.tgz", + "integrity": "sha512-7o1wEA2RyMP7Iu7GNba9vc0RWWGACJOCZBJX2GJWip0ikV+wcOsgVuY9uE8CPiyQhkGFSlhuSkZPavN7u1c2Fw==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", + "license": "ISC" + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hosted-git-info": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/http-proxy-agent": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", + "license": "MIT", + "dependencies": { + "agent-base": "^7.1.0", + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "license": "MIT", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/https-proxy-agent/node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "license": "MIT", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", + "license": "Apache-2.0", + "engines": { + "node": ">=10.17.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.2.tgz", + "integrity": "sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==", + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "BSD-3-Clause" + }, + "node_modules/ignore": { + "version": "5.1.9", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.9.tgz", + "integrity": "sha512-2zeMQpbKz5dhZ9IwL0gbxSW5w0NK/MSAMtNuhgIHEPmaU3vPdKPL0UdvUCXs5SS4JAwsBxysK5sFMW8ocFiVjQ==", + "license": "MIT", + "engines": { + "node": ">= 4" + } + }, + "node_modules/ignore-walk": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-5.0.1.tgz", + "integrity": "sha512-yemi4pMf51WKT7khInJqAvsIGzoqYXblnsz0ql8tM+yi1EKYTY1evX4NAbJrLL/Aanr2HyZeluqU+Oi7MGHokw==", + "license": "ISC", + "dependencies": { + "minimatch": "^5.0.1" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/ignore-walk/node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "license": "MIT" + }, + "node_modules/ignore-walk/node_modules/brace-expansion": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/ignore-walk/node_modules/minimatch": { + "version": "5.1.9", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.9.tgz", + "integrity": "sha512-7o1wEA2RyMP7Iu7GNba9vc0RWWGACJOCZBJX2GJWip0ikV+wcOsgVuY9uE8CPiyQhkGFSlhuSkZPavN7u1c2Fw==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/immediate": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", + "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==", + "license": "MIT" + }, + "node_modules/import-lazy": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", + "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "license": "MIT", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/individual": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/individual/-/individual-3.0.0.tgz", + "integrity": "sha512-rUY5vtT748NMRbEMrTNiFfy29BgGZwGXUi2NFUVMWQrogSLzlJvQV9eeMWi+g1aVaQ53tpyLAQtd5x/JH0Nh1g==" + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "license": "ISC", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "license": "ISC" + }, + "node_modules/inquirer": { + "version": "8.2.7", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.7.tgz", + "integrity": "sha512-UjOaSel/iddGZJ5xP/Eixh6dY1XghiBw4XK13rCCIJcJfyhhoul/7KhLLUGtebEj6GDYM6Vnx/mVsjx2L/mFIA==", + "license": "MIT", + "dependencies": { + "@inquirer/external-editor": "^1.0.0", + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.1", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "figures": "^3.0.0", + "lodash": "^4.17.21", + "mute-stream": "0.0.8", + "ora": "^5.4.1", + "run-async": "^2.4.0", + "rxjs": "^7.5.5", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6", + "wrap-ansi": "^6.0.1" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/inquirer/node_modules/rxjs": { + "version": "7.8.2", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.2.tgz", + "integrity": "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "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-core-module": { + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "license": "MIT", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "license": "MIT", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-subdir": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-subdir/-/is-subdir-1.2.0.tgz", + "integrity": "sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==", + "license": "MIT", + "dependencies": { + "better-path-resolve": "1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==", + "license": "MIT" + }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "license": "MIT", + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "license": "MIT" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "license": "ISC" + }, + "node_modules/jju": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/jju/-/jju-1.4.0.tgz", + "integrity": "sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==", + "license": "MIT" + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "license": "MIT" + }, + "node_modules/js-yaml": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.1.tgz", + "integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==", + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/js-yaml/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "license": "Python-2.0" + }, + "node_modules/jsep": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/jsep/-/jsep-1.4.0.tgz", + "integrity": "sha512-B7qPcEVE3NVkmSJbaYxvv4cHkVW7DQsZz13pUMrfS8z8Q/BuShN+gcTXrUlPiGqM2/t/EEaI030bpxMqY8gMlw==", + "license": "MIT", + "engines": { + "node": ">= 10.16.0" + } + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "license": "MIT" + }, + "node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "license": "MIT" + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", + "license": "ISC" + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "license": "MIT", + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonfile": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz", + "integrity": "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==", + "license": "MIT", + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsonpath-plus": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/jsonpath-plus/-/jsonpath-plus-10.3.0.tgz", + "integrity": "sha512-8TNmfeTCk2Le33A3vRRwtuworG/L5RrgMvdjhKZxvyShO+mBu2fP50OWUjRLNtvw344DdDarFh9buFAZs5ujeA==", + "license": "MIT", + "dependencies": { + "@jsep-plugin/assignment": "^1.3.0", + "@jsep-plugin/regex": "^1.0.4", + "jsep": "^1.4.0" + }, + "bin": { + "jsonpath": "bin/jsonpath-cli.js", + "jsonpath-plus": "bin/jsonpath-cli.js" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/jsonwebtoken": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.3.tgz", + "integrity": "sha512-MT/xP0CrubFRNLNKvxJ2BYfy53Zkm++5bX9dtuPbqAeQpTVe0MQTFhao8+Cp//EmJp244xt6Drw/GVEGCUj40g==", + "license": "MIT", + "dependencies": { + "jws": "^4.0.1", + "lodash.includes": "^4.3.0", + "lodash.isboolean": "^3.0.3", + "lodash.isinteger": "^4.0.4", + "lodash.isnumber": "^3.0.3", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.once": "^4.0.0", + "ms": "^2.1.1", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=12", + "npm": ">=6" + } + }, + "node_modules/jszip": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.8.0.tgz", + "integrity": "sha512-cnpQrXvFSLdsR9KR5/x7zdf6c3m8IhZfZzSblFEHSqBaVwD2nvJ4CuCKLyvKvwBgZm08CgfSoiTBQLm5WW9hGw==", + "license": "(MIT OR GPL-3.0-or-later)", + "dependencies": { + "lie": "~3.3.0", + "pako": "~1.0.2", + "readable-stream": "~2.3.6", + "set-immediate-shim": "~1.0.1" + } + }, + "node_modules/jwa": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.1.tgz", + "integrity": "sha512-hRF04fqJIP8Abbkq5NKGN0Bbr3JxlQ+qhZufXVr0DvujKy93ZCbXZMHDL4EOtodSbCWxOqR8MS1tXA5hwqCXDg==", + "license": "MIT", + "dependencies": { + "buffer-equal-constant-time": "^1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/jws": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.1.tgz", + "integrity": "sha512-EKI/M/yqPncGUUh44xz0PxSidXFr/+r0pA70+gIYhjv+et7yxM+s29Y+VGDkovRofQem0fs7Uvf4+YmAdyRduA==", + "license": "MIT", + "dependencies": { + "jwa": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/lie": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", + "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", + "license": "MIT", + "dependencies": { + "immediate": "~3.0.5" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "license": "MIT" + }, + "node_modules/load-json-file": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-6.2.0.tgz", + "integrity": "sha512-gUD/epcRms75Cw8RT1pUdHugZYM5ce64ucs2GEISABwkRsOQr0q2wm/MV2TKThycIe5e0ytRweW2RZxclogCdQ==", + "license": "MIT", + "dependencies": { + "graceful-fs": "^4.1.15", + "parse-json": "^5.0.0", + "strip-bom": "^4.0.0", + "type-fest": "^0.6.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/load-json-file/node_modules/type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=8" + } + }, + "node_modules/lodash": { + "version": "4.17.23", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.23.tgz", + "integrity": "sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==", + "license": "MIT" + }, + "node_modules/lodash.includes": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", + "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==", + "license": "MIT" + }, + "node_modules/lodash.isboolean": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", + "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==", + "license": "MIT" + }, + "node_modules/lodash.isinteger": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", + "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==", + "license": "MIT" + }, + "node_modules/lodash.isnumber": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", + "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==", + "license": "MIT" + }, + "node_modules/lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", + "license": "MIT" + }, + "node_modules/lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==", + "license": "MIT" + }, + "node_modules/lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==", + "license": "MIT" + }, + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "license": "MIT", + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/map-age-cleaner": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", + "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", + "license": "MIT", + "dependencies": { + "p-defer": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/mem": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/mem/-/mem-8.1.1.tgz", + "integrity": "sha512-qFCFUDs7U3b8mBDPyz5EToEKoAkgCzqquIgi9nkkR9bixxOVOre+09lbuH7+9Kn2NFpm56M3GUWVbU2hQgdACA==", + "license": "MIT", + "dependencies": { + "map-age-cleaner": "^0.1.3", + "mimic-fn": "^3.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sindresorhus/mem?sponsor=1" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "license": "MIT" + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mimic-fn": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-3.1.0.tgz", + "integrity": "sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/minimatch": { + "version": "10.2.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.3.tgz", + "integrity": "sha512-Rwi3pnapEqirPSbWbrZaa6N3nmqq4Xer/2XooiOKyV3q12ML06f7MOuc5DVH8ONZIFhwIYQ3yzPH4nt7iWHaTg==", + "license": "BlueOak-1.0.0", + "dependencies": { + "brace-expansion": "^5.0.2" + }, + "engines": { + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minipass": { + "version": "3.3.6", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", + "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", + "license": "ISC", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minizlib": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.1.0.tgz", + "integrity": "sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==", + "license": "MIT", + "dependencies": { + "minipass": "^7.1.2" + }, + "engines": { + "node": ">= 18" + } + }, + "node_modules/minizlib/node_modules/minipass": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.3.tgz", + "integrity": "sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==", + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "license": "MIT" + }, + "node_modules/mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "license": "ISC" + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/ndjson": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ndjson/-/ndjson-2.0.0.tgz", + "integrity": "sha512-nGl7LRGrzugTtaFcJMhLbpzJM6XdivmbkdlaGcrk/LXg2KL/YBC6z1g70xh0/al+oFuVFP8N8kiWRucmeEH/qQ==", + "license": "BSD-3-Clause", + "dependencies": { + "json-stringify-safe": "^5.0.1", + "minimist": "^1.2.5", + "readable-stream": "^3.6.0", + "split2": "^3.0.0", + "through2": "^4.0.0" + }, + "bin": { + "ndjson": "cli.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/ndjson/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/ndjson/node_modules/split2": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz", + "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==", + "license": "ISC", + "dependencies": { + "readable-stream": "^3.0.0" + } + }, + "node_modules/normalize-package-data": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", + "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-bundled": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-2.0.1.tgz", + "integrity": "sha512-gZLxXdjEzE/+mOstGDqR6b0EkhJ+kM6fxM6vUuckuctuVPh80Q6pw/rSZj9s4Gex9GxWtIicO1pc8DB9KZWudw==", + "license": "ISC", + "dependencies": { + "npm-normalize-package-bin": "^2.0.0" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm-normalize-package-bin": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-2.0.0.tgz", + "integrity": "sha512-awzfKUO7v0FscrSpRoogyNm0sajikhBWpU0QMrW09AMi9n1PoKU6WaIqUzuJSQnpciZZmJ/jMZ2Egfmb/9LiWQ==", + "license": "ISC", + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm-package-arg": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-6.1.1.tgz", + "integrity": "sha512-qBpssaL3IOZWi5vEKUKW0cO7kzLeT+EQO9W8RsLOZf76KF9E/K9+wH0C7t06HXPpaH8WH5xF1MExLuCwbTqRUg==", + "license": "ISC", + "dependencies": { + "hosted-git-info": "^2.7.1", + "osenv": "^0.1.5", + "semver": "^5.6.0", + "validate-npm-package-name": "^3.0.0" + } + }, + "node_modules/npm-package-arg/node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "license": "ISC" + }, + "node_modules/npm-package-arg/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/npm-packlist": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-5.1.3.tgz", + "integrity": "sha512-263/0NGrn32YFYi4J533qzrQ/krmmrWwhKkzwTuM4f/07ug51odoaNjUexxO4vxlzURHcmYMH1QjvHjsNDKLVg==", + "license": "ISC", + "dependencies": { + "glob": "^8.0.1", + "ignore-walk": "^5.0.1", + "npm-bundled": "^2.0.0", + "npm-normalize-package-bin": "^2.0.0" + }, + "bin": { + "npm-packlist": "bin/index.js" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "license": "MIT", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "license": "MIT", + "engines": { + "node": ">= 6" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "license": "ISC", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "license": "MIT", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/onetime/node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/open": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", + "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", + "license": "MIT", + "dependencies": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ora": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", + "license": "MIT", + "dependencies": { + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/osenv": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "deprecated": "This package is no longer supported.", + "license": "ISC", + "dependencies": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "node_modules/p-defer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", + "integrity": "sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-reflect": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-reflect/-/p-reflect-2.1.0.tgz", + "integrity": "sha512-paHV8NUz8zDHu5lhr/ngGWQiW067DK/+IbJ+RfZ4k+s8y4EKyYCz8pGYWjxCg35eHztpJAt+NUgvN4L+GCbPlg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/p-settle": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/p-settle/-/p-settle-4.1.1.tgz", + "integrity": "sha512-6THGh13mt3gypcNMm0ADqVNCcYa3BK6DWsuJWFCuEKP1rpY+OKGp7gaZwVmLspmic01+fsg/fN57MfvDzZ/PuQ==", + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.2", + "p-reflect": "^2.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "license": "(MIT AND Zlib)" + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/path-expression-matcher": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/path-expression-matcher/-/path-expression-matcher-1.2.0.tgz", + "integrity": "sha512-DwmPWeFn+tq7TiyJ2CxezCAirXjFxvaiD03npak3cRjlP9+OjTmSy1EpIrEbh+l6JgUundniloMLDQ/6VTdhLQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + } + ], + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-name": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/path-name/-/path-name-1.0.0.tgz", + "integrity": "sha512-/dcAb5vMXH0f51yvMuSUqFpxUcA8JelbRmE5mW/p4CUJxrNgK24IkstnV7ENtg2IDGBOu6izKTG6eilbnbNKWQ==", + "license": "MIT" + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "license": "MIT" + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", + "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pnpm-sync-lib": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/pnpm-sync-lib/-/pnpm-sync-lib-0.3.3.tgz", + "integrity": "sha512-iE0xtJIm7cljColV3CAfi05FfRWHeJFwKcxsJfwo+dkFo9kg9QgGKHlF5qlF2o2uArOz6z0P4bA/t4pX2Z2jYg==", + "license": "MIT", + "dependencies": { + "@pnpm/dependency-path-pnpm-v10": "npm:@pnpm/dependency-path@^1000.0.9", + "@pnpm/dependency-path-pnpm-v8": "npm:@pnpm/dependency-path@^2.1.8", + "@pnpm/dependency-path-pnpm-v9": "npm:@pnpm/dependency-path@^5.1.7", + "@pnpm/lockfile-types-pnpm-lock-v6": "npm:@pnpm/lockfile-types@^5.1.5", + "@pnpm/lockfile.types-pnpm-lock-v9": "npm:@pnpm/lockfile.types@^1001.0.8", + "yaml": "2.4.1" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "license": "MIT" + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/ramda": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.27.2.tgz", + "integrity": "sha512-SbiLPU40JuJniHexQSAgad32hfwd+DRUdwF2PlVuI5RZD0/vahUco7R8vD86J/tcEKKF9vZrUVwgtmGCqlCKyA==", + "license": "MIT" + }, + "node_modules/read-package-json": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-2.1.2.tgz", + "integrity": "sha512-D1KmuLQr6ZSJS0tW8hf3WGpRlwszJOXZ3E8Yd/DNRaM5d+1wVRZdHlpGBLAuovjr28LbWvjpWkBHMxpRGGjzNA==", + "deprecated": "This package is no longer supported. Please use @npmcli/package-json instead.", + "license": "ISC", + "dependencies": { + "glob": "^7.1.1", + "json-parse-even-better-errors": "^2.3.0", + "normalize-package-data": "^2.0.0", + "npm-normalize-package-bin": "^1.0.0" + } + }, + "node_modules/read-package-json/node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "license": "MIT" + }, + "node_modules/read-package-json/node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/read-package-json/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/read-package-json/node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "license": "ISC" + }, + "node_modules/read-package-json/node_modules/minimatch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/read-package-json/node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "license": "BSD-2-Clause", + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/read-package-json/node_modules/npm-normalize-package-bin": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", + "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==", + "license": "ISC" + }, + "node_modules/read-package-json/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/read-package-tree": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/read-package-tree/-/read-package-tree-5.1.6.tgz", + "integrity": "sha512-FCX1aT3GWyY658wzDICef4p+n0dB+ENRct8E/Qyvppj6xVpOYerBHfUu7OP5Rt1/393Tdglguf5ju5DEX4wZNg==", + "deprecated": "The functionality that this package provided is now in @npmcli/arborist", + "license": "ISC", + "dependencies": { + "debuglog": "^1.0.1", + "dezalgo": "^1.0.0", + "once": "^1.3.0", + "read-package-json": "^2.0.0", + "readdir-scoped-modules": "^1.0.0" + } + }, + "node_modules/read-yaml-file": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/read-yaml-file/-/read-yaml-file-2.1.0.tgz", + "integrity": "sha512-UkRNRIwnhG+y7hpqnycCL/xbTk7+ia9VuVTC0S+zVbwd65DI9eUpRMfsWIGrCWxTU/mi+JW8cHQCrv+zfCbEPQ==", + "license": "MIT", + "dependencies": { + "js-yaml": "^4.0.0", + "strip-bom": "^4.0.0" + }, + "engines": { + "node": ">=10.13" + } + }, + "node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/readable-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" + }, + "node_modules/readdir-scoped-modules": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz", + "integrity": "sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw==", + "deprecated": "This functionality has been moved to @npmcli/fs", + "license": "ISC", + "dependencies": { + "debuglog": "^1.0.1", + "dezalgo": "^1.0.0", + "graceful-fs": "^4.1.2", + "once": "^1.3.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve": { + "version": "1.22.11", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz", + "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==", + "license": "MIT", + "dependencies": { + "is-core-module": "^2.16.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "license": "MIT", + "dependencies": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/reusify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rfc4648": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/rfc4648/-/rfc4648-1.5.4.tgz", + "integrity": "sha512-rRg/6Lb+IGfJqO05HZkN50UtY7K/JhxJag1kP23+zyMfrvoB0B7RWv06MbOzoc79RgCdNTiUaNsTT1AJZ7Z+cg==", + "license": "MIT" + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "license": "ISC", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "license": "MIT" + }, + "node_modules/rimraf/node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/rimraf/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me", + "license": "ISC", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/minimatch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "license": "Apache-2.0", + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/rxjs/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "license": "0BSD" + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "license": "MIT" + }, + "node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "license": "ISC", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/set-immediate-shim": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", + "integrity": "sha512-Li5AOqrZWCVA2n5kryzEmqai6bKSIvpz5oUJHPVj6+dsbD3X1ixtsY5tEnsaNpH3pFAHmG8eIHUrtEtohrg+UQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "license": "ISC" + }, + "node_modules/sort-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-4.2.0.tgz", + "integrity": "sha512-aUYIEU/UviqPgc8mHR6IW1EGxkAXpeRETYcrzg8cLAvUPZcpAlleSXHV2mY7G12GphSH6Gzv+4MMVSSkbdteHg==", + "license": "MIT", + "dependencies": { + "is-plain-obj": "^2.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "license": "Apache-2.0", + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", + "license": "CC-BY-3.0" + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "license": "MIT", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.23", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.23.tgz", + "integrity": "sha512-CWLcCCH7VLu13TgOH+r8p1O/Znwhqv/dbb6lqWy67G+pT1kHmeD/+V36AVb/vq8QMIQwVShJ6Ssl5FPh0fuSdw==", + "license": "CC0-1.0" + }, + "node_modules/split2": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", + "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", + "license": "ISC", + "engines": { + "node": ">= 10.x" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "license": "BSD-3-Clause" + }, + "node_modules/ssri": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", + "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", + "license": "ISC", + "dependencies": { + "minipass": "^3.1.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/stoppable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/stoppable/-/stoppable-1.1.0.tgz", + "integrity": "sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw==", + "license": "MIT", + "engines": { + "node": ">=4", + "npm": ">=6" + } + }, + "node_modules/strict-uri-encode": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz", + "integrity": "sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" + }, + "node_modules/string-argv": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.2.tgz", + "integrity": "sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==", + "license": "MIT", + "engines": { + "node": ">=0.6.19" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/strnum": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/strnum/-/strnum-2.2.2.tgz", + "integrity": "sha512-DnR90I+jtXNSTXWdwrEy9FakW7UX+qUZg28gj5fk2vxxl7uS/3bpI4fjFYVmdK9etptYBPNkpahuQnEwhwECqA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + } + ], + "license": "MIT" + }, + "node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/tar": { + "version": "7.5.13", + "resolved": "https://registry.npmjs.org/tar/-/tar-7.5.13.tgz", + "integrity": "sha512-tOG/7GyXpFevhXVh8jOPJrmtRpOTsYqUIkVdVooZYJS/z8WhfQUX8RJILmeuJNinGAMSu1veBr4asSHFt5/hng==", + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/fs-minipass": "^4.0.0", + "chownr": "^3.0.0", + "minipass": "^7.1.2", + "minizlib": "^3.1.0", + "yallist": "^5.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/tar/node_modules/minipass": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.3.tgz", + "integrity": "sha512-tEBHqDnIoM/1rXME1zgka9g6Q2lcoCkxHLuc7ODJ5BxbP5d4c2Z5cGgtXAku59200Cx7diuHTOYfSBD8n6mm8A==", + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/tar/node_modules/yallist": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz", + "integrity": "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==", + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=18" + } + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "license": "MIT", + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "license": "MIT", + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "license": "MIT" + }, + "node_modules/through2": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz", + "integrity": "sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==", + "license": "MIT", + "dependencies": { + "readable-stream": "3" + } + }, + "node_modules/through2/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/true-case-path": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-2.2.1.tgz", + "integrity": "sha512-0z3j8R7MCjy10kc/g+qg7Ln3alJTodw9aDuVWZa3uiWqfuBMKeAeP2ocWcxoyM3D73yz3Jt/Pu4qPr4wHSdB/Q==", + "license": "Apache-2.0" + }, + "node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "license": "0BSD" + }, + "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" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "license": "MIT", + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, + "node_modules/universalify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", + "license": "MIT", + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "license": "MIT" + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "license": "Apache-2.0", + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/validate-npm-package-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", + "integrity": "sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==", + "license": "ISC", + "dependencies": { + "builtins": "^1.0.3" + } + }, + "node_modules/wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", + "license": "MIT", + "dependencies": { + "defaults": "^1.0.3" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "license": "ISC" + }, + "node_modules/write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "license": "ISC", + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "node_modules/write-yaml-file": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/write-yaml-file/-/write-yaml-file-4.2.0.tgz", + "integrity": "sha512-LwyucHy0uhWqbrOkh9cBluZBeNVxzHjDaE9mwepZG3n3ZlbM4v3ndrFw51zW/NXYFFqP+QWZ72ihtLWTh05e4Q==", + "license": "MIT", + "dependencies": { + "js-yaml": "^4.0.0", + "write-file-atomic": "^3.0.3" + }, + "engines": { + "node": ">=10.13" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "license": "ISC" + }, + "node_modules/yaml": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.1.tgz", + "integrity": "sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg==", + "license": "ISC", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14" + } + } + } +} diff --git a/common/reviews/api/heft-typescript-plugin.api.md b/common/reviews/api/heft-typescript-plugin.api.md index 2e42af718cc..51276bd9191 100644 --- a/common/reviews/api/heft-typescript-plugin.api.md +++ b/common/reviews/api/heft-typescript-plugin.api.md @@ -41,6 +41,8 @@ export interface _ICompilerCapabilities { // @beta (undocumented) export interface IEmitModuleKind { + // (undocumented) + emitModulePackageJson?: boolean; // (undocumented) jsExtensionOverride?: string; // (undocumented) diff --git a/common/reviews/api/playwright-browser-tunnel.api.md b/common/reviews/api/playwright-browser-tunnel.api.md index 150997beaac..2cdb88416a7 100644 --- a/common/reviews/api/playwright-browser-tunnel.api.md +++ b/common/reviews/api/playwright-browser-tunnel.api.md @@ -7,7 +7,6 @@ import type { Browser } from 'playwright-core'; import { ITerminal } from '@rushstack/terminal'; import type { LaunchOptions } from 'playwright-core'; -import semver from 'semver'; // @beta export type BrowserName = 'chromium' | 'firefox' | 'webkit'; @@ -43,7 +42,7 @@ export interface IHandshake { // (undocumented) launchOptions: LaunchOptions; // (undocumented) - playwrightVersion: semver.SemVer; + playwrightVersion: string; } // @beta @@ -112,7 +111,7 @@ export class PlaywrightTunnel { } // @beta -export function tunneledBrowserConnection(logger: ITerminal, port?: number): Promise; +export function tunneledBrowserConnection(logger: ITerminal, port?: number, playwrightVersion?: string): Promise; // @beta export type TunnelStatus = 'waiting-for-connection' | 'browser-server-running' | 'stopped' | 'setting-up-browser-server' | 'error'; diff --git a/common/reviews/api/rush-azure-storage-build-cache-plugin.api.md b/common/reviews/api/rush-azure-storage-build-cache-plugin.api.md index 26f39c4993a..f093e5a8a62 100644 --- a/common/reviews/api/rush-azure-storage-build-cache-plugin.api.md +++ b/common/reviews/api/rush-azure-storage-build-cache-plugin.api.md @@ -98,6 +98,8 @@ export interface IAzureStorageAuthenticationOptions extends IAzureAuthentication storageAccountName: string; // (undocumented) storageContainerName: string; + // (undocumented) + storageEndpoint?: string; } // @public (undocumented) diff --git a/common/reviews/api/rush-lib.api.md b/common/reviews/api/rush-lib.api.md index 1f8def84f93..dbbb440e40b 100644 --- a/common/reviews/api/rush-lib.api.md +++ b/common/reviews/api/rush-lib.api.md @@ -137,9 +137,13 @@ export class CommonVersionsConfiguration { getAllPreferredVersions(): Map; getPreferredVersionsHash(): string; readonly implicitlyPreferredVersions: boolean | undefined; + // @deprecated (undocumented) static loadFromFile(jsonFilePath: string, rushConfiguration?: RushConfiguration): CommonVersionsConfiguration; + static loadFromFileAsync(jsonFilePath: string, rushConfiguration?: RushConfiguration): Promise; readonly preferredVersions: Map; + // @deprecated (undocumented) save(): boolean; + saveAsync(): Promise; } export { CredentialCache } @@ -239,6 +243,7 @@ export class EnvironmentConfiguration { static parseBooleanEnvironmentVariable(name: string, value: string | undefined): boolean | undefined; static get pnpmStorePathOverride(): string | undefined; static get pnpmVerifyStoreIntegrity(): boolean | undefined; + static get quietMode(): boolean; static reset(): void; static get rushGlobalFolderOverride(): string | undefined; static get rushTempFolderOverride(): string | undefined; @@ -273,6 +278,7 @@ export const EnvironmentVariableNames: { readonly _RUSH_LIB_PATH: "_RUSH_LIB_PATH"; readonly RUSH_INVOKED_FOLDER: "RUSH_INVOKED_FOLDER"; readonly RUSH_INVOKED_ARGS: "RUSH_INVOKED_ARGS"; + readonly RUSH_QUIET_MODE: "RUSH_QUIET_MODE"; }; // @beta @@ -512,6 +518,8 @@ export interface IGetChangedProjectsOptions { // @beta export interface IGlobalCommand extends IRushCommand { + getCustomParametersByLongName(longName: string): TParameter; + setHandled(): void; } // @public @@ -676,7 +684,7 @@ export interface IOperationSettings { outputFolderNames?: string[]; parameterNamesToIgnore?: string[]; sharding?: IRushPhaseSharding; - weight?: number; + weight?: number | `${number}%`; } // @internal (undocumented) @@ -1093,15 +1101,19 @@ export class PackageJsonEditor { readonly filePath: string; // (undocumented) static fromObject(object: IPackageJson, filename: string): PackageJsonEditor; - // (undocumented) + // @deprecated (undocumented) static load(filePath: string): PackageJsonEditor; // (undocumented) + static loadAsync(filePath: string): Promise; + // (undocumented) get name(): string; // (undocumented) removeDependency(packageName: string, dependencyType: DependencyType): void; get resolutionsList(): ReadonlyArray; - // (undocumented) + // @deprecated (undocumented) saveIfModified(): boolean; + // (undocumented) + saveIfModifiedAsync(): Promise; saveToObject(): IPackageJson; // (undocumented) tryGetDependency(packageName: string): PackageJsonDependency | undefined; @@ -1432,6 +1444,7 @@ export class RushConstants { static readonly defaultWatchDebounceMs: 1000; static readonly experimentsFilename: 'experiments.json'; static readonly globalCommandKind: 'global'; + static readonly globalPluginCommandKind: 'globalPlugin'; static readonly hashDelimiter: '|'; static readonly lastLinkFlagFilename: 'last-link'; static readonly mergeQueueIgnoreFileName: '.mergequeueignore'; @@ -1500,7 +1513,7 @@ export class RushLifecycleHooks { variant: string | undefined ]>; readonly beforeInstall: AsyncSeriesHook<[ - command: IGlobalCommand, + command: IRushCommand, subspace: Subspace, variant: string | undefined ]>; @@ -1643,8 +1656,12 @@ export abstract class VersionPolicy { // @internal static load(versionPolicyJson: IVersionPolicyJson): VersionPolicy | undefined; get policyName(): string; + // @deprecated (undocumented) setDependenciesBeforeCommit(packageName: string, configuration: RushConfiguration): void; + setDependenciesBeforeCommitAsync(packageName: string, configuration: RushConfiguration): Promise; + // @deprecated (undocumented) setDependenciesBeforePublish(packageName: string, configuration: RushConfiguration): void; + setDependenciesBeforePublishAsync(packageName: string, configuration: RushConfiguration): Promise; abstract validate(versionString: string, packageName: string): void; } diff --git a/common/scripts/install-run-rush.js b/common/scripts/install-run-rush.js index 4733f4d8cc4..73ae8bc1e92 100644 --- a/common/scripts/install-run-rush.js +++ b/common/scripts/install-run-rush.js @@ -129,6 +129,7 @@ __webpack_require__.r(__webpack_exports__); const { installAndRun, findRushJsonFolder, RUSH_JSON_FILENAME, runWithErrorAndStatusCode } = require('./install-run'); const PACKAGE_NAME = '@microsoft/rush'; const RUSH_PREVIEW_VERSION = 'RUSH_PREVIEW_VERSION'; +const RUSH_QUIET_MODE = 'RUSH_QUIET_MODE'; const INSTALL_RUN_RUSH_LOCKFILE_PATH_VARIABLE = 'INSTALL_RUN_RUSH_LOCKFILE_PATH'; function _getRushVersion(logger) { const rushPreviewVersion = process.env[RUSH_PREVIEW_VERSION]; @@ -171,7 +172,8 @@ function _run() { throw new Error('Unexpected exception: could not detect node path or script path'); } let commandFound = false; - let logger = { info: console.log, error: console.error }; + const quietModeEnvValue = process.env[RUSH_QUIET_MODE]; + let quiet = quietModeEnvValue === '1' || quietModeEnvValue === 'true'; for (const arg of packageBinArgs) { if (arg === '-q' || arg === '--quiet') { // The -q/--quiet flag is supported by both `rush` and `rushx`, and will suppress @@ -180,10 +182,7 @@ function _run() { // To maintain the same user experience, the install-run* scripts pass along this // flag but also use it to suppress any diagnostic information normally printed // to stdout. - logger = { - info: () => { }, - error: console.error - }; + quiet = true; } else if (!arg.startsWith('-') || arg === '-h' || arg === '--help') { // We either found something that looks like a command (i.e. - doesn't start with a "-"), @@ -204,6 +203,9 @@ function _run() { } process.exit(1); } + const logger = quiet + ? { info: () => { }, error: console.error } + : { info: console.log, error: console.error }; runWithErrorAndStatusCode(logger, () => { const version = _getRushVersion(logger); logger.info(`The ${RUSH_JSON_FILENAME} configuration requests Rush version ${version}`); diff --git a/common/scripts/install-run.js b/common/scripts/install-run.js index f5c278d72b4..b25266e4f5e 100644 --- a/common/scripts/install-run.js +++ b/common/scripts/install-run.js @@ -77,14 +77,8 @@ __webpack_require__.r(__webpack_exports__); * @returns * The text of the the .npmrc. */ -// create a global _combinedNpmrc for cache purpose -const _combinedNpmrcMap = new Map(); function _trimNpmrcFile(options) { const { sourceNpmrcPath, linesToPrepend, linesToAppend, supportEnvVarFallbackSyntax, filterNpmIncompatibleProperties, env = process.env } = options; - const combinedNpmrcFromCache = _combinedNpmrcMap.get(sourceNpmrcPath); - if (combinedNpmrcFromCache !== undefined) { - return combinedNpmrcFromCache; - } let npmrcFileLines = []; if (linesToPrepend) { npmrcFileLines.push(...linesToPrepend); @@ -98,8 +92,6 @@ function _trimNpmrcFile(options) { npmrcFileLines = npmrcFileLines.map((line) => (line || '').trim()); const resultLines = trimNpmrcFileLines(npmrcFileLines, env, supportEnvVarFallbackSyntax, filterNpmIncompatibleProperties); const combinedNpmrc = resultLines.join('\n'); - //save the cache - _combinedNpmrcMap.set(sourceNpmrcPath, combinedNpmrc); return combinedNpmrc; } /** diff --git a/eslint/eslint-bulk/.npmignore b/eslint/eslint-bulk/.npmignore index e15a94aeb84..f7a40e10213 100755 --- a/eslint/eslint-bulk/.npmignore +++ b/eslint/eslint-bulk/.npmignore @@ -8,6 +8,7 @@ !/lib/** !/lib-*/** !/dist/** +!/includes/** !CHANGELOG.md !CHANGELOG.json @@ -20,6 +21,9 @@ /lib/**/test/ /lib-*/**/test/ *.test.js +*.test.[cm]js +*.test.d.ts +*.test.d.[cm]ts # NOTE: These don't need to be specified, because NPM includes them automatically. # @@ -30,4 +34,3 @@ # --------------------------------------------------------------------------- # DO NOT MODIFY ABOVE THIS LINE! Add any project-specific overrides below. # --------------------------------------------------------------------------- - diff --git a/eslint/eslint-bulk/CHANGELOG.json b/eslint/eslint-bulk/CHANGELOG.json index 07099b22c80..4f3ca2014e0 100644 --- a/eslint/eslint-bulk/CHANGELOG.json +++ b/eslint/eslint-bulk/CHANGELOG.json @@ -1,6 +1,66 @@ { "name": "@rushstack/eslint-bulk", "entries": [ + { + "version": "0.5.7", + "tag": "@rushstack/eslint-bulk_v0.5.7", + "date": "Mon, 09 Mar 2026 15:14:08 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.7`" + } + ] + } + }, + { + "version": "0.5.6", + "tag": "@rushstack/eslint-bulk_v0.5.6", + "date": "Wed, 25 Feb 2026 21:39:42 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.6`" + } + ] + } + }, + { + "version": "0.5.5", + "tag": "@rushstack/eslint-bulk_v0.5.5", + "date": "Wed, 25 Feb 2026 00:34:29 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.5`" + } + ] + } + }, + { + "version": "0.5.4", + "tag": "@rushstack/eslint-bulk_v0.5.4", + "date": "Tue, 24 Feb 2026 01:13:27 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.4`" + } + ] + } + }, + { + "version": "0.5.3", + "tag": "@rushstack/eslint-bulk_v0.5.3", + "date": "Mon, 23 Feb 2026 00:42:21 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.3`" + } + ] + } + }, { "version": "0.5.2", "tag": "@rushstack/eslint-bulk_v0.5.2", diff --git a/eslint/eslint-bulk/CHANGELOG.md b/eslint/eslint-bulk/CHANGELOG.md index af4f8dcb01a..c99d0e48119 100644 --- a/eslint/eslint-bulk/CHANGELOG.md +++ b/eslint/eslint-bulk/CHANGELOG.md @@ -1,6 +1,31 @@ # Change Log - @rushstack/eslint-bulk -This log was last generated on Fri, 20 Feb 2026 16:14:49 GMT and should not be manually modified. +This log was last generated on Mon, 09 Mar 2026 15:14:08 GMT and should not be manually modified. + +## 0.5.7 +Mon, 09 Mar 2026 15:14:08 GMT + +_Version update only_ + +## 0.5.6 +Wed, 25 Feb 2026 21:39:42 GMT + +_Version update only_ + +## 0.5.5 +Wed, 25 Feb 2026 00:34:29 GMT + +_Version update only_ + +## 0.5.4 +Tue, 24 Feb 2026 01:13:27 GMT + +_Version update only_ + +## 0.5.3 +Mon, 23 Feb 2026 00:42:21 GMT + +_Version update only_ ## 0.5.2 Fri, 20 Feb 2026 16:14:49 GMT diff --git a/eslint/eslint-bulk/package.json b/eslint/eslint-bulk/package.json index 40432e99586..7754ba25be4 100755 --- a/eslint/eslint-bulk/package.json +++ b/eslint/eslint-bulk/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/eslint-bulk", - "version": "0.5.2", + "version": "0.5.7", "description": "Roll out new ESLint rules in a large monorepo without cluttering up your code with \"eslint-ignore-next-line\"", "exports": { "./lib/*": { diff --git a/eslint/eslint-config/.npmignore b/eslint/eslint-config/.npmignore index 4babcddc16d..31e20769649 100644 --- a/eslint/eslint-config/.npmignore +++ b/eslint/eslint-config/.npmignore @@ -8,6 +8,7 @@ !/lib/** !/lib-*/** !/dist/** +!/includes/** !CHANGELOG.md !CHANGELOG.json @@ -20,6 +21,9 @@ /lib/**/test/ /lib-*/**/test/ *.test.js +*.test.[cm]js +*.test.d.ts +*.test.d.[cm]ts # NOTE: These don't need to be specified, because NPM includes them automatically. # @@ -31,8 +35,28 @@ # DO NOT MODIFY ABOVE THIS LINE! Add any project-specific overrides below. # --------------------------------------------------------------------------- -!*.js +!/*.js +!/*.[cm]js +!/*.d.ts +!/*.d.[cm]ts + !flat/**/*.js +!flat/**/*.[cm]js +!flat/**/*.d.ts +!flat/**/*.d.[cm]ts + !mixins/*.js +!mixins/*.[cm]js +!mixins/*.d.ts +!mixins/*.d.[cm]ts + !patch/*.js +!patch/*.[cm]js +!patch/*.d.ts +!patch/*.d.[cm]ts + !profile/*.js +!profile/*.[cm]js +!profile/*.d.ts +!profile/*.d.[cm]ts + diff --git a/eslint/eslint-config/CHANGELOG.json b/eslint/eslint-config/CHANGELOG.json index 54d045cb1a1..e6acfd01876 100644 --- a/eslint/eslint-config/CHANGELOG.json +++ b/eslint/eslint-config/CHANGELOG.json @@ -1,6 +1,32 @@ { "name": "@rushstack/eslint-config", "entries": [ + { + "version": "4.6.4", + "tag": "@rushstack/eslint-config_v4.6.4", + "date": "Wed, 25 Feb 2026 21:39:42 GMT", + "comments": { + "patch": [ + { + "comment": "Bump `eslint-plugin-tsdoc` to `~0.5.1` to mitigate CVE-2026-26996." + }, + { + "comment": "Bump `@typescript-eslint/*` dependencies to `~8.56.1`." + } + ], + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/eslint-plugin\" to `0.23.2`" + }, + { + "comment": "Updating dependency \"@rushstack/eslint-plugin-packlets\" to `0.15.2`" + }, + { + "comment": "Updating dependency \"@rushstack/eslint-plugin-security\" to `0.14.2`" + } + ] + } + }, { "version": "4.6.3", "tag": "@rushstack/eslint-config_v4.6.3", diff --git a/eslint/eslint-config/CHANGELOG.md b/eslint/eslint-config/CHANGELOG.md index f615871ad0c..0b791c4d751 100644 --- a/eslint/eslint-config/CHANGELOG.md +++ b/eslint/eslint-config/CHANGELOG.md @@ -1,6 +1,14 @@ # Change Log - @rushstack/eslint-config -This log was last generated on Fri, 20 Feb 2026 00:15:04 GMT and should not be manually modified. +This log was last generated on Wed, 25 Feb 2026 21:39:42 GMT and should not be manually modified. + +## 4.6.4 +Wed, 25 Feb 2026 21:39:42 GMT + +### Patches + +- Bump `eslint-plugin-tsdoc` to `~0.5.1` to mitigate CVE-2026-26996. +- Bump `@typescript-eslint/*` dependencies to `~8.56.1`. ## 4.6.3 Fri, 20 Feb 2026 00:15:04 GMT diff --git a/eslint/eslint-config/package.json b/eslint/eslint-config/package.json index c8c6281a011..3738b2aebbd 100644 --- a/eslint/eslint-config/package.json +++ b/eslint/eslint-config/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/eslint-config", - "version": "4.6.3", + "version": "4.6.4", "description": "A TypeScript ESLint ruleset designed for large teams and projects", "license": "MIT", "repository": { @@ -31,13 +31,13 @@ "@rushstack/eslint-plugin": "workspace:*", "@rushstack/eslint-plugin-packlets": "workspace:*", "@rushstack/eslint-plugin-security": "workspace:*", - "@typescript-eslint/eslint-plugin": "~8.46.0", - "@typescript-eslint/utils": "~8.46.0", - "@typescript-eslint/parser": "~8.46.0", - "@typescript-eslint/typescript-estree": "~8.46.0", + "@typescript-eslint/eslint-plugin": "~8.56.1", + "@typescript-eslint/utils": "~8.56.1", + "@typescript-eslint/parser": "~8.56.1", + "@typescript-eslint/typescript-estree": "~8.56.1", "eslint-plugin-promise": "~7.2.1", "eslint-plugin-react": "~7.37.5", - "eslint-plugin-tsdoc": "~0.5.0" + "eslint-plugin-tsdoc": "~0.5.1" }, "devDependencies": { "eslint": "~9.37.0", diff --git a/eslint/eslint-patch/.npmignore b/eslint/eslint-patch/.npmignore index 285cde9e713..f7a40e10213 100644 --- a/eslint/eslint-patch/.npmignore +++ b/eslint/eslint-patch/.npmignore @@ -8,6 +8,7 @@ !/lib/** !/lib-*/** !/dist/** +!/includes/** !CHANGELOG.md !CHANGELOG.json @@ -20,6 +21,9 @@ /lib/**/test/ /lib-*/**/test/ *.test.js +*.test.[cm]js +*.test.d.ts +*.test.d.[cm]ts # NOTE: These don't need to be specified, because NPM includes them automatically. # @@ -30,6 +34,3 @@ # --------------------------------------------------------------------------- # DO NOT MODIFY ABOVE THIS LINE! Add any project-specific overrides below. # --------------------------------------------------------------------------- - -!*.js -gulpfile.js diff --git a/eslint/eslint-patch/package.json b/eslint/eslint-patch/package.json index c0cbc769091..8f5e5d94e0b 100644 --- a/eslint/eslint-patch/package.json +++ b/eslint/eslint-patch/package.json @@ -67,10 +67,10 @@ "patch" ], "devDependencies": { - "@rushstack/heft": "1.2.0", + "@rushstack/heft": "1.2.7", "@types/eslint-8": "npm:@types/eslint@8.56.10", "@types/eslint-9": "npm:@types/eslint@9.6.1", - "@typescript-eslint/types": "~8.46.0", + "@typescript-eslint/types": "~8.56.1", "decoupled-local-node-rig": "workspace:*", "eslint-8": "npm:eslint@~8.57.0", "eslint-9": "npm:eslint@~9.25.1", diff --git a/eslint/eslint-plugin-packlets/.npmignore b/eslint/eslint-plugin-packlets/.npmignore index e15a94aeb84..f7a40e10213 100644 --- a/eslint/eslint-plugin-packlets/.npmignore +++ b/eslint/eslint-plugin-packlets/.npmignore @@ -8,6 +8,7 @@ !/lib/** !/lib-*/** !/dist/** +!/includes/** !CHANGELOG.md !CHANGELOG.json @@ -20,6 +21,9 @@ /lib/**/test/ /lib-*/**/test/ *.test.js +*.test.[cm]js +*.test.d.ts +*.test.d.[cm]ts # NOTE: These don't need to be specified, because NPM includes them automatically. # @@ -30,4 +34,3 @@ # --------------------------------------------------------------------------- # DO NOT MODIFY ABOVE THIS LINE! Add any project-specific overrides below. # --------------------------------------------------------------------------- - diff --git a/eslint/eslint-plugin-packlets/CHANGELOG.json b/eslint/eslint-plugin-packlets/CHANGELOG.json index 1db353b0f24..ab7d9891835 100644 --- a/eslint/eslint-plugin-packlets/CHANGELOG.json +++ b/eslint/eslint-plugin-packlets/CHANGELOG.json @@ -1,6 +1,18 @@ { "name": "@rushstack/eslint-plugin-packlets", "entries": [ + { + "version": "0.15.2", + "tag": "@rushstack/eslint-plugin-packlets_v0.15.2", + "date": "Wed, 25 Feb 2026 21:39:42 GMT", + "comments": { + "patch": [ + { + "comment": "Bump `@typescript-eslint/*` dependencies to `~8.56.1`." + } + ] + } + }, { "version": "0.15.1", "tag": "@rushstack/eslint-plugin-packlets_v0.15.1", diff --git a/eslint/eslint-plugin-packlets/CHANGELOG.md b/eslint/eslint-plugin-packlets/CHANGELOG.md index a2b17c4e615..cd04b30e91b 100644 --- a/eslint/eslint-plugin-packlets/CHANGELOG.md +++ b/eslint/eslint-plugin-packlets/CHANGELOG.md @@ -1,6 +1,13 @@ # Change Log - @rushstack/eslint-plugin-packlets -This log was last generated on Fri, 20 Feb 2026 00:15:04 GMT and should not be manually modified. +This log was last generated on Wed, 25 Feb 2026 21:39:42 GMT and should not be manually modified. + +## 0.15.2 +Wed, 25 Feb 2026 21:39:42 GMT + +### Patches + +- Bump `@typescript-eslint/*` dependencies to `~8.56.1`. ## 0.15.1 Fri, 20 Feb 2026 00:15:04 GMT diff --git a/eslint/eslint-plugin-packlets/package.json b/eslint/eslint-plugin-packlets/package.json index 75f5dfefcd0..6ad13bfee95 100644 --- a/eslint/eslint-plugin-packlets/package.json +++ b/eslint/eslint-plugin-packlets/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/eslint-plugin-packlets", - "version": "0.15.1", + "version": "0.15.2", "description": "A lightweight alternative to NPM packages for organizing source files within a single project", "license": "MIT", "repository": { @@ -47,14 +47,14 @@ }, "dependencies": { "@rushstack/tree-pattern": "workspace:*", - "@typescript-eslint/utils": "~8.46.0" + "@typescript-eslint/utils": "~8.56.1" }, "peerDependencies": { "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0" }, "devDependencies": { - "@rushstack/heft": "1.2.0", - "@typescript-eslint/parser": "~8.46.0", + "@rushstack/heft": "1.2.7", + "@typescript-eslint/parser": "~8.56.1", "decoupled-local-node-rig": "workspace:*", "eslint": "~9.37.0", "typescript": "~5.8.2" diff --git a/eslint/eslint-plugin-security/.npmignore b/eslint/eslint-plugin-security/.npmignore index bc349f9a4be..f7a40e10213 100644 --- a/eslint/eslint-plugin-security/.npmignore +++ b/eslint/eslint-plugin-security/.npmignore @@ -8,6 +8,7 @@ !/lib/** !/lib-*/** !/dist/** +!/includes/** !CHANGELOG.md !CHANGELOG.json @@ -20,6 +21,9 @@ /lib/**/test/ /lib-*/**/test/ *.test.js +*.test.[cm]js +*.test.d.ts +*.test.d.[cm]ts # NOTE: These don't need to be specified, because NPM includes them automatically. # diff --git a/eslint/eslint-plugin-security/CHANGELOG.json b/eslint/eslint-plugin-security/CHANGELOG.json index 04892c84749..c5fb2519f1c 100644 --- a/eslint/eslint-plugin-security/CHANGELOG.json +++ b/eslint/eslint-plugin-security/CHANGELOG.json @@ -1,6 +1,18 @@ { "name": "@rushstack/eslint-plugin-security", "entries": [ + { + "version": "0.14.2", + "tag": "@rushstack/eslint-plugin-security_v0.14.2", + "date": "Wed, 25 Feb 2026 21:39:42 GMT", + "comments": { + "patch": [ + { + "comment": "Bump `@typescript-eslint/*` dependencies to `~8.56.1`." + } + ] + } + }, { "version": "0.14.1", "tag": "@rushstack/eslint-plugin-security_v0.14.1", diff --git a/eslint/eslint-plugin-security/CHANGELOG.md b/eslint/eslint-plugin-security/CHANGELOG.md index 61eb03e5610..ae60335a39f 100644 --- a/eslint/eslint-plugin-security/CHANGELOG.md +++ b/eslint/eslint-plugin-security/CHANGELOG.md @@ -1,6 +1,13 @@ # Change Log - @rushstack/eslint-plugin-security -This log was last generated on Fri, 20 Feb 2026 00:15:04 GMT and should not be manually modified. +This log was last generated on Wed, 25 Feb 2026 21:39:42 GMT and should not be manually modified. + +## 0.14.2 +Wed, 25 Feb 2026 21:39:42 GMT + +### Patches + +- Bump `@typescript-eslint/*` dependencies to `~8.56.1`. ## 0.14.1 Fri, 20 Feb 2026 00:15:04 GMT diff --git a/eslint/eslint-plugin-security/package.json b/eslint/eslint-plugin-security/package.json index 57ac075afda..a33a9a406ef 100644 --- a/eslint/eslint-plugin-security/package.json +++ b/eslint/eslint-plugin-security/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/eslint-plugin-security", - "version": "0.14.1", + "version": "0.14.2", "description": "An ESLint plugin providing rules that identify common security vulnerabilities for browser applications, Node.js tools, and Node.js services", "license": "MIT", "repository": { @@ -46,16 +46,16 @@ }, "dependencies": { "@rushstack/tree-pattern": "workspace:*", - "@typescript-eslint/utils": "~8.46.0" + "@typescript-eslint/utils": "~8.56.1" }, "peerDependencies": { "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0" }, "devDependencies": { - "@rushstack/heft": "1.2.0", - "@typescript-eslint/parser": "~8.46.0", - "@typescript-eslint/rule-tester": "~8.46.0", - "@typescript-eslint/typescript-estree": "~8.46.0", + "@rushstack/heft": "1.2.7", + "@typescript-eslint/parser": "~8.56.1", + "@typescript-eslint/rule-tester": "~8.56.1", + "@typescript-eslint/typescript-estree": "~8.56.1", "decoupled-local-node-rig": "workspace:*", "eslint": "~9.37.0", "typescript": "~5.8.2" diff --git a/eslint/eslint-plugin/.npmignore b/eslint/eslint-plugin/.npmignore index e15a94aeb84..f7a40e10213 100644 --- a/eslint/eslint-plugin/.npmignore +++ b/eslint/eslint-plugin/.npmignore @@ -8,6 +8,7 @@ !/lib/** !/lib-*/** !/dist/** +!/includes/** !CHANGELOG.md !CHANGELOG.json @@ -20,6 +21,9 @@ /lib/**/test/ /lib-*/**/test/ *.test.js +*.test.[cm]js +*.test.d.ts +*.test.d.[cm]ts # NOTE: These don't need to be specified, because NPM includes them automatically. # @@ -30,4 +34,3 @@ # --------------------------------------------------------------------------- # DO NOT MODIFY ABOVE THIS LINE! Add any project-specific overrides below. # --------------------------------------------------------------------------- - diff --git a/eslint/eslint-plugin/CHANGELOG.json b/eslint/eslint-plugin/CHANGELOG.json index 9864d05ada1..bb87cd719a9 100644 --- a/eslint/eslint-plugin/CHANGELOG.json +++ b/eslint/eslint-plugin/CHANGELOG.json @@ -1,6 +1,18 @@ { "name": "@rushstack/eslint-plugin", "entries": [ + { + "version": "0.23.2", + "tag": "@rushstack/eslint-plugin_v0.23.2", + "date": "Wed, 25 Feb 2026 21:39:42 GMT", + "comments": { + "patch": [ + { + "comment": "Bump `@typescript-eslint/*` dependencies to `~8.56.1`." + } + ] + } + }, { "version": "0.23.1", "tag": "@rushstack/eslint-plugin_v0.23.1", diff --git a/eslint/eslint-plugin/CHANGELOG.md b/eslint/eslint-plugin/CHANGELOG.md index 76fcad96f34..2d8d24527bc 100644 --- a/eslint/eslint-plugin/CHANGELOG.md +++ b/eslint/eslint-plugin/CHANGELOG.md @@ -1,6 +1,13 @@ # Change Log - @rushstack/eslint-plugin -This log was last generated on Fri, 20 Feb 2026 00:15:04 GMT and should not be manually modified. +This log was last generated on Wed, 25 Feb 2026 21:39:42 GMT and should not be manually modified. + +## 0.23.2 +Wed, 25 Feb 2026 21:39:42 GMT + +### Patches + +- Bump `@typescript-eslint/*` dependencies to `~8.56.1`. ## 0.23.1 Fri, 20 Feb 2026 00:15:04 GMT diff --git a/eslint/eslint-plugin/package.json b/eslint/eslint-plugin/package.json index f935c4e45ee..ae5efd56264 100644 --- a/eslint/eslint-plugin/package.json +++ b/eslint/eslint-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/eslint-plugin", - "version": "0.23.1", + "version": "0.23.2", "description": "An ESLint plugin providing supplementary rules for use with the @rushstack/eslint-config package", "license": "MIT", "repository": { @@ -50,19 +50,19 @@ }, "dependencies": { "@rushstack/tree-pattern": "workspace:*", - "@typescript-eslint/utils": "~8.46.0" + "@typescript-eslint/utils": "~8.56.1" }, "peerDependencies": { "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0 || ^9.0.0" }, "devDependencies": { - "@rushstack/heft": "1.2.0", - "@typescript-eslint/parser": "~8.46.0", - "@typescript-eslint/rule-tester": "~8.46.0", + "@rushstack/heft": "1.2.7", + "@typescript-eslint/parser": "~8.56.1", + "@typescript-eslint/rule-tester": "~8.56.1", "decoupled-local-node-rig": "workspace:*", "eslint": "~9.37.0", "typescript": "~5.8.2", - "@typescript-eslint/types": "~8.46.0" + "@typescript-eslint/types": "~8.56.1" }, "sideEffects": false } diff --git a/eslint/local-eslint-config/.npmignore b/eslint/local-eslint-config/.npmignore index 25141726512..ad53b8deba3 100644 --- a/eslint/local-eslint-config/.npmignore +++ b/eslint/local-eslint-config/.npmignore @@ -1,27 +1,38 @@ -# Ignore everything by default -** +# THIS IS A STANDARD TEMPLATE FOR .npmignore FILES IN THIS REPO. -# Use negative patterns to bring back the specific things we want to publish +# Ignore all files by default, to avoid accidentally publishing unintended files. +* + +# Use negative patterns to bring back the specific things we want to publish. !/bin/** !/lib/** +!/lib-*/** !/dist/** +!/includes/** + +!CHANGELOG.md +!CHANGELOG.json +!heft-plugin.json +!rush-plugin-manifest.json !ThirdPartyNotice.txt -!/EULA/** -# Ignore certain files in the above folder +# Ignore certain patterns that should not get published. /dist/*.stats.* -/lib/**/test/** -/lib/**/*.js.map -/dist/**/*.js.map +/lib/**/test/ +/lib-*/**/test/ +*.test.js +*.test.[cm]js +*.test.d.ts +*.test.d.[cm]ts # NOTE: These don't need to be specified, because NPM includes them automatically. # # package.json -# README (and its variants) -# CHANGELOG (and its variants) -# LICENSE / LICENCE +# README.md +# LICENSE -## Project specific definitions -# ----------------------------- +# --------------------------------------------------------------------------- +# DO NOT MODIFY ABOVE THIS LINE! Add any project-specific overrides below. +# --------------------------------------------------------------------------- -!/flat/** \ No newline at end of file +!/flat/** diff --git a/eslint/local-eslint-config/package.json b/eslint/local-eslint-config/package.json index 5f9489cb201..7c86f3bf6f2 100644 --- a/eslint/local-eslint-config/package.json +++ b/eslint/local-eslint-config/package.json @@ -14,15 +14,15 @@ "devDependencies": { "eslint": "~9.37.0", "typescript": "~5.8.2", - "@rushstack/heft": "1.2.0", + "@rushstack/heft": "1.2.7", "decoupled-local-node-rig": "workspace:*" }, "dependencies": { "@rushstack/eslint-config": "workspace:*", "@rushstack/eslint-patch": "workspace:*", "@rushstack/eslint-plugin": "workspace:*", - "@typescript-eslint/eslint-plugin": "~8.46.0", - "@typescript-eslint/parser": "~8.46.0", + "@typescript-eslint/eslint-plugin": "~8.56.1", + "@typescript-eslint/parser": "~8.56.1", "eslint-import-resolver-node": "0.3.9", "eslint-plugin-header": "~3.1.1", "eslint-plugin-headers": "~1.2.1", diff --git a/heft-plugins/heft-api-extractor-plugin/.npmignore b/heft-plugins/heft-api-extractor-plugin/.npmignore index e15a94aeb84..f7a40e10213 100644 --- a/heft-plugins/heft-api-extractor-plugin/.npmignore +++ b/heft-plugins/heft-api-extractor-plugin/.npmignore @@ -8,6 +8,7 @@ !/lib/** !/lib-*/** !/dist/** +!/includes/** !CHANGELOG.md !CHANGELOG.json @@ -20,6 +21,9 @@ /lib/**/test/ /lib-*/**/test/ *.test.js +*.test.[cm]js +*.test.d.ts +*.test.d.[cm]ts # NOTE: These don't need to be specified, because NPM includes them automatically. # @@ -30,4 +34,3 @@ # --------------------------------------------------------------------------- # DO NOT MODIFY ABOVE THIS LINE! Add any project-specific overrides below. # --------------------------------------------------------------------------- - diff --git a/heft-plugins/heft-api-extractor-plugin/CHANGELOG.json b/heft-plugins/heft-api-extractor-plugin/CHANGELOG.json index 3accdbb3fcd..a2ec62f3754 100644 --- a/heft-plugins/heft-api-extractor-plugin/CHANGELOG.json +++ b/heft-plugins/heft-api-extractor-plugin/CHANGELOG.json @@ -1,6 +1,108 @@ { "name": "@rushstack/heft-api-extractor-plugin", "entries": [ + { + "version": "1.3.7", + "tag": "@rushstack/heft-api-extractor-plugin_v1.3.7", + "date": "Mon, 09 Mar 2026 15:14:08 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@microsoft/api-extractor\" to `7.57.7`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.7`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `1.2.6` to `1.2.7`" + } + ] + } + }, + { + "version": "1.3.6", + "tag": "@rushstack/heft-api-extractor-plugin_v1.3.6", + "date": "Wed, 25 Feb 2026 21:39:42 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@microsoft/api-extractor\" to `7.57.6`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.6`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `1.2.5` to `1.2.6`" + } + ] + } + }, + { + "version": "1.3.5", + "tag": "@rushstack/heft-api-extractor-plugin_v1.3.5", + "date": "Wed, 25 Feb 2026 00:34:29 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `5.20.3`" + }, + { + "comment": "Updating dependency \"@microsoft/api-extractor\" to `7.57.5`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.5`" + }, + { + "comment": "Updating dependency \"@rushstack/terminal\" to `0.22.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `1.2.4` to `1.2.5`" + } + ] + } + }, + { + "version": "1.3.4", + "tag": "@rushstack/heft-api-extractor-plugin_v1.3.4", + "date": "Tue, 24 Feb 2026 01:13:27 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `5.20.2`" + }, + { + "comment": "Updating dependency \"@microsoft/api-extractor\" to `7.57.4`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.4`" + }, + { + "comment": "Updating dependency \"@rushstack/terminal\" to `0.22.2`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `1.2.3` to `1.2.4`" + } + ] + } + }, + { + "version": "1.3.3", + "tag": "@rushstack/heft-api-extractor-plugin_v1.3.3", + "date": "Mon, 23 Feb 2026 00:42:21 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@microsoft/api-extractor\" to `7.57.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `1.2.2` to `1.2.3`" + } + ] + } + }, { "version": "1.3.2", "tag": "@rushstack/heft-api-extractor-plugin_v1.3.2", diff --git a/heft-plugins/heft-api-extractor-plugin/CHANGELOG.md b/heft-plugins/heft-api-extractor-plugin/CHANGELOG.md index 23be9ac5990..3d780009906 100644 --- a/heft-plugins/heft-api-extractor-plugin/CHANGELOG.md +++ b/heft-plugins/heft-api-extractor-plugin/CHANGELOG.md @@ -1,6 +1,31 @@ # Change Log - @rushstack/heft-api-extractor-plugin -This log was last generated on Fri, 20 Feb 2026 16:14:49 GMT and should not be manually modified. +This log was last generated on Mon, 09 Mar 2026 15:14:08 GMT and should not be manually modified. + +## 1.3.7 +Mon, 09 Mar 2026 15:14:08 GMT + +_Version update only_ + +## 1.3.6 +Wed, 25 Feb 2026 21:39:42 GMT + +_Version update only_ + +## 1.3.5 +Wed, 25 Feb 2026 00:34:29 GMT + +_Version update only_ + +## 1.3.4 +Tue, 24 Feb 2026 01:13:27 GMT + +_Version update only_ + +## 1.3.3 +Mon, 23 Feb 2026 00:42:21 GMT + +_Version update only_ ## 1.3.2 Fri, 20 Feb 2026 16:14:49 GMT diff --git a/heft-plugins/heft-api-extractor-plugin/package.json b/heft-plugins/heft-api-extractor-plugin/package.json index 44900c7922a..d5ad9a396bb 100644 --- a/heft-plugins/heft-api-extractor-plugin/package.json +++ b/heft-plugins/heft-api-extractor-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/heft-api-extractor-plugin", - "version": "1.3.2", + "version": "1.3.7", "description": "A Heft plugin for API Extractor", "repository": { "type": "git", @@ -15,7 +15,7 @@ "_phase:build": "heft run --only build -- --clean" }, "peerDependencies": { - "@rushstack/heft": "1.2.2" + "@rushstack/heft": "1.2.7" }, "dependencies": { "@rushstack/node-core-library": "workspace:*", diff --git a/heft-plugins/heft-dev-cert-plugin/.npmignore b/heft-plugins/heft-dev-cert-plugin/.npmignore index bc349f9a4be..f7a40e10213 100644 --- a/heft-plugins/heft-dev-cert-plugin/.npmignore +++ b/heft-plugins/heft-dev-cert-plugin/.npmignore @@ -8,6 +8,7 @@ !/lib/** !/lib-*/** !/dist/** +!/includes/** !CHANGELOG.md !CHANGELOG.json @@ -20,6 +21,9 @@ /lib/**/test/ /lib-*/**/test/ *.test.js +*.test.[cm]js +*.test.d.ts +*.test.d.[cm]ts # NOTE: These don't need to be specified, because NPM includes them automatically. # diff --git a/heft-plugins/heft-dev-cert-plugin/CHANGELOG.json b/heft-plugins/heft-dev-cert-plugin/CHANGELOG.json index 9b91c880025..7a24c112c55 100644 --- a/heft-plugins/heft-dev-cert-plugin/CHANGELOG.json +++ b/heft-plugins/heft-dev-cert-plugin/CHANGELOG.json @@ -1,6 +1,111 @@ { "name": "@rushstack/heft-dev-cert-plugin", "entries": [ + { + "version": "1.1.7", + "tag": "@rushstack/heft-dev-cert-plugin_v1.1.7", + "date": "Mon, 09 Mar 2026 15:14:08 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/debug-certificate-manager\" to `1.7.7`" + }, + { + "comment": "Updating dependency \"@microsoft/api-extractor\" to `7.57.7`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.7`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^1.2.6` to `1.2.7`" + } + ] + } + }, + { + "version": "1.1.6", + "tag": "@rushstack/heft-dev-cert-plugin_v1.1.6", + "date": "Wed, 25 Feb 2026 21:39:42 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/debug-certificate-manager\" to `1.7.6`" + }, + { + "comment": "Updating dependency \"@microsoft/api-extractor\" to `7.57.6`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.6`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^1.2.5` to `1.2.6`" + } + ] + } + }, + { + "version": "1.1.5", + "tag": "@rushstack/heft-dev-cert-plugin_v1.1.5", + "date": "Wed, 25 Feb 2026 00:34:29 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/debug-certificate-manager\" to `1.7.5`" + }, + { + "comment": "Updating dependency \"@microsoft/api-extractor\" to `7.57.5`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.5`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^1.2.4` to `1.2.5`" + } + ] + } + }, + { + "version": "1.1.4", + "tag": "@rushstack/heft-dev-cert-plugin_v1.1.4", + "date": "Tue, 24 Feb 2026 01:13:27 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/debug-certificate-manager\" to `1.7.4`" + }, + { + "comment": "Updating dependency \"@microsoft/api-extractor\" to `7.57.4`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.4`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^1.2.3` to `1.2.4`" + } + ] + } + }, + { + "version": "1.1.3", + "tag": "@rushstack/heft-dev-cert-plugin_v1.1.3", + "date": "Mon, 23 Feb 2026 00:42:21 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/debug-certificate-manager\" to `1.7.3`" + }, + { + "comment": "Updating dependency \"@microsoft/api-extractor\" to `7.57.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^1.2.2` to `1.2.3`" + } + ] + } + }, { "version": "1.1.2", "tag": "@rushstack/heft-dev-cert-plugin_v1.1.2", diff --git a/heft-plugins/heft-dev-cert-plugin/CHANGELOG.md b/heft-plugins/heft-dev-cert-plugin/CHANGELOG.md index 6b3e1046f94..adf8f150bbf 100644 --- a/heft-plugins/heft-dev-cert-plugin/CHANGELOG.md +++ b/heft-plugins/heft-dev-cert-plugin/CHANGELOG.md @@ -1,6 +1,31 @@ # Change Log - @rushstack/heft-dev-cert-plugin -This log was last generated on Fri, 20 Feb 2026 16:14:49 GMT and should not be manually modified. +This log was last generated on Mon, 09 Mar 2026 15:14:08 GMT and should not be manually modified. + +## 1.1.7 +Mon, 09 Mar 2026 15:14:08 GMT + +_Version update only_ + +## 1.1.6 +Wed, 25 Feb 2026 21:39:42 GMT + +_Version update only_ + +## 1.1.5 +Wed, 25 Feb 2026 00:34:29 GMT + +_Version update only_ + +## 1.1.4 +Tue, 24 Feb 2026 01:13:27 GMT + +_Version update only_ + +## 1.1.3 +Mon, 23 Feb 2026 00:42:21 GMT + +_Version update only_ ## 1.1.2 Fri, 20 Feb 2026 16:14:49 GMT diff --git a/heft-plugins/heft-dev-cert-plugin/package.json b/heft-plugins/heft-dev-cert-plugin/package.json index 0ba10ccf27e..851faae7a2b 100644 --- a/heft-plugins/heft-dev-cert-plugin/package.json +++ b/heft-plugins/heft-dev-cert-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/heft-dev-cert-plugin", - "version": "1.1.2", + "version": "1.1.7", "description": "A Heft plugin for generating and using local development certificates", "repository": { "type": "git", @@ -16,7 +16,7 @@ "_phase:test": "heft run --only test -- --clean" }, "peerDependencies": { - "@rushstack/heft": "^1.2.2" + "@rushstack/heft": "^1.2.7" }, "dependencies": { "@rushstack/debug-certificate-manager": "workspace:*" diff --git a/heft-plugins/heft-isolated-typescript-transpile-plugin/.npmignore b/heft-plugins/heft-isolated-typescript-transpile-plugin/.npmignore index bc349f9a4be..f7a40e10213 100644 --- a/heft-plugins/heft-isolated-typescript-transpile-plugin/.npmignore +++ b/heft-plugins/heft-isolated-typescript-transpile-plugin/.npmignore @@ -8,6 +8,7 @@ !/lib/** !/lib-*/** !/dist/** +!/includes/** !CHANGELOG.md !CHANGELOG.json @@ -20,6 +21,9 @@ /lib/**/test/ /lib-*/**/test/ *.test.js +*.test.[cm]js +*.test.d.ts +*.test.d.[cm]ts # NOTE: These don't need to be specified, because NPM includes them automatically. # diff --git a/heft-plugins/heft-isolated-typescript-transpile-plugin/CHANGELOG.json b/heft-plugins/heft-isolated-typescript-transpile-plugin/CHANGELOG.json index c816a210f03..ca801e2e4f5 100644 --- a/heft-plugins/heft-isolated-typescript-transpile-plugin/CHANGELOG.json +++ b/heft-plugins/heft-isolated-typescript-transpile-plugin/CHANGELOG.json @@ -1,6 +1,132 @@ { "name": "@rushstack/heft-isolated-typescript-transpile-plugin", "entries": [ + { + "version": "1.2.7", + "tag": "@rushstack/heft-isolated-typescript-transpile-plugin_v1.2.7", + "date": "Mon, 09 Mar 2026 15:14:08 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/lookup-by-path\" to `0.9.7`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.7`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-typescript-plugin\" to `1.3.2`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^1.2.6` to `1.2.7`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-typescript-plugin\" to `^1.3.2`" + } + ] + } + }, + { + "version": "1.2.6", + "tag": "@rushstack/heft-isolated-typescript-transpile-plugin_v1.2.6", + "date": "Wed, 25 Feb 2026 21:39:42 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/lookup-by-path\" to `0.9.6`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.6`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-typescript-plugin\" to `1.3.1`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^1.2.5` to `1.2.6`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-typescript-plugin\" to `^1.3.1`" + } + ] + } + }, + { + "version": "1.2.5", + "tag": "@rushstack/heft-isolated-typescript-transpile-plugin_v1.2.5", + "date": "Wed, 25 Feb 2026 00:34:29 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/lookup-by-path\" to `0.9.5`" + }, + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `5.20.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.5`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-typescript-plugin\" to `1.3.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^1.2.4` to `1.2.5`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-typescript-plugin\" to `^1.3.0`" + } + ] + } + }, + { + "version": "1.2.4", + "tag": "@rushstack/heft-isolated-typescript-transpile-plugin_v1.2.4", + "date": "Tue, 24 Feb 2026 01:13:27 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/lookup-by-path\" to `0.9.4`" + }, + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `5.20.2`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.4`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-typescript-plugin\" to `1.2.4`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^1.2.3` to `1.2.4`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-typescript-plugin\" to `^1.2.4`" + } + ] + } + }, + { + "version": "1.2.3", + "tag": "@rushstack/heft-isolated-typescript-transpile-plugin_v1.2.3", + "date": "Mon, 23 Feb 2026 00:42:21 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/lookup-by-path\" to `0.9.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-typescript-plugin\" to `1.2.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^1.2.2` to `1.2.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-typescript-plugin\" to `^1.2.3`" + } + ] + } + }, { "version": "1.2.2", "tag": "@rushstack/heft-isolated-typescript-transpile-plugin_v1.2.2", diff --git a/heft-plugins/heft-isolated-typescript-transpile-plugin/CHANGELOG.md b/heft-plugins/heft-isolated-typescript-transpile-plugin/CHANGELOG.md index b4e2ea40108..1c23f477d12 100644 --- a/heft-plugins/heft-isolated-typescript-transpile-plugin/CHANGELOG.md +++ b/heft-plugins/heft-isolated-typescript-transpile-plugin/CHANGELOG.md @@ -1,6 +1,31 @@ # Change Log - @rushstack/heft-isolated-typescript-transpile-plugin -This log was last generated on Fri, 20 Feb 2026 16:14:49 GMT and should not be manually modified. +This log was last generated on Mon, 09 Mar 2026 15:14:08 GMT and should not be manually modified. + +## 1.2.7 +Mon, 09 Mar 2026 15:14:08 GMT + +_Version update only_ + +## 1.2.6 +Wed, 25 Feb 2026 21:39:42 GMT + +_Version update only_ + +## 1.2.5 +Wed, 25 Feb 2026 00:34:29 GMT + +_Version update only_ + +## 1.2.4 +Tue, 24 Feb 2026 01:13:27 GMT + +_Version update only_ + +## 1.2.3 +Mon, 23 Feb 2026 00:42:21 GMT + +_Version update only_ ## 1.2.2 Fri, 20 Feb 2026 16:14:49 GMT diff --git a/heft-plugins/heft-isolated-typescript-transpile-plugin/config/api-extractor.json b/heft-plugins/heft-isolated-typescript-transpile-plugin/config/api-extractor.json index 05559c8de5e..5f6b2655ac8 100644 --- a/heft-plugins/heft-isolated-typescript-transpile-plugin/config/api-extractor.json +++ b/heft-plugins/heft-isolated-typescript-transpile-plugin/config/api-extractor.json @@ -1,14 +1,11 @@ { "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", + "extends": "local-node-rig/profiles/default/config/api-extractor-base.json", - "mainEntryPointFilePath": "/lib-dts/index.d.ts", - "apiReport": { - "enabled": true, - "reportFolder": "../../../common/reviews/api" - }, "docModel": { "enabled": false }, + "dtsRollup": { "enabled": true, "betaTrimmedFilePath": "/dist/.d.ts" diff --git a/heft-plugins/heft-isolated-typescript-transpile-plugin/package.json b/heft-plugins/heft-isolated-typescript-transpile-plugin/package.json index 32321230ec5..381a4bfa6cb 100644 --- a/heft-plugins/heft-isolated-typescript-transpile-plugin/package.json +++ b/heft-plugins/heft-isolated-typescript-transpile-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/heft-isolated-typescript-transpile-plugin", - "version": "1.2.2", + "version": "1.2.7", "description": "Heft plugin for transpiling TypeScript with SWC", "repository": { "type": "git", @@ -43,7 +43,7 @@ "_phase:test": "heft run --only test -- --clean" }, "peerDependencies": { - "@rushstack/heft": "^1.2.2", + "@rushstack/heft": "^1.2.7", "@rushstack/heft-typescript-plugin": "workspace:^" }, "devDependencies": { diff --git a/heft-plugins/heft-jest-plugin/.npmignore b/heft-plugins/heft-jest-plugin/.npmignore index c672d8fde22..f7a40e10213 100644 --- a/heft-plugins/heft-jest-plugin/.npmignore +++ b/heft-plugins/heft-jest-plugin/.npmignore @@ -8,6 +8,7 @@ !/lib/** !/lib-*/** !/dist/** +!/includes/** !CHANGELOG.md !CHANGELOG.json @@ -20,6 +21,9 @@ /lib/**/test/ /lib-*/**/test/ *.test.js +*.test.[cm]js +*.test.d.ts +*.test.d.[cm]ts # NOTE: These don't need to be specified, because NPM includes them automatically. # @@ -30,5 +34,3 @@ # --------------------------------------------------------------------------- # DO NOT MODIFY ABOVE THIS LINE! Add any project-specific overrides below. # --------------------------------------------------------------------------- - -!/includes/** \ No newline at end of file diff --git a/heft-plugins/heft-jest-plugin/CHANGELOG.json b/heft-plugins/heft-jest-plugin/CHANGELOG.json index 70a2cf59bb1..4d2da4b16c0 100644 --- a/heft-plugins/heft-jest-plugin/CHANGELOG.json +++ b/heft-plugins/heft-jest-plugin/CHANGELOG.json @@ -1,6 +1,104 @@ { "name": "@rushstack/heft-jest-plugin", "entries": [ + { + "version": "1.2.7", + "tag": "@rushstack/heft-jest-plugin_v1.2.7", + "date": "Mon, 09 Mar 2026 15:14:08 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.7`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^1.2.6` to `1.2.7`" + } + ] + } + }, + { + "version": "1.2.6", + "tag": "@rushstack/heft-jest-plugin_v1.2.6", + "date": "Wed, 25 Feb 2026 21:39:42 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.6`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^1.2.5` to `1.2.6`" + } + ] + } + }, + { + "version": "1.2.5", + "tag": "@rushstack/heft-jest-plugin_v1.2.5", + "date": "Wed, 25 Feb 2026 00:34:29 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft-config-file\" to `0.20.3`" + }, + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `5.20.3`" + }, + { + "comment": "Updating dependency \"@rushstack/terminal\" to `0.22.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.5`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^1.2.4` to `1.2.5`" + } + ] + } + }, + { + "version": "1.2.4", + "tag": "@rushstack/heft-jest-plugin_v1.2.4", + "date": "Tue, 24 Feb 2026 01:13:27 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft-config-file\" to `0.20.2`" + }, + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `5.20.2`" + }, + { + "comment": "Updating dependency \"@rushstack/terminal\" to `0.22.2`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.4`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^1.2.3` to `1.2.4`" + } + ] + } + }, + { + "version": "1.2.3", + "tag": "@rushstack/heft-jest-plugin_v1.2.3", + "date": "Mon, 23 Feb 2026 00:42:21 GMT", + "comments": { + "patch": [ + { + "comment": "Add missing \"./includes/*.json\" to the package.json \"exports\" field so that Jest config files like \"@rushstack/heft-jest-plugin/includes/jest-shared.config.json\" are importable." + } + ], + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^1.2.2` to `1.2.3`" + } + ] + } + }, { "version": "1.2.2", "tag": "@rushstack/heft-jest-plugin_v1.2.2", diff --git a/heft-plugins/heft-jest-plugin/CHANGELOG.md b/heft-plugins/heft-jest-plugin/CHANGELOG.md index c27d2ae453b..0459667457e 100644 --- a/heft-plugins/heft-jest-plugin/CHANGELOG.md +++ b/heft-plugins/heft-jest-plugin/CHANGELOG.md @@ -1,6 +1,33 @@ # Change Log - @rushstack/heft-jest-plugin -This log was last generated on Fri, 20 Feb 2026 16:14:49 GMT and should not be manually modified. +This log was last generated on Mon, 09 Mar 2026 15:14:08 GMT and should not be manually modified. + +## 1.2.7 +Mon, 09 Mar 2026 15:14:08 GMT + +_Version update only_ + +## 1.2.6 +Wed, 25 Feb 2026 21:39:42 GMT + +_Version update only_ + +## 1.2.5 +Wed, 25 Feb 2026 00:34:29 GMT + +_Version update only_ + +## 1.2.4 +Tue, 24 Feb 2026 01:13:27 GMT + +_Version update only_ + +## 1.2.3 +Mon, 23 Feb 2026 00:42:21 GMT + +### Patches + +- Add missing "./includes/*.json" to the package.json "exports" field so that Jest config files like "@rushstack/heft-jest-plugin/includes/jest-shared.config.json" are importable. ## 1.2.2 Fri, 20 Feb 2026 16:14:49 GMT diff --git a/heft-plugins/heft-jest-plugin/package.json b/heft-plugins/heft-jest-plugin/package.json index 8c164853aa4..68fb3daf6f0 100644 --- a/heft-plugins/heft-jest-plugin/package.json +++ b/heft-plugins/heft-jest-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/heft-jest-plugin", - "version": "1.2.2", + "version": "1.2.7", "description": "Heft plugin for Jest", "repository": { "type": "git", @@ -16,7 +16,7 @@ "_phase:test": "heft run --only test -- --clean" }, "peerDependencies": { - "@rushstack/heft": "^1.2.2", + "@rushstack/heft": "^1.2.7", "jest-environment-jsdom": "^29.5.0", "jest-environment-node": "^29.5.0" }, diff --git a/heft-plugins/heft-json-schema-typings-plugin/.npmignore b/heft-plugins/heft-json-schema-typings-plugin/.npmignore index e15a94aeb84..f7a40e10213 100644 --- a/heft-plugins/heft-json-schema-typings-plugin/.npmignore +++ b/heft-plugins/heft-json-schema-typings-plugin/.npmignore @@ -8,6 +8,7 @@ !/lib/** !/lib-*/** !/dist/** +!/includes/** !CHANGELOG.md !CHANGELOG.json @@ -20,6 +21,9 @@ /lib/**/test/ /lib-*/**/test/ *.test.js +*.test.[cm]js +*.test.d.ts +*.test.d.[cm]ts # NOTE: These don't need to be specified, because NPM includes them automatically. # @@ -30,4 +34,3 @@ # --------------------------------------------------------------------------- # DO NOT MODIFY ABOVE THIS LINE! Add any project-specific overrides below. # --------------------------------------------------------------------------- - diff --git a/heft-plugins/heft-json-schema-typings-plugin/CHANGELOG.json b/heft-plugins/heft-json-schema-typings-plugin/CHANGELOG.json index 800e8cebdae..b5c3c33c936 100644 --- a/heft-plugins/heft-json-schema-typings-plugin/CHANGELOG.json +++ b/heft-plugins/heft-json-schema-typings-plugin/CHANGELOG.json @@ -1,6 +1,108 @@ { "name": "@rushstack/heft-json-schema-typings-plugin", "entries": [ + { + "version": "1.2.7", + "tag": "@rushstack/heft-json-schema-typings-plugin_v1.2.7", + "date": "Mon, 09 Mar 2026 15:14:08 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/typings-generator\" to `0.16.7`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.7`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `1.2.6` to `1.2.7`" + } + ] + } + }, + { + "version": "1.2.6", + "tag": "@rushstack/heft-json-schema-typings-plugin_v1.2.6", + "date": "Wed, 25 Feb 2026 21:39:42 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/typings-generator\" to `0.16.6`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.6`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `1.2.5` to `1.2.6`" + } + ] + } + }, + { + "version": "1.2.5", + "tag": "@rushstack/heft-json-schema-typings-plugin_v1.2.5", + "date": "Wed, 25 Feb 2026 00:34:30 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `5.20.3`" + }, + { + "comment": "Updating dependency \"@rushstack/typings-generator\" to `0.16.5`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.5`" + }, + { + "comment": "Updating dependency \"@rushstack/terminal\" to `0.22.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `1.2.4` to `1.2.5`" + } + ] + } + }, + { + "version": "1.2.4", + "tag": "@rushstack/heft-json-schema-typings-plugin_v1.2.4", + "date": "Tue, 24 Feb 2026 01:13:27 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `5.20.2`" + }, + { + "comment": "Updating dependency \"@rushstack/typings-generator\" to `0.16.4`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.4`" + }, + { + "comment": "Updating dependency \"@rushstack/terminal\" to `0.22.2`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `1.2.3` to `1.2.4`" + } + ] + } + }, + { + "version": "1.2.3", + "tag": "@rushstack/heft-json-schema-typings-plugin_v1.2.3", + "date": "Mon, 23 Feb 2026 00:42:21 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/typings-generator\" to `0.16.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `1.2.2` to `1.2.3`" + } + ] + } + }, { "version": "1.2.2", "tag": "@rushstack/heft-json-schema-typings-plugin_v1.2.2", diff --git a/heft-plugins/heft-json-schema-typings-plugin/CHANGELOG.md b/heft-plugins/heft-json-schema-typings-plugin/CHANGELOG.md index f00d244b505..fe75a9cdcfb 100644 --- a/heft-plugins/heft-json-schema-typings-plugin/CHANGELOG.md +++ b/heft-plugins/heft-json-schema-typings-plugin/CHANGELOG.md @@ -1,6 +1,31 @@ # Change Log - @rushstack/heft-json-schema-typings-plugin -This log was last generated on Fri, 20 Feb 2026 16:14:49 GMT and should not be manually modified. +This log was last generated on Mon, 09 Mar 2026 15:14:08 GMT and should not be manually modified. + +## 1.2.7 +Mon, 09 Mar 2026 15:14:08 GMT + +_Version update only_ + +## 1.2.6 +Wed, 25 Feb 2026 21:39:42 GMT + +_Version update only_ + +## 1.2.5 +Wed, 25 Feb 2026 00:34:30 GMT + +_Version update only_ + +## 1.2.4 +Tue, 24 Feb 2026 01:13:27 GMT + +_Version update only_ + +## 1.2.3 +Mon, 23 Feb 2026 00:42:21 GMT + +_Version update only_ ## 1.2.2 Fri, 20 Feb 2026 16:14:49 GMT diff --git a/heft-plugins/heft-json-schema-typings-plugin/package.json b/heft-plugins/heft-json-schema-typings-plugin/package.json index 0ea0582db8d..42dcd3f5e32 100644 --- a/heft-plugins/heft-json-schema-typings-plugin/package.json +++ b/heft-plugins/heft-json-schema-typings-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/heft-json-schema-typings-plugin", - "version": "1.2.2", + "version": "1.2.7", "description": "A Heft plugin for generating TypeScript typings from JSON schema files.", "repository": { "type": "git", @@ -16,7 +16,7 @@ "_phase:test": "heft run --only test -- --clean" }, "peerDependencies": { - "@rushstack/heft": "1.2.2" + "@rushstack/heft": "1.2.7" }, "dependencies": { "@rushstack/node-core-library": "workspace:*", diff --git a/heft-plugins/heft-lint-plugin/.npmignore b/heft-plugins/heft-lint-plugin/.npmignore index bc349f9a4be..f7a40e10213 100644 --- a/heft-plugins/heft-lint-plugin/.npmignore +++ b/heft-plugins/heft-lint-plugin/.npmignore @@ -8,6 +8,7 @@ !/lib/** !/lib-*/** !/dist/** +!/includes/** !CHANGELOG.md !CHANGELOG.json @@ -20,6 +21,9 @@ /lib/**/test/ /lib-*/**/test/ *.test.js +*.test.[cm]js +*.test.d.ts +*.test.d.[cm]ts # NOTE: These don't need to be specified, because NPM includes them automatically. # diff --git a/heft-plugins/heft-lint-plugin/CHANGELOG.json b/heft-plugins/heft-lint-plugin/CHANGELOG.json index 66d4366f955..f5f6f5b2427 100644 --- a/heft-plugins/heft-lint-plugin/CHANGELOG.json +++ b/heft-plugins/heft-lint-plugin/CHANGELOG.json @@ -1,6 +1,108 @@ { "name": "@rushstack/heft-lint-plugin", "entries": [ + { + "version": "1.2.7", + "tag": "@rushstack/heft-lint-plugin_v1.2.7", + "date": "Mon, 09 Mar 2026 15:14:08 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft-typescript-plugin\" to `1.3.2`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.7`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `1.2.6` to `1.2.7`" + } + ] + } + }, + { + "version": "1.2.6", + "tag": "@rushstack/heft-lint-plugin_v1.2.6", + "date": "Wed, 25 Feb 2026 21:39:42 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft-typescript-plugin\" to `1.3.1`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.6`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `1.2.5` to `1.2.6`" + } + ] + } + }, + { + "version": "1.2.5", + "tag": "@rushstack/heft-lint-plugin_v1.2.5", + "date": "Wed, 25 Feb 2026 00:34:29 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `5.20.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-typescript-plugin\" to `1.3.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.5`" + }, + { + "comment": "Updating dependency \"@rushstack/terminal\" to `0.22.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `1.2.4` to `1.2.5`" + } + ] + } + }, + { + "version": "1.2.4", + "tag": "@rushstack/heft-lint-plugin_v1.2.4", + "date": "Tue, 24 Feb 2026 01:13:27 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `5.20.2`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-typescript-plugin\" to `1.2.4`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.4`" + }, + { + "comment": "Updating dependency \"@rushstack/terminal\" to `0.22.2`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `1.2.3` to `1.2.4`" + } + ] + } + }, + { + "version": "1.2.3", + "tag": "@rushstack/heft-lint-plugin_v1.2.3", + "date": "Mon, 23 Feb 2026 00:42:21 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft-typescript-plugin\" to `1.2.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `1.2.2` to `1.2.3`" + } + ] + } + }, { "version": "1.2.2", "tag": "@rushstack/heft-lint-plugin_v1.2.2", diff --git a/heft-plugins/heft-lint-plugin/CHANGELOG.md b/heft-plugins/heft-lint-plugin/CHANGELOG.md index 35c13d3484a..9aff7892c44 100644 --- a/heft-plugins/heft-lint-plugin/CHANGELOG.md +++ b/heft-plugins/heft-lint-plugin/CHANGELOG.md @@ -1,6 +1,31 @@ # Change Log - @rushstack/heft-lint-plugin -This log was last generated on Fri, 20 Feb 2026 16:14:49 GMT and should not be manually modified. +This log was last generated on Mon, 09 Mar 2026 15:14:08 GMT and should not be manually modified. + +## 1.2.7 +Mon, 09 Mar 2026 15:14:08 GMT + +_Version update only_ + +## 1.2.6 +Wed, 25 Feb 2026 21:39:42 GMT + +_Version update only_ + +## 1.2.5 +Wed, 25 Feb 2026 00:34:29 GMT + +_Version update only_ + +## 1.2.4 +Tue, 24 Feb 2026 01:13:27 GMT + +_Version update only_ + +## 1.2.3 +Mon, 23 Feb 2026 00:42:21 GMT + +_Version update only_ ## 1.2.2 Fri, 20 Feb 2026 16:14:49 GMT diff --git a/heft-plugins/heft-lint-plugin/package.json b/heft-plugins/heft-lint-plugin/package.json index 6cfbec579a7..b083832795e 100644 --- a/heft-plugins/heft-lint-plugin/package.json +++ b/heft-plugins/heft-lint-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/heft-lint-plugin", - "version": "1.2.2", + "version": "1.2.7", "description": "A Heft plugin for using ESLint or TSLint. Intended for use with @rushstack/heft-typescript-plugin", "repository": { "type": "git", @@ -16,7 +16,7 @@ "_phase:test": "heft run --only test -- --clean" }, "peerDependencies": { - "@rushstack/heft": "1.2.2" + "@rushstack/heft": "1.2.7" }, "dependencies": { "@rushstack/node-core-library": "workspace:*", diff --git a/heft-plugins/heft-localization-typings-plugin/.npmignore b/heft-plugins/heft-localization-typings-plugin/.npmignore index e15a94aeb84..f7a40e10213 100644 --- a/heft-plugins/heft-localization-typings-plugin/.npmignore +++ b/heft-plugins/heft-localization-typings-plugin/.npmignore @@ -8,6 +8,7 @@ !/lib/** !/lib-*/** !/dist/** +!/includes/** !CHANGELOG.md !CHANGELOG.json @@ -20,6 +21,9 @@ /lib/**/test/ /lib-*/**/test/ *.test.js +*.test.[cm]js +*.test.d.ts +*.test.d.[cm]ts # NOTE: These don't need to be specified, because NPM includes them automatically. # @@ -30,4 +34,3 @@ # --------------------------------------------------------------------------- # DO NOT MODIFY ABOVE THIS LINE! Add any project-specific overrides below. # --------------------------------------------------------------------------- - diff --git a/heft-plugins/heft-localization-typings-plugin/CHANGELOG.json b/heft-plugins/heft-localization-typings-plugin/CHANGELOG.json index b3943f7d405..3d8ebfb6c8e 100644 --- a/heft-plugins/heft-localization-typings-plugin/CHANGELOG.json +++ b/heft-plugins/heft-localization-typings-plugin/CHANGELOG.json @@ -1,6 +1,96 @@ { "name": "@rushstack/heft-localization-typings-plugin", "entries": [ + { + "version": "1.1.8", + "tag": "@rushstack/heft-localization-typings-plugin_v1.1.8", + "date": "Mon, 09 Mar 2026 15:14:08 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/localization-utilities\" to `0.15.7`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.7`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^1.2.6` to `1.2.7`" + } + ] + } + }, + { + "version": "1.1.7", + "tag": "@rushstack/heft-localization-typings-plugin_v1.1.7", + "date": "Wed, 25 Feb 2026 21:39:42 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/localization-utilities\" to `0.15.6`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.6`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^1.2.5` to `1.2.6`" + } + ] + } + }, + { + "version": "1.1.6", + "tag": "@rushstack/heft-localization-typings-plugin_v1.1.6", + "date": "Wed, 25 Feb 2026 00:34:30 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/localization-utilities\" to `0.15.5`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.5`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^1.2.4` to `1.2.5`" + } + ] + } + }, + { + "version": "1.1.5", + "tag": "@rushstack/heft-localization-typings-plugin_v1.1.5", + "date": "Tue, 24 Feb 2026 01:13:27 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/localization-utilities\" to `0.15.4`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.4`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^1.2.3` to `1.2.4`" + } + ] + } + }, + { + "version": "1.1.4", + "tag": "@rushstack/heft-localization-typings-plugin_v1.1.4", + "date": "Mon, 23 Feb 2026 00:42:21 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/localization-utilities\" to `0.15.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^1.2.2` to `1.2.3`" + } + ] + } + }, { "version": "1.1.3", "tag": "@rushstack/heft-localization-typings-plugin_v1.1.3", diff --git a/heft-plugins/heft-localization-typings-plugin/CHANGELOG.md b/heft-plugins/heft-localization-typings-plugin/CHANGELOG.md index f9d07ef4cb0..6114b5e3baa 100644 --- a/heft-plugins/heft-localization-typings-plugin/CHANGELOG.md +++ b/heft-plugins/heft-localization-typings-plugin/CHANGELOG.md @@ -1,6 +1,31 @@ # Change Log - @rushstack/heft-localization-typings-plugin -This log was last generated on Fri, 20 Feb 2026 16:14:49 GMT and should not be manually modified. +This log was last generated on Mon, 09 Mar 2026 15:14:08 GMT and should not be manually modified. + +## 1.1.8 +Mon, 09 Mar 2026 15:14:08 GMT + +_Version update only_ + +## 1.1.7 +Wed, 25 Feb 2026 21:39:42 GMT + +_Version update only_ + +## 1.1.6 +Wed, 25 Feb 2026 00:34:30 GMT + +_Version update only_ + +## 1.1.5 +Tue, 24 Feb 2026 01:13:27 GMT + +_Version update only_ + +## 1.1.4 +Mon, 23 Feb 2026 00:42:21 GMT + +_Version update only_ ## 1.1.3 Fri, 20 Feb 2026 16:14:49 GMT diff --git a/heft-plugins/heft-localization-typings-plugin/package.json b/heft-plugins/heft-localization-typings-plugin/package.json index badcaac9de9..3ddba48603f 100644 --- a/heft-plugins/heft-localization-typings-plugin/package.json +++ b/heft-plugins/heft-localization-typings-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/heft-localization-typings-plugin", - "version": "1.1.3", + "version": "1.1.8", "description": "Heft plugin for generating types for localization files.", "repository": { "type": "git", @@ -16,7 +16,7 @@ "_phase:test": "heft run --only test -- --clean" }, "peerDependencies": { - "@rushstack/heft": "^1.2.2" + "@rushstack/heft": "^1.2.7" }, "devDependencies": { "@rushstack/heft": "workspace:*", diff --git a/heft-plugins/heft-rspack-plugin/.npmignore b/heft-plugins/heft-rspack-plugin/.npmignore index ffb155d74e6..f7a40e10213 100644 --- a/heft-plugins/heft-rspack-plugin/.npmignore +++ b/heft-plugins/heft-rspack-plugin/.npmignore @@ -8,6 +8,7 @@ !/lib/** !/lib-*/** !/dist/** +!/includes/** !CHANGELOG.md !CHANGELOG.json @@ -20,6 +21,9 @@ /lib/**/test/ /lib-*/**/test/ *.test.js +*.test.[cm]js +*.test.d.ts +*.test.d.[cm]ts # NOTE: These don't need to be specified, because NPM includes them automatically. # @@ -30,5 +34,3 @@ # --------------------------------------------------------------------------- # DO NOT MODIFY ABOVE THIS LINE! Add any project-specific overrides below. # --------------------------------------------------------------------------- - -!/includes/** diff --git a/heft-plugins/heft-rspack-plugin/CHANGELOG.json b/heft-plugins/heft-rspack-plugin/CHANGELOG.json index 80b2dd5c485..b4e1e5f41fd 100644 --- a/heft-plugins/heft-rspack-plugin/CHANGELOG.json +++ b/heft-plugins/heft-rspack-plugin/CHANGELOG.json @@ -1,6 +1,108 @@ { "name": "@rushstack/heft-rspack-plugin", "entries": [ + { + "version": "0.3.7", + "tag": "@rushstack/heft-rspack-plugin_v0.3.7", + "date": "Mon, 09 Mar 2026 15:14:08 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/debug-certificate-manager\" to `1.7.7`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.7`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^1.2.6` to `1.2.7`" + } + ] + } + }, + { + "version": "0.3.6", + "tag": "@rushstack/heft-rspack-plugin_v0.3.6", + "date": "Wed, 25 Feb 2026 21:39:42 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/debug-certificate-manager\" to `1.7.6`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.6`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^1.2.5` to `1.2.6`" + } + ] + } + }, + { + "version": "0.3.5", + "tag": "@rushstack/heft-rspack-plugin_v0.3.5", + "date": "Wed, 25 Feb 2026 00:34:29 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/debug-certificate-manager\" to `1.7.5`" + }, + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `5.20.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.5`" + }, + { + "comment": "Updating dependency \"@rushstack/terminal\" to `0.22.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^1.2.4` to `1.2.5`" + } + ] + } + }, + { + "version": "0.3.4", + "tag": "@rushstack/heft-rspack-plugin_v0.3.4", + "date": "Tue, 24 Feb 2026 01:13:27 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/debug-certificate-manager\" to `1.7.4`" + }, + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `5.20.2`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.4`" + }, + { + "comment": "Updating dependency \"@rushstack/terminal\" to `0.22.2`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^1.2.3` to `1.2.4`" + } + ] + } + }, + { + "version": "0.3.3", + "tag": "@rushstack/heft-rspack-plugin_v0.3.3", + "date": "Mon, 23 Feb 2026 00:42:21 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/debug-certificate-manager\" to `1.7.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^1.2.2` to `1.2.3`" + } + ] + } + }, { "version": "0.3.2", "tag": "@rushstack/heft-rspack-plugin_v0.3.2", diff --git a/heft-plugins/heft-rspack-plugin/CHANGELOG.md b/heft-plugins/heft-rspack-plugin/CHANGELOG.md index 19c76f8c100..1f63968b52e 100644 --- a/heft-plugins/heft-rspack-plugin/CHANGELOG.md +++ b/heft-plugins/heft-rspack-plugin/CHANGELOG.md @@ -1,6 +1,31 @@ # Change Log - @rushstack/heft-rspack-plugin -This log was last generated on Fri, 20 Feb 2026 16:14:49 GMT and should not be manually modified. +This log was last generated on Mon, 09 Mar 2026 15:14:08 GMT and should not be manually modified. + +## 0.3.7 +Mon, 09 Mar 2026 15:14:08 GMT + +_Version update only_ + +## 0.3.6 +Wed, 25 Feb 2026 21:39:42 GMT + +_Version update only_ + +## 0.3.5 +Wed, 25 Feb 2026 00:34:29 GMT + +_Version update only_ + +## 0.3.4 +Tue, 24 Feb 2026 01:13:27 GMT + +_Version update only_ + +## 0.3.3 +Mon, 23 Feb 2026 00:42:21 GMT + +_Version update only_ ## 0.3.2 Fri, 20 Feb 2026 16:14:49 GMT diff --git a/heft-plugins/heft-rspack-plugin/config/api-extractor.json b/heft-plugins/heft-rspack-plugin/config/api-extractor.json index 05559c8de5e..5f6b2655ac8 100644 --- a/heft-plugins/heft-rspack-plugin/config/api-extractor.json +++ b/heft-plugins/heft-rspack-plugin/config/api-extractor.json @@ -1,14 +1,11 @@ { "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", + "extends": "local-node-rig/profiles/default/config/api-extractor-base.json", - "mainEntryPointFilePath": "/lib-dts/index.d.ts", - "apiReport": { - "enabled": true, - "reportFolder": "../../../common/reviews/api" - }, "docModel": { "enabled": false }, + "dtsRollup": { "enabled": true, "betaTrimmedFilePath": "/dist/.d.ts" diff --git a/heft-plugins/heft-rspack-plugin/package.json b/heft-plugins/heft-rspack-plugin/package.json index df19ee294b3..1ea117eeea9 100644 --- a/heft-plugins/heft-rspack-plugin/package.json +++ b/heft-plugins/heft-rspack-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/heft-rspack-plugin", - "version": "0.3.2", + "version": "0.3.7", "description": "Heft plugin for Rspack", "repository": { "type": "git", @@ -43,7 +43,7 @@ "_phase:test": "heft run --only test -- --clean" }, "peerDependencies": { - "@rushstack/heft": "^1.2.2", + "@rushstack/heft": "^1.2.7", "@rspack/core": "^1.6.0-beta.0" }, "dependencies": { diff --git a/heft-plugins/heft-sass-load-themed-styles-plugin/.npmignore b/heft-plugins/heft-sass-load-themed-styles-plugin/.npmignore index e15a94aeb84..f7a40e10213 100644 --- a/heft-plugins/heft-sass-load-themed-styles-plugin/.npmignore +++ b/heft-plugins/heft-sass-load-themed-styles-plugin/.npmignore @@ -8,6 +8,7 @@ !/lib/** !/lib-*/** !/dist/** +!/includes/** !CHANGELOG.md !CHANGELOG.json @@ -20,6 +21,9 @@ /lib/**/test/ /lib-*/**/test/ *.test.js +*.test.[cm]js +*.test.d.ts +*.test.d.[cm]ts # NOTE: These don't need to be specified, because NPM includes them automatically. # @@ -30,4 +34,3 @@ # --------------------------------------------------------------------------- # DO NOT MODIFY ABOVE THIS LINE! Add any project-specific overrides below. # --------------------------------------------------------------------------- - diff --git a/heft-plugins/heft-sass-load-themed-styles-plugin/CHANGELOG.json b/heft-plugins/heft-sass-load-themed-styles-plugin/CHANGELOG.json index eafab9c89b0..55f120ffcce 100644 --- a/heft-plugins/heft-sass-load-themed-styles-plugin/CHANGELOG.json +++ b/heft-plugins/heft-sass-load-themed-styles-plugin/CHANGELOG.json @@ -1,6 +1,111 @@ { "name": "@rushstack/heft-sass-load-themed-styles-plugin", "entries": [ + { + "version": "1.2.7", + "tag": "@rushstack/heft-sass-load-themed-styles-plugin_v1.2.7", + "date": "Mon, 09 Mar 2026 15:14:08 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@microsoft/load-themed-styles\" to `2.2.7`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.7`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-sass-plugin\" to `1.2.7`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^1.2.6` to `1.2.7`" + } + ] + } + }, + { + "version": "1.2.6", + "tag": "@rushstack/heft-sass-load-themed-styles-plugin_v1.2.6", + "date": "Wed, 25 Feb 2026 21:39:42 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@microsoft/load-themed-styles\" to `2.2.6`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.6`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-sass-plugin\" to `1.2.6`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^1.2.5` to `1.2.6`" + } + ] + } + }, + { + "version": "1.2.5", + "tag": "@rushstack/heft-sass-load-themed-styles-plugin_v1.2.5", + "date": "Wed, 25 Feb 2026 00:34:29 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@microsoft/load-themed-styles\" to `2.2.5`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.5`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-sass-plugin\" to `1.2.5`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^1.2.4` to `1.2.5`" + } + ] + } + }, + { + "version": "1.2.4", + "tag": "@rushstack/heft-sass-load-themed-styles-plugin_v1.2.4", + "date": "Tue, 24 Feb 2026 01:13:27 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@microsoft/load-themed-styles\" to `2.2.4`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.4`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-sass-plugin\" to `1.2.4`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^1.2.3` to `1.2.4`" + } + ] + } + }, + { + "version": "1.2.3", + "tag": "@rushstack/heft-sass-load-themed-styles-plugin_v1.2.3", + "date": "Mon, 23 Feb 2026 00:42:21 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@microsoft/load-themed-styles\" to `2.2.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-sass-plugin\" to `1.2.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^1.2.2` to `1.2.3`" + } + ] + } + }, { "version": "1.2.2", "tag": "@rushstack/heft-sass-load-themed-styles-plugin_v1.2.2", diff --git a/heft-plugins/heft-sass-load-themed-styles-plugin/CHANGELOG.md b/heft-plugins/heft-sass-load-themed-styles-plugin/CHANGELOG.md index ff6f8de038c..4cefe66595b 100644 --- a/heft-plugins/heft-sass-load-themed-styles-plugin/CHANGELOG.md +++ b/heft-plugins/heft-sass-load-themed-styles-plugin/CHANGELOG.md @@ -1,6 +1,31 @@ # Change Log - @rushstack/heft-sass-load-themed-styles-plugin -This log was last generated on Fri, 20 Feb 2026 16:14:49 GMT and should not be manually modified. +This log was last generated on Mon, 09 Mar 2026 15:14:08 GMT and should not be manually modified. + +## 1.2.7 +Mon, 09 Mar 2026 15:14:08 GMT + +_Version update only_ + +## 1.2.6 +Wed, 25 Feb 2026 21:39:42 GMT + +_Version update only_ + +## 1.2.5 +Wed, 25 Feb 2026 00:34:29 GMT + +_Version update only_ + +## 1.2.4 +Tue, 24 Feb 2026 01:13:27 GMT + +_Version update only_ + +## 1.2.3 +Mon, 23 Feb 2026 00:42:21 GMT + +_Version update only_ ## 1.2.2 Fri, 20 Feb 2026 16:14:49 GMT diff --git a/heft-plugins/heft-sass-load-themed-styles-plugin/package.json b/heft-plugins/heft-sass-load-themed-styles-plugin/package.json index 8a96accf903..927e64e89f7 100644 --- a/heft-plugins/heft-sass-load-themed-styles-plugin/package.json +++ b/heft-plugins/heft-sass-load-themed-styles-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/heft-sass-load-themed-styles-plugin", - "version": "1.2.2", + "version": "1.2.7", "description": "Heft plugin that connects to heft-sass-plugin and replaces load-themed-styles theme expressions with standard CSS variables", "repository": { "type": "git", @@ -16,7 +16,7 @@ "_phase:test": "heft run --only test -- --clean" }, "peerDependencies": { - "@rushstack/heft": "^1.2.2" + "@rushstack/heft": "^1.2.7" }, "dependencies": { "@microsoft/load-themed-styles": "workspace:*" diff --git a/heft-plugins/heft-sass-plugin/.npmignore b/heft-plugins/heft-sass-plugin/.npmignore index e15a94aeb84..f7a40e10213 100644 --- a/heft-plugins/heft-sass-plugin/.npmignore +++ b/heft-plugins/heft-sass-plugin/.npmignore @@ -8,6 +8,7 @@ !/lib/** !/lib-*/** !/dist/** +!/includes/** !CHANGELOG.md !CHANGELOG.json @@ -20,6 +21,9 @@ /lib/**/test/ /lib-*/**/test/ *.test.js +*.test.[cm]js +*.test.d.ts +*.test.d.[cm]ts # NOTE: These don't need to be specified, because NPM includes them automatically. # @@ -30,4 +34,3 @@ # --------------------------------------------------------------------------- # DO NOT MODIFY ABOVE THIS LINE! Add any project-specific overrides below. # --------------------------------------------------------------------------- - diff --git a/heft-plugins/heft-sass-plugin/CHANGELOG.json b/heft-plugins/heft-sass-plugin/CHANGELOG.json index 0fb88c71925..252093171b2 100644 --- a/heft-plugins/heft-sass-plugin/CHANGELOG.json +++ b/heft-plugins/heft-sass-plugin/CHANGELOG.json @@ -1,6 +1,102 @@ { "name": "@rushstack/heft-sass-plugin", "entries": [ + { + "version": "1.2.7", + "tag": "@rushstack/heft-sass-plugin_v1.2.7", + "date": "Mon, 09 Mar 2026 15:14:08 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@microsoft/api-extractor\" to `7.57.7`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.7`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^1.2.6` to `1.2.7`" + } + ] + } + }, + { + "version": "1.2.6", + "tag": "@rushstack/heft-sass-plugin_v1.2.6", + "date": "Wed, 25 Feb 2026 21:39:42 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@microsoft/api-extractor\" to `7.57.6`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.6`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^1.2.5` to `1.2.6`" + } + ] + } + }, + { + "version": "1.2.5", + "tag": "@rushstack/heft-sass-plugin_v1.2.5", + "date": "Wed, 25 Feb 2026 00:34:30 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `5.20.3`" + }, + { + "comment": "Updating dependency \"@microsoft/api-extractor\" to `7.57.5`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.5`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^1.2.4` to `1.2.5`" + } + ] + } + }, + { + "version": "1.2.4", + "tag": "@rushstack/heft-sass-plugin_v1.2.4", + "date": "Tue, 24 Feb 2026 01:13:27 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `5.20.2`" + }, + { + "comment": "Updating dependency \"@microsoft/api-extractor\" to `7.57.4`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.4`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^1.2.3` to `1.2.4`" + } + ] + } + }, + { + "version": "1.2.3", + "tag": "@rushstack/heft-sass-plugin_v1.2.3", + "date": "Mon, 23 Feb 2026 00:42:21 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@microsoft/api-extractor\" to `7.57.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^1.2.2` to `1.2.3`" + } + ] + } + }, { "version": "1.2.2", "tag": "@rushstack/heft-sass-plugin_v1.2.2", diff --git a/heft-plugins/heft-sass-plugin/CHANGELOG.md b/heft-plugins/heft-sass-plugin/CHANGELOG.md index b43569efef1..2dd6093f1d1 100644 --- a/heft-plugins/heft-sass-plugin/CHANGELOG.md +++ b/heft-plugins/heft-sass-plugin/CHANGELOG.md @@ -1,6 +1,31 @@ # Change Log - @rushstack/heft-sass-plugin -This log was last generated on Fri, 20 Feb 2026 16:14:49 GMT and should not be manually modified. +This log was last generated on Mon, 09 Mar 2026 15:14:08 GMT and should not be manually modified. + +## 1.2.7 +Mon, 09 Mar 2026 15:14:08 GMT + +_Version update only_ + +## 1.2.6 +Wed, 25 Feb 2026 21:39:42 GMT + +_Version update only_ + +## 1.2.5 +Wed, 25 Feb 2026 00:34:30 GMT + +_Version update only_ + +## 1.2.4 +Tue, 24 Feb 2026 01:13:27 GMT + +_Version update only_ + +## 1.2.3 +Mon, 23 Feb 2026 00:42:21 GMT + +_Version update only_ ## 1.2.2 Fri, 20 Feb 2026 16:14:49 GMT diff --git a/heft-plugins/heft-sass-plugin/package.json b/heft-plugins/heft-sass-plugin/package.json index d94f33a624b..e6a314e5fac 100644 --- a/heft-plugins/heft-sass-plugin/package.json +++ b/heft-plugins/heft-sass-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/heft-sass-plugin", - "version": "1.2.2", + "version": "1.2.7", "description": "Heft plugin for SASS", "repository": { "type": "git", @@ -43,7 +43,7 @@ } }, "peerDependencies": { - "@rushstack/heft": "^1.2.2" + "@rushstack/heft": "^1.2.7" }, "dependencies": { "@rushstack/node-core-library": "workspace:*", diff --git a/heft-plugins/heft-serverless-stack-plugin/.npmignore b/heft-plugins/heft-serverless-stack-plugin/.npmignore index e15a94aeb84..f7a40e10213 100644 --- a/heft-plugins/heft-serverless-stack-plugin/.npmignore +++ b/heft-plugins/heft-serverless-stack-plugin/.npmignore @@ -8,6 +8,7 @@ !/lib/** !/lib-*/** !/dist/** +!/includes/** !CHANGELOG.md !CHANGELOG.json @@ -20,6 +21,9 @@ /lib/**/test/ /lib-*/**/test/ *.test.js +*.test.[cm]js +*.test.d.ts +*.test.d.[cm]ts # NOTE: These don't need to be specified, because NPM includes them automatically. # @@ -30,4 +34,3 @@ # --------------------------------------------------------------------------- # DO NOT MODIFY ABOVE THIS LINE! Add any project-specific overrides below. # --------------------------------------------------------------------------- - diff --git a/heft-plugins/heft-serverless-stack-plugin/CHANGELOG.json b/heft-plugins/heft-serverless-stack-plugin/CHANGELOG.json index 222fc0b7da3..fee46ab3156 100644 --- a/heft-plugins/heft-serverless-stack-plugin/CHANGELOG.json +++ b/heft-plugins/heft-serverless-stack-plugin/CHANGELOG.json @@ -1,6 +1,117 @@ { "name": "@rushstack/heft-serverless-stack-plugin", "entries": [ + { + "version": "1.2.8", + "tag": "@rushstack/heft-serverless-stack-plugin_v1.2.8", + "date": "Mon, 09 Mar 2026 15:14:08 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.7`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-webpack4-plugin\" to `1.2.7`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-webpack5-plugin\" to `1.3.7`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^1.2.6` to `1.2.7`" + } + ] + } + }, + { + "version": "1.2.7", + "tag": "@rushstack/heft-serverless-stack-plugin_v1.2.7", + "date": "Wed, 25 Feb 2026 21:39:42 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.6`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-webpack4-plugin\" to `1.2.6`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-webpack5-plugin\" to `1.3.6`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^1.2.5` to `1.2.6`" + } + ] + } + }, + { + "version": "1.2.6", + "tag": "@rushstack/heft-serverless-stack-plugin_v1.2.6", + "date": "Wed, 25 Feb 2026 00:34:29 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `5.20.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.5`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-webpack4-plugin\" to `1.2.5`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-webpack5-plugin\" to `1.3.5`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^1.2.4` to `1.2.5`" + } + ] + } + }, + { + "version": "1.2.5", + "tag": "@rushstack/heft-serverless-stack-plugin_v1.2.5", + "date": "Tue, 24 Feb 2026 01:13:27 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `5.20.2`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.4`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-webpack4-plugin\" to `1.2.4`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-webpack5-plugin\" to `1.3.4`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^1.2.3` to `1.2.4`" + } + ] + } + }, + { + "version": "1.2.4", + "tag": "@rushstack/heft-serverless-stack-plugin_v1.2.4", + "date": "Mon, 23 Feb 2026 00:42:21 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-webpack4-plugin\" to `1.2.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-webpack5-plugin\" to `1.3.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^1.2.2` to `1.2.3`" + } + ] + } + }, { "version": "1.2.3", "tag": "@rushstack/heft-serverless-stack-plugin_v1.2.3", diff --git a/heft-plugins/heft-serverless-stack-plugin/CHANGELOG.md b/heft-plugins/heft-serverless-stack-plugin/CHANGELOG.md index 0272f3a3de2..a25b0b88baa 100644 --- a/heft-plugins/heft-serverless-stack-plugin/CHANGELOG.md +++ b/heft-plugins/heft-serverless-stack-plugin/CHANGELOG.md @@ -1,6 +1,31 @@ # Change Log - @rushstack/heft-serverless-stack-plugin -This log was last generated on Fri, 20 Feb 2026 16:14:49 GMT and should not be manually modified. +This log was last generated on Mon, 09 Mar 2026 15:14:08 GMT and should not be manually modified. + +## 1.2.8 +Mon, 09 Mar 2026 15:14:08 GMT + +_Version update only_ + +## 1.2.7 +Wed, 25 Feb 2026 21:39:42 GMT + +_Version update only_ + +## 1.2.6 +Wed, 25 Feb 2026 00:34:29 GMT + +_Version update only_ + +## 1.2.5 +Tue, 24 Feb 2026 01:13:27 GMT + +_Version update only_ + +## 1.2.4 +Mon, 23 Feb 2026 00:42:21 GMT + +_Version update only_ ## 1.2.3 Fri, 20 Feb 2026 16:14:49 GMT diff --git a/heft-plugins/heft-serverless-stack-plugin/package.json b/heft-plugins/heft-serverless-stack-plugin/package.json index fa414f64f67..d8befaa2a13 100644 --- a/heft-plugins/heft-serverless-stack-plugin/package.json +++ b/heft-plugins/heft-serverless-stack-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/heft-serverless-stack-plugin", - "version": "1.2.3", + "version": "1.2.8", "description": "Heft plugin for building apps using the Serverless Stack (SST) framework", "repository": { "type": "git", @@ -15,7 +15,7 @@ "_phase:test": "heft run --only test -- --clean" }, "peerDependencies": { - "@rushstack/heft": "^1.2.2" + "@rushstack/heft": "^1.2.7" }, "dependencies": { "@rushstack/node-core-library": "workspace:*" diff --git a/heft-plugins/heft-static-asset-typings-plugin/.npmignore b/heft-plugins/heft-static-asset-typings-plugin/.npmignore new file mode 100644 index 00000000000..f7a40e10213 --- /dev/null +++ b/heft-plugins/heft-static-asset-typings-plugin/.npmignore @@ -0,0 +1,36 @@ +# THIS IS A STANDARD TEMPLATE FOR .npmignore FILES IN THIS REPO. + +# Ignore all files by default, to avoid accidentally publishing unintended files. +* + +# Use negative patterns to bring back the specific things we want to publish. +!/bin/** +!/lib/** +!/lib-*/** +!/dist/** +!/includes/** + +!CHANGELOG.md +!CHANGELOG.json +!heft-plugin.json +!rush-plugin-manifest.json +!ThirdPartyNotice.txt + +# Ignore certain patterns that should not get published. +/dist/*.stats.* +/lib/**/test/ +/lib-*/**/test/ +*.test.js +*.test.[cm]js +*.test.d.ts +*.test.d.[cm]ts + +# NOTE: These don't need to be specified, because NPM includes them automatically. +# +# package.json +# README.md +# LICENSE + +# --------------------------------------------------------------------------- +# DO NOT MODIFY ABOVE THIS LINE! Add any project-specific overrides below. +# --------------------------------------------------------------------------- diff --git a/heft-plugins/heft-static-asset-typings-plugin/CHANGELOG.json b/heft-plugins/heft-static-asset-typings-plugin/CHANGELOG.json new file mode 100644 index 00000000000..f2c3aa990ec --- /dev/null +++ b/heft-plugins/heft-static-asset-typings-plugin/CHANGELOG.json @@ -0,0 +1,80 @@ +{ + "name": "@rushstack/heft-static-asset-typings-plugin", + "entries": [ + { + "version": "0.1.3", + "tag": "@rushstack/heft-static-asset-typings-plugin_v0.1.3", + "date": "Mon, 09 Mar 2026 15:14:08 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/typings-generator\" to `0.16.7`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.7`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^1.2.6` to `1.2.7`" + } + ] + } + }, + { + "version": "0.1.2", + "tag": "@rushstack/heft-static-asset-typings-plugin_v0.1.2", + "date": "Wed, 25 Feb 2026 21:39:42 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/typings-generator\" to `0.16.6`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.6`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^1.2.5` to `1.2.6`" + } + ] + } + }, + { + "version": "0.1.1", + "tag": "@rushstack/heft-static-asset-typings-plugin_v0.1.1", + "date": "Wed, 25 Feb 2026 00:34:30 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft-config-file\" to `0.20.3`" + }, + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `5.20.3`" + }, + { + "comment": "Updating dependency \"@rushstack/terminal\" to `0.22.3`" + }, + { + "comment": "Updating dependency \"@rushstack/typings-generator\" to `0.16.5`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.5`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^1.2.3` to `1.2.5`" + } + ] + } + }, + { + "version": "0.1.0", + "tag": "@rushstack/heft-static-asset-typings-plugin_v0.1.0", + "date": "Tue, 24 Feb 2026 02:08:44 GMT", + "comments": { + "minor": [ + { + "comment": "Initial release." + } + ] + } + } + ] +} diff --git a/heft-plugins/heft-static-asset-typings-plugin/CHANGELOG.md b/heft-plugins/heft-static-asset-typings-plugin/CHANGELOG.md new file mode 100644 index 00000000000..a64a86fb769 --- /dev/null +++ b/heft-plugins/heft-static-asset-typings-plugin/CHANGELOG.md @@ -0,0 +1,26 @@ +# Change Log - @rushstack/heft-static-asset-typings-plugin + +This log was last generated on Mon, 09 Mar 2026 15:14:08 GMT and should not be manually modified. + +## 0.1.3 +Mon, 09 Mar 2026 15:14:08 GMT + +_Version update only_ + +## 0.1.2 +Wed, 25 Feb 2026 21:39:42 GMT + +_Version update only_ + +## 0.1.1 +Wed, 25 Feb 2026 00:34:30 GMT + +_Version update only_ + +## 0.1.0 +Tue, 24 Feb 2026 02:08:44 GMT + +### Minor changes + +- Initial release. + diff --git a/heft-plugins/heft-static-asset-typings-plugin/LICENSE b/heft-plugins/heft-static-asset-typings-plugin/LICENSE new file mode 100644 index 00000000000..9570e2a1a6f --- /dev/null +++ b/heft-plugins/heft-static-asset-typings-plugin/LICENSE @@ -0,0 +1,24 @@ +@rushstack/heft-static-asset-typings-plugin + +Copyright (c) Microsoft Corporation. All rights reserved. + +MIT License + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/heft-plugins/heft-static-asset-typings-plugin/README.md b/heft-plugins/heft-static-asset-typings-plugin/README.md new file mode 100644 index 00000000000..e73795a4223 --- /dev/null +++ b/heft-plugins/heft-static-asset-typings-plugin/README.md @@ -0,0 +1,230 @@ +# @rushstack/heft-static-asset-typings-plugin + +This Heft plugin generates TypeScript `.d.ts` typings for static asset files, enabling type-safe +`import` statements for non-TypeScript files. It provides two task plugins: + +- **`resource-assets-plugin`** — Generates `.d.ts` typings for _resource_ files such as images (`.png`, + `.jpg`, `.svg`, etc.) and fonts. These are opaque binary blobs whose content is not meaningful to + JavaScript; the generated typing simply exports a default `string` representing the asset URL + (e.g. as resolved by a bundler's asset loader). + +- **`source-assets-plugin`** — Generates `.d.ts` typings _and_ JavaScript module output for _source_ + files (`.html`, `.css`, `.txt`, `.md`, etc.) whose textual content is consumed at runtime. The + generated JS modules read the file and re-export its content as a default `string`, making these + assets importable as ES modules. + +The terminology follows the [webpack convention](https://webpack.js.org/guides/asset-modules/) +where _resource_ assets are emitted as separate files referenced by URL, while _source_ assets are +inlined as strings. + +Both plugins support incremental and watch-mode builds. + +## Setup + +1. Add the plugin as a `devDependency` of your project: + + ```bash + rush add -p @rushstack/heft-static-asset-typings-plugin --dev + ``` + +2. Load the appropriate plugin(s) in your project's **config/heft.json**: + + ### Resource assets (images, fonts, etc.) + + **Inline configuration** — specify options directly in heft.json: + + ```jsonc + { + "$schema": "https://developer.microsoft.com/json-schemas/heft/v0/heft.schema.json", + "phasesByName": { + "build": { + "tasksByName": { + "image-typings": { + "taskPlugin": { + "pluginPackage": "@rushstack/heft-static-asset-typings-plugin", + "pluginName": "resource-assets-plugin", + "options": { + "configType": "inline", + "config": { + "fileExtensions": [".png", ".jpg", ".jpeg", ".gif", ".svg", ".ico", ".webp", ".avif"], + "generatedTsFolders": ["temp/image-typings"] + } + } + } + }, + "typescript": { + "taskDependencies": ["image-typings"] + // ... + } + } + } + } + } + ``` + + **File configuration** — load settings from a riggable config file: + + ```jsonc + { + "$schema": "https://developer.microsoft.com/json-schemas/heft/v0/heft.schema.json", + "phasesByName": { + "build": { + "tasksByName": { + "image-typings": { + "taskPlugin": { + "pluginPackage": "@rushstack/heft-static-asset-typings-plugin", + "pluginName": "resource-assets-plugin", + "options": { + "configType": "file", + "configFileName": "resource-assets.json" + } + } + }, + "typescript": { + "taskDependencies": ["image-typings"] + // ... + } + } + } + } + } + ``` + + And create a **config/resource-assets.json** file (which can be provided by a rig): + + ```jsonc + { + "fileExtensions": [".png", ".jpg", ".jpeg", ".gif", ".svg", ".ico", ".webp", ".avif"], + "generatedTsFolders": ["temp/image-typings"] + } + ``` + + ### Source assets + + **Inline configuration:** + + ```jsonc + { + "$schema": "https://developer.microsoft.com/json-schemas/heft/v0/heft.schema.json", + "phasesByName": { + "build": { + "tasksByName": { + "text-typings": { + "taskPlugin": { + "pluginPackage": "@rushstack/heft-static-asset-typings-plugin", + "pluginName": "source-assets-plugin", + "options": { + "configType": "inline", + "config": { + "fileExtensions": [".html"], + "cjsOutputFolders": ["lib-commonjs"], + "esmOutputFolders": ["lib-esm"], + "generatedTsFolders": ["temp/text-typings"] + } + } + } + }, + "typescript": { + "taskDependencies": ["text-typings"] + // ... + } + } + } + } + } + ``` + + **File configuration:** + + ```jsonc + { + "$schema": "https://developer.microsoft.com/json-schemas/heft/v0/heft.schema.json", + "phasesByName": { + "build": { + "tasksByName": { + "text-typings": { + "taskPlugin": { + "pluginPackage": "@rushstack/heft-static-asset-typings-plugin", + "pluginName": "source-assets-plugin", + "options": { + "configType": "file", + "configFileName": "source-assets.json" + } + } + }, + "typescript": { + "taskDependencies": ["text-typings"] + // ... + } + } + } + } + } + ``` + + And create a **config/source-assets.json** file (which can be provided by a rig): + + ```jsonc + { + "fileExtensions": [".html"], + "cjsOutputFolders": ["lib-commonjs"], + "esmOutputFolders": ["lib-esm"], + "generatedTsFolders": ["temp/text-typings"] + } + ``` + +3. Add the generated typings folder to your **tsconfig.json** `rootDirs` so that + TypeScript can resolve the declarations: + + ```jsonc + { + "compilerOptions": { + "rootDirs": ["src", "temp/image-typings"] + } + } + ``` + +## Plugin options + +Both plugins support two configuration modes via the `configType` option: + +### Inline mode (`configType: "inline"`) + +Provide configuration directly in heft.json under `options.config`: + +#### `resource-assets-plugin` inline config + +| Option | Type | Default | Description | +| ------------------- | ---------- | ------------------------ | ----------------------------------------------- | +| `fileExtensions` | `string[]` | — | **(required)** File extensions to generate typings for. | +| `generatedTsFolders`| `string[]` | `["temp/static-asset-ts"]` | Folders where generated `.d.ts` files are written. The first entry should be listed in `rootDirs` so TypeScript can resolve the asset imports during type-checking. Additional entries are typically your project's published typings folder(s). | +| `sourceFolderPath` | `string` | `"src"` | Source folder to scan for asset files. | + +#### `source-assets-plugin` inline config + +Includes all the above, plus: + +| Option | Type | Default | Description | +| ------------------- | ---------- | ------------------------ | ---------------------------------------------------- | +| `cjsOutputFolders` | `string[]` | — | **(required)** Output folders for generated CommonJS `.js` modules. | +| `esmOutputFolders` | `string[]` | `[]` | Output folders for generated ESM `.js` modules. | + +### File mode (`configType: "file"`) + +Load configuration from a riggable JSON config file in the project's `config/` folder: + +| Option | Type | Description | +| ---------------- | -------- | ---------------------------------------------------------------------- | +| `configFileName` | `string` | **(required)** Name of the JSON config file in the `config/` folder. | + +The config file supports the same properties as inline mode (see tables above). Config files +can be provided by a rig, making file mode ideal for shared build configurations. + +## Links + +- [CHANGELOG.md]( + https://github.com/microsoft/rushstack/blob/main/heft-plugins/heft-static-asset-typings-plugin/CHANGELOG.md) - Find + out what's new in the latest version +- [@rushstack/heft](https://www.npmjs.com/package/@rushstack/heft) - Heft is a config-driven toolchain that invokes popular tools such as TypeScript, ESLint, Jest, Webpack, and API Extractor. + +Heft is part of the [Rush Stack](https://rushstack.io/) family of projects. diff --git a/heft-plugins/heft-static-asset-typings-plugin/config/heft.json b/heft-plugins/heft-static-asset-typings-plugin/config/heft.json new file mode 100644 index 00000000000..0e52387039a --- /dev/null +++ b/heft-plugins/heft-static-asset-typings-plugin/config/heft.json @@ -0,0 +1,27 @@ +{ + "$schema": "https://developer.microsoft.com/json-schemas/heft/v0/heft.schema.json", + "extends": "local-node-rig/profiles/default/config/heft.json", + + "phasesByName": { + "build": { + "tasksByName": { + "copy-json-schemas": { + "taskPlugin": { + "pluginPackage": "@rushstack/heft", + "pluginName": "copy-files-plugin", + "options": { + "copyOperations": [ + { + "sourcePath": "src/schemas", + "destinationFolders": ["temp/json-schemas/heft/v1"], + "fileExtensions": [".schema.json"], + "hardlink": true + } + ] + } + } + } + } + } + } +} diff --git a/heft-plugins/heft-static-asset-typings-plugin/config/jest.config.json b/heft-plugins/heft-static-asset-typings-plugin/config/jest.config.json new file mode 100644 index 00000000000..d1749681d90 --- /dev/null +++ b/heft-plugins/heft-static-asset-typings-plugin/config/jest.config.json @@ -0,0 +1,3 @@ +{ + "extends": "local-node-rig/profiles/default/config/jest.config.json" +} diff --git a/heft-plugins/heft-static-asset-typings-plugin/config/rig.json b/heft-plugins/heft-static-asset-typings-plugin/config/rig.json new file mode 100644 index 00000000000..165ffb001f5 --- /dev/null +++ b/heft-plugins/heft-static-asset-typings-plugin/config/rig.json @@ -0,0 +1,7 @@ +{ + // The "rig.json" file directs tools to look for their config files in an external package. + // Documentation for this system: https://www.npmjs.com/package/@rushstack/rig-package + "$schema": "https://developer.microsoft.com/json-schemas/rig-package/rig.schema.json", + + "rigPackageName": "local-node-rig" +} diff --git a/heft-plugins/heft-static-asset-typings-plugin/eslint.config.js b/heft-plugins/heft-static-asset-typings-plugin/eslint.config.js new file mode 100644 index 00000000000..c15e6077310 --- /dev/null +++ b/heft-plugins/heft-static-asset-typings-plugin/eslint.config.js @@ -0,0 +1,18 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. +// See LICENSE in the project root for license information. + +const nodeTrustedToolProfile = require('local-node-rig/profiles/default/includes/eslint/flat/profile/node-trusted-tool'); +const friendlyLocalsMixin = require('local-node-rig/profiles/default/includes/eslint/flat/mixins/friendly-locals'); + +module.exports = [ + ...nodeTrustedToolProfile, + ...friendlyLocalsMixin, + { + files: ['**/*.ts', '**/*.tsx'], + languageOptions: { + parserOptions: { + tsconfigRootDir: __dirname + } + } + } +]; diff --git a/heft-plugins/heft-static-asset-typings-plugin/heft-plugin.json b/heft-plugins/heft-static-asset-typings-plugin/heft-plugin.json new file mode 100644 index 00000000000..73e8a17518f --- /dev/null +++ b/heft-plugins/heft-static-asset-typings-plugin/heft-plugin.json @@ -0,0 +1,16 @@ +{ + "$schema": "https://developer.microsoft.com/json-schemas/heft/v0/heft-plugin.schema.json", + + "taskPlugins": [ + { + "pluginName": "resource-assets-plugin", + "entryPoint": "./lib-commonjs/ResourceAssetsPlugin", + "optionsSchema": "./lib-commonjs/schemas/resource-assets-options.schema.json" + }, + { + "pluginName": "source-assets-plugin", + "entryPoint": "./lib-commonjs/SourceAssetsPlugin", + "optionsSchema": "./lib-commonjs/schemas/source-assets-options.schema.json" + } + ] +} diff --git a/heft-plugins/heft-static-asset-typings-plugin/package.json b/heft-plugins/heft-static-asset-typings-plugin/package.json new file mode 100644 index 00000000000..86ecb375746 --- /dev/null +++ b/heft-plugins/heft-static-asset-typings-plugin/package.json @@ -0,0 +1,50 @@ +{ + "name": "@rushstack/heft-static-asset-typings-plugin", + "version": "0.1.3", + "description": "A Heft plugin that generates TypeScript typings for static asset files such as images and text files.", + "scripts": { + "build": "heft build --clean", + "start": "heft test --clean --watch", + "_phase:build": "heft run --only build -- --clean", + "_phase:test": "heft run --only test -- --clean" + }, + "repository": { + "type": "git", + "url": "https://github.com/microsoft/rushstack.git", + "directory": "heft-plugins/heft-static-asset-typings-plugin" + }, + "homepage": "https://rushstack.io/pages/heft/overview/", + "exports": { + "./lib/*.schema.json": "./lib-commonjs/*.schema.json", + "./lib/*": { + "types": "./lib-dts/*.d.ts", + "node": "./lib-commonjs/*.js", + "import": "./lib-esm/*.js", + "require": "./lib-commonjs/*.js" + }, + "./heft-plugin.json": "./heft-plugin.json", + "./package.json": "./package.json" + }, + "typesVersions": { + "*": { + "lib/*": [ + "lib-dts/*" + ] + } + }, + "license": "MIT", + "peerDependencies": { + "@rushstack/heft": "^1.2.7" + }, + "dependencies": { + "@rushstack/heft-config-file": "workspace:*", + "@rushstack/node-core-library": "workspace:*", + "@rushstack/terminal": "workspace:*", + "@rushstack/typings-generator": "workspace:*" + }, + "devDependencies": { + "@rushstack/heft": "workspace:*", + "eslint": "~9.37.0", + "local-node-rig": "workspace:*" + } +} diff --git a/heft-plugins/heft-static-asset-typings-plugin/src/ResourceAssetsPlugin.ts b/heft-plugins/heft-static-asset-typings-plugin/src/ResourceAssetsPlugin.ts new file mode 100644 index 00000000000..253f625fea6 --- /dev/null +++ b/heft-plugins/heft-static-asset-typings-plugin/src/ResourceAssetsPlugin.ts @@ -0,0 +1,61 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. +// See LICENSE in the project root for license information. + +import type { HeftConfiguration, IHeftTaskSession, IHeftTaskPlugin } from '@rushstack/heft'; + +import { + createTypingsGeneratorAsync, + tryGetConfigFromPluginOptionsAsync, + type IRunGeneratorOptions, + type IStaticAssetGeneratorOptions, + type IStaticAssetTypingsGenerator +} from './StaticAssetTypingsGenerator'; +import type { IAssetPluginOptions, IResourceStaticAssetTypingsConfigurationJson } from './types'; + +const PLUGIN_NAME: 'static-asset-typings-plugin' = 'static-asset-typings-plugin'; + +export default class ResourceAssetsPlugin + implements IHeftTaskPlugin> +{ + /** + * Generate typings for text files before TypeScript compilation. + */ + public apply( + taskSession: IHeftTaskSession, + heftConfiguration: HeftConfiguration, + options: IAssetPluginOptions + ): void { + const { slashNormalizedBuildFolderPath, rigConfig } = heftConfiguration; + const staticAssetGeneratorOptions: IStaticAssetGeneratorOptions = { + tryGetConfigAsync: async (terminal) => { + return await tryGetConfigFromPluginOptionsAsync( + terminal, + slashNormalizedBuildFolderPath, + rigConfig, + options, + 'resource' + ); + }, + slashNormalizedBuildFolderPath, + getVersionAndEmitOutputFilesAsync: async () => 'versionless' + }; + + let generatorPromise: Promise | undefined; + + async function createAndRunGeneratorAsync(runOptions: IRunGeneratorOptions): Promise { + if (generatorPromise === undefined) { + generatorPromise = createTypingsGeneratorAsync(taskSession, staticAssetGeneratorOptions); + } + + const generator: IStaticAssetTypingsGenerator | false = await generatorPromise; + if (generator === false) { + return; + } + + await generator.runIncrementalAsync(runOptions); + } + + taskSession.hooks.run.tapPromise(PLUGIN_NAME, createAndRunGeneratorAsync); + taskSession.hooks.runIncremental.tapPromise(PLUGIN_NAME, createAndRunGeneratorAsync); + } +} diff --git a/heft-plugins/heft-static-asset-typings-plugin/src/SourceAssetsPlugin.ts b/heft-plugins/heft-static-asset-typings-plugin/src/SourceAssetsPlugin.ts new file mode 100644 index 00000000000..edc1b09cf2a --- /dev/null +++ b/heft-plugins/heft-static-asset-typings-plugin/src/SourceAssetsPlugin.ts @@ -0,0 +1,144 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. +// See LICENSE in the project root for license information. + +import { createHash } from 'node:crypto'; + +import type { HeftConfiguration, IHeftTaskSession, IHeftTaskPlugin } from '@rushstack/heft'; +import { Async, FileSystem } from '@rushstack/node-core-library'; + +import { + createTypingsGeneratorAsync, + tryGetConfigFromPluginOptionsAsync, + type IRunGeneratorOptions, + type IStaticAssetGeneratorOptions, + type IStaticAssetTypingsGenerator +} from './StaticAssetTypingsGenerator'; +import type { IAssetPluginOptions, ISourceStaticAssetTypingsConfigurationJson } from './types'; + +const PLUGIN_NAME: 'source-assets-plugin' = 'source-assets-plugin'; + +// Pre-allocated preamble/postamble buffers to avoid repeated allocations. +// Used with FileSystem.writeBuffersToFileAsync (writev) for efficient output. +const CJS_PREAMBLE: Buffer = Buffer.from( + '"use strict"\nObject.defineProperty(exports, "__esModule", { value: true });\nvar content = ' +); +const CJS_POSTAMBLE: Buffer = Buffer.from(';\nexports.default = content;\n'); +const ESM_PREAMBLE: Buffer = Buffer.from('const content = '); +const ESM_POSTAMBLE: Buffer = Buffer.from(';\nexport default content;\n'); + +export default class SourceAssetsPlugin + implements IHeftTaskPlugin> +{ + /** + * Generate typings for text files before TypeScript compilation. + */ + public apply( + taskSession: IHeftTaskSession, + heftConfiguration: HeftConfiguration, + pluginOptions: IAssetPluginOptions + ): void { + let generatorPromise: Promise | undefined; + + async function initializeGeneratorAsync(): Promise { + const { slashNormalizedBuildFolderPath, rigConfig } = heftConfiguration; + + const options: ISourceStaticAssetTypingsConfigurationJson | undefined = + await tryGetConfigFromPluginOptionsAsync( + taskSession.logger.terminal, + slashNormalizedBuildFolderPath, + rigConfig, + pluginOptions, + 'source' + ); + + if (options) { + const { fileExtensions, sourceFolderPath, generatedTsFolders, cjsOutputFolders, esmOutputFolders } = + options; + + const resolvedCjsOutputFolders: string[] = cjsOutputFolders.map( + (jsPath) => `${slashNormalizedBuildFolderPath}/${jsPath}` + ); + const resolvedEsmOutputFolders: string[] = + esmOutputFolders?.map((jsPath) => `${slashNormalizedBuildFolderPath}/${jsPath}`) ?? []; + const jsOutputFolders: string[] = [...resolvedCjsOutputFolders, ...resolvedEsmOutputFolders]; + + function getAdditionalOutputFiles(relativePath: string): string[] { + return jsOutputFolders.map((folder) => `${folder}/${relativePath}.js`); + } + + async function getVersionAndEmitOutputFilesAsync( + filePath: string, + relativePath: string, + oldVersion: string | undefined + ): Promise { + const fileContents: Buffer = await FileSystem.readFileToBufferAsync(filePath); + const fileVersion: string = createHash('sha1').update(fileContents).digest('base64'); + if (fileVersion === oldVersion) { + return; + } + + const stringFileContents: string = fileContents.toString('utf8'); + + const contentBuffer: Buffer = Buffer.from(JSON.stringify(stringFileContents)); + + const outputs: { path: string; buffers: NodeJS.ArrayBufferView[] }[] = []; + for (const folder of resolvedCjsOutputFolders) { + outputs.push({ + path: `${folder}/${relativePath}.js`, + buffers: [CJS_PREAMBLE, contentBuffer, CJS_POSTAMBLE] + }); + } + for (const folder of resolvedEsmOutputFolders) { + outputs.push({ + path: `${folder}/${relativePath}.js`, + buffers: [ESM_PREAMBLE, contentBuffer, ESM_POSTAMBLE] + }); + } + + await Async.forEachAsync( + outputs, + async ({ path, buffers }) => { + await FileSystem.writeBuffersToFileAsync(path, buffers, { ensureFolderExists: true }); + }, + { concurrency: 10 } + ); + + return fileVersion; + } + + const staticAssetGeneratorOptions: IStaticAssetGeneratorOptions = { + tryGetConfigAsync: async () => { + return { + fileExtensions, + sourceFolderPath, + generatedTsFolders + }; + }, + slashNormalizedBuildFolderPath, + getAdditionalOutputFiles, + getVersionAndEmitOutputFilesAsync + }; + + return createTypingsGeneratorAsync(taskSession, staticAssetGeneratorOptions); + } else { + return false; + } + } + + async function createAndRunGeneratorAsync(runOptions: IRunGeneratorOptions): Promise { + if (generatorPromise === undefined) { + generatorPromise = initializeGeneratorAsync(); + } + + const generator: IStaticAssetTypingsGenerator | false = await generatorPromise; + if (generator === false) { + return; + } + + await generator.runIncrementalAsync(runOptions); + } + + taskSession.hooks.run.tapPromise(PLUGIN_NAME, createAndRunGeneratorAsync); + taskSession.hooks.runIncremental.tapPromise(PLUGIN_NAME, createAndRunGeneratorAsync); + } +} diff --git a/heft-plugins/heft-static-asset-typings-plugin/src/StaticAssetTypingsGenerator.ts b/heft-plugins/heft-static-asset-typings-plugin/src/StaticAssetTypingsGenerator.ts new file mode 100644 index 00000000000..41fc438f00b --- /dev/null +++ b/heft-plugins/heft-static-asset-typings-plugin/src/StaticAssetTypingsGenerator.ts @@ -0,0 +1,304 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. +// See LICENSE in the project root for license information. + +import { createHash } from 'node:crypto'; + +import type { + HeftConfiguration, + IHeftTaskRunHookOptions, + IHeftTaskRunIncrementalHookOptions, + IHeftTaskSession, + IWatchedFileState +} from '@rushstack/heft'; +import { TypingsGenerator } from '@rushstack/typings-generator'; +import { FileSystem, Sort } from '@rushstack/node-core-library'; +import type { ITerminal } from '@rushstack/terminal'; + +import type { + IAssetPluginOptions, + IResourceStaticAssetTypingsConfigurationJson, + ISourceStaticAssetTypingsConfigurationJson, + StaticAssetConfigurationFileLoader +} from './types'; + +// Use explicit \n to avoid platform-dependent line endings in template literals. +const DECLARATION: string = [ + '/**', + ' * @public', + ' */', + 'declare const content: string;', + 'export default content;', + '' +].join('\n'); + +// Include a hash of DECLARATION so the cache is invalidated if the declaration content changes. +const PLUGIN_VERSION: string = `1-${createHash('sha1').update(DECLARATION).digest('hex').slice(0, 8)}`; + +/** + * Options for constructing a static asset typings generator + */ +export interface IStaticAssetGeneratorOptions { + /** + * A getter for the loader for the riggable config file in the project. + */ + tryGetConfigAsync: StaticAssetConfigurationFileLoader; + + /** + * The path to the build folder, normalized to use forward slashes as the directory separator. + */ + slashNormalizedBuildFolderPath: string; + + /** + * @param relativePath - The relative path of the file to get additional output files for. + * @returns An array of output file names. + */ + getAdditionalOutputFiles?: (relativePath: string) => string[]; + + /** + * @param relativePath - The relative path of the file being processed. + * @param filePath - The absolute path of the file being processed. + * @param oldVersion - The old version of the file, if any. + * @returns The new version of the file, if emit should occur. + */ + getVersionAndEmitOutputFilesAsync: ( + relativePath: string, + filePath: string, + oldVersion: string | undefined + ) => Promise; +} + +export type IRunGeneratorOptions = IHeftTaskRunHookOptions & + Partial>; + +export interface IStaticAssetTypingsGenerator { + /** + * Runs this generator in incremental mode. + * + * @param runOptions - The task run hook options from Heft + * @returns A promise that resolves when the generator has finished processing. + */ + runIncrementalAsync: (runOptions: IRunGeneratorOptions) => Promise; +} + +interface IStaticAssetTypingsBuildInfoFile { + fileVersions: [string, string][]; + pluginVersion: string; +} + +export async function tryGetConfigFromPluginOptionsAsync( + terminal: ITerminal, + buildFolder: string, + rigConfig: HeftConfiguration['rigConfig'], + options: IAssetPluginOptions, + type: 'resource' +): Promise; +export async function tryGetConfigFromPluginOptionsAsync( + terminal: ITerminal, + buildFolder: string, + rigConfig: HeftConfiguration['rigConfig'], + options: IAssetPluginOptions, + type: 'source' +): Promise; +export async function tryGetConfigFromPluginOptionsAsync( + terminal: ITerminal, + buildFolder: string, + rigConfig: HeftConfiguration['rigConfig'], + options: IAssetPluginOptions< + IResourceStaticAssetTypingsConfigurationJson | ISourceStaticAssetTypingsConfigurationJson + >, + type: import('./getConfigFromConfigFileAsync').FileLoaderType +): Promise< + IResourceStaticAssetTypingsConfigurationJson | ISourceStaticAssetTypingsConfigurationJson | undefined +> { + if (options?.configType === 'inline') { + return options.config; + } else { + const { getConfigFromConfigFileAsync } = await import('./getConfigFromConfigFileAsync'); + const { configFileName } = options; + return getConfigFromConfigFileAsync(configFileName, type, terminal, buildFolder, rigConfig); + } +} + +/** + * Constructs a typings generator for processing static assets + * + * @param taskSession - The Heft task session + * @param rigConfig - The Heft configuration + * @param options - Options for the generator + * @returns + */ +export async function createTypingsGeneratorAsync( + taskSession: IHeftTaskSession, + options: IStaticAssetGeneratorOptions +): Promise { + const { tryGetConfigAsync, slashNormalizedBuildFolderPath } = options; + + const { terminal } = taskSession.logger; + + const configuration: IResourceStaticAssetTypingsConfigurationJson | undefined = + await tryGetConfigAsync(terminal); + + if (!configuration) { + return false; + } + + const { + generatedTsFolders = ['temp/static-asset-ts'], + sourceFolderPath = 'src', + fileExtensions + } = configuration; + const resolvedGeneratedTsFolders: string[] | undefined = generatedTsFolders.map( + (folder) => `${slashNormalizedBuildFolderPath}/${folder}` + ); + const [generatedTsFolder, ...secondaryGeneratedTsFolders] = resolvedGeneratedTsFolders; + + const { getAdditionalOutputFiles, getVersionAndEmitOutputFilesAsync } = options; + + const fileVersions: Map = new Map(); + + const typingsGenerator: TypingsGenerator = new TypingsGenerator({ + srcFolder: `${slashNormalizedBuildFolderPath}/${sourceFolderPath}`, + generatedTsFolder, + secondaryGeneratedTsFolders, + fileExtensions, + terminal, + // eslint-disable-next-line @typescript-eslint/naming-convention + parseAndGenerateTypings: async ( + fileContents: boolean, + filePath: string, + relativePath: string + ): Promise => { + const oldFileVersion: string | undefined = fileVersions.get(relativePath); + const fileVersion: string | undefined = await getVersionAndEmitOutputFilesAsync( + filePath, + relativePath, + oldFileVersion + ); + if (fileVersion === undefined) { + return; + } + + fileVersions.set(relativePath, fileVersion); + if (oldFileVersion) { + // Since DECLARATION is constant, no point re-emitting the declarations just because the input content changed. + return; + } + + return DECLARATION; + }, + readFile: (filePath: string, relativePath: string): boolean => { + return false; + }, + getAdditionalOutputFiles + }); + + // TODO: Heft has an internal incremental cache layer (IncrementalBuildInfo) used by built-in + // plugins like CopyFilesPlugin. It is not currently part of Heft's public API surface. If it + // becomes public, we should migrate to it instead of managing our own cache file. + const cacheFilePath: string = `${taskSession.tempFolderPath}/static-assets.json`; + try { + const cacheFileContent: string = await FileSystem.readFileAsync(cacheFilePath); + const oldCacheFile: IStaticAssetTypingsBuildInfoFile = JSON.parse(cacheFileContent); + if (oldCacheFile.pluginVersion === PLUGIN_VERSION) { + for (const [relativePath, version] of oldCacheFile.fileVersions) { + fileVersions.set(relativePath, version); + } + } + } catch (e) { + terminal.writeVerboseLine(`Failed to read cache file: ${e}`); + } + + return { + async runIncrementalAsync(runOptions: IRunGeneratorOptions): Promise { + await runTypingsGeneratorIncrementalAsync( + taskSession, + typingsGenerator, + cacheFilePath, + fileVersions, + runOptions + ); + } + }; +} + +/** + * Invokes the specified typings generator on any files changed since the last invocation. + * If the cache file has been deleted (e.g. via a `--clean` run), will process all files. + * + * @param taskSession - The Heft task session. + * @param typingsGenerator - The typings generator to invoke. + * @param cacheFilePath - The path to the file that will contain the last build file version metadata. + * @param fileVersions - The map of current file versions. + * @param heftRunOptions - The task options from Heft. + * @returns A promise that resolves when the typings generator has finished processing. + */ +async function runTypingsGeneratorIncrementalAsync( + taskSession: IHeftTaskSession, + typingsGenerator: TypingsGenerator, + cacheFilePath: string, + fileVersions: Map, + heftRunOptions: IRunGeneratorOptions +): Promise { + const { terminal } = taskSession.logger; + + const originalFileVersions: ReadonlyMap = new Map(fileVersions); + + // If we have the incremental options, use them to determine which files to process. + // Otherwise, process all files. The typings generator also provides the file paths + // as relative paths from the sourceFolderPath. + let changedRelativeFilePaths: string[] | undefined; + const { watchGlobAsync } = heftRunOptions as IHeftTaskRunIncrementalHookOptions; + if (watchGlobAsync) { + changedRelativeFilePaths = []; + const relativeFilePaths: Map = await watchGlobAsync( + typingsGenerator.inputFileGlob, + { + cwd: typingsGenerator.sourceFolderPath, + ignore: Array.from(typingsGenerator.ignoredFileGlobs), + absolute: false + } + ); + for (const [relativeFilePath, { changed }] of relativeFilePaths) { + if (changed) { + changedRelativeFilePaths.push(relativeFilePath); + } + } + + if (changedRelativeFilePaths.length === 0) { + return; + } + } + + terminal.writeLine('Processing static assets...'); + await typingsGenerator.generateTypingsAsync(changedRelativeFilePaths); + + if (hasChanges(fileVersions, originalFileVersions)) { + const fileVersionsArray: [string, string][] = Array.from(fileVersions); + Sort.sortBy(fileVersionsArray, ([relativePath]) => relativePath); + + const buildFile: IStaticAssetTypingsBuildInfoFile = { + fileVersions: fileVersionsArray, + pluginVersion: PLUGIN_VERSION + }; + await FileSystem.writeFileAsync(cacheFilePath, JSON.stringify(buildFile), { ensureFolderExists: true }); + } + terminal.writeLine('Finished processing static assets.'); +} + +/** + * @internal + * Returns true if the current map has different entries than the old map. + */ +export function hasChanges(current: ReadonlyMap, old: ReadonlyMap): boolean { + if (current.size !== old.size) { + return true; + } + + for (const [key, value] of current) { + if (old.get(key) !== value) { + return true; + } + } + + return false; +} diff --git a/heft-plugins/heft-static-asset-typings-plugin/src/getConfigFromConfigFileAsync.ts b/heft-plugins/heft-static-asset-typings-plugin/src/getConfigFromConfigFileAsync.ts new file mode 100644 index 00000000000..c25341890c4 --- /dev/null +++ b/heft-plugins/heft-static-asset-typings-plugin/src/getConfigFromConfigFileAsync.ts @@ -0,0 +1,67 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. +// See LICENSE in the project root for license information. + +import type { HeftConfiguration } from '@rushstack/heft'; +import { InheritanceType, ProjectConfigurationFile } from '@rushstack/heft-config-file'; +import type { ITerminal } from '@rushstack/terminal'; + +import type { + IResourceStaticAssetTypingsConfigurationJson, + ISourceStaticAssetTypingsConfigurationJson +} from './types'; +import resourceStaticAssetSchema from './schemas/resource-static-asset-typings.schema.json'; +import sourceStaticAssetSchema from './schemas/source-static-asset-typings.schema.json'; + +const configurationFileLoaderByFileName: Map< + string, + ProjectConfigurationFile< + IResourceStaticAssetTypingsConfigurationJson | ISourceStaticAssetTypingsConfigurationJson + > +> = new Map(); + +export type FileLoaderType = 'resource' | 'source'; + +function createConfigurationFileLoader( + configFileName: string, + fileLoaderType: FileLoaderType +): ProjectConfigurationFile< + IResourceStaticAssetTypingsConfigurationJson | ISourceStaticAssetTypingsConfigurationJson +> { + return new ProjectConfigurationFile< + IResourceStaticAssetTypingsConfigurationJson | ISourceStaticAssetTypingsConfigurationJson + >({ + jsonSchemaObject: fileLoaderType === 'resource' ? resourceStaticAssetSchema : sourceStaticAssetSchema, + projectRelativeFilePath: `config/${configFileName}`, + propertyInheritance: { + fileExtensions: { + inheritanceType: InheritanceType.append + } + } + }); +} + +export function getConfigFromConfigFileAsync( + configFileName: string, + fileLoaderType: FileLoaderType, + terminal: ITerminal, + slashNormalizedBuildFolderPath: string, + rigConfig: HeftConfiguration['rigConfig'] +): Promise< + IResourceStaticAssetTypingsConfigurationJson | ISourceStaticAssetTypingsConfigurationJson | undefined +> { + let configurationFileLoader: + | ProjectConfigurationFile< + IResourceStaticAssetTypingsConfigurationJson | ISourceStaticAssetTypingsConfigurationJson + > + | undefined = configurationFileLoaderByFileName.get(configFileName); + if (!configurationFileLoader) { + configurationFileLoader = createConfigurationFileLoader(configFileName, fileLoaderType); + configurationFileLoaderByFileName.set(configFileName, configurationFileLoader); + } + + return configurationFileLoader.tryLoadConfigurationFileForProjectAsync( + terminal, + slashNormalizedBuildFolderPath, + rigConfig + ); +} diff --git a/heft-plugins/heft-static-asset-typings-plugin/src/schemas/resource-assets-options.schema.json b/heft-plugins/heft-static-asset-typings-plugin/src/schemas/resource-assets-options.schema.json new file mode 100644 index 00000000000..749715a9f63 --- /dev/null +++ b/heft-plugins/heft-static-asset-typings-plugin/src/schemas/resource-assets-options.schema.json @@ -0,0 +1,58 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "oneOf": [ + { + "type": "object", + "additionalProperties": false, + "required": ["configType", "config"], + "properties": { + "configType": { + "type": "string", + "enum": ["inline"] + }, + "config": { + "required": ["fileExtensions"], + "type": "object", + "additionalProperties": false, + "properties": { + "fileExtensions": { + "type": "array", + "items": { + "type": "string", + "pattern": "\\.[^\\\\/]+$" + } + }, + "generatedTsFolders": { + "type": "array", + "items": { + "type": "string", + "pattern": "^[^\\\\]+$" + } + }, + "sourceFolderPath": { + "type": "string", + "pattern": "^[^\\\\]+$" + } + } + } + } + }, + + { + "type": "object", + "additionalProperties": false, + "required": ["configType", "configFileName"], + "properties": { + "configType": { + "type": "string", + "enum": ["file"] + }, + "configFileName": { + "type": "string", + "pattern": "^[^\\\\\\/]+\\.json$" + } + } + } + ] +} diff --git a/heft-plugins/heft-static-asset-typings-plugin/src/schemas/resource-static-asset-typings.schema.json b/heft-plugins/heft-static-asset-typings-plugin/src/schemas/resource-static-asset-typings.schema.json new file mode 100644 index 00000000000..640f68eb4dd --- /dev/null +++ b/heft-plugins/heft-static-asset-typings-plugin/src/schemas/resource-static-asset-typings.schema.json @@ -0,0 +1,29 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "additionalProperties": false, + "required": ["fileExtensions"], + "properties": { + "$schema": { + "type": "string" + }, + "fileExtensions": { + "type": "array", + "items": { + "pattern": "\\.[^\\\\/]+$", + "type": "string" + } + }, + "generatedTsFolders": { + "type": "array", + "items": { + "type": "string", + "pattern": "^[^\\\\]+$" + } + }, + "sourceFolderPath": { + "type": "string", + "pattern": "^[^\\\\]+$" + } + } +} diff --git a/heft-plugins/heft-static-asset-typings-plugin/src/schemas/source-assets-options.schema.json b/heft-plugins/heft-static-asset-typings-plugin/src/schemas/source-assets-options.schema.json new file mode 100644 index 00000000000..6dd4d724767 --- /dev/null +++ b/heft-plugins/heft-static-asset-typings-plugin/src/schemas/source-assets-options.schema.json @@ -0,0 +1,72 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "oneOf": [ + { + "type": "object", + "additionalProperties": false, + "required": ["configType", "config"], + "properties": { + "configType": { + "type": "string", + "enum": ["inline"] + }, + "config": { + "required": ["fileExtensions", "cjsOutputFolders"], + "type": "object", + "additionalProperties": false, + "properties": { + "fileExtensions": { + "type": "array", + "items": { + "type": "string", + "pattern": "\\.[^\\\\/]+$" + } + }, + "generatedTsFolders": { + "type": "array", + "items": { + "type": "string", + "pattern": "^[^\\\\]+$" + } + }, + "sourceFolderPath": { + "type": "string", + "pattern": "^[^\\\\]+$" + }, + "cjsOutputFolders": { + "type": "array", + "items": { + "pattern": "^[^\\\\]+$", + "type": "string" + } + }, + "esmOutputFolders": { + "type": "array", + "items": { + "pattern": "^[^\\\\]+$", + "type": "string" + } + } + } + } + } + }, + + { + "type": "object", + "additionalProperties": false, + "required": ["configType", "configFileName"], + "properties": { + "configType": { + "type": "string", + "enum": ["file"] + }, + "configFileName": { + "type": "string", + "pattern": "^[^\\\\\\/]+\\.json$" + } + } + } + ] +} diff --git a/heft-plugins/heft-static-asset-typings-plugin/src/schemas/source-static-asset-typings.schema.json b/heft-plugins/heft-static-asset-typings-plugin/src/schemas/source-static-asset-typings.schema.json new file mode 100644 index 00000000000..482c5181c87 --- /dev/null +++ b/heft-plugins/heft-static-asset-typings-plugin/src/schemas/source-static-asset-typings.schema.json @@ -0,0 +1,43 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "additionalProperties": false, + "required": ["fileExtensions", "cjsOutputFolders"], + "properties": { + "$schema": { + "type": "string" + }, + "fileExtensions": { + "type": "array", + "items": { + "pattern": "\\.[^\\\\/]+$", + "type": "string" + } + }, + "generatedTsFolders": { + "type": "array", + "items": { + "type": "string", + "pattern": "^[^\\\\]+$" + } + }, + "sourceFolderPath": { + "type": "string", + "pattern": "^[^\\\\]+$" + }, + "cjsOutputFolders": { + "type": "array", + "items": { + "pattern": "^[^\\\\]+$", + "type": "string" + } + }, + "esmOutputFolders": { + "type": "array", + "items": { + "pattern": "^[^\\\\]+$", + "type": "string" + } + } + } +} diff --git a/heft-plugins/heft-static-asset-typings-plugin/src/test/StaticAssetTypingsGenerator.test.ts b/heft-plugins/heft-static-asset-typings-plugin/src/test/StaticAssetTypingsGenerator.test.ts new file mode 100644 index 00000000000..bc550c55ce6 --- /dev/null +++ b/heft-plugins/heft-static-asset-typings-plugin/src/test/StaticAssetTypingsGenerator.test.ts @@ -0,0 +1,72 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. +// See LICENSE in the project root for license information. + +import { hasChanges } from '../StaticAssetTypingsGenerator'; + +describe('hasChanges', () => { + it('returns false for two empty maps', () => { + const current: Map = new Map(); + const old: Map = new Map(); + expect(hasChanges(current, old)).toBe(false); + }); + + it('returns false for identical maps', () => { + const current: Map = new Map([ + ['a.png', 'v1'], + ['b.png', 'v2'] + ]); + const old: Map = new Map([ + ['a.png', 'v1'], + ['b.png', 'v2'] + ]); + expect(hasChanges(current, old)).toBe(false); + }); + + it('returns true when current has more entries', () => { + const current: Map = new Map([ + ['a.png', 'v1'], + ['b.png', 'v2'] + ]); + const old: Map = new Map([['a.png', 'v1']]); + expect(hasChanges(current, old)).toBe(true); + }); + + it('returns true when old has more entries', () => { + const current: Map = new Map([['a.png', 'v1']]); + const old: Map = new Map([ + ['a.png', 'v1'], + ['b.png', 'v2'] + ]); + expect(hasChanges(current, old)).toBe(true); + }); + + it('returns true when a value differs', () => { + const current: Map = new Map([ + ['a.png', 'v1'], + ['b.png', 'v3'] + ]); + const old: Map = new Map([ + ['a.png', 'v1'], + ['b.png', 'v2'] + ]); + expect(hasChanges(current, old)).toBe(true); + }); + + it('returns true when a key differs', () => { + const current: Map = new Map([['a.png', 'v1']]); + const old: Map = new Map([['b.png', 'v1']]); + expect(hasChanges(current, old)).toBe(true); + }); + + it('returns true when current is empty and old has entries', () => { + const current: Map = new Map(); + const old: Map = new Map([['a.png', 'v1']]); + expect(hasChanges(current, old)).toBe(true); + }); + + it('returns true when current has entries and old is empty', () => { + const current: Map = new Map([['a.png', 'v1']]); + const old: Map = new Map(); + expect(hasChanges(current, old)).toBe(true); + }); +}); diff --git a/heft-plugins/heft-static-asset-typings-plugin/src/types.ts b/heft-plugins/heft-static-asset-typings-plugin/src/types.ts new file mode 100644 index 00000000000..c5c9256ce02 --- /dev/null +++ b/heft-plugins/heft-static-asset-typings-plugin/src/types.ts @@ -0,0 +1,42 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. +// See LICENSE in the project root for license information. + +import type { ITerminal } from '@rushstack/terminal'; + +export interface IAssetsInlineConfigPluginOptionsBase< + TConfig extends IResourceStaticAssetTypingsConfigurationJson +> { + configType: 'inline'; + /** + * The inline configuration object. + */ + config: TConfig; +} + +export interface IAssetsFileConfigPluginOptions { + configType: 'file'; + /** + * The name of the riggable config file in the config/ folder. + */ + configFileName: string; +} + +export type IAssetPluginOptions = + | IAssetsInlineConfigPluginOptionsBase + | IAssetsFileConfigPluginOptions; + +export interface IResourceStaticAssetTypingsConfigurationJson { + fileExtensions: string[]; + generatedTsFolders?: string[]; + sourceFolderPath?: string; +} + +export interface ISourceStaticAssetTypingsConfigurationJson + extends IResourceStaticAssetTypingsConfigurationJson { + cjsOutputFolders: string[]; + esmOutputFolders?: string[]; +} + +export type StaticAssetConfigurationFileLoader = ( + terminal: ITerminal +) => Promise; diff --git a/heft-plugins/heft-static-asset-typings-plugin/tsconfig.json b/heft-plugins/heft-static-asset-typings-plugin/tsconfig.json new file mode 100644 index 00000000000..dac21d04081 --- /dev/null +++ b/heft-plugins/heft-static-asset-typings-plugin/tsconfig.json @@ -0,0 +1,3 @@ +{ + "extends": "./node_modules/local-node-rig/profiles/default/tsconfig-base.json" +} diff --git a/heft-plugins/heft-storybook-plugin/.npmignore b/heft-plugins/heft-storybook-plugin/.npmignore index ffb155d74e6..f7a40e10213 100644 --- a/heft-plugins/heft-storybook-plugin/.npmignore +++ b/heft-plugins/heft-storybook-plugin/.npmignore @@ -8,6 +8,7 @@ !/lib/** !/lib-*/** !/dist/** +!/includes/** !CHANGELOG.md !CHANGELOG.json @@ -20,6 +21,9 @@ /lib/**/test/ /lib-*/**/test/ *.test.js +*.test.[cm]js +*.test.d.ts +*.test.d.[cm]ts # NOTE: These don't need to be specified, because NPM includes them automatically. # @@ -30,5 +34,3 @@ # --------------------------------------------------------------------------- # DO NOT MODIFY ABOVE THIS LINE! Add any project-specific overrides below. # --------------------------------------------------------------------------- - -!/includes/** diff --git a/heft-plugins/heft-storybook-plugin/CHANGELOG.json b/heft-plugins/heft-storybook-plugin/CHANGELOG.json index b585b14341d..d6247c927c5 100644 --- a/heft-plugins/heft-storybook-plugin/CHANGELOG.json +++ b/heft-plugins/heft-storybook-plugin/CHANGELOG.json @@ -1,6 +1,150 @@ { "name": "@rushstack/heft-storybook-plugin", "entries": [ + { + "version": "1.4.0", + "tag": "@rushstack/heft-storybook-plugin_v1.4.0", + "date": "Sat, 14 Mar 2026 00:13:47 GMT", + "comments": { + "minor": [ + { + "comment": "Add `disableTelemetry` option to set STORYBOOK_DISABLE_TELEMETRY=1 when invoking Storybook; always set COREPACK_ENABLE_AUTO_PIN=0 in the subprocess environment" + } + ] + } + }, + { + "version": "1.3.7", + "tag": "@rushstack/heft-storybook-plugin_v1.3.7", + "date": "Mon, 09 Mar 2026 15:14:08 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.7`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-webpack4-plugin\" to `1.2.7`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-webpack5-plugin\" to `1.3.7`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-rspack-plugin\" to `0.3.7`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^1.2.6` to `1.2.7`" + } + ] + } + }, + { + "version": "1.3.6", + "tag": "@rushstack/heft-storybook-plugin_v1.3.6", + "date": "Wed, 25 Feb 2026 21:39:42 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.6`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-webpack4-plugin\" to `1.2.6`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-webpack5-plugin\" to `1.3.6`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-rspack-plugin\" to `0.3.6`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^1.2.5` to `1.2.6`" + } + ] + } + }, + { + "version": "1.3.5", + "tag": "@rushstack/heft-storybook-plugin_v1.3.5", + "date": "Wed, 25 Feb 2026 00:34:29 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `5.20.3`" + }, + { + "comment": "Updating dependency \"@rushstack/terminal\" to `0.22.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.5`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-webpack4-plugin\" to `1.2.5`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-webpack5-plugin\" to `1.3.5`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-rspack-plugin\" to `0.3.5`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^1.2.4` to `1.2.5`" + } + ] + } + }, + { + "version": "1.3.4", + "tag": "@rushstack/heft-storybook-plugin_v1.3.4", + "date": "Tue, 24 Feb 2026 01:13:27 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `5.20.2`" + }, + { + "comment": "Updating dependency \"@rushstack/terminal\" to `0.22.2`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.4`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-webpack4-plugin\" to `1.2.4`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-webpack5-plugin\" to `1.3.4`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-rspack-plugin\" to `0.3.4`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^1.2.3` to `1.2.4`" + } + ] + } + }, + { + "version": "1.3.3", + "tag": "@rushstack/heft-storybook-plugin_v1.3.3", + "date": "Mon, 23 Feb 2026 00:42:21 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-webpack4-plugin\" to `1.2.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-webpack5-plugin\" to `1.3.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-rspack-plugin\" to `0.3.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^1.2.2` to `1.2.3`" + } + ] + } + }, { "version": "1.3.2", "tag": "@rushstack/heft-storybook-plugin_v1.3.2", diff --git a/heft-plugins/heft-storybook-plugin/CHANGELOG.md b/heft-plugins/heft-storybook-plugin/CHANGELOG.md index f72bcd478ad..d6eb72d2bc2 100644 --- a/heft-plugins/heft-storybook-plugin/CHANGELOG.md +++ b/heft-plugins/heft-storybook-plugin/CHANGELOG.md @@ -1,6 +1,38 @@ # Change Log - @rushstack/heft-storybook-plugin -This log was last generated on Fri, 20 Feb 2026 16:14:49 GMT and should not be manually modified. +This log was last generated on Sat, 14 Mar 2026 00:13:48 GMT and should not be manually modified. + +## 1.4.0 +Sat, 14 Mar 2026 00:13:47 GMT + +### Minor changes + +- Add `disableTelemetry` option to set STORYBOOK_DISABLE_TELEMETRY=1 when invoking Storybook; always set COREPACK_ENABLE_AUTO_PIN=0 in the subprocess environment + +## 1.3.7 +Mon, 09 Mar 2026 15:14:08 GMT + +_Version update only_ + +## 1.3.6 +Wed, 25 Feb 2026 21:39:42 GMT + +_Version update only_ + +## 1.3.5 +Wed, 25 Feb 2026 00:34:29 GMT + +_Version update only_ + +## 1.3.4 +Tue, 24 Feb 2026 01:13:27 GMT + +_Version update only_ + +## 1.3.3 +Mon, 23 Feb 2026 00:42:21 GMT + +_Version update only_ ## 1.3.2 Fri, 20 Feb 2026 16:14:49 GMT diff --git a/heft-plugins/heft-storybook-plugin/package.json b/heft-plugins/heft-storybook-plugin/package.json index 065101d8a49..f20795905c1 100644 --- a/heft-plugins/heft-storybook-plugin/package.json +++ b/heft-plugins/heft-storybook-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/heft-storybook-plugin", - "version": "1.3.2", + "version": "1.4.0", "description": "Heft plugin for supporting UI development using Storybook", "repository": { "type": "git", @@ -16,7 +16,7 @@ "_phase:test": "heft run --only test -- --clean" }, "peerDependencies": { - "@rushstack/heft": "^1.2.2" + "@rushstack/heft": "^1.2.7" }, "dependencies": { "@rushstack/node-core-library": "workspace:*", diff --git a/heft-plugins/heft-storybook-plugin/src/StorybookPlugin.ts b/heft-plugins/heft-storybook-plugin/src/StorybookPlugin.ts index 4b3939ac429..020568192f0 100644 --- a/heft-plugins/heft-storybook-plugin/src/StorybookPlugin.ts +++ b/heft-plugins/heft-storybook-plugin/src/StorybookPlugin.ts @@ -158,6 +158,12 @@ export interface IStorybookPluginOptions { * Specifies whether to capture the webpack stats for the storybook build by adding the `--webpack-stats-json` CLI flag. */ captureWebpackStats?: boolean; + + /** + * If true, sets the `STORYBOOK_DISABLE_TELEMETRY=1` environment variable when invoking the Storybook subprocess, + * which disables Storybook's telemetry data collection. + */ + disableTelemetry?: boolean; } interface IRunStorybookOptions extends IPrepareStorybookOptions { @@ -499,6 +505,15 @@ export default class StorybookPlugin implements IHeftTaskPlugin { return await new Promise((resolve, reject) => { - const storybookEnv: NodeJS.ProcessEnv = { ...process.env }; const forkedProcess: child_process.ChildProcess = child_process.fork(command, args, { execArgv: process.execArgv, cwd, stdio: ['ignore', 'pipe', 'pipe', 'ipc'], - env: storybookEnv, + env, ...SubprocessTerminator.RECOMMENDED_OPTIONS }); @@ -587,6 +603,7 @@ export default class StorybookPlugin implements IHeftTaskPlugin/lib-dts/index.d.ts", - "apiReport": { - "enabled": true, - "reportFolder": "../../../common/reviews/api" - }, "docModel": { "enabled": false }, + "dtsRollup": { "enabled": true, "betaTrimmedFilePath": "/dist/.d.ts" diff --git a/heft-plugins/heft-typescript-plugin/package.json b/heft-plugins/heft-typescript-plugin/package.json index e5d875722fc..2e113ae8bc9 100644 --- a/heft-plugins/heft-typescript-plugin/package.json +++ b/heft-plugins/heft-typescript-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/heft-typescript-plugin", - "version": "1.2.2", + "version": "1.3.2", "description": "Heft plugin for TypeScript", "repository": { "type": "git", @@ -42,7 +42,7 @@ "_phase:build": "heft run --only build -- --clean" }, "peerDependencies": { - "@rushstack/heft": "1.2.2" + "@rushstack/heft": "1.2.7" }, "dependencies": { "@rushstack/node-core-library": "workspace:*", diff --git a/heft-plugins/heft-typescript-plugin/src/TypeScriptBuilder.ts b/heft-plugins/heft-typescript-plugin/src/TypeScriptBuilder.ts index cf1c90058a6..b819d050c3b 100644 --- a/heft-plugins/heft-typescript-plugin/src/TypeScriptBuilder.ts +++ b/heft-plugins/heft-typescript-plugin/src/TypeScriptBuilder.ts @@ -490,6 +490,7 @@ export class TypeScriptBuilder { this._cleanupWorker(); //#endregion + this._emitModulePackageJsonFiles(ts); this._logEmitPerformance(ts); //#region FINAL_ANALYSIS @@ -557,6 +558,8 @@ export class TypeScriptBuilder { this._cleanupWorker(); //#endregion + this._emitModulePackageJsonFiles(ts); + if (pendingTranspilePromises.size) { const emitResults: TTypescript.EmitResult[] = await Promise.all(pendingTranspilePromises.values()); for (const { diagnostics } of emitResults) { @@ -735,7 +738,8 @@ export class TypeScriptBuilder { ts.ModuleKind.CommonJS, tsconfig.options.outDir!, /* isPrimary */ tsconfig.options.module === ts.ModuleKind.CommonJS, - '.cjs' + '.cjs', + /* emitModulePackageJson */ false ); const cjsReason: IModuleKindReason = { @@ -754,7 +758,8 @@ export class TypeScriptBuilder { ts.ModuleKind.ESNext, tsconfig.options.outDir!, /* isPrimary */ tsconfig.options.module === ts.ModuleKind.ESNext, - '.mjs' + '.mjs', + /* emitModulePackageJson */ false ); const mjsReason: IModuleKindReason = { @@ -773,7 +778,8 @@ export class TypeScriptBuilder { tsconfig.options.module, tsconfig.options.outDir!, /* isPrimary */ true, - /* jsExtensionOverride */ undefined + /* jsExtensionOverride */ undefined, + /* emitModulePackageJson */ false ); const tsConfigReason: IModuleKindReason = { @@ -788,16 +794,14 @@ export class TypeScriptBuilder { } if (this._configuration.additionalModuleKindsToEmit) { - for (const additionalModuleKindToEmit of this._configuration.additionalModuleKindsToEmit) { - const moduleKind: TTypescript.ModuleKind = this._parseModuleKind( - ts, - additionalModuleKindToEmit.moduleKind - ); + for (const { moduleKind: moduleKindString, outFolderName, emitModulePackageJson = false } of this + ._configuration.additionalModuleKindsToEmit) { + const moduleKind: TTypescript.ModuleKind = this._parseModuleKind(ts, moduleKindString); - const outDirKey: string = `${additionalModuleKindToEmit.outFolderName}:.js`; + const outDirKey: string = `${outFolderName}:.js`; const moduleKindReason: IModuleKindReason = { kind: ts.ModuleKind[moduleKind] as keyof typeof TTypescript.ModuleKind, - outDir: additionalModuleKindToEmit.outFolderName, + outDir: outFolderName, extension: '.js', reason: `additionalModuleKindsToEmit` }; @@ -807,18 +811,19 @@ export class TypeScriptBuilder { if (existingKind) { throw new Error( - `Module kind "${additionalModuleKindToEmit.moduleKind}" is already emitted at ${existingKind.outDir} with extension '${existingKind.extension}' by option ${existingKind.reason}.` + `Module kind "${moduleKind}" is already emitted at ${existingKind.outDir} with extension '${existingKind.extension}' by option ${existingKind.reason}.` ); } else if (existingDir) { throw new Error( - `Output folder "${additionalModuleKindToEmit.outFolderName}" already contains module kind ${existingDir.kind} with extension '${existingDir.extension}', specified by option ${existingDir.reason}.` + `Output folder "${outFolderName}" already contains module kind ${existingDir.kind} with extension '${existingDir.extension}', specified by option ${existingDir.reason}.` ); } else { const outFolderKey: string | undefined = this._addModuleKindToEmit( moduleKind, - additionalModuleKindToEmit.outFolderName, + outFolderName, /* isPrimary */ false, - undefined + undefined, + emitModulePackageJson ); if (outFolderKey) { @@ -834,7 +839,8 @@ export class TypeScriptBuilder { moduleKind: TTypescript.ModuleKind, outFolderPath: string, isPrimary: boolean, - jsExtensionOverride: string | undefined + jsExtensionOverride: string | undefined, + emitModulePackageJson: boolean ): string | undefined { let outFolderName: string; if (path.isAbsolute(outFolderPath)) { @@ -885,8 +891,8 @@ export class TypeScriptBuilder { outFolderPath, moduleKind, jsExtensionOverride, - - isPrimary + isPrimary, + emitModulePackageJson }); return `${outFolderName}:${jsExtensionOverride || '.js'}`; @@ -972,6 +978,7 @@ export class TypeScriptBuilder { `Emitting program "${innerCompilerOptions!.configFilePath}"` ); + this._emitModulePackageJsonFiles(ts); this._logEmitPerformance(ts); // Reset performance counters @@ -1128,6 +1135,57 @@ export class TypeScriptBuilder { return host; } + /** + * For each module kind configured with `emitModulePackageJson: true`, writes a + * `package.json` with the appropriate `"type"` field to ensure Node.js correctly + * interprets `.js` files in the output folder. + */ + private _emitModulePackageJsonFiles(ts: ExtendedTypeScript): void { + for (const { emitModulePackageJson, moduleKind, outFolderPath } of this._moduleKindsToEmit) { + if (!emitModulePackageJson) { + continue; + } + + // "module" and "commonjs" are the only recognized values. See + // https://nodejs.org/api/packages.html#type + let moduleType: string | undefined; + switch (moduleKind) { + // UMD contains a CommonJS wrapper, so it should be treated as CommonJS for package.json generation purposes + case ts.ModuleKind.UMD: + case ts.ModuleKind.CommonJS: { + moduleType = 'commonjs'; + break; + } + + case ts.ModuleKind.AMD: + case ts.ModuleKind.None: + case ts.ModuleKind.Preserve: + case ts.ModuleKind.System: { + moduleType = undefined; + break; + } + + default: { + moduleType = 'module'; + break; + } + } + + if (moduleType) { + const packageJsonPath: string = `${outFolderPath}package.json`; + const packageJsonContent: string = `{\n "type": "${moduleType}"\n}\n`; + + ts.sys.writeFile(packageJsonPath, packageJsonContent); + this._typescriptTerminal.writeVerboseLine(`Wrote ${packageJsonPath} with "type": "${moduleType}"`); + } else { + throw new Error( + `Unsupported module kind ${ts.ModuleKind[moduleKind]} for package.json generation. ` + + `Remove the \`emitModulePackageJson\` option for this module kind.` + ); + } + } + } + private _parseModuleKind(ts: ExtendedTypeScript, moduleKindName: string): TTypescript.ModuleKind { switch (moduleKindName.toLowerCase()) { case 'commonjs': diff --git a/heft-plugins/heft-typescript-plugin/src/TypeScriptPlugin.ts b/heft-plugins/heft-typescript-plugin/src/TypeScriptPlugin.ts index cd47dfc1b89..6fb6eb72647 100644 --- a/heft-plugins/heft-typescript-plugin/src/TypeScriptPlugin.ts +++ b/heft-plugins/heft-typescript-plugin/src/TypeScriptPlugin.ts @@ -45,6 +45,7 @@ export interface IEmitModuleKind { moduleKind: 'commonjs' | 'amd' | 'umd' | 'system' | 'es2015' | 'esnext'; outFolderName: string; jsExtensionOverride?: string; + emitModulePackageJson?: boolean; } /** diff --git a/heft-plugins/heft-typescript-plugin/src/schemas/typescript.schema.json b/heft-plugins/heft-typescript-plugin/src/schemas/typescript.schema.json index d42ff1f0476..d068b3149c8 100644 --- a/heft-plugins/heft-typescript-plugin/src/schemas/typescript.schema.json +++ b/heft-plugins/heft-typescript-plugin/src/schemas/typescript.schema.json @@ -31,6 +31,11 @@ "outFolderName": { "type": "string", "pattern": "[^\\\\\\/]" + }, + + "emitModulePackageJson": { + "description": "If true, a package.json file will be written to the output folder with the appropriate \"type\" field for the specified module kind. This ensures that Node.js correctly interprets .js files in the output folder regardless of the nearest ancestor package.json \"type\" setting. Only valid for CommonJS, UMD, and ES module kinds.", + "type": "boolean" } }, "required": ["moduleKind", "outFolderName"] diff --git a/heft-plugins/heft-typescript-plugin/src/types.ts b/heft-plugins/heft-typescript-plugin/src/types.ts index c7855b9ab55..f4704105bb0 100644 --- a/heft-plugins/heft-typescript-plugin/src/types.ts +++ b/heft-plugins/heft-typescript-plugin/src/types.ts @@ -62,4 +62,10 @@ export interface ICachedEmitModuleKind { * Declarations are only emitted for the primary module kind. */ isPrimary: boolean; + + /** + * If true, a package.json with the appropriate "type" field will be written + * to the output folder after emit. + */ + emitModulePackageJson: boolean; } diff --git a/heft-plugins/heft-vscode-extension-plugin/.npmignore b/heft-plugins/heft-vscode-extension-plugin/.npmignore index bc349f9a4be..f7a40e10213 100644 --- a/heft-plugins/heft-vscode-extension-plugin/.npmignore +++ b/heft-plugins/heft-vscode-extension-plugin/.npmignore @@ -8,6 +8,7 @@ !/lib/** !/lib-*/** !/dist/** +!/includes/** !CHANGELOG.md !CHANGELOG.json @@ -20,6 +21,9 @@ /lib/**/test/ /lib-*/**/test/ *.test.js +*.test.[cm]js +*.test.d.ts +*.test.d.[cm]ts # NOTE: These don't need to be specified, because NPM includes them automatically. # diff --git a/heft-plugins/heft-vscode-extension-plugin/CHANGELOG.json b/heft-plugins/heft-vscode-extension-plugin/CHANGELOG.json index a9f6bd6c13f..2b68f00fa59 100644 --- a/heft-plugins/heft-vscode-extension-plugin/CHANGELOG.json +++ b/heft-plugins/heft-vscode-extension-plugin/CHANGELOG.json @@ -1,6 +1,93 @@ { "name": "@rushstack/heft-vscode-extension-plugin", "entries": [ + { + "version": "1.1.7", + "tag": "@rushstack/heft-vscode-extension-plugin_v1.1.7", + "date": "Mon, 09 Mar 2026 15:14:08 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.7`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^1.2.6` to `1.2.7`" + } + ] + } + }, + { + "version": "1.1.6", + "tag": "@rushstack/heft-vscode-extension-plugin_v1.1.6", + "date": "Wed, 25 Feb 2026 21:39:42 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.6`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^1.2.5` to `1.2.6`" + } + ] + } + }, + { + "version": "1.1.5", + "tag": "@rushstack/heft-vscode-extension-plugin_v1.1.5", + "date": "Wed, 25 Feb 2026 00:34:30 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `5.20.3`" + }, + { + "comment": "Updating dependency \"@rushstack/terminal\" to `0.22.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.5`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^1.2.4` to `1.2.5`" + } + ] + } + }, + { + "version": "1.1.4", + "tag": "@rushstack/heft-vscode-extension-plugin_v1.1.4", + "date": "Tue, 24 Feb 2026 01:13:27 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `5.20.2`" + }, + { + "comment": "Updating dependency \"@rushstack/terminal\" to `0.22.2`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.4`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^1.2.3` to `1.2.4`" + } + ] + } + }, + { + "version": "1.1.3", + "tag": "@rushstack/heft-vscode-extension-plugin_v1.1.3", + "date": "Mon, 23 Feb 2026 00:42:21 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^1.2.2` to `1.2.3`" + } + ] + } + }, { "version": "1.1.2", "tag": "@rushstack/heft-vscode-extension-plugin_v1.1.2", diff --git a/heft-plugins/heft-vscode-extension-plugin/CHANGELOG.md b/heft-plugins/heft-vscode-extension-plugin/CHANGELOG.md index 762260632d0..b6596f705ff 100644 --- a/heft-plugins/heft-vscode-extension-plugin/CHANGELOG.md +++ b/heft-plugins/heft-vscode-extension-plugin/CHANGELOG.md @@ -1,6 +1,31 @@ # Change Log - @rushstack/heft-vscode-extension-plugin -This log was last generated on Fri, 20 Feb 2026 16:14:49 GMT and should not be manually modified. +This log was last generated on Mon, 09 Mar 2026 15:14:08 GMT and should not be manually modified. + +## 1.1.7 +Mon, 09 Mar 2026 15:14:08 GMT + +_Version update only_ + +## 1.1.6 +Wed, 25 Feb 2026 21:39:42 GMT + +_Version update only_ + +## 1.1.5 +Wed, 25 Feb 2026 00:34:30 GMT + +_Version update only_ + +## 1.1.4 +Tue, 24 Feb 2026 01:13:27 GMT + +_Version update only_ + +## 1.1.3 +Mon, 23 Feb 2026 00:42:21 GMT + +_Version update only_ ## 1.1.2 Fri, 20 Feb 2026 16:14:49 GMT diff --git a/heft-plugins/heft-vscode-extension-plugin/package.json b/heft-plugins/heft-vscode-extension-plugin/package.json index 1422fd43bb4..ddf49073eaa 100644 --- a/heft-plugins/heft-vscode-extension-plugin/package.json +++ b/heft-plugins/heft-vscode-extension-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/heft-vscode-extension-plugin", - "version": "1.1.2", + "version": "1.1.7", "description": "Heft plugin for building vscode extensions.", "repository": { "type": "git", @@ -33,7 +33,7 @@ } }, "peerDependencies": { - "@rushstack/heft": "^1.2.2" + "@rushstack/heft": "^1.2.7" }, "dependencies": { "@rushstack/node-core-library": "workspace:*", diff --git a/heft-plugins/heft-webpack4-plugin/.npmignore b/heft-plugins/heft-webpack4-plugin/.npmignore index ffb155d74e6..f7a40e10213 100644 --- a/heft-plugins/heft-webpack4-plugin/.npmignore +++ b/heft-plugins/heft-webpack4-plugin/.npmignore @@ -8,6 +8,7 @@ !/lib/** !/lib-*/** !/dist/** +!/includes/** !CHANGELOG.md !CHANGELOG.json @@ -20,6 +21,9 @@ /lib/**/test/ /lib-*/**/test/ *.test.js +*.test.[cm]js +*.test.d.ts +*.test.d.[cm]ts # NOTE: These don't need to be specified, because NPM includes them automatically. # @@ -30,5 +34,3 @@ # --------------------------------------------------------------------------- # DO NOT MODIFY ABOVE THIS LINE! Add any project-specific overrides below. # --------------------------------------------------------------------------- - -!/includes/** diff --git a/heft-plugins/heft-webpack4-plugin/CHANGELOG.json b/heft-plugins/heft-webpack4-plugin/CHANGELOG.json index be9eaecb03d..41674c25c10 100644 --- a/heft-plugins/heft-webpack4-plugin/CHANGELOG.json +++ b/heft-plugins/heft-webpack4-plugin/CHANGELOG.json @@ -1,6 +1,108 @@ { "name": "@rushstack/heft-webpack4-plugin", "entries": [ + { + "version": "1.2.7", + "tag": "@rushstack/heft-webpack4-plugin_v1.2.7", + "date": "Mon, 09 Mar 2026 15:14:08 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/debug-certificate-manager\" to `1.7.7`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.7`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^1.2.6` to `1.2.7`" + } + ] + } + }, + { + "version": "1.2.6", + "tag": "@rushstack/heft-webpack4-plugin_v1.2.6", + "date": "Wed, 25 Feb 2026 21:39:42 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/debug-certificate-manager\" to `1.7.6`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.6`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^1.2.5` to `1.2.6`" + } + ] + } + }, + { + "version": "1.2.5", + "tag": "@rushstack/heft-webpack4-plugin_v1.2.5", + "date": "Wed, 25 Feb 2026 00:34:29 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/debug-certificate-manager\" to `1.7.5`" + }, + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `5.20.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.5`" + }, + { + "comment": "Updating dependency \"@rushstack/terminal\" to `0.22.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^1.2.4` to `1.2.5`" + } + ] + } + }, + { + "version": "1.2.4", + "tag": "@rushstack/heft-webpack4-plugin_v1.2.4", + "date": "Tue, 24 Feb 2026 01:13:27 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/debug-certificate-manager\" to `1.7.4`" + }, + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `5.20.2`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.4`" + }, + { + "comment": "Updating dependency \"@rushstack/terminal\" to `0.22.2`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^1.2.3` to `1.2.4`" + } + ] + } + }, + { + "version": "1.2.3", + "tag": "@rushstack/heft-webpack4-plugin_v1.2.3", + "date": "Mon, 23 Feb 2026 00:42:21 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/debug-certificate-manager\" to `1.7.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^1.2.2` to `1.2.3`" + } + ] + } + }, { "version": "1.2.2", "tag": "@rushstack/heft-webpack4-plugin_v1.2.2", diff --git a/heft-plugins/heft-webpack4-plugin/CHANGELOG.md b/heft-plugins/heft-webpack4-plugin/CHANGELOG.md index 742e1251c9f..b051a7f9e78 100644 --- a/heft-plugins/heft-webpack4-plugin/CHANGELOG.md +++ b/heft-plugins/heft-webpack4-plugin/CHANGELOG.md @@ -1,6 +1,31 @@ # Change Log - @rushstack/heft-webpack4-plugin -This log was last generated on Fri, 20 Feb 2026 16:14:49 GMT and should not be manually modified. +This log was last generated on Mon, 09 Mar 2026 15:14:08 GMT and should not be manually modified. + +## 1.2.7 +Mon, 09 Mar 2026 15:14:08 GMT + +_Version update only_ + +## 1.2.6 +Wed, 25 Feb 2026 21:39:42 GMT + +_Version update only_ + +## 1.2.5 +Wed, 25 Feb 2026 00:34:29 GMT + +_Version update only_ + +## 1.2.4 +Tue, 24 Feb 2026 01:13:27 GMT + +_Version update only_ + +## 1.2.3 +Mon, 23 Feb 2026 00:42:21 GMT + +_Version update only_ ## 1.2.2 Fri, 20 Feb 2026 16:14:49 GMT diff --git a/heft-plugins/heft-webpack4-plugin/config/api-extractor.json b/heft-plugins/heft-webpack4-plugin/config/api-extractor.json index 05559c8de5e..5f6b2655ac8 100644 --- a/heft-plugins/heft-webpack4-plugin/config/api-extractor.json +++ b/heft-plugins/heft-webpack4-plugin/config/api-extractor.json @@ -1,14 +1,11 @@ { "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", + "extends": "local-node-rig/profiles/default/config/api-extractor-base.json", - "mainEntryPointFilePath": "/lib-dts/index.d.ts", - "apiReport": { - "enabled": true, - "reportFolder": "../../../common/reviews/api" - }, "docModel": { "enabled": false }, + "dtsRollup": { "enabled": true, "betaTrimmedFilePath": "/dist/.d.ts" diff --git a/heft-plugins/heft-webpack4-plugin/package.json b/heft-plugins/heft-webpack4-plugin/package.json index 6e8bc59540d..223660c62a6 100644 --- a/heft-plugins/heft-webpack4-plugin/package.json +++ b/heft-plugins/heft-webpack4-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/heft-webpack4-plugin", - "version": "1.2.2", + "version": "1.2.7", "description": "Heft plugin for Webpack 4", "repository": { "type": "git", @@ -48,7 +48,7 @@ } }, "peerDependencies": { - "@rushstack/heft": "^1.2.2", + "@rushstack/heft": "^1.2.7", "@types/webpack": "^4", "webpack": "~4.47.0" }, diff --git a/heft-plugins/heft-webpack5-plugin/.npmignore b/heft-plugins/heft-webpack5-plugin/.npmignore index ffb155d74e6..f7a40e10213 100644 --- a/heft-plugins/heft-webpack5-plugin/.npmignore +++ b/heft-plugins/heft-webpack5-plugin/.npmignore @@ -8,6 +8,7 @@ !/lib/** !/lib-*/** !/dist/** +!/includes/** !CHANGELOG.md !CHANGELOG.json @@ -20,6 +21,9 @@ /lib/**/test/ /lib-*/**/test/ *.test.js +*.test.[cm]js +*.test.d.ts +*.test.d.[cm]ts # NOTE: These don't need to be specified, because NPM includes them automatically. # @@ -30,5 +34,3 @@ # --------------------------------------------------------------------------- # DO NOT MODIFY ABOVE THIS LINE! Add any project-specific overrides below. # --------------------------------------------------------------------------- - -!/includes/** diff --git a/heft-plugins/heft-webpack5-plugin/CHANGELOG.json b/heft-plugins/heft-webpack5-plugin/CHANGELOG.json index b71f4b12455..742f012f455 100644 --- a/heft-plugins/heft-webpack5-plugin/CHANGELOG.json +++ b/heft-plugins/heft-webpack5-plugin/CHANGELOG.json @@ -1,6 +1,108 @@ { "name": "@rushstack/heft-webpack5-plugin", "entries": [ + { + "version": "1.3.7", + "tag": "@rushstack/heft-webpack5-plugin_v1.3.7", + "date": "Mon, 09 Mar 2026 15:14:08 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/debug-certificate-manager\" to `1.7.7`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.7`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^1.2.6` to `1.2.7`" + } + ] + } + }, + { + "version": "1.3.6", + "tag": "@rushstack/heft-webpack5-plugin_v1.3.6", + "date": "Wed, 25 Feb 2026 21:39:42 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/debug-certificate-manager\" to `1.7.6`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.6`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^1.2.5` to `1.2.6`" + } + ] + } + }, + { + "version": "1.3.5", + "tag": "@rushstack/heft-webpack5-plugin_v1.3.5", + "date": "Wed, 25 Feb 2026 00:34:29 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/debug-certificate-manager\" to `1.7.5`" + }, + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `5.20.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.5`" + }, + { + "comment": "Updating dependency \"@rushstack/terminal\" to `0.22.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^1.2.4` to `1.2.5`" + } + ] + } + }, + { + "version": "1.3.4", + "tag": "@rushstack/heft-webpack5-plugin_v1.3.4", + "date": "Tue, 24 Feb 2026 01:13:27 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/debug-certificate-manager\" to `1.7.4`" + }, + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `5.20.2`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.4`" + }, + { + "comment": "Updating dependency \"@rushstack/terminal\" to `0.22.2`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^1.2.3` to `1.2.4`" + } + ] + } + }, + { + "version": "1.3.3", + "tag": "@rushstack/heft-webpack5-plugin_v1.3.3", + "date": "Mon, 23 Feb 2026 00:42:21 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/debug-certificate-manager\" to `1.7.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^1.2.2` to `1.2.3`" + } + ] + } + }, { "version": "1.3.2", "tag": "@rushstack/heft-webpack5-plugin_v1.3.2", diff --git a/heft-plugins/heft-webpack5-plugin/CHANGELOG.md b/heft-plugins/heft-webpack5-plugin/CHANGELOG.md index 93786ea6889..ade8dff3394 100644 --- a/heft-plugins/heft-webpack5-plugin/CHANGELOG.md +++ b/heft-plugins/heft-webpack5-plugin/CHANGELOG.md @@ -1,6 +1,31 @@ # Change Log - @rushstack/heft-webpack5-plugin -This log was last generated on Fri, 20 Feb 2026 16:14:49 GMT and should not be manually modified. +This log was last generated on Mon, 09 Mar 2026 15:14:08 GMT and should not be manually modified. + +## 1.3.7 +Mon, 09 Mar 2026 15:14:08 GMT + +_Version update only_ + +## 1.3.6 +Wed, 25 Feb 2026 21:39:42 GMT + +_Version update only_ + +## 1.3.5 +Wed, 25 Feb 2026 00:34:29 GMT + +_Version update only_ + +## 1.3.4 +Tue, 24 Feb 2026 01:13:27 GMT + +_Version update only_ + +## 1.3.3 +Mon, 23 Feb 2026 00:42:21 GMT + +_Version update only_ ## 1.3.2 Fri, 20 Feb 2026 16:14:49 GMT diff --git a/heft-plugins/heft-webpack5-plugin/config/api-extractor.json b/heft-plugins/heft-webpack5-plugin/config/api-extractor.json index 05559c8de5e..5f6b2655ac8 100644 --- a/heft-plugins/heft-webpack5-plugin/config/api-extractor.json +++ b/heft-plugins/heft-webpack5-plugin/config/api-extractor.json @@ -1,14 +1,11 @@ { "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", + "extends": "local-node-rig/profiles/default/config/api-extractor-base.json", - "mainEntryPointFilePath": "/lib-dts/index.d.ts", - "apiReport": { - "enabled": true, - "reportFolder": "../../../common/reviews/api" - }, "docModel": { "enabled": false }, + "dtsRollup": { "enabled": true, "betaTrimmedFilePath": "/dist/.d.ts" diff --git a/heft-plugins/heft-webpack5-plugin/package.json b/heft-plugins/heft-webpack5-plugin/package.json index c571cb5f456..82d1d69055e 100644 --- a/heft-plugins/heft-webpack5-plugin/package.json +++ b/heft-plugins/heft-webpack5-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/heft-webpack5-plugin", - "version": "1.3.2", + "version": "1.3.7", "description": "Heft plugin for Webpack 5", "repository": { "type": "git", @@ -43,7 +43,7 @@ "_phase:test": "heft run --only test -- --clean" }, "peerDependencies": { - "@rushstack/heft": "^1.2.2", + "@rushstack/heft": "^1.2.7", "webpack": "^5.82.1" }, "dependencies": { diff --git a/libraries/api-extractor-model/.npmignore b/libraries/api-extractor-model/.npmignore index bc349f9a4be..f7a40e10213 100644 --- a/libraries/api-extractor-model/.npmignore +++ b/libraries/api-extractor-model/.npmignore @@ -8,6 +8,7 @@ !/lib/** !/lib-*/** !/dist/** +!/includes/** !CHANGELOG.md !CHANGELOG.json @@ -20,6 +21,9 @@ /lib/**/test/ /lib-*/**/test/ *.test.js +*.test.[cm]js +*.test.d.ts +*.test.d.[cm]ts # NOTE: These don't need to be specified, because NPM includes them automatically. # diff --git a/libraries/api-extractor-model/CHANGELOG.json b/libraries/api-extractor-model/CHANGELOG.json index 50cce09989e..8c65856242c 100644 --- a/libraries/api-extractor-model/CHANGELOG.json +++ b/libraries/api-extractor-model/CHANGELOG.json @@ -1,6 +1,42 @@ { "name": "@microsoft/api-extractor-model", "entries": [ + { + "version": "7.33.4", + "tag": "@microsoft/api-extractor-model_v7.33.4", + "date": "Wed, 25 Feb 2026 21:39:42 GMT", + "comments": { + "patch": [ + { + "comment": "Bump `@microsoft/tsdoc-config` to `~0.18.1` to mitigate CVE-2025-69873." + } + ] + } + }, + { + "version": "7.33.3", + "tag": "@microsoft/api-extractor-model_v7.33.3", + "date": "Wed, 25 Feb 2026 00:34:30 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `5.20.3`" + } + ] + } + }, + { + "version": "7.33.2", + "tag": "@microsoft/api-extractor-model_v7.33.2", + "date": "Tue, 24 Feb 2026 01:13:27 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `5.20.2`" + } + ] + } + }, { "version": "7.33.1", "tag": "@microsoft/api-extractor-model_v7.33.1", diff --git a/libraries/api-extractor-model/CHANGELOG.md b/libraries/api-extractor-model/CHANGELOG.md index f870217dc44..228e22015c6 100644 --- a/libraries/api-extractor-model/CHANGELOG.md +++ b/libraries/api-extractor-model/CHANGELOG.md @@ -1,6 +1,23 @@ # Change Log - @microsoft/api-extractor-model -This log was last generated on Fri, 20 Feb 2026 00:15:03 GMT and should not be manually modified. +This log was last generated on Wed, 25 Feb 2026 21:39:42 GMT and should not be manually modified. + +## 7.33.4 +Wed, 25 Feb 2026 21:39:42 GMT + +### Patches + +- Bump `@microsoft/tsdoc-config` to `~0.18.1` to mitigate CVE-2025-69873. + +## 7.33.3 +Wed, 25 Feb 2026 00:34:30 GMT + +_Version update only_ + +## 7.33.2 +Tue, 24 Feb 2026 01:13:27 GMT + +_Version update only_ ## 7.33.1 Fri, 20 Feb 2026 00:15:03 GMT diff --git a/libraries/api-extractor-model/config/api-extractor.json b/libraries/api-extractor-model/config/api-extractor.json index 05c675a8601..bf6aa143c60 100644 --- a/libraries/api-extractor-model/config/api-extractor.json +++ b/libraries/api-extractor-model/config/api-extractor.json @@ -1,17 +1,6 @@ { "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", - - "mainEntryPointFilePath": "/lib-dts/index.d.ts", - - "apiReport": { - "enabled": true, - "reportFolder": "../../../common/reviews/api" - }, - - "docModel": { - "enabled": true, - "apiJsonFilePath": "../../../common/temp/api/.api.json" - }, + "extends": "decoupled-local-node-rig/profiles/default/config/api-extractor-base.json", "dtsRollup": { "enabled": true, diff --git a/libraries/api-extractor-model/package.json b/libraries/api-extractor-model/package.json index 616c81e65f4..706fdc048aa 100644 --- a/libraries/api-extractor-model/package.json +++ b/libraries/api-extractor-model/package.json @@ -1,6 +1,6 @@ { "name": "@microsoft/api-extractor-model", - "version": "7.33.1", + "version": "7.33.4", "description": "A helper library for loading and saving the .api.json files created by API Extractor", "repository": { "type": "git", @@ -41,11 +41,11 @@ }, "dependencies": { "@microsoft/tsdoc": "~0.16.0", - "@microsoft/tsdoc-config": "~0.18.0", + "@microsoft/tsdoc-config": "~0.18.1", "@rushstack/node-core-library": "workspace:*" }, "devDependencies": { - "@rushstack/heft": "1.2.0", + "@rushstack/heft": "1.2.7", "decoupled-local-node-rig": "workspace:*", "eslint": "~9.37.0" }, diff --git a/libraries/credential-cache/.npmignore b/libraries/credential-cache/.npmignore index bc349f9a4be..f7a40e10213 100644 --- a/libraries/credential-cache/.npmignore +++ b/libraries/credential-cache/.npmignore @@ -8,6 +8,7 @@ !/lib/** !/lib-*/** !/dist/** +!/includes/** !CHANGELOG.md !CHANGELOG.json @@ -20,6 +21,9 @@ /lib/**/test/ /lib-*/**/test/ *.test.js +*.test.[cm]js +*.test.d.ts +*.test.d.[cm]ts # NOTE: These don't need to be specified, because NPM includes them automatically. # diff --git a/libraries/credential-cache/CHANGELOG.json b/libraries/credential-cache/CHANGELOG.json index ee8611e7b58..4196a4944bb 100644 --- a/libraries/credential-cache/CHANGELOG.json +++ b/libraries/credential-cache/CHANGELOG.json @@ -1,6 +1,72 @@ { "name": "@rushstack/credential-cache", "entries": [ + { + "version": "0.2.7", + "tag": "@rushstack/credential-cache_v0.2.7", + "date": "Mon, 09 Mar 2026 15:14:08 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.7`" + } + ] + } + }, + { + "version": "0.2.6", + "tag": "@rushstack/credential-cache_v0.2.6", + "date": "Wed, 25 Feb 2026 21:39:42 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.6`" + } + ] + } + }, + { + "version": "0.2.5", + "tag": "@rushstack/credential-cache_v0.2.5", + "date": "Wed, 25 Feb 2026 00:34:29 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `5.20.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.5`" + } + ] + } + }, + { + "version": "0.2.4", + "tag": "@rushstack/credential-cache_v0.2.4", + "date": "Tue, 24 Feb 2026 01:13:27 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `5.20.2`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.4`" + } + ] + } + }, + { + "version": "0.2.3", + "tag": "@rushstack/credential-cache_v0.2.3", + "date": "Mon, 23 Feb 2026 00:42:21 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.3`" + } + ] + } + }, { "version": "0.2.2", "tag": "@rushstack/credential-cache_v0.2.2", diff --git a/libraries/credential-cache/CHANGELOG.md b/libraries/credential-cache/CHANGELOG.md index 3d7f7dfa6f8..8ad33fe6272 100644 --- a/libraries/credential-cache/CHANGELOG.md +++ b/libraries/credential-cache/CHANGELOG.md @@ -1,6 +1,31 @@ # Change Log - @rushstack/credential-cache -This log was last generated on Fri, 20 Feb 2026 16:14:49 GMT and should not be manually modified. +This log was last generated on Mon, 09 Mar 2026 15:14:08 GMT and should not be manually modified. + +## 0.2.7 +Mon, 09 Mar 2026 15:14:08 GMT + +_Version update only_ + +## 0.2.6 +Wed, 25 Feb 2026 21:39:42 GMT + +_Version update only_ + +## 0.2.5 +Wed, 25 Feb 2026 00:34:29 GMT + +_Version update only_ + +## 0.2.4 +Tue, 24 Feb 2026 01:13:27 GMT + +_Version update only_ + +## 0.2.3 +Mon, 23 Feb 2026 00:42:21 GMT + +_Version update only_ ## 0.2.2 Fri, 20 Feb 2026 16:14:49 GMT diff --git a/libraries/credential-cache/config/api-extractor.json b/libraries/credential-cache/config/api-extractor.json index 5dbfda704f4..3dbb76c0e6f 100644 --- a/libraries/credential-cache/config/api-extractor.json +++ b/libraries/credential-cache/config/api-extractor.json @@ -1,19 +1,4 @@ { "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", - - "mainEntryPointFilePath": "/lib-dts/index.d.ts", - - "apiReport": { - "enabled": true, - "reportFolder": "../../../common/reviews/api" - }, - - "docModel": { - "enabled": true, - "apiJsonFilePath": "../../../common/temp/api/.api.json" - }, - - "dtsRollup": { - "enabled": true - } + "extends": "local-node-rig/profiles/default/config/api-extractor-base.json" } diff --git a/libraries/credential-cache/package.json b/libraries/credential-cache/package.json index 1b238653a55..308ee63f2c4 100644 --- a/libraries/credential-cache/package.json +++ b/libraries/credential-cache/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/credential-cache", - "version": "0.2.2", + "version": "0.2.7", "description": "Cross-platform functionality to manage cached credentials.", "main": "./lib-commonjs/index.js", "module": "./lib-esm/index.js", diff --git a/libraries/debug-certificate-manager/.npmignore b/libraries/debug-certificate-manager/.npmignore index bc349f9a4be..f7a40e10213 100644 --- a/libraries/debug-certificate-manager/.npmignore +++ b/libraries/debug-certificate-manager/.npmignore @@ -8,6 +8,7 @@ !/lib/** !/lib-*/** !/dist/** +!/includes/** !CHANGELOG.md !CHANGELOG.json @@ -20,6 +21,9 @@ /lib/**/test/ /lib-*/**/test/ *.test.js +*.test.[cm]js +*.test.d.ts +*.test.d.[cm]ts # NOTE: These don't need to be specified, because NPM includes them automatically. # diff --git a/libraries/debug-certificate-manager/CHANGELOG.json b/libraries/debug-certificate-manager/CHANGELOG.json index d5b24c2e9a1..5aabdfc9414 100644 --- a/libraries/debug-certificate-manager/CHANGELOG.json +++ b/libraries/debug-certificate-manager/CHANGELOG.json @@ -1,6 +1,78 @@ { "name": "@rushstack/debug-certificate-manager", "entries": [ + { + "version": "1.7.7", + "tag": "@rushstack/debug-certificate-manager_v1.7.7", + "date": "Mon, 09 Mar 2026 15:14:08 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.7`" + } + ] + } + }, + { + "version": "1.7.6", + "tag": "@rushstack/debug-certificate-manager_v1.7.6", + "date": "Wed, 25 Feb 2026 21:39:42 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.6`" + } + ] + } + }, + { + "version": "1.7.5", + "tag": "@rushstack/debug-certificate-manager_v1.7.5", + "date": "Wed, 25 Feb 2026 00:34:29 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `5.20.3`" + }, + { + "comment": "Updating dependency \"@rushstack/terminal\" to `0.22.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.5`" + } + ] + } + }, + { + "version": "1.7.4", + "tag": "@rushstack/debug-certificate-manager_v1.7.4", + "date": "Tue, 24 Feb 2026 01:13:27 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `5.20.2`" + }, + { + "comment": "Updating dependency \"@rushstack/terminal\" to `0.22.2`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.4`" + } + ] + } + }, + { + "version": "1.7.3", + "tag": "@rushstack/debug-certificate-manager_v1.7.3", + "date": "Mon, 23 Feb 2026 00:42:21 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.3`" + } + ] + } + }, { "version": "1.7.2", "tag": "@rushstack/debug-certificate-manager_v1.7.2", diff --git a/libraries/debug-certificate-manager/CHANGELOG.md b/libraries/debug-certificate-manager/CHANGELOG.md index 67e7420b765..e08a17dfbc9 100644 --- a/libraries/debug-certificate-manager/CHANGELOG.md +++ b/libraries/debug-certificate-manager/CHANGELOG.md @@ -1,6 +1,31 @@ # Change Log - @rushstack/debug-certificate-manager -This log was last generated on Fri, 20 Feb 2026 16:14:49 GMT and should not be manually modified. +This log was last generated on Mon, 09 Mar 2026 15:14:08 GMT and should not be manually modified. + +## 1.7.7 +Mon, 09 Mar 2026 15:14:08 GMT + +_Version update only_ + +## 1.7.6 +Wed, 25 Feb 2026 21:39:42 GMT + +_Version update only_ + +## 1.7.5 +Wed, 25 Feb 2026 00:34:29 GMT + +_Version update only_ + +## 1.7.4 +Tue, 24 Feb 2026 01:13:27 GMT + +_Version update only_ + +## 1.7.3 +Mon, 23 Feb 2026 00:42:21 GMT + +_Version update only_ ## 1.7.2 Fri, 20 Feb 2026 16:14:49 GMT diff --git a/libraries/debug-certificate-manager/config/api-extractor.json b/libraries/debug-certificate-manager/config/api-extractor.json index 5dbfda704f4..3dbb76c0e6f 100644 --- a/libraries/debug-certificate-manager/config/api-extractor.json +++ b/libraries/debug-certificate-manager/config/api-extractor.json @@ -1,19 +1,4 @@ { "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", - - "mainEntryPointFilePath": "/lib-dts/index.d.ts", - - "apiReport": { - "enabled": true, - "reportFolder": "../../../common/reviews/api" - }, - - "docModel": { - "enabled": true, - "apiJsonFilePath": "../../../common/temp/api/.api.json" - }, - - "dtsRollup": { - "enabled": true - } + "extends": "local-node-rig/profiles/default/config/api-extractor-base.json" } diff --git a/libraries/debug-certificate-manager/package.json b/libraries/debug-certificate-manager/package.json index 00ae4f921ef..6c22cf8520a 100644 --- a/libraries/debug-certificate-manager/package.json +++ b/libraries/debug-certificate-manager/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/debug-certificate-manager", - "version": "1.7.2", + "version": "1.7.7", "description": "Cross-platform functionality to create debug ssl certificates.", "main": "./lib-commonjs/index.js", "module": "./lib-esm/index.js", diff --git a/libraries/heft-config-file/.npmignore b/libraries/heft-config-file/.npmignore index ffb155d74e6..f7a40e10213 100644 --- a/libraries/heft-config-file/.npmignore +++ b/libraries/heft-config-file/.npmignore @@ -8,6 +8,7 @@ !/lib/** !/lib-*/** !/dist/** +!/includes/** !CHANGELOG.md !CHANGELOG.json @@ -20,6 +21,9 @@ /lib/**/test/ /lib-*/**/test/ *.test.js +*.test.[cm]js +*.test.d.ts +*.test.d.[cm]ts # NOTE: These don't need to be specified, because NPM includes them automatically. # @@ -30,5 +34,3 @@ # --------------------------------------------------------------------------- # DO NOT MODIFY ABOVE THIS LINE! Add any project-specific overrides below. # --------------------------------------------------------------------------- - -!/includes/** diff --git a/libraries/heft-config-file/CHANGELOG.json b/libraries/heft-config-file/CHANGELOG.json index b3c22344411..29bb395cca2 100644 --- a/libraries/heft-config-file/CHANGELOG.json +++ b/libraries/heft-config-file/CHANGELOG.json @@ -1,6 +1,39 @@ { "name": "@rushstack/heft-config-file", "entries": [ + { + "version": "0.20.3", + "tag": "@rushstack/heft-config-file_v0.20.3", + "date": "Wed, 25 Feb 2026 00:34:30 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `5.20.3`" + }, + { + "comment": "Updating dependency \"@rushstack/rig-package\" to `0.7.2`" + }, + { + "comment": "Updating dependency \"@rushstack/terminal\" to `0.22.3`" + } + ] + } + }, + { + "version": "0.20.2", + "tag": "@rushstack/heft-config-file_v0.20.2", + "date": "Tue, 24 Feb 2026 01:13:27 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `5.20.2`" + }, + { + "comment": "Updating dependency \"@rushstack/terminal\" to `0.22.2`" + } + ] + } + }, { "version": "0.20.1", "tag": "@rushstack/heft-config-file_v0.20.1", diff --git a/libraries/heft-config-file/CHANGELOG.md b/libraries/heft-config-file/CHANGELOG.md index 5171769cd2f..e977f2e3118 100644 --- a/libraries/heft-config-file/CHANGELOG.md +++ b/libraries/heft-config-file/CHANGELOG.md @@ -1,6 +1,16 @@ # Change Log - @rushstack/heft-config-file -This log was last generated on Fri, 20 Feb 2026 00:15:04 GMT and should not be manually modified. +This log was last generated on Wed, 25 Feb 2026 00:34:30 GMT and should not be manually modified. + +## 0.20.3 +Wed, 25 Feb 2026 00:34:30 GMT + +_Version update only_ + +## 0.20.2 +Tue, 24 Feb 2026 01:13:27 GMT + +_Version update only_ ## 0.20.1 Fri, 20 Feb 2026 00:15:04 GMT diff --git a/libraries/heft-config-file/config/api-extractor.json b/libraries/heft-config-file/config/api-extractor.json index 1ddb4758d09..005e818a08b 100644 --- a/libraries/heft-config-file/config/api-extractor.json +++ b/libraries/heft-config-file/config/api-extractor.json @@ -1,15 +1,7 @@ { "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", + "extends": "decoupled-local-node-rig/profiles/default/config/api-extractor-base.json", - "mainEntryPointFilePath": "/lib-dts/index.d.ts", - "apiReport": { - "enabled": true, - "reportFolder": "../../../common/reviews/api" - }, - "docModel": { - "enabled": true, - "apiJsonFilePath": "../../../common/temp/api/.api.json" - }, "dtsRollup": { "enabled": true, "betaTrimmedFilePath": "/dist/.d.ts" diff --git a/libraries/heft-config-file/package.json b/libraries/heft-config-file/package.json index 32f786e6db4..90928a61e8c 100644 --- a/libraries/heft-config-file/package.json +++ b/libraries/heft-config-file/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/heft-config-file", - "version": "0.20.1", + "version": "0.20.3", "description": "Configuration file loader for @rushstack/heft", "repository": { "type": "git", @@ -51,7 +51,7 @@ "jsonpath-plus": "~10.3.0" }, "devDependencies": { - "@rushstack/heft": "1.2.0", + "@rushstack/heft": "1.2.7", "@types/ungap__structured-clone": "~1.2.0", "decoupled-local-node-rig": "workspace:*", "eslint": "~9.37.0" diff --git a/libraries/load-themed-styles/.npmignore b/libraries/load-themed-styles/.npmignore index 3ab4fe6105c..f7a40e10213 100644 --- a/libraries/load-themed-styles/.npmignore +++ b/libraries/load-themed-styles/.npmignore @@ -5,8 +5,10 @@ # Use negative patterns to bring back the specific things we want to publish. !/bin/** -!/lib*/** +!/lib/** +!/lib-*/** !/dist/** +!/includes/** !CHANGELOG.md !CHANGELOG.json @@ -16,8 +18,12 @@ # Ignore certain patterns that should not get published. /dist/*.stats.* -/lib*/**/test/ +/lib/**/test/ +/lib-*/**/test/ *.test.js +*.test.[cm]js +*.test.d.ts +*.test.d.[cm]ts # NOTE: These don't need to be specified, because NPM includes them automatically. # diff --git a/libraries/load-themed-styles/CHANGELOG.json b/libraries/load-themed-styles/CHANGELOG.json index 4c96e6a6a3b..8ba82b35878 100644 --- a/libraries/load-themed-styles/CHANGELOG.json +++ b/libraries/load-themed-styles/CHANGELOG.json @@ -1,6 +1,71 @@ { "name": "@microsoft/load-themed-styles", "entries": [ + { + "version": "2.2.7", + "tag": "@microsoft/load-themed-styles_v2.2.7", + "date": "Mon, 09 Mar 2026 15:14:08 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.7`" + } + ] + } + }, + { + "version": "2.2.6", + "tag": "@microsoft/load-themed-styles_v2.2.6", + "date": "Wed, 25 Feb 2026 21:39:42 GMT", + "comments": { + "patch": [ + { + "comment": "Include missing `lib-*` folders." + } + ], + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.6`" + } + ] + } + }, + { + "version": "2.2.5", + "tag": "@microsoft/load-themed-styles_v2.2.5", + "date": "Wed, 25 Feb 2026 00:34:29 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.5`" + } + ] + } + }, + { + "version": "2.2.4", + "tag": "@microsoft/load-themed-styles_v2.2.4", + "date": "Tue, 24 Feb 2026 01:13:27 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.4`" + } + ] + } + }, + { + "version": "2.2.3", + "tag": "@microsoft/load-themed-styles_v2.2.3", + "date": "Mon, 23 Feb 2026 00:42:21 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.3`" + } + ] + } + }, { "version": "2.2.2", "tag": "@microsoft/load-themed-styles_v2.2.2", diff --git a/libraries/load-themed-styles/CHANGELOG.md b/libraries/load-themed-styles/CHANGELOG.md index 475b863c7e8..a7c7d3144bc 100644 --- a/libraries/load-themed-styles/CHANGELOG.md +++ b/libraries/load-themed-styles/CHANGELOG.md @@ -1,6 +1,33 @@ # Change Log - @microsoft/load-themed-styles -This log was last generated on Fri, 20 Feb 2026 16:14:49 GMT and should not be manually modified. +This log was last generated on Mon, 09 Mar 2026 15:14:08 GMT and should not be manually modified. + +## 2.2.7 +Mon, 09 Mar 2026 15:14:08 GMT + +_Version update only_ + +## 2.2.6 +Wed, 25 Feb 2026 21:39:42 GMT + +### Patches + +- Include missing `lib-*` folders. + +## 2.2.5 +Wed, 25 Feb 2026 00:34:29 GMT + +_Version update only_ + +## 2.2.4 +Tue, 24 Feb 2026 01:13:27 GMT + +_Version update only_ + +## 2.2.3 +Mon, 23 Feb 2026 00:42:21 GMT + +_Version update only_ ## 2.2.2 Fri, 20 Feb 2026 16:14:49 GMT diff --git a/libraries/load-themed-styles/package.json b/libraries/load-themed-styles/package.json index ba4b7091ea8..780be457bee 100644 --- a/libraries/load-themed-styles/package.json +++ b/libraries/load-themed-styles/package.json @@ -1,6 +1,6 @@ { "name": "@microsoft/load-themed-styles", - "version": "2.2.2", + "version": "2.2.7", "description": "Loads themed styles.", "license": "MIT", "repository": { diff --git a/libraries/localization-utilities/.npmignore b/libraries/localization-utilities/.npmignore index bc349f9a4be..f7a40e10213 100644 --- a/libraries/localization-utilities/.npmignore +++ b/libraries/localization-utilities/.npmignore @@ -8,6 +8,7 @@ !/lib/** !/lib-*/** !/dist/** +!/includes/** !CHANGELOG.md !CHANGELOG.json @@ -20,6 +21,9 @@ /lib/**/test/ /lib-*/**/test/ *.test.js +*.test.[cm]js +*.test.d.ts +*.test.d.[cm]ts # NOTE: These don't need to be specified, because NPM includes them automatically. # diff --git a/libraries/localization-utilities/CHANGELOG.json b/libraries/localization-utilities/CHANGELOG.json index a1d08963f76..6fb75c6768d 100644 --- a/libraries/localization-utilities/CHANGELOG.json +++ b/libraries/localization-utilities/CHANGELOG.json @@ -1,6 +1,93 @@ { "name": "@rushstack/localization-utilities", "entries": [ + { + "version": "0.15.7", + "tag": "@rushstack/localization-utilities_v0.15.7", + "date": "Mon, 09 Mar 2026 15:14:08 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/typings-generator\" to `0.16.7`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.7`" + } + ] + } + }, + { + "version": "0.15.6", + "tag": "@rushstack/localization-utilities_v0.15.6", + "date": "Wed, 25 Feb 2026 21:39:42 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/typings-generator\" to `0.16.6`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.6`" + } + ] + } + }, + { + "version": "0.15.5", + "tag": "@rushstack/localization-utilities_v0.15.5", + "date": "Wed, 25 Feb 2026 00:34:30 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `5.20.3`" + }, + { + "comment": "Updating dependency \"@rushstack/terminal\" to `0.22.3`" + }, + { + "comment": "Updating dependency \"@rushstack/typings-generator\" to `0.16.5`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.5`" + } + ] + } + }, + { + "version": "0.15.4", + "tag": "@rushstack/localization-utilities_v0.15.4", + "date": "Tue, 24 Feb 2026 01:13:27 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `5.20.2`" + }, + { + "comment": "Updating dependency \"@rushstack/terminal\" to `0.22.2`" + }, + { + "comment": "Updating dependency \"@rushstack/typings-generator\" to `0.16.4`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.4`" + } + ] + } + }, + { + "version": "0.15.3", + "tag": "@rushstack/localization-utilities_v0.15.3", + "date": "Mon, 23 Feb 2026 00:42:21 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/typings-generator\" to `0.16.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.3`" + } + ] + } + }, { "version": "0.15.2", "tag": "@rushstack/localization-utilities_v0.15.2", diff --git a/libraries/localization-utilities/CHANGELOG.md b/libraries/localization-utilities/CHANGELOG.md index c5264c74eae..171edb0c16c 100644 --- a/libraries/localization-utilities/CHANGELOG.md +++ b/libraries/localization-utilities/CHANGELOG.md @@ -1,6 +1,31 @@ # Change Log - @rushstack/localization-utilities -This log was last generated on Fri, 20 Feb 2026 16:14:49 GMT and should not be manually modified. +This log was last generated on Mon, 09 Mar 2026 15:14:08 GMT and should not be manually modified. + +## 0.15.7 +Mon, 09 Mar 2026 15:14:08 GMT + +_Version update only_ + +## 0.15.6 +Wed, 25 Feb 2026 21:39:42 GMT + +_Version update only_ + +## 0.15.5 +Wed, 25 Feb 2026 00:34:30 GMT + +_Version update only_ + +## 0.15.4 +Tue, 24 Feb 2026 01:13:27 GMT + +_Version update only_ + +## 0.15.3 +Mon, 23 Feb 2026 00:42:21 GMT + +_Version update only_ ## 0.15.2 Fri, 20 Feb 2026 16:14:49 GMT diff --git a/libraries/localization-utilities/config/api-extractor.json b/libraries/localization-utilities/config/api-extractor.json index 5dbfda704f4..3dbb76c0e6f 100644 --- a/libraries/localization-utilities/config/api-extractor.json +++ b/libraries/localization-utilities/config/api-extractor.json @@ -1,19 +1,4 @@ { "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", - - "mainEntryPointFilePath": "/lib-dts/index.d.ts", - - "apiReport": { - "enabled": true, - "reportFolder": "../../../common/reviews/api" - }, - - "docModel": { - "enabled": true, - "apiJsonFilePath": "../../../common/temp/api/.api.json" - }, - - "dtsRollup": { - "enabled": true - } + "extends": "local-node-rig/profiles/default/config/api-extractor-base.json" } diff --git a/libraries/localization-utilities/package.json b/libraries/localization-utilities/package.json index 87d665d05bc..9557f278c12 100644 --- a/libraries/localization-utilities/package.json +++ b/libraries/localization-utilities/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/localization-utilities", - "version": "0.15.2", + "version": "0.15.7", "description": "This plugin contains some useful functions for localization.", "main": "./lib-commonjs/index.js", "module": "./lib-esm/index.js", diff --git a/libraries/lookup-by-path/.npmignore b/libraries/lookup-by-path/.npmignore index bc349f9a4be..f7a40e10213 100644 --- a/libraries/lookup-by-path/.npmignore +++ b/libraries/lookup-by-path/.npmignore @@ -8,6 +8,7 @@ !/lib/** !/lib-*/** !/dist/** +!/includes/** !CHANGELOG.md !CHANGELOG.json @@ -20,6 +21,9 @@ /lib/**/test/ /lib-*/**/test/ *.test.js +*.test.[cm]js +*.test.d.ts +*.test.d.[cm]ts # NOTE: These don't need to be specified, because NPM includes them automatically. # diff --git a/libraries/lookup-by-path/CHANGELOG.json b/libraries/lookup-by-path/CHANGELOG.json index f661251a077..28440141dc1 100644 --- a/libraries/lookup-by-path/CHANGELOG.json +++ b/libraries/lookup-by-path/CHANGELOG.json @@ -1,6 +1,66 @@ { "name": "@rushstack/lookup-by-path", "entries": [ + { + "version": "0.9.7", + "tag": "@rushstack/lookup-by-path_v0.9.7", + "date": "Mon, 09 Mar 2026 15:14:08 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.7`" + } + ] + } + }, + { + "version": "0.9.6", + "tag": "@rushstack/lookup-by-path_v0.9.6", + "date": "Wed, 25 Feb 2026 21:39:42 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.6`" + } + ] + } + }, + { + "version": "0.9.5", + "tag": "@rushstack/lookup-by-path_v0.9.5", + "date": "Wed, 25 Feb 2026 00:34:30 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.5`" + } + ] + } + }, + { + "version": "0.9.4", + "tag": "@rushstack/lookup-by-path_v0.9.4", + "date": "Tue, 24 Feb 2026 01:13:27 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.4`" + } + ] + } + }, + { + "version": "0.9.3", + "tag": "@rushstack/lookup-by-path_v0.9.3", + "date": "Mon, 23 Feb 2026 00:42:21 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.3`" + } + ] + } + }, { "version": "0.9.2", "tag": "@rushstack/lookup-by-path_v0.9.2", diff --git a/libraries/lookup-by-path/CHANGELOG.md b/libraries/lookup-by-path/CHANGELOG.md index 91dcbc26f0d..f58e16ce706 100644 --- a/libraries/lookup-by-path/CHANGELOG.md +++ b/libraries/lookup-by-path/CHANGELOG.md @@ -1,6 +1,31 @@ # Change Log - @rushstack/lookup-by-path -This log was last generated on Fri, 20 Feb 2026 16:14:49 GMT and should not be manually modified. +This log was last generated on Mon, 09 Mar 2026 15:14:08 GMT and should not be manually modified. + +## 0.9.7 +Mon, 09 Mar 2026 15:14:08 GMT + +_Version update only_ + +## 0.9.6 +Wed, 25 Feb 2026 21:39:42 GMT + +_Version update only_ + +## 0.9.5 +Wed, 25 Feb 2026 00:34:30 GMT + +_Version update only_ + +## 0.9.4 +Tue, 24 Feb 2026 01:13:27 GMT + +_Version update only_ + +## 0.9.3 +Mon, 23 Feb 2026 00:42:21 GMT + +_Version update only_ ## 0.9.2 Fri, 20 Feb 2026 16:14:49 GMT diff --git a/libraries/lookup-by-path/config/api-extractor.json b/libraries/lookup-by-path/config/api-extractor.json index 5dbfda704f4..3dbb76c0e6f 100644 --- a/libraries/lookup-by-path/config/api-extractor.json +++ b/libraries/lookup-by-path/config/api-extractor.json @@ -1,19 +1,4 @@ { "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", - - "mainEntryPointFilePath": "/lib-dts/index.d.ts", - - "apiReport": { - "enabled": true, - "reportFolder": "../../../common/reviews/api" - }, - - "docModel": { - "enabled": true, - "apiJsonFilePath": "../../../common/temp/api/.api.json" - }, - - "dtsRollup": { - "enabled": true - } + "extends": "local-node-rig/profiles/default/config/api-extractor-base.json" } diff --git a/libraries/lookup-by-path/package.json b/libraries/lookup-by-path/package.json index f2f838a639e..5ee1a852153 100644 --- a/libraries/lookup-by-path/package.json +++ b/libraries/lookup-by-path/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/lookup-by-path", - "version": "0.9.2", + "version": "0.9.7", "description": "Strongly typed trie data structure for path and URL-like strings.", "main": "./lib-commonjs/index.js", "module": "./lib-esm/index.js", diff --git a/libraries/module-minifier/.npmignore b/libraries/module-minifier/.npmignore index bc349f9a4be..f7a40e10213 100644 --- a/libraries/module-minifier/.npmignore +++ b/libraries/module-minifier/.npmignore @@ -8,6 +8,7 @@ !/lib/** !/lib-*/** !/dist/** +!/includes/** !CHANGELOG.md !CHANGELOG.json @@ -20,6 +21,9 @@ /lib/**/test/ /lib-*/**/test/ *.test.js +*.test.[cm]js +*.test.d.ts +*.test.d.[cm]ts # NOTE: These don't need to be specified, because NPM includes them automatically. # diff --git a/libraries/module-minifier/CHANGELOG.json b/libraries/module-minifier/CHANGELOG.json index 4afecfe5c44..645f90719e7 100644 --- a/libraries/module-minifier/CHANGELOG.json +++ b/libraries/module-minifier/CHANGELOG.json @@ -1,6 +1,93 @@ { "name": "@rushstack/module-minifier", "entries": [ + { + "version": "0.9.8", + "tag": "@rushstack/module-minifier_v0.9.8", + "date": "Tue, 10 Mar 2026 15:13:12 GMT", + "comments": { + "patch": [ + { + "comment": "Bump `serialize-javascript` to partially mitigate CVE-2020-7660." + } + ] + } + }, + { + "version": "0.9.7", + "tag": "@rushstack/module-minifier_v0.9.7", + "date": "Mon, 09 Mar 2026 15:14:08 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/worker-pool\" to `0.7.7`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.7`" + } + ] + } + }, + { + "version": "0.9.6", + "tag": "@rushstack/module-minifier_v0.9.6", + "date": "Wed, 25 Feb 2026 21:39:42 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/worker-pool\" to `0.7.6`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.6`" + } + ] + } + }, + { + "version": "0.9.5", + "tag": "@rushstack/module-minifier_v0.9.5", + "date": "Wed, 25 Feb 2026 00:34:30 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/worker-pool\" to `0.7.5`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.5`" + } + ] + } + }, + { + "version": "0.9.4", + "tag": "@rushstack/module-minifier_v0.9.4", + "date": "Tue, 24 Feb 2026 01:13:27 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/worker-pool\" to `0.7.4`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.4`" + } + ] + } + }, + { + "version": "0.9.3", + "tag": "@rushstack/module-minifier_v0.9.3", + "date": "Mon, 23 Feb 2026 00:42:21 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/worker-pool\" to `0.7.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.3`" + } + ] + } + }, { "version": "0.9.2", "tag": "@rushstack/module-minifier_v0.9.2", diff --git a/libraries/module-minifier/CHANGELOG.md b/libraries/module-minifier/CHANGELOG.md index fcd9eb31d69..b6e7d439a77 100644 --- a/libraries/module-minifier/CHANGELOG.md +++ b/libraries/module-minifier/CHANGELOG.md @@ -1,6 +1,38 @@ # Change Log - @rushstack/module-minifier -This log was last generated on Fri, 20 Feb 2026 16:14:49 GMT and should not be manually modified. +This log was last generated on Tue, 10 Mar 2026 15:13:12 GMT and should not be manually modified. + +## 0.9.8 +Tue, 10 Mar 2026 15:13:12 GMT + +### Patches + +- Bump `serialize-javascript` to partially mitigate CVE-2020-7660. + +## 0.9.7 +Mon, 09 Mar 2026 15:14:08 GMT + +_Version update only_ + +## 0.9.6 +Wed, 25 Feb 2026 21:39:42 GMT + +_Version update only_ + +## 0.9.5 +Wed, 25 Feb 2026 00:34:30 GMT + +_Version update only_ + +## 0.9.4 +Tue, 24 Feb 2026 01:13:27 GMT + +_Version update only_ + +## 0.9.3 +Mon, 23 Feb 2026 00:42:21 GMT + +_Version update only_ ## 0.9.2 Fri, 20 Feb 2026 16:14:49 GMT diff --git a/libraries/module-minifier/config/api-extractor.json b/libraries/module-minifier/config/api-extractor.json index 5dbfda704f4..3dbb76c0e6f 100644 --- a/libraries/module-minifier/config/api-extractor.json +++ b/libraries/module-minifier/config/api-extractor.json @@ -1,19 +1,4 @@ { "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", - - "mainEntryPointFilePath": "/lib-dts/index.d.ts", - - "apiReport": { - "enabled": true, - "reportFolder": "../../../common/reviews/api" - }, - - "docModel": { - "enabled": true, - "apiJsonFilePath": "../../../common/temp/api/.api.json" - }, - - "dtsRollup": { - "enabled": true - } + "extends": "local-node-rig/profiles/default/config/api-extractor-base.json" } diff --git a/libraries/module-minifier/package.json b/libraries/module-minifier/package.json index 0203103667d..fa0625da6bd 100644 --- a/libraries/module-minifier/package.json +++ b/libraries/module-minifier/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/module-minifier", - "version": "0.9.2", + "version": "0.9.8", "description": "Wrapper for terser to support bulk parallel minification.", "main": "./lib-commonjs/index.js", "module": "./lib-esm/index.js", @@ -40,14 +40,14 @@ }, "dependencies": { "@rushstack/worker-pool": "workspace:*", - "serialize-javascript": "6.0.2", + "serialize-javascript": "7.0.3", "source-map": "~0.7.3", "terser": "^5.9.0" }, "devDependencies": { "@rushstack/heft": "workspace:*", "@types/node": "20.17.19", - "@types/serialize-javascript": "5.0.2", + "@types/serialize-javascript": "5.0.4", "eslint": "~9.37.0", "local-node-rig": "workspace:*" }, diff --git a/libraries/module-minifier/src/LocalMinifier.ts b/libraries/module-minifier/src/LocalMinifier.ts index 9f64006cc0f..984098fb76c 100644 --- a/libraries/module-minifier/src/LocalMinifier.ts +++ b/libraries/module-minifier/src/LocalMinifier.ts @@ -3,6 +3,7 @@ import { createHash } from 'node:crypto'; +import './cryptoPolyfill'; import serialize from 'serialize-javascript'; import type { MinifyOptions } from 'terser'; diff --git a/libraries/module-minifier/src/WorkerPoolMinifier.ts b/libraries/module-minifier/src/WorkerPoolMinifier.ts index 4a81fbc75a0..e9b6b9c0bc0 100644 --- a/libraries/module-minifier/src/WorkerPoolMinifier.ts +++ b/libraries/module-minifier/src/WorkerPoolMinifier.ts @@ -5,6 +5,7 @@ import { createHash } from 'node:crypto'; import os from 'node:os'; import type { ResourceLimits } from 'node:worker_threads'; +import './cryptoPolyfill'; import serialize from 'serialize-javascript'; import type { MinifyOptions } from 'terser'; diff --git a/libraries/module-minifier/src/cryptoPolyfill.ts b/libraries/module-minifier/src/cryptoPolyfill.ts new file mode 100644 index 00000000000..fbd539ab2ba --- /dev/null +++ b/libraries/module-minifier/src/cryptoPolyfill.ts @@ -0,0 +1,13 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. +// See LICENSE in the project root for license information. + +// Polyfill globalThis.crypto for Node 18, which doesn't expose it as a global. +// serialize-javascript accesses crypto.randomBytes() at module load time, +// which requires globalThis.crypto to be the Node.js crypto module. +// Remove this when deprecating nodev18 support. +import { webcrypto } from 'node:crypto'; + +if (!globalThis.crypto) { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + (globalThis as any).crypto = webcrypto; +} diff --git a/libraries/node-core-library/.npmignore b/libraries/node-core-library/.npmignore index bc349f9a4be..f7a40e10213 100644 --- a/libraries/node-core-library/.npmignore +++ b/libraries/node-core-library/.npmignore @@ -8,6 +8,7 @@ !/lib/** !/lib-*/** !/dist/** +!/includes/** !CHANGELOG.md !CHANGELOG.json @@ -20,6 +21,9 @@ /lib/**/test/ /lib-*/**/test/ *.test.js +*.test.[cm]js +*.test.d.ts +*.test.d.[cm]ts # NOTE: These don't need to be specified, because NPM includes them automatically. # diff --git a/libraries/node-core-library/CHANGELOG.json b/libraries/node-core-library/CHANGELOG.json index 55b05a64b47..ad6f58662dd 100644 --- a/libraries/node-core-library/CHANGELOG.json +++ b/libraries/node-core-library/CHANGELOG.json @@ -1,6 +1,30 @@ { "name": "@rushstack/node-core-library", "entries": [ + { + "version": "5.20.3", + "tag": "@rushstack/node-core-library_v5.20.3", + "date": "Wed, 25 Feb 2026 00:34:29 GMT", + "comments": { + "patch": [ + { + "comment": "Update `ajv` dependency to `~8.18.0` to mitigate CVE-2025-69873." + } + ] + } + }, + { + "version": "5.20.2", + "tag": "@rushstack/node-core-library_v5.20.2", + "date": "Tue, 24 Feb 2026 01:13:27 GMT", + "comments": { + "patch": [ + { + "comment": "Fix race condition in FileSystem.create*Link helpers: EEXIST errors that occur after ensureFolder/ensureFolderAsync are now handled consistently with the initial EEXIST handling." + } + ] + } + }, { "version": "5.20.1", "tag": "@rushstack/node-core-library_v5.20.1", diff --git a/libraries/node-core-library/CHANGELOG.md b/libraries/node-core-library/CHANGELOG.md index f68c488ac48..aaaa2143661 100644 --- a/libraries/node-core-library/CHANGELOG.md +++ b/libraries/node-core-library/CHANGELOG.md @@ -1,6 +1,20 @@ # Change Log - @rushstack/node-core-library -This log was last generated on Fri, 20 Feb 2026 00:15:04 GMT and should not be manually modified. +This log was last generated on Wed, 25 Feb 2026 00:34:29 GMT and should not be manually modified. + +## 5.20.3 +Wed, 25 Feb 2026 00:34:29 GMT + +### Patches + +- Update `ajv` dependency to `~8.18.0` to mitigate CVE-2025-69873. + +## 5.20.2 +Tue, 24 Feb 2026 01:13:27 GMT + +### Patches + +- Fix race condition in FileSystem.create*Link helpers: EEXIST errors that occur after ensureFolder/ensureFolderAsync are now handled consistently with the initial EEXIST handling. ## 5.20.1 Fri, 20 Feb 2026 00:15:04 GMT diff --git a/libraries/node-core-library/config/api-extractor.json b/libraries/node-core-library/config/api-extractor.json index 1494cc8b1b1..7c99207b503 100644 --- a/libraries/node-core-library/config/api-extractor.json +++ b/libraries/node-core-library/config/api-extractor.json @@ -1,21 +1,6 @@ { "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", - - "mainEntryPointFilePath": "/lib-dts/index.d.ts", - - "apiReport": { - "enabled": true, - "reportFolder": "../../../common/reviews/api" - }, - - "docModel": { - "enabled": true, - "apiJsonFilePath": "../../../common/temp/api/.api.json" - }, - - "dtsRollup": { - "enabled": true - }, + "extends": "decoupled-local-node-rig/profiles/default/config/api-extractor-base.json", "bundledPackages": ["@rushstack/problem-matcher"] } diff --git a/libraries/node-core-library/package.json b/libraries/node-core-library/package.json index 496b02dc020..d9caaa92ad9 100644 --- a/libraries/node-core-library/package.json +++ b/libraries/node-core-library/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/node-core-library", - "version": "5.20.1", + "version": "5.20.3", "description": "Core libraries that every NodeJS toolchain project should use", "main": "./lib-commonjs/index.js", "module": "./lib-esm/index.js", @@ -44,12 +44,12 @@ "jju": "~1.4.0", "resolve": "~1.22.1", "semver": "~7.5.4", - "ajv": "~8.13.0", + "ajv": "~8.18.0", "ajv-draft-04": "~1.0.0", "ajv-formats": "~3.0.1" }, "devDependencies": { - "@rushstack/heft": "1.2.0", + "@rushstack/heft": "1.2.7", "@rushstack/problem-matcher": "workspace:*", "@types/fs-extra": "7.0.0", "@types/jju": "1.4.1", diff --git a/libraries/node-core-library/src/FileSystem.ts b/libraries/node-core-library/src/FileSystem.ts index da107dd1604..a2ff0b74d2f 100644 --- a/libraries/node-core-library/src/FileSystem.ts +++ b/libraries/node-core-library/src/FileSystem.ts @@ -1518,25 +1518,33 @@ export class FileSystem { ); } + private static _handleLinkExistError( + linkFn: () => void, + options: IInternalFileSystemCreateLinkOptions, + error: Error + ): void { + switch (options.alreadyExistsBehavior) { + case AlreadyExistsBehavior.Ignore: + break; + case AlreadyExistsBehavior.Overwrite: + // fsx.linkSync does not allow overwriting so we must manually delete. If it's + // a folder, it will throw an error. + this.deleteFile(options.newLinkPath); + linkFn(); + break; + case AlreadyExistsBehavior.Error: + default: + throw error; + } + } + private static _handleLink(linkFn: () => void, options: IInternalFileSystemCreateLinkOptions): void { try { linkFn(); } catch (error) { if (FileSystem.isExistError(error as Error)) { // Link exists, handle it - switch (options.alreadyExistsBehavior) { - case AlreadyExistsBehavior.Ignore: - break; - case AlreadyExistsBehavior.Overwrite: - // fsx.linkSync does not allow overwriting so we must manually delete. If it's - // a folder, it will throw an error. - this.deleteFile(options.newLinkPath); - linkFn(); - break; - case AlreadyExistsBehavior.Error: - default: - throw error; - } + FileSystem._handleLinkExistError(linkFn, options, error as Error); } else { // When attempting to create a link in a directory that does not exist, an ENOENT // or ENOTDIR error is thrown, so we should ensure the directory exists before @@ -1547,7 +1555,17 @@ export class FileSystem { (!options.linkTargetMustExist || FileSystem.exists(options.linkTargetPath)) ) { this.ensureFolder(nodeJsPath.dirname(options.newLinkPath)); - linkFn(); + try { + linkFn(); + } catch (retryError) { + if (FileSystem.isExistError(retryError as Error)) { + // Another concurrent process may have created the link between the ensureFolder + // call and the retry; handle it the same way as the initial exist error. + FileSystem._handleLinkExistError(linkFn, options, retryError as Error); + } else { + throw retryError; + } + } } else { throw error; } @@ -1555,6 +1573,26 @@ export class FileSystem { } } + private static async _handleLinkExistErrorAsync( + linkFn: () => Promise, + options: IInternalFileSystemCreateLinkOptions, + error: Error + ): Promise { + switch (options.alreadyExistsBehavior) { + case AlreadyExistsBehavior.Ignore: + break; + case AlreadyExistsBehavior.Overwrite: + // fsx.linkSync does not allow overwriting so we must manually delete. If it's + // a folder, it will throw an error. + await this.deleteFileAsync(options.newLinkPath); + await linkFn(); + break; + case AlreadyExistsBehavior.Error: + default: + throw error; + } + } + private static async _handleLinkAsync( linkFn: () => Promise, options: IInternalFileSystemCreateLinkOptions @@ -1564,19 +1602,7 @@ export class FileSystem { } catch (error) { if (FileSystem.isExistError(error as Error)) { // Link exists, handle it - switch (options.alreadyExistsBehavior) { - case AlreadyExistsBehavior.Ignore: - break; - case AlreadyExistsBehavior.Overwrite: - // fsx.linkSync does not allow overwriting so we must manually delete. If it's - // a folder, it will throw an error. - await this.deleteFileAsync(options.newLinkPath); - await linkFn(); - break; - case AlreadyExistsBehavior.Error: - default: - throw error; - } + await FileSystem._handleLinkExistErrorAsync(linkFn, options, error as Error); } else { // When attempting to create a link in a directory that does not exist, an ENOENT // or ENOTDIR error is thrown, so we should ensure the directory exists before @@ -1587,7 +1613,17 @@ export class FileSystem { (!options.linkTargetMustExist || (await FileSystem.existsAsync(options.linkTargetPath))) ) { await this.ensureFolderAsync(nodeJsPath.dirname(options.newLinkPath)); - await linkFn(); + try { + await linkFn(); + } catch (retryError) { + if (FileSystem.isExistError(retryError as Error)) { + // Another concurrent process may have created the link between the ensureFolderAsync + // call and the retry; handle it the same way as the initial exist error. + await FileSystem._handleLinkExistErrorAsync(linkFn, options, retryError as Error); + } else { + throw retryError; + } + } } else { throw error; } diff --git a/libraries/npm-check-fork/.npmignore b/libraries/npm-check-fork/.npmignore index bc349f9a4be..f7a40e10213 100644 --- a/libraries/npm-check-fork/.npmignore +++ b/libraries/npm-check-fork/.npmignore @@ -8,6 +8,7 @@ !/lib/** !/lib-*/** !/dist/** +!/includes/** !CHANGELOG.md !CHANGELOG.json @@ -20,6 +21,9 @@ /lib/**/test/ /lib-*/**/test/ *.test.js +*.test.[cm]js +*.test.d.ts +*.test.d.[cm]ts # NOTE: These don't need to be specified, because NPM includes them automatically. # diff --git a/libraries/npm-check-fork/CHANGELOG.json b/libraries/npm-check-fork/CHANGELOG.json index 9c9d9735021..485fb27c2b0 100644 --- a/libraries/npm-check-fork/CHANGELOG.json +++ b/libraries/npm-check-fork/CHANGELOG.json @@ -1,6 +1,72 @@ { "name": "@rushstack/npm-check-fork", "entries": [ + { + "version": "0.2.7", + "tag": "@rushstack/npm-check-fork_v0.2.7", + "date": "Mon, 09 Mar 2026 15:14:08 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.7`" + } + ] + } + }, + { + "version": "0.2.6", + "tag": "@rushstack/npm-check-fork_v0.2.6", + "date": "Wed, 25 Feb 2026 21:39:42 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.6`" + } + ] + } + }, + { + "version": "0.2.5", + "tag": "@rushstack/npm-check-fork_v0.2.5", + "date": "Wed, 25 Feb 2026 00:34:30 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `5.20.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.5`" + } + ] + } + }, + { + "version": "0.2.4", + "tag": "@rushstack/npm-check-fork_v0.2.4", + "date": "Tue, 24 Feb 2026 01:13:27 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `5.20.2`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.4`" + } + ] + } + }, + { + "version": "0.2.3", + "tag": "@rushstack/npm-check-fork_v0.2.3", + "date": "Mon, 23 Feb 2026 00:42:21 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.3`" + } + ] + } + }, { "version": "0.2.2", "tag": "@rushstack/npm-check-fork_v0.2.2", diff --git a/libraries/npm-check-fork/CHANGELOG.md b/libraries/npm-check-fork/CHANGELOG.md index 74f46646159..ac3a80fd374 100644 --- a/libraries/npm-check-fork/CHANGELOG.md +++ b/libraries/npm-check-fork/CHANGELOG.md @@ -1,6 +1,31 @@ # Change Log - @rushstack/npm-check-fork -This log was last generated on Fri, 20 Feb 2026 16:14:49 GMT and should not be manually modified. +This log was last generated on Mon, 09 Mar 2026 15:14:08 GMT and should not be manually modified. + +## 0.2.7 +Mon, 09 Mar 2026 15:14:08 GMT + +_Version update only_ + +## 0.2.6 +Wed, 25 Feb 2026 21:39:42 GMT + +_Version update only_ + +## 0.2.5 +Wed, 25 Feb 2026 00:34:30 GMT + +_Version update only_ + +## 0.2.4 +Tue, 24 Feb 2026 01:13:27 GMT + +_Version update only_ + +## 0.2.3 +Mon, 23 Feb 2026 00:42:21 GMT + +_Version update only_ ## 0.2.2 Fri, 20 Feb 2026 16:14:49 GMT diff --git a/libraries/npm-check-fork/package.json b/libraries/npm-check-fork/package.json index 361be3bd677..b596a8f4eac 100644 --- a/libraries/npm-check-fork/package.json +++ b/libraries/npm-check-fork/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/npm-check-fork", - "version": "0.2.2", + "version": "0.2.7", "description": "A fork of npm-check.", "repository": { "type": "git", diff --git a/libraries/operation-graph/.npmignore b/libraries/operation-graph/.npmignore index bc349f9a4be..f7a40e10213 100644 --- a/libraries/operation-graph/.npmignore +++ b/libraries/operation-graph/.npmignore @@ -8,6 +8,7 @@ !/lib/** !/lib-*/** !/dist/** +!/includes/** !CHANGELOG.md !CHANGELOG.json @@ -20,6 +21,9 @@ /lib/**/test/ /lib-*/**/test/ *.test.js +*.test.[cm]js +*.test.d.ts +*.test.d.[cm]ts # NOTE: These don't need to be specified, because NPM includes them automatically. # diff --git a/libraries/operation-graph/CHANGELOG.json b/libraries/operation-graph/CHANGELOG.json index b5823752770..1b112c1657c 100644 --- a/libraries/operation-graph/CHANGELOG.json +++ b/libraries/operation-graph/CHANGELOG.json @@ -1,6 +1,36 @@ { "name": "@rushstack/operation-graph", "entries": [ + { + "version": "0.6.3", + "tag": "@rushstack/operation-graph_v0.6.3", + "date": "Wed, 25 Feb 2026 00:34:30 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `5.20.3`" + }, + { + "comment": "Updating dependency \"@rushstack/terminal\" to `0.22.3`" + } + ] + } + }, + { + "version": "0.6.2", + "tag": "@rushstack/operation-graph_v0.6.2", + "date": "Tue, 24 Feb 2026 01:13:27 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `5.20.2`" + }, + { + "comment": "Updating dependency \"@rushstack/terminal\" to `0.22.2`" + } + ] + } + }, { "version": "0.6.1", "tag": "@rushstack/operation-graph_v0.6.1", diff --git a/libraries/operation-graph/CHANGELOG.md b/libraries/operation-graph/CHANGELOG.md index 3eea3610498..addeec91297 100644 --- a/libraries/operation-graph/CHANGELOG.md +++ b/libraries/operation-graph/CHANGELOG.md @@ -1,6 +1,16 @@ # Change Log - @rushstack/operation-graph -This log was last generated on Fri, 20 Feb 2026 00:15:04 GMT and should not be manually modified. +This log was last generated on Wed, 25 Feb 2026 00:34:30 GMT and should not be manually modified. + +## 0.6.3 +Wed, 25 Feb 2026 00:34:30 GMT + +_Version update only_ + +## 0.6.2 +Tue, 24 Feb 2026 01:13:27 GMT + +_Version update only_ ## 0.6.1 Fri, 20 Feb 2026 00:15:04 GMT diff --git a/libraries/operation-graph/config/api-extractor.json b/libraries/operation-graph/config/api-extractor.json index 5dbfda704f4..b53db1d0910 100644 --- a/libraries/operation-graph/config/api-extractor.json +++ b/libraries/operation-graph/config/api-extractor.json @@ -1,19 +1,4 @@ { "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", - - "mainEntryPointFilePath": "/lib-dts/index.d.ts", - - "apiReport": { - "enabled": true, - "reportFolder": "../../../common/reviews/api" - }, - - "docModel": { - "enabled": true, - "apiJsonFilePath": "../../../common/temp/api/.api.json" - }, - - "dtsRollup": { - "enabled": true - } + "extends": "decoupled-local-node-rig/profiles/default/config/api-extractor-base.json" } diff --git a/libraries/operation-graph/package.json b/libraries/operation-graph/package.json index 09138102f16..d9d7e2b9b6b 100644 --- a/libraries/operation-graph/package.json +++ b/libraries/operation-graph/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/operation-graph", - "version": "0.6.1", + "version": "0.6.3", "description": "Library for managing and executing operations in a directed acyclic graph.", "main": "./lib-commonjs/index.js", "module": "./lib-esm/index.js", @@ -43,7 +43,7 @@ "@rushstack/terminal": "workspace:*" }, "devDependencies": { - "@rushstack/heft": "1.2.0", + "@rushstack/heft": "1.2.7", "decoupled-local-node-rig": "workspace:*", "eslint": "~9.37.0" }, diff --git a/libraries/package-deps-hash/.npmignore b/libraries/package-deps-hash/.npmignore index bc349f9a4be..f7a40e10213 100644 --- a/libraries/package-deps-hash/.npmignore +++ b/libraries/package-deps-hash/.npmignore @@ -8,6 +8,7 @@ !/lib/** !/lib-*/** !/dist/** +!/includes/** !CHANGELOG.md !CHANGELOG.json @@ -20,6 +21,9 @@ /lib/**/test/ /lib-*/**/test/ *.test.js +*.test.[cm]js +*.test.d.ts +*.test.d.[cm]ts # NOTE: These don't need to be specified, because NPM includes them automatically. # diff --git a/libraries/package-deps-hash/CHANGELOG.json b/libraries/package-deps-hash/CHANGELOG.json index 4c9fd353183..58111c482e0 100644 --- a/libraries/package-deps-hash/CHANGELOG.json +++ b/libraries/package-deps-hash/CHANGELOG.json @@ -1,6 +1,72 @@ { "name": "@rushstack/package-deps-hash", "entries": [ + { + "version": "4.7.7", + "tag": "@rushstack/package-deps-hash_v4.7.7", + "date": "Mon, 09 Mar 2026 15:14:08 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.7`" + } + ] + } + }, + { + "version": "4.7.6", + "tag": "@rushstack/package-deps-hash_v4.7.6", + "date": "Wed, 25 Feb 2026 21:39:42 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.6`" + } + ] + } + }, + { + "version": "4.7.5", + "tag": "@rushstack/package-deps-hash_v4.7.5", + "date": "Wed, 25 Feb 2026 00:34:30 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `5.20.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.5`" + } + ] + } + }, + { + "version": "4.7.4", + "tag": "@rushstack/package-deps-hash_v4.7.4", + "date": "Tue, 24 Feb 2026 01:13:27 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `5.20.2`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.4`" + } + ] + } + }, + { + "version": "4.7.3", + "tag": "@rushstack/package-deps-hash_v4.7.3", + "date": "Mon, 23 Feb 2026 00:42:21 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.3`" + } + ] + } + }, { "version": "4.7.2", "tag": "@rushstack/package-deps-hash_v4.7.2", diff --git a/libraries/package-deps-hash/CHANGELOG.md b/libraries/package-deps-hash/CHANGELOG.md index 675713b33a2..28a20de2ed7 100644 --- a/libraries/package-deps-hash/CHANGELOG.md +++ b/libraries/package-deps-hash/CHANGELOG.md @@ -1,6 +1,31 @@ # Change Log - @rushstack/package-deps-hash -This log was last generated on Fri, 20 Feb 2026 16:14:49 GMT and should not be manually modified. +This log was last generated on Mon, 09 Mar 2026 15:14:08 GMT and should not be manually modified. + +## 4.7.7 +Mon, 09 Mar 2026 15:14:08 GMT + +_Version update only_ + +## 4.7.6 +Wed, 25 Feb 2026 21:39:42 GMT + +_Version update only_ + +## 4.7.5 +Wed, 25 Feb 2026 00:34:30 GMT + +_Version update only_ + +## 4.7.4 +Tue, 24 Feb 2026 01:13:27 GMT + +_Version update only_ + +## 4.7.3 +Mon, 23 Feb 2026 00:42:21 GMT + +_Version update only_ ## 4.7.2 Fri, 20 Feb 2026 16:14:49 GMT diff --git a/libraries/package-deps-hash/config/api-extractor.json b/libraries/package-deps-hash/config/api-extractor.json index 5dbfda704f4..3dbb76c0e6f 100644 --- a/libraries/package-deps-hash/config/api-extractor.json +++ b/libraries/package-deps-hash/config/api-extractor.json @@ -1,19 +1,4 @@ { "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", - - "mainEntryPointFilePath": "/lib-dts/index.d.ts", - - "apiReport": { - "enabled": true, - "reportFolder": "../../../common/reviews/api" - }, - - "docModel": { - "enabled": true, - "apiJsonFilePath": "../../../common/temp/api/.api.json" - }, - - "dtsRollup": { - "enabled": true - } + "extends": "local-node-rig/profiles/default/config/api-extractor-base.json" } diff --git a/libraries/package-deps-hash/package.json b/libraries/package-deps-hash/package.json index 991b382ac4e..61d7bb01dce 100644 --- a/libraries/package-deps-hash/package.json +++ b/libraries/package-deps-hash/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/package-deps-hash", - "version": "4.7.2", + "version": "4.7.7", "description": "", "main": "./lib-commonjs/index.js", "module": "./lib-esm/index.js", diff --git a/libraries/package-extractor/.npmignore b/libraries/package-extractor/.npmignore index bc349f9a4be..f7a40e10213 100644 --- a/libraries/package-extractor/.npmignore +++ b/libraries/package-extractor/.npmignore @@ -8,6 +8,7 @@ !/lib/** !/lib-*/** !/dist/** +!/includes/** !CHANGELOG.md !CHANGELOG.json @@ -20,6 +21,9 @@ /lib/**/test/ /lib-*/**/test/ *.test.js +*.test.[cm]js +*.test.d.ts +*.test.d.[cm]ts # NOTE: These don't need to be specified, because NPM includes them automatically. # diff --git a/libraries/package-extractor/CHANGELOG.json b/libraries/package-extractor/CHANGELOG.json index 88f3c358648..aedce2a6eb2 100644 --- a/libraries/package-extractor/CHANGELOG.json +++ b/libraries/package-extractor/CHANGELOG.json @@ -1,6 +1,131 @@ { "name": "@rushstack/package-extractor", "entries": [ + { + "version": "0.12.9", + "tag": "@rushstack/package-extractor_v0.12.9", + "date": "Wed, 25 Mar 2026 01:00:26 GMT", + "comments": { + "patch": [ + { + "comment": "preventing duplicate-copy conflicts across npm-packlist versions" + } + ] + } + }, + { + "version": "0.12.8", + "tag": "@rushstack/package-extractor_v0.12.8", + "date": "Mon, 09 Mar 2026 15:14:08 GMT", + "comments": { + "patch": [ + { + "comment": "Bump `minimatch` version from `10.2.1` to `10.2.3` to address CVE-2026-27903." + } + ], + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft-webpack5-plugin\" to `1.3.7`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.7`" + }, + { + "comment": "Updating dependency \"@rushstack/webpack-preserve-dynamic-require-plugin\" to `0.12.8`" + } + ] + } + }, + { + "version": "0.12.7", + "tag": "@rushstack/package-extractor_v0.12.7", + "date": "Wed, 25 Feb 2026 21:39:42 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft-webpack5-plugin\" to `1.3.6`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.6`" + }, + { + "comment": "Updating dependency \"@rushstack/webpack-preserve-dynamic-require-plugin\" to `0.12.7`" + } + ] + } + }, + { + "version": "0.12.6", + "tag": "@rushstack/package-extractor_v0.12.6", + "date": "Wed, 25 Feb 2026 00:34:29 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `5.20.3`" + }, + { + "comment": "Updating dependency \"@rushstack/terminal\" to `0.22.3`" + }, + { + "comment": "Updating dependency \"@rushstack/ts-command-line\" to `5.3.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-webpack5-plugin\" to `1.3.5`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.5`" + }, + { + "comment": "Updating dependency \"@rushstack/webpack-preserve-dynamic-require-plugin\" to `0.12.6`" + } + ] + } + }, + { + "version": "0.12.5", + "tag": "@rushstack/package-extractor_v0.12.5", + "date": "Tue, 24 Feb 2026 01:13:27 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `5.20.2`" + }, + { + "comment": "Updating dependency \"@rushstack/terminal\" to `0.22.2`" + }, + { + "comment": "Updating dependency \"@rushstack/ts-command-line\" to `5.3.2`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-webpack5-plugin\" to `1.3.4`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.4`" + }, + { + "comment": "Updating dependency \"@rushstack/webpack-preserve-dynamic-require-plugin\" to `0.12.5`" + } + ] + } + }, + { + "version": "0.12.4", + "tag": "@rushstack/package-extractor_v0.12.4", + "date": "Mon, 23 Feb 2026 00:42:21 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft-webpack5-plugin\" to `1.3.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.3`" + }, + { + "comment": "Updating dependency \"@rushstack/webpack-preserve-dynamic-require-plugin\" to `0.12.4`" + } + ] + } + }, { "version": "0.12.3", "tag": "@rushstack/package-extractor_v0.12.3", diff --git a/libraries/package-extractor/CHANGELOG.md b/libraries/package-extractor/CHANGELOG.md index 7e95810b324..c474b403b3e 100644 --- a/libraries/package-extractor/CHANGELOG.md +++ b/libraries/package-extractor/CHANGELOG.md @@ -1,6 +1,40 @@ # Change Log - @rushstack/package-extractor -This log was last generated on Fri, 20 Feb 2026 16:14:49 GMT and should not be manually modified. +This log was last generated on Wed, 25 Mar 2026 01:00:26 GMT and should not be manually modified. + +## 0.12.9 +Wed, 25 Mar 2026 01:00:26 GMT + +### Patches + +- preventing duplicate-copy conflicts across npm-packlist versions + +## 0.12.8 +Mon, 09 Mar 2026 15:14:08 GMT + +### Patches + +- Bump `minimatch` version from `10.2.1` to `10.2.3` to address CVE-2026-27903. + +## 0.12.7 +Wed, 25 Feb 2026 21:39:42 GMT + +_Version update only_ + +## 0.12.6 +Wed, 25 Feb 2026 00:34:29 GMT + +_Version update only_ + +## 0.12.5 +Tue, 24 Feb 2026 01:13:27 GMT + +_Version update only_ + +## 0.12.4 +Mon, 23 Feb 2026 00:42:21 GMT + +_Version update only_ ## 0.12.3 Fri, 20 Feb 2026 16:14:49 GMT diff --git a/libraries/package-extractor/config/api-extractor.json b/libraries/package-extractor/config/api-extractor.json index 5dbfda704f4..3dbb76c0e6f 100644 --- a/libraries/package-extractor/config/api-extractor.json +++ b/libraries/package-extractor/config/api-extractor.json @@ -1,19 +1,4 @@ { "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", - - "mainEntryPointFilePath": "/lib-dts/index.d.ts", - - "apiReport": { - "enabled": true, - "reportFolder": "../../../common/reviews/api" - }, - - "docModel": { - "enabled": true, - "apiJsonFilePath": "../../../common/temp/api/.api.json" - }, - - "dtsRollup": { - "enabled": true - } + "extends": "local-node-rig/profiles/default/config/api-extractor-base.json" } diff --git a/libraries/package-extractor/package.json b/libraries/package-extractor/package.json index 65e20fafb11..16fb4f3fbba 100644 --- a/libraries/package-extractor/package.json +++ b/libraries/package-extractor/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/package-extractor", - "version": "0.12.3", + "version": "0.12.9", "description": "A library for bundling selected files and dependencies into a deployable package.", "main": "./lib-commonjs/index.js", "module": "./lib-esm/index.js", @@ -46,7 +46,7 @@ "@rushstack/ts-command-line": "workspace:*", "ignore": "~5.1.6", "jszip": "~3.8.0", - "minimatch": "10.2.1", + "minimatch": "10.2.3", "npm-packlist": "~5.1.3", "semver": "~7.5.4" }, diff --git a/libraries/package-extractor/src/PackageExtractor.ts b/libraries/package-extractor/src/PackageExtractor.ts index 1170c315034..1e7c3602111 100644 --- a/libraries/package-extractor/src/PackageExtractor.ts +++ b/libraries/package-extractor/src/PackageExtractor.ts @@ -334,7 +334,20 @@ export class PackageExtractor { } ); const npmPackFiles: string[] = await walkerPromise; - return npmPackFiles; + + // npm-packlist@v5 (uses glob@v8) returns "./dist/index.js" for pattern: "./dist/index.js", + // whereas npm-packlist@v2 (uses glob@v7) returns an empty array. + // This may cause duplicate files in the result list, leading to copying conflicts + // in the AssetHandler.ts includeAssetAsync method. + // + // Temporary fix: normalize the file paths to be relative to the package root, and remove duplicates. + // + // TODO: A better long-term fix is to replace "npm-packlist" with "@pnpm/fs.packlist", notes here: + // https://github.com/microsoft/rushstack/pull/5720/changes#r2984873283 + const normalizedFiles: string[] = Array.from( + new Set(npmPackFiles.map((file) => path.posix.normalize(file))) + ); + return normalizedFiles; } /** diff --git a/libraries/package-extractor/src/test/PackageExtractor.test.ts b/libraries/package-extractor/src/test/PackageExtractor.test.ts index 3a9f14e5928..3f07a56594f 100644 --- a/libraries/package-extractor/src/test/PackageExtractor.test.ts +++ b/libraries/package-extractor/src/test/PackageExtractor.test.ts @@ -19,14 +19,17 @@ const project1PackageName: string = 'package-extractor-test-01'; const project2PackageName: string = 'package-extractor-test-02'; const project3PackageName: string = 'package-extractor-test-03'; const project4PackageName: string = 'package-extractor-test-04'; +const project5PackageName: string = 'package-extractor-test-05'; const project1RelativePath: string = path.join('build-tests', project1PackageName); const project2RelativePath: string = path.join('build-tests', project2PackageName); const project3RelativePath: string = path.join('build-tests', project3PackageName); const project4RelativePath: string = path.join('build-tests', project4PackageName); +const project5RelativePath: string = path.join('build-tests', project5PackageName); const project1Path: string = path.join(repoRoot, project1RelativePath); const project2Path: string = path.resolve(repoRoot, project2RelativePath); const project3Path: string = path.resolve(repoRoot, project3RelativePath); const project4Path: string = path.resolve(repoRoot, project4RelativePath); +const project5Path: string = path.resolve(repoRoot, project5RelativePath); function getDefaultProjectConfigurations(): IExtractorProjectConfiguration[] { return [ @@ -619,4 +622,13 @@ describe(PackageExtractor.name, () => { Sort.sortBy(metadata.projects, (x) => x.path); expect(metadata).toMatchSnapshot(); }); + + it('should normalize and remove duplicate file paths', async () => { + await FileSystem.writeFileAsync(path.join(project5Path, 'dist', 'index.js'), '', { + ensureFolderExists: true + }); + const result = await PackageExtractor.getPackageIncludedFilesAsync(project5Path); + // To make the test work on both Windows and *nix, need to normalize the paths to posix style + expect(result.map(path.posix.normalize)).toEqual(['dist/index.js', 'package.json']); + }); }); diff --git a/libraries/problem-matcher/.npmignore b/libraries/problem-matcher/.npmignore index bc349f9a4be..f7a40e10213 100644 --- a/libraries/problem-matcher/.npmignore +++ b/libraries/problem-matcher/.npmignore @@ -8,6 +8,7 @@ !/lib/** !/lib-*/** !/dist/** +!/includes/** !CHANGELOG.md !CHANGELOG.json @@ -20,6 +21,9 @@ /lib/**/test/ /lib-*/**/test/ *.test.js +*.test.[cm]js +*.test.d.ts +*.test.d.[cm]ts # NOTE: These don't need to be specified, because NPM includes them automatically. # diff --git a/libraries/problem-matcher/config/api-extractor.json b/libraries/problem-matcher/config/api-extractor.json index 5dbfda704f4..b53db1d0910 100644 --- a/libraries/problem-matcher/config/api-extractor.json +++ b/libraries/problem-matcher/config/api-extractor.json @@ -1,19 +1,4 @@ { "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", - - "mainEntryPointFilePath": "/lib-dts/index.d.ts", - - "apiReport": { - "enabled": true, - "reportFolder": "../../../common/reviews/api" - }, - - "docModel": { - "enabled": true, - "apiJsonFilePath": "../../../common/temp/api/.api.json" - }, - - "dtsRollup": { - "enabled": true - } + "extends": "decoupled-local-node-rig/profiles/default/config/api-extractor-base.json" } diff --git a/libraries/problem-matcher/package.json b/libraries/problem-matcher/package.json index 9a58458c135..e0562a8f034 100644 --- a/libraries/problem-matcher/package.json +++ b/libraries/problem-matcher/package.json @@ -39,7 +39,7 @@ "_phase:test": "heft run --only test -- --clean" }, "devDependencies": { - "@rushstack/heft": "1.2.0", + "@rushstack/heft": "1.2.7", "decoupled-local-node-rig": "workspace:*", "eslint": "~9.37.0" }, diff --git a/libraries/rig-package/.npmignore b/libraries/rig-package/.npmignore index bc349f9a4be..f7a40e10213 100644 --- a/libraries/rig-package/.npmignore +++ b/libraries/rig-package/.npmignore @@ -8,6 +8,7 @@ !/lib/** !/lib-*/** !/dist/** +!/includes/** !CHANGELOG.md !CHANGELOG.json @@ -20,6 +21,9 @@ /lib/**/test/ /lib-*/**/test/ *.test.js +*.test.[cm]js +*.test.d.ts +*.test.d.[cm]ts # NOTE: These don't need to be specified, because NPM includes them automatically. # diff --git a/libraries/rig-package/CHANGELOG.json b/libraries/rig-package/CHANGELOG.json index cbc27811248..c35a2f8f2f3 100644 --- a/libraries/rig-package/CHANGELOG.json +++ b/libraries/rig-package/CHANGELOG.json @@ -1,6 +1,18 @@ { "name": "@rushstack/rig-package", "entries": [ + { + "version": "0.7.2", + "tag": "@rushstack/rig-package_v0.7.2", + "date": "Wed, 25 Feb 2026 00:34:29 GMT", + "comments": { + "patch": [ + { + "comment": "Update `ajv` dependency to `~8.18.0` to mitigate CVE-2025-69873." + } + ] + } + }, { "version": "0.7.1", "tag": "@rushstack/rig-package_v0.7.1", diff --git a/libraries/rig-package/CHANGELOG.md b/libraries/rig-package/CHANGELOG.md index e5505865fbc..011a2e5a642 100644 --- a/libraries/rig-package/CHANGELOG.md +++ b/libraries/rig-package/CHANGELOG.md @@ -1,6 +1,13 @@ # Change Log - @rushstack/rig-package -This log was last generated on Fri, 20 Feb 2026 00:15:04 GMT and should not be manually modified. +This log was last generated on Wed, 25 Feb 2026 00:34:29 GMT and should not be manually modified. + +## 0.7.2 +Wed, 25 Feb 2026 00:34:29 GMT + +### Patches + +- Update `ajv` dependency to `~8.18.0` to mitigate CVE-2025-69873. ## 0.7.1 Fri, 20 Feb 2026 00:15:04 GMT diff --git a/libraries/rig-package/config/api-extractor.json b/libraries/rig-package/config/api-extractor.json index 5dbfda704f4..b53db1d0910 100644 --- a/libraries/rig-package/config/api-extractor.json +++ b/libraries/rig-package/config/api-extractor.json @@ -1,19 +1,4 @@ { "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", - - "mainEntryPointFilePath": "/lib-dts/index.d.ts", - - "apiReport": { - "enabled": true, - "reportFolder": "../../../common/reviews/api" - }, - - "docModel": { - "enabled": true, - "apiJsonFilePath": "../../../common/temp/api/.api.json" - }, - - "dtsRollup": { - "enabled": true - } + "extends": "decoupled-local-node-rig/profiles/default/config/api-extractor-base.json" } diff --git a/libraries/rig-package/package.json b/libraries/rig-package/package.json index ded6b122020..201c0e0be9b 100644 --- a/libraries/rig-package/package.json +++ b/libraries/rig-package/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/rig-package", - "version": "0.7.1", + "version": "0.7.2", "description": "A system for sharing tool configurations between projects without duplicating config files.", "main": "./lib-commonjs/index.js", "module": "./lib-esm/index.js", @@ -44,9 +44,9 @@ "strip-json-comments": "~3.1.1" }, "devDependencies": { - "@rushstack/heft": "1.2.0", + "@rushstack/heft": "1.2.7", "@types/resolve": "1.20.2", - "ajv": "~8.13.0", + "ajv": "~8.18.0", "decoupled-local-node-rig": "workspace:*", "eslint": "~9.37.0", "resolve": "~1.22.1" diff --git a/libraries/rush-lib/.npmignore b/libraries/rush-lib/.npmignore index 280c047d5c9..b01dc3a04d8 100644 --- a/libraries/rush-lib/.npmignore +++ b/libraries/rush-lib/.npmignore @@ -8,6 +8,7 @@ !/lib/** !/lib-*/** !/dist/** +!/includes/** !CHANGELOG.md !CHANGELOG.json @@ -20,7 +21,9 @@ /lib/**/test/ /lib-*/**/test/ *.test.js -*.exports.json +*.test.[cm]js +*.test.d.ts +*.test.d.[cm]ts # NOTE: These don't need to be specified, because NPM includes them automatically. # @@ -32,8 +35,13 @@ # DO NOT MODIFY ABOVE THIS LINE! Add any project-specific overrides below. # --------------------------------------------------------------------------- -!/assets/** +# These are generated during build and then used by rush-sdk. They are not useful +# to external consumers. +*.exports.json # Exclude intermediate build outputs (not shipped) /lib-intermediate-*/** /lib-commonjs/**/*.exports.json + +# Include assets used by `rush init` +!/assets/** diff --git a/libraries/rush-lib/config/api-extractor.json b/libraries/rush-lib/config/api-extractor.json index 5dbfda704f4..3dbb76c0e6f 100644 --- a/libraries/rush-lib/config/api-extractor.json +++ b/libraries/rush-lib/config/api-extractor.json @@ -1,19 +1,4 @@ { "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", - - "mainEntryPointFilePath": "/lib-dts/index.d.ts", - - "apiReport": { - "enabled": true, - "reportFolder": "../../../common/reviews/api" - }, - - "docModel": { - "enabled": true, - "apiJsonFilePath": "../../../common/temp/api/.api.json" - }, - - "dtsRollup": { - "enabled": true - } + "extends": "local-node-rig/profiles/default/config/api-extractor-base.json" } diff --git a/libraries/rush-lib/package.json b/libraries/rush-lib/package.json index 88095cca26f..e5dabfd9e11 100644 --- a/libraries/rush-lib/package.json +++ b/libraries/rush-lib/package.json @@ -1,6 +1,6 @@ { "name": "@microsoft/rush-lib", - "version": "5.169.2", + "version": "5.172.1", "description": "A library for writing scripts that interact with the Rush tool", "repository": { "type": "git", diff --git a/libraries/rush-lib/src/api/CommandLineConfiguration.ts b/libraries/rush-lib/src/api/CommandLineConfiguration.ts index 5fb463764dc..1f1db4984a9 100644 --- a/libraries/rush-lib/src/api/CommandLineConfiguration.ts +++ b/libraries/rush-lib/src/api/CommandLineConfiguration.ts @@ -127,7 +127,14 @@ export interface IPhasedCommandConfig extends IPhasedCommandWithoutPhasesJson, I alwaysInstall: boolean | undefined; } -export interface IGlobalCommandConfig extends IGlobalCommandJson, ICommandWithParameters {} +export interface IGlobalCommandConfig extends IGlobalCommandJson, ICommandWithParameters { + /** + * If true, this command was declared with commandKind "globalPlugin" and its implementation + * is provided by a Rush plugin via the `runGlobalCustomCommand` hook. There is no shell + * command to execute. + */ + providedByPlugin: boolean; +} export type Command = IGlobalCommandConfig | IPhasedCommandConfig; @@ -408,6 +415,20 @@ export class CommandLineConfiguration { case RushConstants.globalCommandKind: { normalizedCommand = { ...command, + providedByPlugin: false, + associatedParameters: new Set() + }; + break; + } + + case RushConstants.globalPluginCommandKind: { + // Normalize globalPlugin commands to global commands with an empty shellCommand, + // similar to how bulk commands are converted to phased commands. + normalizedCommand = { + ...command, + commandKind: RushConstants.globalCommandKind, + shellCommand: '', + providedByPlugin: true, associatedParameters: new Set() }; break; @@ -694,6 +715,17 @@ export class CommandLineConfiguration { this._applyBuildCommandDefaults(commandLineJson); CommandLineConfiguration._jsonSchema.validateObject(commandLineJson, jsonFilePath); + + // Validate that globalPlugin commands are not used in the repo's command-line.json + for (const { commandKind, name } of commandLineJson.commands) { + if (commandKind === RushConstants.globalPluginCommandKind) { + throw new Error( + `${RushConstants.commandLineFilename} defines a command "${name}" using ` + + `the command kind "${RushConstants.globalPluginCommandKind}". This command kind can only ` + + `be used in command-line.json files provided by Rush plugins.` + ); + } + } } } diff --git a/libraries/rush-lib/src/api/CommandLineJson.ts b/libraries/rush-lib/src/api/CommandLineJson.ts index e6507e49633..1ae70514798 100644 --- a/libraries/rush-lib/src/api/CommandLineJson.ts +++ b/libraries/rush-lib/src/api/CommandLineJson.ts @@ -5,7 +5,7 @@ * "baseCommand" from command-line.schema.json */ export interface IBaseCommandJson { - commandKind: 'bulk' | 'global' | 'phased'; + commandKind: 'bulk' | 'global' | 'globalPlugin' | 'phased'; name: string; summary: string; /** @@ -66,7 +66,20 @@ export interface IGlobalCommandJson extends IBaseCommandJson { shellCommand: string; } -export type CommandJson = IBulkCommandJson | IGlobalCommandJson | IPhasedCommandJson; +/** + * "globalPluginCommand" from command-line.schema.json. + * A global command whose implementation is provided entirely by a Rush plugin. + * This command kind can only be used in command-line.json files provided by Rush plugins. + */ +export interface IGlobalPluginCommandJson extends IBaseCommandJson { + commandKind: 'globalPlugin'; +} + +export type CommandJson = + | IBulkCommandJson + | IGlobalCommandJson + | IGlobalPluginCommandJson + | IPhasedCommandJson; /** * The dependencies of a phase. diff --git a/libraries/rush-lib/src/api/CommonVersionsConfiguration.ts b/libraries/rush-lib/src/api/CommonVersionsConfiguration.ts index 0996bbc5a0f..b93cd7b59cf 100644 --- a/libraries/rush-lib/src/api/CommonVersionsConfiguration.ts +++ b/libraries/rush-lib/src/api/CommonVersionsConfiguration.ts @@ -186,17 +186,42 @@ export class CommonVersionsConfiguration { } /** - * Loads the common-versions.json data from the specified file path. - * If the file has not been created yet, then an empty object is returned. + * @deprecated Use {@link CommonVersionsConfiguration.loadFromFileAsync} method instead. */ public static loadFromFile( jsonFilePath: string, rushConfiguration?: RushConfiguration ): CommonVersionsConfiguration { let commonVersionsJson: ICommonVersionsJson | undefined = undefined; - - if (FileSystem.exists(jsonFilePath)) { + try { commonVersionsJson = JsonFile.loadAndValidate(jsonFilePath, CommonVersionsConfiguration._jsonSchema); + } catch (error) { + if (!FileSystem.isNotExistError(error)) { + throw error; + } + } + + return new CommonVersionsConfiguration(commonVersionsJson, jsonFilePath, rushConfiguration); + } + + /** + * Loads the common-versions.json data from the specified file path. + * If the file has not been created yet, then an empty object is returned. + */ + public static async loadFromFileAsync( + jsonFilePath: string, + rushConfiguration?: RushConfiguration + ): Promise { + let commonVersionsJson: ICommonVersionsJson | undefined = undefined; + try { + commonVersionsJson = await JsonFile.loadAndValidateAsync( + jsonFilePath, + CommonVersionsConfiguration._jsonSchema + ); + } catch (error) { + if (!FileSystem.isNotExistError(error)) { + throw error; + } } return new CommonVersionsConfiguration(commonVersionsJson, jsonFilePath, rushConfiguration); @@ -242,7 +267,7 @@ export class CommonVersionsConfiguration { } /** - * Writes the "common-versions.json" file to disk, using the filename that was passed to loadFromFile(). + * @deprecated Use {@link CommonVersionsConfiguration.saveAsync} method instead. */ public save(): boolean { if (this._modified) { @@ -257,6 +282,22 @@ export class CommonVersionsConfiguration { return false; } + /** + * Writes the "common-versions.json" file to disk, using the filename that was passed to loadFromFile(). + */ + public async saveAsync(): Promise { + if (this._modified) { + await JsonFile.saveAsync(this._serialize(), this.filePath, { + updateExistingFile: true, + ignoreUndefinedValues: true + }); + this._modified = false; + return true; + } + + return false; + } + /** * Returns preferredVersions. */ diff --git a/libraries/rush-lib/src/api/EnvironmentConfiguration.ts b/libraries/rush-lib/src/api/EnvironmentConfiguration.ts index f7a00179197..de8c8d2d2ff 100644 --- a/libraries/rush-lib/src/api/EnvironmentConfiguration.ts +++ b/libraries/rush-lib/src/api/EnvironmentConfiguration.ts @@ -245,7 +245,14 @@ export const EnvironmentVariableNames = { * Other lifecycle scripts should not make assumptions about Rush's command line syntax * if Rush did not explicitly pass along command-line parameters to their process. */ - RUSH_INVOKED_ARGS: 'RUSH_INVOKED_ARGS' + RUSH_INVOKED_ARGS: 'RUSH_INVOKED_ARGS', + + /** + * When set to `1` or `true`, this environment variable is equivalent to passing the `--quiet` flag + * to `rush`, `rushx`, and `install-run-rush.ts`. It suppresses informational startup messages + * while preserving error output. + */ + RUSH_QUIET_MODE: 'RUSH_QUIET_MODE' } as const; /** @@ -293,6 +300,8 @@ export class EnvironmentConfiguration { private static _tarBinaryPath: string | undefined; + private static _quietMode: boolean = false; + /** * If true, the environment configuration has been validated and initialized. */ @@ -456,6 +465,15 @@ export class EnvironmentConfiguration { return EnvironmentConfiguration._tarBinaryPath; } + /** + * If `true`, Rush will suppress informational startup messages, equivalent to passing `--quiet`. + * See {@link EnvironmentVariableNames.RUSH_QUIET_MODE} + */ + public static get quietMode(): boolean { + EnvironmentConfiguration._ensureValidated(); + return EnvironmentConfiguration._quietMode; + } + /** * The front-end RushVersionSelector relies on `RUSH_GLOBAL_FOLDER`, so its value must be read before * `EnvironmentConfiguration` is initialized (and actually before the correct version of `EnvironmentConfiguration` @@ -606,6 +624,20 @@ export class EnvironmentConfiguration { break; } + case EnvironmentVariableNames.RUSH_QUIET_MODE: { + // Accept both "true"/"false" string values and the standard "1"/"0" values + if (value === 'true' || value === 'false') { + EnvironmentConfiguration._quietMode = value === 'true'; + } else { + EnvironmentConfiguration._quietMode = + EnvironmentConfiguration.parseBooleanEnvironmentVariable( + EnvironmentVariableNames.RUSH_QUIET_MODE, + value + ) ?? false; + } + break; + } + case EnvironmentVariableNames.RUSH_PARALLELISM: case EnvironmentVariableNames.RUSH_PREVIEW_VERSION: case EnvironmentVariableNames.RUSH_VARIANT: @@ -661,7 +693,9 @@ export class EnvironmentConfiguration { */ public static reset(): void { EnvironmentConfiguration._rushTempFolderOverride = undefined; - + EnvironmentConfiguration._quietMode = false; + EnvironmentConfiguration._gitBinaryPath = undefined; + EnvironmentConfiguration._tarBinaryPath = undefined; EnvironmentConfiguration._hasBeenValidated = false; } diff --git a/libraries/rush-lib/src/api/PackageJsonEditor.ts b/libraries/rush-lib/src/api/PackageJsonEditor.ts index 27106a38ad1..c9baeb73e0f 100644 --- a/libraries/rush-lib/src/api/PackageJsonEditor.ts +++ b/libraries/rush-lib/src/api/PackageJsonEditor.ts @@ -97,97 +97,89 @@ export class PackageJsonEditor { this._sourceData = data; this._modified = false; - this._dependencies = new Map(); - this._devDependencies = new Map(); - this._resolutions = new Map(); - this._dependenciesMeta = new Map(); - - const dependencies: { [key: string]: string } = data.dependencies || {}; - const optionalDependencies: { [key: string]: string } = data.optionalDependencies || {}; - const peerDependencies: { [key: string]: string } = data.peerDependencies || {}; - - const devDependencies: { [key: string]: string } = data.devDependencies || {}; - const resolutions: { [key: string]: string } = data.resolutions || {}; - - const dependenciesMeta: { [key: string]: { [key: string]: boolean } } = data.dependenciesMeta || {}; + const { + dependencies = {}, + optionalDependencies = {}, + peerDependencies = {}, + devDependencies = {}, + resolutions = {}, + dependenciesMeta = {} + } = data; const _onChange: () => void = this._onChange.bind(this); + const optionalDependenciesSet: Set = new Set(Object.keys(optionalDependencies)); + const peerDependenciesSet: Set = new Set(Object.keys(peerDependencies)); try { - Object.keys(dependencies || {}).forEach((packageName: string) => { - if (Object.prototype.hasOwnProperty.call(optionalDependencies, packageName)) { - throw new Error( - `The package "${packageName}" cannot be listed in both ` + - `"dependencies" and "optionalDependencies"` - ); - } - if (Object.prototype.hasOwnProperty.call(peerDependencies, packageName)) { - throw new Error( - `The package "${packageName}" cannot be listed in both "dependencies" and "peerDependencies"` - ); - } + const dependenciesMapEntries: [string, PackageJsonDependency][] = Object.entries(dependencies).map( + ([packageName, version]: [string, string]) => { + if (optionalDependenciesSet.has(packageName)) { + throw new Error( + `The package "${packageName}" cannot be listed in both ` + + `"dependencies" and "optionalDependencies"` + ); + } + if (peerDependenciesSet.has(packageName)) { + throw new Error( + `The package "${packageName}" cannot be listed in both "dependencies" and "peerDependencies"` + ); + } - this._dependencies.set( - packageName, - new PackageJsonDependency(packageName, dependencies[packageName], DependencyType.Regular, _onChange) - ); - }); + return [ + packageName, + new PackageJsonDependency(packageName, version, DependencyType.Regular, _onChange) + ]; + } + ); - Object.keys(optionalDependencies || {}).forEach((packageName: string) => { - if (Object.prototype.hasOwnProperty.call(peerDependencies, packageName)) { + const optionalDependenciesMapEntries: [string, PackageJsonDependency][] = Object.entries( + optionalDependencies + ).map(([packageName, version]) => { + if (peerDependenciesSet.has(packageName)) { throw new Error( `The package "${packageName}" cannot be listed in both ` + `"optionalDependencies" and "peerDependencies"` ); } - this._dependencies.set( - packageName, - new PackageJsonDependency( - packageName, - optionalDependencies[packageName], - DependencyType.Optional, - _onChange - ) - ); - }); - - Object.keys(peerDependencies || {}).forEach((packageName: string) => { - this._dependencies.set( + return [ packageName, - new PackageJsonDependency( - packageName, - peerDependencies[packageName], - DependencyType.Peer, - _onChange - ) - ); + new PackageJsonDependency(packageName, version, DependencyType.Optional, _onChange) + ]; }); - Object.keys(devDependencies || {}).forEach((packageName: string) => { - this._devDependencies.set( + const peerDependenciesMapEntries: [string, PackageJsonDependency][] = Object.entries( + peerDependencies + ).map(([packageName, version]) => [ + packageName, + new PackageJsonDependency(packageName, version, DependencyType.Peer, _onChange) + ]); + + this._dependencies = new Map([ + ...dependenciesMapEntries, + ...optionalDependenciesMapEntries, + ...peerDependenciesMapEntries + ]); + + this._devDependencies = new Map( + Object.entries(devDependencies).map(([packageName, version]) => [ packageName, - new PackageJsonDependency(packageName, devDependencies[packageName], DependencyType.Dev, _onChange) - ); - }); + new PackageJsonDependency(packageName, version, DependencyType.Dev, _onChange) + ]) + ); - Object.keys(resolutions || {}).forEach((packageName: string) => { - this._resolutions.set( + this._resolutions = new Map( + Object.entries(resolutions).map(([packageName, version]) => [ packageName, - new PackageJsonDependency( - packageName, - resolutions[packageName], - DependencyType.YarnResolutions, - _onChange - ) - ); - }); + new PackageJsonDependency(packageName, version, DependencyType.YarnResolutions, _onChange) + ]) + ); - Object.keys(dependenciesMeta || {}).forEach((packageName: string) => { - this._dependenciesMeta.set( + this._dependenciesMeta = new Map( + Object.entries(dependenciesMeta).map(([packageName, { injected = false }]) => [ packageName, - new PackageJsonDependencyMeta(packageName, dependenciesMeta[packageName].injected, _onChange) - ); - }); + new PackageJsonDependencyMeta(packageName, injected, _onChange) + ]) + ); // (Do not sort this._resolutions because order may be significant; the RFC is unclear about that.) Sort.sortMapKeys(this._dependencies); @@ -197,8 +189,17 @@ export class PackageJsonEditor { } } + /** + * @deprecated Use {@link PackageJsonEditor.loadAsync} method instead. + */ public static load(filePath: string): PackageJsonEditor { - return new PackageJsonEditor(filePath, JsonFile.load(filePath)); + const packageJson: IPackageJson = JsonFile.load(filePath); + return new PackageJsonEditor(filePath, packageJson); + } + + public static async loadAsync(filePath: string): Promise { + const packageJson: IPackageJson = await JsonFile.loadAsync(filePath); + return new PackageJsonEditor(filePath, packageJson); } public static fromObject(object: IPackageJson, filename: string): PackageJsonEditor { @@ -270,17 +271,24 @@ export class PackageJsonEditor { switch (dependencyType) { case DependencyType.Regular: case DependencyType.Optional: - case DependencyType.Peer: + case DependencyType.Peer: { this._dependencies.set(packageName, dependency); break; - case DependencyType.Dev: + } + + case DependencyType.Dev: { this._devDependencies.set(packageName, dependency); break; - case DependencyType.YarnResolutions: + } + + case DependencyType.YarnResolutions: { this._resolutions.set(packageName, dependency); break; - default: + } + + default: { throw new InternalError('Unsupported DependencyType'); + } } this._modified = true; @@ -290,22 +298,32 @@ export class PackageJsonEditor { switch (dependencyType) { case DependencyType.Regular: case DependencyType.Optional: - case DependencyType.Peer: + case DependencyType.Peer: { this._dependencies.delete(packageName); break; - case DependencyType.Dev: + } + + case DependencyType.Dev: { this._devDependencies.delete(packageName); break; - case DependencyType.YarnResolutions: + } + + case DependencyType.YarnResolutions: { this._resolutions.delete(packageName); break; - default: + } + + default: { throw new InternalError('Unsupported DependencyType'); + } } this._modified = true; } + /** + * @deprecated Use {@link PackageJsonEditor.saveIfModifiedAsync} method instead. + */ public saveIfModified(): boolean { if (this._modified) { this._modified = false; @@ -316,6 +334,21 @@ export class PackageJsonEditor { }); return true; } + + return false; + } + + public async saveIfModifiedAsync(): Promise { + if (this._modified) { + this._modified = false; + this._sourceData = this._normalize(this._sourceData); + await JsonFile.saveAsync(this._sourceData, this.filePath, { + updateExistingFile: true, + jsonSyntax: JsonSyntax.Strict + }); + return true; + } + return false; } @@ -353,53 +386,64 @@ export class PackageJsonEditor { const keys: string[] = [...this._dependencies.keys()].sort(); for (const packageName of keys) { - const dependency: PackageJsonDependency = this._dependencies.get(packageName)!; + const { dependencyType, name, version }: PackageJsonDependency = this._dependencies.get(packageName)!; - switch (dependency.dependencyType) { - case DependencyType.Regular: + switch (dependencyType) { + case DependencyType.Regular: { if (!normalizedData.dependencies) { normalizedData.dependencies = {}; } - normalizedData.dependencies[dependency.name] = dependency.version; + + normalizedData.dependencies[name] = version; break; - case DependencyType.Optional: + } + + case DependencyType.Optional: { if (!normalizedData.optionalDependencies) { normalizedData.optionalDependencies = {}; } - normalizedData.optionalDependencies[dependency.name] = dependency.version; + + normalizedData.optionalDependencies[name] = version; break; - case DependencyType.Peer: + } + + case DependencyType.Peer: { if (!normalizedData.peerDependencies) { normalizedData.peerDependencies = {}; } - normalizedData.peerDependencies[dependency.name] = dependency.version; + + normalizedData.peerDependencies[name] = version; break; + } + case DependencyType.Dev: // uses this._devDependencies instead case DependencyType.YarnResolutions: // uses this._resolutions instead - default: + default: { throw new InternalError('Unsupported DependencyType'); + } } } const devDependenciesKeys: string[] = [...this._devDependencies.keys()].sort(); - for (const packageName of devDependenciesKeys) { - const dependency: PackageJsonDependency = this._devDependencies.get(packageName)!; + const { name, version }: PackageJsonDependency = this._devDependencies.get(packageName)!; if (!normalizedData.devDependencies) { normalizedData.devDependencies = {}; } - normalizedData.devDependencies[dependency.name] = dependency.version; + + normalizedData.devDependencies[name] = version; } // (Do not sort this._resolutions because order may be significant; the RFC is unclear about that.) for (const packageName of this._resolutions.keys()) { - const dependency: PackageJsonDependency = this._resolutions.get(packageName)!; + const { name, version }: PackageJsonDependency = this._resolutions.get(packageName)!; if (!normalizedData.resolutions) { normalizedData.resolutions = {}; } - normalizedData.resolutions[dependency.name] = dependency.version; + + normalizedData.resolutions[name] = version; } return normalizedData; diff --git a/libraries/rush-lib/src/api/RushProjectConfiguration.ts b/libraries/rush-lib/src/api/RushProjectConfiguration.ts index 528680feb50..9a533984fa1 100644 --- a/libraries/rush-lib/src/api/RushProjectConfiguration.ts +++ b/libraries/rush-lib/src/api/RushProjectConfiguration.ts @@ -160,7 +160,7 @@ export interface IOperationSettings { * How many concurrency units this operation should take up during execution. The maximum concurrent units is * determined by the -p flag. */ - weight?: number; + weight?: number | `${number}%`; /** * If true, this operation can use cobuilds for orchestration without restoring build cache entries. diff --git a/libraries/rush-lib/src/api/SaveCallbackPackageJsonEditor.ts b/libraries/rush-lib/src/api/SaveCallbackPackageJsonEditor.ts index 1462d824548..5b755212eab 100644 --- a/libraries/rush-lib/src/api/SaveCallbackPackageJsonEditor.ts +++ b/libraries/rush-lib/src/api/SaveCallbackPackageJsonEditor.ts @@ -24,8 +24,8 @@ export class SaveCallbackPackageJsonEditor extends PackageJsonEditor { return new SaveCallbackPackageJsonEditor(options); } - public saveIfModified(): boolean { - const modified: boolean = super.saveIfModified(); + public async saveIfModifiedAsync(): Promise { + const modified: boolean = await super.saveIfModifiedAsync(); if (this._onSaved) { this._onSaved(this.saveToObject()); } diff --git a/libraries/rush-lib/src/api/Subspace.ts b/libraries/rush-lib/src/api/Subspace.ts index 624b1a33bd6..7f2feddb836 100644 --- a/libraries/rush-lib/src/api/Subspace.ts +++ b/libraries/rush-lib/src/api/Subspace.ts @@ -325,6 +325,7 @@ export class Subspace { this._rushConfiguration ); } + return this._commonVersionsConfiguration; } diff --git a/libraries/rush-lib/src/api/VersionPolicy.ts b/libraries/rush-lib/src/api/VersionPolicy.ts index f2df9deaf58..b738ba487d0 100644 --- a/libraries/rush-lib/src/api/VersionPolicy.ts +++ b/libraries/rush-lib/src/api/VersionPolicy.ts @@ -52,6 +52,66 @@ export enum VersionPolicyDefinitionName { 'individualVersion' } +/** + * Updates the dependencies in the package json editor to values used for publishing, if needed. + * + * @returns the updated package json editor if the version format for publish is 'exact', otherwise undefined. + */ +function updateDependenciesBeforePublish( + packageName: string, + configuration: RushConfiguration, + versionFormatForPublish: VersionFormatForPublish +): PackageJsonEditor | undefined { + if (versionFormatForPublish === 'exact') { + const project: RushConfigurationProject = configuration.getProjectByName(packageName)!; + + const packageJsonEditor: PackageJsonEditor = project.packageJsonEditor; + + for (const dependency of packageJsonEditor.dependencyList) { + const rushDependencyProject: RushConfigurationProject | undefined = configuration.getProjectByName( + dependency.name + ); + + if (rushDependencyProject) { + const dependencyVersion: string = rushDependencyProject.packageJson.version; + + dependency.setVersion(dependencyVersion); + } + } + + return packageJsonEditor; + } +} + +/** + * Updates the dependencies in the package json editor to values used for checked-in source, if needed. + * + * @returns the updated package json editor if the version format for commit is 'wildcard', otherwise undefined. + */ +function updateDependenciesBeforeCommit( + packageName: string, + configuration: RushConfiguration, + versionFormatForCommit: VersionFormatForCommit +): PackageJsonEditor | undefined { + if (versionFormatForCommit === 'wildcard') { + const project: RushConfigurationProject = configuration.getProjectByName(packageName)!; + + const packageJsonEditor: PackageJsonEditor = project.packageJsonEditor; + + for (const dependency of packageJsonEditor.dependencyList) { + const rushDependencyProject: RushConfigurationProject | undefined = configuration.getProjectByName( + dependency.name + ); + + if (rushDependencyProject) { + dependency.setVersion('*'); + } + } + + return packageJsonEditor; + } +} + /** * This is the base class for version policy which controls how versions get bumped. * @public @@ -161,53 +221,63 @@ export abstract class VersionPolicy { public abstract validate(versionString: string, packageName: string): void; /** - * Tells the version policy to modify any dependencies in the target package - * to values used for publishing. + * @deprecated Use {@link VersionPolicy.setDependenciesBeforePublishAsync} method instead. */ public setDependenciesBeforePublish(packageName: string, configuration: RushConfiguration): void { - if (this._versionFormatForPublish === 'exact') { - const project: RushConfigurationProject = configuration.getProjectByName(packageName)!; + const packageJsonEditor: PackageJsonEditor | undefined = updateDependenciesBeforePublish( + packageName, + configuration, + this._versionFormatForPublish + ); - const packageJsonEditor: PackageJsonEditor = project.packageJsonEditor; + packageJsonEditor?.saveIfModified(); + } - for (const dependency of packageJsonEditor.dependencyList) { - const rushDependencyProject: RushConfigurationProject | undefined = configuration.getProjectByName( - dependency.name - ); + /** + * Tells the version policy to modify any dependencies in the target package + * to values used for publishing. + */ + public async setDependenciesBeforePublishAsync( + packageName: string, + configuration: RushConfiguration + ): Promise { + const packageJsonEditor: PackageJsonEditor | undefined = updateDependenciesBeforePublish( + packageName, + configuration, + this._versionFormatForPublish + ); - if (rushDependencyProject) { - const dependencyVersion: string = rushDependencyProject.packageJson.version; + await packageJsonEditor?.saveIfModifiedAsync(); + } - dependency.setVersion(dependencyVersion); - } - } + /** + * @deprecated Use {@link VersionPolicy.setDependenciesBeforeCommitAsync} method instead. + */ + public setDependenciesBeforeCommit(packageName: string, configuration: RushConfiguration): void { + const packageJsonEditor: PackageJsonEditor | undefined = updateDependenciesBeforeCommit( + packageName, + configuration, + this._versionFormatForCommit + ); - packageJsonEditor.saveIfModified(); - } + packageJsonEditor?.saveIfModified(); } /** * Tells the version policy to modify any dependencies in the target package * to values used for checked-in source. */ - public setDependenciesBeforeCommit(packageName: string, configuration: RushConfiguration): void { - if (this._versionFormatForCommit === 'wildcard') { - const project: RushConfigurationProject = configuration.getProjectByName(packageName)!; - - const packageJsonEditor: PackageJsonEditor = project.packageJsonEditor; - - for (const dependency of packageJsonEditor.dependencyList) { - const rushDependencyProject: RushConfigurationProject | undefined = configuration.getProjectByName( - dependency.name - ); - - if (rushDependencyProject) { - dependency.setVersion('*'); - } - } + public async setDependenciesBeforeCommitAsync( + packageName: string, + configuration: RushConfiguration + ): Promise { + const packageJsonEditor: PackageJsonEditor | undefined = updateDependenciesBeforeCommit( + packageName, + configuration, + this._versionFormatForCommit + ); - packageJsonEditor.saveIfModified(); - } + await packageJsonEditor?.saveIfModifiedAsync(); } } diff --git a/libraries/rush-lib/src/api/test/CommonVersionsConfiguration.test.ts b/libraries/rush-lib/src/api/test/CommonVersionsConfiguration.test.ts index 6e6b2553cd9..ec42d471194 100644 --- a/libraries/rush-lib/src/api/test/CommonVersionsConfiguration.test.ts +++ b/libraries/rush-lib/src/api/test/CommonVersionsConfiguration.test.ts @@ -5,9 +5,9 @@ import { CommonVersionsConfiguration } from '../CommonVersionsConfiguration'; import type { RushConfiguration } from '../RushConfiguration'; describe(CommonVersionsConfiguration.name, () => { - it('can load the file', () => { + it('can load the file', async () => { const filename: string = `${__dirname}/jsonFiles/common-versions.json`; - const configuration: CommonVersionsConfiguration = CommonVersionsConfiguration.loadFromFile( + const configuration: CommonVersionsConfiguration = await CommonVersionsConfiguration.loadFromFileAsync( filename, {} as RushConfiguration ); @@ -16,33 +16,39 @@ describe(CommonVersionsConfiguration.name, () => { expect(configuration.allowedAlternativeVersions.get('library-3')).toEqual(['^1.2.3']); }); - it('gets `ensureConsistentVersions` from the file if it provides that value', () => { + it('gets `ensureConsistentVersions` from the file if it provides that value', async () => { const filename: string = `${__dirname}/jsonFiles/common-versions-with-ensureConsistentVersionsTrue.json`; - const configuration: CommonVersionsConfiguration = CommonVersionsConfiguration.loadFromFile(filename, { - _ensureConsistentVersionsJsonValue: undefined, - ensureConsistentVersions: false - } as RushConfiguration); + const configuration: CommonVersionsConfiguration = await CommonVersionsConfiguration.loadFromFileAsync( + filename, + { + _ensureConsistentVersionsJsonValue: undefined, + ensureConsistentVersions: false + } as RushConfiguration + ); expect(configuration.ensureConsistentVersions).toBe(true); }); - it("gets `ensureConsistentVersions` from the rush configuration if common-versions.json doesn't provide that value", () => { + it("gets `ensureConsistentVersions` from the rush configuration if common-versions.json doesn't provide that value", async () => { const filename: string = `${__dirname}/jsonFiles/common-versions.json`; - const configuration: CommonVersionsConfiguration = CommonVersionsConfiguration.loadFromFile(filename, { - _ensureConsistentVersionsJsonValue: false, - ensureConsistentVersions: false - } as RushConfiguration); + const configuration: CommonVersionsConfiguration = await CommonVersionsConfiguration.loadFromFileAsync( + filename, + { + _ensureConsistentVersionsJsonValue: false, + ensureConsistentVersions: false + } as RushConfiguration + ); expect(configuration.ensureConsistentVersions).toBe(false); }); - it('Does not allow `ensureConsistentVersions` to be set in both rush.json and common-versions.json', () => { + it('Does not allow `ensureConsistentVersions` to be set in both rush.json and common-versions.json', async () => { const filename: string = `${__dirname}/jsonFiles/common-versions-with-ensureConsistentVersionsTrue.json`; - expect(() => - CommonVersionsConfiguration.loadFromFile(filename, { + await expect(() => + CommonVersionsConfiguration.loadFromFileAsync(filename, { _ensureConsistentVersionsJsonValue: false, ensureConsistentVersions: false } as RushConfiguration) - ).toThrowErrorMatchingSnapshot(); + ).rejects.toThrowErrorMatchingSnapshot(); }); }); diff --git a/libraries/rush-lib/src/api/test/RushConfiguration.test.ts b/libraries/rush-lib/src/api/test/RushConfiguration.test.ts index f7513eb4a01..6b90c8c2a10 100644 --- a/libraries/rush-lib/src/api/test/RushConfiguration.test.ts +++ b/libraries/rush-lib/src/api/test/RushConfiguration.test.ts @@ -324,7 +324,7 @@ describe(RushConfiguration.name, () => { 'dependencyProjects before' ); project.packageJsonEditor.addOrUpdateDependency('project2', '1.0.0', DependencyType.Dev); - project.packageJsonEditor.saveIfModified(); + await project.packageJsonEditor.saveIfModifiedAsync(); expect(project.packageJson.devDependencies).toMatchSnapshot('devDependencies after'); expect(Array.from(project.dependencyProjects.values()).map((x) => x.packageName)).toMatchSnapshot( 'dependencyProjects after' diff --git a/libraries/rush-lib/src/api/test/VersionMismatchFinder.test.ts b/libraries/rush-lib/src/api/test/VersionMismatchFinder.test.ts index b2a661d23ce..a9ea220ec72 100644 --- a/libraries/rush-lib/src/api/test/VersionMismatchFinder.test.ts +++ b/libraries/rush-lib/src/api/test/VersionMismatchFinder.test.ts @@ -415,7 +415,7 @@ describe(VersionMismatchFinder.name, () => { expect(mismatchFinder.getMismatches()).toHaveLength(0); }); - it('handles the common-versions.json file correctly', () => { + it('handles the common-versions.json file correctly', async () => { const projectA: VersionMismatchFinderEntity = new VersionMismatchFinderProject({ packageName: 'A', packageJsonEditor: PackageJsonEditor.fromObject( @@ -429,8 +429,10 @@ describe(VersionMismatchFinder.name, () => { ), decoupledLocalDependencies: new Set() } as any as RushConfigurationProject); + const commonVersionsConfiguration: CommonVersionsConfiguration = + await CommonVersionsConfiguration.loadFromFileAsync(`${__dirname}/jsonFiles/common-versions.json`); const projectB: VersionMismatchFinderEntity = new VersionMismatchFinderCommonVersions( - CommonVersionsConfiguration.loadFromFile(`${__dirname}/jsonFiles/common-versions.json`) + commonVersionsConfiguration ); const mismatchFinder: VersionMismatchFinder = new VersionMismatchFinder([projectA, projectB]); diff --git a/libraries/rush-lib/src/cli/RushCommandLineParser.ts b/libraries/rush-lib/src/cli/RushCommandLineParser.ts index 7828eb1e90d..76d97ab90bd 100644 --- a/libraries/rush-lib/src/cli/RushCommandLineParser.ts +++ b/libraries/rush-lib/src/cli/RushCommandLineParser.ts @@ -63,6 +63,7 @@ import { InitSubspaceAction } from './actions/InitSubspaceAction'; import { RushAlerts } from '../utilities/RushAlerts'; import { initializeDotEnv } from '../logic/dotenv'; import { measureAsyncFn } from '../utilities/performance'; +import { EnvironmentVariableNames } from '../api/EnvironmentConfiguration'; /** * Options for `RushCommandLineParser`. @@ -220,6 +221,12 @@ export class RushCommandLineParser extends CommandLineParser { } } + const quietModeValue: string | undefined = + process.env[EnvironmentVariableNames.RUSH_QUIET_MODE]; + if (quietModeValue === '1' || quietModeValue === 'true') { + return true; + } + return false; } @@ -435,12 +442,11 @@ export class RushCommandLineParser extends CommandLineParser { commandLineConfiguration: CommandLineConfiguration, command: IGlobalCommandConfig ): void { - if ( - command.name === RushConstants.buildCommandName || - command.name === RushConstants.rebuildCommandName - ) { + const { name, shellCommand, autoinstallerName, providedByPlugin } = command; + + if (name === RushConstants.buildCommandName || name === RushConstants.rebuildCommandName) { throw new Error( - `${RushConstants.commandLineFilename} defines a command "${command.name}" using ` + + `${RushConstants.commandLineFilename} defines a command "${name}" using ` + `the command kind "${RushConstants.globalCommandKind}". This command can only be designated as a command ` + `kind "${RushConstants.bulkCommandKind}" or "${RushConstants.phasedCommandKind}".` ); @@ -453,8 +459,9 @@ export class RushCommandLineParser extends CommandLineParser { new GlobalScriptAction({ ...sharedCommandOptions, - shellCommand: command.shellCommand, - autoinstallerName: command.autoinstallerName + shellCommand, + autoinstallerName, + providedByPlugin }) ); } @@ -466,27 +473,39 @@ export class RushCommandLineParser extends CommandLineParser { const baseCommandOptions: IBaseScriptActionOptions = this._getSharedCommandActionOptions(commandLineConfiguration, command); + const { + enableParallelism, + incremental = false, + disableBuildCache = false, + allowOversubscription = true, + phases: initialPhases, + originalPhases, + watchPhases, + watchDebounceMs = RushConstants.defaultWatchDebounceMs, + alwaysWatch, + alwaysInstall + } = command; this.addAction( new PhasedScriptAction({ ...baseCommandOptions, - enableParallelism: command.enableParallelism, - incremental: command.incremental || false, - disableBuildCache: command.disableBuildCache || false, + enableParallelism, + incremental, + disableBuildCache, // The Async.forEachAsync() API defaults allowOversubscription=false, whereas Rush historically // defaults allowOversubscription=true to favor faster builds rather than strictly staying below // the CPU limit. - allowOversubscription: command.allowOversubscription ?? true, + allowOversubscription, - initialPhases: command.phases, - originalPhases: command.originalPhases, - watchPhases: command.watchPhases, - watchDebounceMs: command.watchDebounceMs ?? RushConstants.defaultWatchDebounceMs, + initialPhases, + originalPhases, + watchPhases, + watchDebounceMs, phases: commandLineConfiguration.phases, - alwaysWatch: command.alwaysWatch, - alwaysInstall: command.alwaysInstall + alwaysWatch, + alwaysInstall }) ); } diff --git a/libraries/rush-lib/src/cli/RushXCommandLine.ts b/libraries/rush-lib/src/cli/RushXCommandLine.ts index 03648e831b8..20a856b1f7b 100644 --- a/libraries/rush-lib/src/cli/RushXCommandLine.ts +++ b/libraries/rush-lib/src/cli/RushXCommandLine.ts @@ -295,6 +295,12 @@ export class RushXCommandLine { } } + const quietModeValue: string | undefined = + process.env[EnvironmentVariableNames.RUSH_QUIET_MODE]; + if (quietModeValue === '1' || quietModeValue === 'true') { + quiet = true; + } + if (!commandName) { help = true; } diff --git a/libraries/rush-lib/src/cli/actions/PublishAction.ts b/libraries/rush-lib/src/cli/actions/PublishAction.ts index cb05204508f..87281a4a58e 100644 --- a/libraries/rush-lib/src/cli/actions/PublishAction.ts +++ b/libraries/rush-lib/src/cli/actions/PublishAction.ts @@ -10,7 +10,7 @@ import type { CommandLineStringParameter, CommandLineChoiceParameter } from '@rushstack/ts-command-line'; -import { FileSystem } from '@rushstack/node-core-library'; +import { Async, FileSystem } from '@rushstack/node-core-library'; import { Colorize } from '@rushstack/terminal'; import { type IChangeInfo, ChangeType } from '../../api/ChangeManagement'; @@ -24,12 +24,12 @@ import { ChangeManager } from '../../logic/ChangeManager'; import { BaseRushAction } from './BaseRushAction'; import { PublishGit } from '../../logic/PublishGit'; import * as PolicyValidator from '../../logic/policy/PolicyValidator'; -import type { VersionPolicy } from '../../api/VersionPolicy'; import { DEFAULT_PACKAGE_UPDATE_MESSAGE } from './VersionAction'; import { Utilities } from '../../utilities/Utilities'; import { Git } from '../../logic/Git'; import { RushConstants } from '../../logic/RushConstants'; import { IS_WINDOWS } from '../../utilities/executionUtilities'; +import type { RushConfiguration } from '../../api/RushConfiguration'; export class PublishAction extends BaseRushAction { private readonly _addCommitDetails: CommandLineFlagParameter; @@ -294,13 +294,13 @@ export class PublishAction extends BaseRushAction { // Make changes in temp branch. await publishGit.checkoutAsync(tempBranchName, true); - this._setDependenciesBeforePublish(); + await this._setDependenciesBeforePublishAsync(); // Make changes to package.json and change logs. changeManager.apply(this._apply.value); await changeManager.updateChangelogAsync(this._apply.value); - this._setDependenciesBeforeCommit(); + await this._setDependenciesBeforeCommitAsync(); if (await git.hasUncommittedChangesAsync()) { // Stage, commit, and push the changes to remote temp branch. @@ -311,7 +311,7 @@ export class PublishAction extends BaseRushAction { ); await publishGit.pushAsync(tempBranchName, !this._ignoreGitHooksParameter.value); - this._setDependenciesBeforePublish(); + await this._setDependenciesBeforePublishAsync(); // Override tag parameter if there is a hotfix change. for (const change of orderedChanges) { @@ -339,7 +339,7 @@ export class PublishAction extends BaseRushAction { } } - this._setDependenciesBeforeCommit(); + await this._setDependenciesBeforeCommitAsync(); // Create and push appropriate Git tags. await this._gitAddTagsAsync(publishGit, orderedChanges); @@ -560,28 +560,30 @@ export class PublishAction extends BaseRushAction { } } - private _setDependenciesBeforePublish(): void { - for (const project of this.rushConfiguration.projects) { - if (!this._versionPolicy.value || this._versionPolicy.value === project.versionPolicyName) { - const versionPolicy: VersionPolicy | undefined = project.versionPolicy; - - if (versionPolicy) { - versionPolicy.setDependenciesBeforePublish(project.packageName, this.rushConfiguration); + private async _setDependenciesBeforePublishAsync(): Promise { + const rushConfiguration: RushConfiguration = this.rushConfiguration; + await Async.forEachAsync( + rushConfiguration.projects, + async ({ versionPolicy, versionPolicyName, packageName }) => { + if (!this._versionPolicy.value || this._versionPolicy.value === versionPolicyName) { + await versionPolicy?.setDependenciesBeforePublishAsync(packageName, rushConfiguration); } - } - } + }, + { concurrency: 10 } + ); } - private _setDependenciesBeforeCommit(): void { - for (const project of this.rushConfiguration.projects) { - if (!this._versionPolicy.value || this._versionPolicy.value === project.versionPolicyName) { - const versionPolicy: VersionPolicy | undefined = project.versionPolicy; - - if (versionPolicy) { - versionPolicy.setDependenciesBeforePublish(project.packageName, this.rushConfiguration); + private async _setDependenciesBeforeCommitAsync(): Promise { + const rushConfiguration: RushConfiguration = this.rushConfiguration; + await Async.forEachAsync( + rushConfiguration.projects, + async ({ versionPolicy, versionPolicyName, packageName }) => { + if (!this._versionPolicy.value || this._versionPolicy.value === versionPolicyName) { + await versionPolicy?.setDependenciesBeforeCommitAsync(packageName, rushConfiguration); } - } - } + }, + { concurrency: 10 } + ); } private _addNpmPublishHome(supportEnvVarFallbackSyntax: boolean): void { diff --git a/libraries/rush-lib/src/cli/parsing/ParseParallelism.ts b/libraries/rush-lib/src/cli/parsing/ParseParallelism.ts index 026d0c20a2f..2cd16906eb8 100644 --- a/libraries/rush-lib/src/cli/parsing/ParseParallelism.ts +++ b/libraries/rush-lib/src/cli/parsing/ParseParallelism.ts @@ -5,39 +5,67 @@ import * as os from 'node:os'; import { IS_WINDOWS } from '../../utilities/executionUtilities'; +export function getNumberOfCores(): number { + return os.availableParallelism?.() ?? os.cpus().length; +} + +/** + * Since the JSON value is a string, it must be a percentage like "50%", + * which we convert to a number based on the available parallelism. + * For example, if the available parallelism (not the -p flag) is 8 and the weight is "50%", + * then the resulting weight will be 4. + * + * @param weight + * @returns + */ +export function parseParallelismPercent(weight: string, numberOfCores: number = getNumberOfCores()): number { + const percentageRegExp: RegExp = /^\d+(\.\d+)?%$/; + + if (!percentageRegExp.test(weight)) { + throw new Error(`Expecting a percentage string like "12%" or "34.56%".`); + } + + const percentValue: number = parseFloat(weight.slice(0, -1)); + + if (percentValue <= 0) { + throw new Error(`Invalid percentage value of "${percentValue}": value must be greater than zero`); + } + + if (percentValue > 100) { + throw new Error(`Invalid percentage value of "${percentValue}": value must not exceed 100%`); + } + + // Use as much CPU as possible, so we round down the weight here + return Math.max(1, Math.floor((percentValue / 100) * numberOfCores)); +} + /** * Parses a command line specification for desired parallelism. * Factored out to enable unit tests */ export function parseParallelism( rawParallelism: string | undefined, - numberOfCores: number = os.availableParallelism?.() ?? os.cpus().length + numberOfCores: number = getNumberOfCores() ): number { if (rawParallelism) { + rawParallelism = rawParallelism.trim(); + if (rawParallelism === 'max') { return numberOfCores; - } else { - const parallelismAsNumber: number = Number(rawParallelism); - - if (typeof rawParallelism === 'string' && rawParallelism.trim().endsWith('%')) { - const parsedPercentage: number = Number(rawParallelism.trim().replace(/\%$/, '')); - - if (parsedPercentage <= 0 || parsedPercentage > 100) { - throw new Error( - `Invalid percentage value of '${rawParallelism}', value cannot be less than '0%' or more than '100%'` - ); - } - - const workers: number = Math.floor((parsedPercentage / 100) * numberOfCores); - return Math.max(workers, 1); - } else if (!isNaN(parallelismAsNumber)) { - return Math.max(parallelismAsNumber, 1); - } else { - throw new Error( - `Invalid parallelism value of '${rawParallelism}', expected a number, a percentage, or 'max'` - ); - } } + + if (rawParallelism.endsWith('%')) { + return parseParallelismPercent(rawParallelism, numberOfCores); + } + + const parallelismAsNumber: number = Number(rawParallelism); + if (!isNaN(parallelismAsNumber)) { + return Math.max(parallelismAsNumber, 1); + } + + throw new Error( + `Invalid parallelism value of "${rawParallelism}": expected a number, a percentage string, or "max"` + ); } else { // If an explicit parallelism number wasn't provided, then choose a sensible // default. diff --git a/libraries/rush-lib/src/cli/parsing/test/__snapshots__/ParseParallelism.test.ts.snap b/libraries/rush-lib/src/cli/parsing/test/__snapshots__/ParseParallelism.test.ts.snap index c6ee56e6310..c0e671dff7f 100644 --- a/libraries/rush-lib/src/cli/parsing/test/__snapshots__/ParseParallelism.test.ts.snap +++ b/libraries/rush-lib/src/cli/parsing/test/__snapshots__/ParseParallelism.test.ts.snap @@ -1,5 +1,5 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`parseParallelism throwsErrorOnInvalidParallelism 1`] = `"Invalid parallelism value of 'tequila', expected a number, a percentage, or 'max'"`; +exports[`parseParallelism throwsErrorOnInvalidParallelism 1`] = `"Invalid parallelism value of \\"tequila\\": expected a number, a percentage string, or \\"max\\""`; -exports[`parseParallelism throwsErrorOnInvalidParallelismPercentage 1`] = `"Invalid percentage value of '200%', value cannot be less than '0%' or more than '100%'"`; +exports[`parseParallelism throwsErrorOnInvalidParallelismPercentage 1`] = `"Invalid percentage value of \\"200\\": value must not exceed 100%"`; diff --git a/libraries/rush-lib/src/cli/scriptActions/GlobalScriptAction.ts b/libraries/rush-lib/src/cli/scriptActions/GlobalScriptAction.ts index 9b35156f188..0f0c38923e7 100644 --- a/libraries/rush-lib/src/cli/scriptActions/GlobalScriptAction.ts +++ b/libraries/rush-lib/src/cli/scriptActions/GlobalScriptAction.ts @@ -5,6 +5,7 @@ import * as path from 'node:path'; import type { AsyncSeriesHook } from 'tapable'; +import type { CommandLineParameter } from '@rushstack/ts-command-line'; import { FileSystem, type IPackageJson, @@ -19,6 +20,7 @@ import { BaseScriptAction, type IBaseScriptActionOptions } from './BaseScriptAct import { Utilities } from '../../utilities/Utilities'; import { Stopwatch } from '../../utilities/Stopwatch'; import { Autoinstaller } from '../../logic/Autoinstaller'; +import { RushConstants } from '../../logic/RushConstants'; import type { IGlobalCommandConfig, IShellCommandTokenContext } from '../../api/CommandLineConfiguration'; import { measureAsyncFn } from '../../utilities/performance'; @@ -28,6 +30,7 @@ import { measureAsyncFn } from '../../utilities/performance'; export interface IGlobalScriptActionOptions extends IBaseScriptActionOptions { shellCommand: string; autoinstallerName: string | undefined; + providedByPlugin: boolean; } /** @@ -44,11 +47,17 @@ export class GlobalScriptAction extends BaseScriptAction { private readonly _shellCommand: string; private readonly _autoinstallerName: string; private readonly _autoinstallerFullPath: string; + private readonly _providedByPlugin: boolean; + + private _customParametersByLongName: ReadonlyMap | undefined; + private _isHandled: boolean = false; public constructor(options: IGlobalScriptActionOptions) { super(options); - this._shellCommand = options.shellCommand; - this._autoinstallerName = options.autoinstallerName || ''; + const { shellCommand, providedByPlugin, autoinstallerName = '' } = options; + this._shellCommand = shellCommand; + this._providedByPlugin = providedByPlugin; + this._autoinstallerName = autoinstallerName; if (this._autoinstallerName) { Autoinstaller.validateName(this._autoinstallerName); @@ -93,6 +102,37 @@ export class GlobalScriptAction extends BaseScriptAction { this.defineScriptParameters(); } + /** + * {@inheritDoc IGlobalCommand.setHandled} + */ + public setHandled(): void { + this._isHandled = true; + } + + /** + * {@inheritDoc IGlobalCommand.getCustomParametersByLongName} + */ + public getCustomParametersByLongName( + longName: string + ): TParameter { + if (!this._customParametersByLongName) { + const map: Map = new Map(); + for (const [parameterJson, parameter] of this.customParameters) { + map.set(parameterJson.longName, parameter); + } + this._customParametersByLongName = map; + } + + const parameter: CommandLineParameter | undefined = this._customParametersByLongName.get(longName); + if (!parameter) { + throw new Error( + `The command "${this.actionName}" does not have a custom parameter with long name "${longName}".` + ); + } + + return parameter as TParameter; + } + private async _prepareAutoinstallerNameAsync(): Promise { const autoInstaller: Autoinstaller = new Autoinstaller({ autoinstallerName: this._autoinstallerName, @@ -117,6 +157,29 @@ export class GlobalScriptAction extends BaseScriptAction { await hookForAction.promise(this); } + // If a plugin hook called setHandled(), the command has been fully handled. + // Skip the default shell command execution. + if (this._isHandled) { + return; + } + + if (this._providedByPlugin) { + throw new Error( + `The custom command "${this.actionName}" is a "${RushConstants.globalPluginCommandKind}" command, ` + + 'meaning its implementation must be provided entirely by a Rush plugin. However, no plugin ' + + 'called setHandled() for this command. Ensure that the plugin defining this command is ' + + 'properly installed and that it handles this command.' + ); + } + + if (this._shellCommand === '') { + throw new Error( + `The custom command "${this.actionName}" has an empty "shellCommand" value, but no plugin ` + + 'called setHandled() for this command. An empty "shellCommand" is intended for global ' + + 'commands whose implementation is provided entirely by a Rush plugin.' + ); + } + const additionalPathFolders: string[] = this.commandLineConfiguration?.additionalPathFolders.slice() || []; diff --git a/libraries/rush-lib/src/cli/test/RushPluginAutoinstallerUpdate.test.ts b/libraries/rush-lib/src/cli/test/RushPluginAutoinstallerUpdate.test.ts new file mode 100644 index 00000000000..1ea0bc95453 --- /dev/null +++ b/libraries/rush-lib/src/cli/test/RushPluginAutoinstallerUpdate.test.ts @@ -0,0 +1,150 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. +// See LICENSE in the project root for license information. + +jest.mock(`@rushstack/package-deps-hash`, () => { + return { + getRepoRoot(dir: string): string { + return dir; + }, + getDetailedRepoStateAsync(): IDetailedRepoState { + return { + hasSubmodules: false, + hasUncommittedChanges: false, + files: new Map([['common/config/rush/npm-shrinkwrap.json', 'hash']]), + symlinks: new Map() + }; + }, + getRepoChangesAsync(): ReadonlyMap { + return new Map(); + }, + getGitHashForFiles(filePaths: Iterable): ReadonlyMap { + return new Map(Array.from(filePaths, (filePath: string) => [filePath, filePath])); + }, + hashFilesAsync(rootDirectory: string, filePaths: Iterable): Promise> { + return Promise.resolve(new Map(Array.from(filePaths, (filePath: string) => [filePath, filePath]))); + } + }; +}); + +import './mockRushCommandLineParser'; + +import { FileSystem, JsonFile } from '@rushstack/node-core-library'; +import type { IDetailedRepoState } from '@rushstack/package-deps-hash'; +import { Autoinstaller } from '../../logic/Autoinstaller'; +import type { IRushPluginManifestJson } from '../../pluginFramework/PluginLoader/PluginLoaderBase'; +import { BaseInstallAction } from '../actions/BaseInstallAction'; +import { + getCommandLineParserInstanceAsync, + isolateEnvironmentConfigurationForTests, + type IEnvironmentConfigIsolation +} from './TestUtils'; + +interface IPluginTestPaths { + autoinstallerStorePath: string; + sourceCommandLineJsonPath: string; + sourceManifestPath: string; + destinationCommandLineJsonPath: string; + destinationManifestPath: string; +} + +function convertToCrLf(content: string): string { + return content.replace(/\r\n/g, '\n').replace(/\n/g, '\r\n'); +} + +function mockAutoinstallerPrepareAsync(): jest.SpyInstance, []> { + return jest.spyOn(Autoinstaller.prototype, 'prepareAsync').mockResolvedValue(undefined); +} + +function seedPluginFilesWithCrLf(repoPath: string, packageName: string): IPluginTestPaths { + const autoinstallerPath: string = `${repoPath}/common/autoinstallers/plugins`; + const autoinstallerStorePath: string = `${autoinstallerPath}/rush-plugins`; + const installedPluginPath: string = `${autoinstallerPath}/node_modules/${packageName}`; + const sourcePluginPath: string = `${repoPath}/${packageName}`; + const sourceManifestPath: string = `${installedPluginPath}/rush-plugin-manifest.json`; + const sourceCommandLineJsonPath: string = `${installedPluginPath}/command-line.json`; + const destinationManifestPath: string = `${autoinstallerStorePath}/${packageName}/rush-plugin-manifest.json`; + const destinationCommandLineJsonPath: string = `${autoinstallerStorePath}/${packageName}/${packageName}/command-line.json`; + + FileSystem.copyFiles({ + sourcePath: sourcePluginPath, + destinationPath: installedPluginPath + }); + + const manifestJson: IRushPluginManifestJson = JsonFile.load( + `${sourcePluginPath}/rush-plugin-manifest.json` + ); + manifestJson.plugins[0].commandLineJsonFilePath = 'command-line.json'; + FileSystem.writeFile(sourceManifestPath, convertToCrLf(`${JSON.stringify(manifestJson, undefined, 2)}\n`), { + ensureFolderExists: true + }); + + const commandLineJsonFixturePath: string = destinationCommandLineJsonPath; + const commandLineJsonContent: string = FileSystem.readFile(commandLineJsonFixturePath); + FileSystem.writeFile(sourceCommandLineJsonPath, convertToCrLf(commandLineJsonContent), { + ensureFolderExists: true + }); + + return { + autoinstallerStorePath, + sourceCommandLineJsonPath, + sourceManifestPath, + destinationCommandLineJsonPath, + destinationManifestPath + }; +} + +function expectFileToUseLfLineEndings(filePath: string): void { + const content: string = FileSystem.readFile(filePath); + expect(content).toContain('\n'); + expect(content).not.toContain('\r\n'); +} + +describe('RushPluginAutoinstallerUpdate', () => { + let _envIsolation: IEnvironmentConfigIsolation; + + beforeEach(() => { + _envIsolation = isolateEnvironmentConfigurationForTests(); + }); + + afterEach(() => { + _envIsolation.restore(); + jest.restoreAllMocks(); + }); + + it('update() creates destination folders that do not exist when writing plugin files', async () => { + const repoName: string = 'pluginWithBuildCommandRepo'; + const packageName: string = 'rush-build-command-plugin'; + const { parser, repoPath } = await getCommandLineParserInstanceAsync(repoName, 'update'); + const { + autoinstallerStorePath, + sourceCommandLineJsonPath, + sourceManifestPath, + destinationCommandLineJsonPath, + destinationManifestPath + } = seedPluginFilesWithCrLf(repoPath, packageName); + + FileSystem.ensureEmptyFolder(autoinstallerStorePath); + + expect(FileSystem.exists(destinationManifestPath)).toBe(false); + expect(FileSystem.exists(destinationCommandLineJsonPath)).toBe(false); + expect(FileSystem.readFile(sourceManifestPath)).toContain('\r\n'); + expect(FileSystem.readFile(sourceCommandLineJsonPath)).toContain('\r\n'); + + const prepareAsyncSpy = mockAutoinstallerPrepareAsync(); + const baseInstallActionPrototype: { runAsync(): Promise } = + BaseInstallAction.prototype as unknown as { runAsync(): Promise }; + const runAsyncSpy = jest.spyOn(baseInstallActionPrototype, 'runAsync').mockResolvedValue(undefined); + + try { + await expect(parser.executeAsync()).resolves.toEqual(true); + } finally { + runAsyncSpy.mockRestore(); + prepareAsyncSpy.mockRestore(); + } + + expect(FileSystem.exists(destinationManifestPath)).toBe(true); + expect(FileSystem.exists(destinationCommandLineJsonPath)).toBe(true); + expectFileToUseLfLineEndings(destinationManifestPath); + expectFileToUseLfLineEndings(destinationCommandLineJsonPath); + }); +}); diff --git a/libraries/rush-lib/src/logic/Autoinstaller.ts b/libraries/rush-lib/src/logic/Autoinstaller.ts index 8c35ea07b82..ae55a8c361b 100644 --- a/libraries/rush-lib/src/logic/Autoinstaller.ts +++ b/libraries/rush-lib/src/logic/Autoinstaller.ts @@ -210,7 +210,7 @@ export class Autoinstaller { } // Detect a common mistake where PNPM prints "Already up-to-date" without creating a shrinkwrap file - const packageJsonEditor: PackageJsonEditor = PackageJsonEditor.load(this.packageJsonPath); + const packageJsonEditor: PackageJsonEditor = await PackageJsonEditor.loadAsync(this.packageJsonPath); if (packageJsonEditor.dependencyList.length === 0) { throw new Error( 'You must add at least one dependency to the autoinstaller package' + diff --git a/libraries/rush-lib/src/logic/PackageJsonUpdater.ts b/libraries/rush-lib/src/logic/PackageJsonUpdater.ts index 762dce515ab..3a1e4789fbb 100644 --- a/libraries/rush-lib/src/logic/PackageJsonUpdater.ts +++ b/libraries/rush-lib/src/logic/PackageJsonUpdater.ts @@ -5,6 +5,7 @@ import * as semver from 'semver'; import type { INpmCheckPackageSummary } from '@rushstack/npm-check-fork'; import { Colorize, type ITerminal } from '@rushstack/terminal'; +import { Async } from '@rushstack/node-core-library'; import type { RushConfiguration } from '../api/RushConfiguration'; import type { BaseInstallManager } from './base/BaseInstallManager'; @@ -223,11 +224,16 @@ export class PackageJsonUpdater { } } - for (const [filePath, project] of allPackageUpdates) { - if (project.saveIfModified()) { - this._terminal.writeLine(Colorize.green('Wrote ') + filePath); - } - } + await Async.forEachAsync( + allPackageUpdates, + async ([filePath, project]) => { + const modified: boolean = await project.saveIfModifiedAsync(); + if (modified) { + this._terminal.writeLine(Colorize.green('Wrote ') + filePath); + } + }, + { concurrency: 10 } + ); if (!skipUpdate) { if (this._rushConfiguration.subspacesFeatureEnabled) { @@ -252,12 +258,18 @@ export class PackageJsonUpdater { } else { throw new Error('only accept "rush add" or "rush remove"'); } + const { skipUpdate, debugInstall, variant } = options; - for (const { project } of allPackageUpdates) { - if (project.saveIfModified()) { - this._terminal.writeLine(Colorize.green('Wrote'), project.filePath); - } - } + await Async.forEachAsync( + allPackageUpdates, + async ({ project }) => { + const modified: boolean = await project.saveIfModifiedAsync(); + if (modified) { + this._terminal.writeLine(Colorize.green('Wrote'), project.filePath); + } + }, + { concurrency: 10 } + ); if (!skipUpdate) { if (this._rushConfiguration.subspacesFeatureEnabled) { diff --git a/libraries/rush-lib/src/logic/RushConstants.ts b/libraries/rush-lib/src/logic/RushConstants.ts index 0f5ed03c8e8..0311f845722 100644 --- a/libraries/rush-lib/src/logic/RushConstants.ts +++ b/libraries/rush-lib/src/logic/RushConstants.ts @@ -275,6 +275,12 @@ export class RushConstants { */ public static readonly globalCommandKind: 'global' = 'global'; + /** + * The value of the "commandKind" property for a plugin-only global command in command-line.json. + * This command kind can only be used in command-line.json files provided by Rush plugins. + */ + public static readonly globalPluginCommandKind: 'globalPlugin' = 'globalPlugin'; + /** * The value of the "commandKind" property for a phased command in command-line.json */ diff --git a/libraries/rush-lib/src/logic/installManager/RushInstallManager.ts b/libraries/rush-lib/src/logic/installManager/RushInstallManager.ts index 60e9dcc2971..247aa96131f 100644 --- a/libraries/rush-lib/src/logic/installManager/RushInstallManager.ts +++ b/libraries/rush-lib/src/logic/installManager/RushInstallManager.ts @@ -357,7 +357,8 @@ export class RushInstallManager extends BaseInstallManager { } // Save the package.json if we modified the version references and warn that the package.json was modified - if (packageJson.saveIfModified()) { + const modified: boolean = await packageJson.saveIfModifiedAsync(); + if (modified) { // eslint-disable-next-line no-console console.log( Colorize.yellow( diff --git a/libraries/rush-lib/src/logic/installManager/WorkspaceInstallManager.ts b/libraries/rush-lib/src/logic/installManager/WorkspaceInstallManager.ts index 4be7bb4a913..9526f0e8d59 100644 --- a/libraries/rush-lib/src/logic/installManager/WorkspaceInstallManager.ts +++ b/libraries/rush-lib/src/logic/installManager/WorkspaceInstallManager.ts @@ -316,7 +316,8 @@ export class WorkspaceInstallManager extends BaseInstallManager { } // Save the package.json if we modified the version references and warn that the package.json was modified - if (packageJson.saveIfModified()) { + const modified: boolean = await packageJson.saveIfModifiedAsync(); + if (modified) { // eslint-disable-next-line no-console console.log( Colorize.yellow( diff --git a/libraries/rush-lib/src/logic/operations/OperationExecutionManager.ts b/libraries/rush-lib/src/logic/operations/OperationExecutionManager.ts index b0f2a3e0cb2..976a214f026 100644 --- a/libraries/rush-lib/src/logic/operations/OperationExecutionManager.ts +++ b/libraries/rush-lib/src/logic/operations/OperationExecutionManager.ts @@ -259,9 +259,13 @@ export class OperationExecutionManager { this._terminal.writeStdoutLine(''); } - this._terminal.writeStdoutLine(`Executing a maximum of ${this._parallelism} simultaneous processes...`); - - const maxParallelism: number = Math.min(totalOperations, this._parallelism); + // For display purposes, cap the reported number of simultaneous processes by the number of operations. + // This avoids confusing messages like "Executing a maximum of 10 simultaneous processes..." when + // there are only 4 operations. + const maxSimultaneousProcesses: number = Math.min(totalOperations, this._parallelism); + this._terminal.writeStdoutLine( + `Executing a maximum of ${maxSimultaneousProcesses} simultaneous processes...` + ); await this._beforeExecuteOperations?.(this._executionRecords); @@ -309,7 +313,10 @@ export class OperationExecutionManager { }, { allowOversubscription: this._allowOversubscription, - concurrency: maxParallelism, + // In weighted mode, concurrency represents the total "unit budget", not the max number of tasks. + // Do not cap by totalOperations, since that would incorrectly shrink the unit budget and + // reduce parallelism for operations with weight > 1. + concurrency: this._parallelism, weighted: true } ); diff --git a/libraries/rush-lib/src/logic/operations/OperationExecutionRecord.ts b/libraries/rush-lib/src/logic/operations/OperationExecutionRecord.ts index 63da9421b54..57a6d1a17ec 100644 --- a/libraries/rush-lib/src/logic/operations/OperationExecutionRecord.ts +++ b/libraries/rush-lib/src/logic/operations/OperationExecutionRecord.ts @@ -114,6 +114,8 @@ export class OperationExecutionRecord implements IOperationRunnerContext, IOpera preventAutoclose: true }); public readonly problemCollector: ProblemCollector = new ProblemCollector({ + // Allow writing to this object after transforms have been closed. We clean it up manually in a finally block. + preventAutoclose: true, matcherJson: [ { name: 'rushstack-file-error-unix', @@ -307,7 +309,9 @@ export class OperationExecutionRecord implements IOperationRunnerContext, IOpera logFilenameIdentifier: `${this._operationMetadataManager.logFilenameIdentifier}${logFileSuffix}` }) : undefined; - this.logFilePaths = logFilePaths; + if (logFilePaths !== undefined) { + this.logFilePaths = logFilePaths; + } const projectLogWritable: TerminalWritable | undefined = logFilePaths ? await initializeProjectLogFilesAsync({ @@ -322,14 +326,21 @@ export class OperationExecutionRecord implements IOperationRunnerContext, IOpera // // +--> quietModeTransform? --> collatedWriter // | - // normalizeNewlineTransform --1--> stderrLineTransform --2--> projectLogWritable + // normalizeNewlineTransform --1--> stderrLineTransform --2--> projectLogWritable? // | // +--> stdioSummarizer - const destination: TerminalWritable = projectLogWritable - ? new SplitterTransform({ - destinations: [projectLogWritable, stdioSummarizer, problemCollector] - }) - : stdioSummarizer; + // | + // +--> removeColorsTransform --> problemCollector + const removeColorsTransform: TextRewriterTransform = new TextRewriterTransform({ + destination: problemCollector, + removeColors: true + }); + + const destination: TerminalWritable = new SplitterTransform({ + destinations: projectLogWritable + ? [projectLogWritable, stdioSummarizer, removeColorsTransform] + : [stdioSummarizer, removeColorsTransform] + }); const stderrLineTransform: StderrLineTransform = new StderrLineTransform({ destination, diff --git a/libraries/rush-lib/src/logic/operations/WeightedOperationPlugin.ts b/libraries/rush-lib/src/logic/operations/WeightedOperationPlugin.ts index 4df5596df2c..ae77b9be00e 100644 --- a/libraries/rush-lib/src/logic/operations/WeightedOperationPlugin.ts +++ b/libraries/rush-lib/src/logic/operations/WeightedOperationPlugin.ts @@ -12,6 +12,7 @@ import type { import type { IOperationSettings, RushProjectConfiguration } from '../../api/RushProjectConfiguration'; import type { IOperationExecutionResult } from './IOperationExecutionResult'; import type { OperationExecutionRecord } from './OperationExecutionRecord'; +import { parseParallelismPercent } from '../../cli/parsing/ParseParallelism'; const PLUGIN_NAME: 'WeightedOperationPlugin' = 'WeightedOperationPlugin'; @@ -41,8 +42,18 @@ function weightOperations( const projectConfiguration: RushProjectConfiguration | undefined = projectConfigurations.get(project); const operationSettings: IOperationSettings | undefined = operation.settings ?? projectConfiguration?.operationSettingsByOperationName.get(phase.name); - if (operationSettings?.weight) { - operation.weight = operationSettings.weight; + if (operationSettings?.weight !== undefined) { + if (typeof operationSettings.weight === 'number') { + operation.weight = operationSettings.weight; + } else if (typeof operationSettings.weight === 'string') { + try { + operation.weight = parseParallelismPercent(operationSettings.weight); + } catch (error) { + throw new Error( + `${operation.name} (invalid weight: ${JSON.stringify(operationSettings.weight)}) ${(error as Error).message}` + ); + } + } } } Async.validateWeightedIterable(operation); diff --git a/libraries/rush-lib/src/logic/operations/test/OperationExecutionManager.test.ts b/libraries/rush-lib/src/logic/operations/test/OperationExecutionManager.test.ts index 094db7caf5a..c74b2a9a3d9 100644 --- a/libraries/rush-lib/src/logic/operations/test/OperationExecutionManager.test.ts +++ b/libraries/rush-lib/src/logic/operations/test/OperationExecutionManager.test.ts @@ -18,6 +18,7 @@ jest.mock('@rushstack/terminal', () => { import { Terminal, MockWritable, PrintUtilities } from '@rushstack/terminal'; import { CollatedTerminal } from '@rushstack/stream-collator'; +import { Async } from '@rushstack/node-core-library'; import type { IPhase } from '../../../api/CommandLineConfiguration'; import type { RushConfigurationProject } from '../../../api/RushConfigurationProject'; @@ -454,4 +455,262 @@ describe(OperationExecutionManager.name, () => { expect(mockWritable.getFormattedChunks()).toMatchSnapshot(); }); }); + + describe('Weighted concurrency', () => { + function createWeightedOperation( + name: string, + weight: number, + counters: { concurrentCount: number; peakConcurrency: number } + ): Operation { + const operation: Operation = new Operation({ + runner: new MockOperationRunner(name, async (terminal: CollatedTerminal) => { + counters.concurrentCount++; + if (counters.concurrentCount > counters.peakConcurrency) { + counters.peakConcurrency = counters.concurrentCount; + } + await Async.sleepAsync(0); + if (counters.concurrentCount > counters.peakConcurrency) { + counters.peakConcurrency = counters.concurrentCount; + } + counters.concurrentCount--; + return OperationStatus.Success; + }), + phase: mockPhase, + project: getOrCreateProject(name), + logFilenameIdentifier: name + }); + operation.weight = weight; + return operation; + } + + it('does not cap the unit budget by the number of operations (issue #5607 regression)', async () => { + // Regression test for https://github.com/microsoft/rushstack/issues/5607 + // With weighted scheduling, concurrency is a unit budget. The old code passed + // Math.min(totalOperations, parallelism), which shrinks the budget when + // totalOperations < parallelism, causing serialization for weight > 1. + const counters = { concurrentCount: 0, peakConcurrency: 0 }; + + const opA: Operation = createWeightedOperation('A', 4, counters); + const opB: Operation = createWeightedOperation('B', 4, counters); + const opC: Operation = createWeightedOperation('C', 4, counters); + const opD: Operation = createWeightedOperation('D', 4, counters); + + const manager: OperationExecutionManager = new OperationExecutionManager( + new Set([opA, opB, opC, opD]), + { + quietMode: true, + debugMode: false, + parallelism: 10, + allowOversubscription: false, + destination: mockWritable + } + ); + + const abortController = new AbortController(); + const result: IExecutionResult = await manager.executeAsync(abortController); + + expect(result.status).toEqual(OperationStatus.Success); + expect(counters.peakConcurrency).toEqual(2); + }); + + it('clamps weight to budget and completes without deadlock when weight exceeds budget', async () => { + const counters = { concurrentCount: 0, peakConcurrency: 0 }; + + const opA: Operation = createWeightedOperation('heavy-A', 10, counters); + const opB: Operation = createWeightedOperation('heavy-B', 10, counters); + + const manager: OperationExecutionManager = new OperationExecutionManager( + new Set([opA, opB]), + { + quietMode: true, + debugMode: false, + parallelism: 4, + allowOversubscription: false, + destination: mockWritable + } + ); + + const abortController = new AbortController(); + const result: IExecutionResult = await manager.executeAsync(abortController); + + expect(result.status).toEqual(OperationStatus.Success); + expect(result.operationResults.get(opA)?.status).toEqual(OperationStatus.Success); + expect(result.operationResults.get(opB)?.status).toEqual(OperationStatus.Success); + expect(counters.peakConcurrency).toEqual(1); + }); + + it('allows oversubscription when allowOversubscription is true', async () => { + const counters = { concurrentCount: 0, peakConcurrency: 0 }; + + const opA: Operation = createWeightedOperation('over-A', 7, counters); + const opB: Operation = createWeightedOperation('over-B', 7, counters); + + const manager: OperationExecutionManager = new OperationExecutionManager( + new Set([opA, opB]), + { + quietMode: true, + debugMode: false, + parallelism: 10, + allowOversubscription: true, + destination: mockWritable + } + ); + + const abortController = new AbortController(); + const result: IExecutionResult = await manager.executeAsync(abortController); + + expect(result.status).toEqual(OperationStatus.Success); + expect(counters.peakConcurrency).toEqual(2); + }); + + it('does not oversubscribe when allowOversubscription is false', async () => { + const counters = { concurrentCount: 0, peakConcurrency: 0 }; + + const opA: Operation = createWeightedOperation('strict-A', 7, counters); + const opB: Operation = createWeightedOperation('strict-B', 7, counters); + + const manager: OperationExecutionManager = new OperationExecutionManager( + new Set([opA, opB]), + { + quietMode: true, + debugMode: false, + parallelism: 10, + allowOversubscription: false, + destination: mockWritable + } + ); + + const abortController = new AbortController(); + const result: IExecutionResult = await manager.executeAsync(abortController); + + expect(result.status).toEqual(OperationStatus.Success); + expect(counters.peakConcurrency).toEqual(1); + }); + + it('zero-weight operations do not consume budget', async () => { + const counters = { concurrentCount: 0, peakConcurrency: 0 }; + + const heavyOp: Operation = createWeightedOperation('heavy', 9, counters); + const zeroA: Operation = createWeightedOperation('zero-A', 0, counters); + const zeroB: Operation = createWeightedOperation('zero-B', 0, counters); + const zeroC: Operation = createWeightedOperation('zero-C', 0, counters); + + const manager: OperationExecutionManager = new OperationExecutionManager( + new Set([heavyOp, zeroA, zeroB, zeroC]), + { + quietMode: true, + debugMode: false, + parallelism: 10, + allowOversubscription: false, + destination: mockWritable + } + ); + + const abortController = new AbortController(); + const result: IExecutionResult = await manager.executeAsync(abortController); + + expect(result.status).toEqual(OperationStatus.Success); + expect(counters.peakConcurrency).toBeGreaterThanOrEqual(2); + }); + + it('mixed weights respect the unit budget correctly', async () => { + const counters = { concurrentCount: 0, peakConcurrency: 0 }; + + const opA: Operation = createWeightedOperation('mix-A', 5, counters); + const opB: Operation = createWeightedOperation('mix-B', 5, counters); + const opC: Operation = createWeightedOperation('mix-C', 3, counters); + const opD: Operation = createWeightedOperation('mix-D', 3, counters); + + const manager: OperationExecutionManager = new OperationExecutionManager( + new Set([opA, opB, opC, opD]), + { + quietMode: true, + debugMode: false, + parallelism: 10, + allowOversubscription: false, + destination: mockWritable + } + ); + + const abortController = new AbortController(); + const result: IExecutionResult = await manager.executeAsync(abortController); + + expect(result.status).toEqual(OperationStatus.Success); + for (const [, opResult] of result.operationResults) { + expect(opResult.status).toEqual(OperationStatus.Success); + } + expect(counters.peakConcurrency).toBeGreaterThanOrEqual(2); + expect(counters.peakConcurrency).toBeLessThanOrEqual(3); + }); + + it('weight=1 operations behave identically to unweighted scheduling', async () => { + const counters = { concurrentCount: 0, peakConcurrency: 0 }; + + const ops: Operation[] = []; + for (let i = 0; i < 5; i++) { + ops.push(createWeightedOperation(`unit-${i}`, 1, counters)); + } + + const manager: OperationExecutionManager = new OperationExecutionManager(new Set(ops), { + quietMode: true, + debugMode: false, + parallelism: 3, + allowOversubscription: false, + destination: mockWritable + }); + + const abortController = new AbortController(); + const result: IExecutionResult = await manager.executeAsync(abortController); + + expect(result.status).toEqual(OperationStatus.Success); + expect(counters.peakConcurrency).toEqual(3); + }); + + it('displays the capped process count when parallelism exceeds operation count', async () => { + const counters = { concurrentCount: 0, peakConcurrency: 0 }; + + const ops: Operation[] = []; + for (let i = 0; i < 4; i++) { + ops.push(createWeightedOperation(`log-${i}`, 4, counters)); + } + + const manager: OperationExecutionManager = new OperationExecutionManager(new Set(ops), { + quietMode: false, + debugMode: false, + parallelism: 10, + allowOversubscription: false, + destination: mockWritable + }); + + const abortController = new AbortController(); + await manager.executeAsync(abortController); + + const allOutput: string = mockWritable.getAllOutput(); + expect(allOutput).toContain('Executing a maximum of 4 simultaneous processes...'); + expect(allOutput).not.toContain('Executing a maximum of 10 simultaneous processes...'); + }); + + it('displays parallelism when it is less than operation count', async () => { + const counters = { concurrentCount: 0, peakConcurrency: 0 }; + + const ops: Operation[] = []; + for (let i = 0; i < 10; i++) { + ops.push(createWeightedOperation(`many-${i}`, 1, counters)); + } + + const manager: OperationExecutionManager = new OperationExecutionManager(new Set(ops), { + quietMode: false, + debugMode: false, + parallelism: 3, + allowOversubscription: false, + destination: mockWritable + }); + + const abortController = new AbortController(); + await manager.executeAsync(abortController); + + const allOutput: string = mockWritable.getAllOutput(); + expect(allOutput).toContain('Executing a maximum of 3 simultaneous processes...'); + }); + }); }); diff --git a/libraries/rush-lib/src/logic/operations/test/WeightedOperationPlugin.test.ts b/libraries/rush-lib/src/logic/operations/test/WeightedOperationPlugin.test.ts new file mode 100644 index 00000000000..7aec8361ede --- /dev/null +++ b/libraries/rush-lib/src/logic/operations/test/WeightedOperationPlugin.test.ts @@ -0,0 +1,202 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. +// See LICENSE in the project root for license information. + +import os from 'node:os'; + +import type { IPhase } from '../../../api/CommandLineConfiguration'; +import type { RushConfigurationProject } from '../../../api/RushConfigurationProject'; +import type { IOperationSettings, RushProjectConfiguration } from '../../../api/RushProjectConfiguration'; +import { + type IExecuteOperationsContext, + PhasedCommandHooks +} from '../../../pluginFramework/PhasedCommandHooks'; +import type { IOperationExecutionResult } from '../IOperationExecutionResult'; +import { Operation } from '../Operation'; +import { WeightedOperationPlugin } from '../WeightedOperationPlugin'; +import { MockOperationRunner } from './MockOperationRunner'; + +const MOCK_PHASE: IPhase = { + name: '_phase:test', + allowWarningsOnSuccess: false, + associatedParameters: new Set(), + dependencies: { + self: new Set(), + upstream: new Set() + }, + isSynthetic: false, + logFilenameIdentifier: '_phase_test', + missingScriptBehavior: 'silent' +}; + +function createProject(packageName: string): RushConfigurationProject { + return { + packageName + } as RushConfigurationProject; +} + +function createOperation(options: { + project: RushConfigurationProject; + settings?: IOperationSettings; + isNoOp?: boolean; +}): Operation { + const { project, settings, isNoOp } = options; + return new Operation({ + phase: MOCK_PHASE, + project, + settings, + runner: new MockOperationRunner(`${project.packageName} (${MOCK_PHASE.name})`, undefined, false, isNoOp), + logFilenameIdentifier: `${project.packageName}_phase_test` + }); +} + +function createExecutionRecords(operation: Operation): Map { + return new Map([ + [ + operation, + { + operation, + runner: operation.runner + } as unknown as IOperationExecutionResult + ] + ]); +} + +function createContext( + projectConfigurations: ReadonlyMap, + parallelism: number = os.availableParallelism() +): IExecuteOperationsContext { + return { + projectConfigurations, + parallelism + } as IExecuteOperationsContext; +} + +async function applyWeightPluginAsync( + operations: Map, + context: IExecuteOperationsContext +): Promise { + const hooks: PhasedCommandHooks = new PhasedCommandHooks(); + new WeightedOperationPlugin().apply(hooks); + await hooks.beforeExecuteOperations.promise(operations, context); +} + +function mockAvailableParallelism(value: number): jest.SpyInstance { + return jest.spyOn(os, 'availableParallelism').mockReturnValue(value); +} + +describe(WeightedOperationPlugin.name, () => { + afterEach(() => { + jest.restoreAllMocks(); + }); + + it('applies numeric weight from operation settings', async () => { + const project: RushConfigurationProject = createProject('project-number'); + const operation: Operation = createOperation({ + project, + settings: { + operationName: MOCK_PHASE.name, + weight: 7 + } + }); + + await applyWeightPluginAsync( + createExecutionRecords(operation), + createContext(new Map(), /* Set parallelism to ensure -p does not affect weight calculation */ 1) + ); + + expect(operation.weight).toBe(7); + }); + + it('converts percentage weight using available parallelism', async () => { + mockAvailableParallelism(10); + + const project: RushConfigurationProject = createProject('project-percent'); + const operation: Operation = createOperation({ + project, + settings: { + operationName: MOCK_PHASE.name, + weight: '25%' + } as IOperationSettings + }); + + await applyWeightPluginAsync(createExecutionRecords(operation), createContext(new Map())); + + expect(operation.weight).toBe(2); + }); + + it('reads weight from rush-project configuration when operation settings are undefined', async () => { + mockAvailableParallelism(8); + + const project: RushConfigurationProject = createProject('project-config'); + const operation: Operation = createOperation({ project }); + const projectConfiguration: RushProjectConfiguration = { + operationSettingsByOperationName: new Map([ + [ + MOCK_PHASE.name, + { + operationName: MOCK_PHASE.name, + weight: '50%' + } as IOperationSettings + ] + ]) + } as unknown as RushProjectConfiguration; + + await applyWeightPluginAsync( + createExecutionRecords(operation), + createContext(new Map([[project, projectConfiguration]])) + ); + + expect(operation.weight).toBe(4); + }); + + it('use floor when converting percentage weight to avoid zero weight', async () => { + mockAvailableParallelism(16); + + const project: RushConfigurationProject = createProject('project-floor'); + const operation: Operation = createOperation({ + project, + settings: { + operationName: MOCK_PHASE.name, + weight: '33.3333%' + } as IOperationSettings + }); + + await applyWeightPluginAsync(createExecutionRecords(operation), createContext(new Map())); + + expect(operation.weight).toBe(5); + }); + + it('forces NO-OP operation weight to zero ignore weight settings', async () => { + const project: RushConfigurationProject = createProject('project-no-op'); + const operation: Operation = createOperation({ + project, + isNoOp: true, + settings: { + operationName: MOCK_PHASE.name, + weight: 100 + } + }); + + await applyWeightPluginAsync(createExecutionRecords(operation), createContext(new Map())); + + expect(operation.weight).toBe(0); + }); + + it('throws for invalid percentage weight format', async () => { + mockAvailableParallelism(16); + + const project: RushConfigurationProject = createProject('project-invalid'); + const operation: Operation = createOperation({ + project, + // @ts-expect-error Testing invalid input + settings: { + operationName: MOCK_PHASE.name, + weight: '12.5a%' + } as IOperationSettings + }); + + await expect( + applyWeightPluginAsync(createExecutionRecords(operation), createContext(new Map())) + ).rejects.toThrow(/invalid weight: "12.5a%"/i); + }); +}); diff --git a/libraries/rush-lib/src/logic/versionMismatch/VersionMismatchFinderCommonVersions.ts b/libraries/rush-lib/src/logic/versionMismatch/VersionMismatchFinderCommonVersions.ts index bec3f535149..1e2c11b17bf 100644 --- a/libraries/rush-lib/src/logic/versionMismatch/VersionMismatchFinderCommonVersions.ts +++ b/libraries/rush-lib/src/logic/versionMismatch/VersionMismatchFinderCommonVersions.ts @@ -63,8 +63,8 @@ export class VersionMismatchFinderCommonVersions extends VersionMismatchFinderEn throw new Error('Not supported.'); } - public saveIfModified(): boolean { - return this._fileManager.save(); + public async saveIfModifiedAsync(): Promise { + return await this._fileManager.saveAsync(); } private _getPackageJsonDependency(dependencyName: string, version: string): PackageJsonDependency { diff --git a/libraries/rush-lib/src/logic/versionMismatch/VersionMismatchFinderEntity.ts b/libraries/rush-lib/src/logic/versionMismatch/VersionMismatchFinderEntity.ts index 054d7291c79..5b2284d97aa 100644 --- a/libraries/rush-lib/src/logic/versionMismatch/VersionMismatchFinderEntity.ts +++ b/libraries/rush-lib/src/logic/versionMismatch/VersionMismatchFinderEntity.ts @@ -15,9 +15,10 @@ export abstract class VersionMismatchFinderEntity { public readonly skipRushCheck: boolean | undefined; public constructor(options: IVersionMismatchFinderEntityOptions) { - this.friendlyName = options.friendlyName; - this.decoupledLocalDependencies = options.decoupledLocalDependencies; - this.skipRushCheck = options.skipRushCheck; + const { friendlyName, decoupledLocalDependencies, skipRushCheck } = options; + this.friendlyName = friendlyName; + this.decoupledLocalDependencies = decoupledLocalDependencies; + this.skipRushCheck = skipRushCheck; } public abstract get filePath(): string; @@ -31,5 +32,5 @@ export abstract class VersionMismatchFinderEntity { dependencyType: DependencyType ): void; public abstract removeDependency(packageName: string, dependencyType: DependencyType): void; - public abstract saveIfModified(): boolean; + public abstract saveIfModifiedAsync(): Promise; } diff --git a/libraries/rush-lib/src/logic/versionMismatch/VersionMismatchFinderProject.ts b/libraries/rush-lib/src/logic/versionMismatch/VersionMismatchFinderProject.ts index 1bbfd4d7a84..cc63370b687 100644 --- a/libraries/rush-lib/src/logic/versionMismatch/VersionMismatchFinderProject.ts +++ b/libraries/rush-lib/src/logic/versionMismatch/VersionMismatchFinderProject.ts @@ -48,7 +48,7 @@ export class VersionMismatchFinderProject extends VersionMismatchFinderEntity { return this._fileManager.removeDependency(packageName, dependencyType); } - public saveIfModified(): boolean { - return this._fileManager.saveIfModified(); + public async saveIfModifiedAsync(): Promise { + return await this._fileManager.saveIfModifiedAsync(); } } diff --git a/libraries/rush-lib/src/pluginFramework/PluginLoader/AutoinstallerPluginLoader.ts b/libraries/rush-lib/src/pluginFramework/PluginLoader/AutoinstallerPluginLoader.ts index ad19acb0386..7528fe72ea7 100644 --- a/libraries/rush-lib/src/pluginFramework/PluginLoader/AutoinstallerPluginLoader.ts +++ b/libraries/rush-lib/src/pluginFramework/PluginLoader/AutoinstallerPluginLoader.ts @@ -6,6 +6,7 @@ import * as path from 'node:path'; import { FileSystem, JsonFile, + NewlineKind, PosixModeBits, type JsonObject, type JsonSchema @@ -68,9 +69,12 @@ export class AutoinstallerPluginLoader extends PluginLoaderBase(longName: string): TParameter; + + /** + * Call this from a plugin hook to indicate that the command has been fully handled + * by the plugin. When set, the default shell command execution will be skipped. + */ + setHandled(): void; } /** @@ -94,7 +106,7 @@ export class RushLifecycleHooks { * The hook to run between preparing the common/temp folder and invoking the package manager during "rush install" or "rush update". */ public readonly beforeInstall: AsyncSeriesHook< - [command: IGlobalCommand, subspace: Subspace, variant: string | undefined] + [command: IRushCommand, subspace: Subspace, variant: string | undefined] > = new AsyncSeriesHook(['command', 'subspace', 'variant'], 'beforeInstall'); /** diff --git a/libraries/rush-lib/src/schemas/command-line.schema.json b/libraries/rush-lib/src/schemas/command-line.schema.json index 0091e7bb7ae..625a2dc31dd 100644 --- a/libraries/rush-lib/src/schemas/command-line.schema.json +++ b/libraries/rush-lib/src/schemas/command-line.schema.json @@ -18,7 +18,7 @@ "title": "Command Kind", "description": "Indicates the kind of command: \"bulk\" commands are run separately for each project; \"global\" commands are run once for the entire repository.", "type": "string", - "enum": ["bulk", "global", "phased"] + "enum": ["bulk", "global", "globalPlugin", "phased"] }, "name": { "title": "Custom Command Name", @@ -168,6 +168,34 @@ } ] }, + "globalPluginCommand": { + "title": "Global Plugin Command", + "description": "A custom command that is run once for the entire repository, whose implementation is provided entirely by a Rush plugin. This command kind can only be used in command-line.json files provided by Rush plugins.", + "type": "object", + "allOf": [ + { "$ref": "#/definitions/baseCommand" }, + { + "type": "object", + "additionalProperties": true, + "properties": { + "commandKind": { + "enum": ["globalPlugin"] + } + } + }, + { + "type": "object", + "additionalProperties": false, + "properties": { + "commandKind": { "$ref": "#/definitions/anything" }, + "name": { "$ref": "#/definitions/anything" }, + "summary": { "$ref": "#/definitions/anything" }, + "description": { "$ref": "#/definitions/anything" }, + "safeForSimultaneousRushProcesses": { "$ref": "#/definitions/anything" } + } + } + ] + }, "phasedCommand": { "title": "Phased Command", "description": "A command that contains multiple phases, that are run separately for each project", @@ -712,6 +740,7 @@ "oneOf": [ { "$ref": "#/definitions/bulkCommand" }, { "$ref": "#/definitions/globalCommand" }, + { "$ref": "#/definitions/globalPluginCommand" }, { "$ref": "#/definitions/phasedCommand" } ] } diff --git a/libraries/rush-lib/src/schemas/rush-project.schema.json b/libraries/rush-lib/src/schemas/rush-project.schema.json index 33fb7933403..11b7a8e7049 100644 --- a/libraries/rush-lib/src/schemas/rush-project.schema.json +++ b/libraries/rush-lib/src/schemas/rush-project.schema.json @@ -106,9 +106,18 @@ ] }, "weight": { - "description": "The number of concurrency units that this operation should take up. The maximum concurrency units is determined by the -p flag.", - "type": "integer", - "minimum": 0 + "oneOf": [ + { + "type": "string", + "pattern": "^[1-9][0-9]*(\\.\\d+)?%$", + "description": "The number of concurrency units that this operation should take up, as a percent of `os.availableParallelism()`. At runtime this value will be clamped to the range `[1, rushParallelism]`, where `rushParallelism` is the requested parallelism to the current Rush command. To have this operation consume no concurrency, use the number 0 instead of a string." + }, + { + "description": "The number of concurrency units that this operation should take up. At runtime this value will be clamped to the range `[0, rushParallelism]`, where `rushParallelism` is the requested parallelism to the current Rush command.", + "type": "integer", + "minimum": 0 + } + ] }, "allowCobuildWithoutCache": { "type": "boolean", diff --git a/libraries/rush-lib/src/scripts/install-run-rush.ts b/libraries/rush-lib/src/scripts/install-run-rush.ts index bfb986d46e4..6fa7e8b21b5 100644 --- a/libraries/rush-lib/src/scripts/install-run-rush.ts +++ b/libraries/rush-lib/src/scripts/install-run-rush.ts @@ -16,6 +16,7 @@ import type { ILogger } from '../utilities/npmrcUtilities'; const PACKAGE_NAME: string = '@microsoft/rush'; const RUSH_PREVIEW_VERSION: string = 'RUSH_PREVIEW_VERSION'; +const RUSH_QUIET_MODE: string = 'RUSH_QUIET_MODE'; const INSTALL_RUN_RUSH_LOCKFILE_PATH_VARIABLE: 'INSTALL_RUN_RUSH_LOCKFILE_PATH' = 'INSTALL_RUN_RUSH_LOCKFILE_PATH'; @@ -72,7 +73,9 @@ function _run(): void { } let commandFound: boolean = false; - let logger: ILogger = { info: console.log, error: console.error }; + + const quietModeEnvValue: string | undefined = process.env[RUSH_QUIET_MODE]; + let quiet: boolean = quietModeEnvValue === '1' || quietModeEnvValue === 'true'; for (const arg of packageBinArgs) { if (arg === '-q' || arg === '--quiet') { @@ -82,10 +85,7 @@ function _run(): void { // To maintain the same user experience, the install-run* scripts pass along this // flag but also use it to suppress any diagnostic information normally printed // to stdout. - logger = { - info: () => {}, - error: console.error - }; + quiet = true; } else if (!arg.startsWith('-') || arg === '-h' || arg === '--help') { // We either found something that looks like a command (i.e. - doesn't start with a "-"), // or we found the -h/--help flag, which can be run without a command @@ -105,6 +105,10 @@ function _run(): void { process.exit(1); } + const logger: ILogger = quiet + ? { info: () => {}, error: console.error } + : { info: console.log, error: console.error }; + runWithErrorAndStatusCode(logger, () => { const version: string = _getRushVersion(logger); logger.info(`The ${RUSH_JSON_FILENAME} configuration requests Rush version ${version}`); diff --git a/libraries/rush-pnpm-kit-v10/.npmignore b/libraries/rush-pnpm-kit-v10/.npmignore index bc349f9a4be..f7a40e10213 100644 --- a/libraries/rush-pnpm-kit-v10/.npmignore +++ b/libraries/rush-pnpm-kit-v10/.npmignore @@ -8,6 +8,7 @@ !/lib/** !/lib-*/** !/dist/** +!/includes/** !CHANGELOG.md !CHANGELOG.json @@ -20,6 +21,9 @@ /lib/**/test/ /lib-*/**/test/ *.test.js +*.test.[cm]js +*.test.d.ts +*.test.d.[cm]ts # NOTE: These don't need to be specified, because NPM includes them automatically. # diff --git a/libraries/rush-pnpm-kit-v10/CHANGELOG.json b/libraries/rush-pnpm-kit-v10/CHANGELOG.json index 18dba8fc591..bef79c104a9 100644 --- a/libraries/rush-pnpm-kit-v10/CHANGELOG.json +++ b/libraries/rush-pnpm-kit-v10/CHANGELOG.json @@ -1,6 +1,66 @@ { "name": "@rushstack/rush-pnpm-kit-v10", "entries": [ + { + "version": "0.2.8", + "tag": "@rushstack/rush-pnpm-kit-v10_v0.2.8", + "date": "Mon, 09 Mar 2026 15:14:08 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.7`" + } + ] + } + }, + { + "version": "0.2.7", + "tag": "@rushstack/rush-pnpm-kit-v10_v0.2.7", + "date": "Wed, 25 Feb 2026 21:39:42 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.6`" + } + ] + } + }, + { + "version": "0.2.6", + "tag": "@rushstack/rush-pnpm-kit-v10_v0.2.6", + "date": "Wed, 25 Feb 2026 00:34:30 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.5`" + } + ] + } + }, + { + "version": "0.2.5", + "tag": "@rushstack/rush-pnpm-kit-v10_v0.2.5", + "date": "Tue, 24 Feb 2026 01:13:27 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.4`" + } + ] + } + }, + { + "version": "0.2.4", + "tag": "@rushstack/rush-pnpm-kit-v10_v0.2.4", + "date": "Mon, 23 Feb 2026 00:42:21 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.3`" + } + ] + } + }, { "version": "0.2.3", "tag": "@rushstack/rush-pnpm-kit-v10_v0.2.3", diff --git a/libraries/rush-pnpm-kit-v10/CHANGELOG.md b/libraries/rush-pnpm-kit-v10/CHANGELOG.md index 14787a9c867..7c0e091ad64 100644 --- a/libraries/rush-pnpm-kit-v10/CHANGELOG.md +++ b/libraries/rush-pnpm-kit-v10/CHANGELOG.md @@ -1,6 +1,31 @@ # Change Log - @rushstack/rush-pnpm-kit-v10 -This log was last generated on Fri, 20 Feb 2026 16:14:49 GMT and should not be manually modified. +This log was last generated on Mon, 09 Mar 2026 15:14:08 GMT and should not be manually modified. + +## 0.2.8 +Mon, 09 Mar 2026 15:14:08 GMT + +_Version update only_ + +## 0.2.7 +Wed, 25 Feb 2026 21:39:42 GMT + +_Version update only_ + +## 0.2.6 +Wed, 25 Feb 2026 00:34:30 GMT + +_Version update only_ + +## 0.2.5 +Tue, 24 Feb 2026 01:13:27 GMT + +_Version update only_ + +## 0.2.4 +Mon, 23 Feb 2026 00:42:21 GMT + +_Version update only_ ## 0.2.3 Fri, 20 Feb 2026 16:14:49 GMT diff --git a/libraries/rush-pnpm-kit-v10/config/api-extractor.json b/libraries/rush-pnpm-kit-v10/config/api-extractor.json index 5dbfda704f4..3dbb76c0e6f 100644 --- a/libraries/rush-pnpm-kit-v10/config/api-extractor.json +++ b/libraries/rush-pnpm-kit-v10/config/api-extractor.json @@ -1,19 +1,4 @@ { "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", - - "mainEntryPointFilePath": "/lib-dts/index.d.ts", - - "apiReport": { - "enabled": true, - "reportFolder": "../../../common/reviews/api" - }, - - "docModel": { - "enabled": true, - "apiJsonFilePath": "../../../common/temp/api/.api.json" - }, - - "dtsRollup": { - "enabled": true - } + "extends": "local-node-rig/profiles/default/config/api-extractor-base.json" } diff --git a/libraries/rush-pnpm-kit-v10/package.json b/libraries/rush-pnpm-kit-v10/package.json index 2ae2b1060e5..3c230273195 100644 --- a/libraries/rush-pnpm-kit-v10/package.json +++ b/libraries/rush-pnpm-kit-v10/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/rush-pnpm-kit-v10", - "version": "0.2.3", + "version": "0.2.8", "description": "rush pnpm kit v10", "license": "MIT", "main": "./lib-commonjs/index.js", diff --git a/libraries/rush-pnpm-kit-v8/.npmignore b/libraries/rush-pnpm-kit-v8/.npmignore index bc349f9a4be..f7a40e10213 100644 --- a/libraries/rush-pnpm-kit-v8/.npmignore +++ b/libraries/rush-pnpm-kit-v8/.npmignore @@ -8,6 +8,7 @@ !/lib/** !/lib-*/** !/dist/** +!/includes/** !CHANGELOG.md !CHANGELOG.json @@ -20,6 +21,9 @@ /lib/**/test/ /lib-*/**/test/ *.test.js +*.test.[cm]js +*.test.d.ts +*.test.d.[cm]ts # NOTE: These don't need to be specified, because NPM includes them automatically. # diff --git a/libraries/rush-pnpm-kit-v8/CHANGELOG.json b/libraries/rush-pnpm-kit-v8/CHANGELOG.json index 0898cfd7119..85ee929927d 100644 --- a/libraries/rush-pnpm-kit-v8/CHANGELOG.json +++ b/libraries/rush-pnpm-kit-v8/CHANGELOG.json @@ -1,6 +1,66 @@ { "name": "@rushstack/rush-pnpm-kit-v8", "entries": [ + { + "version": "0.2.8", + "tag": "@rushstack/rush-pnpm-kit-v8_v0.2.8", + "date": "Mon, 09 Mar 2026 15:14:08 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.7`" + } + ] + } + }, + { + "version": "0.2.7", + "tag": "@rushstack/rush-pnpm-kit-v8_v0.2.7", + "date": "Wed, 25 Feb 2026 21:39:42 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.6`" + } + ] + } + }, + { + "version": "0.2.6", + "tag": "@rushstack/rush-pnpm-kit-v8_v0.2.6", + "date": "Wed, 25 Feb 2026 00:34:30 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.5`" + } + ] + } + }, + { + "version": "0.2.5", + "tag": "@rushstack/rush-pnpm-kit-v8_v0.2.5", + "date": "Tue, 24 Feb 2026 01:13:27 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.4`" + } + ] + } + }, + { + "version": "0.2.4", + "tag": "@rushstack/rush-pnpm-kit-v8_v0.2.4", + "date": "Mon, 23 Feb 2026 00:42:21 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.3`" + } + ] + } + }, { "version": "0.2.3", "tag": "@rushstack/rush-pnpm-kit-v8_v0.2.3", diff --git a/libraries/rush-pnpm-kit-v8/CHANGELOG.md b/libraries/rush-pnpm-kit-v8/CHANGELOG.md index 2e915043922..997cc2a55f0 100644 --- a/libraries/rush-pnpm-kit-v8/CHANGELOG.md +++ b/libraries/rush-pnpm-kit-v8/CHANGELOG.md @@ -1,6 +1,31 @@ # Change Log - @rushstack/rush-pnpm-kit-v8 -This log was last generated on Fri, 20 Feb 2026 16:14:49 GMT and should not be manually modified. +This log was last generated on Mon, 09 Mar 2026 15:14:08 GMT and should not be manually modified. + +## 0.2.8 +Mon, 09 Mar 2026 15:14:08 GMT + +_Version update only_ + +## 0.2.7 +Wed, 25 Feb 2026 21:39:42 GMT + +_Version update only_ + +## 0.2.6 +Wed, 25 Feb 2026 00:34:30 GMT + +_Version update only_ + +## 0.2.5 +Tue, 24 Feb 2026 01:13:27 GMT + +_Version update only_ + +## 0.2.4 +Mon, 23 Feb 2026 00:42:21 GMT + +_Version update only_ ## 0.2.3 Fri, 20 Feb 2026 16:14:49 GMT diff --git a/libraries/rush-pnpm-kit-v8/config/api-extractor.json b/libraries/rush-pnpm-kit-v8/config/api-extractor.json index 5dbfda704f4..3dbb76c0e6f 100644 --- a/libraries/rush-pnpm-kit-v8/config/api-extractor.json +++ b/libraries/rush-pnpm-kit-v8/config/api-extractor.json @@ -1,19 +1,4 @@ { "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", - - "mainEntryPointFilePath": "/lib-dts/index.d.ts", - - "apiReport": { - "enabled": true, - "reportFolder": "../../../common/reviews/api" - }, - - "docModel": { - "enabled": true, - "apiJsonFilePath": "../../../common/temp/api/.api.json" - }, - - "dtsRollup": { - "enabled": true - } + "extends": "local-node-rig/profiles/default/config/api-extractor-base.json" } diff --git a/libraries/rush-pnpm-kit-v8/package.json b/libraries/rush-pnpm-kit-v8/package.json index f708b3507c2..95047eaf357 100644 --- a/libraries/rush-pnpm-kit-v8/package.json +++ b/libraries/rush-pnpm-kit-v8/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/rush-pnpm-kit-v8", - "version": "0.2.3", + "version": "0.2.8", "description": "rush pnpm kit v8", "license": "MIT", "main": "./lib-commonjs/index.js", diff --git a/libraries/rush-pnpm-kit-v9/.npmignore b/libraries/rush-pnpm-kit-v9/.npmignore index bc349f9a4be..f7a40e10213 100644 --- a/libraries/rush-pnpm-kit-v9/.npmignore +++ b/libraries/rush-pnpm-kit-v9/.npmignore @@ -8,6 +8,7 @@ !/lib/** !/lib-*/** !/dist/** +!/includes/** !CHANGELOG.md !CHANGELOG.json @@ -20,6 +21,9 @@ /lib/**/test/ /lib-*/**/test/ *.test.js +*.test.[cm]js +*.test.d.ts +*.test.d.[cm]ts # NOTE: These don't need to be specified, because NPM includes them automatically. # diff --git a/libraries/rush-pnpm-kit-v9/CHANGELOG.json b/libraries/rush-pnpm-kit-v9/CHANGELOG.json index eee77f567c8..cd103f1a982 100644 --- a/libraries/rush-pnpm-kit-v9/CHANGELOG.json +++ b/libraries/rush-pnpm-kit-v9/CHANGELOG.json @@ -1,6 +1,66 @@ { "name": "@rushstack/rush-pnpm-kit-v9", "entries": [ + { + "version": "0.2.8", + "tag": "@rushstack/rush-pnpm-kit-v9_v0.2.8", + "date": "Mon, 09 Mar 2026 15:14:08 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.7`" + } + ] + } + }, + { + "version": "0.2.7", + "tag": "@rushstack/rush-pnpm-kit-v9_v0.2.7", + "date": "Wed, 25 Feb 2026 21:39:42 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.6`" + } + ] + } + }, + { + "version": "0.2.6", + "tag": "@rushstack/rush-pnpm-kit-v9_v0.2.6", + "date": "Wed, 25 Feb 2026 00:34:30 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.5`" + } + ] + } + }, + { + "version": "0.2.5", + "tag": "@rushstack/rush-pnpm-kit-v9_v0.2.5", + "date": "Tue, 24 Feb 2026 01:13:27 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.4`" + } + ] + } + }, + { + "version": "0.2.4", + "tag": "@rushstack/rush-pnpm-kit-v9_v0.2.4", + "date": "Mon, 23 Feb 2026 00:42:21 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.3`" + } + ] + } + }, { "version": "0.2.3", "tag": "@rushstack/rush-pnpm-kit-v9_v0.2.3", diff --git a/libraries/rush-pnpm-kit-v9/CHANGELOG.md b/libraries/rush-pnpm-kit-v9/CHANGELOG.md index 4732bb5e1b9..ffaa7bdec2b 100644 --- a/libraries/rush-pnpm-kit-v9/CHANGELOG.md +++ b/libraries/rush-pnpm-kit-v9/CHANGELOG.md @@ -1,6 +1,31 @@ # Change Log - @rushstack/rush-pnpm-kit-v9 -This log was last generated on Fri, 20 Feb 2026 16:14:49 GMT and should not be manually modified. +This log was last generated on Mon, 09 Mar 2026 15:14:08 GMT and should not be manually modified. + +## 0.2.8 +Mon, 09 Mar 2026 15:14:08 GMT + +_Version update only_ + +## 0.2.7 +Wed, 25 Feb 2026 21:39:42 GMT + +_Version update only_ + +## 0.2.6 +Wed, 25 Feb 2026 00:34:30 GMT + +_Version update only_ + +## 0.2.5 +Tue, 24 Feb 2026 01:13:27 GMT + +_Version update only_ + +## 0.2.4 +Mon, 23 Feb 2026 00:42:21 GMT + +_Version update only_ ## 0.2.3 Fri, 20 Feb 2026 16:14:49 GMT diff --git a/libraries/rush-pnpm-kit-v9/config/api-extractor.json b/libraries/rush-pnpm-kit-v9/config/api-extractor.json index 5dbfda704f4..3dbb76c0e6f 100644 --- a/libraries/rush-pnpm-kit-v9/config/api-extractor.json +++ b/libraries/rush-pnpm-kit-v9/config/api-extractor.json @@ -1,19 +1,4 @@ { "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", - - "mainEntryPointFilePath": "/lib-dts/index.d.ts", - - "apiReport": { - "enabled": true, - "reportFolder": "../../../common/reviews/api" - }, - - "docModel": { - "enabled": true, - "apiJsonFilePath": "../../../common/temp/api/.api.json" - }, - - "dtsRollup": { - "enabled": true - } + "extends": "local-node-rig/profiles/default/config/api-extractor-base.json" } diff --git a/libraries/rush-pnpm-kit-v9/package.json b/libraries/rush-pnpm-kit-v9/package.json index 56fdd57609e..e7c3ef546f8 100644 --- a/libraries/rush-pnpm-kit-v9/package.json +++ b/libraries/rush-pnpm-kit-v9/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/rush-pnpm-kit-v9", - "version": "0.2.3", + "version": "0.2.8", "description": "rush pnpm kit v9", "license": "MIT", "main": "./lib-commonjs/index.js", diff --git a/libraries/rush-sdk/.npmignore b/libraries/rush-sdk/.npmignore index b0201f80fdc..80ba44fed93 100644 --- a/libraries/rush-sdk/.npmignore +++ b/libraries/rush-sdk/.npmignore @@ -8,6 +8,7 @@ !/lib/** !/lib-*/** !/dist/** +!/includes/** !CHANGELOG.md !CHANGELOG.json @@ -20,6 +21,9 @@ /lib/**/test/ /lib-*/**/test/ *.test.js +*.test.[cm]js +*.test.d.ts +*.test.d.[cm]ts # NOTE: These don't need to be specified, because NPM includes them automatically. # diff --git a/libraries/rush-sdk/config/api-extractor.json b/libraries/rush-sdk/config/api-extractor.json index 545b27074b6..981641d969b 100644 --- a/libraries/rush-sdk/config/api-extractor.json +++ b/libraries/rush-sdk/config/api-extractor.json @@ -1,16 +1,11 @@ { "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", + "extends": "local-node-rig/profiles/default/config/api-extractor-base.json", "mainEntryPointFilePath": "/lib-intermediate-dts/loader.d.ts", - "apiReport": { - "enabled": true, - "reportFolder": "../../../common/reviews/api" - }, - "docModel": { - "enabled": false, - "apiJsonFilePath": "../../../common/temp/api/.api.json" + "enabled": false }, "dtsRollup": { diff --git a/libraries/rush-sdk/package.json b/libraries/rush-sdk/package.json index 7286ce21ac1..48eb564913f 100644 --- a/libraries/rush-sdk/package.json +++ b/libraries/rush-sdk/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/rush-sdk", - "version": "5.169.2", + "version": "5.172.1", "description": "An API for interacting with the Rush engine", "repository": { "type": "git", diff --git a/libraries/rush-themed-ui/.npmignore b/libraries/rush-themed-ui/.npmignore index bc349f9a4be..f7a40e10213 100644 --- a/libraries/rush-themed-ui/.npmignore +++ b/libraries/rush-themed-ui/.npmignore @@ -8,6 +8,7 @@ !/lib/** !/lib-*/** !/dist/** +!/includes/** !CHANGELOG.md !CHANGELOG.json @@ -20,6 +21,9 @@ /lib/**/test/ /lib-*/**/test/ *.test.js +*.test.[cm]js +*.test.d.ts +*.test.d.[cm]ts # NOTE: These don't need to be specified, because NPM includes them automatically. # diff --git a/libraries/rush-themed-ui/config/api-extractor.json b/libraries/rush-themed-ui/config/api-extractor.json index 1cb6d1c00a1..ccf98d88f00 100644 --- a/libraries/rush-themed-ui/config/api-extractor.json +++ b/libraries/rush-themed-ui/config/api-extractor.json @@ -1,427 +1,8 @@ -/** - * Config file for API Extractor. For more info, please visit: https://api-extractor.com - */ { "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", + "extends": "local-web-rig/profiles/library/config/api-extractor-base.json", - /** - * Optionally specifies another JSON config file that this file extends from. This provides a way for - * standard settings to be shared across multiple projects. - * - * If the path starts with "./" or "../", the path is resolved relative to the folder of the file that contains - * the "extends" field. Otherwise, the first path segment is interpreted as an NPM package name, and will be - * resolved using NodeJS require(). - * - * SUPPORTED TOKENS: none - * DEFAULT VALUE: "" - */ - // "extends": "./shared/api-extractor-base.json" - // "extends": "my-package/include/api-extractor-base.json" - - /** - * Determines the "" token that can be used with other config file settings. The project folder - * typically contains the tsconfig.json and package.json config files, but the path is user-defined. - * - * The path is resolved relative to the folder of the config file that contains the setting. - * - * The default value for "projectFolder" is the token "", which means the folder is determined by traversing - * parent folders, starting from the folder containing api-extractor.json, and stopping at the first folder - * that contains a tsconfig.json file. If a tsconfig.json file cannot be found in this way, then an error - * will be reported. - * - * SUPPORTED TOKENS: - * DEFAULT VALUE: "" - */ - // "projectFolder": "..", - - /** - * (REQUIRED) Specifies the .d.ts file to be used as the starting point for analysis. API Extractor - * analyzes the symbols exported by this module. - * - * The file extension must be ".d.ts" and not ".ts". - * - * The path is resolved relative to the folder of the config file that contains the setting; to change this, - * prepend a folder token such as "". - * - * SUPPORTED TOKENS: , , - */ - "mainEntryPointFilePath": "/lib-dts/index.d.ts", - - /** - * A list of NPM package names whose exports should be treated as part of this package. - * - * For example, suppose that Webpack is used to generate a distributed bundle for the project "library1", - * and another NPM package "library2" is embedded in this bundle. Some types from library2 may become part - * of the exported API for library1, but by default API Extractor would generate a .d.ts rollup that explicitly - * imports library2. To avoid this, we can specify: - * - * "bundledPackages": [ "library2" ], - * - * This would direct API Extractor to embed those types directly in the .d.ts rollup, as if they had been - * local files for library1. - */ - "bundledPackages": [], - - /** - * Specifies what type of newlines API Extractor should use when writing output files. By default, the output files - * will be written with Windows-style newlines. To use POSIX-style newlines, specify "lf" instead. - * To use the OS's default newline kind, specify "os". - * - * DEFAULT VALUE: "crlf" - */ - // "newlineKind": "crlf", - - /** - * Set to true when invoking API Extractor's test harness. When `testMode` is true, the `toolVersion` field in the - * .api.json file is assigned an empty string to prevent spurious diffs in output files tracked for tests. - * - * DEFAULT VALUE: "false" - */ - // "testMode": false, - - /** - * Specifies how API Extractor sorts members of an enum when generating the .api.json file. By default, the output - * files will be sorted alphabetically, which is "by-name". To keep the ordering in the source code, specify - * "preserve". - * - * DEFAULT VALUE: "by-name" - */ - // "enumMemberOrder": "by-name", - - /** - * Determines how the TypeScript compiler engine will be invoked by API Extractor. - */ - "compiler": { - /** - * Specifies the path to the tsconfig.json file to be used by API Extractor when analyzing the project. - * - * The path is resolved relative to the folder of the config file that contains the setting; to change this, - * prepend a folder token such as "". - * - * Note: This setting will be ignored if "overrideTsconfig" is used. - * - * SUPPORTED TOKENS: , , - * DEFAULT VALUE: "/tsconfig.json" - */ - // "tsconfigFilePath": "/tsconfig.json", - /** - * Provides a compiler configuration that will be used instead of reading the tsconfig.json file from disk. - * The object must conform to the TypeScript tsconfig schema: - * - * http://json.schemastore.org/tsconfig - * - * If omitted, then the tsconfig.json file will be read from the "projectFolder". - * - * DEFAULT VALUE: no overrideTsconfig section - */ - // "overrideTsconfig": { - // . . . - // } - /** - * This option causes the compiler to be invoked with the --skipLibCheck option. This option is not recommended - * and may cause API Extractor to produce incomplete or incorrect declarations, but it may be required when - * dependencies contain declarations that are incompatible with the TypeScript engine that API Extractor uses - * for its analysis. Where possible, the underlying issue should be fixed rather than relying on skipLibCheck. - * - * DEFAULT VALUE: false - */ - // "skipLibCheck": true, - }, - - /** - * Configures how the API report file (*.api.md) will be generated. - */ - "apiReport": { - /** - * (REQUIRED) Whether to generate an API report. - */ - "enabled": true, - - /** - * The filename for the API report files. It will be combined with "reportFolder" or "reportTempFolder" to produce - * a full file path. - * - * The file extension should be ".api.md", and the string should not contain a path separator such as "\" or "/". - * - * SUPPORTED TOKENS: , - * DEFAULT VALUE: ".api.md" - */ - // "reportFileName": ".api.md", - - /** - * Specifies the folder where the API report file is written. The file name portion is determined by - * the "reportFileName" setting. - * - * The API report file is normally tracked by Git. Changes to it can be used to trigger a branch policy, - * e.g. for an API review. - * - * The path is resolved relative to the folder of the config file that contains the setting; to change this, - * prepend a folder token such as "". - * - * SUPPORTED TOKENS: , , - * DEFAULT VALUE: "/temp/" - */ - "reportFolder": "../../../common/reviews/api" - - /** - * Specifies the folder where the temporary report file is written. The file name portion is determined by - * the "reportFileName" setting. - * - * After the temporary file is written to disk, it is compared with the file in the "reportFolder". - * If they are different, a production build will fail. - * - * The path is resolved relative to the folder of the config file that contains the setting; to change this, - * prepend a folder token such as "". - * - * SUPPORTED TOKENS: , , - * DEFAULT VALUE: "/temp/" - */ - // "reportTempFolder": "/temp/", - - /** - * Whether "forgotten exports" should be included in the API report file. Forgotten exports are declarations - * flagged with `ae-forgotten-export` warnings. See https://api-extractor.com/pages/messages/ae-forgotten-export/ to - * learn more. - * - * DEFAULT VALUE: "false" - */ - // "includeForgottenExports": false - }, - - /** - * Configures how the doc model file (*.api.json) will be generated. - */ "docModel": { - /** - * (REQUIRED) Whether to generate a doc model file. - */ "enabled": false - - /** - * The output path for the doc model file. The file extension should be ".api.json". - * - * The path is resolved relative to the folder of the config file that contains the setting; to change this, - * prepend a folder token such as "". - * - * SUPPORTED TOKENS: , , - * DEFAULT VALUE: "/temp/.api.json" - */ - // "apiJsonFilePath": "/temp/.api.json", - - /** - * Whether "forgotten exports" should be included in the doc model file. Forgotten exports are declarations - * flagged with `ae-forgotten-export` warnings. See https://api-extractor.com/pages/messages/ae-forgotten-export/ to - * learn more. - * - * DEFAULT VALUE: "false" - */ - // "includeForgottenExports": false, - - /** - * The base URL where the project's source code can be viewed on a website such as GitHub or - * Azure DevOps. This URL path corresponds to the `` path on disk. - * - * This URL is concatenated with the file paths serialized to the doc model to produce URL file paths to individual API items. - * For example, if the `projectFolderUrl` is "https://github.com/microsoft/rushstack/tree/main/apps/api-extractor" and an API - * item's file path is "api/ExtractorConfig.ts", the full URL file path would be - * "https://github.com/microsoft/rushstack/tree/main/apps/api-extractor/api/ExtractorConfig.js". - * - * Can be omitted if you don't need source code links in your API documentation reference. - * - * SUPPORTED TOKENS: none - * DEFAULT VALUE: "" - */ - // "projectFolderUrl": "http://github.com/path/to/your/projectFolder" - }, - - /** - * Configures how the .d.ts rollup file will be generated. - */ - "dtsRollup": { - /** - * (REQUIRED) Whether to generate the .d.ts rollup file. - */ - "enabled": true - - /** - * Specifies the output path for a .d.ts rollup file to be generated without any trimming. - * This file will include all declarations that are exported by the main entry point. - * - * If the path is an empty string, then this file will not be written. - * - * The path is resolved relative to the folder of the config file that contains the setting; to change this, - * prepend a folder token such as "". - * - * SUPPORTED TOKENS: , , - * DEFAULT VALUE: "/dist/.d.ts" - */ - // "untrimmedFilePath": "/dist/.d.ts", - - /** - * Specifies the output path for a .d.ts rollup file to be generated with trimming for an "alpha" release. - * This file will include only declarations that are marked as "@public", "@beta", or "@alpha". - * - * The path is resolved relative to the folder of the config file that contains the setting; to change this, - * prepend a folder token such as "". - * - * SUPPORTED TOKENS: , , - * DEFAULT VALUE: "" - */ - // "alphaTrimmedFilePath": "/dist/-alpha.d.ts", - - /** - * Specifies the output path for a .d.ts rollup file to be generated with trimming for a "beta" release. - * This file will include only declarations that are marked as "@public" or "@beta". - * - * The path is resolved relative to the folder of the config file that contains the setting; to change this, - * prepend a folder token such as "". - * - * SUPPORTED TOKENS: , , - * DEFAULT VALUE: "" - */ - // "betaTrimmedFilePath": "/dist/-beta.d.ts", - - /** - * Specifies the output path for a .d.ts rollup file to be generated with trimming for a "public" release. - * This file will include only declarations that are marked as "@public". - * - * If the path is an empty string, then this file will not be written. - * - * The path is resolved relative to the folder of the config file that contains the setting; to change this, - * prepend a folder token such as "". - * - * SUPPORTED TOKENS: , , - * DEFAULT VALUE: "" - */ - // "publicTrimmedFilePath": "/dist/-public.d.ts", - - /** - * When a declaration is trimmed, by default it will be replaced by a code comment such as - * "Excluded from this release type: exampleMember". Set "omitTrimmingComments" to true to remove the - * declaration completely. - * - * DEFAULT VALUE: false - */ - // "omitTrimmingComments": true - }, - - /** - * Configures how the tsdoc-metadata.json file will be generated. - */ - "tsdocMetadata": { - /** - * Whether to generate the tsdoc-metadata.json file. - * - * DEFAULT VALUE: true - */ - // "enabled": true, - /** - * Specifies where the TSDoc metadata file should be written. - * - * The path is resolved relative to the folder of the config file that contains the setting; to change this, - * prepend a folder token such as "". - * - * The default value is "", which causes the path to be automatically inferred from the "tsdocMetadata", - * "typings" or "main" fields of the project's package.json. If none of these fields are set, the lookup - * falls back to "tsdoc-metadata.json" in the package folder. - * - * SUPPORTED TOKENS: , , - * DEFAULT VALUE: "" - */ - // "tsdocMetadataFilePath": "/dist/tsdoc-metadata.json" - }, - - /** - * Configures how API Extractor reports error and warning messages produced during analysis. - * - * There are three sources of messages: compiler messages, API Extractor messages, and TSDoc messages. - */ - "messages": { - /** - * Configures handling of diagnostic messages reported by the TypeScript compiler engine while analyzing - * the input .d.ts files. - * - * TypeScript message identifiers start with "TS" followed by an integer. For example: "TS2551" - * - * DEFAULT VALUE: A single "default" entry with logLevel=warning. - */ - "compilerMessageReporting": { - /** - * Configures the default routing for messages that don't match an explicit rule in this table. - */ - "default": { - /** - * Specifies whether the message should be written to the the tool's output log. Note that - * the "addToApiReportFile" property may supersede this option. - * - * Possible values: "error", "warning", "none" - * - * Errors cause the build to fail and return a nonzero exit code. Warnings cause a production build fail - * and return a nonzero exit code. For a non-production build (e.g. when "api-extractor run" includes - * the "--local" option), the warning is displayed but the build will not fail. - * - * DEFAULT VALUE: "warning" - */ - "logLevel": "warning" - - /** - * When addToApiReportFile is true: If API Extractor is configured to write an API report file (.api.md), - * then the message will be written inside that file; otherwise, the message is instead logged according to - * the "logLevel" option. - * - * DEFAULT VALUE: false - */ - // "addToApiReportFile": false - } - - // "TS2551": { - // "logLevel": "warning", - // "addToApiReportFile": true - // }, - // - // . . . - }, - - /** - * Configures handling of messages reported by API Extractor during its analysis. - * - * API Extractor message identifiers start with "ae-". For example: "ae-extra-release-tag" - * - * DEFAULT VALUE: See api-extractor-defaults.json for the complete table of extractorMessageReporting mappings - */ - "extractorMessageReporting": { - "default": { - "logLevel": "warning" - // "addToApiReportFile": false - } - - // "ae-extra-release-tag": { - // "logLevel": "warning", - // "addToApiReportFile": true - // }, - // - // . . . - }, - - /** - * Configures handling of messages reported by the TSDoc parser when analyzing code comments. - * - * TSDoc message identifiers start with "tsdoc-". For example: "tsdoc-link-tag-unescaped-text" - * - * DEFAULT VALUE: A single "default" entry with logLevel=warning. - */ - "tsdocMessageReporting": { - "default": { - "logLevel": "warning" - // "addToApiReportFile": false - } - - // "tsdoc-link-tag-unescaped-text": { - // "logLevel": "warning", - // "addToApiReportFile": true - // }, - // - // . . . - } } } diff --git a/libraries/rushell/.npmignore b/libraries/rushell/.npmignore index bc349f9a4be..f7a40e10213 100644 --- a/libraries/rushell/.npmignore +++ b/libraries/rushell/.npmignore @@ -8,6 +8,7 @@ !/lib/** !/lib-*/** !/dist/** +!/includes/** !CHANGELOG.md !CHANGELOG.json @@ -20,6 +21,9 @@ /lib/**/test/ /lib-*/**/test/ *.test.js +*.test.[cm]js +*.test.d.ts +*.test.d.[cm]ts # NOTE: These don't need to be specified, because NPM includes them automatically. # diff --git a/libraries/rushell/config/api-extractor.json b/libraries/rushell/config/api-extractor.json index 4ec2e429995..3dbb76c0e6f 100644 --- a/libraries/rushell/config/api-extractor.json +++ b/libraries/rushell/config/api-extractor.json @@ -1,18 +1,4 @@ { "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", - - "mainEntryPointFilePath": "/lib-dts/index.d.ts", - - "apiReport": { - "enabled": true, - "reportFolder": "../../../common/reviews/api" - }, - - "docModel": { - "enabled": true - }, - - "dtsRollup": { - "enabled": true - } + "extends": "local-node-rig/profiles/default/config/api-extractor-base.json" } diff --git a/libraries/stream-collator/.npmignore b/libraries/stream-collator/.npmignore index bc349f9a4be..f7a40e10213 100644 --- a/libraries/stream-collator/.npmignore +++ b/libraries/stream-collator/.npmignore @@ -8,6 +8,7 @@ !/lib/** !/lib-*/** !/dist/** +!/includes/** !CHANGELOG.md !CHANGELOG.json @@ -20,6 +21,9 @@ /lib/**/test/ /lib-*/**/test/ *.test.js +*.test.[cm]js +*.test.d.ts +*.test.d.[cm]ts # NOTE: These don't need to be specified, because NPM includes them automatically. # diff --git a/libraries/stream-collator/CHANGELOG.json b/libraries/stream-collator/CHANGELOG.json index 9438ca5c290..458d1b06bac 100644 --- a/libraries/stream-collator/CHANGELOG.json +++ b/libraries/stream-collator/CHANGELOG.json @@ -1,6 +1,78 @@ { "name": "@rushstack/stream-collator", "entries": [ + { + "version": "4.2.7", + "tag": "@rushstack/stream-collator_v4.2.7", + "date": "Mon, 09 Mar 2026 15:14:08 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.7`" + } + ] + } + }, + { + "version": "4.2.6", + "tag": "@rushstack/stream-collator_v4.2.6", + "date": "Wed, 25 Feb 2026 21:39:42 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.6`" + } + ] + } + }, + { + "version": "4.2.5", + "tag": "@rushstack/stream-collator_v4.2.5", + "date": "Wed, 25 Feb 2026 00:34:30 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `5.20.3`" + }, + { + "comment": "Updating dependency \"@rushstack/terminal\" to `0.22.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.5`" + } + ] + } + }, + { + "version": "4.2.4", + "tag": "@rushstack/stream-collator_v4.2.4", + "date": "Tue, 24 Feb 2026 01:13:27 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `5.20.2`" + }, + { + "comment": "Updating dependency \"@rushstack/terminal\" to `0.22.2`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.4`" + } + ] + } + }, + { + "version": "4.2.3", + "tag": "@rushstack/stream-collator_v4.2.3", + "date": "Mon, 23 Feb 2026 00:42:21 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.3`" + } + ] + } + }, { "version": "4.2.2", "tag": "@rushstack/stream-collator_v4.2.2", diff --git a/libraries/stream-collator/CHANGELOG.md b/libraries/stream-collator/CHANGELOG.md index 30dc79f65cc..6da3f5840e4 100644 --- a/libraries/stream-collator/CHANGELOG.md +++ b/libraries/stream-collator/CHANGELOG.md @@ -1,6 +1,31 @@ # Change Log - @rushstack/stream-collator -This log was last generated on Fri, 20 Feb 2026 16:14:49 GMT and should not be manually modified. +This log was last generated on Mon, 09 Mar 2026 15:14:08 GMT and should not be manually modified. + +## 4.2.7 +Mon, 09 Mar 2026 15:14:08 GMT + +_Version update only_ + +## 4.2.6 +Wed, 25 Feb 2026 21:39:42 GMT + +_Version update only_ + +## 4.2.5 +Wed, 25 Feb 2026 00:34:30 GMT + +_Version update only_ + +## 4.2.4 +Tue, 24 Feb 2026 01:13:27 GMT + +_Version update only_ + +## 4.2.3 +Mon, 23 Feb 2026 00:42:21 GMT + +_Version update only_ ## 4.2.2 Fri, 20 Feb 2026 16:14:49 GMT diff --git a/libraries/stream-collator/config/api-extractor.json b/libraries/stream-collator/config/api-extractor.json index 5dbfda704f4..3dbb76c0e6f 100644 --- a/libraries/stream-collator/config/api-extractor.json +++ b/libraries/stream-collator/config/api-extractor.json @@ -1,19 +1,4 @@ { "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", - - "mainEntryPointFilePath": "/lib-dts/index.d.ts", - - "apiReport": { - "enabled": true, - "reportFolder": "../../../common/reviews/api" - }, - - "docModel": { - "enabled": true, - "apiJsonFilePath": "../../../common/temp/api/.api.json" - }, - - "dtsRollup": { - "enabled": true - } + "extends": "local-node-rig/profiles/default/config/api-extractor-base.json" } diff --git a/libraries/stream-collator/package.json b/libraries/stream-collator/package.json index 8825ff5670a..421761fc523 100644 --- a/libraries/stream-collator/package.json +++ b/libraries/stream-collator/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/stream-collator", - "version": "4.2.2", + "version": "4.2.7", "description": "Display intelligible realtime output from concurrent processes", "repository": { "type": "git", diff --git a/libraries/terminal/.npmignore b/libraries/terminal/.npmignore index bc349f9a4be..f7a40e10213 100644 --- a/libraries/terminal/.npmignore +++ b/libraries/terminal/.npmignore @@ -8,6 +8,7 @@ !/lib/** !/lib-*/** !/dist/** +!/includes/** !CHANGELOG.md !CHANGELOG.json @@ -20,6 +21,9 @@ /lib/**/test/ /lib-*/**/test/ *.test.js +*.test.[cm]js +*.test.d.ts +*.test.d.[cm]ts # NOTE: These don't need to be specified, because NPM includes them automatically. # diff --git a/libraries/terminal/CHANGELOG.json b/libraries/terminal/CHANGELOG.json index 038f6b94b0a..16db56269c5 100644 --- a/libraries/terminal/CHANGELOG.json +++ b/libraries/terminal/CHANGELOG.json @@ -1,6 +1,30 @@ { "name": "@rushstack/terminal", "entries": [ + { + "version": "0.22.3", + "tag": "@rushstack/terminal_v0.22.3", + "date": "Wed, 25 Feb 2026 00:34:30 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `5.20.3`" + } + ] + } + }, + { + "version": "0.22.2", + "tag": "@rushstack/terminal_v0.22.2", + "date": "Tue, 24 Feb 2026 01:13:27 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `5.20.2`" + } + ] + } + }, { "version": "0.22.1", "tag": "@rushstack/terminal_v0.22.1", diff --git a/libraries/terminal/CHANGELOG.md b/libraries/terminal/CHANGELOG.md index adaeb07b941..d9b3e1143b6 100644 --- a/libraries/terminal/CHANGELOG.md +++ b/libraries/terminal/CHANGELOG.md @@ -1,6 +1,16 @@ # Change Log - @rushstack/terminal -This log was last generated on Fri, 20 Feb 2026 00:15:04 GMT and should not be manually modified. +This log was last generated on Wed, 25 Feb 2026 00:34:30 GMT and should not be manually modified. + +## 0.22.3 +Wed, 25 Feb 2026 00:34:30 GMT + +_Version update only_ + +## 0.22.2 +Tue, 24 Feb 2026 01:13:27 GMT + +_Version update only_ ## 0.22.1 Fri, 20 Feb 2026 00:15:04 GMT diff --git a/libraries/terminal/config/api-extractor.json b/libraries/terminal/config/api-extractor.json index 5dbfda704f4..b53db1d0910 100644 --- a/libraries/terminal/config/api-extractor.json +++ b/libraries/terminal/config/api-extractor.json @@ -1,19 +1,4 @@ { "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", - - "mainEntryPointFilePath": "/lib-dts/index.d.ts", - - "apiReport": { - "enabled": true, - "reportFolder": "../../../common/reviews/api" - }, - - "docModel": { - "enabled": true, - "apiJsonFilePath": "../../../common/temp/api/.api.json" - }, - - "dtsRollup": { - "enabled": true - } + "extends": "decoupled-local-node-rig/profiles/default/config/api-extractor-base.json" } diff --git a/libraries/terminal/package.json b/libraries/terminal/package.json index 83a4d64e8a8..2d85ae5bd06 100644 --- a/libraries/terminal/package.json +++ b/libraries/terminal/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/terminal", - "version": "0.22.1", + "version": "0.22.3", "description": "User interface primitives for console applications", "main": "./lib-commonjs/index.js", "module": "./lib-esm/index.js", @@ -44,7 +44,7 @@ "supports-color": "~8.1.1" }, "devDependencies": { - "@rushstack/heft": "1.2.0", + "@rushstack/heft": "1.2.7", "@types/supports-color": "8.1.3", "decoupled-local-node-rig": "workspace:*", "eslint": "~9.37.0" diff --git a/libraries/tree-pattern/.npmignore b/libraries/tree-pattern/.npmignore index bc349f9a4be..f7a40e10213 100644 --- a/libraries/tree-pattern/.npmignore +++ b/libraries/tree-pattern/.npmignore @@ -8,6 +8,7 @@ !/lib/** !/lib-*/** !/dist/** +!/includes/** !CHANGELOG.md !CHANGELOG.json @@ -20,6 +21,9 @@ /lib/**/test/ /lib-*/**/test/ *.test.js +*.test.[cm]js +*.test.d.ts +*.test.d.[cm]ts # NOTE: These don't need to be specified, because NPM includes them automatically. # diff --git a/libraries/tree-pattern/config/api-extractor.json b/libraries/tree-pattern/config/api-extractor.json index 5dbfda704f4..b53db1d0910 100644 --- a/libraries/tree-pattern/config/api-extractor.json +++ b/libraries/tree-pattern/config/api-extractor.json @@ -1,19 +1,4 @@ { "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", - - "mainEntryPointFilePath": "/lib-dts/index.d.ts", - - "apiReport": { - "enabled": true, - "reportFolder": "../../../common/reviews/api" - }, - - "docModel": { - "enabled": true, - "apiJsonFilePath": "../../../common/temp/api/.api.json" - }, - - "dtsRollup": { - "enabled": true - } + "extends": "decoupled-local-node-rig/profiles/default/config/api-extractor-base.json" } diff --git a/libraries/tree-pattern/package.json b/libraries/tree-pattern/package.json index c85bb85aba1..9f693a0e483 100644 --- a/libraries/tree-pattern/package.json +++ b/libraries/tree-pattern/package.json @@ -39,7 +39,7 @@ "_phase:test": "heft run --only test -- --clean" }, "devDependencies": { - "@rushstack/heft": "1.2.0", + "@rushstack/heft": "1.2.7", "decoupled-local-node-rig": "workspace:*", "eslint": "~9.37.0" }, diff --git a/libraries/ts-command-line/.npmignore b/libraries/ts-command-line/.npmignore index bc349f9a4be..f7a40e10213 100644 --- a/libraries/ts-command-line/.npmignore +++ b/libraries/ts-command-line/.npmignore @@ -8,6 +8,7 @@ !/lib/** !/lib-*/** !/dist/** +!/includes/** !CHANGELOG.md !CHANGELOG.json @@ -20,6 +21,9 @@ /lib/**/test/ /lib-*/**/test/ *.test.js +*.test.[cm]js +*.test.d.ts +*.test.d.[cm]ts # NOTE: These don't need to be specified, because NPM includes them automatically. # diff --git a/libraries/ts-command-line/CHANGELOG.json b/libraries/ts-command-line/CHANGELOG.json index 0455f233c94..d633a77fa3d 100644 --- a/libraries/ts-command-line/CHANGELOG.json +++ b/libraries/ts-command-line/CHANGELOG.json @@ -1,6 +1,36 @@ { "name": "@rushstack/ts-command-line", "entries": [ + { + "version": "5.3.3", + "tag": "@rushstack/ts-command-line_v5.3.3", + "date": "Wed, 25 Feb 2026 00:34:30 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/terminal\" to `0.22.3`" + }, + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `5.20.3`" + } + ] + } + }, + { + "version": "5.3.2", + "tag": "@rushstack/ts-command-line_v5.3.2", + "date": "Tue, 24 Feb 2026 01:13:27 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/terminal\" to `0.22.2`" + }, + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `5.20.2`" + } + ] + } + }, { "version": "5.3.1", "tag": "@rushstack/ts-command-line_v5.3.1", diff --git a/libraries/ts-command-line/CHANGELOG.md b/libraries/ts-command-line/CHANGELOG.md index 5ca0dff491a..4b1a6293673 100644 --- a/libraries/ts-command-line/CHANGELOG.md +++ b/libraries/ts-command-line/CHANGELOG.md @@ -1,6 +1,16 @@ # Change Log - @rushstack/ts-command-line -This log was last generated on Fri, 20 Feb 2026 00:15:04 GMT and should not be manually modified. +This log was last generated on Wed, 25 Feb 2026 00:34:30 GMT and should not be manually modified. + +## 5.3.3 +Wed, 25 Feb 2026 00:34:30 GMT + +_Version update only_ + +## 5.3.2 +Tue, 24 Feb 2026 01:13:27 GMT + +_Version update only_ ## 5.3.1 Fri, 20 Feb 2026 00:15:04 GMT diff --git a/libraries/ts-command-line/config/api-extractor.json b/libraries/ts-command-line/config/api-extractor.json index d96b3e7a9a7..984096ad10d 100644 --- a/libraries/ts-command-line/config/api-extractor.json +++ b/libraries/ts-command-line/config/api-extractor.json @@ -1,17 +1,6 @@ { "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", - - "mainEntryPointFilePath": "/lib-dts/index.d.ts", - - "apiReport": { - "enabled": true, - "reportFolder": "../../../common/reviews/api" - }, - - "docModel": { - "enabled": true, - "apiJsonFilePath": "../../../common/temp/api/.api.json" - }, + "extends": "decoupled-local-node-rig/profiles/default/config/api-extractor-base.json", "dtsRollup": { "enabled": true, diff --git a/libraries/ts-command-line/package.json b/libraries/ts-command-line/package.json index 9e9edb77fff..72243ec8ffa 100644 --- a/libraries/ts-command-line/package.json +++ b/libraries/ts-command-line/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/ts-command-line", - "version": "5.3.1", + "version": "5.3.3", "description": "An object-oriented command-line parser for TypeScript", "repository": { "type": "git", @@ -45,7 +45,7 @@ "string-argv": "~0.3.1" }, "devDependencies": { - "@rushstack/heft": "1.2.0", + "@rushstack/heft": "1.2.7", "@rushstack/node-core-library": "workspace:*", "decoupled-local-node-rig": "workspace:*", "eslint": "~9.37.0" diff --git a/libraries/typings-generator/.npmignore b/libraries/typings-generator/.npmignore index bc349f9a4be..f7a40e10213 100644 --- a/libraries/typings-generator/.npmignore +++ b/libraries/typings-generator/.npmignore @@ -8,6 +8,7 @@ !/lib/** !/lib-*/** !/dist/** +!/includes/** !CHANGELOG.md !CHANGELOG.json @@ -20,6 +21,9 @@ /lib/**/test/ /lib-*/**/test/ *.test.js +*.test.[cm]js +*.test.d.ts +*.test.d.[cm]ts # NOTE: These don't need to be specified, because NPM includes them automatically. # diff --git a/libraries/typings-generator/CHANGELOG.json b/libraries/typings-generator/CHANGELOG.json index bee123da493..5b45e1e68a5 100644 --- a/libraries/typings-generator/CHANGELOG.json +++ b/libraries/typings-generator/CHANGELOG.json @@ -1,6 +1,78 @@ { "name": "@rushstack/typings-generator", "entries": [ + { + "version": "0.16.7", + "tag": "@rushstack/typings-generator_v0.16.7", + "date": "Mon, 09 Mar 2026 15:14:08 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.7`" + } + ] + } + }, + { + "version": "0.16.6", + "tag": "@rushstack/typings-generator_v0.16.6", + "date": "Wed, 25 Feb 2026 21:39:42 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.6`" + } + ] + } + }, + { + "version": "0.16.5", + "tag": "@rushstack/typings-generator_v0.16.5", + "date": "Wed, 25 Feb 2026 00:34:30 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `5.20.3`" + }, + { + "comment": "Updating dependency \"@rushstack/terminal\" to `0.22.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.5`" + } + ] + } + }, + { + "version": "0.16.4", + "tag": "@rushstack/typings-generator_v0.16.4", + "date": "Tue, 24 Feb 2026 01:13:27 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `5.20.2`" + }, + { + "comment": "Updating dependency \"@rushstack/terminal\" to `0.22.2`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.4`" + } + ] + } + }, + { + "version": "0.16.3", + "tag": "@rushstack/typings-generator_v0.16.3", + "date": "Mon, 23 Feb 2026 00:42:21 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.3`" + } + ] + } + }, { "version": "0.16.2", "tag": "@rushstack/typings-generator_v0.16.2", diff --git a/libraries/typings-generator/CHANGELOG.md b/libraries/typings-generator/CHANGELOG.md index 78c596bfdc1..8321c4c068e 100644 --- a/libraries/typings-generator/CHANGELOG.md +++ b/libraries/typings-generator/CHANGELOG.md @@ -1,6 +1,31 @@ # Change Log - @rushstack/typings-generator -This log was last generated on Fri, 20 Feb 2026 16:14:49 GMT and should not be manually modified. +This log was last generated on Mon, 09 Mar 2026 15:14:08 GMT and should not be manually modified. + +## 0.16.7 +Mon, 09 Mar 2026 15:14:08 GMT + +_Version update only_ + +## 0.16.6 +Wed, 25 Feb 2026 21:39:42 GMT + +_Version update only_ + +## 0.16.5 +Wed, 25 Feb 2026 00:34:30 GMT + +_Version update only_ + +## 0.16.4 +Tue, 24 Feb 2026 01:13:27 GMT + +_Version update only_ + +## 0.16.3 +Mon, 23 Feb 2026 00:42:21 GMT + +_Version update only_ ## 0.16.2 Fri, 20 Feb 2026 16:14:49 GMT diff --git a/libraries/typings-generator/config/api-extractor.json b/libraries/typings-generator/config/api-extractor.json index 5dbfda704f4..3dbb76c0e6f 100644 --- a/libraries/typings-generator/config/api-extractor.json +++ b/libraries/typings-generator/config/api-extractor.json @@ -1,19 +1,4 @@ { "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", - - "mainEntryPointFilePath": "/lib-dts/index.d.ts", - - "apiReport": { - "enabled": true, - "reportFolder": "../../../common/reviews/api" - }, - - "docModel": { - "enabled": true, - "apiJsonFilePath": "../../../common/temp/api/.api.json" - }, - - "dtsRollup": { - "enabled": true - } + "extends": "local-node-rig/profiles/default/config/api-extractor-base.json" } diff --git a/libraries/typings-generator/package.json b/libraries/typings-generator/package.json index 5e438eecb6d..aedd7a05e71 100644 --- a/libraries/typings-generator/package.json +++ b/libraries/typings-generator/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/typings-generator", - "version": "0.16.2", + "version": "0.16.7", "description": "This library provides functionality for automatically generating typings for non-TS files.", "keywords": [ "dts", diff --git a/libraries/worker-pool/.npmignore b/libraries/worker-pool/.npmignore index bc349f9a4be..f7a40e10213 100644 --- a/libraries/worker-pool/.npmignore +++ b/libraries/worker-pool/.npmignore @@ -8,6 +8,7 @@ !/lib/** !/lib-*/** !/dist/** +!/includes/** !CHANGELOG.md !CHANGELOG.json @@ -20,6 +21,9 @@ /lib/**/test/ /lib-*/**/test/ *.test.js +*.test.[cm]js +*.test.d.ts +*.test.d.[cm]ts # NOTE: These don't need to be specified, because NPM includes them automatically. # diff --git a/libraries/worker-pool/CHANGELOG.json b/libraries/worker-pool/CHANGELOG.json index b3070624886..ddb0a4c8a8b 100644 --- a/libraries/worker-pool/CHANGELOG.json +++ b/libraries/worker-pool/CHANGELOG.json @@ -1,6 +1,66 @@ { "name": "@rushstack/worker-pool", "entries": [ + { + "version": "0.7.7", + "tag": "@rushstack/worker-pool_v0.7.7", + "date": "Mon, 09 Mar 2026 15:14:08 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.7`" + } + ] + } + }, + { + "version": "0.7.6", + "tag": "@rushstack/worker-pool_v0.7.6", + "date": "Wed, 25 Feb 2026 21:39:42 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.6`" + } + ] + } + }, + { + "version": "0.7.5", + "tag": "@rushstack/worker-pool_v0.7.5", + "date": "Wed, 25 Feb 2026 00:34:30 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.5`" + } + ] + } + }, + { + "version": "0.7.4", + "tag": "@rushstack/worker-pool_v0.7.4", + "date": "Tue, 24 Feb 2026 01:13:27 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.4`" + } + ] + } + }, + { + "version": "0.7.3", + "tag": "@rushstack/worker-pool_v0.7.3", + "date": "Mon, 23 Feb 2026 00:42:21 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.3`" + } + ] + } + }, { "version": "0.7.2", "tag": "@rushstack/worker-pool_v0.7.2", diff --git a/libraries/worker-pool/CHANGELOG.md b/libraries/worker-pool/CHANGELOG.md index 0beaf4d101f..254e46d60e7 100644 --- a/libraries/worker-pool/CHANGELOG.md +++ b/libraries/worker-pool/CHANGELOG.md @@ -1,6 +1,31 @@ # Change Log - @rushstack/worker-pool -This log was last generated on Fri, 20 Feb 2026 16:14:49 GMT and should not be manually modified. +This log was last generated on Mon, 09 Mar 2026 15:14:08 GMT and should not be manually modified. + +## 0.7.7 +Mon, 09 Mar 2026 15:14:08 GMT + +_Version update only_ + +## 0.7.6 +Wed, 25 Feb 2026 21:39:42 GMT + +_Version update only_ + +## 0.7.5 +Wed, 25 Feb 2026 00:34:30 GMT + +_Version update only_ + +## 0.7.4 +Tue, 24 Feb 2026 01:13:27 GMT + +_Version update only_ + +## 0.7.3 +Mon, 23 Feb 2026 00:42:21 GMT + +_Version update only_ ## 0.7.2 Fri, 20 Feb 2026 16:14:49 GMT diff --git a/libraries/worker-pool/config/api-extractor.json b/libraries/worker-pool/config/api-extractor.json index 5dbfda704f4..3dbb76c0e6f 100644 --- a/libraries/worker-pool/config/api-extractor.json +++ b/libraries/worker-pool/config/api-extractor.json @@ -1,19 +1,4 @@ { "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", - - "mainEntryPointFilePath": "/lib-dts/index.d.ts", - - "apiReport": { - "enabled": true, - "reportFolder": "../../../common/reviews/api" - }, - - "docModel": { - "enabled": true, - "apiJsonFilePath": "../../../common/temp/api/.api.json" - }, - - "dtsRollup": { - "enabled": true - } + "extends": "local-node-rig/profiles/default/config/api-extractor-base.json" } diff --git a/libraries/worker-pool/package.json b/libraries/worker-pool/package.json index 2ac4b78e56b..4c849d5e7c5 100644 --- a/libraries/worker-pool/package.json +++ b/libraries/worker-pool/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/worker-pool", - "version": "0.7.2", + "version": "0.7.7", "description": "Lightweight worker pool using NodeJS worker_threads", "main": "./lib-commonjs/index.js", "module": "./lib-esm/index.js", diff --git a/repo-scripts/repo-toolbox/src/cli/ToolboxCommandLine.ts b/repo-scripts/repo-toolbox/src/cli/ToolboxCommandLine.ts index aeadc6150cc..6a79c0ce0c8 100644 --- a/repo-scripts/repo-toolbox/src/cli/ToolboxCommandLine.ts +++ b/repo-scripts/repo-toolbox/src/cli/ToolboxCommandLine.ts @@ -5,9 +5,8 @@ import { CommandLineParser } from '@rushstack/ts-command-line'; import { ConsoleTerminalProvider, type ITerminal, Terminal } from '@rushstack/terminal'; import { ReadmeAction } from './actions/ReadmeAction'; -import { RecordVersionsAction } from './actions/RecordVersionsAction'; import { BumpDecoupledLocalDependencies } from './actions/BumpDecoupledLocalDependencies'; -import { CollectJsonSchemasAction } from './actions/CollectJsonSchemasAction'; +import { CollectProjectFilesAction } from './actions/CollectProjectFilesAction'; export class ToolboxCommandLine extends CommandLineParser { public constructor() { @@ -19,8 +18,7 @@ export class ToolboxCommandLine extends CommandLineParser { const terminal: ITerminal = new Terminal(new ConsoleTerminalProvider()); this.addAction(new ReadmeAction(terminal)); - this.addAction(new RecordVersionsAction(terminal)); this.addAction(new BumpDecoupledLocalDependencies(terminal)); - this.addAction(new CollectJsonSchemasAction(terminal)); + this.addAction(new CollectProjectFilesAction(terminal)); } } diff --git a/repo-scripts/repo-toolbox/src/cli/actions/BumpDecoupledLocalDependencies.ts b/repo-scripts/repo-toolbox/src/cli/actions/BumpDecoupledLocalDependencies.ts index 7d60e1e775f..dd0b2ac40b0 100644 --- a/repo-scripts/repo-toolbox/src/cli/actions/BumpDecoupledLocalDependencies.ts +++ b/repo-scripts/repo-toolbox/src/cli/actions/BumpDecoupledLocalDependencies.ts @@ -3,11 +3,40 @@ import type { ChildProcess } from 'node:child_process'; -import { Async, Executable, JsonFile } from '@rushstack/node-core-library'; +import { Async, Executable, FileSystem, type FolderItem, JsonFile } from '@rushstack/node-core-library'; import type { ITerminal } from '@rushstack/terminal'; -import { DependencyType, RushConfiguration, type CommonVersionsConfiguration } from '@microsoft/rush-lib'; +import { DependencyType, PackageJsonEditor, RushConfiguration, type Subspace } from '@microsoft/rush-lib'; +import type { IRushConfigurationJson } from '@microsoft/rush-lib/lib/api/RushConfiguration'; import { CommandLineAction } from '@rushstack/ts-command-line'; +async function _getLatestPublishedVersionAsync(terminal: ITerminal, packageName: string): Promise { + return await new Promise((resolve: (result: string) => void, reject: (error: Error) => void) => { + const childProcess: ChildProcess = Executable.spawn('npm', ['view', packageName, 'version'], { + stdio: ['ignore', 'pipe', 'pipe'] + }); + const stdoutBuffer: string[] = []; + childProcess.stdout!.on('data', (chunk) => stdoutBuffer.push(chunk)); + childProcess.on('close', (exitCode: number | null, signal: NodeJS.Signals | null) => { + if (exitCode) { + reject(new Error(`Exited with ${exitCode}`)); + } else if (signal) { + reject(new Error(`Terminated by ${signal}`)); + } else { + const version: string = stdoutBuffer.join('').trim(); + terminal.writeLine(`Found version "${version}" for "${packageName}"`); + resolve(version); + } + }); + }); +} + +interface IProjectLike { + packageName: string; + decoupledLocalDependencies: Iterable; + subspace: Subspace | undefined; + packageJsonEditor: PackageJsonEditor; +} + export class BumpDecoupledLocalDependencies extends CommandLineAction { private readonly _terminal: ITerminal; @@ -26,21 +55,78 @@ export class BumpDecoupledLocalDependencies extends CommandLineAction { const rushConfiguration: RushConfiguration = RushConfiguration.loadFromDefaultLocation({ startingFolder: process.cwd() }); + const { projects, rushJsonFile, commonAutoinstallersFolder } = rushConfiguration; + + const projectsToUpdate: IProjectLike[] = []; - const cyclicDependencyNames: Set = new Set(); + const allDecoupledLocalDependencyNames: Set = new Set(); + for (const project of projects) { + const { decoupledLocalDependencies } = project; + for (const decoupledLocalDependency of decoupledLocalDependencies) { + allDecoupledLocalDependencyNames.add(decoupledLocalDependency); + } + + projectsToUpdate.push(project); + } + + // Collect all package names published from this repo + const publishedPackageNames: Set = new Set(); + for (const { shouldPublish, packageName } of projects) { + // Note that shouldPublish is also true here if the project is driven by a version policy + if (shouldPublish) { + publishedPackageNames.add(packageName); + } + } - for (const project of rushConfiguration.projects) { - for (const cyclicDependencyProject of project.decoupledLocalDependencies) { - cyclicDependencyNames.add(cyclicDependencyProject); + let autoinstallerEntries: FolderItem[] = []; + try { + autoinstallerEntries = await FileSystem.readFolderItemsAsync(commonAutoinstallersFolder); + } catch (error) { + if (!FileSystem.isNotExistError(error)) { + throw error; } } - const cyclicDependencyVersions: Map = new Map(); await Async.forEachAsync( - Array.from(cyclicDependencyNames), - async (cyclicDependencyName) => { - const version: string = await this._getLatestPublishedVersionAsync(terminal, cyclicDependencyName); - cyclicDependencyVersions.set(cyclicDependencyName, version); + autoinstallerEntries, + async (folderItem) => { + if (folderItem.isDirectory()) { + const autoinstallerName: string = folderItem.name; + const packageJsonPath: string = `${commonAutoinstallersFolder}/${autoinstallerName}/package.json`; + try { + const packageJsonEditor: PackageJsonEditor = await PackageJsonEditor.loadAsync(packageJsonPath); + + const { dependencyList, devDependencyList } = packageJsonEditor; + const decoupledLocalDependencies: Set = new Set(); + for (const { name } of [...dependencyList, ...devDependencyList]) { + if (publishedPackageNames.has(name)) { + allDecoupledLocalDependencyNames.add(name); + decoupledLocalDependencies.add(name); + } + } + + projectsToUpdate.push({ + packageName: `${autoinstallerName} (autoinstaller)`, + decoupledLocalDependencies, + subspace: undefined, + packageJsonEditor + }); + } catch (error) { + if (!FileSystem.isNotExistError(error)) { + throw error; + } + } + } + }, + { concurrency: 10 } + ); + + const decoupledLocalDependencyVersionsByName: Map = new Map(); + await Async.forEachAsync( + allDecoupledLocalDependencyNames, + async (decoupledLocalDependencyName) => { + const version: string = await _getLatestPublishedVersionAsync(terminal, decoupledLocalDependencyName); + decoupledLocalDependencyVersionsByName.set(decoupledLocalDependencyName, version); }, { concurrency: 10 @@ -49,72 +135,64 @@ export class BumpDecoupledLocalDependencies extends CommandLineAction { terminal.writeLine(); - for (const project of rushConfiguration.projects) { - const commonVersions: CommonVersionsConfiguration = project.subspace.getCommonVersions(); - - for (const cyclicDependencyProject of project.decoupledLocalDependencies) { - const existingVersion: string | undefined = - project.packageJson.dependencies?.[cyclicDependencyProject] ?? - project.packageJson.devDependencies?.[cyclicDependencyProject]; - if ( - existingVersion && - commonVersions.allowedAlternativeVersions.get(cyclicDependencyProject)?.includes(existingVersion) - ) { - // Skip if the existing version is allowed by common-versions.json - continue; - } - - const newVersion: string = cyclicDependencyVersions.get(cyclicDependencyProject)!; - if (project.packageJsonEditor.tryGetDependency(cyclicDependencyProject)) { - project.packageJsonEditor.addOrUpdateDependency( - cyclicDependencyProject, - newVersion, - DependencyType.Regular - ); + await Async.forEachAsync( + projectsToUpdate, + async ({ packageName, decoupledLocalDependencies, subspace, packageJsonEditor }) => { + const { allowedAlternativeVersions } = subspace?.getCommonVersions() ?? {}; + + for (const cyclicDependencyProject of decoupledLocalDependencies) { + const { version: existingVersion } = + packageJsonEditor.tryGetDependency(cyclicDependencyProject) ?? + packageJsonEditor.tryGetDevDependency(cyclicDependencyProject) ?? + {}; + if ( + existingVersion && + allowedAlternativeVersions?.get(cyclicDependencyProject)?.includes(existingVersion) + ) { + // Skip if the existing version is allowed by common-versions.json + continue; + } + + const newVersion: string = decoupledLocalDependencyVersionsByName.get(cyclicDependencyProject)!; + if (packageJsonEditor.tryGetDependency(cyclicDependencyProject)) { + packageJsonEditor.addOrUpdateDependency( + cyclicDependencyProject, + newVersion, + DependencyType.Regular + ); + } + + if (packageJsonEditor.tryGetDevDependency(cyclicDependencyProject)) { + packageJsonEditor.addOrUpdateDependency(cyclicDependencyProject, newVersion, DependencyType.Dev); + } } - if (project.packageJsonEditor.tryGetDevDependency(cyclicDependencyProject)) { - project.packageJsonEditor.addOrUpdateDependency( - cyclicDependencyProject, - newVersion, - DependencyType.Dev - ); + const modified: boolean = await packageJsonEditor.saveIfModifiedAsync(); + if (modified) { + terminal.writeLine(`Updated ${packageName}`); } - } - - if (project.packageJsonEditor.saveIfModified()) { - terminal.writeLine(`Updated ${project.packageName}`); - } - } + }, + { concurrency: 10 } + ); terminal.writeLine(); // Update the Rush version in rush.json - const latestRushVersion: string = await this._getLatestPublishedVersionAsync(terminal, '@microsoft/rush'); - const rushJson: { rushVersion: string } = await JsonFile.loadAsync(rushConfiguration.rushJsonFile); - rushJson.rushVersion = latestRushVersion; - await JsonFile.saveAsync(rushJson, rushConfiguration.rushJsonFile, { updateExistingFile: true }); - terminal.writeLine(`Updated ${rushConfiguration.rushJsonFile}`); - } + const latestRushVersion: string = await _getLatestPublishedVersionAsync(terminal, '@microsoft/rush'); + const rushJson: IRushConfigurationJson = await JsonFile.loadAsync(rushJsonFile); + const existingRushVersion: string = rushJson.rushVersion; + const rushWasUpdated: boolean = existingRushVersion !== latestRushVersion; + if (rushWasUpdated) { + rushJson.rushVersion = latestRushVersion; + await JsonFile.saveAsync(rushJson, rushJsonFile, { updateExistingFile: true }); + terminal.writeLine( + `Updated ${rushJsonFile}: Rush version ${existingRushVersion} -> ${latestRushVersion}` + ); + } - private async _getLatestPublishedVersionAsync(terminal: ITerminal, packageName: string): Promise { - return await new Promise((resolve: (result: string) => void, reject: (error: Error) => void) => { - const childProcess: ChildProcess = Executable.spawn('npm', ['view', packageName, 'version'], { - stdio: ['ignore', 'pipe', 'pipe'] - }); - const stdoutBuffer: string[] = []; - childProcess.stdout!.on('data', (chunk) => stdoutBuffer.push(chunk)); - childProcess.on('close', (exitCode: number | null, signal: NodeJS.Signals | null) => { - if (exitCode) { - reject(new Error(`Exited with ${exitCode}`)); - } else if (signal) { - reject(new Error(`Terminated by ${signal}`)); - } else { - const version: string = stdoutBuffer.join('').trim(); - terminal.writeLine(`Found version "${version}" for "${packageName}"`); - resolve(version); - } - }); - }); + // Emit Azure Pipelines variables so subsequent pipeline steps can handle the Rush version change. + // These are no-ops when run outside of Azure Pipelines. + terminal.writeLine(`##vso[task.setvariable variable=NewRushVersion]${latestRushVersion}`); + terminal.writeLine(`##vso[task.setvariable variable=RushWasUpdated]${rushWasUpdated}`); } } diff --git a/repo-scripts/repo-toolbox/src/cli/actions/CollectJsonSchemasAction.ts b/repo-scripts/repo-toolbox/src/cli/actions/CollectProjectFilesAction.ts similarity index 64% rename from repo-scripts/repo-toolbox/src/cli/actions/CollectJsonSchemasAction.ts rename to repo-scripts/repo-toolbox/src/cli/actions/CollectProjectFilesAction.ts index cdf38cb377a..3ca761c423c 100644 --- a/repo-scripts/repo-toolbox/src/cli/actions/CollectJsonSchemasAction.ts +++ b/repo-scripts/repo-toolbox/src/cli/actions/CollectProjectFilesAction.ts @@ -45,23 +45,33 @@ async function* _getFolderItemsRecursiveAsync( } } -export class CollectJsonSchemasAction extends CommandLineAction { +export class CollectProjectFilesAction extends CommandLineAction { private readonly _outputPathParameter: IRequiredCommandLineStringParameter; + private readonly _subfolderParameter: IRequiredCommandLineStringParameter; private readonly _terminal: ITerminal; public constructor(terminal: ITerminal) { super({ - actionName: 'collect-json-schemas', - summary: 'Generates JSON schema files based on rush.json inventory', - documentation: "Use this to update the repo's JSON schema files" + actionName: 'collect-project-files', + summary: 'Collects files from a subfolder of each project into a single output directory', + documentation: + 'Iterates over all Rush projects, collects files from the specified subfolder,' + + ' deduplicates by relative path and content, and writes them to the output directory.' }); this._terminal = terminal; + this._subfolderParameter = this.defineStringParameter({ + parameterLongName: '--subfolder', + description: 'The subfolder within each project to collect files from (e.g. "temp/json-schemas").', + argumentName: 'SUBFOLDER', + required: true + }); + this._outputPathParameter = this.defineStringParameter({ parameterLongName: '--output-path', - description: 'Path to the output directory for the generated JSON schema files.', + description: 'Path to the output directory for the collected files.', argumentName: 'PATH', required: true }); @@ -71,6 +81,7 @@ export class CollectJsonSchemasAction extends CommandLineAction { const terminal: ITerminal = this._terminal; const rushConfiguration: RushConfiguration = RushConfiguration.loadFromDefaultLocation(); + const subfolder: string = this._subfolderParameter.value; const outputPath: string = path.resolve(this._outputPathParameter.value); const contentByAbsolutePathByRelativePath: Map> = new Map(); @@ -78,26 +89,30 @@ export class CollectJsonSchemasAction extends CommandLineAction { await Async.forEachAsync( rushConfiguration.projects, async ({ projectFolder }: RushConfigurationProject) => { - const schemaFiles: AsyncIterable = _getFolderItemsRecursiveAsync( - `${projectFolder}/temp/json-schemas`, + const files: AsyncIterable = _getFolderItemsRecursiveAsync( + `${projectFolder}/${subfolder}`, '' ); - await Async.forEachAsync(schemaFiles, async ({ absolutePath, relativePath, content }) => { - let contentByAbsolutePath: Map | undefined = - contentByAbsolutePathByRelativePath.get(relativePath); - if (!contentByAbsolutePath) { - contentByAbsolutePath = new Map(); - contentByAbsolutePathByRelativePath.set(relativePath, contentByAbsolutePath); - } - - let absolutePaths: string[] | undefined = contentByAbsolutePath.get(content); - if (!absolutePaths) { - absolutePaths = []; - contentByAbsolutePath.set(content, absolutePaths); - } - - absolutePaths.push(absolutePath); - }, { concurrency: 5 }); + await Async.forEachAsync( + files, + async ({ absolutePath, relativePath, content }) => { + let contentByAbsolutePath: Map | undefined = + contentByAbsolutePathByRelativePath.get(relativePath); + if (!contentByAbsolutePath) { + contentByAbsolutePath = new Map(); + contentByAbsolutePathByRelativePath.set(relativePath, contentByAbsolutePath); + } + + let absolutePaths: string[] | undefined = contentByAbsolutePath.get(content); + if (!absolutePaths) { + absolutePaths = []; + contentByAbsolutePath.set(content, absolutePaths); + } + + absolutePaths.push(absolutePath); + }, + { concurrency: 5 } + ); }, { concurrency: 5 } ); @@ -109,7 +124,7 @@ export class CollectJsonSchemasAction extends CommandLineAction { encounteredCollisions = true; terminal.writeErrorLine( - `Multiple projects generated different contents for the JSON schema "${relativePath}":` + `Multiple projects generated different contents for "${relativePath}" in "${subfolder}":` ); for (const absolutePaths of contentByAbsolutePath.values()) { diff --git a/repo-scripts/repo-toolbox/src/cli/actions/RecordVersionsAction.ts b/repo-scripts/repo-toolbox/src/cli/actions/RecordVersionsAction.ts deleted file mode 100644 index 57dc988bdd5..00000000000 --- a/repo-scripts/repo-toolbox/src/cli/actions/RecordVersionsAction.ts +++ /dev/null @@ -1,56 +0,0 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. -// See LICENSE in the project root for license information. - -import * as path from 'node:path'; - -import { JsonFile } from '@rushstack/node-core-library'; -import type { ITerminal } from '@rushstack/terminal'; -import { RushConfiguration } from '@microsoft/rush-lib'; -import { CommandLineAction, type CommandLineStringParameter } from '@rushstack/ts-command-line'; - -export class RecordVersionsAction extends CommandLineAction { - private readonly _outFilePath: CommandLineStringParameter; - - private readonly _terminal: ITerminal; - - public constructor(terminal: ITerminal) { - super({ - actionName: 'record-versions', - summary: 'Generates a JSON file recording the version numbers of all published packages.', - documentation: '' - }); - - this._terminal = terminal; - - this._outFilePath = this.defineStringParameter({ - parameterLongName: '--out-file', - parameterShortName: '-o', - argumentName: 'FILE_PATH', - description: 'The path to the output file.', - required: true - }); - } - - protected override async onExecuteAsync(): Promise { - const terminal: ITerminal = this._terminal; - const rushConfig: RushConfiguration = RushConfiguration.loadFromDefaultLocation({ - startingFolder: process.cwd() - }); - - terminal.writeLine(`Found Rush configuration at ${rushConfig.rushJsonFile}`); - - const publishedPackageVersions: Record = {}; - for (const project of rushConfig.projects) { - if (project.shouldPublish || project.versionPolicy) { - publishedPackageVersions[project.packageName] = project.packageJson.version; - } - } - - const resolvedOutputPath: string = path.resolve(process.cwd(), this._outFilePath.value!); - await JsonFile.saveAsync(publishedPackageVersions, resolvedOutputPath, { - ensureFolderExists: true - }); - - terminal.writeLine(`Wrote file to ${resolvedOutputPath}`); - } -} diff --git a/rigs/decoupled-local-node-rig/package.json b/rigs/decoupled-local-node-rig/package.json index 3d9f26bee4f..6cad133bd6c 100644 --- a/rigs/decoupled-local-node-rig/package.json +++ b/rigs/decoupled-local-node-rig/package.json @@ -9,16 +9,16 @@ "_phase:build": "" }, "dependencies": { - "@microsoft/api-extractor": "7.57.0", - "@rushstack/eslint-config": "4.6.2", - "@rushstack/eslint-patch": "1.16.0", - "@rushstack/eslint-plugin": "0.23.0", - "@rushstack/heft-node-rig": "2.11.20", - "@rushstack/heft": "1.2.0", + "@microsoft/api-extractor": "7.57.7", + "@rushstack/eslint-config": "4.6.4", + "@rushstack/eslint-patch": "1.16.1", + "@rushstack/eslint-plugin": "0.23.2", + "@rushstack/heft-node-rig": "2.11.27", + "@rushstack/heft": "1.2.7", "@types/heft-jest": "1.0.1", "@types/node": "20.17.19", - "@typescript-eslint/eslint-plugin": "~8.46.0", - "@typescript-eslint/parser": "~8.46.0", + "@typescript-eslint/eslint-plugin": "~8.56.1", + "@typescript-eslint/parser": "~8.56.1", "eslint-plugin-header": "~3.1.1", "eslint-plugin-headers": "~1.2.1", "eslint-plugin-import": "2.32.0", diff --git a/rigs/decoupled-local-node-rig/profiles/default/config/api-extractor-base.json b/rigs/decoupled-local-node-rig/profiles/default/config/api-extractor-base.json new file mode 100644 index 00000000000..10c5e90d1c4 --- /dev/null +++ b/rigs/decoupled-local-node-rig/profiles/default/config/api-extractor-base.json @@ -0,0 +1,19 @@ +{ + "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", + + "mainEntryPointFilePath": "/lib-dts/index.d.ts", + + "apiReport": { + "enabled": true, + "reportFolder": "/../../common/reviews/api" + }, + + "docModel": { + "enabled": true, + "apiJsonFilePath": "/temp/api/.api.json" + }, + + "dtsRollup": { + "enabled": true + } +} diff --git a/rigs/decoupled-local-node-rig/profiles/default/includes/eslint/flat/profile/_common.js b/rigs/decoupled-local-node-rig/profiles/default/includes/eslint/flat/profile/_common.js index 5b84938c9ae..19120a33a8b 100644 --- a/rigs/decoupled-local-node-rig/profiles/default/includes/eslint/flat/profile/_common.js +++ b/rigs/decoupled-local-node-rig/profiles/default/includes/eslint/flat/profile/_common.js @@ -4,7 +4,8 @@ const { expandNamingConventionSelectors } = require('@rushstack/eslint-config/flat/profile/_macros'); const { commonNamingConventionSelectors } = require('@rushstack/eslint-config/flat/profile/_common'); const rushstackEslintPlugin = require('@rushstack/eslint-plugin'); -const typescriptEslintPlugin = require('@typescript-eslint/eslint-plugin'); +// TODO: Put back when when the decoupled local dependency update goes in +// const typescriptEslintPlugin = require('@typescript-eslint/eslint-plugin'); const importEslintPlugin = require('eslint-plugin-import'); const headersEslintPlugin = require('eslint-plugin-headers'); @@ -16,7 +17,7 @@ module.exports = { files: ['**/*.ts', '**/*.tsx'], plugins: { '@rushstack': rushstackEslintPlugin, - '@typescript-eslint': typescriptEslintPlugin, + // '@typescript-eslint': typescriptEslintPlugin, import: importEslintPlugin, headers: headersEslintPlugin }, diff --git a/rigs/heft-node-rig/.npmignore b/rigs/heft-node-rig/.npmignore index 2b485313c3f..3292dbef667 100644 --- a/rigs/heft-node-rig/.npmignore +++ b/rigs/heft-node-rig/.npmignore @@ -8,6 +8,7 @@ !/lib/** !/lib-*/** !/dist/** +!/includes/** !CHANGELOG.md !CHANGELOG.json @@ -20,6 +21,9 @@ /lib/**/test/ /lib-*/**/test/ *.test.js +*.test.[cm]js +*.test.d.ts +*.test.d.[cm]ts # NOTE: These don't need to be specified, because NPM includes them automatically. # diff --git a/rigs/heft-node-rig/CHANGELOG.json b/rigs/heft-node-rig/CHANGELOG.json index 98997abebc7..3e69714fd8c 100644 --- a/rigs/heft-node-rig/CHANGELOG.json +++ b/rigs/heft-node-rig/CHANGELOG.json @@ -1,6 +1,159 @@ { "name": "@rushstack/heft-node-rig", "entries": [ + { + "version": "2.11.27", + "tag": "@rushstack/heft-node-rig_v2.11.27", + "date": "Mon, 09 Mar 2026 15:14:08 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@microsoft/api-extractor\" to `7.57.7`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-api-extractor-plugin\" to `1.3.7`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-jest-plugin\" to `1.2.7`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-lint-plugin\" to `1.2.7`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-typescript-plugin\" to `1.3.2`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.7`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^1.2.6` to `1.2.7`" + } + ] + } + }, + { + "version": "2.11.26", + "tag": "@rushstack/heft-node-rig_v2.11.26", + "date": "Wed, 25 Feb 2026 21:39:42 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@microsoft/api-extractor\" to `7.57.6`" + }, + { + "comment": "Updating dependency \"@rushstack/eslint-config\" to `4.6.4`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-api-extractor-plugin\" to `1.3.6`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-jest-plugin\" to `1.2.6`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-lint-plugin\" to `1.2.6`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-typescript-plugin\" to `1.3.1`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.6`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^1.2.5` to `1.2.6`" + } + ] + } + }, + { + "version": "2.11.25", + "tag": "@rushstack/heft-node-rig_v2.11.25", + "date": "Wed, 25 Feb 2026 00:34:29 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@microsoft/api-extractor\" to `7.57.5`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-api-extractor-plugin\" to `1.3.5`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-jest-plugin\" to `1.2.5`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-lint-plugin\" to `1.2.5`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-typescript-plugin\" to `1.3.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.5`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^1.2.4` to `1.2.5`" + } + ] + } + }, + { + "version": "2.11.24", + "tag": "@rushstack/heft-node-rig_v2.11.24", + "date": "Tue, 24 Feb 2026 01:13:27 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@microsoft/api-extractor\" to `7.57.4`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-api-extractor-plugin\" to `1.3.4`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-jest-plugin\" to `1.2.4`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-lint-plugin\" to `1.2.4`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-typescript-plugin\" to `1.2.4`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.4`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^1.2.3` to `1.2.4`" + } + ] + } + }, + { + "version": "2.11.23", + "tag": "@rushstack/heft-node-rig_v2.11.23", + "date": "Mon, 23 Feb 2026 00:42:21 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@microsoft/api-extractor\" to `7.57.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-api-extractor-plugin\" to `1.3.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-jest-plugin\" to `1.2.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-lint-plugin\" to `1.2.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-typescript-plugin\" to `1.2.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^1.2.2` to `1.2.3`" + } + ] + } + }, { "version": "2.11.22", "tag": "@rushstack/heft-node-rig_v2.11.22", diff --git a/rigs/heft-node-rig/CHANGELOG.md b/rigs/heft-node-rig/CHANGELOG.md index 2bf7d7a52d7..750d9f08abf 100644 --- a/rigs/heft-node-rig/CHANGELOG.md +++ b/rigs/heft-node-rig/CHANGELOG.md @@ -1,6 +1,31 @@ # Change Log - @rushstack/heft-node-rig -This log was last generated on Fri, 20 Feb 2026 16:14:49 GMT and should not be manually modified. +This log was last generated on Mon, 09 Mar 2026 15:14:08 GMT and should not be manually modified. + +## 2.11.27 +Mon, 09 Mar 2026 15:14:08 GMT + +_Version update only_ + +## 2.11.26 +Wed, 25 Feb 2026 21:39:42 GMT + +_Version update only_ + +## 2.11.25 +Wed, 25 Feb 2026 00:34:29 GMT + +_Version update only_ + +## 2.11.24 +Tue, 24 Feb 2026 01:13:27 GMT + +_Version update only_ + +## 2.11.23 +Mon, 23 Feb 2026 00:42:21 GMT + +_Version update only_ ## 2.11.22 Fri, 20 Feb 2026 16:14:49 GMT diff --git a/rigs/heft-node-rig/package.json b/rigs/heft-node-rig/package.json index 9c5709cf508..e6293aca23c 100644 --- a/rigs/heft-node-rig/package.json +++ b/rigs/heft-node-rig/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/heft-node-rig", - "version": "2.11.22", + "version": "2.11.27", "description": "A rig package for Node.js projects that build using Heft", "license": "MIT", "scripts": { @@ -13,7 +13,7 @@ "directory": "rigs/heft-node-rig" }, "peerDependencies": { - "@rushstack/heft": "^1.2.2" + "@rushstack/heft": "^1.2.7" }, "dependencies": { "@microsoft/api-extractor": "workspace:*", diff --git a/rigs/heft-vscode-extension-rig/.npmignore b/rigs/heft-vscode-extension-rig/.npmignore index 2b485313c3f..3292dbef667 100644 --- a/rigs/heft-vscode-extension-rig/.npmignore +++ b/rigs/heft-vscode-extension-rig/.npmignore @@ -8,6 +8,7 @@ !/lib/** !/lib-*/** !/dist/** +!/includes/** !CHANGELOG.md !CHANGELOG.json @@ -20,6 +21,9 @@ /lib/**/test/ /lib-*/**/test/ *.test.js +*.test.[cm]js +*.test.d.ts +*.test.d.[cm]ts # NOTE: These don't need to be specified, because NPM includes them automatically. # diff --git a/rigs/heft-vscode-extension-rig/CHANGELOG.json b/rigs/heft-vscode-extension-rig/CHANGELOG.json index f99615c3769..ce0f8750d23 100644 --- a/rigs/heft-vscode-extension-rig/CHANGELOG.json +++ b/rigs/heft-vscode-extension-rig/CHANGELOG.json @@ -1,6 +1,156 @@ { "name": "@rushstack/heft-vscode-extension-rig", "entries": [ + { + "version": "1.1.29", + "tag": "@rushstack/heft-vscode-extension-rig_v1.1.29", + "date": "Mon, 09 Mar 2026 15:14:08 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@microsoft/api-extractor\" to `7.57.7`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `2.11.27`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-vscode-extension-plugin\" to `1.1.7`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-webpack5-plugin\" to `1.3.7`" + }, + { + "comment": "Updating dependency \"@rushstack/webpack-preserve-dynamic-require-plugin\" to `0.12.8`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.7`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^1.2.6` to `1.2.7`" + } + ] + } + }, + { + "version": "1.1.28", + "tag": "@rushstack/heft-vscode-extension-rig_v1.1.28", + "date": "Wed, 25 Feb 2026 21:39:42 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@microsoft/api-extractor\" to `7.57.6`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `2.11.26`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-vscode-extension-plugin\" to `1.1.6`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-webpack5-plugin\" to `1.3.6`" + }, + { + "comment": "Updating dependency \"@rushstack/webpack-preserve-dynamic-require-plugin\" to `0.12.7`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.6`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^1.2.5` to `1.2.6`" + } + ] + } + }, + { + "version": "1.1.27", + "tag": "@rushstack/heft-vscode-extension-rig_v1.1.27", + "date": "Wed, 25 Feb 2026 00:34:29 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@microsoft/api-extractor\" to `7.57.5`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `2.11.25`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-vscode-extension-plugin\" to `1.1.5`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-webpack5-plugin\" to `1.3.5`" + }, + { + "comment": "Updating dependency \"@rushstack/webpack-preserve-dynamic-require-plugin\" to `0.12.6`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.5`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^1.2.4` to `1.2.5`" + } + ] + } + }, + { + "version": "1.1.26", + "tag": "@rushstack/heft-vscode-extension-rig_v1.1.26", + "date": "Tue, 24 Feb 2026 01:13:27 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@microsoft/api-extractor\" to `7.57.4`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `2.11.24`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-vscode-extension-plugin\" to `1.1.4`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-webpack5-plugin\" to `1.3.4`" + }, + { + "comment": "Updating dependency \"@rushstack/webpack-preserve-dynamic-require-plugin\" to `0.12.5`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.4`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^1.2.3` to `1.2.4`" + } + ] + } + }, + { + "version": "1.1.25", + "tag": "@rushstack/heft-vscode-extension-rig_v1.1.25", + "date": "Mon, 23 Feb 2026 00:42:21 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@microsoft/api-extractor\" to `7.57.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-node-rig\" to `2.11.23`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-vscode-extension-plugin\" to `1.1.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-webpack5-plugin\" to `1.3.3`" + }, + { + "comment": "Updating dependency \"@rushstack/webpack-preserve-dynamic-require-plugin\" to `0.12.4`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^1.2.2` to `1.2.3`" + } + ] + } + }, { "version": "1.1.24", "tag": "@rushstack/heft-vscode-extension-rig_v1.1.24", diff --git a/rigs/heft-vscode-extension-rig/CHANGELOG.md b/rigs/heft-vscode-extension-rig/CHANGELOG.md index da7baf5d78a..e5b38d4ed2d 100644 --- a/rigs/heft-vscode-extension-rig/CHANGELOG.md +++ b/rigs/heft-vscode-extension-rig/CHANGELOG.md @@ -1,6 +1,31 @@ # Change Log - @rushstack/heft-vscode-extension-rig -This log was last generated on Fri, 20 Feb 2026 16:14:49 GMT and should not be manually modified. +This log was last generated on Mon, 09 Mar 2026 15:14:08 GMT and should not be manually modified. + +## 1.1.29 +Mon, 09 Mar 2026 15:14:08 GMT + +_Version update only_ + +## 1.1.28 +Wed, 25 Feb 2026 21:39:42 GMT + +_Version update only_ + +## 1.1.27 +Wed, 25 Feb 2026 00:34:29 GMT + +_Version update only_ + +## 1.1.26 +Tue, 24 Feb 2026 01:13:27 GMT + +_Version update only_ + +## 1.1.25 +Mon, 23 Feb 2026 00:42:21 GMT + +_Version update only_ ## 1.1.24 Fri, 20 Feb 2026 16:14:49 GMT diff --git a/rigs/heft-vscode-extension-rig/package.json b/rigs/heft-vscode-extension-rig/package.json index 9c6c9f2bf92..896447746ad 100644 --- a/rigs/heft-vscode-extension-rig/package.json +++ b/rigs/heft-vscode-extension-rig/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/heft-vscode-extension-rig", - "version": "1.1.24", + "version": "1.1.29", "description": "A rig package for VSCode Extensions that build using Heft", "license": "MIT", "scripts": { @@ -13,7 +13,7 @@ "directory": "rigs/heft-vscode-extension-rig" }, "peerDependencies": { - "@rushstack/heft": "^1.2.2" + "@rushstack/heft": "^1.2.7" }, "dependencies": { "@microsoft/api-extractor": "workspace:*", diff --git a/rigs/heft-web-rig/.npmignore b/rigs/heft-web-rig/.npmignore index 2b485313c3f..3292dbef667 100644 --- a/rigs/heft-web-rig/.npmignore +++ b/rigs/heft-web-rig/.npmignore @@ -8,6 +8,7 @@ !/lib/** !/lib-*/** !/dist/** +!/includes/** !CHANGELOG.md !CHANGELOG.json @@ -20,6 +21,9 @@ /lib/**/test/ /lib-*/**/test/ *.test.js +*.test.[cm]js +*.test.d.ts +*.test.d.[cm]ts # NOTE: These don't need to be specified, because NPM includes them automatically. # diff --git a/rigs/heft-web-rig/CHANGELOG.json b/rigs/heft-web-rig/CHANGELOG.json index a1470872651..eed5f2ead83 100644 --- a/rigs/heft-web-rig/CHANGELOG.json +++ b/rigs/heft-web-rig/CHANGELOG.json @@ -1,6 +1,215 @@ { "name": "@rushstack/heft-web-rig", "entries": [ + { + "version": "1.4.3", + "tag": "@rushstack/heft-web-rig_v1.4.3", + "date": "Mon, 09 Mar 2026 15:14:08 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@microsoft/api-extractor\" to `7.57.7`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-api-extractor-plugin\" to `1.3.7`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-static-asset-typings-plugin\" to `0.1.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-jest-plugin\" to `1.2.7`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-lint-plugin\" to `1.2.7`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-sass-plugin\" to `1.2.7`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-typescript-plugin\" to `1.3.2`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-webpack5-plugin\" to `1.3.7`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.7`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^1.2.6` to `1.2.7`" + } + ] + } + }, + { + "version": "1.4.2", + "tag": "@rushstack/heft-web-rig_v1.4.2", + "date": "Wed, 25 Feb 2026 21:39:42 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@microsoft/api-extractor\" to `7.57.6`" + }, + { + "comment": "Updating dependency \"@rushstack/eslint-config\" to `4.6.4`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-api-extractor-plugin\" to `1.3.6`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-static-asset-typings-plugin\" to `0.1.2`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-jest-plugin\" to `1.2.6`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-lint-plugin\" to `1.2.6`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-sass-plugin\" to `1.2.6`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-typescript-plugin\" to `1.3.1`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-webpack5-plugin\" to `1.3.6`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.6`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^1.2.5` to `1.2.6`" + } + ] + } + }, + { + "version": "1.4.1", + "tag": "@rushstack/heft-web-rig_v1.4.1", + "date": "Wed, 25 Feb 2026 00:34:29 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@microsoft/api-extractor\" to `7.57.5`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-api-extractor-plugin\" to `1.3.5`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-static-asset-typings-plugin\" to `0.1.1`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-jest-plugin\" to `1.2.5`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-lint-plugin\" to `1.2.5`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-sass-plugin\" to `1.2.5`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-typescript-plugin\" to `1.3.0`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-webpack5-plugin\" to `1.3.5`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.5`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^1.2.4` to `1.2.5`" + } + ] + } + }, + { + "version": "1.4.0", + "tag": "@rushstack/heft-web-rig_v1.4.0", + "date": "Tue, 24 Feb 2026 02:08:44 GMT", + "comments": { + "minor": [ + { + "comment": "Add `@rushstack/heft-static-asset-typings-plugin` to the `app` and `library` profiles, generating `.d.ts` typings for static asset files (images and text). This enables type-safe asset imports in TypeScript without needing `allowArbitraryExtensions` or `require()` calls. Also add `.webp` and `.avif` to the webpack asset resource rule." + } + ], + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft-static-asset-typings-plugin\" to `0.1.0`" + } + ] + } + }, + { + "version": "1.3.5", + "tag": "@rushstack/heft-web-rig_v1.3.5", + "date": "Tue, 24 Feb 2026 01:13:27 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@microsoft/api-extractor\" to `7.57.4`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-api-extractor-plugin\" to `1.3.4`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-jest-plugin\" to `1.2.4`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-lint-plugin\" to `1.2.4`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-sass-plugin\" to `1.2.4`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-typescript-plugin\" to `1.2.4`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-webpack5-plugin\" to `1.3.4`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.4`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^1.2.3` to `1.2.4`" + } + ] + } + }, + { + "version": "1.3.4", + "tag": "@rushstack/heft-web-rig_v1.3.4", + "date": "Mon, 23 Feb 2026 00:42:21 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@microsoft/api-extractor\" to `7.57.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-api-extractor-plugin\" to `1.3.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-jest-plugin\" to `1.2.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-lint-plugin\" to `1.2.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-sass-plugin\" to `1.2.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-typescript-plugin\" to `1.2.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft-webpack5-plugin\" to `1.3.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" from `^1.2.2` to `1.2.3`" + } + ] + } + }, { "version": "1.3.3", "tag": "@rushstack/heft-web-rig_v1.3.3", diff --git a/rigs/heft-web-rig/CHANGELOG.md b/rigs/heft-web-rig/CHANGELOG.md index 235c9004620..ff6570f5bad 100644 --- a/rigs/heft-web-rig/CHANGELOG.md +++ b/rigs/heft-web-rig/CHANGELOG.md @@ -1,6 +1,38 @@ # Change Log - @rushstack/heft-web-rig -This log was last generated on Fri, 20 Feb 2026 16:14:49 GMT and should not be manually modified. +This log was last generated on Mon, 09 Mar 2026 15:14:08 GMT and should not be manually modified. + +## 1.4.3 +Mon, 09 Mar 2026 15:14:08 GMT + +_Version update only_ + +## 1.4.2 +Wed, 25 Feb 2026 21:39:42 GMT + +_Version update only_ + +## 1.4.1 +Wed, 25 Feb 2026 00:34:29 GMT + +_Version update only_ + +## 1.4.0 +Tue, 24 Feb 2026 02:08:44 GMT + +### Minor changes + +- Add `@rushstack/heft-static-asset-typings-plugin` to the `app` and `library` profiles, generating `.d.ts` typings for static asset files (images and text). This enables type-safe asset imports in TypeScript without needing `allowArbitraryExtensions` or `require()` calls. Also add `.webp` and `.avif` to the webpack asset resource rule. + +## 1.3.5 +Tue, 24 Feb 2026 01:13:27 GMT + +_Version update only_ + +## 1.3.4 +Mon, 23 Feb 2026 00:42:21 GMT + +_Version update only_ ## 1.3.3 Fri, 20 Feb 2026 16:14:49 GMT diff --git a/rigs/heft-web-rig/package.json b/rigs/heft-web-rig/package.json index be730deb682..3f34fd91502 100644 --- a/rigs/heft-web-rig/package.json +++ b/rigs/heft-web-rig/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/heft-web-rig", - "version": "1.3.3", + "version": "1.4.3", "description": "A rig package for web browser projects that build using Heft", "license": "MIT", "scripts": { @@ -13,12 +13,13 @@ "directory": "rigs/heft-web-rig" }, "peerDependencies": { - "@rushstack/heft": "^1.2.2" + "@rushstack/heft": "^1.2.7" }, "dependencies": { "@microsoft/api-extractor": "workspace:*", "@rushstack/eslint-config": "workspace:*", "@rushstack/heft-api-extractor-plugin": "workspace:*", + "@rushstack/heft-static-asset-typings-plugin": "workspace:*", "@rushstack/heft-jest-plugin": "workspace:*", "@rushstack/heft-lint-plugin": "workspace:*", "@rushstack/heft-sass-plugin": "workspace:*", diff --git a/rigs/heft-web-rig/profiles/app/config/heft.json b/rigs/heft-web-rig/profiles/app/config/heft.json index 8e80c606118..92e332665a0 100644 --- a/rigs/heft-web-rig/profiles/app/config/heft.json +++ b/rigs/heft-web-rig/profiles/app/config/heft.json @@ -47,8 +47,22 @@ "pluginPackage": "@rushstack/heft-sass-plugin" } }, + "image-typings": { + "taskDependencies": ["set-browserslist-ignore-old-data-env-var"], + "taskPlugin": { + "pluginPackage": "@rushstack/heft-static-asset-typings-plugin", + "pluginName": "resource-assets-plugin", + "options": { + "configType": "inline", + "config": { + "fileExtensions": [".png", ".jpg", ".jpeg", ".gif", ".svg", ".ico", ".webp", ".avif"], + "generatedTsFolders": ["temp/image-typings"] + } + } + } + }, "typescript": { - "taskDependencies": ["sass"], + "taskDependencies": ["sass", "image-typings"], "taskPlugin": { "pluginPackage": "@rushstack/heft-typescript-plugin" } diff --git a/rigs/heft-web-rig/profiles/app/tsconfig-base.json b/rigs/heft-web-rig/profiles/app/tsconfig-base.json index 0594f2e7b70..3ba69ee3728 100644 --- a/rigs/heft-web-rig/profiles/app/tsconfig-base.json +++ b/rigs/heft-web-rig/profiles/app/tsconfig-base.json @@ -4,7 +4,7 @@ "compilerOptions": { "outDir": "../../../../../lib", "rootDir": "../../../../../src", - "rootDirs": ["../../../../../src", "../../../../../temp/sass-ts"], + "rootDirs": ["../../../../../src", "../../../../../temp/sass-ts", "../../../../../temp/image-typings"], "forceConsistentCasingInFileNames": true, "jsx": "react", diff --git a/rigs/heft-web-rig/profiles/library/config/heft.json b/rigs/heft-web-rig/profiles/library/config/heft.json index 8e80c606118..92e332665a0 100644 --- a/rigs/heft-web-rig/profiles/library/config/heft.json +++ b/rigs/heft-web-rig/profiles/library/config/heft.json @@ -47,8 +47,22 @@ "pluginPackage": "@rushstack/heft-sass-plugin" } }, + "image-typings": { + "taskDependencies": ["set-browserslist-ignore-old-data-env-var"], + "taskPlugin": { + "pluginPackage": "@rushstack/heft-static-asset-typings-plugin", + "pluginName": "resource-assets-plugin", + "options": { + "configType": "inline", + "config": { + "fileExtensions": [".png", ".jpg", ".jpeg", ".gif", ".svg", ".ico", ".webp", ".avif"], + "generatedTsFolders": ["temp/image-typings"] + } + } + } + }, "typescript": { - "taskDependencies": ["sass"], + "taskDependencies": ["sass", "image-typings"], "taskPlugin": { "pluginPackage": "@rushstack/heft-typescript-plugin" } diff --git a/rigs/heft-web-rig/profiles/library/tsconfig-base.json b/rigs/heft-web-rig/profiles/library/tsconfig-base.json index 0594f2e7b70..3ba69ee3728 100644 --- a/rigs/heft-web-rig/profiles/library/tsconfig-base.json +++ b/rigs/heft-web-rig/profiles/library/tsconfig-base.json @@ -4,7 +4,7 @@ "compilerOptions": { "outDir": "../../../../../lib", "rootDir": "../../../../../src", - "rootDirs": ["../../../../../src", "../../../../../temp/sass-ts"], + "rootDirs": ["../../../../../src", "../../../../../temp/sass-ts", "../../../../../temp/image-typings"], "forceConsistentCasingInFileNames": true, "jsx": "react", diff --git a/rigs/heft-web-rig/shared/webpack-base.config.js b/rigs/heft-web-rig/shared/webpack-base.config.js index 8ca3bf5d978..e848ead26c6 100644 --- a/rigs/heft-web-rig/shared/webpack-base.config.js +++ b/rigs/heft-web-rig/shared/webpack-base.config.js @@ -205,7 +205,7 @@ function createWebpackConfig({ env, argv, projectRoot, configOverride, extractCs }, { - test: /\.(jpeg|jpg|png|gif|svg|ico|woff|woff2|ttf|eot)$/, + test: /\.(jpeg|jpg|png|gif|svg|ico|webp|avif|woff|woff2|ttf|eot)$/, // Allows import/require() to be used with an asset file. The file will be copied to the output folder, // and the import statement will return its URL. // https://webpack.js.org/guides/asset-modules/#resource-assets diff --git a/rigs/local-node-rig/profiles/default/config/api-extractor-base.json b/rigs/local-node-rig/profiles/default/config/api-extractor-base.json new file mode 100644 index 00000000000..10c5e90d1c4 --- /dev/null +++ b/rigs/local-node-rig/profiles/default/config/api-extractor-base.json @@ -0,0 +1,19 @@ +{ + "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", + + "mainEntryPointFilePath": "/lib-dts/index.d.ts", + + "apiReport": { + "enabled": true, + "reportFolder": "/../../common/reviews/api" + }, + + "docModel": { + "enabled": true, + "apiJsonFilePath": "/temp/api/.api.json" + }, + + "dtsRollup": { + "enabled": true + } +} diff --git a/rigs/local-web-rig/profiles/library/config/api-extractor-base.json b/rigs/local-web-rig/profiles/library/config/api-extractor-base.json new file mode 100644 index 00000000000..10c5e90d1c4 --- /dev/null +++ b/rigs/local-web-rig/profiles/library/config/api-extractor-base.json @@ -0,0 +1,19 @@ +{ + "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", + + "mainEntryPointFilePath": "/lib-dts/index.d.ts", + + "apiReport": { + "enabled": true, + "reportFolder": "/../../common/reviews/api" + }, + + "docModel": { + "enabled": true, + "apiJsonFilePath": "/temp/api/.api.json" + }, + + "dtsRollup": { + "enabled": true + } +} diff --git a/rush-plugins/rush-amazon-s3-build-cache-plugin/.npmignore b/rush-plugins/rush-amazon-s3-build-cache-plugin/.npmignore index 778f98334c3..f7a40e10213 100644 --- a/rush-plugins/rush-amazon-s3-build-cache-plugin/.npmignore +++ b/rush-plugins/rush-amazon-s3-build-cache-plugin/.npmignore @@ -8,6 +8,7 @@ !/lib/** !/lib-*/** !/dist/** +!/includes/** !CHANGELOG.md !CHANGELOG.json @@ -20,6 +21,9 @@ /lib/**/test/ /lib-*/**/test/ *.test.js +*.test.[cm]js +*.test.d.ts +*.test.d.[cm]ts # NOTE: These don't need to be specified, because NPM includes them automatically. # @@ -30,6 +34,3 @@ # --------------------------------------------------------------------------- # DO NOT MODIFY ABOVE THIS LINE! Add any project-specific overrides below. # --------------------------------------------------------------------------- - -!/includes/** - diff --git a/rush-plugins/rush-amazon-s3-build-cache-plugin/config/api-extractor.json b/rush-plugins/rush-amazon-s3-build-cache-plugin/config/api-extractor.json index 05559c8de5e..5f6b2655ac8 100644 --- a/rush-plugins/rush-amazon-s3-build-cache-plugin/config/api-extractor.json +++ b/rush-plugins/rush-amazon-s3-build-cache-plugin/config/api-extractor.json @@ -1,14 +1,11 @@ { "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", + "extends": "local-node-rig/profiles/default/config/api-extractor-base.json", - "mainEntryPointFilePath": "/lib-dts/index.d.ts", - "apiReport": { - "enabled": true, - "reportFolder": "../../../common/reviews/api" - }, "docModel": { "enabled": false }, + "dtsRollup": { "enabled": true, "betaTrimmedFilePath": "/dist/.d.ts" diff --git a/rush-plugins/rush-amazon-s3-build-cache-plugin/package.json b/rush-plugins/rush-amazon-s3-build-cache-plugin/package.json index c14a84e3719..d663994485a 100644 --- a/rush-plugins/rush-amazon-s3-build-cache-plugin/package.json +++ b/rush-plugins/rush-amazon-s3-build-cache-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/rush-amazon-s3-build-cache-plugin", - "version": "5.169.2", + "version": "5.172.1", "description": "Rush plugin for Amazon S3 cloud build cache", "repository": { "type": "git", diff --git a/rush-plugins/rush-azure-storage-build-cache-plugin/.npmignore b/rush-plugins/rush-azure-storage-build-cache-plugin/.npmignore index 778f98334c3..f7a40e10213 100644 --- a/rush-plugins/rush-azure-storage-build-cache-plugin/.npmignore +++ b/rush-plugins/rush-azure-storage-build-cache-plugin/.npmignore @@ -8,6 +8,7 @@ !/lib/** !/lib-*/** !/dist/** +!/includes/** !CHANGELOG.md !CHANGELOG.json @@ -20,6 +21,9 @@ /lib/**/test/ /lib-*/**/test/ *.test.js +*.test.[cm]js +*.test.d.ts +*.test.d.[cm]ts # NOTE: These don't need to be specified, because NPM includes them automatically. # @@ -30,6 +34,3 @@ # --------------------------------------------------------------------------- # DO NOT MODIFY ABOVE THIS LINE! Add any project-specific overrides below. # --------------------------------------------------------------------------- - -!/includes/** - diff --git a/rush-plugins/rush-azure-storage-build-cache-plugin/config/api-extractor.json b/rush-plugins/rush-azure-storage-build-cache-plugin/config/api-extractor.json index 05559c8de5e..5f6b2655ac8 100644 --- a/rush-plugins/rush-azure-storage-build-cache-plugin/config/api-extractor.json +++ b/rush-plugins/rush-azure-storage-build-cache-plugin/config/api-extractor.json @@ -1,14 +1,11 @@ { "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", + "extends": "local-node-rig/profiles/default/config/api-extractor-base.json", - "mainEntryPointFilePath": "/lib-dts/index.d.ts", - "apiReport": { - "enabled": true, - "reportFolder": "../../../common/reviews/api" - }, "docModel": { "enabled": false }, + "dtsRollup": { "enabled": true, "betaTrimmedFilePath": "/dist/.d.ts" diff --git a/rush-plugins/rush-azure-storage-build-cache-plugin/package.json b/rush-plugins/rush-azure-storage-build-cache-plugin/package.json index 8c2ead3a008..70834b669cb 100644 --- a/rush-plugins/rush-azure-storage-build-cache-plugin/package.json +++ b/rush-plugins/rush-azure-storage-build-cache-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/rush-azure-storage-build-cache-plugin", - "version": "5.169.2", + "version": "5.172.1", "description": "Rush plugin for Azure storage cloud build cache", "repository": { "type": "git", diff --git a/rush-plugins/rush-azure-storage-build-cache-plugin/src/AzureStorageAuthentication.ts b/rush-plugins/rush-azure-storage-build-cache-plugin/src/AzureStorageAuthentication.ts index 982eb9f51fd..fdd1ecf80a4 100644 --- a/rush-plugins/rush-azure-storage-build-cache-plugin/src/AzureStorageAuthentication.ts +++ b/rush-plugins/rush-azure-storage-build-cache-plugin/src/AzureStorageAuthentication.ts @@ -24,6 +24,7 @@ import { export interface IAzureStorageAuthenticationOptions extends IAzureAuthenticationBaseOptions { storageContainerName: string; storageAccountName: string; + storageEndpoint?: string; isCacheWriteAllowed: boolean; } @@ -46,7 +47,11 @@ export class AzureStorageAuthentication extends AzureAuthenticationBase { this._storageAccountName = options.storageAccountName; this._storageContainerName = options.storageContainerName; this._isCacheWriteAllowedByConfiguration = options.isCacheWriteAllowed; - this._storageAccountUrl = `https://${this._storageAccountName}.blob.core.windows.net/`; + this._storageAccountUrl = options.storageEndpoint + ? options.storageEndpoint.endsWith('/') + ? options.storageEndpoint + : options.storageEndpoint + '/' + : `https://${this._storageAccountName}.blob.core.windows.net/`; } protected _getCacheIdParts(): string[] { diff --git a/rush-plugins/rush-azure-storage-build-cache-plugin/src/RushAzureStorageBuildCachePlugin.ts b/rush-plugins/rush-azure-storage-build-cache-plugin/src/RushAzureStorageBuildCachePlugin.ts index 4f3f440c5f7..4955f96f27b 100644 --- a/rush-plugins/rush-azure-storage-build-cache-plugin/src/RushAzureStorageBuildCachePlugin.ts +++ b/rush-plugins/rush-azure-storage-build-cache-plugin/src/RushAzureStorageBuildCachePlugin.ts @@ -37,6 +37,13 @@ interface IAzureBlobStorageConfigurationJson { */ readonly loginFlowFailover?: LoginFlowFailoverMap; + /** + * An optional custom endpoint URL for the Azure Blob Storage account. + * Use this to connect to Azurite, private endpoints, or storage emulators. + * Overrides the default endpoint derived from storageAccountName. + */ + readonly storageEndpoint?: string; + /** * An optional prefix for cache item blob names. */ @@ -70,6 +77,7 @@ export class RushAzureStorageBuildCachePlugin implements IRushPlugin { return new AzureStorageBuildCacheProvider({ storageAccountName: azureBlobStorageConfiguration.storageAccountName, storageContainerName: azureBlobStorageConfiguration.storageContainerName, + storageEndpoint: azureBlobStorageConfiguration.storageEndpoint, azureEnvironment: azureBlobStorageConfiguration.azureEnvironment, blobPrefix: azureBlobStorageConfiguration.blobPrefix, loginFlow: azureBlobStorageConfiguration.loginFlow, diff --git a/rush-plugins/rush-azure-storage-build-cache-plugin/src/schemas/azure-blob-storage-config.schema.json b/rush-plugins/rush-azure-storage-build-cache-plugin/src/schemas/azure-blob-storage-config.schema.json index 3a5173a26fd..2ffcd58e4ba 100644 --- a/rush-plugins/rush-azure-storage-build-cache-plugin/src/schemas/azure-blob-storage-config.schema.json +++ b/rush-plugins/rush-azure-storage-build-cache-plugin/src/schemas/azure-blob-storage-config.schema.json @@ -95,6 +95,12 @@ "description": "An optional prefix for cache item blob names." }, + "storageEndpoint": { + "type": "string", + "description": "An optional custom endpoint URL for the Azure Blob Storage account. Use this to connect to Azurite, private endpoints, or storage emulators. When specified, this overrides the default endpoint derived from storageAccountName. Example: \"http://127.0.0.1:10000/devstoreaccount1\" or \"https://my-proxy.example.com/devstoreaccount1\"", + "format": "uri" + }, + "isCacheWriteAllowed": { "type": "boolean", "description": "If set to true, allow writing to the cache. Defaults to false." diff --git a/rush-plugins/rush-azure-storage-build-cache-plugin/src/test/AzureStorageBuildCacheProvider.test.ts b/rush-plugins/rush-azure-storage-build-cache-plugin/src/test/AzureStorageBuildCacheProvider.test.ts index 23bb0ead55b..25cb7d50bc1 100644 --- a/rush-plugins/rush-azure-storage-build-cache-plugin/src/test/AzureStorageBuildCacheProvider.test.ts +++ b/rush-plugins/rush-azure-storage-build-cache-plugin/src/test/AzureStorageBuildCacheProvider.test.ts @@ -31,6 +31,40 @@ describe(AzureStorageBuildCacheProvider.name, () => { ).toThrowErrorMatchingSnapshot(); }); + describe('storageEndpoint', () => { + it('uses the default endpoint when storageEndpoint is not provided', () => { + const subject: AzureStorageBuildCacheProvider = new AzureStorageBuildCacheProvider({ + storageAccountName: 'storage-account', + storageContainerName: 'container-name', + isCacheWriteAllowed: false + }); + // eslint-disable-next-line @typescript-eslint/no-explicit-any + expect((subject as any)._storageAccountUrl).toBe('https://storage-account.blob.core.windows.net/'); + }); + + it('uses the custom endpoint when storageEndpoint is provided', () => { + const subject: AzureStorageBuildCacheProvider = new AzureStorageBuildCacheProvider({ + storageAccountName: 'devstoreaccount1', + storageContainerName: 'container-name', + storageEndpoint: 'http://127.0.0.1:10000/devstoreaccount1', + isCacheWriteAllowed: false + }); + // eslint-disable-next-line @typescript-eslint/no-explicit-any + expect((subject as any)._storageAccountUrl).toBe('http://127.0.0.1:10000/devstoreaccount1/'); + }); + + it('preserves a trailing slash on the custom endpoint', () => { + const subject: AzureStorageBuildCacheProvider = new AzureStorageBuildCacheProvider({ + storageAccountName: 'devstoreaccount1', + storageContainerName: 'container-name', + storageEndpoint: 'https://my-proxy.example.com/devstoreaccount1/', + isCacheWriteAllowed: false + }); + // eslint-disable-next-line @typescript-eslint/no-explicit-any + expect((subject as any)._storageAccountUrl).toBe('https://my-proxy.example.com/devstoreaccount1/'); + }); + }); + describe('isCacheWriteAllowed', () => { function prepareSubject( optionValue: boolean, diff --git a/rush-plugins/rush-bridge-cache-plugin/.npmignore b/rush-plugins/rush-bridge-cache-plugin/.npmignore index bc349f9a4be..f7a40e10213 100644 --- a/rush-plugins/rush-bridge-cache-plugin/.npmignore +++ b/rush-plugins/rush-bridge-cache-plugin/.npmignore @@ -8,6 +8,7 @@ !/lib/** !/lib-*/** !/dist/** +!/includes/** !CHANGELOG.md !CHANGELOG.json @@ -20,6 +21,9 @@ /lib/**/test/ /lib-*/**/test/ *.test.js +*.test.[cm]js +*.test.d.ts +*.test.d.[cm]ts # NOTE: These don't need to be specified, because NPM includes them automatically. # diff --git a/rush-plugins/rush-bridge-cache-plugin/package.json b/rush-plugins/rush-bridge-cache-plugin/package.json index 24019b9e963..e91b6497d78 100644 --- a/rush-plugins/rush-bridge-cache-plugin/package.json +++ b/rush-plugins/rush-bridge-cache-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/rush-bridge-cache-plugin", - "version": "5.169.2", + "version": "5.172.1", "description": "Rush plugin that provides a --set-cache-only command flag to populate the cache from content on disk.", "license": "MIT", "main": "./lib-commonjs/index.js", diff --git a/rush-plugins/rush-buildxl-graph-plugin/.npmignore b/rush-plugins/rush-buildxl-graph-plugin/.npmignore index 5114742642b..243556ebdae 100644 --- a/rush-plugins/rush-buildxl-graph-plugin/.npmignore +++ b/rush-plugins/rush-buildxl-graph-plugin/.npmignore @@ -8,6 +8,7 @@ !/lib/** !/lib-*/** !/dist/** +!/includes/** !CHANGELOG.md !CHANGELOG.json @@ -20,6 +21,9 @@ /lib/**/test/ /lib-*/**/test/ *.test.js +*.test.[cm]js +*.test.d.ts +*.test.d.[cm]ts # NOTE: These don't need to be specified, because NPM includes them automatically. # diff --git a/rush-plugins/rush-buildxl-graph-plugin/config/api-extractor.json b/rush-plugins/rush-buildxl-graph-plugin/config/api-extractor.json index 05559c8de5e..5f6b2655ac8 100644 --- a/rush-plugins/rush-buildxl-graph-plugin/config/api-extractor.json +++ b/rush-plugins/rush-buildxl-graph-plugin/config/api-extractor.json @@ -1,14 +1,11 @@ { "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", + "extends": "local-node-rig/profiles/default/config/api-extractor-base.json", - "mainEntryPointFilePath": "/lib-dts/index.d.ts", - "apiReport": { - "enabled": true, - "reportFolder": "../../../common/reviews/api" - }, "docModel": { "enabled": false }, + "dtsRollup": { "enabled": true, "betaTrimmedFilePath": "/dist/.d.ts" diff --git a/rush-plugins/rush-buildxl-graph-plugin/package.json b/rush-plugins/rush-buildxl-graph-plugin/package.json index 521eafd2472..9d4fb7c8040 100644 --- a/rush-plugins/rush-buildxl-graph-plugin/package.json +++ b/rush-plugins/rush-buildxl-graph-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/rush-buildxl-graph-plugin", - "version": "5.169.2", + "version": "5.172.1", "description": "Rush plugin for generating a BuildXL graph.", "repository": { "type": "git", diff --git a/rush-plugins/rush-http-build-cache-plugin/.npmignore b/rush-plugins/rush-http-build-cache-plugin/.npmignore index 5114742642b..f7a40e10213 100644 --- a/rush-plugins/rush-http-build-cache-plugin/.npmignore +++ b/rush-plugins/rush-http-build-cache-plugin/.npmignore @@ -8,6 +8,7 @@ !/lib/** !/lib-*/** !/dist/** +!/includes/** !CHANGELOG.md !CHANGELOG.json @@ -20,6 +21,9 @@ /lib/**/test/ /lib-*/**/test/ *.test.js +*.test.[cm]js +*.test.d.ts +*.test.d.[cm]ts # NOTE: These don't need to be specified, because NPM includes them automatically. # @@ -30,6 +34,3 @@ # --------------------------------------------------------------------------- # DO NOT MODIFY ABOVE THIS LINE! Add any project-specific overrides below. # --------------------------------------------------------------------------- - -lib/examples/** -lib-*/examples/** diff --git a/rush-plugins/rush-http-build-cache-plugin/package.json b/rush-plugins/rush-http-build-cache-plugin/package.json index 2a4a6c61658..7c8f49979bf 100644 --- a/rush-plugins/rush-http-build-cache-plugin/package.json +++ b/rush-plugins/rush-http-build-cache-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/rush-http-build-cache-plugin", - "version": "5.169.2", + "version": "5.172.1", "description": "Rush plugin for generic HTTP cloud build cache", "repository": { "type": "git", diff --git a/rush-plugins/rush-litewatch-plugin/.npmignore b/rush-plugins/rush-litewatch-plugin/.npmignore index bc349f9a4be..f7a40e10213 100644 --- a/rush-plugins/rush-litewatch-plugin/.npmignore +++ b/rush-plugins/rush-litewatch-plugin/.npmignore @@ -8,6 +8,7 @@ !/lib/** !/lib-*/** !/dist/** +!/includes/** !CHANGELOG.md !CHANGELOG.json @@ -20,6 +21,9 @@ /lib/**/test/ /lib-*/**/test/ *.test.js +*.test.[cm]js +*.test.d.ts +*.test.d.[cm]ts # NOTE: These don't need to be specified, because NPM includes them automatically. # diff --git a/rush-plugins/rush-mcp-docs-plugin/.npmignore b/rush-plugins/rush-mcp-docs-plugin/.npmignore index c033d1b3561..78b6a22de2a 100644 --- a/rush-plugins/rush-mcp-docs-plugin/.npmignore +++ b/rush-plugins/rush-mcp-docs-plugin/.npmignore @@ -8,6 +8,7 @@ !/lib/** !/lib-*/** !/dist/** +!/includes/** !CHANGELOG.md !CHANGELOG.json @@ -20,6 +21,9 @@ /lib/**/test/ /lib-*/**/test/ *.test.js +*.test.[cm]js +*.test.d.ts +*.test.d.[cm]ts # NOTE: These don't need to be specified, because NPM includes them automatically. # diff --git a/rush-plugins/rush-mcp-docs-plugin/CHANGELOG.json b/rush-plugins/rush-mcp-docs-plugin/CHANGELOG.json index da49e84a8fa..6d953713f58 100644 --- a/rush-plugins/rush-mcp-docs-plugin/CHANGELOG.json +++ b/rush-plugins/rush-mcp-docs-plugin/CHANGELOG.json @@ -1,6 +1,87 @@ { "name": "@rushstack/rush-mcp-docs-plugin", "entries": [ + { + "version": "0.3.7", + "tag": "@rushstack/rush-mcp-docs-plugin_v0.3.7", + "date": "Mon, 09 Mar 2026 15:14:08 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/mcp-server\" to `0.4.7`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.7`" + } + ] + } + }, + { + "version": "0.3.6", + "tag": "@rushstack/rush-mcp-docs-plugin_v0.3.6", + "date": "Wed, 25 Feb 2026 21:39:42 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/mcp-server\" to `0.4.6`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.6`" + } + ] + } + }, + { + "version": "0.3.5", + "tag": "@rushstack/rush-mcp-docs-plugin_v0.3.5", + "date": "Wed, 25 Feb 2026 00:34:30 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `5.20.3`" + }, + { + "comment": "Updating dependency \"@rushstack/mcp-server\" to `0.4.5`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.5`" + } + ] + } + }, + { + "version": "0.3.4", + "tag": "@rushstack/rush-mcp-docs-plugin_v0.3.4", + "date": "Tue, 24 Feb 2026 01:13:27 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `5.20.2`" + }, + { + "comment": "Updating dependency \"@rushstack/mcp-server\" to `0.4.4`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.4`" + } + ] + } + }, + { + "version": "0.3.3", + "tag": "@rushstack/rush-mcp-docs-plugin_v0.3.3", + "date": "Mon, 23 Feb 2026 00:42:21 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/mcp-server\" to `0.4.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.3`" + } + ] + } + }, { "version": "0.3.2", "tag": "@rushstack/rush-mcp-docs-plugin_v0.3.2", diff --git a/rush-plugins/rush-mcp-docs-plugin/CHANGELOG.md b/rush-plugins/rush-mcp-docs-plugin/CHANGELOG.md index 56837ecd9fe..21682e2b3aa 100644 --- a/rush-plugins/rush-mcp-docs-plugin/CHANGELOG.md +++ b/rush-plugins/rush-mcp-docs-plugin/CHANGELOG.md @@ -1,6 +1,31 @@ # Change Log - @rushstack/rush-mcp-docs-plugin -This log was last generated on Fri, 20 Feb 2026 16:14:49 GMT and should not be manually modified. +This log was last generated on Mon, 09 Mar 2026 15:14:08 GMT and should not be manually modified. + +## 0.3.7 +Mon, 09 Mar 2026 15:14:08 GMT + +_Version update only_ + +## 0.3.6 +Wed, 25 Feb 2026 21:39:42 GMT + +_Version update only_ + +## 0.3.5 +Wed, 25 Feb 2026 00:34:30 GMT + +_Version update only_ + +## 0.3.4 +Tue, 24 Feb 2026 01:13:27 GMT + +_Version update only_ + +## 0.3.3 +Mon, 23 Feb 2026 00:42:21 GMT + +_Version update only_ ## 0.3.2 Fri, 20 Feb 2026 16:14:49 GMT diff --git a/rush-plugins/rush-mcp-docs-plugin/package.json b/rush-plugins/rush-mcp-docs-plugin/package.json index f4b4346f5be..7b2000c8df7 100644 --- a/rush-plugins/rush-mcp-docs-plugin/package.json +++ b/rush-plugins/rush-mcp-docs-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/rush-mcp-docs-plugin", - "version": "0.3.2", + "version": "0.3.7", "description": "Docs plugin for @rushstack/mcp-server", "repository": { "url": "https://github.com/microsoft/rushstack.git", diff --git a/rush-plugins/rush-published-versions-json-plugin/.npmignore b/rush-plugins/rush-published-versions-json-plugin/.npmignore new file mode 100644 index 00000000000..e632c63d931 --- /dev/null +++ b/rush-plugins/rush-published-versions-json-plugin/.npmignore @@ -0,0 +1,37 @@ +# THIS IS A STANDARD TEMPLATE FOR .npmignore FILES IN THIS REPO. + +# Ignore all files by default, to avoid accidentally publishing unintended files. +* + +# Use negative patterns to bring back the specific things we want to publish. +!/bin/** +!/lib/** +!/lib-*/** +!/dist/** +!/includes/** + +!CHANGELOG.md +!CHANGELOG.json +!command-line.json +!heft-plugin.json +!rush-plugin-manifest.json +!ThirdPartyNotice.txt + +# Ignore certain patterns that should not get published. +/dist/*.stats.* +/lib/**/test/ +/lib-*/**/test/ +*.test.js +*.test.[cm]js +*.test.d.ts +*.test.d.[cm]ts + +# NOTE: These don't need to be specified, because NPM includes them automatically. +# +# package.json +# README.md +# LICENSE + +# --------------------------------------------------------------------------- +# DO NOT MODIFY ABOVE THIS LINE! Add any project-specific overrides below. +# --------------------------------------------------------------------------- diff --git a/rush-plugins/rush-published-versions-json-plugin/CHANGELOG.json b/rush-plugins/rush-published-versions-json-plugin/CHANGELOG.json new file mode 100644 index 00000000000..1e9da1664dc --- /dev/null +++ b/rush-plugins/rush-published-versions-json-plugin/CHANGELOG.json @@ -0,0 +1,17 @@ +{ + "name": "@rushstack/rush-published-versions-json-plugin", + "entries": [ + { + "version": "0.1.0", + "tag": "@rushstack/rush-published-versions-json-plugin_v0.1.0", + "date": "Tue, 24 Mar 2026 21:51:54 GMT", + "comments": { + "minor": [ + { + "comment": "Initial release." + } + ] + } + } + ] +} diff --git a/rush-plugins/rush-published-versions-json-plugin/CHANGELOG.md b/rush-plugins/rush-published-versions-json-plugin/CHANGELOG.md new file mode 100644 index 00000000000..68aed819523 --- /dev/null +++ b/rush-plugins/rush-published-versions-json-plugin/CHANGELOG.md @@ -0,0 +1,11 @@ +# Change Log - @rushstack/rush-published-versions-json-plugin + +This log was last generated on Tue, 24 Mar 2026 21:51:54 GMT and should not be manually modified. + +## 0.1.0 +Tue, 24 Mar 2026 21:51:54 GMT + +### Minor changes + +- Initial release. + diff --git a/rush-plugins/rush-published-versions-json-plugin/LICENSE b/rush-plugins/rush-published-versions-json-plugin/LICENSE new file mode 100644 index 00000000000..da9e82e6c70 --- /dev/null +++ b/rush-plugins/rush-published-versions-json-plugin/LICENSE @@ -0,0 +1,24 @@ +@rushstack/rush-published-versions-json-plugin + +Copyright (c) Microsoft Corporation. All rights reserved. + +MIT License + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/rush-plugins/rush-published-versions-json-plugin/README.md b/rush-plugins/rush-published-versions-json-plugin/README.md new file mode 100644 index 00000000000..bf975210cf7 --- /dev/null +++ b/rush-plugins/rush-published-versions-json-plugin/README.md @@ -0,0 +1,71 @@ +# @rushstack/rush-published-versions-json-plugin + +A Rush plugin that generates a JSON file recording the version numbers of all published packages in a Rush monorepo. + +## Installation + +1. Add the plugin package to an autoinstaller (e.g. `common/autoinstallers/rush-plugins/package.json`): + + ``` + rush init-autoinstaller --name rush-plugins + ``` + + ```bash + cd common/autoinstallers/rush-plugins + pnpm add @rushstack/rush-published-versions-json-plugin + rush update-autoinstaller --name rush-plugins + ``` + +2. Register the plugin in `common/config/rush/rush-plugins.json`: + + ```json + { + "$schema": "https://developer.microsoft.com/json-schemas/rush/v5/rush-plugins.schema.json", + "plugins": [ + { + "packageName": "@rushstack/rush-published-versions-json-plugin", + "pluginName": "rush-published-versions-json-plugin", + "autoinstallerName": "rush-plugins" + } + ] + } + ``` + +3. Run `rush update` to install the plugin. + +## Usage + +```bash +rush record-published-versions --output-path +``` + +### Parameters + +| Parameter | Short | Required | Description | +| --- | --- | --- | --- | +| `--output-path` | `-o` | Yes | The path to the output JSON file. Relative paths are resolved from the repo root. | + +### Example + +```bash +rush record-published-versions --output-path common/config/published-versions.json +``` + +### Output format + +The output is a JSON object mapping published package names to their current versions: + +```json +{ + "@my-scope/my-library": "1.2.3", + "@my-scope/my-app": "0.5.0" +} +``` + +A package is included if it has `shouldPublish` set to `true` or has a `versionPolicy` assigned in +**rush.json**. + +## Links + +- [CHANGELOG.md](./CHANGELOG.md) +- [Rush: Using rush plugins](https://rushjs.io/pages/maintainer/using_rush_plugins/) diff --git a/rush-plugins/rush-published-versions-json-plugin/command-line.json b/rush-plugins/rush-published-versions-json-plugin/command-line.json new file mode 100644 index 00000000000..248cc35030b --- /dev/null +++ b/rush-plugins/rush-published-versions-json-plugin/command-line.json @@ -0,0 +1,22 @@ +{ + "$schema": "https://developer.microsoft.com/json-schemas/rush/v5/command-line.schema.json", + "commands": [ + { + "commandKind": "globalPlugin", + "name": "record-published-versions", + "summary": "Generates a JSON file recording the version numbers of all published packages.", + "safeForSimultaneousRushProcesses": true + } + ], + "parameters": [ + { + "parameterKind": "string", + "longName": "--output-path", + "shortName": "-o", + "argumentName": "FILE_PATH", + "description": "The path to the output JSON file. Relative paths are resolved from the repo root.", + "associatedCommands": ["record-published-versions"], + "required": true + } + ] +} diff --git a/rush-plugins/rush-published-versions-json-plugin/config/rig.json b/rush-plugins/rush-published-versions-json-plugin/config/rig.json new file mode 100644 index 00000000000..165ffb001f5 --- /dev/null +++ b/rush-plugins/rush-published-versions-json-plugin/config/rig.json @@ -0,0 +1,7 @@ +{ + // The "rig.json" file directs tools to look for their config files in an external package. + // Documentation for this system: https://www.npmjs.com/package/@rushstack/rig-package + "$schema": "https://developer.microsoft.com/json-schemas/rig-package/rig.schema.json", + + "rigPackageName": "local-node-rig" +} diff --git a/rush-plugins/rush-published-versions-json-plugin/eslint.config.js b/rush-plugins/rush-published-versions-json-plugin/eslint.config.js new file mode 100644 index 00000000000..87132f43292 --- /dev/null +++ b/rush-plugins/rush-published-versions-json-plugin/eslint.config.js @@ -0,0 +1,20 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. +// See LICENSE in the project root for license information. + +const nodeProfile = require('local-node-rig/profiles/default/includes/eslint/flat/profile/node'); +const friendlyLocalsMixin = require('local-node-rig/profiles/default/includes/eslint/flat/mixins/friendly-locals'); +const tsdocMixin = require('local-node-rig/profiles/default/includes/eslint/flat/mixins/tsdoc'); + +module.exports = [ + ...nodeProfile, + ...friendlyLocalsMixin, + ...tsdocMixin, + { + files: ['**/*.ts', '**/*.tsx'], + languageOptions: { + parserOptions: { + tsconfigRootDir: __dirname + } + } + } +]; diff --git a/rush-plugins/rush-published-versions-json-plugin/package.json b/rush-plugins/rush-published-versions-json-plugin/package.json new file mode 100644 index 00000000000..a43ddc84485 --- /dev/null +++ b/rush-plugins/rush-published-versions-json-plugin/package.json @@ -0,0 +1,49 @@ +{ + "name": "@rushstack/rush-published-versions-json-plugin", + "version": "0.1.0", + "description": "A Rush plugin for generating a JSON file containing the versions of all published packages in the monorepo.", + "license": "MIT", + "repository": { + "url": "https://github.com/microsoft/rushstack.git", + "type": "git", + "directory": "rush-plugins/rush-published-versions-json-plugin" + }, + "scripts": { + "build": "heft test --clean", + "_phase:build": "heft run --only build -- --clean" + }, + "dependencies": { + "@rushstack/node-core-library": "workspace:*", + "@rushstack/rush-sdk": "workspace:*", + "@rushstack/terminal": "workspace:*" + }, + "devDependencies": { + "@rushstack/heft": "workspace:*", + "@rushstack/ts-command-line": "workspace:*", + "eslint": "~9.37.0", + "local-node-rig": "workspace:*" + }, + "main": "./lib-commonjs/index.js", + "module": "./lib-esm/index.js", + "types": "./lib-dts/index.d.ts", + "exports": { + ".": { + "types": "./lib-dts/index.d.ts", + "import": "./lib-esm/index.js", + "require": "./lib-commonjs/index.js" + }, + "./lib/*": { + "types": "./lib-dts/*.d.ts", + "import": "./lib-esm/*.js", + "require": "./lib-commonjs/*.js" + }, + "./package.json": "./package.json" + }, + "typesVersions": { + "*": { + "lib/*": [ + "lib-dts/*" + ] + } + } +} diff --git a/rush-plugins/rush-published-versions-json-plugin/rush-plugin-manifest.json b/rush-plugins/rush-published-versions-json-plugin/rush-plugin-manifest.json new file mode 100644 index 00000000000..03631898b98 --- /dev/null +++ b/rush-plugins/rush-published-versions-json-plugin/rush-plugin-manifest.json @@ -0,0 +1,12 @@ +{ + "$schema": "https://developer.microsoft.com/json-schemas/rush/v5/rush-plugin-manifest.schema.json", + "plugins": [ + { + "pluginName": "rush-published-versions-json-plugin", + "description": "A Rush plugin for generating a JSON file containing the versions of all published packages in the monorepo.", + "entryPoint": "./lib-commonjs/index.js", + "associatedCommands": ["record-published-versions"], + "commandLineJsonFilePath": "./command-line.json" + } + ] +} diff --git a/rush-plugins/rush-published-versions-json-plugin/src/PublishedVersionsJsonPlugin.ts b/rush-plugins/rush-published-versions-json-plugin/src/PublishedVersionsJsonPlugin.ts new file mode 100644 index 00000000000..4af7d7154cf --- /dev/null +++ b/rush-plugins/rush-published-versions-json-plugin/src/PublishedVersionsJsonPlugin.ts @@ -0,0 +1,56 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. +// See LICENSE in the project root for license information. + +import * as path from 'node:path'; + +import type { IRequiredCommandLineStringParameter } from '@rushstack/ts-command-line'; +import { JsonFile } from '@rushstack/node-core-library'; +import type { + IGlobalCommand, + ILogger, + IRushPlugin, + RushConfiguration, + RushSession +} from '@rushstack/rush-sdk'; + +const PLUGIN_NAME: 'PublishedVersionsJsonPlugin' = 'PublishedVersionsJsonPlugin'; + +/** + * A Rush plugin for generating a JSON file containing the versions of all published packages in the monorepo. + * @public + */ +export class PublishedVersionsJsonPlugin implements IRushPlugin { + public readonly pluginName: string = PLUGIN_NAME; + + public apply(session: RushSession, rushConfiguration: RushConfiguration): void { + session.hooks.runGlobalCustomCommand + .for('record-published-versions') + .tapPromise(PLUGIN_NAME, async (command: IGlobalCommand) => { + command.setHandled(); + + const { terminal }: ILogger = session.getLogger(PLUGIN_NAME); + + const outputPathParameter: IRequiredCommandLineStringParameter = + command.getCustomParametersByLongName('--output-path'); + + const publishedPackageVersions: Record = {}; + for (const { + shouldPublish, + packageName, + packageJson: { version } + } of rushConfiguration.projects) { + if (shouldPublish) { + // Note that `shouldPublish` is also `true` when publishing is driven by a version policy. + publishedPackageVersions[packageName] = version; + } + } + + const resolvedOutputPath: string = path.resolve(process.cwd(), outputPathParameter.value); + await JsonFile.saveAsync(publishedPackageVersions, resolvedOutputPath, { + ensureFolderExists: true + }); + + terminal.writeLine(`Wrote file to ${resolvedOutputPath}`); + }); + } +} diff --git a/build-tests/heft-rspack-everything-test/src/chunks/image.d.png.ts b/rush-plugins/rush-published-versions-json-plugin/src/index.ts similarity index 56% rename from build-tests/heft-rspack-everything-test/src/chunks/image.d.png.ts rename to rush-plugins/rush-published-versions-json-plugin/src/index.ts index f38a285dfd9..7b2de678a0e 100644 --- a/build-tests/heft-rspack-everything-test/src/chunks/image.d.png.ts +++ b/rush-plugins/rush-published-versions-json-plugin/src/index.ts @@ -1,6 +1,5 @@ // Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. // See LICENSE in the project root for license information. -declare const path: string; - -export default path; +import { PublishedVersionsJsonPlugin } from './PublishedVersionsJsonPlugin'; +export default PublishedVersionsJsonPlugin; diff --git a/rush-plugins/rush-published-versions-json-plugin/tsconfig.json b/rush-plugins/rush-published-versions-json-plugin/tsconfig.json new file mode 100644 index 00000000000..dac21d04081 --- /dev/null +++ b/rush-plugins/rush-published-versions-json-plugin/tsconfig.json @@ -0,0 +1,3 @@ +{ + "extends": "./node_modules/local-node-rig/profiles/default/tsconfig-base.json" +} diff --git a/rush-plugins/rush-redis-cobuild-plugin/.npmignore b/rush-plugins/rush-redis-cobuild-plugin/.npmignore index 778f98334c3..f7a40e10213 100644 --- a/rush-plugins/rush-redis-cobuild-plugin/.npmignore +++ b/rush-plugins/rush-redis-cobuild-plugin/.npmignore @@ -8,6 +8,7 @@ !/lib/** !/lib-*/** !/dist/** +!/includes/** !CHANGELOG.md !CHANGELOG.json @@ -20,6 +21,9 @@ /lib/**/test/ /lib-*/**/test/ *.test.js +*.test.[cm]js +*.test.d.ts +*.test.d.[cm]ts # NOTE: These don't need to be specified, because NPM includes them automatically. # @@ -30,6 +34,3 @@ # --------------------------------------------------------------------------- # DO NOT MODIFY ABOVE THIS LINE! Add any project-specific overrides below. # --------------------------------------------------------------------------- - -!/includes/** - diff --git a/rush-plugins/rush-redis-cobuild-plugin/config/api-extractor.json b/rush-plugins/rush-redis-cobuild-plugin/config/api-extractor.json index 05559c8de5e..5f6b2655ac8 100644 --- a/rush-plugins/rush-redis-cobuild-plugin/config/api-extractor.json +++ b/rush-plugins/rush-redis-cobuild-plugin/config/api-extractor.json @@ -1,14 +1,11 @@ { "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", + "extends": "local-node-rig/profiles/default/config/api-extractor-base.json", - "mainEntryPointFilePath": "/lib-dts/index.d.ts", - "apiReport": { - "enabled": true, - "reportFolder": "../../../common/reviews/api" - }, "docModel": { "enabled": false }, + "dtsRollup": { "enabled": true, "betaTrimmedFilePath": "/dist/.d.ts" diff --git a/rush-plugins/rush-redis-cobuild-plugin/package.json b/rush-plugins/rush-redis-cobuild-plugin/package.json index 38e236b8ca1..c042481187f 100644 --- a/rush-plugins/rush-redis-cobuild-plugin/package.json +++ b/rush-plugins/rush-redis-cobuild-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/rush-redis-cobuild-plugin", - "version": "5.169.2", + "version": "5.172.1", "description": "Rush plugin for Redis cobuild lock", "repository": { "type": "git", diff --git a/rush-plugins/rush-resolver-cache-plugin/.npmignore b/rush-plugins/rush-resolver-cache-plugin/.npmignore index ffb155d74e6..f7a40e10213 100644 --- a/rush-plugins/rush-resolver-cache-plugin/.npmignore +++ b/rush-plugins/rush-resolver-cache-plugin/.npmignore @@ -8,6 +8,7 @@ !/lib/** !/lib-*/** !/dist/** +!/includes/** !CHANGELOG.md !CHANGELOG.json @@ -20,6 +21,9 @@ /lib/**/test/ /lib-*/**/test/ *.test.js +*.test.[cm]js +*.test.d.ts +*.test.d.[cm]ts # NOTE: These don't need to be specified, because NPM includes them automatically. # @@ -30,5 +34,3 @@ # --------------------------------------------------------------------------- # DO NOT MODIFY ABOVE THIS LINE! Add any project-specific overrides below. # --------------------------------------------------------------------------- - -!/includes/** diff --git a/rush-plugins/rush-resolver-cache-plugin/config/api-extractor.json b/rush-plugins/rush-resolver-cache-plugin/config/api-extractor.json index 1d56fc29ae1..7fb68e06435 100644 --- a/rush-plugins/rush-resolver-cache-plugin/config/api-extractor.json +++ b/rush-plugins/rush-resolver-cache-plugin/config/api-extractor.json @@ -1,19 +1,8 @@ { "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", - - "mainEntryPointFilePath": "/lib-dts/index.d.ts", - - "apiReport": { - "enabled": true, - "reportFolder": "../../../common/reviews/api" - }, + "extends": "local-node-rig/profiles/default/config/api-extractor-base.json", "docModel": { - "enabled": false, - "apiJsonFilePath": "../../../common/temp/api/.api.json" - }, - - "dtsRollup": { - "enabled": true + "enabled": false } } diff --git a/rush-plugins/rush-resolver-cache-plugin/package.json b/rush-plugins/rush-resolver-cache-plugin/package.json index 2ce2b4d9f97..5ed67092bde 100644 --- a/rush-plugins/rush-resolver-cache-plugin/package.json +++ b/rush-plugins/rush-resolver-cache-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/rush-resolver-cache-plugin", - "version": "5.169.2", + "version": "5.172.1", "description": "A Rush plugin that generates a resolver cache file after successful install.", "license": "MIT", "repository": { diff --git a/rush-plugins/rush-serve-plugin/.npmignore b/rush-plugins/rush-serve-plugin/.npmignore index ffb155d74e6..f7a40e10213 100644 --- a/rush-plugins/rush-serve-plugin/.npmignore +++ b/rush-plugins/rush-serve-plugin/.npmignore @@ -8,6 +8,7 @@ !/lib/** !/lib-*/** !/dist/** +!/includes/** !CHANGELOG.md !CHANGELOG.json @@ -20,6 +21,9 @@ /lib/**/test/ /lib-*/**/test/ *.test.js +*.test.[cm]js +*.test.d.ts +*.test.d.[cm]ts # NOTE: These don't need to be specified, because NPM includes them automatically. # @@ -30,5 +34,3 @@ # --------------------------------------------------------------------------- # DO NOT MODIFY ABOVE THIS LINE! Add any project-specific overrides below. # --------------------------------------------------------------------------- - -!/includes/** diff --git a/rush-plugins/rush-serve-plugin/config/api-extractor.json b/rush-plugins/rush-serve-plugin/config/api-extractor.json index 1d56fc29ae1..7fb68e06435 100644 --- a/rush-plugins/rush-serve-plugin/config/api-extractor.json +++ b/rush-plugins/rush-serve-plugin/config/api-extractor.json @@ -1,19 +1,8 @@ { "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", - - "mainEntryPointFilePath": "/lib-dts/index.d.ts", - - "apiReport": { - "enabled": true, - "reportFolder": "../../../common/reviews/api" - }, + "extends": "local-node-rig/profiles/default/config/api-extractor-base.json", "docModel": { - "enabled": false, - "apiJsonFilePath": "../../../common/temp/api/.api.json" - }, - - "dtsRollup": { - "enabled": true + "enabled": false } } diff --git a/rush-plugins/rush-serve-plugin/package.json b/rush-plugins/rush-serve-plugin/package.json index 6353b831092..7a2b1d3eacc 100644 --- a/rush-plugins/rush-serve-plugin/package.json +++ b/rush-plugins/rush-serve-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/rush-serve-plugin", - "version": "5.169.2", + "version": "5.172.1", "description": "A Rush plugin that hooks into a rush action and serves output folders from all projects in the repository.", "license": "MIT", "repository": { diff --git a/rush.json b/rush.json index 8d2151e9cc1..cdc907387f1 100644 --- a/rush.json +++ b/rush.json @@ -16,7 +16,7 @@ * path segment in the "$schema" field for all your Rush config files. This will ensure * correct error-underlining and tab-completion for editors such as VS Code. */ - "rushVersion": "5.169.1", + "rushVersion": "5.172.0", /** * The next field selects which package manager should be installed and determines its version. @@ -690,6 +690,12 @@ "reviewCategory": "tests", "shouldPublish": false }, + { + "packageName": "package-extractor-test-05", + "projectFolder": "build-tests/package-extractor-test-05", + "reviewCategory": "tests", + "shouldPublish": false + }, { "packageName": "rush-mcp-example-plugin", "projectFolder": "build-tests/rush-mcp-example-plugin", @@ -1150,6 +1156,12 @@ "reviewCategory": "libraries", "shouldPublish": true }, + { + "packageName": "@rushstack/heft-static-asset-typings-plugin", + "projectFolder": "heft-plugins/heft-static-asset-typings-plugin", + "reviewCategory": "libraries", + "shouldPublish": true + }, { "packageName": "@rushstack/heft-storybook-plugin", "projectFolder": "heft-plugins/heft-storybook-plugin", @@ -1582,6 +1594,12 @@ "reviewCategory": "libraries", "shouldPublish": true }, + { + "packageName": "@rushstack/rush-published-versions-json-plugin", + "projectFolder": "rush-plugins/rush-published-versions-json-plugin", + "reviewCategory": "libraries", + "shouldPublish": true + }, { "packageName": "@rushstack/rush-pnpm-kit-v8", "projectFolder": "libraries/rush-pnpm-kit-v8", diff --git a/vscode-extensions/debug-certificate-manager-vscode-extension/.npmignore b/vscode-extensions/debug-certificate-manager-vscode-extension/.npmignore index dcf329e5ffa..f7a40e10213 100644 --- a/vscode-extensions/debug-certificate-manager-vscode-extension/.npmignore +++ b/vscode-extensions/debug-certificate-manager-vscode-extension/.npmignore @@ -1,2 +1,36 @@ +# THIS IS A STANDARD TEMPLATE FOR .npmignore FILES IN THIS REPO. + # Ignore all files by default, to avoid accidentally publishing unintended files. -** +* + +# Use negative patterns to bring back the specific things we want to publish. +!/bin/** +!/lib/** +!/lib-*/** +!/dist/** +!/includes/** + +!CHANGELOG.md +!CHANGELOG.json +!heft-plugin.json +!rush-plugin-manifest.json +!ThirdPartyNotice.txt + +# Ignore certain patterns that should not get published. +/dist/*.stats.* +/lib/**/test/ +/lib-*/**/test/ +*.test.js +*.test.[cm]js +*.test.d.ts +*.test.d.[cm]ts + +# NOTE: These don't need to be specified, because NPM includes them automatically. +# +# package.json +# README.md +# LICENSE + +# --------------------------------------------------------------------------- +# DO NOT MODIFY ABOVE THIS LINE! Add any project-specific overrides below. +# --------------------------------------------------------------------------- diff --git a/vscode-extensions/playwright-local-browser-server-vscode-extension/.npmignore b/vscode-extensions/playwright-local-browser-server-vscode-extension/.npmignore index dcf329e5ffa..f7a40e10213 100644 --- a/vscode-extensions/playwright-local-browser-server-vscode-extension/.npmignore +++ b/vscode-extensions/playwright-local-browser-server-vscode-extension/.npmignore @@ -1,2 +1,36 @@ +# THIS IS A STANDARD TEMPLATE FOR .npmignore FILES IN THIS REPO. + # Ignore all files by default, to avoid accidentally publishing unintended files. -** +* + +# Use negative patterns to bring back the specific things we want to publish. +!/bin/** +!/lib/** +!/lib-*/** +!/dist/** +!/includes/** + +!CHANGELOG.md +!CHANGELOG.json +!heft-plugin.json +!rush-plugin-manifest.json +!ThirdPartyNotice.txt + +# Ignore certain patterns that should not get published. +/dist/*.stats.* +/lib/**/test/ +/lib-*/**/test/ +*.test.js +*.test.[cm]js +*.test.d.ts +*.test.d.[cm]ts + +# NOTE: These don't need to be specified, because NPM includes them automatically. +# +# package.json +# README.md +# LICENSE + +# --------------------------------------------------------------------------- +# DO NOT MODIFY ABOVE THIS LINE! Add any project-specific overrides below. +# --------------------------------------------------------------------------- diff --git a/vscode-extensions/playwright-local-browser-server-vscode-extension/package.json b/vscode-extensions/playwright-local-browser-server-vscode-extension/package.json index 99c5c4c97b2..2dd41e2c519 100644 --- a/vscode-extensions/playwright-local-browser-server-vscode-extension/package.json +++ b/vscode-extensions/playwright-local-browser-server-vscode-extension/package.json @@ -1,6 +1,6 @@ { "name": "playwright-local-browser-server", - "version": "0.1.2", + "version": "0.1.4", "repository": { "type": "git", "url": "https://github.com/microsoft/rushstack.git", diff --git a/vscode-extensions/rush-vscode-extension/.npmignore b/vscode-extensions/rush-vscode-extension/.npmignore index dcf329e5ffa..f7a40e10213 100644 --- a/vscode-extensions/rush-vscode-extension/.npmignore +++ b/vscode-extensions/rush-vscode-extension/.npmignore @@ -1,2 +1,36 @@ +# THIS IS A STANDARD TEMPLATE FOR .npmignore FILES IN THIS REPO. + # Ignore all files by default, to avoid accidentally publishing unintended files. -** +* + +# Use negative patterns to bring back the specific things we want to publish. +!/bin/** +!/lib/** +!/lib-*/** +!/dist/** +!/includes/** + +!CHANGELOG.md +!CHANGELOG.json +!heft-plugin.json +!rush-plugin-manifest.json +!ThirdPartyNotice.txt + +# Ignore certain patterns that should not get published. +/dist/*.stats.* +/lib/**/test/ +/lib-*/**/test/ +*.test.js +*.test.[cm]js +*.test.d.ts +*.test.d.[cm]ts + +# NOTE: These don't need to be specified, because NPM includes them automatically. +# +# package.json +# README.md +# LICENSE + +# --------------------------------------------------------------------------- +# DO NOT MODIFY ABOVE THIS LINE! Add any project-specific overrides below. +# --------------------------------------------------------------------------- diff --git a/vscode-extensions/vscode-shared/.npmignore b/vscode-extensions/vscode-shared/.npmignore index dcf329e5ffa..f7a40e10213 100644 --- a/vscode-extensions/vscode-shared/.npmignore +++ b/vscode-extensions/vscode-shared/.npmignore @@ -1,2 +1,36 @@ +# THIS IS A STANDARD TEMPLATE FOR .npmignore FILES IN THIS REPO. + # Ignore all files by default, to avoid accidentally publishing unintended files. -** +* + +# Use negative patterns to bring back the specific things we want to publish. +!/bin/** +!/lib/** +!/lib-*/** +!/dist/** +!/includes/** + +!CHANGELOG.md +!CHANGELOG.json +!heft-plugin.json +!rush-plugin-manifest.json +!ThirdPartyNotice.txt + +# Ignore certain patterns that should not get published. +/dist/*.stats.* +/lib/**/test/ +/lib-*/**/test/ +*.test.js +*.test.[cm]js +*.test.d.ts +*.test.d.[cm]ts + +# NOTE: These don't need to be specified, because NPM includes them automatically. +# +# package.json +# README.md +# LICENSE + +# --------------------------------------------------------------------------- +# DO NOT MODIFY ABOVE THIS LINE! Add any project-specific overrides below. +# --------------------------------------------------------------------------- diff --git a/webpack/hashed-folder-copy-plugin/.npmignore b/webpack/hashed-folder-copy-plugin/.npmignore index 814dbc9e741..f7a40e10213 100644 --- a/webpack/hashed-folder-copy-plugin/.npmignore +++ b/webpack/hashed-folder-copy-plugin/.npmignore @@ -1,25 +1,36 @@ -# Ignore everything by default -** +# THIS IS A STANDARD TEMPLATE FOR .npmignore FILES IN THIS REPO. -# Use negative patterns to bring back the specific things we want to publish +# Ignore all files by default, to avoid accidentally publishing unintended files. +* + +# Use negative patterns to bring back the specific things we want to publish. !/bin/** !/lib/** +!/lib-*/** !/dist/** +!/includes/** + +!CHANGELOG.md +!CHANGELOG.json +!heft-plugin.json +!rush-plugin-manifest.json !ThirdPartyNotice.txt -!/EULA/** -# Ignore certain files in the above folder +# Ignore certain patterns that should not get published. /dist/*.stats.* -/lib/**/test/** -/lib/**/*.js.map -/dist/**/*.js.map +/lib/**/test/ +/lib-*/**/test/ +*.test.js +*.test.[cm]js +*.test.d.ts +*.test.d.[cm]ts # NOTE: These don't need to be specified, because NPM includes them automatically. # # package.json -# README (and its variants) -# CHANGELOG (and its variants) -# LICENSE / LICENCE +# README.md +# LICENSE -## Project specific definitions -# ----------------------------- +# --------------------------------------------------------------------------- +# DO NOT MODIFY ABOVE THIS LINE! Add any project-specific overrides below. +# --------------------------------------------------------------------------- diff --git a/webpack/hashed-folder-copy-plugin/CHANGELOG.json b/webpack/hashed-folder-copy-plugin/CHANGELOG.json index 9c9132966a6..82506667104 100644 --- a/webpack/hashed-folder-copy-plugin/CHANGELOG.json +++ b/webpack/hashed-folder-copy-plugin/CHANGELOG.json @@ -1,6 +1,77 @@ { "name": "@rushstack/hashed-folder-copy-plugin", "entries": [ + { + "version": "1.3.7", + "tag": "@rushstack/hashed-folder-copy-plugin_v1.3.7", + "date": "Mon, 09 Mar 2026 15:14:08 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.7`" + } + ] + } + }, + { + "version": "1.3.6", + "tag": "@rushstack/hashed-folder-copy-plugin_v1.3.6", + "date": "Wed, 25 Feb 2026 21:39:42 GMT", + "comments": { + "patch": [ + { + "comment": "Include missing `lib-*` folders." + } + ], + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.6`" + } + ] + } + }, + { + "version": "1.3.5", + "tag": "@rushstack/hashed-folder-copy-plugin_v1.3.5", + "date": "Wed, 25 Feb 2026 00:34:29 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `5.20.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.5`" + } + ] + } + }, + { + "version": "1.3.4", + "tag": "@rushstack/hashed-folder-copy-plugin_v1.3.4", + "date": "Tue, 24 Feb 2026 01:13:27 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `5.20.2`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.4`" + } + ] + } + }, + { + "version": "1.3.3", + "tag": "@rushstack/hashed-folder-copy-plugin_v1.3.3", + "date": "Mon, 23 Feb 2026 00:42:21 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.3`" + } + ] + } + }, { "version": "1.3.2", "tag": "@rushstack/hashed-folder-copy-plugin_v1.3.2", diff --git a/webpack/hashed-folder-copy-plugin/CHANGELOG.md b/webpack/hashed-folder-copy-plugin/CHANGELOG.md index b8310b42ead..a087f9d5e96 100644 --- a/webpack/hashed-folder-copy-plugin/CHANGELOG.md +++ b/webpack/hashed-folder-copy-plugin/CHANGELOG.md @@ -1,6 +1,33 @@ # Change Log - @rushstack/hashed-folder-copy-plugin -This log was last generated on Fri, 20 Feb 2026 16:14:49 GMT and should not be manually modified. +This log was last generated on Mon, 09 Mar 2026 15:14:08 GMT and should not be manually modified. + +## 1.3.7 +Mon, 09 Mar 2026 15:14:08 GMT + +_Version update only_ + +## 1.3.6 +Wed, 25 Feb 2026 21:39:42 GMT + +### Patches + +- Include missing `lib-*` folders. + +## 1.3.5 +Wed, 25 Feb 2026 00:34:29 GMT + +_Version update only_ + +## 1.3.4 +Tue, 24 Feb 2026 01:13:27 GMT + +_Version update only_ + +## 1.3.3 +Mon, 23 Feb 2026 00:42:21 GMT + +_Version update only_ ## 1.3.2 Fri, 20 Feb 2026 16:14:49 GMT diff --git a/webpack/hashed-folder-copy-plugin/config/api-extractor.json b/webpack/hashed-folder-copy-plugin/config/api-extractor.json index 1d56fc29ae1..7fb68e06435 100644 --- a/webpack/hashed-folder-copy-plugin/config/api-extractor.json +++ b/webpack/hashed-folder-copy-plugin/config/api-extractor.json @@ -1,19 +1,8 @@ { "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", - - "mainEntryPointFilePath": "/lib-dts/index.d.ts", - - "apiReport": { - "enabled": true, - "reportFolder": "../../../common/reviews/api" - }, + "extends": "local-node-rig/profiles/default/config/api-extractor-base.json", "docModel": { - "enabled": false, - "apiJsonFilePath": "../../../common/temp/api/.api.json" - }, - - "dtsRollup": { - "enabled": true + "enabled": false } } diff --git a/webpack/hashed-folder-copy-plugin/package.json b/webpack/hashed-folder-copy-plugin/package.json index c6c2542938a..d28ebb32475 100644 --- a/webpack/hashed-folder-copy-plugin/package.json +++ b/webpack/hashed-folder-copy-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/hashed-folder-copy-plugin", - "version": "1.3.2", + "version": "1.3.7", "description": "Webpack plugin for copying a folder to the output directory with a hash in the folder name.", "types": "./dist/hashed-folder-copy-plugin.d.ts", "main": "./lib-commonjs/index.js", diff --git a/webpack/loader-load-themed-styles/.npmignore b/webpack/loader-load-themed-styles/.npmignore index bc349f9a4be..f7a40e10213 100644 --- a/webpack/loader-load-themed-styles/.npmignore +++ b/webpack/loader-load-themed-styles/.npmignore @@ -8,6 +8,7 @@ !/lib/** !/lib-*/** !/dist/** +!/includes/** !CHANGELOG.md !CHANGELOG.json @@ -20,6 +21,9 @@ /lib/**/test/ /lib-*/**/test/ *.test.js +*.test.[cm]js +*.test.d.ts +*.test.d.[cm]ts # NOTE: These don't need to be specified, because NPM includes them automatically. # diff --git a/webpack/loader-load-themed-styles/CHANGELOG.json b/webpack/loader-load-themed-styles/CHANGELOG.json index 639df8d9cf1..e1ed098e6eb 100644 --- a/webpack/loader-load-themed-styles/CHANGELOG.json +++ b/webpack/loader-load-themed-styles/CHANGELOG.json @@ -1,6 +1,96 @@ { "name": "@microsoft/loader-load-themed-styles", "entries": [ + { + "version": "2.2.7", + "tag": "@microsoft/loader-load-themed-styles_v2.2.7", + "date": "Mon, 09 Mar 2026 15:14:08 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@microsoft/load-themed-styles\" to `2.2.7`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.7`" + }, + { + "comment": "Updating dependency \"@microsoft/load-themed-styles\" from `^2.2.6` to `2.2.7`" + } + ] + } + }, + { + "version": "2.2.6", + "tag": "@microsoft/loader-load-themed-styles_v2.2.6", + "date": "Wed, 25 Feb 2026 21:39:42 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@microsoft/load-themed-styles\" to `2.2.6`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.6`" + }, + { + "comment": "Updating dependency \"@microsoft/load-themed-styles\" from `^2.2.5` to `2.2.6`" + } + ] + } + }, + { + "version": "2.2.5", + "tag": "@microsoft/loader-load-themed-styles_v2.2.5", + "date": "Wed, 25 Feb 2026 00:34:29 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@microsoft/load-themed-styles\" to `2.2.5`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.5`" + }, + { + "comment": "Updating dependency \"@microsoft/load-themed-styles\" from `^2.2.4` to `2.2.5`" + } + ] + } + }, + { + "version": "2.2.4", + "tag": "@microsoft/loader-load-themed-styles_v2.2.4", + "date": "Tue, 24 Feb 2026 01:13:27 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@microsoft/load-themed-styles\" to `2.2.4`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.4`" + }, + { + "comment": "Updating dependency \"@microsoft/load-themed-styles\" from `^2.2.3` to `2.2.4`" + } + ] + } + }, + { + "version": "2.2.3", + "tag": "@microsoft/loader-load-themed-styles_v2.2.3", + "date": "Mon, 23 Feb 2026 00:42:21 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@microsoft/load-themed-styles\" to `2.2.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.3`" + }, + { + "comment": "Updating dependency \"@microsoft/load-themed-styles\" from `^2.2.2` to `2.2.3`" + } + ] + } + }, { "version": "2.2.2", "tag": "@microsoft/loader-load-themed-styles_v2.2.2", diff --git a/webpack/loader-load-themed-styles/CHANGELOG.md b/webpack/loader-load-themed-styles/CHANGELOG.md index 464b1a5413f..c8761622455 100644 --- a/webpack/loader-load-themed-styles/CHANGELOG.md +++ b/webpack/loader-load-themed-styles/CHANGELOG.md @@ -1,6 +1,31 @@ # Change Log - @microsoft/loader-load-themed-styles -This log was last generated on Fri, 20 Feb 2026 16:14:49 GMT and should not be manually modified. +This log was last generated on Mon, 09 Mar 2026 15:14:08 GMT and should not be manually modified. + +## 2.2.7 +Mon, 09 Mar 2026 15:14:08 GMT + +_Version update only_ + +## 2.2.6 +Wed, 25 Feb 2026 21:39:42 GMT + +_Version update only_ + +## 2.2.5 +Wed, 25 Feb 2026 00:34:29 GMT + +_Version update only_ + +## 2.2.4 +Tue, 24 Feb 2026 01:13:27 GMT + +_Version update only_ + +## 2.2.3 +Mon, 23 Feb 2026 00:42:21 GMT + +_Version update only_ ## 2.2.2 Fri, 20 Feb 2026 16:14:49 GMT diff --git a/webpack/loader-load-themed-styles/config/api-extractor.json b/webpack/loader-load-themed-styles/config/api-extractor.json index c1ce1e4d743..ca175c32c05 100644 --- a/webpack/loader-load-themed-styles/config/api-extractor.json +++ b/webpack/loader-load-themed-styles/config/api-extractor.json @@ -1,16 +1,6 @@ { "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", - - "mainEntryPointFilePath": "/lib-dts/index.d.ts", - - "apiReport": { - "enabled": true, - "reportFolder": "../../../common/reviews/api" - }, - - "docModel": { - "enabled": true - }, + "extends": "local-node-rig/profiles/default/config/api-extractor-base.json", "dtsRollup": { "enabled": false diff --git a/webpack/loader-load-themed-styles/package.json b/webpack/loader-load-themed-styles/package.json index 9bdb5562cb9..b9894c81c81 100644 --- a/webpack/loader-load-themed-styles/package.json +++ b/webpack/loader-load-themed-styles/package.json @@ -1,6 +1,6 @@ { "name": "@microsoft/loader-load-themed-styles", - "version": "2.2.2", + "version": "2.2.7", "description": "This simple loader wraps the loading of CSS in script equivalent to `require('load-themed-styles').loadStyles( /* css text */ )`. It is designed to be a replacement for style-loader.", "main": "./lib-commonjs/index.js", "module": "./lib-esm/index.js", @@ -45,7 +45,7 @@ }, "peerDependencies": { "@types/webpack": "^4", - "@microsoft/load-themed-styles": "^2.2.2" + "@microsoft/load-themed-styles": "^2.2.7" }, "dependencies": { "loader-utils": "1.4.2" diff --git a/webpack/loader-raw-script/.npmignore b/webpack/loader-raw-script/.npmignore index bc349f9a4be..f7a40e10213 100644 --- a/webpack/loader-raw-script/.npmignore +++ b/webpack/loader-raw-script/.npmignore @@ -8,6 +8,7 @@ !/lib/** !/lib-*/** !/dist/** +!/includes/** !CHANGELOG.md !CHANGELOG.json @@ -20,6 +21,9 @@ /lib/**/test/ /lib-*/**/test/ *.test.js +*.test.[cm]js +*.test.d.ts +*.test.d.[cm]ts # NOTE: These don't need to be specified, because NPM includes them automatically. # diff --git a/webpack/loader-raw-script/CHANGELOG.json b/webpack/loader-raw-script/CHANGELOG.json index da6fc6c15b6..bd16e3c5666 100644 --- a/webpack/loader-raw-script/CHANGELOG.json +++ b/webpack/loader-raw-script/CHANGELOG.json @@ -1,6 +1,66 @@ { "name": "@rushstack/loader-raw-script", "entries": [ + { + "version": "1.6.7", + "tag": "@rushstack/loader-raw-script_v1.6.7", + "date": "Mon, 09 Mar 2026 15:14:08 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.7`" + } + ] + } + }, + { + "version": "1.6.6", + "tag": "@rushstack/loader-raw-script_v1.6.6", + "date": "Wed, 25 Feb 2026 21:39:42 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.6`" + } + ] + } + }, + { + "version": "1.6.5", + "tag": "@rushstack/loader-raw-script_v1.6.5", + "date": "Wed, 25 Feb 2026 00:34:30 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.5`" + } + ] + } + }, + { + "version": "1.6.4", + "tag": "@rushstack/loader-raw-script_v1.6.4", + "date": "Tue, 24 Feb 2026 01:13:27 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.4`" + } + ] + } + }, + { + "version": "1.6.3", + "tag": "@rushstack/loader-raw-script_v1.6.3", + "date": "Mon, 23 Feb 2026 00:42:21 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.3`" + } + ] + } + }, { "version": "1.6.2", "tag": "@rushstack/loader-raw-script_v1.6.2", diff --git a/webpack/loader-raw-script/CHANGELOG.md b/webpack/loader-raw-script/CHANGELOG.md index 5bae21434a3..4e8a9c9b8e8 100644 --- a/webpack/loader-raw-script/CHANGELOG.md +++ b/webpack/loader-raw-script/CHANGELOG.md @@ -1,6 +1,31 @@ # Change Log - @rushstack/loader-raw-script -This log was last generated on Fri, 20 Feb 2026 16:14:49 GMT and should not be manually modified. +This log was last generated on Mon, 09 Mar 2026 15:14:08 GMT and should not be manually modified. + +## 1.6.7 +Mon, 09 Mar 2026 15:14:08 GMT + +_Version update only_ + +## 1.6.6 +Wed, 25 Feb 2026 21:39:42 GMT + +_Version update only_ + +## 1.6.5 +Wed, 25 Feb 2026 00:34:30 GMT + +_Version update only_ + +## 1.6.4 +Tue, 24 Feb 2026 01:13:27 GMT + +_Version update only_ + +## 1.6.3 +Mon, 23 Feb 2026 00:42:21 GMT + +_Version update only_ ## 1.6.2 Fri, 20 Feb 2026 16:14:49 GMT diff --git a/webpack/loader-raw-script/package.json b/webpack/loader-raw-script/package.json index f8beb3714ed..bbe5acf452c 100644 --- a/webpack/loader-raw-script/package.json +++ b/webpack/loader-raw-script/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/loader-raw-script", - "version": "1.6.2", + "version": "1.6.7", "description": "", "main": "./lib-commonjs/index.js", "module": "./lib-esm/index.js", diff --git a/webpack/preserve-dynamic-require-plugin/.npmignore b/webpack/preserve-dynamic-require-plugin/.npmignore index bc349f9a4be..f7a40e10213 100644 --- a/webpack/preserve-dynamic-require-plugin/.npmignore +++ b/webpack/preserve-dynamic-require-plugin/.npmignore @@ -8,6 +8,7 @@ !/lib/** !/lib-*/** !/dist/** +!/includes/** !CHANGELOG.md !CHANGELOG.json @@ -20,6 +21,9 @@ /lib/**/test/ /lib-*/**/test/ *.test.js +*.test.[cm]js +*.test.d.ts +*.test.d.[cm]ts # NOTE: These don't need to be specified, because NPM includes them automatically. # diff --git a/webpack/preserve-dynamic-require-plugin/CHANGELOG.json b/webpack/preserve-dynamic-require-plugin/CHANGELOG.json index 0f3c4679bba..1b40b6e040b 100644 --- a/webpack/preserve-dynamic-require-plugin/CHANGELOG.json +++ b/webpack/preserve-dynamic-require-plugin/CHANGELOG.json @@ -1,6 +1,66 @@ { "name": "@rushstack/webpack-preserve-dynamic-require-plugin", "entries": [ + { + "version": "0.12.8", + "tag": "@rushstack/webpack-preserve-dynamic-require-plugin_v0.12.8", + "date": "Mon, 09 Mar 2026 15:14:08 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.7`" + } + ] + } + }, + { + "version": "0.12.7", + "tag": "@rushstack/webpack-preserve-dynamic-require-plugin_v0.12.7", + "date": "Wed, 25 Feb 2026 21:39:42 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.6`" + } + ] + } + }, + { + "version": "0.12.6", + "tag": "@rushstack/webpack-preserve-dynamic-require-plugin_v0.12.6", + "date": "Wed, 25 Feb 2026 00:34:30 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.5`" + } + ] + } + }, + { + "version": "0.12.5", + "tag": "@rushstack/webpack-preserve-dynamic-require-plugin_v0.12.5", + "date": "Tue, 24 Feb 2026 01:13:27 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.4`" + } + ] + } + }, + { + "version": "0.12.4", + "tag": "@rushstack/webpack-preserve-dynamic-require-plugin_v0.12.4", + "date": "Mon, 23 Feb 2026 00:42:21 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.3`" + } + ] + } + }, { "version": "0.12.3", "tag": "@rushstack/webpack-preserve-dynamic-require-plugin_v0.12.3", diff --git a/webpack/preserve-dynamic-require-plugin/CHANGELOG.md b/webpack/preserve-dynamic-require-plugin/CHANGELOG.md index 40703585962..a2ae60e676a 100644 --- a/webpack/preserve-dynamic-require-plugin/CHANGELOG.md +++ b/webpack/preserve-dynamic-require-plugin/CHANGELOG.md @@ -1,6 +1,31 @@ # Change Log - @rushstack/webpack-preserve-dynamic-require-plugin -This log was last generated on Fri, 20 Feb 2026 16:14:49 GMT and should not be manually modified. +This log was last generated on Mon, 09 Mar 2026 15:14:08 GMT and should not be manually modified. + +## 0.12.8 +Mon, 09 Mar 2026 15:14:08 GMT + +_Version update only_ + +## 0.12.7 +Wed, 25 Feb 2026 21:39:42 GMT + +_Version update only_ + +## 0.12.6 +Wed, 25 Feb 2026 00:34:30 GMT + +_Version update only_ + +## 0.12.5 +Tue, 24 Feb 2026 01:13:27 GMT + +_Version update only_ + +## 0.12.4 +Mon, 23 Feb 2026 00:42:21 GMT + +_Version update only_ ## 0.12.3 Fri, 20 Feb 2026 16:14:49 GMT diff --git a/webpack/preserve-dynamic-require-plugin/config/api-extractor.json b/webpack/preserve-dynamic-require-plugin/config/api-extractor.json index 1d56fc29ae1..7fb68e06435 100644 --- a/webpack/preserve-dynamic-require-plugin/config/api-extractor.json +++ b/webpack/preserve-dynamic-require-plugin/config/api-extractor.json @@ -1,19 +1,8 @@ { "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", - - "mainEntryPointFilePath": "/lib-dts/index.d.ts", - - "apiReport": { - "enabled": true, - "reportFolder": "../../../common/reviews/api" - }, + "extends": "local-node-rig/profiles/default/config/api-extractor-base.json", "docModel": { - "enabled": false, - "apiJsonFilePath": "../../../common/temp/api/.api.json" - }, - - "dtsRollup": { - "enabled": true + "enabled": false } } diff --git a/webpack/preserve-dynamic-require-plugin/package.json b/webpack/preserve-dynamic-require-plugin/package.json index de7d3f7f90f..913c31a002c 100644 --- a/webpack/preserve-dynamic-require-plugin/package.json +++ b/webpack/preserve-dynamic-require-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/webpack-preserve-dynamic-require-plugin", - "version": "0.12.3", + "version": "0.12.8", "description": "This plugin tells webpack to leave dynamic calls to \"require\" as-is instead of trying to bundle them.", "main": "./lib-commonjs/index.js", "module": "./lib-esm/index.js", diff --git a/webpack/set-webpack-public-path-plugin/.npmignore b/webpack/set-webpack-public-path-plugin/.npmignore index bc349f9a4be..f7a40e10213 100644 --- a/webpack/set-webpack-public-path-plugin/.npmignore +++ b/webpack/set-webpack-public-path-plugin/.npmignore @@ -8,6 +8,7 @@ !/lib/** !/lib-*/** !/dist/** +!/includes/** !CHANGELOG.md !CHANGELOG.json @@ -20,6 +21,9 @@ /lib/**/test/ /lib-*/**/test/ *.test.js +*.test.[cm]js +*.test.d.ts +*.test.d.[cm]ts # NOTE: These don't need to be specified, because NPM includes them automatically. # diff --git a/webpack/set-webpack-public-path-plugin/CHANGELOG.json b/webpack/set-webpack-public-path-plugin/CHANGELOG.json index e6251448f25..7a3660c5587 100644 --- a/webpack/set-webpack-public-path-plugin/CHANGELOG.json +++ b/webpack/set-webpack-public-path-plugin/CHANGELOG.json @@ -1,6 +1,87 @@ { "name": "@rushstack/set-webpack-public-path-plugin", "entries": [ + { + "version": "5.3.8", + "tag": "@rushstack/set-webpack-public-path-plugin_v5.3.8", + "date": "Mon, 09 Mar 2026 15:14:08 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/webpack-plugin-utilities\" to `0.6.8`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.7`" + } + ] + } + }, + { + "version": "5.3.7", + "tag": "@rushstack/set-webpack-public-path-plugin_v5.3.7", + "date": "Wed, 25 Feb 2026 21:39:42 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/webpack-plugin-utilities\" to `0.6.7`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.6`" + } + ] + } + }, + { + "version": "5.3.6", + "tag": "@rushstack/set-webpack-public-path-plugin_v5.3.6", + "date": "Wed, 25 Feb 2026 00:34:30 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `5.20.3`" + }, + { + "comment": "Updating dependency \"@rushstack/webpack-plugin-utilities\" to `0.6.6`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.5`" + } + ] + } + }, + { + "version": "5.3.5", + "tag": "@rushstack/set-webpack-public-path-plugin_v5.3.5", + "date": "Tue, 24 Feb 2026 01:13:27 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `5.20.2`" + }, + { + "comment": "Updating dependency \"@rushstack/webpack-plugin-utilities\" to `0.6.5`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.4`" + } + ] + } + }, + { + "version": "5.3.4", + "tag": "@rushstack/set-webpack-public-path-plugin_v5.3.4", + "date": "Mon, 23 Feb 2026 00:42:21 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/webpack-plugin-utilities\" to `0.6.4`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.3`" + } + ] + } + }, { "version": "5.3.3", "tag": "@rushstack/set-webpack-public-path-plugin_v5.3.3", diff --git a/webpack/set-webpack-public-path-plugin/CHANGELOG.md b/webpack/set-webpack-public-path-plugin/CHANGELOG.md index e8143df76fb..92359c51c8b 100644 --- a/webpack/set-webpack-public-path-plugin/CHANGELOG.md +++ b/webpack/set-webpack-public-path-plugin/CHANGELOG.md @@ -1,6 +1,31 @@ # Change Log - @rushstack/set-webpack-public-path-plugin -This log was last generated on Fri, 20 Feb 2026 16:14:49 GMT and should not be manually modified. +This log was last generated on Mon, 09 Mar 2026 15:14:08 GMT and should not be manually modified. + +## 5.3.8 +Mon, 09 Mar 2026 15:14:08 GMT + +_Version update only_ + +## 5.3.7 +Wed, 25 Feb 2026 21:39:42 GMT + +_Version update only_ + +## 5.3.6 +Wed, 25 Feb 2026 00:34:30 GMT + +_Version update only_ + +## 5.3.5 +Tue, 24 Feb 2026 01:13:27 GMT + +_Version update only_ + +## 5.3.4 +Mon, 23 Feb 2026 00:42:21 GMT + +_Version update only_ ## 5.3.3 Fri, 20 Feb 2026 16:14:49 GMT diff --git a/webpack/set-webpack-public-path-plugin/config/api-extractor.json b/webpack/set-webpack-public-path-plugin/config/api-extractor.json index f18620460f8..9eee6fa64d3 100644 --- a/webpack/set-webpack-public-path-plugin/config/api-extractor.json +++ b/webpack/set-webpack-public-path-plugin/config/api-extractor.json @@ -1,16 +1,6 @@ { "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", - - "mainEntryPointFilePath": "/lib-dts/index.d.ts", - - "apiReport": { - "enabled": true, - "reportFolder": "../../../common/reviews/api" - }, - - "docModel": { - "enabled": true - }, + "extends": "local-node-rig/profiles/default/config/api-extractor-base.json", "dtsRollup": { "enabled": true, diff --git a/webpack/set-webpack-public-path-plugin/package.json b/webpack/set-webpack-public-path-plugin/package.json index 72e899e996f..6d5a37f0ddb 100644 --- a/webpack/set-webpack-public-path-plugin/package.json +++ b/webpack/set-webpack-public-path-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/set-webpack-public-path-plugin", - "version": "5.3.3", + "version": "5.3.8", "description": "This plugin sets the webpack public path at runtime.", "main": "./lib-commonjs/index.js", "module": "./lib-esm/index.js", diff --git a/webpack/webpack-deep-imports-plugin/.npmignore b/webpack/webpack-deep-imports-plugin/.npmignore index bc349f9a4be..f7a40e10213 100644 --- a/webpack/webpack-deep-imports-plugin/.npmignore +++ b/webpack/webpack-deep-imports-plugin/.npmignore @@ -8,6 +8,7 @@ !/lib/** !/lib-*/** !/dist/** +!/includes/** !CHANGELOG.md !CHANGELOG.json @@ -20,6 +21,9 @@ /lib/**/test/ /lib-*/**/test/ *.test.js +*.test.[cm]js +*.test.d.ts +*.test.d.[cm]ts # NOTE: These don't need to be specified, because NPM includes them automatically. # diff --git a/webpack/webpack-deep-imports-plugin/config/api-extractor.json b/webpack/webpack-deep-imports-plugin/config/api-extractor.json index 1d56fc29ae1..7fb68e06435 100644 --- a/webpack/webpack-deep-imports-plugin/config/api-extractor.json +++ b/webpack/webpack-deep-imports-plugin/config/api-extractor.json @@ -1,19 +1,8 @@ { "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", - - "mainEntryPointFilePath": "/lib-dts/index.d.ts", - - "apiReport": { - "enabled": true, - "reportFolder": "../../../common/reviews/api" - }, + "extends": "local-node-rig/profiles/default/config/api-extractor-base.json", "docModel": { - "enabled": false, - "apiJsonFilePath": "../../../common/temp/api/.api.json" - }, - - "dtsRollup": { - "enabled": true + "enabled": false } } diff --git a/webpack/webpack-embedded-dependencies-plugin/.npmignore b/webpack/webpack-embedded-dependencies-plugin/.npmignore index bc349f9a4be..f7a40e10213 100644 --- a/webpack/webpack-embedded-dependencies-plugin/.npmignore +++ b/webpack/webpack-embedded-dependencies-plugin/.npmignore @@ -8,6 +8,7 @@ !/lib/** !/lib-*/** !/dist/** +!/includes/** !CHANGELOG.md !CHANGELOG.json @@ -20,6 +21,9 @@ /lib/**/test/ /lib-*/**/test/ *.test.js +*.test.[cm]js +*.test.d.ts +*.test.d.[cm]ts # NOTE: These don't need to be specified, because NPM includes them automatically. # diff --git a/webpack/webpack-embedded-dependencies-plugin/CHANGELOG.json b/webpack/webpack-embedded-dependencies-plugin/CHANGELOG.json index 061d70f1b20..d909750b053 100644 --- a/webpack/webpack-embedded-dependencies-plugin/CHANGELOG.json +++ b/webpack/webpack-embedded-dependencies-plugin/CHANGELOG.json @@ -1,6 +1,87 @@ { "name": "@rushstack/webpack-embedded-dependencies-plugin", "entries": [ + { + "version": "0.4.8", + "tag": "@rushstack/webpack-embedded-dependencies-plugin_v0.4.8", + "date": "Mon, 09 Mar 2026 15:14:08 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/webpack-plugin-utilities\" to `0.6.8`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.7`" + } + ] + } + }, + { + "version": "0.4.7", + "tag": "@rushstack/webpack-embedded-dependencies-plugin_v0.4.7", + "date": "Wed, 25 Feb 2026 21:39:42 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/webpack-plugin-utilities\" to `0.6.7`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.6`" + } + ] + } + }, + { + "version": "0.4.6", + "tag": "@rushstack/webpack-embedded-dependencies-plugin_v0.4.6", + "date": "Wed, 25 Feb 2026 00:34:30 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `5.20.3`" + }, + { + "comment": "Updating dependency \"@rushstack/webpack-plugin-utilities\" to `0.6.6`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.5`" + } + ] + } + }, + { + "version": "0.4.5", + "tag": "@rushstack/webpack-embedded-dependencies-plugin_v0.4.5", + "date": "Tue, 24 Feb 2026 01:13:27 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `5.20.2`" + }, + { + "comment": "Updating dependency \"@rushstack/webpack-plugin-utilities\" to `0.6.5`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.4`" + } + ] + } + }, + { + "version": "0.4.4", + "tag": "@rushstack/webpack-embedded-dependencies-plugin_v0.4.4", + "date": "Mon, 23 Feb 2026 00:42:21 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/webpack-plugin-utilities\" to `0.6.4`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.3`" + } + ] + } + }, { "version": "0.4.3", "tag": "@rushstack/webpack-embedded-dependencies-plugin_v0.4.3", diff --git a/webpack/webpack-embedded-dependencies-plugin/CHANGELOG.md b/webpack/webpack-embedded-dependencies-plugin/CHANGELOG.md index 6cf89d88bad..d551a658668 100644 --- a/webpack/webpack-embedded-dependencies-plugin/CHANGELOG.md +++ b/webpack/webpack-embedded-dependencies-plugin/CHANGELOG.md @@ -1,6 +1,31 @@ # Change Log - @rushstack/webpack-embedded-dependencies-plugin -This log was last generated on Fri, 20 Feb 2026 16:14:49 GMT and should not be manually modified. +This log was last generated on Mon, 09 Mar 2026 15:14:08 GMT and should not be manually modified. + +## 0.4.8 +Mon, 09 Mar 2026 15:14:08 GMT + +_Version update only_ + +## 0.4.7 +Wed, 25 Feb 2026 21:39:42 GMT + +_Version update only_ + +## 0.4.6 +Wed, 25 Feb 2026 00:34:30 GMT + +_Version update only_ + +## 0.4.5 +Tue, 24 Feb 2026 01:13:27 GMT + +_Version update only_ + +## 0.4.4 +Mon, 23 Feb 2026 00:42:21 GMT + +_Version update only_ ## 0.4.3 Fri, 20 Feb 2026 16:14:49 GMT diff --git a/webpack/webpack-embedded-dependencies-plugin/config/api-extractor.json b/webpack/webpack-embedded-dependencies-plugin/config/api-extractor.json index f18620460f8..9eee6fa64d3 100644 --- a/webpack/webpack-embedded-dependencies-plugin/config/api-extractor.json +++ b/webpack/webpack-embedded-dependencies-plugin/config/api-extractor.json @@ -1,16 +1,6 @@ { "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", - - "mainEntryPointFilePath": "/lib-dts/index.d.ts", - - "apiReport": { - "enabled": true, - "reportFolder": "../../../common/reviews/api" - }, - - "docModel": { - "enabled": true - }, + "extends": "local-node-rig/profiles/default/config/api-extractor-base.json", "dtsRollup": { "enabled": true, diff --git a/webpack/webpack-embedded-dependencies-plugin/package.json b/webpack/webpack-embedded-dependencies-plugin/package.json index dc09ad00619..dbd08252a0a 100644 --- a/webpack/webpack-embedded-dependencies-plugin/package.json +++ b/webpack/webpack-embedded-dependencies-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/webpack-embedded-dependencies-plugin", - "version": "0.4.3", + "version": "0.4.8", "description": "This plugin analyzes bundled dependencies from Node Modules for use with Component Governance and License Scanning.", "main": "./lib-commonjs/index.js", "module": "./lib-esm/index.js", diff --git a/webpack/webpack-plugin-utilities/.npmignore b/webpack/webpack-plugin-utilities/.npmignore index bc349f9a4be..f7a40e10213 100644 --- a/webpack/webpack-plugin-utilities/.npmignore +++ b/webpack/webpack-plugin-utilities/.npmignore @@ -8,6 +8,7 @@ !/lib/** !/lib-*/** !/dist/** +!/includes/** !CHANGELOG.md !CHANGELOG.json @@ -20,6 +21,9 @@ /lib/**/test/ /lib-*/**/test/ *.test.js +*.test.[cm]js +*.test.d.ts +*.test.d.[cm]ts # NOTE: These don't need to be specified, because NPM includes them automatically. # diff --git a/webpack/webpack-plugin-utilities/CHANGELOG.json b/webpack/webpack-plugin-utilities/CHANGELOG.json index 27903e87247..eb8944ad5bb 100644 --- a/webpack/webpack-plugin-utilities/CHANGELOG.json +++ b/webpack/webpack-plugin-utilities/CHANGELOG.json @@ -1,6 +1,66 @@ { "name": "@rushstack/webpack-plugin-utilities", "entries": [ + { + "version": "0.6.8", + "tag": "@rushstack/webpack-plugin-utilities_v0.6.8", + "date": "Mon, 09 Mar 2026 15:14:08 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.7`" + } + ] + } + }, + { + "version": "0.6.7", + "tag": "@rushstack/webpack-plugin-utilities_v0.6.7", + "date": "Wed, 25 Feb 2026 21:39:42 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.6`" + } + ] + } + }, + { + "version": "0.6.6", + "tag": "@rushstack/webpack-plugin-utilities_v0.6.6", + "date": "Wed, 25 Feb 2026 00:34:30 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.5`" + } + ] + } + }, + { + "version": "0.6.5", + "tag": "@rushstack/webpack-plugin-utilities_v0.6.5", + "date": "Tue, 24 Feb 2026 01:13:27 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.4`" + } + ] + } + }, + { + "version": "0.6.4", + "tag": "@rushstack/webpack-plugin-utilities_v0.6.4", + "date": "Mon, 23 Feb 2026 00:42:21 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.3`" + } + ] + } + }, { "version": "0.6.3", "tag": "@rushstack/webpack-plugin-utilities_v0.6.3", diff --git a/webpack/webpack-plugin-utilities/CHANGELOG.md b/webpack/webpack-plugin-utilities/CHANGELOG.md index e8ae159b51c..727e6e712a8 100644 --- a/webpack/webpack-plugin-utilities/CHANGELOG.md +++ b/webpack/webpack-plugin-utilities/CHANGELOG.md @@ -1,6 +1,31 @@ # Change Log - @rushstack/webpack-plugin-utilities -This log was last generated on Fri, 20 Feb 2026 16:14:49 GMT and should not be manually modified. +This log was last generated on Mon, 09 Mar 2026 15:14:08 GMT and should not be manually modified. + +## 0.6.8 +Mon, 09 Mar 2026 15:14:08 GMT + +_Version update only_ + +## 0.6.7 +Wed, 25 Feb 2026 21:39:42 GMT + +_Version update only_ + +## 0.6.6 +Wed, 25 Feb 2026 00:34:30 GMT + +_Version update only_ + +## 0.6.5 +Tue, 24 Feb 2026 01:13:27 GMT + +_Version update only_ + +## 0.6.4 +Mon, 23 Feb 2026 00:42:21 GMT + +_Version update only_ ## 0.6.3 Fri, 20 Feb 2026 16:14:49 GMT diff --git a/webpack/webpack-plugin-utilities/config/api-extractor.json b/webpack/webpack-plugin-utilities/config/api-extractor.json index f18620460f8..9eee6fa64d3 100644 --- a/webpack/webpack-plugin-utilities/config/api-extractor.json +++ b/webpack/webpack-plugin-utilities/config/api-extractor.json @@ -1,16 +1,6 @@ { "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", - - "mainEntryPointFilePath": "/lib-dts/index.d.ts", - - "apiReport": { - "enabled": true, - "reportFolder": "../../../common/reviews/api" - }, - - "docModel": { - "enabled": true - }, + "extends": "local-node-rig/profiles/default/config/api-extractor-base.json", "dtsRollup": { "enabled": true, diff --git a/webpack/webpack-plugin-utilities/package.json b/webpack/webpack-plugin-utilities/package.json index 0991d00dc89..9c7013cda08 100644 --- a/webpack/webpack-plugin-utilities/package.json +++ b/webpack/webpack-plugin-utilities/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/webpack-plugin-utilities", - "version": "0.6.3", + "version": "0.6.8", "description": "This plugin sets the webpack public path at runtime.", "main": "./lib-commonjs/index.js", "module": "./lib-esm/index.js", diff --git a/webpack/webpack-workspace-resolve-plugin/.npmignore b/webpack/webpack-workspace-resolve-plugin/.npmignore index bc349f9a4be..f7a40e10213 100644 --- a/webpack/webpack-workspace-resolve-plugin/.npmignore +++ b/webpack/webpack-workspace-resolve-plugin/.npmignore @@ -8,6 +8,7 @@ !/lib/** !/lib-*/** !/dist/** +!/includes/** !CHANGELOG.md !CHANGELOG.json @@ -20,6 +21,9 @@ /lib/**/test/ /lib-*/**/test/ *.test.js +*.test.[cm]js +*.test.d.ts +*.test.d.[cm]ts # NOTE: These don't need to be specified, because NPM includes them automatically. # diff --git a/webpack/webpack-workspace-resolve-plugin/CHANGELOG.json b/webpack/webpack-workspace-resolve-plugin/CHANGELOG.json index 22f5280368d..0158a473fa4 100644 --- a/webpack/webpack-workspace-resolve-plugin/CHANGELOG.json +++ b/webpack/webpack-workspace-resolve-plugin/CHANGELOG.json @@ -1,6 +1,81 @@ { "name": "@rushstack/webpack-workspace-resolve-plugin", "entries": [ + { + "version": "0.6.7", + "tag": "@rushstack/webpack-workspace-resolve-plugin_v0.6.7", + "date": "Mon, 09 Mar 2026 15:14:08 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/lookup-by-path\" to `0.9.7`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.7`" + } + ] + } + }, + { + "version": "0.6.6", + "tag": "@rushstack/webpack-workspace-resolve-plugin_v0.6.6", + "date": "Wed, 25 Feb 2026 21:39:42 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/lookup-by-path\" to `0.9.6`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.6`" + } + ] + } + }, + { + "version": "0.6.5", + "tag": "@rushstack/webpack-workspace-resolve-plugin_v0.6.5", + "date": "Wed, 25 Feb 2026 00:34:30 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/lookup-by-path\" to `0.9.5`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.5`" + } + ] + } + }, + { + "version": "0.6.4", + "tag": "@rushstack/webpack-workspace-resolve-plugin_v0.6.4", + "date": "Tue, 24 Feb 2026 01:13:27 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/lookup-by-path\" to `0.9.4`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.4`" + } + ] + } + }, + { + "version": "0.6.3", + "tag": "@rushstack/webpack-workspace-resolve-plugin_v0.6.3", + "date": "Mon, 23 Feb 2026 00:42:21 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/lookup-by-path\" to `0.9.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.3`" + } + ] + } + }, { "version": "0.6.2", "tag": "@rushstack/webpack-workspace-resolve-plugin_v0.6.2", diff --git a/webpack/webpack-workspace-resolve-plugin/CHANGELOG.md b/webpack/webpack-workspace-resolve-plugin/CHANGELOG.md index 73fb66e76c2..88404ab3a9c 100644 --- a/webpack/webpack-workspace-resolve-plugin/CHANGELOG.md +++ b/webpack/webpack-workspace-resolve-plugin/CHANGELOG.md @@ -1,6 +1,31 @@ # Change Log - @rushstack/webpack-workspace-resolve-plugin -This log was last generated on Fri, 20 Feb 2026 16:14:49 GMT and should not be manually modified. +This log was last generated on Mon, 09 Mar 2026 15:14:08 GMT and should not be manually modified. + +## 0.6.7 +Mon, 09 Mar 2026 15:14:08 GMT + +_Version update only_ + +## 0.6.6 +Wed, 25 Feb 2026 21:39:42 GMT + +_Version update only_ + +## 0.6.5 +Wed, 25 Feb 2026 00:34:30 GMT + +_Version update only_ + +## 0.6.4 +Tue, 24 Feb 2026 01:13:27 GMT + +_Version update only_ + +## 0.6.3 +Mon, 23 Feb 2026 00:42:21 GMT + +_Version update only_ ## 0.6.2 Fri, 20 Feb 2026 16:14:49 GMT diff --git a/webpack/webpack-workspace-resolve-plugin/config/api-extractor.json b/webpack/webpack-workspace-resolve-plugin/config/api-extractor.json index 1d56fc29ae1..7fb68e06435 100644 --- a/webpack/webpack-workspace-resolve-plugin/config/api-extractor.json +++ b/webpack/webpack-workspace-resolve-plugin/config/api-extractor.json @@ -1,19 +1,8 @@ { "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", - - "mainEntryPointFilePath": "/lib-dts/index.d.ts", - - "apiReport": { - "enabled": true, - "reportFolder": "../../../common/reviews/api" - }, + "extends": "local-node-rig/profiles/default/config/api-extractor-base.json", "docModel": { - "enabled": false, - "apiJsonFilePath": "../../../common/temp/api/.api.json" - }, - - "dtsRollup": { - "enabled": true + "enabled": false } } diff --git a/webpack/webpack-workspace-resolve-plugin/package.json b/webpack/webpack-workspace-resolve-plugin/package.json index 2b7ba707030..85a71f2bef6 100644 --- a/webpack/webpack-workspace-resolve-plugin/package.json +++ b/webpack/webpack-workspace-resolve-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/webpack-workspace-resolve-plugin", - "version": "0.6.2", + "version": "0.6.7", "description": "This plugin leverages workspace-level metadata to greatly accelerate module resolution.", "main": "./lib-commonjs/index.js", "module": "./lib-esm/index.js", diff --git a/webpack/webpack4-localization-plugin/.npmignore b/webpack/webpack4-localization-plugin/.npmignore index bc349f9a4be..f7a40e10213 100644 --- a/webpack/webpack4-localization-plugin/.npmignore +++ b/webpack/webpack4-localization-plugin/.npmignore @@ -8,6 +8,7 @@ !/lib/** !/lib-*/** !/dist/** +!/includes/** !CHANGELOG.md !CHANGELOG.json @@ -20,6 +21,9 @@ /lib/**/test/ /lib-*/**/test/ *.test.js +*.test.[cm]js +*.test.d.ts +*.test.d.[cm]ts # NOTE: These don't need to be specified, because NPM includes them automatically. # diff --git a/webpack/webpack4-localization-plugin/CHANGELOG.json b/webpack/webpack4-localization-plugin/CHANGELOG.json index 8370947a0f2..9af1ad8a6a2 100644 --- a/webpack/webpack4-localization-plugin/CHANGELOG.json +++ b/webpack/webpack4-localization-plugin/CHANGELOG.json @@ -1,6 +1,98 @@ { "name": "@rushstack/webpack4-localization-plugin", "entries": [ + { + "version": "0.20.7", + "tag": "@rushstack/webpack4-localization-plugin_v0.20.7", + "date": "Mon, 09 Mar 2026 15:14:08 GMT", + "comments": { + "patch": [ + { + "comment": "Bump `minimatch` version from `10.2.1` to `10.2.3` to address CVE-2026-27903." + } + ], + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/localization-utilities\" to `0.15.7`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.7`" + } + ] + } + }, + { + "version": "0.20.6", + "tag": "@rushstack/webpack4-localization-plugin_v0.20.6", + "date": "Wed, 25 Feb 2026 21:39:42 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/localization-utilities\" to `0.15.6`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.6`" + } + ] + } + }, + { + "version": "0.20.5", + "tag": "@rushstack/webpack4-localization-plugin_v0.20.5", + "date": "Wed, 25 Feb 2026 00:34:30 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/localization-utilities\" to `0.15.5`" + }, + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `5.20.3`" + }, + { + "comment": "Updating dependency \"@rushstack/terminal\" to `0.22.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.5`" + } + ] + } + }, + { + "version": "0.20.4", + "tag": "@rushstack/webpack4-localization-plugin_v0.20.4", + "date": "Tue, 24 Feb 2026 01:13:27 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/localization-utilities\" to `0.15.4`" + }, + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `5.20.2`" + }, + { + "comment": "Updating dependency \"@rushstack/terminal\" to `0.22.2`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.4`" + } + ] + } + }, + { + "version": "0.20.3", + "tag": "@rushstack/webpack4-localization-plugin_v0.20.3", + "date": "Mon, 23 Feb 2026 00:42:21 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/localization-utilities\" to `0.15.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.3`" + } + ] + } + }, { "version": "0.20.2", "tag": "@rushstack/webpack4-localization-plugin_v0.20.2", diff --git a/webpack/webpack4-localization-plugin/CHANGELOG.md b/webpack/webpack4-localization-plugin/CHANGELOG.md index 229014605c7..4d4a72cf98c 100644 --- a/webpack/webpack4-localization-plugin/CHANGELOG.md +++ b/webpack/webpack4-localization-plugin/CHANGELOG.md @@ -1,6 +1,33 @@ # Change Log - @rushstack/webpack4-localization-plugin -This log was last generated on Fri, 20 Feb 2026 16:14:49 GMT and should not be manually modified. +This log was last generated on Mon, 09 Mar 2026 15:14:08 GMT and should not be manually modified. + +## 0.20.7 +Mon, 09 Mar 2026 15:14:08 GMT + +### Patches + +- Bump `minimatch` version from `10.2.1` to `10.2.3` to address CVE-2026-27903. + +## 0.20.6 +Wed, 25 Feb 2026 21:39:42 GMT + +_Version update only_ + +## 0.20.5 +Wed, 25 Feb 2026 00:34:30 GMT + +_Version update only_ + +## 0.20.4 +Tue, 24 Feb 2026 01:13:27 GMT + +_Version update only_ + +## 0.20.3 +Mon, 23 Feb 2026 00:42:21 GMT + +_Version update only_ ## 0.20.2 Fri, 20 Feb 2026 16:14:49 GMT diff --git a/webpack/webpack4-localization-plugin/config/api-extractor.json b/webpack/webpack4-localization-plugin/config/api-extractor.json index 1d56fc29ae1..7fb68e06435 100644 --- a/webpack/webpack4-localization-plugin/config/api-extractor.json +++ b/webpack/webpack4-localization-plugin/config/api-extractor.json @@ -1,19 +1,8 @@ { "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", - - "mainEntryPointFilePath": "/lib-dts/index.d.ts", - - "apiReport": { - "enabled": true, - "reportFolder": "../../../common/reviews/api" - }, + "extends": "local-node-rig/profiles/default/config/api-extractor-base.json", "docModel": { - "enabled": false, - "apiJsonFilePath": "../../../common/temp/api/.api.json" - }, - - "dtsRollup": { - "enabled": true + "enabled": false } } diff --git a/webpack/webpack4-localization-plugin/package.json b/webpack/webpack4-localization-plugin/package.json index 4ce3286105f..59482b7f34d 100644 --- a/webpack/webpack4-localization-plugin/package.json +++ b/webpack/webpack4-localization-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/webpack4-localization-plugin", - "version": "0.20.2", + "version": "0.20.7", "description": "This plugin facilitates localization with Webpack.", "main": "./lib-commonjs/index.js", "module": "./lib-esm/index.js", @@ -60,7 +60,7 @@ "@rushstack/terminal": "workspace:*", "@types/tapable": "1.0.6", "loader-utils": "1.4.2", - "minimatch": "10.2.1" + "minimatch": "10.2.3" }, "devDependencies": { "@rushstack/heft": "workspace:*", diff --git a/webpack/webpack4-module-minifier-plugin/.npmignore b/webpack/webpack4-module-minifier-plugin/.npmignore index bc349f9a4be..f7a40e10213 100644 --- a/webpack/webpack4-module-minifier-plugin/.npmignore +++ b/webpack/webpack4-module-minifier-plugin/.npmignore @@ -8,6 +8,7 @@ !/lib/** !/lib-*/** !/dist/** +!/includes/** !CHANGELOG.md !CHANGELOG.json @@ -20,6 +21,9 @@ /lib/**/test/ /lib-*/**/test/ *.test.js +*.test.[cm]js +*.test.d.ts +*.test.d.[cm]ts # NOTE: These don't need to be specified, because NPM includes them automatically. # diff --git a/webpack/webpack4-module-minifier-plugin/CHANGELOG.json b/webpack/webpack4-module-minifier-plugin/CHANGELOG.json index 0e82e35f361..2c85bcbcf7f 100644 --- a/webpack/webpack4-module-minifier-plugin/CHANGELOG.json +++ b/webpack/webpack4-module-minifier-plugin/CHANGELOG.json @@ -1,6 +1,108 @@ { "name": "@rushstack/webpack4-module-minifier-plugin", "entries": [ + { + "version": "0.15.8", + "tag": "@rushstack/webpack4-module-minifier-plugin_v0.15.8", + "date": "Tue, 10 Mar 2026 15:13:12 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/module-minifier\" to `0.9.8`" + } + ] + } + }, + { + "version": "0.15.7", + "tag": "@rushstack/webpack4-module-minifier-plugin_v0.15.7", + "date": "Mon, 09 Mar 2026 15:14:08 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/module-minifier\" to `0.9.7`" + }, + { + "comment": "Updating dependency \"@rushstack/worker-pool\" to `0.7.7`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.7`" + } + ] + } + }, + { + "version": "0.15.6", + "tag": "@rushstack/webpack4-module-minifier-plugin_v0.15.6", + "date": "Wed, 25 Feb 2026 21:39:42 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/module-minifier\" to `0.9.6`" + }, + { + "comment": "Updating dependency \"@rushstack/worker-pool\" to `0.7.6`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.6`" + } + ] + } + }, + { + "version": "0.15.5", + "tag": "@rushstack/webpack4-module-minifier-plugin_v0.15.5", + "date": "Wed, 25 Feb 2026 00:34:30 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/module-minifier\" to `0.9.5`" + }, + { + "comment": "Updating dependency \"@rushstack/worker-pool\" to `0.7.5`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.5`" + } + ] + } + }, + { + "version": "0.15.4", + "tag": "@rushstack/webpack4-module-minifier-plugin_v0.15.4", + "date": "Tue, 24 Feb 2026 01:13:27 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/module-minifier\" to `0.9.4`" + }, + { + "comment": "Updating dependency \"@rushstack/worker-pool\" to `0.7.4`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.4`" + } + ] + } + }, + { + "version": "0.15.3", + "tag": "@rushstack/webpack4-module-minifier-plugin_v0.15.3", + "date": "Mon, 23 Feb 2026 00:42:21 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/module-minifier\" to `0.9.3`" + }, + { + "comment": "Updating dependency \"@rushstack/worker-pool\" to `0.7.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.3`" + } + ] + } + }, { "version": "0.15.2", "tag": "@rushstack/webpack4-module-minifier-plugin_v0.15.2", diff --git a/webpack/webpack4-module-minifier-plugin/CHANGELOG.md b/webpack/webpack4-module-minifier-plugin/CHANGELOG.md index 904d0d38fd3..2839174fb5d 100644 --- a/webpack/webpack4-module-minifier-plugin/CHANGELOG.md +++ b/webpack/webpack4-module-minifier-plugin/CHANGELOG.md @@ -1,6 +1,36 @@ # Change Log - @rushstack/webpack4-module-minifier-plugin -This log was last generated on Fri, 20 Feb 2026 16:14:49 GMT and should not be manually modified. +This log was last generated on Tue, 10 Mar 2026 15:13:12 GMT and should not be manually modified. + +## 0.15.8 +Tue, 10 Mar 2026 15:13:12 GMT + +_Version update only_ + +## 0.15.7 +Mon, 09 Mar 2026 15:14:08 GMT + +_Version update only_ + +## 0.15.6 +Wed, 25 Feb 2026 21:39:42 GMT + +_Version update only_ + +## 0.15.5 +Wed, 25 Feb 2026 00:34:30 GMT + +_Version update only_ + +## 0.15.4 +Tue, 24 Feb 2026 01:13:27 GMT + +_Version update only_ + +## 0.15.3 +Mon, 23 Feb 2026 00:42:21 GMT + +_Version update only_ ## 0.15.2 Fri, 20 Feb 2026 16:14:49 GMT diff --git a/webpack/webpack4-module-minifier-plugin/config/api-extractor.json b/webpack/webpack4-module-minifier-plugin/config/api-extractor.json index 1d56fc29ae1..7fb68e06435 100644 --- a/webpack/webpack4-module-minifier-plugin/config/api-extractor.json +++ b/webpack/webpack4-module-minifier-plugin/config/api-extractor.json @@ -1,19 +1,8 @@ { "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", - - "mainEntryPointFilePath": "/lib-dts/index.d.ts", - - "apiReport": { - "enabled": true, - "reportFolder": "../../../common/reviews/api" - }, + "extends": "local-node-rig/profiles/default/config/api-extractor-base.json", "docModel": { - "enabled": false, - "apiJsonFilePath": "../../../common/temp/api/.api.json" - }, - - "dtsRollup": { - "enabled": true + "enabled": false } } diff --git a/webpack/webpack4-module-minifier-plugin/package.json b/webpack/webpack4-module-minifier-plugin/package.json index cbfa6f6d5b9..2212416f393 100644 --- a/webpack/webpack4-module-minifier-plugin/package.json +++ b/webpack/webpack4-module-minifier-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/webpack4-module-minifier-plugin", - "version": "0.15.2", + "version": "0.15.8", "description": "This plugin splits minification of webpack compilations into smaller units.", "main": "./lib-commonjs/index.js", "module": "./lib-esm/index.js", diff --git a/webpack/webpack5-load-themed-styles-loader/.npmignore b/webpack/webpack5-load-themed-styles-loader/.npmignore index bc349f9a4be..f7a40e10213 100644 --- a/webpack/webpack5-load-themed-styles-loader/.npmignore +++ b/webpack/webpack5-load-themed-styles-loader/.npmignore @@ -8,6 +8,7 @@ !/lib/** !/lib-*/** !/dist/** +!/includes/** !CHANGELOG.md !CHANGELOG.json @@ -20,6 +21,9 @@ /lib/**/test/ /lib-*/**/test/ *.test.js +*.test.[cm]js +*.test.d.ts +*.test.d.[cm]ts # NOTE: These don't need to be specified, because NPM includes them automatically. # diff --git a/webpack/webpack5-load-themed-styles-loader/CHANGELOG.json b/webpack/webpack5-load-themed-styles-loader/CHANGELOG.json index fb0b24d5032..6dd73abe388 100644 --- a/webpack/webpack5-load-themed-styles-loader/CHANGELOG.json +++ b/webpack/webpack5-load-themed-styles-loader/CHANGELOG.json @@ -1,6 +1,102 @@ { "name": "@microsoft/webpack5-load-themed-styles-loader", "entries": [ + { + "version": "0.4.7", + "tag": "@microsoft/webpack5-load-themed-styles-loader_v0.4.7", + "date": "Mon, 09 Mar 2026 15:14:08 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@microsoft/load-themed-styles\" to `2.2.7`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.7`" + }, + { + "comment": "Updating dependency \"@microsoft/load-themed-styles\" from `^2.2.6` to `2.2.7`" + } + ] + } + }, + { + "version": "0.4.6", + "tag": "@microsoft/webpack5-load-themed-styles-loader_v0.4.6", + "date": "Wed, 25 Feb 2026 21:39:42 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@microsoft/load-themed-styles\" to `2.2.6`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.6`" + }, + { + "comment": "Updating dependency \"@microsoft/load-themed-styles\" from `^2.2.5` to `2.2.6`" + } + ] + } + }, + { + "version": "0.4.5", + "tag": "@microsoft/webpack5-load-themed-styles-loader_v0.4.5", + "date": "Wed, 25 Feb 2026 00:34:29 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@microsoft/load-themed-styles\" to `2.2.5`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.5`" + }, + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `5.20.3`" + }, + { + "comment": "Updating dependency \"@microsoft/load-themed-styles\" from `^2.2.4` to `2.2.5`" + } + ] + } + }, + { + "version": "0.4.4", + "tag": "@microsoft/webpack5-load-themed-styles-loader_v0.4.4", + "date": "Tue, 24 Feb 2026 01:13:27 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@microsoft/load-themed-styles\" to `2.2.4`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.4`" + }, + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `5.20.2`" + }, + { + "comment": "Updating dependency \"@microsoft/load-themed-styles\" from `^2.2.3` to `2.2.4`" + } + ] + } + }, + { + "version": "0.4.3", + "tag": "@microsoft/webpack5-load-themed-styles-loader_v0.4.3", + "date": "Mon, 23 Feb 2026 00:42:21 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@microsoft/load-themed-styles\" to `2.2.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.3`" + }, + { + "comment": "Updating dependency \"@microsoft/load-themed-styles\" from `^2.2.2` to `2.2.3`" + } + ] + } + }, { "version": "0.4.2", "tag": "@microsoft/webpack5-load-themed-styles-loader_v0.4.2", diff --git a/webpack/webpack5-load-themed-styles-loader/CHANGELOG.md b/webpack/webpack5-load-themed-styles-loader/CHANGELOG.md index 41c6a9ca578..22788045f12 100644 --- a/webpack/webpack5-load-themed-styles-loader/CHANGELOG.md +++ b/webpack/webpack5-load-themed-styles-loader/CHANGELOG.md @@ -1,6 +1,31 @@ # Change Log - @microsoft/webpack5-load-themed-styles-loader -This log was last generated on Fri, 20 Feb 2026 16:14:49 GMT and should not be manually modified. +This log was last generated on Mon, 09 Mar 2026 15:14:08 GMT and should not be manually modified. + +## 0.4.7 +Mon, 09 Mar 2026 15:14:08 GMT + +_Version update only_ + +## 0.4.6 +Wed, 25 Feb 2026 21:39:42 GMT + +_Version update only_ + +## 0.4.5 +Wed, 25 Feb 2026 00:34:29 GMT + +_Version update only_ + +## 0.4.4 +Tue, 24 Feb 2026 01:13:27 GMT + +_Version update only_ + +## 0.4.3 +Mon, 23 Feb 2026 00:42:21 GMT + +_Version update only_ ## 0.4.2 Fri, 20 Feb 2026 16:14:49 GMT diff --git a/webpack/webpack5-load-themed-styles-loader/config/api-extractor.json b/webpack/webpack5-load-themed-styles-loader/config/api-extractor.json index c1ce1e4d743..ca175c32c05 100644 --- a/webpack/webpack5-load-themed-styles-loader/config/api-extractor.json +++ b/webpack/webpack5-load-themed-styles-loader/config/api-extractor.json @@ -1,16 +1,6 @@ { "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", - - "mainEntryPointFilePath": "/lib-dts/index.d.ts", - - "apiReport": { - "enabled": true, - "reportFolder": "../../../common/reviews/api" - }, - - "docModel": { - "enabled": true - }, + "extends": "local-node-rig/profiles/default/config/api-extractor-base.json", "dtsRollup": { "enabled": false diff --git a/webpack/webpack5-load-themed-styles-loader/package.json b/webpack/webpack5-load-themed-styles-loader/package.json index 1e16b486cbd..92b0cbeb221 100644 --- a/webpack/webpack5-load-themed-styles-loader/package.json +++ b/webpack/webpack5-load-themed-styles-loader/package.json @@ -1,6 +1,6 @@ { "name": "@microsoft/webpack5-load-themed-styles-loader", - "version": "0.4.2", + "version": "0.4.7", "description": "This simple loader wraps the loading of CSS in script equivalent to `require('load-themed-styles').loadStyles( /* css text */ )`. It is designed to be a replacement for style-loader.", "main": "./lib-commonjs/index.js", "module": "./lib-esm/index.js", @@ -39,7 +39,7 @@ "_phase:test": "heft run --only test -- --clean" }, "peerDependencies": { - "@microsoft/load-themed-styles": "^2.2.2", + "@microsoft/load-themed-styles": "^2.2.7", "webpack": "^5" }, "peerDependenciesMeta": { diff --git a/webpack/webpack5-localization-plugin/.npmignore b/webpack/webpack5-localization-plugin/.npmignore index bc349f9a4be..f7a40e10213 100644 --- a/webpack/webpack5-localization-plugin/.npmignore +++ b/webpack/webpack5-localization-plugin/.npmignore @@ -8,6 +8,7 @@ !/lib/** !/lib-*/** !/dist/** +!/includes/** !CHANGELOG.md !CHANGELOG.json @@ -20,6 +21,9 @@ /lib/**/test/ /lib-*/**/test/ *.test.js +*.test.[cm]js +*.test.d.ts +*.test.d.[cm]ts # NOTE: These don't need to be specified, because NPM includes them automatically. # diff --git a/webpack/webpack5-localization-plugin/CHANGELOG.json b/webpack/webpack5-localization-plugin/CHANGELOG.json index eb668f29693..eb78110f929 100644 --- a/webpack/webpack5-localization-plugin/CHANGELOG.json +++ b/webpack/webpack5-localization-plugin/CHANGELOG.json @@ -1,6 +1,93 @@ { "name": "@rushstack/webpack5-localization-plugin", "entries": [ + { + "version": "0.16.7", + "tag": "@rushstack/webpack5-localization-plugin_v0.16.7", + "date": "Mon, 09 Mar 2026 15:14:08 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/localization-utilities\" to `0.15.7`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.7`" + } + ] + } + }, + { + "version": "0.16.6", + "tag": "@rushstack/webpack5-localization-plugin_v0.16.6", + "date": "Wed, 25 Feb 2026 21:39:42 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/localization-utilities\" to `0.15.6`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.6`" + } + ] + } + }, + { + "version": "0.16.5", + "tag": "@rushstack/webpack5-localization-plugin_v0.16.5", + "date": "Wed, 25 Feb 2026 00:34:30 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/localization-utilities\" to `0.15.5`" + }, + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `5.20.3`" + }, + { + "comment": "Updating dependency \"@rushstack/terminal\" to `0.22.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.5`" + } + ] + } + }, + { + "version": "0.16.4", + "tag": "@rushstack/webpack5-localization-plugin_v0.16.4", + "date": "Tue, 24 Feb 2026 01:13:27 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/localization-utilities\" to `0.15.4`" + }, + { + "comment": "Updating dependency \"@rushstack/node-core-library\" to `5.20.2`" + }, + { + "comment": "Updating dependency \"@rushstack/terminal\" to `0.22.2`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.4`" + } + ] + } + }, + { + "version": "0.16.3", + "tag": "@rushstack/webpack5-localization-plugin_v0.16.3", + "date": "Mon, 23 Feb 2026 00:42:21 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/localization-utilities\" to `0.15.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.3`" + } + ] + } + }, { "version": "0.16.2", "tag": "@rushstack/webpack5-localization-plugin_v0.16.2", diff --git a/webpack/webpack5-localization-plugin/CHANGELOG.md b/webpack/webpack5-localization-plugin/CHANGELOG.md index eefb179656c..c108066070f 100644 --- a/webpack/webpack5-localization-plugin/CHANGELOG.md +++ b/webpack/webpack5-localization-plugin/CHANGELOG.md @@ -1,6 +1,31 @@ # Change Log - @rushstack/webpack5-localization-plugin -This log was last generated on Fri, 20 Feb 2026 16:14:49 GMT and should not be manually modified. +This log was last generated on Mon, 09 Mar 2026 15:14:08 GMT and should not be manually modified. + +## 0.16.7 +Mon, 09 Mar 2026 15:14:08 GMT + +_Version update only_ + +## 0.16.6 +Wed, 25 Feb 2026 21:39:42 GMT + +_Version update only_ + +## 0.16.5 +Wed, 25 Feb 2026 00:34:30 GMT + +_Version update only_ + +## 0.16.4 +Tue, 24 Feb 2026 01:13:27 GMT + +_Version update only_ + +## 0.16.3 +Mon, 23 Feb 2026 00:42:21 GMT + +_Version update only_ ## 0.16.2 Fri, 20 Feb 2026 16:14:49 GMT diff --git a/webpack/webpack5-localization-plugin/config/api-extractor.json b/webpack/webpack5-localization-plugin/config/api-extractor.json index 1d56fc29ae1..7fb68e06435 100644 --- a/webpack/webpack5-localization-plugin/config/api-extractor.json +++ b/webpack/webpack5-localization-plugin/config/api-extractor.json @@ -1,19 +1,8 @@ { "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", - - "mainEntryPointFilePath": "/lib-dts/index.d.ts", - - "apiReport": { - "enabled": true, - "reportFolder": "../../../common/reviews/api" - }, + "extends": "local-node-rig/profiles/default/config/api-extractor-base.json", "docModel": { - "enabled": false, - "apiJsonFilePath": "../../../common/temp/api/.api.json" - }, - - "dtsRollup": { - "enabled": true + "enabled": false } } diff --git a/webpack/webpack5-localization-plugin/package.json b/webpack/webpack5-localization-plugin/package.json index 72d24d55401..0ab2611a3ea 100644 --- a/webpack/webpack5-localization-plugin/package.json +++ b/webpack/webpack5-localization-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/webpack5-localization-plugin", - "version": "0.16.2", + "version": "0.16.7", "description": "This plugin facilitates localization with Webpack.", "main": "./lib-commonjs/index.js", "module": "./lib-esm/index.js", diff --git a/webpack/webpack5-module-minifier-plugin/.npmignore b/webpack/webpack5-module-minifier-plugin/.npmignore index bc349f9a4be..f7a40e10213 100644 --- a/webpack/webpack5-module-minifier-plugin/.npmignore +++ b/webpack/webpack5-module-minifier-plugin/.npmignore @@ -8,6 +8,7 @@ !/lib/** !/lib-*/** !/dist/** +!/includes/** !CHANGELOG.md !CHANGELOG.json @@ -20,6 +21,9 @@ /lib/**/test/ /lib-*/**/test/ *.test.js +*.test.[cm]js +*.test.d.ts +*.test.d.[cm]ts # NOTE: These don't need to be specified, because NPM includes them automatically. # diff --git a/webpack/webpack5-module-minifier-plugin/CHANGELOG.json b/webpack/webpack5-module-minifier-plugin/CHANGELOG.json index b8e766ad6d4..236e80c4f06 100644 --- a/webpack/webpack5-module-minifier-plugin/CHANGELOG.json +++ b/webpack/webpack5-module-minifier-plugin/CHANGELOG.json @@ -1,6 +1,126 @@ { "name": "@rushstack/webpack5-module-minifier-plugin", "entries": [ + { + "version": "5.8.8", + "tag": "@rushstack/webpack5-module-minifier-plugin_v5.8.8", + "date": "Tue, 10 Mar 2026 15:13:12 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/module-minifier\" to `0.9.8`" + }, + { + "comment": "Updating dependency \"@rushstack/module-minifier\" from `*` to `0.9.8`" + } + ] + } + }, + { + "version": "5.8.7", + "tag": "@rushstack/webpack5-module-minifier-plugin_v5.8.7", + "date": "Mon, 09 Mar 2026 15:14:08 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/worker-pool\" to `0.7.7`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.7`" + }, + { + "comment": "Updating dependency \"@rushstack/module-minifier\" to `0.9.7`" + }, + { + "comment": "Updating dependency \"@rushstack/module-minifier\" from `*` to `0.9.7`" + } + ] + } + }, + { + "version": "5.8.6", + "tag": "@rushstack/webpack5-module-minifier-plugin_v5.8.6", + "date": "Wed, 25 Feb 2026 21:39:42 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/worker-pool\" to `0.7.6`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.6`" + }, + { + "comment": "Updating dependency \"@rushstack/module-minifier\" to `0.9.6`" + }, + { + "comment": "Updating dependency \"@rushstack/module-minifier\" from `*` to `0.9.6`" + } + ] + } + }, + { + "version": "5.8.5", + "tag": "@rushstack/webpack5-module-minifier-plugin_v5.8.5", + "date": "Wed, 25 Feb 2026 00:34:30 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/worker-pool\" to `0.7.5`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.5`" + }, + { + "comment": "Updating dependency \"@rushstack/module-minifier\" to `0.9.5`" + }, + { + "comment": "Updating dependency \"@rushstack/module-minifier\" from `*` to `0.9.5`" + } + ] + } + }, + { + "version": "5.8.4", + "tag": "@rushstack/webpack5-module-minifier-plugin_v5.8.4", + "date": "Tue, 24 Feb 2026 01:13:27 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/worker-pool\" to `0.7.4`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.4`" + }, + { + "comment": "Updating dependency \"@rushstack/module-minifier\" to `0.9.4`" + }, + { + "comment": "Updating dependency \"@rushstack/module-minifier\" from `*` to `0.9.4`" + } + ] + } + }, + { + "version": "5.8.3", + "tag": "@rushstack/webpack5-module-minifier-plugin_v5.8.3", + "date": "Mon, 23 Feb 2026 00:42:21 GMT", + "comments": { + "dependency": [ + { + "comment": "Updating dependency \"@rushstack/worker-pool\" to `0.7.3`" + }, + { + "comment": "Updating dependency \"@rushstack/heft\" to `1.2.3`" + }, + { + "comment": "Updating dependency \"@rushstack/module-minifier\" to `0.9.3`" + }, + { + "comment": "Updating dependency \"@rushstack/module-minifier\" from `*` to `0.9.3`" + } + ] + } + }, { "version": "5.8.2", "tag": "@rushstack/webpack5-module-minifier-plugin_v5.8.2", diff --git a/webpack/webpack5-module-minifier-plugin/CHANGELOG.md b/webpack/webpack5-module-minifier-plugin/CHANGELOG.md index 627fb70e88a..df58e8de057 100644 --- a/webpack/webpack5-module-minifier-plugin/CHANGELOG.md +++ b/webpack/webpack5-module-minifier-plugin/CHANGELOG.md @@ -1,6 +1,36 @@ # Change Log - @rushstack/webpack5-module-minifier-plugin -This log was last generated on Fri, 20 Feb 2026 16:14:49 GMT and should not be manually modified. +This log was last generated on Tue, 10 Mar 2026 15:13:12 GMT and should not be manually modified. + +## 5.8.8 +Tue, 10 Mar 2026 15:13:12 GMT + +_Version update only_ + +## 5.8.7 +Mon, 09 Mar 2026 15:14:08 GMT + +_Version update only_ + +## 5.8.6 +Wed, 25 Feb 2026 21:39:42 GMT + +_Version update only_ + +## 5.8.5 +Wed, 25 Feb 2026 00:34:30 GMT + +_Version update only_ + +## 5.8.4 +Tue, 24 Feb 2026 01:13:27 GMT + +_Version update only_ + +## 5.8.3 +Mon, 23 Feb 2026 00:42:21 GMT + +_Version update only_ ## 5.8.2 Fri, 20 Feb 2026 16:14:49 GMT diff --git a/webpack/webpack5-module-minifier-plugin/config/api-extractor.json b/webpack/webpack5-module-minifier-plugin/config/api-extractor.json index 1d56fc29ae1..7fb68e06435 100644 --- a/webpack/webpack5-module-minifier-plugin/config/api-extractor.json +++ b/webpack/webpack5-module-minifier-plugin/config/api-extractor.json @@ -1,19 +1,8 @@ { "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", - - "mainEntryPointFilePath": "/lib-dts/index.d.ts", - - "apiReport": { - "enabled": true, - "reportFolder": "../../../common/reviews/api" - }, + "extends": "local-node-rig/profiles/default/config/api-extractor-base.json", "docModel": { - "enabled": false, - "apiJsonFilePath": "../../../common/temp/api/.api.json" - }, - - "dtsRollup": { - "enabled": true + "enabled": false } } diff --git a/webpack/webpack5-module-minifier-plugin/package.json b/webpack/webpack5-module-minifier-plugin/package.json index a262dd87d56..f893759e151 100644 --- a/webpack/webpack5-module-minifier-plugin/package.json +++ b/webpack/webpack5-module-minifier-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@rushstack/webpack5-module-minifier-plugin", - "version": "5.8.2", + "version": "5.8.8", "description": "This plugin splits minification of webpack compilations into smaller units.", "main": "./lib-commonjs/index.js", "module": "./lib-esm/index.js",