diff --git a/README.md b/README.md index 676bc4bdc14..5c4fc870f95 100644 --- a/README.md +++ b/README.md @@ -96,6 +96,9 @@ These GitHub repositories provide supplementary resources for Rush Stack: | [/libraries/problem-matcher](./libraries/problem-matcher/) | [![npm version](https://badge.fury.io/js/%40rushstack%2Fproblem-matcher.svg)](https://badge.fury.io/js/%40rushstack%2Fproblem-matcher) | [changelog](./libraries/problem-matcher/CHANGELOG.md) | [@rushstack/problem-matcher](https://www.npmjs.com/package/@rushstack/problem-matcher) | | [/libraries/rig-package](./libraries/rig-package/) | [![npm version](https://badge.fury.io/js/%40rushstack%2Frig-package.svg)](https://badge.fury.io/js/%40rushstack%2Frig-package) | [changelog](./libraries/rig-package/CHANGELOG.md) | [@rushstack/rig-package](https://www.npmjs.com/package/@rushstack/rig-package) | | [/libraries/rush-lib](./libraries/rush-lib/) | [![npm version](https://badge.fury.io/js/%40microsoft%2Frush-lib.svg)](https://badge.fury.io/js/%40microsoft%2Frush-lib) | | [@microsoft/rush-lib](https://www.npmjs.com/package/@microsoft/rush-lib) | +| [/libraries/rush-pnpm-kit-v10](./libraries/rush-pnpm-kit-v10/) | [![npm version](https://badge.fury.io/js/%40rushstack%2Frush-pnpm-kit-v10.svg)](https://badge.fury.io/js/%40rushstack%2Frush-pnpm-kit-v10) | [changelog](./libraries/rush-pnpm-kit-v10/CHANGELOG.md) | [@rushstack/rush-pnpm-kit-v10](https://www.npmjs.com/package/@rushstack/rush-pnpm-kit-v10) | +| [/libraries/rush-pnpm-kit-v8](./libraries/rush-pnpm-kit-v8/) | [![npm version](https://badge.fury.io/js/%40rushstack%2Frush-pnpm-kit-v8.svg)](https://badge.fury.io/js/%40rushstack%2Frush-pnpm-kit-v8) | [changelog](./libraries/rush-pnpm-kit-v8/CHANGELOG.md) | [@rushstack/rush-pnpm-kit-v8](https://www.npmjs.com/package/@rushstack/rush-pnpm-kit-v8) | +| [/libraries/rush-pnpm-kit-v9](./libraries/rush-pnpm-kit-v9/) | [![npm version](https://badge.fury.io/js/%40rushstack%2Frush-pnpm-kit-v9.svg)](https://badge.fury.io/js/%40rushstack%2Frush-pnpm-kit-v9) | [changelog](./libraries/rush-pnpm-kit-v9/CHANGELOG.md) | [@rushstack/rush-pnpm-kit-v9](https://www.npmjs.com/package/@rushstack/rush-pnpm-kit-v9) | | [/libraries/rush-sdk](./libraries/rush-sdk/) | [![npm version](https://badge.fury.io/js/%40rushstack%2Frush-sdk.svg)](https://badge.fury.io/js/%40rushstack%2Frush-sdk) | | [@rushstack/rush-sdk](https://www.npmjs.com/package/@rushstack/rush-sdk) | | [/libraries/stream-collator](./libraries/stream-collator/) | [![npm version](https://badge.fury.io/js/%40rushstack%2Fstream-collator.svg)](https://badge.fury.io/js/%40rushstack%2Fstream-collator) | [changelog](./libraries/stream-collator/CHANGELOG.md) | [@rushstack/stream-collator](https://www.npmjs.com/package/@rushstack/stream-collator) | | [/libraries/terminal](./libraries/terminal/) | [![npm version](https://badge.fury.io/js/%40rushstack%2Fterminal.svg)](https://badge.fury.io/js/%40rushstack%2Fterminal) | [changelog](./libraries/terminal/CHANGELOG.md) | [@rushstack/terminal](https://www.npmjs.com/package/@rushstack/terminal) | diff --git a/common/changes/@microsoft/rush/guxiang-upgrade-pnpm-sync-lib-to-3.0.1_2025-06-09-07-23.json b/common/changes/@microsoft/rush/guxiang-upgrade-pnpm-sync-lib-to-3.0.1_2025-06-09-07-23.json new file mode 100644 index 00000000000..0439bd586bb --- /dev/null +++ b/common/changes/@microsoft/rush/guxiang-upgrade-pnpm-sync-lib-to-3.0.1_2025-06-09-07-23.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@microsoft/rush", + "comment": "Upgrade `pnpm-sync-lib` to v0.3.3 for pnpm v10 compatibility", + "type": "none" + } + ], + "packageName": "@microsoft/rush" +} \ No newline at end of file diff --git a/common/changes/@rushstack/lockfile-explorer/guxiang-upgrade-pnpm-sync-lib-to-0.3.3_2025-06-20-00-29.json b/common/changes/@rushstack/lockfile-explorer/guxiang-upgrade-pnpm-sync-lib-to-0.3.3_2025-06-20-00-29.json new file mode 100644 index 00000000000..c3df88d2254 --- /dev/null +++ b/common/changes/@rushstack/lockfile-explorer/guxiang-upgrade-pnpm-sync-lib-to-0.3.3_2025-06-20-00-29.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@rushstack/lockfile-explorer", + "comment": "Use pnpm dependency path implementation from `@rushstack/rush-pnpm-kit-v8`", + "type": "patch" + } + ], + "packageName": "@rushstack/lockfile-explorer" +} \ No newline at end of file diff --git a/common/changes/@rushstack/rush-pnpm-kit-v10/guxiang-upgrade-pnpm-sync-lib-to-0.3.3_2025-06-20-00-29.json b/common/changes/@rushstack/rush-pnpm-kit-v10/guxiang-upgrade-pnpm-sync-lib-to-0.3.3_2025-06-20-00-29.json new file mode 100644 index 00000000000..5d08711254e --- /dev/null +++ b/common/changes/@rushstack/rush-pnpm-kit-v10/guxiang-upgrade-pnpm-sync-lib-to-0.3.3_2025-06-20-00-29.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@rushstack/rush-pnpm-kit-v10", + "comment": "Set up the `@rushstack/rush-pnpm-kit-v10` package to bundle all pnpm v10 related packages together.", + "type": "minor" + } + ], + "packageName": "@rushstack/rush-pnpm-kit-v10" +} \ No newline at end of file diff --git a/common/changes/@rushstack/rush-pnpm-kit-v8/guxiang-upgrade-pnpm-sync-lib-to-0.3.3_2025-06-20-00-29.json b/common/changes/@rushstack/rush-pnpm-kit-v8/guxiang-upgrade-pnpm-sync-lib-to-0.3.3_2025-06-20-00-29.json new file mode 100644 index 00000000000..c27c574a6d7 --- /dev/null +++ b/common/changes/@rushstack/rush-pnpm-kit-v8/guxiang-upgrade-pnpm-sync-lib-to-0.3.3_2025-06-20-00-29.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@rushstack/rush-pnpm-kit-v8", + "comment": "Set up the `@rushstack/rush-pnpm-kit-v8` package to bundle all pnpm v8 related packages together.", + "type": "minor" + } + ], + "packageName": "@rushstack/rush-pnpm-kit-v8" +} \ No newline at end of file diff --git a/common/changes/@rushstack/rush-pnpm-kit-v9/guxiang-upgrade-pnpm-sync-lib-to-0.3.3_2025-06-20-00-29.json b/common/changes/@rushstack/rush-pnpm-kit-v9/guxiang-upgrade-pnpm-sync-lib-to-0.3.3_2025-06-20-00-29.json new file mode 100644 index 00000000000..88334ba2a40 --- /dev/null +++ b/common/changes/@rushstack/rush-pnpm-kit-v9/guxiang-upgrade-pnpm-sync-lib-to-0.3.3_2025-06-20-00-29.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@rushstack/rush-pnpm-kit-v9", + "comment": "Set up the `@rushstack/rush-pnpm-kit-v9` package to bundle all pnpm v9 related packages together.", + "type": "minor" + } + ], + "packageName": "@rushstack/rush-pnpm-kit-v9" +} \ No newline at end of file diff --git a/common/config/rush/nonbrowser-approved-packages.json b/common/config/rush/nonbrowser-approved-packages.json index 161327d854d..e557fd1d1f5 100644 --- a/common/config/rush/nonbrowser-approved-packages.json +++ b/common/config/rush/nonbrowser-approved-packages.json @@ -102,10 +102,18 @@ "name": "@pnpm/link-bins", "allowedCategories": [ "libraries" ] }, + { + "name": "@pnpm/lockfile-file", + "allowedCategories": [ "libraries" ] + }, { "name": "@pnpm/lockfile-types", "allowedCategories": [ "libraries" ] }, + { + "name": "@pnpm/lockfile.fs", + "allowedCategories": [ "libraries" ] + }, { "name": "@pnpm/lockfile.types", "allowedCategories": [ "libraries" ] @@ -314,6 +322,18 @@ "name": "@rushstack/rush-http-build-cache-plugin", "allowedCategories": [ "libraries" ] }, + { + "name": "@rushstack/rush-pnpm-kit-v10", + "allowedCategories": [ "libraries" ] + }, + { + "name": "@rushstack/rush-pnpm-kit-v8", + "allowedCategories": [ "libraries" ] + }, + { + "name": "@rushstack/rush-pnpm-kit-v9", + "allowedCategories": [ "libraries" ] + }, { "name": "@rushstack/rush-redis-cobuild-plugin", "allowedCategories": [ "tests" ] diff --git a/common/config/subspaces/build-tests-subspace/pnpm-lock.yaml b/common/config/subspaces/build-tests-subspace/pnpm-lock.yaml index 309eaa5d95e..91a1a82ce1b 100644 --- a/common/config/subspaces/build-tests-subspace/pnpm-lock.yaml +++ b/common/config/subspaces/build-tests-subspace/pnpm-lock.yaml @@ -1026,6 +1026,14 @@ packages: '@nodelib/fs.scandir': 2.1.5 fastq: 1.17.1 + /@pnpm/constants@1001.3.1: + resolution: {integrity: sha512-2hf0s4pVrVEH8RvdJJ7YRKjQdiG8m0iAT26TTqXnCbK30kKwJW69VLmP5tED5zstmDRXcOeH5eRcrpkdwczQ9g==} + engines: {node: '>=18.12'} + + /@pnpm/constants@7.1.1: + resolution: {integrity: sha512-31pZqMtjwV+Vaq7MaPrT1EoDFSYwye3dp6BiHIGRJmVThCQwySRKM7hCvqqI94epNkqFAAYoWrNynWoRYosGdw==} + engines: {node: '>=16.14'} + /@pnpm/crypto.base32-hash@1.0.1: resolution: {integrity: sha512-pzAXNn6KxTA3kbcI3iEnYs4vtH51XEVqmK/1EiD18MaPKylhqy8UvMJK3zKG+jeP82cqQbozcTGm4yOQ8i3vNw==} engines: {node: '>=14.6'} @@ -1053,6 +1061,14 @@ packages: '@pnpm/graceful-fs': 1000.0.0 ssri: 10.0.5 + /@pnpm/crypto.hash@1000.2.1: + resolution: {integrity: sha512-Kgo3bgYbdKkC5xFvvQshbHa+Nru7k50D91+yyq7enp4Ur2EMp4wg5oXleaC5xu5hC9A/1eSCRI8npCioplxG4A==} + engines: {node: '>=18.12'} + dependencies: + '@pnpm/crypto.polyfill': 1000.1.0 + '@pnpm/graceful-fs': 1000.0.1 + ssri: 10.0.5 + /@pnpm/crypto.polyfill@1.0.0: resolution: {integrity: sha512-WbmsqqcUXKKaAF77ox1TQbpZiaQcr26myuMUu+WjUtoWYgD3VP6iKYEvSx35SZ6G2L316lu+pv+40A2GbWJc1w==} engines: {node: '>=18.12'} @@ -1069,6 +1085,14 @@ packages: '@pnpm/types': 1000.6.0 semver: 7.7.2 + /@pnpm/dependency-path@1001.1.8: + resolution: {integrity: sha512-+/SabdOsq4ycO/s1F82mUTmYb9KTE7e74qbXE9caM6slbaJesVqQOKDxSP4RqCy5jkjDz26kpkWzxeNJLowdNQ==} + engines: {node: '>=18.12'} + dependencies: + '@pnpm/crypto.hash': 1000.2.1 + '@pnpm/types': 1001.2.0 + semver: 7.7.2 + /@pnpm/dependency-path@2.1.8: resolution: {integrity: sha512-ywBaTjy0iSEF7lH3DlF8UXrdL2bw4AQFV2tTOeNeY7wc1W5CE+RHSJhf9MXBYcZPesqGRrPiU7Pimj3l05L9VA==} engines: {node: '>=16.14'} @@ -1090,12 +1114,42 @@ packages: resolution: {integrity: sha512-vxkRrkneBPVmP23kyjnYwVOtipwlSl6UfL+h+Xa3TrABJTz5rYBXemlTsU5BzST8U4pD7YDkTb3SQu+MMuIDKA==} engines: {node: '>=10.16'} + /@pnpm/error@1000.0.5: + resolution: {integrity: sha512-GjH0TPjbVNrPnl/BAGoFuBLJ2sFfXNKbS33lll/Ehe9yw0fyc8Kdw7kO9if37yQqn6vaa4dAHKkPllum7f/IPQ==} + engines: {node: '>=18.12'} + dependencies: + '@pnpm/constants': 1001.3.1 + + /@pnpm/error@5.0.3: + resolution: {integrity: sha512-ONJU5cUeoeJSy50qOYsMZQHTA/9QKmGgh1ATfEpCLgtbdwqUiwD9MxHNeXUYYI/pocBCz6r1ZCFqiQvO+8SUKA==} + engines: {node: '>=16.14'} + dependencies: + '@pnpm/constants': 7.1.1 + + /@pnpm/git-utils@1.0.0: + resolution: {integrity: sha512-lUI+XrzOJN4zdPGOGnFUrmtXAXpXi8wD8OI0nWOZmlh+raqbLzC3VkXu1zgaduOK6YonOcnQW88O+ojav1rAdA==} + engines: {node: '>=16.14'} + dependencies: + execa: /safe-execa@0.1.2 + + /@pnpm/git-utils@1000.0.0: + resolution: {integrity: sha512-W6isNTNgB26n6dZUgwCw6wly+uHQ2Zh5QiRKY1HHMbLAlsnZOxsSNGnuS9euKWHxDftvPfU7uR8XB5x95T5zPQ==} + engines: {node: '>=18.12'} + dependencies: + execa: /safe-execa@0.1.2 + /@pnpm/graceful-fs@1000.0.0: resolution: {integrity: sha512-RvMEliAmcfd/4UoaYQ93DLQcFeqit78jhYmeJJVPxqFGmj0jEcb9Tu0eAOXr7tGP3eJHpgvPbTU4o6pZ1bJhxg==} engines: {node: '>=18.12'} dependencies: graceful-fs: 4.2.11 + /@pnpm/graceful-fs@1000.0.1: + resolution: {integrity: sha512-JnzaAVFJIEgwTcB55eww8N3h5B6qJdZqDA2wYkSK+OcTvvMSQb9c2STMhBP6GfkWygG1fs3w8D7JRx9SPZnxJg==} + engines: {node: '>=18.12'} + dependencies: + graceful-fs: 4.2.11 + /@pnpm/link-bins@5.3.25: resolution: {integrity: sha512-9Xq8lLNRHFDqvYPXPgaiKkZ4rtdsm7izwM/cUsFDc5IMnG0QYIVBXQbgwhz2UvjUotbJrvfKLJaCfA3NGBnLDg==} engines: {node: '>=10.16'} @@ -1114,6 +1168,72 @@ packages: p-settle: 4.1.1 ramda: 0.27.2 + /@pnpm/lockfile-file@8.1.8(@pnpm/logger@5.0.0): + resolution: {integrity: sha512-bRadYzGFyFtwiynwp4Mkn7NDNHkgKvJ9xtjsCT5XiE6S8wpzS3W8yx2WzHGk9Mm1J/2wM0F52+NzCWhlz5eIqA==} + engines: {node: '>=16.14'} + peerDependencies: + '@pnpm/logger': ^5.0.0 + 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/logger': 5.0.0 + '@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: /@zkochan/js-yaml@0.0.6 + normalize-path: 3.0.0 + ramda: /@pnpm/ramda@0.28.1 + semver: 7.7.2 + sort-keys: 4.2.0 + strip-bom: 4.0.0 + write-file-atomic: 5.0.1 + + /@pnpm/lockfile-types@5.1.5: + resolution: {integrity: sha512-02FP0HynzX+2DcuPtuMy7PH+kLIC0pevAydAOK+zug2bwdlSLErlvSkc+4+3dw60eRWgUXUqyfO2eR/Ansdbng==} + engines: {node: '>=16.14'} + dependencies: + '@pnpm/types': 9.4.2 + + /@pnpm/lockfile.fs@1001.1.27(@pnpm/logger@1001.0.1): + resolution: {integrity: sha512-nca9+Iz764aYRPwzgrThxQ9gtcpBc9T7hPt7MsI5kiqeHB+ZWbQtCagOSEPYp0258nSuo4Iw+2TxD+CbHVe2WA==} + engines: {node: '>=18.12'} + peerDependencies: + '@pnpm/logger': '>=1001.0.0 <1002.0.0' + dependencies: + '@pnpm/constants': 1001.3.1 + '@pnpm/dependency-path': 1001.1.8 + '@pnpm/error': 1000.0.5 + '@pnpm/git-utils': 1000.0.0 + '@pnpm/lockfile.merger': 1001.0.17 + '@pnpm/lockfile.types': 1002.0.7 + '@pnpm/lockfile.utils': 1003.0.9 + '@pnpm/logger': 1001.0.1 + '@pnpm/object.key-sorting': 1000.0.1 + '@pnpm/types': 1001.2.0 + '@zkochan/rimraf': 3.0.2 + comver-to-semver: 1.0.0 + js-yaml: /@zkochan/js-yaml@0.0.9 + normalize-path: 3.0.0 + ramda: /@pnpm/ramda@0.28.1 + semver: 7.7.2 + strip-bom: 4.0.0 + write-file-atomic: 5.0.1 + + /@pnpm/lockfile.merger@1001.0.17: + resolution: {integrity: sha512-MUuQM2y/xxDuTFimLIIbNbXGB4e3Xo9w+BgKSWGaTqRl9n++E6C8dXWTlOnWFfgsUZQqmR9O59fl+9euNE3MRQ==} + engines: {node: '>=18.12'} + dependencies: + '@pnpm/lockfile.types': 1002.0.7 + '@pnpm/types': 1001.2.0 + comver-to-semver: 1.0.0 + ramda: /@pnpm/ramda@0.28.1 + semver: 7.7.2 + /@pnpm/lockfile.types@1.0.3: resolution: {integrity: sha512-A7vUWktnhDkrIs+WmXm7AdffJVyVYJpQUEouya/DYhB+Y+tQ3BXjZ6CV0KybqLgI/8AZErgCJqFxA0GJH6QDjA==} engines: {node: '>=18.12'} @@ -1122,6 +1242,71 @@ packages: '@pnpm/types': 12.2.0 dev: false + /@pnpm/lockfile.types@1001.1.0: + resolution: {integrity: sha512-/rfDUV8M9iMm0QXahHPv6SD6eKNkrMXlhECJVhDkdL4NIifcv6/HZwYtxd0PIndExz04+OE+iV9K8zKG9i/OEA==} + engines: {node: '>=18.12'} + dependencies: + '@pnpm/patching.types': 1000.1.0 + '@pnpm/types': 1000.7.0 + + /@pnpm/lockfile.types@1002.0.7: + resolution: {integrity: sha512-4KT+rlDtHaGIDUVX0KJ6dG26hJyMEV9LCW0e29zYb9L/9libYdLzuyY2cCIbBI/9NlpCfiy82NcqFg7A3HASaw==} + engines: {node: '>=18.12'} + dependencies: + '@pnpm/patching.types': 1000.1.0 + '@pnpm/resolver-base': 1005.3.3 + '@pnpm/types': 1001.2.0 + + /@pnpm/lockfile.types@900.0.0: + resolution: {integrity: sha512-/4+3CAu4uIjx0ln1DYXNdj0qKJ3wyRDY+RS+eFzV6OHjreaTKWsF2WcjigYp1M5mxL4kj2RsRGgBGEyKtCfEWg==} + engines: {node: '>=18.12'} + dependencies: + '@pnpm/patching.types': 900.0.0 + '@pnpm/types': 900.0.0 + dev: false + + /@pnpm/lockfile.utils@1003.0.9: + resolution: {integrity: sha512-x7LZMBLPOLWZvw/f+eMhLpIbVtQnj7jupDZdp6jx2wBEcAwyh8kyxlGl1hLYJOG7eyowC3DVatdMnIxuAVpAIg==} + engines: {node: '>=18.12'} + dependencies: + '@pnpm/dependency-path': 1001.1.8 + '@pnpm/lockfile.types': 1002.0.7 + '@pnpm/pick-fetcher': 1001.0.0 + '@pnpm/resolver-base': 1005.3.3 + '@pnpm/types': 1001.2.0 + get-npm-tarball-url: 2.1.0 + ramda: /@pnpm/ramda@0.28.1 + + /@pnpm/logger@1001.0.1: + resolution: {integrity: sha512-gdwlAMXC4Wc0s7Dmg/4wNybMEd/4lSd9LsXQxeg/piWY0PPXjgz1IXJWnVScx6dZRaaodWP3c1ornrw8mZdFZw==} + engines: {node: '>=18.12'} + dependencies: + bole: 5.0.25 + split2: 4.2.0 + + /@pnpm/logger@5.0.0: + resolution: {integrity: sha512-YfcB2QrX+Wx1o6LD1G2Y2fhDhOix/bAY/oAnMpHoNLsKkWIRbt1oKLkIFvxBMzLwAEPqnYWguJrYC+J6i4ywbw==} + engines: {node: '>=12.17'} + dependencies: + bole: 5.0.25 + ndjson: 2.0.0 + + /@pnpm/merge-lockfile-changes@5.0.7: + resolution: {integrity: sha512-fYmX1+EHv3wg7l4A9FCEkjgEBIHaY6JosknkLk3pL8dbB9k6unjIrF9f2onNtpj3XUlWxZ3aBw9THk/Bf6hKow==} + engines: {node: '>=16.14'} + dependencies: + '@pnpm/lockfile-types': 5.1.5 + comver-to-semver: 1.0.0 + ramda: /@pnpm/ramda@0.28.1 + semver: 7.7.2 + + /@pnpm/object.key-sorting@1000.0.1: + resolution: {integrity: sha512-YTJCXyUGOrJuj4QqhSKqZa1vlVAm82h1/uw00ZmD/kL2OViggtyUwWyIe62kpwWVPwEYixfGjfvaFKVJy2mjzA==} + engines: {node: '>=18.12'} + dependencies: + '@pnpm/util.lex-comparator': 3.0.2 + sort-keys: 4.2.0 + /@pnpm/package-bins@4.1.0: resolution: {integrity: sha512-57/ioGYLBbVRR80Ux9/q2i3y8Q+uQADc3c+Yse8jr/60YLOi3jcWz13e2Jy+ANYtZI258Qc5wk2X077rp0Ly/Q==} engines: {node: '>=10.16'} @@ -1135,6 +1320,22 @@ packages: engines: {node: '>=18.12'} dev: false + /@pnpm/patching.types@1000.1.0: + resolution: {integrity: sha512-Zib2ysLctRnWM4KXXlljR44qSKwyEqYmLk+8VPBDBEK3l5Gp5mT3N4ix9E4qjYynvFqahumsxzOfxOYQhUGMGw==} + engines: {node: '>=18.12'} + + /@pnpm/patching.types@900.0.0: + resolution: {integrity: sha512-A/3kgRD4Xy2tBMPjOBdx5ZdgmpUobphzWkqDB72S5SIB6gdyCg32AUV0/aO12DwMxpT7kyqMhkkynUOPBfdlUQ==} + engines: {node: '>=18.12'} + dev: false + + /@pnpm/pick-fetcher@1001.0.0: + resolution: {integrity: sha512-Zl8npMjFSS1gSGM27KkbmfmeOuwU2MCxRFIofAUo/PkqOE2IzzXr0yzB1XYJM8Ml1nUXt9BHfwAlUQKC5MdBLA==} + engines: {node: '>=18.12'} + + /@pnpm/ramda@0.28.1: + resolution: {integrity: sha512-zcAG+lvU0fMziNeGXpPyCyCJYp5ZVrPElEE4t14jAmViaihohocZ+dDkcRIyAomox8pQsuZnv1EyHR+pOhmUWw==} + /@pnpm/read-modules-dir@2.0.3: resolution: {integrity: sha512-i9OgRvSlxrTS9a2oXokhDxvQzDtfqtsooJ9jaGoHkznue5aFCTSrNZFQ6M18o8hC03QWfnxaKi0BtOvNkKu2+A==} engines: {node: '>=10.13'} @@ -1167,10 +1368,24 @@ packages: sort-keys: 4.2.0 strip-bom: 4.0.0 + /@pnpm/resolver-base@1005.3.3: + resolution: {integrity: sha512-mwh5nHZXP1iORD6bQLYAYp9WWma9kwHsK9tLWICLvrWPxw+RqRthKsp0NxYPR7nV1Yd1cEgAi1lWxgWNxjJ8wA==} + engines: {node: '>=18.12'} + dependencies: + '@pnpm/types': 1001.2.0 + /@pnpm/types@1000.6.0: resolution: {integrity: sha512-6PsMNe98VKPGcg6LnXSW/LE3YfJ77nj+bPKiRjYRWAQLZ+xXjEQRaR0dAuyjCmchlv4wR/hpnMVRS21/fCod5w==} engines: {node: '>=18.12'} + /@pnpm/types@1000.7.0: + resolution: {integrity: sha512-1s7FvDqmOEIeFGLUj/VO8sF5lGFxeE/1WALrBpfZhDnMXY/x8FbmuygTTE5joWifebcZ8Ww8Kw2CgBoStsIevQ==} + engines: {node: '>=18.12'} + + /@pnpm/types@1001.2.0: + resolution: {integrity: sha512-UIju+OadUVS0q5q/MbRAzMS5M9HZcZyT6evyrgPUH0DV9przkcW7/LH1Sj33Q2MpJO9Nzqw4b4w72x8mvtUAew==} + engines: {node: '>=18.12'} + /@pnpm/types@12.2.0: resolution: {integrity: sha512-5RtwWhX39j89/Tmyv2QSlpiNjErA357T/8r1Dkg+2lD3P7RuS7Xi2tChvmOC3VlezEFNcWnEGCOeKoGRkDuqFA==} engines: {node: '>=18.12'} @@ -1187,6 +1402,19 @@ packages: resolution: {integrity: sha512-g1hcF8Nv4gd76POilz9gD4LITAPXOe5nX4ijgr8ixCbLQZfcpYiMfJ+C1RlMNRUDo8vhlNB4O3bUlxmT6EAQXA==} engines: {node: '>=16.14'} + /@pnpm/types@900.0.0: + resolution: {integrity: sha512-GucC9h/EVbU03Kl7M/FqVes1s5RCQaGCW2f41lFA7VqqHWQElR6k1q33iF6f6fXDUSCdzB1IUxSq9ghP2J+8Pw==} + engines: {node: '>=18.12'} + dev: false + + /@pnpm/util.lex-comparator@1.0.0: + resolution: {integrity: sha512-3aBQPHntVgk5AweBWZn+1I/fqZ9krK/w01197aYVkAJQGftb+BVWgEepxY5GChjSW12j52XX+CmfynYZ/p0DFQ==} + engines: {node: '>=12.22.0'} + + /@pnpm/util.lex-comparator@3.0.2: + resolution: {integrity: sha512-blFO4Ws97tWv/SNE6N39ZdGmZBrocXnBOfVp0ln4kELmns4pGPZizqyRtR8EjfOLMLstbmNCTReBoDvLz1isVg==} + engines: {node: '>=18.12'} + /@pnpm/write-project-manifest@1.1.7: resolution: {integrity: sha512-OLkDZSqkA1mkoPNPvLFXyI6fb0enCuFji6Zfditi/CLAo9kmIhQFmEUDu4krSB8i908EljG8YwL5Xjxzm5wsWA==} engines: {node: '>=10.16'} @@ -1860,6 +2088,35 @@ packages: graceful-fs: 4.2.11 is-windows: 1.0.2 + /@zkochan/js-yaml@0.0.6: + resolution: {integrity: sha512-nzvgl3VfhcELQ8LyVrYOru+UtAy1nrygk2+AGbTm8a5YcO6o8lSjAT+pfg3vJWxIoZKOUhrK6UU7xW/+00kQrg==} + hasBin: true + dependencies: + argparse: 2.0.1 + + /@zkochan/js-yaml@0.0.9: + resolution: {integrity: sha512-SsdK25Upg5wLeGK2Wm8y5bDloMMxN/qE5H6aNOiPRh07a9/fQPYVhlLZz2zRFg9il9XOlpFdrnQnPKsU7FJIpQ==} + hasBin: true + dependencies: + argparse: 2.0.1 + + /@zkochan/rimraf@2.1.3: + resolution: {integrity: sha512-mCfR3gylCzPC+iqdxEA6z5SxJeOgzgbwmyxanKriIne5qZLswDe/M43aD3p5MNzwzXRhbZg/OX+MpES6Zk1a6A==} + engines: {node: '>=12.10'} + dependencies: + rimraf: 3.0.2 + + /@zkochan/rimraf@3.0.2: + resolution: {integrity: sha512-GBf4ua7ogWTr7fATnzk/JLowZDBnBJMm8RkMaC/KcvxZ9gxbMWix0/jImd815LmqKyIHZ7h7lADRddGMdGBuCA==} + engines: {node: '>=18.12'} + + /@zkochan/which@2.0.3: + resolution: {integrity: sha512-C1ReN7vt2/2O0fyTsx5xnbQuxBrmG5NMSbcIkPKCCfCTJgpZBsuRYzFXHj3nVq8vTfK7vxHUmzfCpSHgO7j4rg==} + engines: {node: '>= 8'} + hasBin: true + dependencies: + isexe: 2.0.0 + /acorn-import-phases@1.0.4(acorn@8.15.0): resolution: {integrity: sha512-wKmbr/DDiIXzEOiWrTTUcDm24kQ2vGfZQvM2fwg2vXqR5uW6aapr7ObPtj1th32b9u90/Pf4AItvdTh42fBmVQ==} engines: {node: '>=10.13.0'} @@ -2268,6 +2525,12 @@ packages: inherits: 2.0.4 readable-stream: 3.6.2 + /bole@5.0.25: + resolution: {integrity: sha512-4WsO2cOzQwN4MDCS/6krYWfz1brS3bJGKJhZQ+cr6EvcJIJiuxrWBZz/2WXbQjurFCRl+ddAzqH6SYaIzSmzsQ==} + dependencies: + fast-safe-stringify: 2.1.1 + individual: 3.0.0 + /boolbase@1.0.0: resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} dev: true @@ -2600,6 +2863,10 @@ packages: engines: {node: '>= 12.0.0'} dev: true + /comver-to-semver@1.0.0: + resolution: {integrity: sha512-gcGtbRxjwROQOdXLUWH1fQAXqThUVRZ219aAwgtX3KfYw429/Zv6EIJRf5TBSzWdAGwePmqH7w70WTaX4MDqag==} + engines: {node: '>=12.17'} + /concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} @@ -3741,6 +4008,9 @@ packages: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} dev: true + /fast-safe-stringify@2.1.1: + resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==} + /fastq@1.17.1: resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} dependencies: @@ -3915,6 +4185,10 @@ packages: math-intrinsics: 1.1.0 dev: true + /get-npm-tarball-url@2.1.0: + resolution: {integrity: sha512-ro+DiMu5DXgRBabqXupW38h7WPZ9+Ad8UjwhvsmmN8w1sU7ab0nzAXvVZ4kqYg57OrqomRtJvepX5/xvFKNtjA==} + engines: {node: '>=12.17'} + /get-package-type@0.1.0: resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} engines: {node: '>=8.0.0'} @@ -4312,6 +4586,9 @@ packages: resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} engines: {node: '>=8'} + /individual@3.0.0: + resolution: {integrity: sha512-rUY5vtT748NMRbEMrTNiFfy29BgGZwGXUi2NFUVMWQrogSLzlJvQV9eeMWi+g1aVaQ53tpyLAQtd5x/JH0Nh1g==} + /inflight@1.0.6: resolution: {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. @@ -5297,6 +5574,9 @@ packages: resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} dev: true + /json-stringify-safe@5.0.1: + resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} + /json5@1.0.2: resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} hasBin: true @@ -5670,6 +5950,17 @@ packages: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} dev: true + /ndjson@2.0.0: + resolution: {integrity: sha512-nGl7LRGrzugTtaFcJMhLbpzJM6XdivmbkdlaGcrk/LXg2KL/YBC6z1g70xh0/al+oFuVFP8N8kiWRucmeEH/qQ==} + engines: {node: '>=10'} + hasBin: true + dependencies: + json-stringify-safe: 5.0.1 + minimist: 1.2.8 + readable-stream: 3.6.2 + split2: 3.2.2 + through2: 4.0.2 + /neo-async@2.6.2: resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} dev: true @@ -6055,6 +6346,9 @@ packages: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} + /path-name@1.0.0: + resolution: {integrity: sha512-/dcAb5vMXH0f51yvMuSUqFpxUcA8JelbRmE5mW/p4CUJxrNgK24IkstnV7ENtg2IDGBOu6izKTG6eilbnbNKWQ==} + /path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} @@ -6105,11 +6399,14 @@ packages: dependencies: semver-compare: 1.0.0 - /pnpm-sync-lib@0.3.2: - resolution: {integrity: sha512-XlHyNAHlBqIMGTBD0HfgyRyj1UpSJvVyP20ihPek00YKmMb7RJ16AxlQkjT1jQ/D6s6OAT0ety/tSxcJTrvQ4w==} + /pnpm-sync-lib@0.3.3: + resolution: {integrity: sha512-iE0xtJIm7cljColV3CAfi05FfRWHeJFwKcxsJfwo+dkFo9kg9QgGKHlF5qlF2o2uArOz6z0P4bA/t4pX2Z2jYg==} dependencies: - '@pnpm/dependency-path-2': /@pnpm/dependency-path@2.1.8 - '@pnpm/dependency-path-5': /@pnpm/dependency-path@5.1.7 + '@pnpm/dependency-path-pnpm-v10': /@pnpm/dependency-path@1000.0.9 + '@pnpm/dependency-path-pnpm-v8': /@pnpm/dependency-path@2.1.8 + '@pnpm/dependency-path-pnpm-v9': /@pnpm/dependency-path@5.1.7 + '@pnpm/lockfile-types-pnpm-lock-v6': /@pnpm/lockfile-types@5.1.5 + '@pnpm/lockfile.types-pnpm-lock-v9': /@pnpm/lockfile.types@1001.1.0 yaml: 2.4.1 /possible-typed-array-names@1.0.0: @@ -6463,6 +6760,13 @@ packages: /rfc4648@1.5.3: resolution: {integrity: sha512-MjOWxM065+WswwnmNONOT+bD1nXzY9Km6u3kzvnx8F8/HXGZdz3T6e6vZJ8Q/RIMUSp/nxqjH3GwvJDy8ijeQQ==} + /rimraf@3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + deprecated: Rimraf versions prior to v4 are no longer supported + hasBin: true + dependencies: + glob: 7.2.3 + /run-async@2.4.1: resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} engines: {node: '>=0.12.0'} @@ -6510,6 +6814,14 @@ packages: /safe-buffer@5.2.1: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + /safe-execa@0.1.2: + resolution: {integrity: sha512-vdTshSQ2JsRCgT8eKZWNJIL26C6bVqy1SOmuCMlKHegVeo8KYRobRrefOdUq9OozSPUUiSxrylteeRmLOMFfWg==} + engines: {node: '>=12'} + dependencies: + '@zkochan/which': 2.0.3 + execa: 5.1.1 + path-name: 1.0.0 + /safe-push-apply@1.0.0: resolution: {integrity: sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==} engines: {node: '>= 0.4'} @@ -6687,6 +6999,10 @@ packages: /signal-exit@3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + /signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + /slash@3.0.0: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} @@ -6745,6 +7061,15 @@ packages: /spdx-license-ids@3.0.20: resolution: {integrity: sha512-jg25NiDV/1fLtSgEgyvVyDunvaNHbuwF9lfNV17gSmPFAlYzdfNBlLtLzXTevwkPj7DhGbmN9VnmJIgLnhvaBw==} + /split2@3.2.2: + resolution: {integrity: sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==} + dependencies: + readable-stream: 3.6.2 + + /split2@4.2.0: + resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} + engines: {node: '>= 10.x'} + /sprintf-js@1.0.3: resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} @@ -7035,6 +7360,11 @@ packages: /throat@6.0.2: resolution: {integrity: sha512-WKexMoJj3vEuK0yFEapj8y64V0A6xcuPuK9Gt1d0R+dzCSJc0lHqQytAbSB4cDAK0dWh4T0E2ETkoLE2WZ41OQ==} + /through2@4.0.2: + resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==} + dependencies: + readable-stream: 3.6.2 + /through@2.3.8: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} @@ -7594,6 +7924,13 @@ packages: signal-exit: 3.0.7 dev: true + /write-file-atomic@5.0.1: + resolution: {integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + dependencies: + imurmurhash: 0.1.4 + signal-exit: 4.1.0 + /write-yaml-file@4.2.0: resolution: {integrity: sha512-LwyucHy0uhWqbrOkh9cBluZBeNVxzHjDaE9mwepZG3n3ZlbM4v3ndrFw51zW/NXYFFqP+QWZ72ihtLWTh05e4Q==} engines: {node: '>=10.13'} @@ -8122,6 +8459,9 @@ packages: '@rushstack/package-deps-hash': file:../../../libraries/package-deps-hash(@types/node@20.17.19) '@rushstack/package-extractor': file:../../../libraries/package-extractor(@types/node@20.17.19) '@rushstack/rig-package': file:../../../libraries/rig-package + '@rushstack/rush-pnpm-kit-v10': file:../../../libraries/rush-pnpm-kit-v10 + '@rushstack/rush-pnpm-kit-v8': file:../../../libraries/rush-pnpm-kit-v8 + '@rushstack/rush-pnpm-kit-v9': file:../../../libraries/rush-pnpm-kit-v9 '@rushstack/stream-collator': file:../../../libraries/stream-collator(@types/node@20.17.19) '@rushstack/terminal': file:../../../libraries/terminal(@types/node@20.17.19) '@rushstack/ts-command-line': file:../../../libraries/ts-command-line(@types/node@20.17.19) @@ -8142,7 +8482,7 @@ packages: npm-check: 6.0.1 npm-package-arg: 6.1.1 object-hash: 3.0.0 - pnpm-sync-lib: 0.3.2 + pnpm-sync-lib: 0.3.3 read-package-tree: 5.1.6 rxjs: 6.6.7 semver: 7.5.4 @@ -8156,12 +8496,37 @@ packages: - '@types/node' - supports-color + file:../../../libraries/rush-pnpm-kit-v10: + resolution: {directory: ../../../libraries/rush-pnpm-kit-v10, type: directory} + name: '@rushstack/rush-pnpm-kit-v10' + dependencies: + '@pnpm/dependency-path-pnpm-v10': /@pnpm/dependency-path@1000.0.9 + '@pnpm/lockfile.fs-pnpm-lock-v9': /@pnpm/lockfile.fs@1001.1.27(@pnpm/logger@1001.0.1) + '@pnpm/logger': 1001.0.1 + + file:../../../libraries/rush-pnpm-kit-v8: + resolution: {directory: ../../../libraries/rush-pnpm-kit-v8, type: directory} + name: '@rushstack/rush-pnpm-kit-v8' + dependencies: + '@pnpm/dependency-path-pnpm-v8': /@pnpm/dependency-path@2.1.8 + '@pnpm/lockfile-file-pnpm-lock-v6': /@pnpm/lockfile-file@8.1.8(@pnpm/logger@5.0.0) + '@pnpm/logger': 5.0.0 + + file:../../../libraries/rush-pnpm-kit-v9: + resolution: {directory: ../../../libraries/rush-pnpm-kit-v9, type: directory} + name: '@rushstack/rush-pnpm-kit-v9' + dependencies: + '@pnpm/dependency-path-pnpm-v9': /@pnpm/dependency-path@5.1.7 + '@pnpm/lockfile.fs-pnpm-lock-v9': /@pnpm/lockfile.fs@1001.1.27(@pnpm/logger@1001.0.1) + '@pnpm/logger': 1001.0.1 + file:../../../libraries/rush-sdk(@types/node@20.17.19): resolution: {directory: ../../../libraries/rush-sdk, type: directory} id: file:../../../libraries/rush-sdk name: '@rushstack/rush-sdk' dependencies: '@pnpm/lockfile.types': 1.0.3 + '@pnpm/lockfile.types-900': /@pnpm/lockfile.types@900.0.0 '@rushstack/credential-cache': file:../../../libraries/credential-cache(@types/node@20.17.19) '@rushstack/lookup-by-path': file:../../../libraries/lookup-by-path(@types/node@20.17.19) '@rushstack/node-core-library': file:../../../libraries/node-core-library(@types/node@20.17.19) diff --git a/common/config/subspaces/build-tests-subspace/repo-state.json b/common/config/subspaces/build-tests-subspace/repo-state.json index 60d71e7aba0..f8d1e8a6081 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": "56b872f4bad88eba7b4770a957ec0c8b5c420ea8", + "pnpmShrinkwrapHash": "d0ab998823b0b0b11f1a46443801a46eb211ff83", "preferredVersionsHash": "550b4cee0bef4e97db6c6aad726df5149d20e7d9", - "packageJsonInjectedDependenciesHash": "a5c6c77a50f221fd6d6698775cbda34d2ca8515c" + "packageJsonInjectedDependenciesHash": "44588ac399f896419c6cf7f525cbcbe8bae576d0" } diff --git a/common/config/subspaces/default/common-versions.json b/common/config/subspaces/default/common-versions.json index bcaa4198eb5..635b1c7a0a0 100644 --- a/common/config/subspaces/default/common-versions.json +++ b/common/config/subspaces/default/common-versions.json @@ -147,6 +147,12 @@ "@rushstack/set-webpack-public-path-plugin": [ // This is used by the webpack 4 localization plugin tests "^4.1.16" + ], + "@pnpm/logger": [ + // For pnpm kit v8 + "~5.0.0", + // For pnpm kit v9, v10 + "~1001.0.0" ] } } diff --git a/common/config/subspaces/default/pnpm-lock.yaml b/common/config/subspaces/default/pnpm-lock.yaml index 3d3a1b145d7..541b2c7dd0c 100644 --- a/common/config/subspaces/default/pnpm-lock.yaml +++ b/common/config/subspaces/default/pnpm-lock.yaml @@ -3751,15 +3751,6 @@ importers: ../../../libraries/rush-lib: dependencies: - '@pnpm/dependency-path': - specifier: ~1000.0.9 - version: 1000.0.9 - '@pnpm/dependency-path-lockfile-pre-v10': - specifier: npm:@pnpm/dependency-path@~5.1.7 - version: /@pnpm/dependency-path@5.1.7 - '@pnpm/dependency-path-lockfile-pre-v9': - specifier: npm:@pnpm/dependency-path@~2.1.2 - version: /@pnpm/dependency-path@2.1.8 '@pnpm/link-bins': specifier: ~5.3.7 version: 5.3.25 @@ -3787,6 +3778,15 @@ importers: '@rushstack/rig-package': specifier: workspace:* version: link:../rig-package + '@rushstack/rush-pnpm-kit-v10': + specifier: workspace:* + version: link:../rush-pnpm-kit-v10 + '@rushstack/rush-pnpm-kit-v8': + specifier: workspace:* + version: link:../rush-pnpm-kit-v8 + '@rushstack/rush-pnpm-kit-v9': + specifier: workspace:* + version: link:../rush-pnpm-kit-v9 '@rushstack/stream-collator': specifier: workspace:* version: link:../stream-collator @@ -3842,8 +3842,8 @@ importers: specifier: 3.0.0 version: 3.0.0 pnpm-sync-lib: - specifier: 0.3.2 - version: 0.3.2 + specifier: 0.3.3 + version: 0.3.3 read-package-tree: specifier: ~5.1.5 version: 5.1.6 @@ -3869,12 +3869,9 @@ importers: specifier: ~2.2.1 version: 2.2.1 devDependencies: - '@pnpm/lockfile.types': - specifier: ~1.0.3 - version: 1.0.3 - '@pnpm/logger': - specifier: 4.0.0 - version: 4.0.0 + '@pnpm/lockfile.types-900': + specifier: npm:@pnpm/lockfile.types@~900.0.0 + version: /@pnpm/lockfile.types@900.0.0 '@rushstack/heft': specifier: workspace:* version: link:../../apps/heft @@ -3933,11 +3930,68 @@ importers: specifier: ~5.103.0 version: 5.103.0 + ../../../libraries/rush-pnpm-kit-v10: + dependencies: + '@pnpm/dependency-path-pnpm-v10': + specifier: npm:@pnpm/dependency-path@~1000.0.9 + version: /@pnpm/dependency-path@1000.0.9 + '@pnpm/lockfile.fs-pnpm-lock-v9': + specifier: npm:@pnpm/lockfile.fs@~1001.1.11 + version: /@pnpm/lockfile.fs@1001.1.25(@pnpm/logger@1001.0.1) + '@pnpm/logger': + specifier: ~1001.0.0 + version: 1001.0.1 + devDependencies: + '@rushstack/heft': + specifier: workspace:* + version: link:../../apps/heft + local-node-rig: + specifier: workspace:* + version: link:../../rigs/local-node-rig + + ../../../libraries/rush-pnpm-kit-v8: + dependencies: + '@pnpm/dependency-path-pnpm-v8': + specifier: npm:@pnpm/dependency-path@~2.1.8 + version: /@pnpm/dependency-path@2.1.8 + '@pnpm/lockfile-file-pnpm-lock-v6': + specifier: npm:@pnpm/lockfile-file@~8.1.8 + version: /@pnpm/lockfile-file@8.1.8(@pnpm/logger@5.0.0) + '@pnpm/logger': + specifier: ~5.0.0 + version: 5.0.0 + devDependencies: + '@rushstack/heft': + specifier: workspace:* + version: link:../../apps/heft + local-node-rig: + specifier: workspace:* + version: link:../../rigs/local-node-rig + + ../../../libraries/rush-pnpm-kit-v9: + dependencies: + '@pnpm/dependency-path-pnpm-v9': + specifier: npm:@pnpm/dependency-path@~5.1.7 + version: /@pnpm/dependency-path@5.1.7 + '@pnpm/lockfile.fs-pnpm-lock-v9': + specifier: npm:@pnpm/lockfile.fs@~1001.1.11 + version: /@pnpm/lockfile.fs@1001.1.25(@pnpm/logger@1001.0.1) + '@pnpm/logger': + specifier: ~1001.0.0 + version: 1001.0.1 + devDependencies: + '@rushstack/heft': + specifier: workspace:* + version: link:../../apps/heft + local-node-rig: + specifier: workspace:* + version: link:../../rigs/local-node-rig + ../../../libraries/rush-sdk: dependencies: - '@pnpm/lockfile.types': - specifier: ~1.0.3 - version: 1.0.3 + '@pnpm/lockfile.types-900': + specifier: npm:@pnpm/lockfile.types@~900.0.0 + version: /@pnpm/lockfile.types@900.0.0 '@rushstack/credential-cache': specifier: workspace:* version: link:../credential-cache @@ -10723,6 +10777,16 @@ packages: webpack: 4.47.0 dev: true + /@pnpm/constants@1001.3.1: + resolution: {integrity: sha512-2hf0s4pVrVEH8RvdJJ7YRKjQdiG8m0iAT26TTqXnCbK30kKwJW69VLmP5tED5zstmDRXcOeH5eRcrpkdwczQ9g==} + engines: {node: '>=18.12'} + dev: false + + /@pnpm/constants@7.1.1: + resolution: {integrity: sha512-31pZqMtjwV+Vaq7MaPrT1EoDFSYwye3dp6BiHIGRJmVThCQwySRKM7hCvqqI94epNkqFAAYoWrNynWoRYosGdw==} + engines: {node: '>=16.14'} + dev: false + /@pnpm/crypto.base32-hash@1.0.1: resolution: {integrity: sha512-pzAXNn6KxTA3kbcI3iEnYs4vtH51XEVqmK/1EiD18MaPKylhqy8UvMJK3zKG+jeP82cqQbozcTGm4yOQ8i3vNw==} engines: {node: '>=14.6'} @@ -10754,6 +10818,15 @@ packages: ssri: 10.0.5 dev: false + /@pnpm/crypto.hash@1000.2.1: + resolution: {integrity: sha512-Kgo3bgYbdKkC5xFvvQshbHa+Nru7k50D91+yyq7enp4Ur2EMp4wg5oXleaC5xu5hC9A/1eSCRI8npCioplxG4A==} + engines: {node: '>=18.12'} + dependencies: + '@pnpm/crypto.polyfill': 1000.1.0 + '@pnpm/graceful-fs': 1000.0.1 + ssri: 10.0.5 + dev: false + /@pnpm/crypto.polyfill@1.0.0: resolution: {integrity: sha512-WbmsqqcUXKKaAF77ox1TQbpZiaQcr26myuMUu+WjUtoWYgD3VP6iKYEvSx35SZ6G2L316lu+pv+40A2GbWJc1w==} engines: {node: '>=18.12'} @@ -10773,6 +10846,15 @@ packages: semver: 7.7.2 dev: false + /@pnpm/dependency-path@1001.1.6: + resolution: {integrity: sha512-MQ0l7p0xTNsobggVsT3zXed677WvlDQ25wt0rTQv54Z6fLS/B89pwemUMNhWIKR4q+5WHJjkSlVN2t+W4um+7Q==} + engines: {node: '>=18.12'} + dependencies: + '@pnpm/crypto.hash': 1000.2.1 + '@pnpm/types': 1001.0.1 + semver: 7.7.2 + dev: false + /@pnpm/dependency-path@2.1.8: resolution: {integrity: sha512-ywBaTjy0iSEF7lH3DlF8UXrdL2bw4AQFV2tTOeNeY7wc1W5CE+RHSJhf9MXBYcZPesqGRrPiU7Pimj3l05L9VA==} engines: {node: '>=16.14'} @@ -10797,6 +10879,34 @@ packages: engines: {node: '>=10.16'} dev: false + /@pnpm/error@1000.0.5: + resolution: {integrity: sha512-GjH0TPjbVNrPnl/BAGoFuBLJ2sFfXNKbS33lll/Ehe9yw0fyc8Kdw7kO9if37yQqn6vaa4dAHKkPllum7f/IPQ==} + engines: {node: '>=18.12'} + dependencies: + '@pnpm/constants': 1001.3.1 + dev: false + + /@pnpm/error@5.0.3: + resolution: {integrity: sha512-ONJU5cUeoeJSy50qOYsMZQHTA/9QKmGgh1ATfEpCLgtbdwqUiwD9MxHNeXUYYI/pocBCz6r1ZCFqiQvO+8SUKA==} + engines: {node: '>=16.14'} + dependencies: + '@pnpm/constants': 7.1.1 + dev: false + + /@pnpm/git-utils@1.0.0: + resolution: {integrity: sha512-lUI+XrzOJN4zdPGOGnFUrmtXAXpXi8wD8OI0nWOZmlh+raqbLzC3VkXu1zgaduOK6YonOcnQW88O+ojav1rAdA==} + engines: {node: '>=16.14'} + dependencies: + execa: /safe-execa@0.1.2 + dev: false + + /@pnpm/git-utils@1000.0.0: + resolution: {integrity: sha512-W6isNTNgB26n6dZUgwCw6wly+uHQ2Zh5QiRKY1HHMbLAlsnZOxsSNGnuS9euKWHxDftvPfU7uR8XB5x95T5zPQ==} + engines: {node: '>=18.12'} + dependencies: + execa: /safe-execa@0.1.2 + dev: false + /@pnpm/graceful-fs@1000.0.0: resolution: {integrity: sha512-RvMEliAmcfd/4UoaYQ93DLQcFeqit78jhYmeJJVPxqFGmj0jEcb9Tu0eAOXr7tGP3eJHpgvPbTU4o6pZ1bJhxg==} engines: {node: '>=18.12'} @@ -10804,6 +10914,13 @@ packages: graceful-fs: 4.2.11 dev: false + /@pnpm/graceful-fs@1000.0.1: + resolution: {integrity: sha512-JnzaAVFJIEgwTcB55eww8N3h5B6qJdZqDA2wYkSK+OcTvvMSQb9c2STMhBP6GfkWygG1fs3w8D7JRx9SPZnxJg==} + engines: {node: '>=18.12'} + dependencies: + graceful-fs: 4.2.11 + dev: false + /@pnpm/link-bins@5.3.25: resolution: {integrity: sha512-9Xq8lLNRHFDqvYPXPgaiKkZ4rtdsm7izwM/cUsFDc5IMnG0QYIVBXQbgwhz2UvjUotbJrvfKLJaCfA3NGBnLDg==} engines: {node: '>=10.16'} @@ -10823,12 +10940,83 @@ packages: ramda: 0.27.2 dev: false - /@pnpm/lockfile.types@1.0.3: - resolution: {integrity: sha512-A7vUWktnhDkrIs+WmXm7AdffJVyVYJpQUEouya/DYhB+Y+tQ3BXjZ6CV0KybqLgI/8AZErgCJqFxA0GJH6QDjA==} + /@pnpm/lockfile-file@8.1.8(@pnpm/logger@5.0.0): + resolution: {integrity: sha512-bRadYzGFyFtwiynwp4Mkn7NDNHkgKvJ9xtjsCT5XiE6S8wpzS3W8yx2WzHGk9Mm1J/2wM0F52+NzCWhlz5eIqA==} + engines: {node: '>=16.14'} + peerDependencies: + '@pnpm/logger': ^5.0.0 + 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/logger': 5.0.0 + '@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: /@zkochan/js-yaml@0.0.6 + normalize-path: 3.0.0 + ramda: /@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 + dev: false + + /@pnpm/lockfile-types@5.1.5: + resolution: {integrity: sha512-02FP0HynzX+2DcuPtuMy7PH+kLIC0pevAydAOK+zug2bwdlSLErlvSkc+4+3dw60eRWgUXUqyfO2eR/Ansdbng==} + engines: {node: '>=16.14'} + dependencies: + '@pnpm/types': 9.4.2 + dev: false + + /@pnpm/lockfile.fs@1001.1.25(@pnpm/logger@1001.0.1): + resolution: {integrity: sha512-5Lw2otNQkcKvDIjxgnY3A5VsFiKSaaNCz8lUqIzWCDayrEHU/Rj/QlpWNfjCtwDmvP+t7aY+huNEm5Slo+lf3A==} + engines: {node: '>=18.12'} + peerDependencies: + '@pnpm/logger': '>=1001.0.0 <1002.0.0' + dependencies: + '@pnpm/constants': 1001.3.1 + '@pnpm/dependency-path': 1001.1.6 + '@pnpm/error': 1000.0.5 + '@pnpm/git-utils': 1000.0.0 + '@pnpm/lockfile.merger': 1001.0.15 + '@pnpm/lockfile.types': 1002.0.5 + '@pnpm/lockfile.utils': 1003.0.7 + '@pnpm/logger': 1001.0.1 + '@pnpm/object.key-sorting': 1000.0.1 + '@pnpm/types': 1001.0.1 + '@zkochan/rimraf': 3.0.2 + comver-to-semver: 1.0.0 + js-yaml: /@zkochan/js-yaml@0.0.9 + normalize-path: 3.0.0 + ramda: /@pnpm/ramda@0.28.1 + semver: 7.7.2 + strip-bom: 4.0.0 + write-file-atomic: 5.0.1 + dev: false + + /@pnpm/lockfile.merger@1001.0.15: + resolution: {integrity: sha512-A+Ow2xSDdgn29xJxRkoWGV0ZqlWg9QKcIeLRVvMSwYjfN9scDXeyBxmtMSAAjlByj8T5NpyNjMA9JLr34g/2Ug==} engines: {node: '>=18.12'} dependencies: - '@pnpm/patching.types': 1.0.0 - '@pnpm/types': 12.2.0 + '@pnpm/lockfile.types': 1002.0.5 + '@pnpm/types': 1001.0.1 + comver-to-semver: 1.0.0 + ramda: /@pnpm/ramda@0.28.1 + semver: 7.7.2 + dev: false + + /@pnpm/lockfile.types@1001.1.0: + resolution: {integrity: sha512-/rfDUV8M9iMm0QXahHPv6SD6eKNkrMXlhECJVhDkdL4NIifcv6/HZwYtxd0PIndExz04+OE+iV9K8zKG9i/OEA==} + engines: {node: '>=18.12'} + dependencies: + '@pnpm/patching.types': 1000.1.0 + '@pnpm/types': 1000.7.0 + dev: false /@pnpm/lockfile.types@1002.0.1: resolution: {integrity: sha512-anzBtzb78rf2KRExS8R38v4nyiU7b9ZMUsyzRdWpo+rfCmLUupjIxvasVlDgsf5pV7tbcBPASOamQ2G5V8IGAQ==} @@ -10839,13 +11027,68 @@ packages: '@pnpm/types': 1000.8.0 dev: true - /@pnpm/logger@4.0.0: - resolution: {integrity: sha512-SIShw+k556e7S7tLZFVSIHjCdiVog1qWzcKW2RbLEHPItdisAFVNIe34kYd9fMSswTlSRLS/qRjw3ZblzWmJ9Q==} + /@pnpm/lockfile.types@1002.0.5: + resolution: {integrity: sha512-QjXamght8X77XTiiM1XjWukgumFfprRCYD8Uzx1H+2syBcjN88bwFWh9YjqFI+0pbSlHPDwDvBqPN29gma/6kQ==} + engines: {node: '>=18.12'} + dependencies: + '@pnpm/patching.types': 1000.1.0 + '@pnpm/resolver-base': 1005.3.1 + '@pnpm/types': 1001.0.1 + dev: false + + /@pnpm/lockfile.types@900.0.0: + resolution: {integrity: sha512-/4+3CAu4uIjx0ln1DYXNdj0qKJ3wyRDY+RS+eFzV6OHjreaTKWsF2WcjigYp1M5mxL4kj2RsRGgBGEyKtCfEWg==} + engines: {node: '>=18.12'} + dependencies: + '@pnpm/patching.types': 900.0.0 + '@pnpm/types': 900.0.0 + + /@pnpm/lockfile.utils@1003.0.7: + resolution: {integrity: sha512-jqhMqCPZQDKZRMykxJAXYW4WLOLVgOjTM3FinLi8Bu/VliK8MW26b97dukzO61hthmj4bCRHIsnZUylEaJL6XA==} + engines: {node: '>=18.12'} + dependencies: + '@pnpm/dependency-path': 1001.1.6 + '@pnpm/lockfile.types': 1002.0.5 + '@pnpm/pick-fetcher': 1001.0.0 + '@pnpm/resolver-base': 1005.3.1 + '@pnpm/types': 1001.0.1 + get-npm-tarball-url: 2.1.0 + ramda: /@pnpm/ramda@0.28.1 + dev: false + + /@pnpm/logger@1001.0.1: + resolution: {integrity: sha512-gdwlAMXC4Wc0s7Dmg/4wNybMEd/4lSd9LsXQxeg/piWY0PPXjgz1IXJWnVScx6dZRaaodWP3c1ornrw8mZdFZw==} + engines: {node: '>=18.12'} + dependencies: + bole: 5.0.23 + split2: 4.2.0 + dev: false + + /@pnpm/logger@5.0.0: + resolution: {integrity: sha512-YfcB2QrX+Wx1o6LD1G2Y2fhDhOix/bAY/oAnMpHoNLsKkWIRbt1oKLkIFvxBMzLwAEPqnYWguJrYC+J6i4ywbw==} engines: {node: '>=12.17'} dependencies: - bole: 4.0.1 + bole: 5.0.23 ndjson: 2.0.0 - dev: true + dev: false + + /@pnpm/merge-lockfile-changes@5.0.7: + resolution: {integrity: sha512-fYmX1+EHv3wg7l4A9FCEkjgEBIHaY6JosknkLk3pL8dbB9k6unjIrF9f2onNtpj3XUlWxZ3aBw9THk/Bf6hKow==} + engines: {node: '>=16.14'} + dependencies: + '@pnpm/lockfile-types': 5.1.5 + comver-to-semver: 1.0.0 + ramda: /@pnpm/ramda@0.28.1 + semver: 7.5.4 + dev: false + + /@pnpm/object.key-sorting@1000.0.1: + resolution: {integrity: sha512-YTJCXyUGOrJuj4QqhSKqZa1vlVAm82h1/uw00ZmD/kL2OViggtyUwWyIe62kpwWVPwEYixfGjfvaFKVJy2mjzA==} + engines: {node: '>=18.12'} + dependencies: + '@pnpm/util.lex-comparator': 3.0.2 + sort-keys: 4.2.0 + dev: false /@pnpm/package-bins@4.1.0: resolution: {integrity: sha512-57/ioGYLBbVRR80Ux9/q2i3y8Q+uQADc3c+Yse8jr/60YLOi3jcWz13e2Jy+ANYtZI258Qc5wk2X077rp0Ly/Q==} @@ -10856,14 +11099,22 @@ packages: is-subdir: 1.2.0 dev: false - /@pnpm/patching.types@1.0.0: - resolution: {integrity: sha512-juCdQCC1USqLcOhVPl1tYReoTO9YH4fTullMnFXXcmpsDM7Dkn3tzuOQKC3oPoJ2ozv+0EeWWMtMGqn2+IM3pQ==} - engines: {node: '>=18.12'} - /@pnpm/patching.types@1000.1.0: resolution: {integrity: sha512-Zib2ysLctRnWM4KXXlljR44qSKwyEqYmLk+8VPBDBEK3l5Gp5mT3N4ix9E4qjYynvFqahumsxzOfxOYQhUGMGw==} engines: {node: '>=18.12'} - dev: true + + /@pnpm/patching.types@900.0.0: + resolution: {integrity: sha512-A/3kgRD4Xy2tBMPjOBdx5ZdgmpUobphzWkqDB72S5SIB6gdyCg32AUV0/aO12DwMxpT7kyqMhkkynUOPBfdlUQ==} + engines: {node: '>=18.12'} + + /@pnpm/pick-fetcher@1001.0.0: + resolution: {integrity: sha512-Zl8npMjFSS1gSGM27KkbmfmeOuwU2MCxRFIofAUo/PkqOE2IzzXr0yzB1XYJM8Ml1nUXt9BHfwAlUQKC5MdBLA==} + engines: {node: '>=18.12'} + dev: false + + /@pnpm/ramda@0.28.1: + resolution: {integrity: sha512-zcAG+lvU0fMziNeGXpPyCyCJYp5ZVrPElEE4t14jAmViaihohocZ+dDkcRIyAomox8pQsuZnv1EyHR+pOhmUWw==} + dev: false /@pnpm/read-modules-dir@2.0.3: resolution: {integrity: sha512-i9OgRvSlxrTS9a2oXokhDxvQzDtfqtsooJ9jaGoHkznue5aFCTSrNZFQ6M18o8hC03QWfnxaKi0BtOvNkKu2+A==} @@ -10907,19 +11158,37 @@ packages: '@pnpm/types': 1000.8.0 dev: true + /@pnpm/resolver-base@1005.3.1: + resolution: {integrity: sha512-d/l84T+J26xVfl28HbfTNaZcpbzr+VH3CFI2RLFWxI8Y34pIphKbD18Zke6dQmv+g7JenT6FmE8YSRIfwAEjaw==} + engines: {node: '>=18.12'} + dependencies: + '@pnpm/types': 1001.0.1 + dev: false + /@pnpm/types@1000.6.0: resolution: {integrity: sha512-6PsMNe98VKPGcg6LnXSW/LE3YfJ77nj+bPKiRjYRWAQLZ+xXjEQRaR0dAuyjCmchlv4wR/hpnMVRS21/fCod5w==} engines: {node: '>=18.12'} dev: false + /@pnpm/types@1000.7.0: + resolution: {integrity: sha512-1s7FvDqmOEIeFGLUj/VO8sF5lGFxeE/1WALrBpfZhDnMXY/x8FbmuygTTE5joWifebcZ8Ww8Kw2CgBoStsIevQ==} + engines: {node: '>=18.12'} + dev: false + /@pnpm/types@1000.8.0: resolution: {integrity: sha512-yx86CGHHquWAI0GgKIuV/RnYewcf5fVFZemC45C/K2cX0uV8GB8TUP541ZrokWola2fZx5sn1vL7xzbceRZfoQ==} engines: {node: '>=18.12'} dev: true + /@pnpm/types@1001.0.1: + resolution: {integrity: sha512-v5X09E6LkJFOOw9FgGITpAs7nQJtx6u3N0SNtyIC5mSeIC5SebMrrelpCz6QUTJvyXBEa1AWj2dZhYfLj59xhA==} + engines: {node: '>=18.12'} + dev: false + /@pnpm/types@12.2.0: resolution: {integrity: sha512-5RtwWhX39j89/Tmyv2QSlpiNjErA357T/8r1Dkg+2lD3P7RuS7Xi2tChvmOC3VlezEFNcWnEGCOeKoGRkDuqFA==} engines: {node: '>=18.12'} + dev: false /@pnpm/types@6.4.0: resolution: {integrity: sha512-nco4+4sZqNHn60Y4VE/fbtlShCBqipyUO+nKRPvDHqLrecMW9pzHWMVRxk4nrMRoeowj3q0rX3GYRBa8lsHTAg==} @@ -10936,6 +11205,20 @@ packages: engines: {node: '>=16.14'} dev: false + /@pnpm/types@900.0.0: + resolution: {integrity: sha512-GucC9h/EVbU03Kl7M/FqVes1s5RCQaGCW2f41lFA7VqqHWQElR6k1q33iF6f6fXDUSCdzB1IUxSq9ghP2J+8Pw==} + engines: {node: '>=18.12'} + + /@pnpm/util.lex-comparator@1.0.0: + resolution: {integrity: sha512-3aBQPHntVgk5AweBWZn+1I/fqZ9krK/w01197aYVkAJQGftb+BVWgEepxY5GChjSW12j52XX+CmfynYZ/p0DFQ==} + engines: {node: '>=12.22.0'} + dev: false + + /@pnpm/util.lex-comparator@3.0.2: + resolution: {integrity: sha512-blFO4Ws97tWv/SNE6N39ZdGmZBrocXnBOfVp0ln4kELmns4pGPZizqyRtR8EjfOLMLstbmNCTReBoDvLz1isVg==} + engines: {node: '>=18.12'} + dev: false + /@pnpm/write-project-manifest@1.1.7: resolution: {integrity: sha512-OLkDZSqkA1mkoPNPvLFXyI6fb0enCuFji6Zfditi/CLAo9kmIhQFmEUDu4krSB8i908EljG8YwL5Xjxzm5wsWA==} engines: {node: '>=10.16'} @@ -15832,6 +16115,40 @@ packages: is-windows: 1.0.2 dev: false + /@zkochan/js-yaml@0.0.6: + resolution: {integrity: sha512-nzvgl3VfhcELQ8LyVrYOru+UtAy1nrygk2+AGbTm8a5YcO6o8lSjAT+pfg3vJWxIoZKOUhrK6UU7xW/+00kQrg==} + hasBin: true + dependencies: + argparse: 2.0.1 + dev: false + + /@zkochan/js-yaml@0.0.9: + resolution: {integrity: sha512-SsdK25Upg5wLeGK2Wm8y5bDloMMxN/qE5H6aNOiPRh07a9/fQPYVhlLZz2zRFg9il9XOlpFdrnQnPKsU7FJIpQ==} + hasBin: true + dependencies: + argparse: 2.0.1 + dev: false + + /@zkochan/rimraf@2.1.3: + resolution: {integrity: sha512-mCfR3gylCzPC+iqdxEA6z5SxJeOgzgbwmyxanKriIne5qZLswDe/M43aD3p5MNzwzXRhbZg/OX+MpES6Zk1a6A==} + engines: {node: '>=12.10'} + dependencies: + rimraf: 3.0.2 + dev: false + + /@zkochan/rimraf@3.0.2: + resolution: {integrity: sha512-GBf4ua7ogWTr7fATnzk/JLowZDBnBJMm8RkMaC/KcvxZ9gxbMWix0/jImd815LmqKyIHZ7h7lADRddGMdGBuCA==} + engines: {node: '>=18.12'} + dev: false + + /@zkochan/which@2.0.3: + resolution: {integrity: sha512-C1ReN7vt2/2O0fyTsx5xnbQuxBrmG5NMSbcIkPKCCfCTJgpZBsuRYzFXHj3nVq8vTfK7vxHUmzfCpSHgO7j4rg==} + engines: {node: '>= 8'} + hasBin: true + dependencies: + isexe: 2.0.0 + dev: false + /abab@2.0.6: resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==} deprecated: Use your platform's native atob() and btoa() methods instead @@ -17016,12 +17333,12 @@ packages: - supports-color dev: false - /bole@4.0.1: - resolution: {integrity: sha512-42r0aSOJFJti2l6LasBHq2BuWJzohGs349olQnH/ETlJo87XnoWw7UT8pGE6UstjxzOKkwz7tjoFcmSr6L16vg==} + /bole@5.0.23: + resolution: {integrity: sha512-xpiwhM4hEpfpasv+CIVUJJB/GisrqcysIBwBJ6rU069rUMXfy0DZKYJ1M1IS1fZ6yb65CPKBWzMs72Pop+Cgfg==} dependencies: fast-safe-stringify: 2.1.1 individual: 3.0.0 - dev: true + dev: false /bonjour-service@1.2.1: resolution: {integrity: sha512-oSzCS2zV14bh2kji6vNe7vrpJYCHGvcZnlffFQ1MEoX/WOeQ/teD8SYWKR942OI3INjq8OMNJlbPK5LLLUxFDw==} @@ -17932,6 +18249,11 @@ packages: resolution: {integrity: sha512-UCB0ioiyj8CRjtrvaceBLqqhZCVP+1B8+NWQhmdsm0VXOJtobBCf1dBQmebCCo34qZmUwZfIH2MZLqNHazrfjg==} dev: true + /comver-to-semver@1.0.0: + resolution: {integrity: sha512-gcGtbRxjwROQOdXLUWH1fQAXqThUVRZ219aAwgtX3KfYw429/Zv6EIJRf5TBSzWdAGwePmqH7w70WTaX4MDqag==} + engines: {node: '>=12.17'} + dev: false + /concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} @@ -20918,6 +21240,7 @@ packages: /fast-safe-stringify@2.1.1: resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==} + dev: false /fast-xml-parser@4.2.5: resolution: {integrity: sha512-B9/wizE4WngqQftFPmdaMYlXoJlJOYxGQOanC77fq9k8+Z0v5dDSVh+3glErdIROP//s/jgb7ZuxKfB8nVyo0g==} @@ -21565,6 +21888,11 @@ packages: hasown: 2.0.2 math-intrinsics: 1.1.0 + /get-npm-tarball-url@2.1.0: + resolution: {integrity: sha512-ro+DiMu5DXgRBabqXupW38h7WPZ9+Ad8UjwhvsmmN8w1sU7ab0nzAXvVZ4kqYg57OrqomRtJvepX5/xvFKNtjA==} + engines: {node: '>=12.17'} + dev: false + /get-package-type@0.1.0: resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} engines: {node: '>=8.0.0'} @@ -22461,7 +22789,7 @@ packages: /individual@3.0.0: resolution: {integrity: sha512-rUY5vtT748NMRbEMrTNiFfy29BgGZwGXUi2NFUVMWQrogSLzlJvQV9eeMWi+g1aVaQ53tpyLAQtd5x/JH0Nh1g==} - dev: true + dev: false /infer-owner@1.0.4: resolution: {integrity: sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==} @@ -24029,7 +24357,7 @@ packages: /json-stringify-safe@5.0.1: resolution: {integrity: sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==} - dev: true + dev: false /json5@1.0.2: resolution: {integrity: sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==} @@ -25098,7 +25426,7 @@ packages: readable-stream: 3.6.2 split2: 3.2.2 through2: 4.0.2 - dev: true + dev: false /negotiator@0.6.3: resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} @@ -25850,6 +26178,10 @@ packages: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} + /path-name@1.0.0: + resolution: {integrity: sha512-/dcAb5vMXH0f51yvMuSUqFpxUcA8JelbRmE5mW/p4CUJxrNgK24IkstnV7ENtg2IDGBOu6izKTG6eilbnbNKWQ==} + dev: false + /path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} @@ -25987,11 +26319,14 @@ packages: - typescript dev: true - /pnpm-sync-lib@0.3.2: - resolution: {integrity: sha512-XlHyNAHlBqIMGTBD0HfgyRyj1UpSJvVyP20ihPek00YKmMb7RJ16AxlQkjT1jQ/D6s6OAT0ety/tSxcJTrvQ4w==} + /pnpm-sync-lib@0.3.3: + resolution: {integrity: sha512-iE0xtJIm7cljColV3CAfi05FfRWHeJFwKcxsJfwo+dkFo9kg9QgGKHlF5qlF2o2uArOz6z0P4bA/t4pX2Z2jYg==} dependencies: - '@pnpm/dependency-path-2': /@pnpm/dependency-path@2.1.8 - '@pnpm/dependency-path-5': /@pnpm/dependency-path@5.1.7 + '@pnpm/dependency-path-pnpm-v10': /@pnpm/dependency-path@1000.0.9 + '@pnpm/dependency-path-pnpm-v8': /@pnpm/dependency-path@2.1.8 + '@pnpm/dependency-path-pnpm-v9': /@pnpm/dependency-path@5.1.7 + '@pnpm/lockfile-types-pnpm-lock-v6': /@pnpm/lockfile-types@5.1.5 + '@pnpm/lockfile.types-pnpm-lock-v9': /@pnpm/lockfile.types@1001.1.0 yaml: 2.4.1 dev: false @@ -27686,6 +28021,15 @@ packages: /safe-buffer@5.2.1: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + /safe-execa@0.1.2: + resolution: {integrity: sha512-vdTshSQ2JsRCgT8eKZWNJIL26C6bVqy1SOmuCMlKHegVeo8KYRobRrefOdUq9OozSPUUiSxrylteeRmLOMFfWg==} + engines: {node: '>=12'} + dependencies: + '@zkochan/which': 2.0.3 + execa: 5.1.1 + path-name: 1.0.0 + dev: false + /safe-push-apply@1.0.0: resolution: {integrity: sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==} engines: {node: '>= 0.4'} @@ -28677,7 +29021,12 @@ packages: resolution: {integrity: sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==} dependencies: readable-stream: 3.6.2 - dev: true + dev: false + + /split2@4.2.0: + resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} + engines: {node: '>= 10.x'} + dev: false /sprintf-js@1.0.3: resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==} @@ -29404,7 +29753,7 @@ packages: resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==} dependencies: readable-stream: 3.6.2 - dev: true + dev: false /through@2.3.8: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} @@ -31075,6 +31424,14 @@ packages: imurmurhash: 0.1.4 signal-exit: 3.0.7 + /write-file-atomic@5.0.1: + resolution: {integrity: sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + dependencies: + imurmurhash: 0.1.4 + signal-exit: 4.1.0 + dev: false + /write-yaml-file@4.2.0: resolution: {integrity: sha512-LwyucHy0uhWqbrOkh9cBluZBeNVxzHjDaE9mwepZG3n3ZlbM4v3ndrFw51zW/NXYFFqP+QWZ72ihtLWTh05e4Q==} engines: {node: '>=10.13'} diff --git a/common/config/subspaces/default/repo-state.json b/common/config/subspaces/default/repo-state.json index 326258cef63..85affab2e44 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": "2cea0820e7419dedeb25d8b4e0be68eadb75ba49", + "pnpmShrinkwrapHash": "f7f2c4a3bf11c8dfc95e208769cf84d76a2dae7f", "preferredVersionsHash": "a9b67c38568259823f9cfb8270b31bf6d8470b27" } diff --git a/common/reviews/api/rush-pnpm-kit-v10.api.md b/common/reviews/api/rush-pnpm-kit-v10.api.md new file mode 100644 index 00000000000..8a6d0f4c60e --- /dev/null +++ b/common/reviews/api/rush-pnpm-kit-v10.api.md @@ -0,0 +1,39 @@ +## API Report File for "@rushstack/rush-pnpm-kit-v10" + +> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). + +```ts + +import type { DependencyPath } from '@pnpm/dependency-path-pnpm-v10'; +import { depPathToFilename } from '@pnpm/dependency-path-pnpm-v10'; +import { indexOfPeersSuffix } from '@pnpm/dependency-path-pnpm-v10'; +import type { LogBase } from '@pnpm/logger'; +import { parse } from '@pnpm/dependency-path-pnpm-v10'; +import { readWantedLockfile } from '@pnpm/lockfile.fs-pnpm-lock-v9'; +import { removeSuffix } from '@pnpm/dependency-path-pnpm-v10'; + +declare namespace dependencyPath { + export { + depPathToFilename, + indexOfPeersSuffix, + parse, + removeSuffix, + DependencyPath + } +} + +declare namespace lockfileFs { + export { + readWantedLockfile + } +} + +declare namespace logger { + export { + LogBase + } +} + +// (No @packageDocumentation comment for this package) + +``` diff --git a/common/reviews/api/rush-pnpm-kit-v8.api.md b/common/reviews/api/rush-pnpm-kit-v8.api.md new file mode 100644 index 00000000000..e6d5e5bdd27 --- /dev/null +++ b/common/reviews/api/rush-pnpm-kit-v8.api.md @@ -0,0 +1,35 @@ +## API Report File for "@rushstack/rush-pnpm-kit-v8" + +> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). + +```ts + +import { depPathToFilename } from '@pnpm/dependency-path-pnpm-v8'; +import { indexOfPeersSuffix } from '@pnpm/dependency-path-pnpm-v8'; +import type { LogBase } from '@pnpm/logger'; +import { parse } from '@pnpm/dependency-path-pnpm-v8'; +import { readWantedLockfile } from '@pnpm/lockfile-file-pnpm-lock-v6'; + +declare namespace dependencyPath { + export { + depPathToFilename, + indexOfPeersSuffix, + parse + } +} + +declare namespace lockfileFs { + export { + readWantedLockfile + } +} + +declare namespace logger { + export { + LogBase + } +} + +// (No @packageDocumentation comment for this package) + +``` diff --git a/common/reviews/api/rush-pnpm-kit-v9.api.md b/common/reviews/api/rush-pnpm-kit-v9.api.md new file mode 100644 index 00000000000..c94a618c571 --- /dev/null +++ b/common/reviews/api/rush-pnpm-kit-v9.api.md @@ -0,0 +1,39 @@ +## API Report File for "@rushstack/rush-pnpm-kit-v9" + +> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/). + +```ts + +import type { DependencyPath } from '@pnpm/dependency-path-pnpm-v9'; +import { depPathToFilename } from '@pnpm/dependency-path-pnpm-v9'; +import { indexOfPeersSuffix } from '@pnpm/dependency-path-pnpm-v9'; +import type { LogBase } from '@pnpm/logger'; +import { parse } from '@pnpm/dependency-path-pnpm-v9'; +import { readWantedLockfile } from '@pnpm/lockfile.fs-pnpm-lock-v9'; +import { removeSuffix } from '@pnpm/dependency-path-pnpm-v9'; + +declare namespace dependencyPath { + export { + depPathToFilename, + indexOfPeersSuffix, + parse, + removeSuffix, + DependencyPath + } +} + +declare namespace lockfileFs { + export { + readWantedLockfile + } +} + +declare namespace logger { + export { + LogBase + } +} + +// (No @packageDocumentation comment for this package) + +``` diff --git a/libraries/rush-lib/package.json b/libraries/rush-lib/package.json index fff5e0790fc..937469e8799 100644 --- a/libraries/rush-lib/package.json +++ b/libraries/rush-lib/package.json @@ -29,9 +29,6 @@ }, "license": "MIT", "dependencies": { - "@pnpm/dependency-path-lockfile-pre-v9": "npm:@pnpm/dependency-path@~2.1.2", - "@pnpm/dependency-path-lockfile-pre-v10": "npm:@pnpm/dependency-path@~5.1.7", - "@pnpm/dependency-path": "~1000.0.9", "@pnpm/link-bins": "~5.3.7", "@rushstack/credential-cache": "workspace:*", "@rushstack/heft-config-file": "workspace:*", @@ -41,6 +38,9 @@ "@rushstack/package-deps-hash": "workspace:*", "@rushstack/package-extractor": "workspace:*", "@rushstack/rig-package": "workspace:*", + "@rushstack/rush-pnpm-kit-v10": "workspace:*", + "@rushstack/rush-pnpm-kit-v8": "workspace:*", + "@rushstack/rush-pnpm-kit-v9": "workspace:*", "@rushstack/stream-collator": "workspace:*", "@rushstack/terminal": "workspace:*", "@rushstack/ts-command-line": "workspace:*", @@ -59,7 +59,7 @@ "js-yaml": "~4.1.0", "npm-package-arg": "~6.1.0", "object-hash": "3.0.0", - "pnpm-sync-lib": "0.3.2", + "pnpm-sync-lib": "0.3.3", "read-package-tree": "~5.1.5", "rxjs": "~6.6.7", "semver": "~7.5.4", @@ -70,8 +70,7 @@ "true-case-path": "~2.2.1" }, "devDependencies": { - "@pnpm/lockfile.types": "~1.0.3", - "@pnpm/logger": "4.0.0", + "@pnpm/lockfile.types-900": "npm:@pnpm/lockfile.types@~900.0.0", "@rushstack/heft-webpack5-plugin": "workspace:*", "@rushstack/heft": "workspace:*", "@rushstack/operation-graph": "workspace:*", diff --git a/libraries/rush-lib/src/logic/base/BaseInstallManager.ts b/libraries/rush-lib/src/logic/base/BaseInstallManager.ts index ef0e1466ae0..bf85934df57 100644 --- a/libraries/rush-lib/src/logic/base/BaseInstallManager.ts +++ b/libraries/rush-lib/src/logic/base/BaseInstallManager.ts @@ -10,7 +10,6 @@ import { readFile, unlink } from 'node:fs/promises'; import * as semver from 'semver'; import { type ILockfile, - type ILockfilePackage, type ILogMessageCallbackOptions, pnpmSyncGetJsonVersion, pnpmSyncPrepareAsync @@ -59,7 +58,6 @@ import { SubspacePnpmfileConfiguration } from '../pnpm/SubspacePnpmfileConfigura import type { Subspace } from '../../api/Subspace'; import { ProjectImpactGraphGenerator } from '../ProjectImpactGraphGenerator'; import { FlagFile } from '../../api/FlagFile'; -import { PnpmShrinkwrapFile } from '../pnpm/PnpmShrinkwrapFile'; import { PnpmSyncUtilities } from '../../utilities/PnpmSyncUtilities'; import { HotlinkManager } from '../../utilities/HotlinkManager'; @@ -311,35 +309,34 @@ export abstract class BaseInstallManager { lockfileId: subspace.subspaceName, ensureFolderAsync: FileSystem.ensureFolderAsync.bind(FileSystem), // eslint-disable-next-line @typescript-eslint/naming-convention - readPnpmLockfile: async (lockfilePath: string) => { - const wantedPnpmLockfile: PnpmShrinkwrapFile | undefined = PnpmShrinkwrapFile.loadFromFile( - lockfilePath, - { withCaching: true } + readPnpmLockfile: async (lockfilePath: string, options): Promise => { + const pnpmLockFolder: string = path.dirname(lockfilePath); + + // TODO: Rework this to pre-parse out the version first, then load + // the relevant `@rushstack/rush-pnpm-kit-*` package. + const { lockfileFs: lockfileFsV9 } = await import('@rushstack/rush-pnpm-kit-v9'); + const lockfileV9: ILockfile | null = (await lockfileFsV9.readWantedLockfile( + pnpmLockFolder, + options + // TODO: pnpm-sync-lib.d.ts was at some point generalized to support multiple lockfile formats, + // however its API still returns a single "ILockfile" that is incompatible with the newer interfaces + )) as ILockfile | null; + + if (lockfileV9?.lockfileVersion.toString().startsWith('9')) { + return lockfileV9; + } + + const { lockfileFs: lockfileFsV6 } = await import('@rushstack/rush-pnpm-kit-v8'); + const lockfileV6: ILockfile | null = await lockfileFsV6.readWantedLockfile( + pnpmLockFolder, + options ); - if (!wantedPnpmLockfile) { - return undefined; - } else { - const lockfilePackages: Record = Object.create(null); - for (const versionPath of wantedPnpmLockfile.packages.keys()) { - lockfilePackages[versionPath] = { - dependencies: wantedPnpmLockfile.packages.get(versionPath)?.dependencies as Record< - string, - string - >, - optionalDependencies: wantedPnpmLockfile.packages.get(versionPath) - ?.optionalDependencies as Record - }; - } - - const result: ILockfile = { - lockfileVersion: wantedPnpmLockfile.shrinkwrapFileMajorVersion, - importers: Object.fromEntries(wantedPnpmLockfile.importers.entries()), - packages: lockfilePackages - }; - - return result; + if (lockfileV6?.lockfileVersion.toString().startsWith('6')) { + return lockfileV6; } + + return undefined; }, logMessageCallback: (logMessageOptions: ILogMessageCallbackOptions) => PnpmSyncUtilities.processLogMessage(logMessageOptions, this._terminal) diff --git a/libraries/rush-lib/src/logic/pnpm/IPnpmfile.ts b/libraries/rush-lib/src/logic/pnpm/IPnpmfile.ts index 0e8620f318c..50e9ddadd25 100644 --- a/libraries/rush-lib/src/logic/pnpm/IPnpmfile.ts +++ b/libraries/rush-lib/src/logic/pnpm/IPnpmfile.ts @@ -1,8 +1,7 @@ // Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. // See LICENSE in the project root for license information. -import type { LogBase } from '@pnpm/logger'; - +import type * as pnpmKitV8 from '@rushstack/rush-pnpm-kit-v8'; import type { IPackageJson } from '@rushstack/node-core-library'; import type { IPnpmShrinkwrapYaml } from './PnpmShrinkwrapFile'; @@ -53,7 +52,7 @@ export interface IPnpmfileContext { /** * The `log` parameter passed to {@link IPnpmfile.hooks.filterLog}. */ -export type IPnpmLog = LogBase & { +export type IPnpmLog = pnpmKitV8.logger.LogBase & { [key: string]: unknown; }; diff --git a/libraries/rush-lib/src/logic/pnpm/PnpmLinkManager.ts b/libraries/rush-lib/src/logic/pnpm/PnpmLinkManager.ts index 15facc8eeef..2fd3425f9a4 100644 --- a/libraries/rush-lib/src/logic/pnpm/PnpmLinkManager.ts +++ b/libraries/rush-lib/src/logic/pnpm/PnpmLinkManager.ts @@ -323,13 +323,13 @@ export class PnpmLinkManager extends BaseLinkManager { RushConstants.nodeModulesFolderName ); } else if (this._pnpmVersion.major >= 10) { - const { depPathToFilename } = await import('@pnpm/dependency-path'); + const pnpmKitV10: typeof import('@rushstack/rush-pnpm-kit-v10') = await import('@rushstack/rush-pnpm-kit-v10'); // project@file+projects+presentation-integration-tests.tgz_jsdom@11.12.0 // The second parameter is max length of virtual store dir, // for v10 default is 120 on Linux/MacOS and 60 on Windows https://pnpm.io/next/settings#virtualstoredirmaxlength // TODO Read virtual-store-dir-max-length from .npmrc - const folderName: string = depPathToFilename( + const folderName: string = pnpmKitV10.dependencyPath.depPathToFilename( tempProjectDependencyKey, process.platform === 'win32' ? 60 : 120 ); @@ -341,12 +341,12 @@ export class PnpmLinkManager extends BaseLinkManager { RushConstants.nodeModulesFolderName ); } else if (this._pnpmVersion.major >= 9) { - const { depPathToFilename } = await import('@pnpm/dependency-path-lockfile-pre-v10'); + const pnpmKitV9: typeof import('@rushstack/rush-pnpm-kit-v9') = await import('@rushstack/rush-pnpm-kit-v9'); // project@file+projects+presentation-integration-tests.tgz_jsdom@11.12.0 // The second parameter is max length of virtual store dir, for v9 default is 120 https://pnpm.io/9.x/npmrc#virtual-store-dir-max-length // TODO Read virtual-store-dir-max-length from .npmrc - const folderName: string = depPathToFilename(tempProjectDependencyKey, 120); + const folderName: string = pnpmKitV9.dependencyPath.depPathToFilename(tempProjectDependencyKey, 120); return path.join( this._rushConfiguration.commonTempFolder, RushConstants.nodeModulesFolderName, @@ -355,13 +355,13 @@ export class PnpmLinkManager extends BaseLinkManager { RushConstants.nodeModulesFolderName ); } else if (this._pnpmVersion.major >= 8) { - const { depPathToFilename } = await import('@pnpm/dependency-path-lockfile-pre-v9'); + const pnpmKitV8: typeof import('@rushstack/rush-pnpm-kit-v8') = await import('@rushstack/rush-pnpm-kit-v8'); // PNPM 8 changed the local path format again and the hashing algorithm, and // is now using the scoped '@pnpm/dependency-path' package // See https://github.com/pnpm/pnpm/releases/tag/v8.0.0 // e.g.: // file+projects+presentation-integration-tests.tgz_jsdom@11.12.0 - const folderName: string = depPathToFilename(`${tarballEntry}${folderSuffix}`); + const folderName: string = pnpmKitV8.dependencyPath.depPathToFilename(`${tarballEntry}${folderSuffix}`); return path.join( this._rushConfiguration.commonTempFolder, RushConstants.nodeModulesFolderName, diff --git a/libraries/rush-lib/src/logic/pnpm/PnpmShrinkWrapFileConverters.ts b/libraries/rush-lib/src/logic/pnpm/PnpmShrinkWrapFileConverters.ts index c2c549fb21c..356bbdeb11f 100644 --- a/libraries/rush-lib/src/logic/pnpm/PnpmShrinkWrapFileConverters.ts +++ b/libraries/rush-lib/src/logic/pnpm/PnpmShrinkWrapFileConverters.ts @@ -13,7 +13,6 @@ * 2. @pnpm/lockfile.fs only provides asynchronous read methods, while rush requires synchronous reading of the lockfile file. * Perhaps this file will be deleted in the future and instead depend on @pnpm/lockfile.fs directly. */ -import { removeSuffix } from '@pnpm/dependency-path'; import type { InlineSpecifiersProjectSnapshot, InlineSpecifiersResolvedDependencies, @@ -23,7 +22,9 @@ import type { PackageSnapshots, ProjectSnapshot, ResolvedDependencies -} from '@pnpm/lockfile.types'; +} from '@pnpm/lockfile.types-900'; + +import * as pnpmKitV9 from '@rushstack/rush-pnpm-kit-v9'; import { removeNullishProps } from '../../utilities/objectUtilities'; @@ -107,7 +108,7 @@ export function convertLockfileV9ToLockfileObject(lockfile: LockfileFileV9): Loc const packages: PackageSnapshots = {}; for (const [depPath, pkg] of Object.entries(lockfile.snapshots ?? {})) { - const pkgId: string = removeSuffix(depPath); + const pkgId: string = pnpmKitV9.dependencyPath.removeSuffix(depPath); packages[depPath as DepPath] = Object.assign(pkg, lockfile.packages?.[pkgId]); } return { diff --git a/libraries/rush-lib/src/logic/pnpm/PnpmShrinkwrapFile.ts b/libraries/rush-lib/src/logic/pnpm/PnpmShrinkwrapFile.ts index 6da650f35d5..8ec9a700d18 100644 --- a/libraries/rush-lib/src/logic/pnpm/PnpmShrinkwrapFile.ts +++ b/libraries/rush-lib/src/logic/pnpm/PnpmShrinkwrapFile.ts @@ -5,8 +5,6 @@ import * as path from 'node:path'; import crypto from 'node:crypto'; import * as semver from 'semver'; -import * as dependencyPathLockfilePreV9 from '@pnpm/dependency-path-lockfile-pre-v9'; -import * as dependencyPath from '@pnpm/dependency-path'; import type { ProjectId, Lockfile, @@ -14,7 +12,7 @@ import type { ProjectSnapshot, LockfileFileV9, ResolvedDependencies -} from '@pnpm/lockfile.types'; +} from '@pnpm/lockfile.types-900'; import { FileSystem, @@ -46,6 +44,14 @@ import { CustomTipId, type CustomTipsConfiguration } from '../../api/CustomTipsC import { convertLockfileV9ToLockfileObject } from './PnpmShrinkWrapFileConverters'; const yamlModule: typeof import('js-yaml') = Import.lazy('js-yaml', require); +const pnpmKitV8: typeof import('@rushstack/rush-pnpm-kit-v8') = Import.lazy( + '@rushstack/rush-pnpm-kit-v8', + require +); +const pnpmKitV9: typeof import('@rushstack/rush-pnpm-kit-v9') = Import.lazy( + '@rushstack/rush-pnpm-kit-v9', + require +); export enum ShrinkwrapFileMajorVersion { V6 = 6, @@ -145,7 +151,7 @@ export function parsePnpm9DependencyKey( return undefined; } - const { peersIndex } = dependencyPath.indexOfPeersSuffix(dependencyKey); + const { peersIndex } = pnpmKitV9.dependencyPath.indexOfPeersSuffix(dependencyKey); if (peersIndex !== -1) { // Remove peer suffix const key: string = dependencyKey.slice(0, peersIndex); @@ -161,7 +167,8 @@ export function parsePnpm9DependencyKey( // Example: https://github.com/jonschlinkert/pad-left/tarball/2.1.0 -> name=undefined version=undefined // Example: pad-left@https://github.com/jonschlinkert/pad-left/tarball/2.1.0 -> name=pad-left nonSemverVersion=https://xxxx // Example: pad-left@https://codeload.github.com/jonschlinkert/pad-left/tar.gz/7798d648225aa5 -> name=pad-left nonSemverVersion=https://xxxx - const dependency: dependencyPath.DependencyPath = dependencyPath.parse(dependencyKey); + const dependency: import('@rushstack/rush-pnpm-kit-v9').dependencyPath.DependencyPath = + pnpmKitV9.dependencyPath.parse(dependencyKey); const name: string = dependency.name ?? dependencyName; const version: string = dependency.version ?? dependency.nonSemverVersion ?? dependencyKey; @@ -368,7 +375,7 @@ export class PnpmShrinkwrapFile extends BaseShrinkwrapFile { return /@file:/.test(version) ? version : `${name}@${version}`; } - return dependencyPath.removeSuffix(version).includes('@', 1) ? version : `${name}@${version}`; + return pnpmKitV9.dependencyPath.removeSuffix(version).includes('@', 1) ? version : `${name}@${version}`; } /** @@ -568,7 +575,7 @@ export class PnpmShrinkwrapFile extends BaseShrinkwrapFile { private _convertLockfileV6DepPathToV5DepPath(newDepPath: string): string { if (!newDepPath.includes('@', 2) || newDepPath.startsWith('file:')) return newDepPath; const index: number = newDepPath.indexOf('@', newDepPath.indexOf('/@') + 2); - if (newDepPath.includes('(') && index > dependencyPathLockfilePreV9.indexOfPeersSuffix(newDepPath)) + if (newDepPath.includes('(') && index > pnpmKitV8.dependencyPath.indexOfPeersSuffix(newDepPath)) return newDepPath; return `${newDepPath.substring(0, index)}/${newDepPath.substring(index + 1)}`; } @@ -583,8 +590,8 @@ export class PnpmShrinkwrapFile extends BaseShrinkwrapFile { if (this.shrinkwrapFileMajorVersion >= ShrinkwrapFileMajorVersion.V6) { depPath = this._convertLockfileV6DepPathToV5DepPath(packagePath); } - const pkgInfo: ReturnType = - dependencyPathLockfilePreV9.parse(depPath); + const pkgInfo: ReturnType = + pnpmKitV8.dependencyPath.parse(depPath); return this._getPackageId(pkgInfo.name as string, pkgInfo.version as string); } @@ -688,7 +695,7 @@ export class PnpmShrinkwrapFile extends BaseShrinkwrapFile { } if (this.shrinkwrapFileMajorVersion >= ShrinkwrapFileMajorVersion.V9) { - const { version, nonSemverVersion } = dependencyPath.parse(value); + const { version, nonSemverVersion } = pnpmKitV9.dependencyPath.parse(value); value = version ?? nonSemverVersion ?? value; } else { let underscoreOrParenthesisIndex: number = value.indexOf('_'); diff --git a/libraries/rush-lib/src/logic/pnpm/test/PnpmShrinkwrapConverters.test.ts b/libraries/rush-lib/src/logic/pnpm/test/PnpmShrinkwrapConverters.test.ts index 912bbc55b7a..045de7afede 100644 --- a/libraries/rush-lib/src/logic/pnpm/test/PnpmShrinkwrapConverters.test.ts +++ b/libraries/rush-lib/src/logic/pnpm/test/PnpmShrinkwrapConverters.test.ts @@ -1,7 +1,7 @@ // Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. // See LICENSE in the project root for license information. -import type { LockfileFileV9, PackageSnapshot, ProjectSnapshot } from '@pnpm/lockfile.types'; +import type { LockfileFileV9, PackageSnapshot, ProjectSnapshot } from '@pnpm/lockfile.types-900'; import { convertLockfileV9ToLockfileObject } from '../PnpmShrinkWrapFileConverters'; import { FileSystem } from '@rushstack/node-core-library'; import yamlModule from 'js-yaml'; diff --git a/libraries/rush-pnpm-kit-v10/LICENSE b/libraries/rush-pnpm-kit-v10/LICENSE new file mode 100644 index 00000000000..5cdb73542f0 --- /dev/null +++ b/libraries/rush-pnpm-kit-v10/LICENSE @@ -0,0 +1,24 @@ +@rushstack/rush-pnpm-kit-v10 + +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/libraries/rush-pnpm-kit-v10/README.md b/libraries/rush-pnpm-kit-v10/README.md new file mode 100644 index 00000000000..5880e3e0ae6 --- /dev/null +++ b/libraries/rush-pnpm-kit-v10/README.md @@ -0,0 +1,14 @@ +## @microsoft/rush-pnpm-kit-v10 + +This is a companion package for the Rush tool. See the +[@microsoft/rush](https://www.npmjs.com/package/@microsoft/rush) +package for details. + +## Links + +- [CHANGELOG.md]( + https://github.com/microsoft/rushstack/blob/main/libraries/rush-pnpm-kit-v10/CHANGELOG.md) - Find + out what's new in the latest version +- [API Reference](https://api.rushstack.io/pages/rush-lib/) + +Rush is part of the [Rush Stack](https://rushstack.io/) family of projects. diff --git a/libraries/rush-pnpm-kit-v10/config/api-extractor.json b/libraries/rush-pnpm-kit-v10/config/api-extractor.json new file mode 100644 index 00000000000..996e271d3dd --- /dev/null +++ b/libraries/rush-pnpm-kit-v10/config/api-extractor.json @@ -0,0 +1,19 @@ +{ + "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", + + "mainEntryPointFilePath": "/lib/index.d.ts", + + "apiReport": { + "enabled": true, + "reportFolder": "../../../common/reviews/api" + }, + + "docModel": { + "enabled": true, + "apiJsonFilePath": "../../../common/temp/api/.api.json" + }, + + "dtsRollup": { + "enabled": true + } +} diff --git a/libraries/rush-pnpm-kit-v10/config/rig.json b/libraries/rush-pnpm-kit-v10/config/rig.json new file mode 100644 index 00000000000..165ffb001f5 --- /dev/null +++ b/libraries/rush-pnpm-kit-v10/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/libraries/rush-pnpm-kit-v10/eslint.config.js b/libraries/rush-pnpm-kit-v10/eslint.config.js new file mode 100644 index 00000000000..c15e6077310 --- /dev/null +++ b/libraries/rush-pnpm-kit-v10/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/libraries/rush-pnpm-kit-v10/package.json b/libraries/rush-pnpm-kit-v10/package.json new file mode 100644 index 00000000000..a47634eb7d2 --- /dev/null +++ b/libraries/rush-pnpm-kit-v10/package.json @@ -0,0 +1,23 @@ +{ + "name": "@rushstack/rush-pnpm-kit-v10", + "version": "0.0.0", + "description": "rush pnpm kit v10", + "license": "MIT", + "main": "lib/index.js", + "typings": "dist/rush-pnpm-kit-v10.d.ts", + "scripts": { + "_phase:build": "heft run --only build -- --clean", + "_phase:test": "heft run --only test -- --clean", + "build": "heft build --clean", + "test": "heft test --clean" + }, + "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" + }, + "devDependencies": { + "@rushstack/heft": "workspace:*", + "local-node-rig": "workspace:*" + } +} diff --git a/libraries/rush-pnpm-kit-v10/src/dependencyPath.ts b/libraries/rush-pnpm-kit-v10/src/dependencyPath.ts new file mode 100644 index 00000000000..a5995ab7e3d --- /dev/null +++ b/libraries/rush-pnpm-kit-v10/src/dependencyPath.ts @@ -0,0 +1,7 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. +// See LICENSE in the project root for license information. + +import { depPathToFilename, indexOfPeersSuffix, parse, removeSuffix } from '@pnpm/dependency-path-pnpm-v10'; +import type { DependencyPath } from '@pnpm/dependency-path-pnpm-v10'; + +export { depPathToFilename, indexOfPeersSuffix, parse, removeSuffix, DependencyPath }; diff --git a/libraries/rush-pnpm-kit-v10/src/index.ts b/libraries/rush-pnpm-kit-v10/src/index.ts new file mode 100644 index 00000000000..bb8a9dcdfa9 --- /dev/null +++ b/libraries/rush-pnpm-kit-v10/src/index.ts @@ -0,0 +1,6 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. +// See LICENSE in the project root for license information. + +export * as dependencyPath from './dependencyPath'; +export * as lockfileFs from './lockfileFs'; +export * as logger from './logger'; diff --git a/libraries/rush-pnpm-kit-v10/src/lockfileFs.ts b/libraries/rush-pnpm-kit-v10/src/lockfileFs.ts new file mode 100644 index 00000000000..bfed13bf89f --- /dev/null +++ b/libraries/rush-pnpm-kit-v10/src/lockfileFs.ts @@ -0,0 +1,6 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. +// See LICENSE in the project root for license information. + +import { readWantedLockfile } from '@pnpm/lockfile.fs-pnpm-lock-v9'; + +export { readWantedLockfile }; diff --git a/libraries/rush-pnpm-kit-v10/src/logger.ts b/libraries/rush-pnpm-kit-v10/src/logger.ts new file mode 100644 index 00000000000..6d0c71dee47 --- /dev/null +++ b/libraries/rush-pnpm-kit-v10/src/logger.ts @@ -0,0 +1,6 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. +// See LICENSE in the project root for license information. + +import type { LogBase } from '@pnpm/logger'; + +export { LogBase }; diff --git a/libraries/rush-pnpm-kit-v10/tsconfig.json b/libraries/rush-pnpm-kit-v10/tsconfig.json new file mode 100644 index 00000000000..dac21d04081 --- /dev/null +++ b/libraries/rush-pnpm-kit-v10/tsconfig.json @@ -0,0 +1,3 @@ +{ + "extends": "./node_modules/local-node-rig/profiles/default/tsconfig-base.json" +} diff --git a/libraries/rush-pnpm-kit-v8/LICENSE b/libraries/rush-pnpm-kit-v8/LICENSE new file mode 100644 index 00000000000..0ea811163c2 --- /dev/null +++ b/libraries/rush-pnpm-kit-v8/LICENSE @@ -0,0 +1,24 @@ +@rushstack/rush-pnpm-kit-v8 + +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/libraries/rush-pnpm-kit-v8/README.md b/libraries/rush-pnpm-kit-v8/README.md new file mode 100644 index 00000000000..c8ecde4d611 --- /dev/null +++ b/libraries/rush-pnpm-kit-v8/README.md @@ -0,0 +1,14 @@ +## @microsoft/rush-pnpm-kit-v8 + +This is a companion package for the Rush tool. See the +[@microsoft/rush](https://www.npmjs.com/package/@microsoft/rush) +package for details. + +## Links + +- [CHANGELOG.md]( + https://github.com/microsoft/rushstack/blob/main/libraries/rush-pnpm-kit-v8/CHANGELOG.md) - Find + out what's new in the latest version +- [API Reference](https://api.rushstack.io/pages/rush-lib/) + +Rush is part of the [Rush Stack](https://rushstack.io/) family of projects. diff --git a/libraries/rush-pnpm-kit-v8/config/api-extractor.json b/libraries/rush-pnpm-kit-v8/config/api-extractor.json new file mode 100644 index 00000000000..996e271d3dd --- /dev/null +++ b/libraries/rush-pnpm-kit-v8/config/api-extractor.json @@ -0,0 +1,19 @@ +{ + "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", + + "mainEntryPointFilePath": "/lib/index.d.ts", + + "apiReport": { + "enabled": true, + "reportFolder": "../../../common/reviews/api" + }, + + "docModel": { + "enabled": true, + "apiJsonFilePath": "../../../common/temp/api/.api.json" + }, + + "dtsRollup": { + "enabled": true + } +} diff --git a/libraries/rush-pnpm-kit-v8/config/rig.json b/libraries/rush-pnpm-kit-v8/config/rig.json new file mode 100644 index 00000000000..165ffb001f5 --- /dev/null +++ b/libraries/rush-pnpm-kit-v8/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/libraries/rush-pnpm-kit-v8/eslint.config.js b/libraries/rush-pnpm-kit-v8/eslint.config.js new file mode 100644 index 00000000000..c15e6077310 --- /dev/null +++ b/libraries/rush-pnpm-kit-v8/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/libraries/rush-pnpm-kit-v8/package.json b/libraries/rush-pnpm-kit-v8/package.json new file mode 100644 index 00000000000..40239703046 --- /dev/null +++ b/libraries/rush-pnpm-kit-v8/package.json @@ -0,0 +1,23 @@ +{ + "name": "@rushstack/rush-pnpm-kit-v8", + "version": "0.0.0", + "description": "rush pnpm kit v8", + "license": "MIT", + "main": "lib/index.js", + "typings": "dist/rush-pnpm-kit-v8.d.ts", + "scripts": { + "_phase:build": "heft run --only build -- --clean", + "_phase:test": "heft run --only test -- --clean", + "build": "heft build --clean", + "test": "heft test --clean" + }, + "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" + }, + "devDependencies": { + "@rushstack/heft": "workspace:*", + "local-node-rig": "workspace:*" + } +} diff --git a/libraries/rush-pnpm-kit-v8/src/dependencyPath.ts b/libraries/rush-pnpm-kit-v8/src/dependencyPath.ts new file mode 100644 index 00000000000..f1d1f63bf6e --- /dev/null +++ b/libraries/rush-pnpm-kit-v8/src/dependencyPath.ts @@ -0,0 +1,6 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. +// See LICENSE in the project root for license information. + +import { depPathToFilename, indexOfPeersSuffix, parse } from '@pnpm/dependency-path-pnpm-v8'; + +export { depPathToFilename, indexOfPeersSuffix, parse }; diff --git a/libraries/rush-pnpm-kit-v8/src/index.ts b/libraries/rush-pnpm-kit-v8/src/index.ts new file mode 100644 index 00000000000..bb8a9dcdfa9 --- /dev/null +++ b/libraries/rush-pnpm-kit-v8/src/index.ts @@ -0,0 +1,6 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. +// See LICENSE in the project root for license information. + +export * as dependencyPath from './dependencyPath'; +export * as lockfileFs from './lockfileFs'; +export * as logger from './logger'; diff --git a/libraries/rush-pnpm-kit-v8/src/lockfileFs.ts b/libraries/rush-pnpm-kit-v8/src/lockfileFs.ts new file mode 100644 index 00000000000..53e6c97e72d --- /dev/null +++ b/libraries/rush-pnpm-kit-v8/src/lockfileFs.ts @@ -0,0 +1,6 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. +// See LICENSE in the project root for license information. + +import { readWantedLockfile } from '@pnpm/lockfile-file-pnpm-lock-v6'; + +export { readWantedLockfile }; diff --git a/libraries/rush-pnpm-kit-v8/src/logger.ts b/libraries/rush-pnpm-kit-v8/src/logger.ts new file mode 100644 index 00000000000..6d0c71dee47 --- /dev/null +++ b/libraries/rush-pnpm-kit-v8/src/logger.ts @@ -0,0 +1,6 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. +// See LICENSE in the project root for license information. + +import type { LogBase } from '@pnpm/logger'; + +export { LogBase }; diff --git a/libraries/rush-pnpm-kit-v8/tsconfig.json b/libraries/rush-pnpm-kit-v8/tsconfig.json new file mode 100644 index 00000000000..dac21d04081 --- /dev/null +++ b/libraries/rush-pnpm-kit-v8/tsconfig.json @@ -0,0 +1,3 @@ +{ + "extends": "./node_modules/local-node-rig/profiles/default/tsconfig-base.json" +} diff --git a/libraries/rush-pnpm-kit-v9/LICENSE b/libraries/rush-pnpm-kit-v9/LICENSE new file mode 100644 index 00000000000..b530223f3b1 --- /dev/null +++ b/libraries/rush-pnpm-kit-v9/LICENSE @@ -0,0 +1,24 @@ +@rushstack/rush-pnpm-kit-v9 + +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/libraries/rush-pnpm-kit-v9/README.md b/libraries/rush-pnpm-kit-v9/README.md new file mode 100644 index 00000000000..1a313d7a43c --- /dev/null +++ b/libraries/rush-pnpm-kit-v9/README.md @@ -0,0 +1,14 @@ +## @microsoft/rush-pnpm-kit-v9 + +This is a companion package for the Rush tool. See the +[@microsoft/rush](https://www.npmjs.com/package/@microsoft/rush) +package for details. + +## Links + +- [CHANGELOG.md]( + https://github.com/microsoft/rushstack/blob/main/libraries/rush-pnpm-kit-v9/CHANGELOG.md) - Find + out what's new in the latest version +- [API Reference](https://api.rushstack.io/pages/rush-lib/) + +Rush is part of the [Rush Stack](https://rushstack.io/) family of projects. diff --git a/libraries/rush-pnpm-kit-v9/config/api-extractor.json b/libraries/rush-pnpm-kit-v9/config/api-extractor.json new file mode 100644 index 00000000000..996e271d3dd --- /dev/null +++ b/libraries/rush-pnpm-kit-v9/config/api-extractor.json @@ -0,0 +1,19 @@ +{ + "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", + + "mainEntryPointFilePath": "/lib/index.d.ts", + + "apiReport": { + "enabled": true, + "reportFolder": "../../../common/reviews/api" + }, + + "docModel": { + "enabled": true, + "apiJsonFilePath": "../../../common/temp/api/.api.json" + }, + + "dtsRollup": { + "enabled": true + } +} diff --git a/libraries/rush-pnpm-kit-v9/config/rig.json b/libraries/rush-pnpm-kit-v9/config/rig.json new file mode 100644 index 00000000000..165ffb001f5 --- /dev/null +++ b/libraries/rush-pnpm-kit-v9/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/libraries/rush-pnpm-kit-v9/eslint.config.js b/libraries/rush-pnpm-kit-v9/eslint.config.js new file mode 100644 index 00000000000..c15e6077310 --- /dev/null +++ b/libraries/rush-pnpm-kit-v9/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/libraries/rush-pnpm-kit-v9/package.json b/libraries/rush-pnpm-kit-v9/package.json new file mode 100644 index 00000000000..9aa382399f6 --- /dev/null +++ b/libraries/rush-pnpm-kit-v9/package.json @@ -0,0 +1,23 @@ +{ + "name": "@rushstack/rush-pnpm-kit-v9", + "version": "0.0.0", + "description": "rush pnpm kit v9", + "license": "MIT", + "main": "lib/index.js", + "typings": "dist/rush-pnpm-kit-v9.d.ts", + "scripts": { + "_phase:build": "heft run --only build -- --clean", + "_phase:test": "heft run --only test -- --clean", + "build": "heft build --clean", + "test": "heft test --clean" + }, + "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" + }, + "devDependencies": { + "@rushstack/heft": "workspace:*", + "local-node-rig": "workspace:*" + } +} diff --git a/libraries/rush-pnpm-kit-v9/src/dependencyPath.ts b/libraries/rush-pnpm-kit-v9/src/dependencyPath.ts new file mode 100644 index 00000000000..649f8936bab --- /dev/null +++ b/libraries/rush-pnpm-kit-v9/src/dependencyPath.ts @@ -0,0 +1,7 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. +// See LICENSE in the project root for license information. + +import { depPathToFilename, indexOfPeersSuffix, parse, removeSuffix } from '@pnpm/dependency-path-pnpm-v9'; +import type { DependencyPath } from '@pnpm/dependency-path-pnpm-v9'; + +export { depPathToFilename, indexOfPeersSuffix, parse, removeSuffix, DependencyPath }; diff --git a/libraries/rush-pnpm-kit-v9/src/index.ts b/libraries/rush-pnpm-kit-v9/src/index.ts new file mode 100644 index 00000000000..bb8a9dcdfa9 --- /dev/null +++ b/libraries/rush-pnpm-kit-v9/src/index.ts @@ -0,0 +1,6 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. +// See LICENSE in the project root for license information. + +export * as dependencyPath from './dependencyPath'; +export * as lockfileFs from './lockfileFs'; +export * as logger from './logger'; diff --git a/libraries/rush-pnpm-kit-v9/src/lockfileFs.ts b/libraries/rush-pnpm-kit-v9/src/lockfileFs.ts new file mode 100644 index 00000000000..bfed13bf89f --- /dev/null +++ b/libraries/rush-pnpm-kit-v9/src/lockfileFs.ts @@ -0,0 +1,6 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. +// See LICENSE in the project root for license information. + +import { readWantedLockfile } from '@pnpm/lockfile.fs-pnpm-lock-v9'; + +export { readWantedLockfile }; diff --git a/libraries/rush-pnpm-kit-v9/src/logger.ts b/libraries/rush-pnpm-kit-v9/src/logger.ts new file mode 100644 index 00000000000..6d0c71dee47 --- /dev/null +++ b/libraries/rush-pnpm-kit-v9/src/logger.ts @@ -0,0 +1,6 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT license. +// See LICENSE in the project root for license information. + +import type { LogBase } from '@pnpm/logger'; + +export { LogBase }; diff --git a/libraries/rush-pnpm-kit-v9/tsconfig.json b/libraries/rush-pnpm-kit-v9/tsconfig.json new file mode 100644 index 00000000000..dac21d04081 --- /dev/null +++ b/libraries/rush-pnpm-kit-v9/tsconfig.json @@ -0,0 +1,3 @@ +{ + "extends": "./node_modules/local-node-rig/profiles/default/tsconfig-base.json" +} diff --git a/libraries/rush-sdk/package.json b/libraries/rush-sdk/package.json index 188eda20080..a29f666d7db 100644 --- a/libraries/rush-sdk/package.json +++ b/libraries/rush-sdk/package.json @@ -39,7 +39,7 @@ }, "license": "MIT", "dependencies": { - "@pnpm/lockfile.types": "~1.0.3", + "@pnpm/lockfile.types-900": "npm:@pnpm/lockfile.types@~900.0.0", "@rushstack/credential-cache": "workspace:*", "@rushstack/lookup-by-path": "workspace:*", "@rushstack/node-core-library": "workspace:*", diff --git a/rush.json b/rush.json index c66a3135481..6affc317af8 100644 --- a/rush.json +++ b/rush.json @@ -1539,6 +1539,24 @@ "projectFolder": "rush-plugins/rush-mcp-docs-plugin", "reviewCategory": "libraries", "shouldPublish": true + }, + { + "packageName": "@rushstack/rush-pnpm-kit-v8", + "projectFolder": "libraries/rush-pnpm-kit-v8", + "reviewCategory": "libraries", + "shouldPublish": true + }, + { + "packageName": "@rushstack/rush-pnpm-kit-v9", + "projectFolder": "libraries/rush-pnpm-kit-v9", + "reviewCategory": "libraries", + "shouldPublish": true + }, + { + "packageName": "@rushstack/rush-pnpm-kit-v10", + "projectFolder": "libraries/rush-pnpm-kit-v10", + "reviewCategory": "libraries", + "shouldPublish": true } ] }