fix: concurrently hard linking a directory (#10163)

close #10160
This commit is contained in:
Zoltan Kochan
2025-11-09 12:07:11 +01:00
parent 7b19077fcb
commit a7cf08797e
4 changed files with 70 additions and 86 deletions

View File

@@ -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).

View File

@@ -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:"

View File

@@ -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) {

127
pnpm-lock.yaml generated
View File

@@ -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