diff --git a/.changeset/social-peas-juggle.md b/.changeset/social-peas-juggle.md new file mode 100644 index 0000000000..0e2343ec00 --- /dev/null +++ b/.changeset/social-peas-juggle.md @@ -0,0 +1,6 @@ +--- +"@pnpm/fs.hard-link-dir": patch +"pnpm": patch +--- + +Don't crash when two processes of pnpm are hardlinking the contents of a directory to the same destination simultaneously [#10160](https://github.com/pnpm/pnpm/pull/10160). diff --git a/fs/hard-link-dir/package.json b/fs/hard-link-dir/package.json index 11ca88c34f..052aa57945 100644 --- a/fs/hard-link-dir/package.json +++ b/fs/hard-link-dir/package.json @@ -33,7 +33,9 @@ "compile": "tsc --build && pnpm run lint --fix" }, "dependencies": { - "@pnpm/graceful-fs": "workspace:*" + "@pnpm/graceful-fs": "workspace:*", + "path-temp": "catalog:", + "rename-overwrite": "catalog:" }, "peerDependencies": { "@pnpm/logger": "catalog:" diff --git a/fs/hard-link-dir/src/index.ts b/fs/hard-link-dir/src/index.ts index 6d2f9cfb81..6713c7f645 100644 --- a/fs/hard-link-dir/src/index.ts +++ b/fs/hard-link-dir/src/index.ts @@ -4,12 +4,25 @@ import util from 'util' import fs from 'fs' import { globalWarn } from '@pnpm/logger' import gfs from '@pnpm/graceful-fs' +import { sync as renameOverwrite } from 'rename-overwrite' +import { fastPathTemp as pathTemp } from 'path-temp' export function hardLinkDir (src: string, destDirs: string[]): void { if (destDirs.length === 0) return - // Don't try to hard link the source directory to itself - destDirs = destDirs.filter((destDir) => path.relative(destDir, src) !== '') - _hardLinkDir(src, destDirs, true) + const filteredDestDirs: string[] = [] + const tempDestDirs: string[] = [] + for (const destDir of destDirs) { + if (path.relative(destDir, src) === '') { + // Don't try to hard link the source directory to itself + continue + } + filteredDestDirs.push(destDir) + tempDestDirs.push(pathTemp(destDir)) + } + _hardLinkDir(src, tempDestDirs, true) + for (let i = 0; i < filteredDestDirs.length; i++) { + renameOverwrite(tempDestDirs[i], filteredDestDirs[i]) + } } function _hardLinkDir (src: string, destDirs: string[], isRoot?: boolean) { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b7c0c35642..565995a1cd 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -3327,6 +3327,12 @@ importers: '@pnpm/graceful-fs': specifier: workspace:* version: link:../graceful-fs + path-temp: + specifier: 'catalog:' + version: 2.1.0 + rename-overwrite: + specifier: 'catalog:' + version: 6.0.3 devDependencies: '@pnpm/fs.hard-link-dir': specifier: workspace:* @@ -9929,10 +9935,6 @@ packages: resolution: {integrity: sha512-xb9dfSGi1qfUKY3r4Zy9JdC9+ZeaDxwfE7HrrGIEsBVY1hvIn6ntbR7A97z3nk44yX7vwbINNf9sizTp0WEtEw==} engines: {node: '>=18.12'} - '@pnpm/constants@1001.3.0': - resolution: {integrity: sha512-ZFRekNHbDlu//67Byg+mG8zmtmCsfBhNsg1wKBLRtF7VjH+Q5TDGMX0+8aJYSikQDuzM2FOhvQcDwyjILKshJQ==} - engines: {node: '>=18.12'} - '@pnpm/constants@1001.3.1': resolution: {integrity: sha512-2hf0s4pVrVEH8RvdJJ7YRKjQdiG8m0iAT26TTqXnCbK30kKwJW69VLmP5tED5zstmDRXcOeH5eRcrpkdwczQ9g==} engines: {node: '>=18.12'} @@ -10005,10 +10007,6 @@ packages: resolution: {integrity: sha512-2SfE4FFL73rE1WVIoESbqlj4sLy5nWW4M/RVdHvCRJPjlQHa9MH7m7CVJM204lz6I+eHoB+E7rL3zmpJR5wYnQ==} engines: {node: '>=18.12'} - '@pnpm/error@1000.0.4': - resolution: {integrity: sha512-22mG/Mq4u2r7gr2+XY5j4GlN7J4Mg4WiCfT9flvsUc1uZecShocv6WkyoA20qs14M64f6I+aaWB6b6xsDiITlg==} - engines: {node: '>=18.12'} - '@pnpm/error@1000.0.5': resolution: {integrity: sha512-GjH0TPjbVNrPnl/BAGoFuBLJ2sFfXNKbS33lll/Ehe9yw0fyc8Kdw7kO9if37yQqn6vaa4dAHKkPllum7f/IPQ==} engines: {node: '>=18.12'} @@ -10051,12 +10049,6 @@ packages: resolution: {integrity: sha512-vI3+bu6CrI/42hDUjtsKtSGaHlp8XHdmywtrc3HQYQrihzoaswjQW3dXAfG9x4bZy6vuGwmzXkberI1Z81QYUQ==} engines: {node: '>=18.12'} - '@pnpm/fs.hard-link-dir@1000.0.1': - resolution: {integrity: sha512-P+nAsqQR5ksBwXSVBpeAJLNP8BvD3pRbeAbMvwZ0stuw+t1krkFkbEHkEtBBvX9vFeO2bxi8JXo3SnD/fD3KfA==} - engines: {node: '>=18.12'} - peerDependencies: - '@pnpm/logger': '>=1001.0.0 <1002.0.0' - '@pnpm/fs.hard-link-dir@1000.0.2': resolution: {integrity: sha512-h3MYlT9Wogg6nuXTf7sGTNbz8j0DgERa0lvfxICFZFdhNT2nx1nc+FX56IsGLxLkMHQdmK6GaPPTjfvGwLgdFw==} engines: {node: '>=18.12'} @@ -10371,12 +10363,6 @@ packages: peerDependencies: '@pnpm/logger': '>=1001.0.0 <1002.0.0' - '@pnpm/symlink-dependency@1000.0.9': - resolution: {integrity: sha512-yI4nFQuI6lBzP/hUJ6L0te1TT+LVwr8LzA4E5acyrjQy/LOoRlIMykVP1nPagS/h4E2lDXo1LlARvSt1Ibe1LA==} - engines: {node: '>=18.12'} - peerDependencies: - '@pnpm/logger': '>=1001.0.0 <1002.0.0' - '@pnpm/tabtab@0.5.4': resolution: {integrity: sha512-bWLDlHsBlgKY/05wDN/V3ETcn5G2SV/SiA2ZmNvKGGlmVX4G5li7GRDhHcgYvHJHyJ8TUStqg2xtHmCs0UbAbg==} engines: {node: '>=18'} @@ -10416,12 +10402,6 @@ packages: engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} hasBin: true - '@pnpm/worker@1000.1.7': - resolution: {integrity: sha512-iOIP1MeJbyf2X3kJ2p3qfqIcUGc0uvfyGPR9dTCQooLNgKSQCCHC+4UhS2Xfrq/SQEhD2bzIHJRTieshm2Qfzw==} - engines: {node: '>=18.12'} - peerDependencies: - '@pnpm/logger': '>=1001.0.0 <1002.0.0' - '@pnpm/worker@1000.3.0': resolution: {integrity: sha512-xSWB/LWjTfW+Vm6BhVObXJrSAUNIxQelrX4ry+ni0ogYj/i6BlO6Tv0t83opnJ5fwqQUi3n3DwehnzbVYIn8xw==} engines: {node: '>=18.12'} @@ -17033,11 +17013,11 @@ snapshots: '@pnpm/types': 1000.6.0 load-json-file: 6.2.0 - '@pnpm/cli-utils@1000.1.5(@pnpm/logger@1001.0.0)(@pnpm/worker@1000.1.7(@pnpm/logger@1001.0.0)(@types/node@18.19.110))(typanion@3.14.0)': + '@pnpm/cli-utils@1000.1.5(@pnpm/logger@1001.0.0)(@pnpm/worker@1000.3.0(@pnpm/logger@1001.0.0)(@types/node@18.19.110))(typanion@3.14.0)': dependencies: '@pnpm/cli-meta': 1000.0.8 '@pnpm/config': 1003.1.1(@pnpm/logger@1001.0.0) - '@pnpm/config.deps-installer': 1000.0.5(@pnpm/logger@1001.0.0)(@pnpm/worker@1000.1.7(@pnpm/logger@1001.0.0)(@types/node@18.19.110)) + '@pnpm/config.deps-installer': 1000.0.5(@pnpm/logger@1001.0.0)(@pnpm/worker@1000.3.0(@pnpm/logger@1001.0.0)(@types/node@18.19.110)) '@pnpm/default-reporter': 1002.0.1(@pnpm/logger@1001.0.0) '@pnpm/error': 1000.0.2 '@pnpm/logger': 1001.0.0 @@ -17045,7 +17025,7 @@ snapshots: '@pnpm/package-is-installable': 1000.0.10(@pnpm/logger@1001.0.0) '@pnpm/pnpmfile': 1001.2.2(@pnpm/logger@1001.0.0) '@pnpm/read-project-manifest': 1000.0.11 - '@pnpm/store-connection-manager': 1002.0.3(@pnpm/logger@1001.0.0)(@pnpm/worker@1000.1.7(@pnpm/logger@1001.0.0)(@types/node@18.19.110))(typanion@3.14.0) + '@pnpm/store-connection-manager': 1002.0.3(@pnpm/logger@1001.0.0)(@pnpm/worker@1000.3.0(@pnpm/logger@1001.0.0)(@types/node@18.19.110))(typanion@3.14.0) '@pnpm/types': 1000.6.0 chalk: 4.1.2 load-json-file: 6.2.0 @@ -17077,16 +17057,16 @@ snapshots: - supports-color - typanion - '@pnpm/client@1000.0.19(@pnpm/logger@1001.0.0)(@pnpm/worker@1000.1.7(@pnpm/logger@1001.0.0)(@types/node@18.19.110))(typanion@3.14.0)': + '@pnpm/client@1000.0.19(@pnpm/logger@1001.0.0)(@pnpm/worker@1000.3.0(@pnpm/logger@1001.0.0)(@types/node@18.19.110))(typanion@3.14.0)': dependencies: '@pnpm/default-resolver': 1002.0.2(@pnpm/logger@1001.0.0) '@pnpm/directory-fetcher': 1000.1.7(@pnpm/logger@1001.0.0) '@pnpm/fetch': 1000.2.2(@pnpm/logger@1001.0.0) '@pnpm/fetching-types': 1000.1.0 - '@pnpm/git-fetcher': 1001.0.8(@pnpm/logger@1001.0.0)(@pnpm/worker@1000.1.7(@pnpm/logger@1001.0.0)(@types/node@18.19.110))(typanion@3.14.0) + '@pnpm/git-fetcher': 1001.0.8(@pnpm/logger@1001.0.0)(@pnpm/worker@1000.3.0(@pnpm/logger@1001.0.0)(@types/node@18.19.110))(typanion@3.14.0) '@pnpm/network.auth-header': 1000.0.3 '@pnpm/resolver-base': 1003.0.1 - '@pnpm/tarball-fetcher': 1001.0.8(@pnpm/logger@1001.0.0)(@pnpm/worker@1000.1.7(@pnpm/logger@1001.0.0)(@types/node@18.19.110))(typanion@3.14.0) + '@pnpm/tarball-fetcher': 1001.0.8(@pnpm/logger@1001.0.0)(@pnpm/worker@1000.3.0(@pnpm/logger@1001.0.0)(@types/node@18.19.110))(typanion@3.14.0) '@pnpm/types': 1000.6.0 ramda: '@pnpm/ramda@0.28.1' transitivePeerDependencies: @@ -17126,7 +17106,7 @@ snapshots: '@pnpm/workspace.manifest-writer': 1000.1.4 ramda: '@pnpm/ramda@0.28.1' - '@pnpm/config.deps-installer@1000.0.5(@pnpm/logger@1001.0.0)(@pnpm/worker@1000.1.7(@pnpm/logger@1001.0.0)(@types/node@18.19.110))': + '@pnpm/config.deps-installer@1000.0.5(@pnpm/logger@1001.0.0)(@pnpm/worker@1000.3.0(@pnpm/logger@1001.0.0)(@types/node@18.19.110))': dependencies: '@pnpm/config.config-writer': 1000.0.5 '@pnpm/core-loggers': 1001.0.1(@pnpm/logger@1001.0.0) @@ -17135,7 +17115,7 @@ snapshots: '@pnpm/logger': 1001.0.0 '@pnpm/network.auth-header': 1000.0.3 '@pnpm/npm-resolver': 1004.0.1(@pnpm/logger@1001.0.0) - '@pnpm/package-store': 1002.0.4(@pnpm/logger@1001.0.0)(@pnpm/worker@1000.1.7(@pnpm/logger@1001.0.0)(@types/node@18.19.110)) + '@pnpm/package-store': 1002.0.4(@pnpm/logger@1001.0.0)(@pnpm/worker@1000.3.0(@pnpm/logger@1001.0.0)(@types/node@18.19.110)) '@pnpm/parse-wanted-dependency': 1001.0.0 '@pnpm/pick-registry-for-package': 1000.0.8 '@pnpm/read-modules-dir': 1000.0.0 @@ -17208,8 +17188,6 @@ snapshots: '@pnpm/constants@1001.1.0': {} - '@pnpm/constants@1001.3.0': {} - '@pnpm/constants@1001.3.1': {} '@pnpm/core-loggers@1001.0.1(@pnpm/logger@1001.0.0)': @@ -17327,10 +17305,6 @@ snapshots: dependencies: '@pnpm/constants': 1001.1.0 - '@pnpm/error@1000.0.4': - dependencies: - '@pnpm/constants': 1001.3.0 - '@pnpm/error@1000.0.5': dependencies: '@pnpm/constants': 1001.3.1 @@ -17394,10 +17368,6 @@ snapshots: p-filter: 2.1.0 tinyglobby: 0.2.14 - '@pnpm/fs.hard-link-dir@1000.0.1(@pnpm/logger@1001.0.0)': - dependencies: - '@pnpm/logger': 1001.0.0 - '@pnpm/fs.hard-link-dir@1000.0.2(@pnpm/logger@1001.0.0)': dependencies: '@pnpm/graceful-fs': 1000.0.1 @@ -17441,13 +17411,13 @@ snapshots: dependencies: npm-packlist: 5.1.3 - '@pnpm/git-fetcher@1001.0.8(@pnpm/logger@1001.0.0)(@pnpm/worker@1000.1.7(@pnpm/logger@1001.0.0)(@types/node@18.19.110))(typanion@3.14.0)': + '@pnpm/git-fetcher@1001.0.8(@pnpm/logger@1001.0.0)(@pnpm/worker@1000.3.0(@pnpm/logger@1001.0.0)(@types/node@18.19.110))(typanion@3.14.0)': dependencies: '@pnpm/fetcher-base': 1000.0.11 '@pnpm/fs.packlist': 2.0.0 '@pnpm/logger': 1001.0.0 '@pnpm/prepare-package': 1000.0.16(@pnpm/logger@1001.0.0)(typanion@3.14.0) - '@pnpm/worker': 1000.1.7(@pnpm/logger@1001.0.0)(@types/node@18.19.110) + '@pnpm/worker': 1000.3.0(@pnpm/logger@1001.0.0)(@types/node@18.19.110) '@zkochan/rimraf': 3.0.2 execa: safe-execa@0.1.2 transitivePeerDependencies: @@ -17580,9 +17550,9 @@ snapshots: dependencies: '@pnpm/find-workspace-dir': 1000.1.0 '@pnpm/logger': 1001.0.0 - '@pnpm/types': 1000.6.0 - '@pnpm/worker': 1000.1.7(@pnpm/logger@1001.0.0)(@types/node@18.19.110) - '@pnpm/workspace.find-packages': 1000.0.25(@pnpm/logger@1001.0.0)(@pnpm/worker@1000.1.7(@pnpm/logger@1001.0.0)(@types/node@18.19.110))(typanion@3.14.0) + '@pnpm/types': 1000.9.0 + '@pnpm/worker': 1000.3.0(@pnpm/logger@1001.0.0)(@types/node@18.19.110) + '@pnpm/workspace.find-packages': 1000.0.25(@pnpm/logger@1001.0.0)(@pnpm/worker@1000.3.0(@pnpm/logger@1001.0.0)(@types/node@18.19.110))(typanion@3.14.0) '@pnpm/workspace.read-manifest': 1000.1.5 load-json-file: 7.0.1 meow: 11.0.0 @@ -17618,7 +17588,7 @@ snapshots: '@pnpm/network.proxy-agent@2.0.3': dependencies: - '@pnpm/error': 1000.0.4 + '@pnpm/error': 1000.0.5 http-proxy-agent: 7.0.2 https-proxy-agent: 7.0.6 lru-cache: 7.18.3 @@ -17646,7 +17616,7 @@ snapshots: '@pnpm/npm-lifecycle@1000.0.4(typanion@3.14.0)': dependencies: '@pnpm/byline': 1.0.0 - '@pnpm/error': 1000.0.4 + '@pnpm/error': 1000.0.5 '@yarnpkg/fslib': 3.1.2 '@yarnpkg/shell': 4.0.0(typanion@3.14.0) node-gyp: 11.4.2 @@ -17662,7 +17632,7 @@ snapshots: '@pnpm/npm-lifecycle@1001.0.0(typanion@3.14.0)': dependencies: '@pnpm/byline': 1.0.0 - '@pnpm/error': 1000.0.4 + '@pnpm/error': 1000.0.5 '@yarnpkg/fslib': 3.1.2 '@yarnpkg/shell': 4.0.0(typanion@3.14.0) node-gyp: 11.4.2 @@ -17721,11 +17691,11 @@ snapshots: '@pnpm/os.env.path-extender-posix@2.1.0': dependencies: - '@pnpm/error': 1000.0.4 + '@pnpm/error': 1000.0.5 '@pnpm/os.env.path-extender-windows@2.0.3': dependencies: - '@pnpm/error': 1000.0.4 + '@pnpm/error': 1000.0.5 safe-execa: 0.1.4 string.prototype.matchall: 4.0.12 @@ -17753,7 +17723,7 @@ snapshots: mem: 8.1.1 semver: 7.7.2 - '@pnpm/package-requester@1004.0.2(@pnpm/logger@1001.0.0)(@pnpm/worker@1000.1.7(@pnpm/logger@1001.0.0)(@types/node@18.19.110))': + '@pnpm/package-requester@1004.0.2(@pnpm/logger@1001.0.0)(@pnpm/worker@1000.3.0(@pnpm/logger@1001.0.0)(@types/node@18.19.110))': dependencies: '@pnpm/core-loggers': 1001.0.1(@pnpm/logger@1001.0.0) '@pnpm/dependency-path': 1000.0.9 @@ -17768,7 +17738,7 @@ snapshots: '@pnpm/store-controller-types': 1003.0.2 '@pnpm/store.cafs': 1000.0.13 '@pnpm/types': 1000.6.0 - '@pnpm/worker': 1000.1.7(@pnpm/logger@1001.0.0)(@types/node@18.19.110) + '@pnpm/worker': 1000.3.0(@pnpm/logger@1001.0.0)(@types/node@18.19.110) p-defer: 3.0.0 p-limit: 3.1.0 p-queue: 6.6.2 @@ -17801,17 +17771,17 @@ snapshots: semver: 7.7.2 ssri: 10.0.5 - '@pnpm/package-store@1002.0.4(@pnpm/logger@1001.0.0)(@pnpm/worker@1000.1.7(@pnpm/logger@1001.0.0)(@types/node@18.19.110))': + '@pnpm/package-store@1002.0.4(@pnpm/logger@1001.0.0)(@pnpm/worker@1000.3.0(@pnpm/logger@1001.0.0)(@types/node@18.19.110))': dependencies: '@pnpm/create-cafs-store': 1000.0.14(@pnpm/logger@1001.0.0) '@pnpm/fetcher-base': 1000.0.11 '@pnpm/logger': 1001.0.0 - '@pnpm/package-requester': 1004.0.2(@pnpm/logger@1001.0.0)(@pnpm/worker@1000.1.7(@pnpm/logger@1001.0.0)(@types/node@18.19.110)) + '@pnpm/package-requester': 1004.0.2(@pnpm/logger@1001.0.0)(@pnpm/worker@1000.3.0(@pnpm/logger@1001.0.0)(@types/node@18.19.110)) '@pnpm/resolver-base': 1003.0.1 '@pnpm/store-controller-types': 1003.0.2 '@pnpm/store.cafs': 1000.0.13 '@pnpm/types': 1000.6.0 - '@pnpm/worker': 1000.1.7(@pnpm/logger@1001.0.0)(@types/node@18.19.110) + '@pnpm/worker': 1000.3.0(@pnpm/logger@1001.0.0)(@types/node@18.19.110) '@zkochan/rimraf': 3.0.2 load-json-file: 6.2.0 ramda: '@pnpm/ramda@0.28.1' @@ -17974,14 +17944,14 @@ snapshots: dependencies: grapheme-splitter: 1.0.4 - '@pnpm/store-connection-manager@1002.0.3(@pnpm/logger@1001.0.0)(@pnpm/worker@1000.1.7(@pnpm/logger@1001.0.0)(@types/node@18.19.110))(typanion@3.14.0)': + '@pnpm/store-connection-manager@1002.0.3(@pnpm/logger@1001.0.0)(@pnpm/worker@1000.3.0(@pnpm/logger@1001.0.0)(@types/node@18.19.110))(typanion@3.14.0)': dependencies: '@pnpm/cli-meta': 1000.0.8 - '@pnpm/client': 1000.0.19(@pnpm/logger@1001.0.0)(@pnpm/worker@1000.1.7(@pnpm/logger@1001.0.0)(@types/node@18.19.110))(typanion@3.14.0) + '@pnpm/client': 1000.0.19(@pnpm/logger@1001.0.0)(@pnpm/worker@1000.3.0(@pnpm/logger@1001.0.0)(@types/node@18.19.110))(typanion@3.14.0) '@pnpm/config': 1003.1.1(@pnpm/logger@1001.0.0) '@pnpm/error': 1000.0.2 '@pnpm/logger': 1001.0.0 - '@pnpm/package-store': 1002.0.4(@pnpm/logger@1001.0.0)(@pnpm/worker@1000.1.7(@pnpm/logger@1001.0.0)(@types/node@18.19.110)) + '@pnpm/package-store': 1002.0.4(@pnpm/logger@1001.0.0)(@pnpm/worker@1000.3.0(@pnpm/logger@1001.0.0)(@types/node@18.19.110)) '@pnpm/server': 1001.0.4(@pnpm/logger@1001.0.0) '@pnpm/store-path': 1000.0.2 '@zkochan/diable': 1.0.2 @@ -18066,13 +18036,6 @@ snapshots: '@pnpm/types': 1000.9.0 symlink-dir: 6.0.5 - '@pnpm/symlink-dependency@1000.0.9(@pnpm/logger@1001.0.0)': - dependencies: - '@pnpm/core-loggers': 1001.0.1(@pnpm/logger@1001.0.0) - '@pnpm/logger': 1001.0.0 - '@pnpm/types': 1000.6.0 - symlink-dir: 6.0.5 - '@pnpm/tabtab@0.5.4': dependencies: debug: 4.4.1 @@ -18082,7 +18045,7 @@ snapshots: transitivePeerDependencies: - supports-color - '@pnpm/tarball-fetcher@1001.0.8(@pnpm/logger@1001.0.0)(@pnpm/worker@1000.1.7(@pnpm/logger@1001.0.0)(@types/node@18.19.110))(typanion@3.14.0)': + '@pnpm/tarball-fetcher@1001.0.8(@pnpm/logger@1001.0.0)(@pnpm/worker@1000.3.0(@pnpm/logger@1001.0.0)(@types/node@18.19.110))(typanion@3.14.0)': dependencies: '@pnpm/core-loggers': 1001.0.1(@pnpm/logger@1001.0.0) '@pnpm/error': 1000.0.2 @@ -18092,7 +18055,7 @@ snapshots: '@pnpm/graceful-fs': 1000.0.0 '@pnpm/logger': 1001.0.0 '@pnpm/prepare-package': 1000.0.16(@pnpm/logger@1001.0.0)(typanion@3.14.0) - '@pnpm/worker': 1000.1.7(@pnpm/logger@1001.0.0)(@types/node@18.19.110) + '@pnpm/worker': 1000.3.0(@pnpm/logger@1001.0.0)(@types/node@18.19.110) '@zkochan/retry': 0.2.0 lodash.throttle: 4.1.1 p-map-values: 1.0.0 @@ -18149,23 +18112,23 @@ snapshots: dependencies: isexe: 2.0.0 - '@pnpm/worker@1000.1.7(@pnpm/logger@1001.0.0)(@types/node@18.19.110)': + '@pnpm/worker@1000.3.0(@pnpm/logger@1001.0.0)(@types/node@18.19.110)': dependencies: '@pnpm/cafs-types': 1000.0.0 - '@pnpm/create-cafs-store': 1000.0.14(@pnpm/logger@1001.0.0) + '@pnpm/create-cafs-store': 1000.0.20(@pnpm/logger@1001.0.0) '@pnpm/crypto.polyfill': 1000.1.0 - '@pnpm/error': 1000.0.2 - '@pnpm/exec.pkg-requires-build': 1000.0.8 - '@pnpm/fs.hard-link-dir': 1000.0.1(@pnpm/logger@1001.0.0) - '@pnpm/graceful-fs': 1000.0.0 + '@pnpm/error': 1000.0.5 + '@pnpm/exec.pkg-requires-build': 1000.0.11 + '@pnpm/fs.hard-link-dir': 1000.0.2(@pnpm/logger@1001.0.0) + '@pnpm/graceful-fs': 1000.0.1 '@pnpm/logger': 1001.0.0 - '@pnpm/store.cafs': 1000.0.13 - '@pnpm/symlink-dependency': 1000.0.9(@pnpm/logger@1001.0.0) + '@pnpm/store.cafs': 1000.0.19 + '@pnpm/symlink-dependency': 1000.0.12(@pnpm/logger@1001.0.0) '@rushstack/worker-pool': 0.4.9(@types/node@18.19.110) is-windows: 1.0.2 load-json-file: 6.2.0 p-limit: 3.1.0 - shell-quote: 1.8.3 + shlex: 2.1.2 transitivePeerDependencies: - '@types/node' @@ -18189,9 +18152,9 @@ snapshots: transitivePeerDependencies: - '@types/node' - '@pnpm/workspace.find-packages@1000.0.25(@pnpm/logger@1001.0.0)(@pnpm/worker@1000.1.7(@pnpm/logger@1001.0.0)(@types/node@18.19.110))(typanion@3.14.0)': + '@pnpm/workspace.find-packages@1000.0.25(@pnpm/logger@1001.0.0)(@pnpm/worker@1000.3.0(@pnpm/logger@1001.0.0)(@types/node@18.19.110))(typanion@3.14.0)': dependencies: - '@pnpm/cli-utils': 1000.1.5(@pnpm/logger@1001.0.0)(@pnpm/worker@1000.1.7(@pnpm/logger@1001.0.0)(@types/node@18.19.110))(typanion@3.14.0) + '@pnpm/cli-utils': 1000.1.5(@pnpm/logger@1001.0.0)(@pnpm/worker@1000.3.0(@pnpm/logger@1001.0.0)(@types/node@18.19.110))(typanion@3.14.0) '@pnpm/constants': 1001.1.0 '@pnpm/fs.find-packages': 1000.0.11 '@pnpm/logger': 1001.0.0