mirror of
https://github.com/pnpm/pnpm.git
synced 2025-12-23 23:29:17 -05:00
feat!: breaking config changes in v8 (#6035)
* auto-install-peers=true * save-workspace-protocol=rolling * publishConfig.linkDirectory true by default * resolve-peers-from-workspace-root is true by default * set dedupeDirectDeps to true by default in @pnpm/core.
This commit is contained in:
7
.changeset/beige-insects-obey.md
Normal file
7
.changeset/beige-insects-obey.md
Normal file
@@ -0,0 +1,7 @@
|
||||
---
|
||||
"@pnpm/core": major
|
||||
"@pnpm/config": major
|
||||
"pnpm": major
|
||||
---
|
||||
|
||||
`auto-install-peers` is `true` by default.
|
||||
7
.changeset/cuddly-candles-shop.md
Normal file
7
.changeset/cuddly-candles-shop.md
Normal file
@@ -0,0 +1,7 @@
|
||||
---
|
||||
"@pnpm/core": major
|
||||
"@pnpm/config": major
|
||||
"pnpm": major
|
||||
---
|
||||
|
||||
`save-workspace-protocol` is `rolling` by default.
|
||||
7
.changeset/pretty-crabs-switch.md
Normal file
7
.changeset/pretty-crabs-switch.md
Normal file
@@ -0,0 +1,7 @@
|
||||
---
|
||||
"@pnpm/core": major
|
||||
"@pnpm/config": major
|
||||
"pnpm": major
|
||||
---
|
||||
|
||||
`resolve-peers-from-workspace-root` is `true` by default.
|
||||
7
.changeset/short-poems-retire.md
Normal file
7
.changeset/short-poems-retire.md
Normal file
@@ -0,0 +1,7 @@
|
||||
---
|
||||
"@pnpm/core": major
|
||||
"@pnpm/config": major
|
||||
"pnpm": major
|
||||
---
|
||||
|
||||
`publishConfig.linkDirectory` is `true` by default.
|
||||
6
.changeset/tricky-dots-yawn.md
Normal file
6
.changeset/tricky-dots-yawn.md
Normal file
@@ -0,0 +1,6 @@
|
||||
---
|
||||
"@pnpm/core": major
|
||||
"pnpm": major
|
||||
---
|
||||
|
||||
Direct dependencies are deduped. So if the same dependency is both in a project and in the workspace root, then it is only linked to the workspace root.
|
||||
17
__fixtures__/circular/pnpm-lock.yaml
generated
17
__fixtures__/circular/pnpm-lock.yaml
generated
@@ -1,27 +1,26 @@
|
||||
lockfileVersion: 5.4
|
||||
|
||||
specifiers:
|
||||
es6-iterator: ^2.0.1
|
||||
lockfileVersion: '6.0'
|
||||
|
||||
dependencies:
|
||||
es6-iterator: 2.0.1
|
||||
es6-iterator:
|
||||
specifier: ^2.0.1
|
||||
version: 2.0.1
|
||||
|
||||
packages:
|
||||
|
||||
/d/1.0.0:
|
||||
/d@1.0.0:
|
||||
resolution: {integrity: sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=}
|
||||
dependencies:
|
||||
es5-ext: 0.10.24
|
||||
dev: false
|
||||
|
||||
/es5-ext/0.10.24:
|
||||
/es5-ext@0.10.24:
|
||||
resolution: {integrity: sha1-pVh3yZJLwMjZvTwsvhdJWsFwmxQ=}
|
||||
dependencies:
|
||||
es6-iterator: 2.0.1
|
||||
es6-symbol: 3.1.1
|
||||
dev: false
|
||||
|
||||
/es6-iterator/2.0.1:
|
||||
/es6-iterator@2.0.1:
|
||||
resolution: {integrity: sha1-jjGcnwRTv1ddN0lAplWSDlnKVRI=}
|
||||
dependencies:
|
||||
d: 1.0.0
|
||||
@@ -29,7 +28,7 @@ packages:
|
||||
es6-symbol: 3.1.1
|
||||
dev: false
|
||||
|
||||
/es6-symbol/3.1.1:
|
||||
/es6-symbol@3.1.1:
|
||||
resolution: {integrity: sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=}
|
||||
dependencies:
|
||||
d: 1.0.0
|
||||
|
||||
26
__fixtures__/custom-modules-dir/pnpm-lock.yaml
generated
26
__fixtures__/custom-modules-dir/pnpm-lock.yaml
generated
@@ -1,32 +1,32 @@
|
||||
lockfileVersion: 5.4
|
||||
lockfileVersion: '6.0'
|
||||
|
||||
importers:
|
||||
|
||||
.:
|
||||
specifiers: {}
|
||||
.: {}
|
||||
|
||||
packages/bar:
|
||||
specifiers:
|
||||
is-positive: 1.0.0
|
||||
dependencies:
|
||||
is-positive: 1.0.0
|
||||
is-positive:
|
||||
specifier: 1.0.0
|
||||
version: 1.0.0
|
||||
|
||||
packages/foo:
|
||||
specifiers:
|
||||
'@scope/bar': workspace:*
|
||||
is-positive: 3.1.0
|
||||
dependencies:
|
||||
'@scope/bar': link:../bar
|
||||
is-positive: 3.1.0
|
||||
'@scope/bar':
|
||||
specifier: workspace:*
|
||||
version: link:../bar
|
||||
is-positive:
|
||||
specifier: 3.1.0
|
||||
version: 3.1.0
|
||||
|
||||
packages:
|
||||
|
||||
/is-positive/1.0.0:
|
||||
/is-positive@1.0.0:
|
||||
resolution: {integrity: sha512-xxzPGZ4P2uN6rROUa5N9Z7zTX6ERuE0hs6GUOc/cKBLF2NqKc16UwqHMt3tFg4CO6EBTE5UecUasg+3jZx3Ckg==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: false
|
||||
|
||||
/is-positive/3.1.0:
|
||||
/is-positive@3.1.0:
|
||||
resolution: {integrity: sha512-8ND1j3y9/HP94TOvGzr69/FgbkX2ruOldhLEsTWwcJVfo4oRjwemJmJxt7RJkKYH8tz7vYBP9JcKQY8CLuJ90Q==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: false
|
||||
|
||||
@@ -1,16 +1,16 @@
|
||||
lockfileVersion: 5.3
|
||||
lockfileVersion: '6.0'
|
||||
|
||||
importers:
|
||||
|
||||
pkg:
|
||||
specifiers:
|
||||
is-positive: 1.0.0
|
||||
dependencies:
|
||||
is-positive: 1.0.0
|
||||
is-positive:
|
||||
specifier: 1.0.0
|
||||
version: 1.0.0
|
||||
|
||||
packages:
|
||||
|
||||
/is-positive/1.0.0:
|
||||
/is-positive@1.0.0:
|
||||
resolution: {integrity: sha1-iACYVrZKLx632LsBeUGEJK4EUss=}
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: false
|
||||
|
||||
@@ -1,76 +1,77 @@
|
||||
lockfileVersion: 5.4
|
||||
|
||||
specifiers:
|
||||
is-negative: ^2.1.0
|
||||
is-positive: ^3.1.0
|
||||
write-json-file: ^2.2.0
|
||||
lockfileVersion: '6.0'
|
||||
|
||||
dependencies:
|
||||
write-json-file: 2.3.0
|
||||
write-json-file:
|
||||
specifier: ^2.2.0
|
||||
version: 2.3.0
|
||||
|
||||
optionalDependencies:
|
||||
is-negative: 2.1.0
|
||||
is-negative:
|
||||
specifier: ^2.1.0
|
||||
version: 2.1.0
|
||||
|
||||
devDependencies:
|
||||
is-positive: 3.1.0
|
||||
is-positive:
|
||||
specifier: ^3.1.0
|
||||
version: 3.1.0
|
||||
|
||||
packages:
|
||||
|
||||
/detect-indent/5.0.0:
|
||||
/detect-indent@5.0.0:
|
||||
resolution: {integrity: sha1-OHHMCmoALow+Wzz38zYmRnXwa50=}
|
||||
engines: {node: '>=4'}
|
||||
dev: false
|
||||
|
||||
/graceful-fs/4.2.2:
|
||||
/graceful-fs@4.2.2:
|
||||
resolution: {integrity: sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q==}
|
||||
dev: false
|
||||
|
||||
/imurmurhash/0.1.4:
|
||||
/imurmurhash@0.1.4:
|
||||
resolution: {integrity: sha1-khi5srkoojixPcT7a21XbyMUU+o=}
|
||||
engines: {node: '>=0.8.19'}
|
||||
dev: false
|
||||
|
||||
/is-negative/2.1.0:
|
||||
/is-negative@2.1.0:
|
||||
resolution: {integrity: sha512-+iCKT4ZcvjRnjkHnQjZ8/qfciLLGD8BFKS0GNR5VjDU6jEiwh899R0GSMkaYcuTNd7fEKXb3Qib0webe6HczNw==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
requiresBuild: true
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/is-plain-obj/1.1.0:
|
||||
/is-plain-obj@1.1.0:
|
||||
resolution: {integrity: sha1-caUMhCnfync8kqOQpKA7OfzVHT4=}
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: false
|
||||
|
||||
/is-positive/3.1.0:
|
||||
/is-positive@3.1.0:
|
||||
resolution: {integrity: sha1-hX21hKG6XRyymAUn/DtsQ103sP0=}
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: true
|
||||
|
||||
/make-dir/1.3.0:
|
||||
/make-dir@1.3.0:
|
||||
resolution: {integrity: sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==}
|
||||
engines: {node: '>=4'}
|
||||
dependencies:
|
||||
pify: 3.0.0
|
||||
dev: false
|
||||
|
||||
/pify/3.0.0:
|
||||
/pify@3.0.0:
|
||||
resolution: {integrity: sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=}
|
||||
engines: {node: '>=4'}
|
||||
dev: false
|
||||
|
||||
/signal-exit/3.0.2:
|
||||
/signal-exit@3.0.2:
|
||||
resolution: {integrity: sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=}
|
||||
dev: false
|
||||
|
||||
/sort-keys/2.0.0:
|
||||
/sort-keys@2.0.0:
|
||||
resolution: {integrity: sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg=}
|
||||
engines: {node: '>=4'}
|
||||
dependencies:
|
||||
is-plain-obj: 1.1.0
|
||||
dev: false
|
||||
|
||||
/write-file-atomic/2.4.3:
|
||||
/write-file-atomic@2.4.3:
|
||||
resolution: {integrity: sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==}
|
||||
dependencies:
|
||||
graceful-fs: 4.2.2
|
||||
@@ -78,7 +79,7 @@ packages:
|
||||
signal-exit: 3.0.2
|
||||
dev: false
|
||||
|
||||
/write-json-file/2.3.0:
|
||||
/write-json-file@2.3.0:
|
||||
resolution: {integrity: sha1-K2TIozAE1UuGmMdtWFp3zrYdoy8=}
|
||||
engines: {node: '>=4'}
|
||||
dependencies:
|
||||
|
||||
@@ -1,76 +1,77 @@
|
||||
lockfileVersion: 5.4
|
||||
|
||||
specifiers:
|
||||
is-negative: ^2.1.0
|
||||
is-positive: ^3.1.0
|
||||
write-json-file: ^2.2.0
|
||||
lockfileVersion: '6.0'
|
||||
|
||||
dependencies:
|
||||
write-json-file: 2.3.0
|
||||
write-json-file:
|
||||
specifier: ^2.2.0
|
||||
version: 2.3.0
|
||||
|
||||
optionalDependencies:
|
||||
is-negative: 2.1.0
|
||||
is-negative:
|
||||
specifier: ^2.1.0
|
||||
version: 2.1.0
|
||||
|
||||
devDependencies:
|
||||
is-positive: 3.1.0
|
||||
is-positive:
|
||||
specifier: ^3.1.0
|
||||
version: 3.1.0
|
||||
|
||||
packages:
|
||||
|
||||
/detect-indent/5.0.0:
|
||||
/detect-indent@5.0.0:
|
||||
resolution: {integrity: sha1-OHHMCmoALow+Wzz38zYmRnXwa50=}
|
||||
engines: {node: '>=4'}
|
||||
dev: false
|
||||
|
||||
/graceful-fs/4.2.2:
|
||||
/graceful-fs@4.2.2:
|
||||
resolution: {integrity: sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q==}
|
||||
dev: false
|
||||
|
||||
/imurmurhash/0.1.4:
|
||||
/imurmurhash@0.1.4:
|
||||
resolution: {integrity: sha1-khi5srkoojixPcT7a21XbyMUU+o=}
|
||||
engines: {node: '>=0.8.19'}
|
||||
dev: false
|
||||
|
||||
/is-negative/2.1.0:
|
||||
/is-negative@2.1.0:
|
||||
resolution: {integrity: sha512-+iCKT4ZcvjRnjkHnQjZ8/qfciLLGD8BFKS0GNR5VjDU6jEiwh899R0GSMkaYcuTNd7fEKXb3Qib0webe6HczNw==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
requiresBuild: true
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/is-plain-obj/1.1.0:
|
||||
/is-plain-obj@1.1.0:
|
||||
resolution: {integrity: sha1-caUMhCnfync8kqOQpKA7OfzVHT4=}
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: false
|
||||
|
||||
/is-positive/3.1.0:
|
||||
/is-positive@3.1.0:
|
||||
resolution: {integrity: sha1-hX21hKG6XRyymAUn/DtsQ103sP0=}
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: true
|
||||
|
||||
/make-dir/1.3.0:
|
||||
/make-dir@1.3.0:
|
||||
resolution: {integrity: sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==}
|
||||
engines: {node: '>=4'}
|
||||
dependencies:
|
||||
pify: 3.0.0
|
||||
dev: false
|
||||
|
||||
/pify/3.0.0:
|
||||
/pify@3.0.0:
|
||||
resolution: {integrity: sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=}
|
||||
engines: {node: '>=4'}
|
||||
dev: false
|
||||
|
||||
/signal-exit/3.0.2:
|
||||
/signal-exit@3.0.2:
|
||||
resolution: {integrity: sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=}
|
||||
dev: false
|
||||
|
||||
/sort-keys/2.0.0:
|
||||
/sort-keys@2.0.0:
|
||||
resolution: {integrity: sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg=}
|
||||
engines: {node: '>=4'}
|
||||
dependencies:
|
||||
is-plain-obj: 1.1.0
|
||||
dev: false
|
||||
|
||||
/write-file-atomic/2.4.3:
|
||||
/write-file-atomic@2.4.3:
|
||||
resolution: {integrity: sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==}
|
||||
dependencies:
|
||||
graceful-fs: 4.2.2
|
||||
@@ -78,7 +79,7 @@ packages:
|
||||
signal-exit: 3.0.2
|
||||
dev: false
|
||||
|
||||
/write-json-file/2.3.0:
|
||||
/write-json-file@2.3.0:
|
||||
resolution: {integrity: sha1-K2TIozAE1UuGmMdtWFp3zrYdoy8=}
|
||||
engines: {node: '>=4'}
|
||||
dependencies:
|
||||
|
||||
43
__fixtures__/fixture/pnpm-lock.yaml
generated
43
__fixtures__/fixture/pnpm-lock.yaml
generated
@@ -1,76 +1,77 @@
|
||||
lockfileVersion: 5.4
|
||||
|
||||
specifiers:
|
||||
is-negative: ^2.1.0
|
||||
is-positive: ^3.1.0
|
||||
write-json-file: ^2.2.0
|
||||
lockfileVersion: '6.0'
|
||||
|
||||
dependencies:
|
||||
write-json-file: 2.3.0
|
||||
write-json-file:
|
||||
specifier: ^2.2.0
|
||||
version: 2.3.0
|
||||
|
||||
optionalDependencies:
|
||||
is-negative: 2.1.0
|
||||
is-negative:
|
||||
specifier: ^2.1.0
|
||||
version: 2.1.0
|
||||
|
||||
devDependencies:
|
||||
is-positive: 3.1.0
|
||||
is-positive:
|
||||
specifier: ^3.1.0
|
||||
version: 3.1.0
|
||||
|
||||
packages:
|
||||
|
||||
/detect-indent/5.0.0:
|
||||
/detect-indent@5.0.0:
|
||||
resolution: {integrity: sha1-OHHMCmoALow+Wzz38zYmRnXwa50=}
|
||||
engines: {node: '>=4'}
|
||||
dev: false
|
||||
|
||||
/graceful-fs/4.2.2:
|
||||
/graceful-fs@4.2.2:
|
||||
resolution: {integrity: sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q==}
|
||||
dev: false
|
||||
|
||||
/imurmurhash/0.1.4:
|
||||
/imurmurhash@0.1.4:
|
||||
resolution: {integrity: sha1-khi5srkoojixPcT7a21XbyMUU+o=}
|
||||
engines: {node: '>=0.8.19'}
|
||||
dev: false
|
||||
|
||||
/is-negative/2.1.0:
|
||||
/is-negative@2.1.0:
|
||||
resolution: {integrity: sha512-+iCKT4ZcvjRnjkHnQjZ8/qfciLLGD8BFKS0GNR5VjDU6jEiwh899R0GSMkaYcuTNd7fEKXb3Qib0webe6HczNw==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
requiresBuild: true
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/is-plain-obj/1.1.0:
|
||||
/is-plain-obj@1.1.0:
|
||||
resolution: {integrity: sha1-caUMhCnfync8kqOQpKA7OfzVHT4=}
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: false
|
||||
|
||||
/is-positive/3.1.0:
|
||||
/is-positive@3.1.0:
|
||||
resolution: {integrity: sha1-hX21hKG6XRyymAUn/DtsQ103sP0=}
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: true
|
||||
|
||||
/make-dir/1.3.0:
|
||||
/make-dir@1.3.0:
|
||||
resolution: {integrity: sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==}
|
||||
engines: {node: '>=4'}
|
||||
dependencies:
|
||||
pify: 3.0.0
|
||||
dev: false
|
||||
|
||||
/pify/3.0.0:
|
||||
/pify@3.0.0:
|
||||
resolution: {integrity: sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=}
|
||||
engines: {node: '>=4'}
|
||||
dev: false
|
||||
|
||||
/signal-exit/3.0.2:
|
||||
/signal-exit@3.0.2:
|
||||
resolution: {integrity: sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=}
|
||||
dev: false
|
||||
|
||||
/sort-keys/2.0.0:
|
||||
/sort-keys@2.0.0:
|
||||
resolution: {integrity: sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg=}
|
||||
engines: {node: '>=4'}
|
||||
dependencies:
|
||||
is-plain-obj: 1.1.0
|
||||
dev: false
|
||||
|
||||
/write-file-atomic/2.4.3:
|
||||
/write-file-atomic@2.4.3:
|
||||
resolution: {integrity: sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==}
|
||||
dependencies:
|
||||
graceful-fs: 4.2.2
|
||||
@@ -78,7 +79,7 @@ packages:
|
||||
signal-exit: 3.0.2
|
||||
dev: false
|
||||
|
||||
/write-json-file/2.3.0:
|
||||
/write-json-file@2.3.0:
|
||||
resolution: {integrity: sha1-K2TIozAE1UuGmMdtWFp3zrYdoy8=}
|
||||
engines: {node: '>=4'}
|
||||
dependencies:
|
||||
|
||||
50
__fixtures__/fixtureWithLinks/general/pnpm-lock.yaml
generated
50
__fixtures__/fixtureWithLinks/general/pnpm-lock.yaml
generated
@@ -1,39 +1,41 @@
|
||||
lockfileVersion: 5.3
|
||||
|
||||
specifiers:
|
||||
is-negative: 1.0.0
|
||||
is-positive: 1.0.0
|
||||
minimatch: ^3.0.4
|
||||
rimraf: 2.5.1
|
||||
lockfileVersion: '6.0'
|
||||
|
||||
dependencies:
|
||||
minimatch: 3.0.4
|
||||
rimraf: 2.5.1
|
||||
minimatch:
|
||||
specifier: ^3.0.4
|
||||
version: 3.0.4
|
||||
rimraf:
|
||||
specifier: 2.5.1
|
||||
version: 2.5.1
|
||||
|
||||
optionalDependencies:
|
||||
is-negative: 1.0.0
|
||||
is-negative:
|
||||
specifier: 1.0.0
|
||||
version: 1.0.0
|
||||
|
||||
devDependencies:
|
||||
is-positive: 1.0.0
|
||||
is-positive:
|
||||
specifier: 1.0.0
|
||||
version: 1.0.0
|
||||
|
||||
packages:
|
||||
|
||||
/balanced-match/1.0.0:
|
||||
/balanced-match@1.0.0:
|
||||
resolution: {integrity: sha1-ibTRmasr7kneFk6gK4nORi1xt2c=}
|
||||
dev: false
|
||||
|
||||
/brace-expansion/1.1.11:
|
||||
/brace-expansion@1.1.11:
|
||||
resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
|
||||
dependencies:
|
||||
balanced-match: 1.0.0
|
||||
concat-map: 0.0.1
|
||||
dev: false
|
||||
|
||||
/concat-map/0.0.1:
|
||||
/concat-map@0.0.1:
|
||||
resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=}
|
||||
dev: false
|
||||
|
||||
/glob/6.0.4:
|
||||
/glob@6.0.4:
|
||||
resolution: {integrity: sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=}
|
||||
dependencies:
|
||||
inflight: 1.0.6
|
||||
@@ -43,52 +45,52 @@ packages:
|
||||
path-is-absolute: 1.0.1
|
||||
dev: false
|
||||
|
||||
/inflight/1.0.6:
|
||||
/inflight@1.0.6:
|
||||
resolution: {integrity: sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=}
|
||||
dependencies:
|
||||
once: 1.4.0
|
||||
wrappy: 1.0.2
|
||||
dev: false
|
||||
|
||||
/inherits/2.0.3:
|
||||
/inherits@2.0.3:
|
||||
resolution: {integrity: sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=}
|
||||
dev: false
|
||||
|
||||
/is-negative/1.0.0:
|
||||
/is-negative@1.0.0:
|
||||
resolution: {integrity: sha1-clmHeoPIAKwxkd17nZ+80PdS1P4=}
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/is-positive/1.0.0:
|
||||
/is-positive@1.0.0:
|
||||
resolution: {integrity: sha1-iACYVrZKLx632LsBeUGEJK4EUss=}
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: true
|
||||
|
||||
/minimatch/3.0.4:
|
||||
/minimatch@3.0.4:
|
||||
resolution: {integrity: sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==}
|
||||
dependencies:
|
||||
brace-expansion: 1.1.11
|
||||
dev: false
|
||||
|
||||
/once/1.4.0:
|
||||
/once@1.4.0:
|
||||
resolution: {integrity: sha1-WDsap3WWHUsROsF9nFC6753Xa9E=}
|
||||
dependencies:
|
||||
wrappy: 1.0.2
|
||||
dev: false
|
||||
|
||||
/path-is-absolute/1.0.1:
|
||||
/path-is-absolute@1.0.1:
|
||||
resolution: {integrity: sha1-F0uSaHNVNP+8es5r9TpanhtcX18=}
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: false
|
||||
|
||||
/rimraf/2.5.1:
|
||||
/rimraf@2.5.1:
|
||||
resolution: {integrity: sha1-UuHpRvP5ubDV2JiLoxkaryotvUM=}
|
||||
hasBin: true
|
||||
dependencies:
|
||||
glob: 6.0.4
|
||||
dev: false
|
||||
|
||||
/wrappy/1.0.2:
|
||||
/wrappy@1.0.2:
|
||||
resolution: {integrity: sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=}
|
||||
dev: false
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
lockfileVersion: 5.3
|
||||
|
||||
specifiers:
|
||||
general: 0.0.0
|
||||
lockfileVersion: '6.0'
|
||||
|
||||
dependencies:
|
||||
general: link:../general
|
||||
general:
|
||||
specifier: 0.0.0
|
||||
version: link:../general
|
||||
|
||||
50
__fixtures__/general/pnpm-lock.yaml
generated
50
__fixtures__/general/pnpm-lock.yaml
generated
@@ -1,39 +1,41 @@
|
||||
lockfileVersion: 5.4
|
||||
|
||||
specifiers:
|
||||
is-negative: 1.0.0
|
||||
is-positive: 1.0.0
|
||||
minimatch: ^3.0.4
|
||||
rimraf: 2.5.1
|
||||
lockfileVersion: '6.0'
|
||||
|
||||
dependencies:
|
||||
minimatch: 3.0.4
|
||||
rimraf: 2.5.1
|
||||
minimatch:
|
||||
specifier: ^3.0.4
|
||||
version: 3.0.4
|
||||
rimraf:
|
||||
specifier: 2.5.1
|
||||
version: 2.5.1
|
||||
|
||||
optionalDependencies:
|
||||
is-negative: 1.0.0
|
||||
is-negative:
|
||||
specifier: 1.0.0
|
||||
version: 1.0.0
|
||||
|
||||
devDependencies:
|
||||
is-positive: 1.0.0
|
||||
is-positive:
|
||||
specifier: 1.0.0
|
||||
version: 1.0.0
|
||||
|
||||
packages:
|
||||
|
||||
/balanced-match/1.0.0:
|
||||
/balanced-match@1.0.0:
|
||||
resolution: {integrity: sha1-ibTRmasr7kneFk6gK4nORi1xt2c=}
|
||||
dev: false
|
||||
|
||||
/brace-expansion/1.1.8:
|
||||
/brace-expansion@1.1.8:
|
||||
resolution: {integrity: sha1-wHshHHyVLsH479Uad+8NHTmQopI=}
|
||||
dependencies:
|
||||
balanced-match: 1.0.0
|
||||
concat-map: 0.0.1
|
||||
dev: false
|
||||
|
||||
/concat-map/0.0.1:
|
||||
/concat-map@0.0.1:
|
||||
resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=}
|
||||
dev: false
|
||||
|
||||
/glob/6.0.4:
|
||||
/glob@6.0.4:
|
||||
resolution: {integrity: sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=}
|
||||
dependencies:
|
||||
inflight: 1.0.6
|
||||
@@ -43,53 +45,53 @@ packages:
|
||||
path-is-absolute: 1.0.1
|
||||
dev: false
|
||||
|
||||
/inflight/1.0.6:
|
||||
/inflight@1.0.6:
|
||||
resolution: {integrity: sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=}
|
||||
dependencies:
|
||||
once: 1.4.0
|
||||
wrappy: 1.0.2
|
||||
dev: false
|
||||
|
||||
/inherits/2.0.3:
|
||||
/inherits@2.0.3:
|
||||
resolution: {integrity: sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=}
|
||||
dev: false
|
||||
|
||||
/is-negative/1.0.0:
|
||||
/is-negative@1.0.0:
|
||||
resolution: {integrity: sha512-1aKMsFUc7vYQGzt//8zhkjRWPoYkajY/I5MJEvrc0pDoHXrW7n5ri8DYxhy3rR+Dk0QFl7GjHHsZU1sppQrWtw==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
requiresBuild: true
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/is-positive/1.0.0:
|
||||
/is-positive@1.0.0:
|
||||
resolution: {integrity: sha1-iACYVrZKLx632LsBeUGEJK4EUss=}
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: true
|
||||
|
||||
/minimatch/3.0.4:
|
||||
/minimatch@3.0.4:
|
||||
resolution: {integrity: sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==}
|
||||
dependencies:
|
||||
brace-expansion: 1.1.8
|
||||
dev: false
|
||||
|
||||
/once/1.4.0:
|
||||
/once@1.4.0:
|
||||
resolution: {integrity: sha1-WDsap3WWHUsROsF9nFC6753Xa9E=}
|
||||
dependencies:
|
||||
wrappy: 1.0.2
|
||||
dev: false
|
||||
|
||||
/path-is-absolute/1.0.1:
|
||||
/path-is-absolute@1.0.1:
|
||||
resolution: {integrity: sha1-F0uSaHNVNP+8es5r9TpanhtcX18=}
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: false
|
||||
|
||||
/rimraf/2.5.1:
|
||||
/rimraf@2.5.1:
|
||||
resolution: {integrity: sha1-UuHpRvP5ubDV2JiLoxkaryotvUM=}
|
||||
hasBin: true
|
||||
dependencies:
|
||||
glob: 6.0.4
|
||||
dev: false
|
||||
|
||||
/wrappy/1.0.2:
|
||||
/wrappy@1.0.2:
|
||||
resolution: {integrity: sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=}
|
||||
dev: false
|
||||
|
||||
18
__fixtures__/has-2-outdated-deps/node_modules/.pnpm/lock.yaml
generated
vendored
18
__fixtures__/has-2-outdated-deps/node_modules/.pnpm/lock.yaml
generated
vendored
@@ -1,23 +1,23 @@
|
||||
lockfileVersion: 5.4
|
||||
|
||||
specifiers:
|
||||
is-negative: ^1.0.0
|
||||
is-positive: ^1.0.0
|
||||
lockfileVersion: '6.0'
|
||||
|
||||
dependencies:
|
||||
is-negative: 1.0.1
|
||||
is-negative:
|
||||
specifier: ^1.0.0
|
||||
version: 1.0.1
|
||||
|
||||
devDependencies:
|
||||
is-positive: 1.0.0
|
||||
is-positive:
|
||||
specifier: ^1.0.0
|
||||
version: 1.0.0
|
||||
|
||||
packages:
|
||||
|
||||
/is-negative/1.0.1:
|
||||
/is-negative@1.0.1:
|
||||
resolution: {integrity: sha1-3GuHKO69A8db+HYIftzVDpy1aZQ=}
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: false
|
||||
|
||||
/is-positive/1.0.0:
|
||||
/is-positive@1.0.0:
|
||||
resolution: {integrity: sha1-iACYVrZKLx632LsBeUGEJK4EUss=}
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: true
|
||||
|
||||
18
__fixtures__/has-2-outdated-deps/pnpm-lock.yaml
generated
18
__fixtures__/has-2-outdated-deps/pnpm-lock.yaml
generated
@@ -1,23 +1,23 @@
|
||||
lockfileVersion: 5.4
|
||||
|
||||
specifiers:
|
||||
is-negative: ^1.0.0
|
||||
is-positive: ^1.0.0
|
||||
lockfileVersion: '6.0'
|
||||
|
||||
dependencies:
|
||||
is-negative: 1.0.1
|
||||
is-negative:
|
||||
specifier: ^1.0.0
|
||||
version: 1.0.1
|
||||
|
||||
devDependencies:
|
||||
is-positive: 1.0.0
|
||||
is-positive:
|
||||
specifier: ^1.0.0
|
||||
version: 1.0.0
|
||||
|
||||
packages:
|
||||
|
||||
/is-negative/1.0.1:
|
||||
/is-negative@1.0.1:
|
||||
resolution: {integrity: sha1-3GuHKO69A8db+HYIftzVDpy1aZQ=}
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: false
|
||||
|
||||
/is-positive/1.0.0:
|
||||
/is-positive@1.0.0:
|
||||
resolution: {integrity: sha1-iACYVrZKLx632LsBeUGEJK4EUss=}
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: true
|
||||
|
||||
26
__fixtures__/has-outdated-deps/node_modules/.pnpm/lock.yaml
generated
vendored
26
__fixtures__/has-outdated-deps/node_modules/.pnpm/lock.yaml
generated
vendored
@@ -1,31 +1,31 @@
|
||||
lockfileVersion: 5.4
|
||||
|
||||
specifiers:
|
||||
'@pnpm.e2e/deprecated': 1.0.0
|
||||
is-negative: ^1.0.0
|
||||
is-positive: ^1.0.0
|
||||
lockfileVersion: '6.0'
|
||||
|
||||
dependencies:
|
||||
'@pnpm.e2e/deprecated': 1.0.0
|
||||
is-negative: 1.0.0
|
||||
'@pnpm.e2e/deprecated':
|
||||
specifier: 1.0.0
|
||||
version: 1.0.0
|
||||
is-negative:
|
||||
specifier: ^1.0.0
|
||||
version: 1.0.0
|
||||
|
||||
devDependencies:
|
||||
is-positive: 1.0.0
|
||||
is-positive:
|
||||
specifier: ^1.0.0
|
||||
version: 1.0.0
|
||||
|
||||
packages:
|
||||
|
||||
/@pnpm.e2e/deprecated/1.0.0:
|
||||
/@pnpm.e2e/deprecated@1.0.0:
|
||||
resolution: {integrity: sha512-oidipeQzM+eKHKOmDnruTG7wP+jySQAxskX54lMYTeaq1rBjC+G1u+l3TolCKShyyOz73mO2N9laBqyFB06t6A==}
|
||||
deprecated: This package is deprecated. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
|
||||
dev: false
|
||||
|
||||
/is-negative/1.0.0:
|
||||
/is-negative@1.0.0:
|
||||
resolution: {integrity: sha1-8Nhjd6oVpkw0lh84rCqb4rQKEYc=}
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: false
|
||||
|
||||
/is-positive/1.0.0:
|
||||
/is-positive@1.0.0:
|
||||
resolution: {integrity: sha1-iACYVrZKLx632LsBeUGEJK4EUss=}
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: true
|
||||
|
||||
|
||||
26
__fixtures__/has-outdated-deps/pnpm-lock.yaml
generated
26
__fixtures__/has-outdated-deps/pnpm-lock.yaml
generated
@@ -1,31 +1,31 @@
|
||||
lockfileVersion: 5.4
|
||||
|
||||
specifiers:
|
||||
'@pnpm.e2e/deprecated': 1.0.0
|
||||
is-negative: ^2.1.0
|
||||
is-positive: ^3.1.0
|
||||
lockfileVersion: '6.0'
|
||||
|
||||
dependencies:
|
||||
'@pnpm.e2e/deprecated': 1.0.0
|
||||
is-negative: 2.1.0
|
||||
'@pnpm.e2e/deprecated':
|
||||
specifier: 1.0.0
|
||||
version: 1.0.0
|
||||
is-negative:
|
||||
specifier: ^2.1.0
|
||||
version: 2.1.0
|
||||
|
||||
devDependencies:
|
||||
is-positive: 3.1.0
|
||||
is-positive:
|
||||
specifier: ^3.1.0
|
||||
version: 3.1.0
|
||||
|
||||
packages:
|
||||
|
||||
/@pnpm.e2e/deprecated/1.0.0:
|
||||
/@pnpm.e2e/deprecated@1.0.0:
|
||||
resolution: {integrity: sha512-oidipeQzM+eKHKOmDnruTG7wP+jySQAxskX54lMYTeaq1rBjC+G1u+l3TolCKShyyOz73mO2N9laBqyFB06t6A==}
|
||||
deprecated: This package is deprecated. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
|
||||
dev: false
|
||||
|
||||
/is-negative/2.1.0:
|
||||
/is-negative@2.1.0:
|
||||
resolution: {integrity: sha512-+iCKT4ZcvjRnjkHnQjZ8/qfciLLGD8BFKS0GNR5VjDU6jEiwh899R0GSMkaYcuTNd7fEKXb3Qib0webe6HczNw==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: false
|
||||
|
||||
/is-positive/3.1.0:
|
||||
/is-positive@3.1.0:
|
||||
resolution: {integrity: sha1-hX21hKG6XRyymAUn/DtsQ103sP0=}
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: true
|
||||
|
||||
|
||||
11
__fixtures__/with-aliased-dep/pnpm-lock.yaml
generated
11
__fixtures__/with-aliased-dep/pnpm-lock.yaml
generated
@@ -1,14 +1,13 @@
|
||||
lockfileVersion: 5.4
|
||||
|
||||
specifiers:
|
||||
positive: npm:is-positive@1.0.0
|
||||
lockfileVersion: '6.0'
|
||||
|
||||
dependencies:
|
||||
positive: /is-positive/1.0.0
|
||||
positive:
|
||||
specifier: npm:is-positive@1.0.0
|
||||
version: /is-positive@1.0.0
|
||||
|
||||
packages:
|
||||
|
||||
/is-positive/1.0.0:
|
||||
/is-positive@1.0.0:
|
||||
resolution: {integrity: sha512-xxzPGZ4P2uN6rROUa5N9Z7zTX6ERuE0hs6GUOc/cKBLF2NqKc16UwqHMt3tFg4CO6EBTE5UecUasg+3jZx3Ckg==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: false
|
||||
|
||||
16
__fixtures__/with-file-dep/pnpm-lock.yaml
generated
16
__fixtures__/with-file-dep/pnpm-lock.yaml
generated
@@ -1,16 +1,16 @@
|
||||
lockfileVersion: 5.4
|
||||
|
||||
specifiers:
|
||||
general: link:../general
|
||||
is-positive: ^3.1.0
|
||||
lockfileVersion: '6.0'
|
||||
|
||||
dependencies:
|
||||
general: link:../general
|
||||
is-positive: 3.1.0
|
||||
general:
|
||||
specifier: link:../general
|
||||
version: link:../general
|
||||
is-positive:
|
||||
specifier: ^3.1.0
|
||||
version: 3.1.0
|
||||
|
||||
packages:
|
||||
|
||||
/is-positive/3.1.0:
|
||||
/is-positive@3.1.0:
|
||||
resolution: {integrity: sha1-hX21hKG6XRyymAUn/DtsQ103sP0=}
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: false
|
||||
|
||||
9
__fixtures__/with-non-package-dep/pnpm-lock.yaml
generated
9
__fixtures__/with-non-package-dep/pnpm-lock.yaml
generated
@@ -1,10 +1,9 @@
|
||||
lockfileVersion: 5.4
|
||||
|
||||
specifiers:
|
||||
camelcase: denolib/camelcase#aeb6b15f9c9957c8fa56f9731e914c4d8a6d2f2b
|
||||
lockfileVersion: '6.0'
|
||||
|
||||
dependencies:
|
||||
camelcase: github.com/denolib/camelcase/aeb6b15f9c9957c8fa56f9731e914c4d8a6d2f2b
|
||||
camelcase:
|
||||
specifier: denolib/camelcase#aeb6b15f9c9957c8fa56f9731e914c4d8a6d2f2b
|
||||
version: github.com/denolib/camelcase/aeb6b15f9c9957c8fa56f9731e914c4d8a6d2f2b
|
||||
|
||||
packages:
|
||||
|
||||
|
||||
28
__fixtures__/with-peer/pnpm-lock.yaml
generated
28
__fixtures__/with-peer/pnpm-lock.yaml
generated
@@ -1,16 +1,16 @@
|
||||
lockfileVersion: 5.4
|
||||
|
||||
specifiers:
|
||||
ajv: ^6.10.2
|
||||
ajv-keywords: ^3.4.1
|
||||
lockfileVersion: '6.0'
|
||||
|
||||
dependencies:
|
||||
ajv: 6.10.2
|
||||
ajv-keywords: 3.4.1_ajv@6.10.2
|
||||
ajv:
|
||||
specifier: ^6.10.2
|
||||
version: 6.10.2
|
||||
ajv-keywords:
|
||||
specifier: ^3.4.1
|
||||
version: 3.4.1(ajv@6.10.2)
|
||||
|
||||
packages:
|
||||
|
||||
/ajv-keywords/3.4.1_ajv@6.10.2:
|
||||
/ajv-keywords@3.4.1(ajv@6.10.2):
|
||||
resolution: {integrity: sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ==}
|
||||
peerDependencies:
|
||||
ajv: ^6.9.1
|
||||
@@ -18,7 +18,7 @@ packages:
|
||||
ajv: 6.10.2
|
||||
dev: false
|
||||
|
||||
/ajv/6.10.2:
|
||||
/ajv@6.10.2:
|
||||
resolution: {integrity: sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==}
|
||||
dependencies:
|
||||
fast-deep-equal: 2.0.1
|
||||
@@ -27,24 +27,24 @@ packages:
|
||||
uri-js: 4.2.2
|
||||
dev: false
|
||||
|
||||
/fast-deep-equal/2.0.1:
|
||||
/fast-deep-equal@2.0.1:
|
||||
resolution: {integrity: sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=}
|
||||
dev: false
|
||||
|
||||
/fast-json-stable-stringify/2.0.0:
|
||||
/fast-json-stable-stringify@2.0.0:
|
||||
resolution: {integrity: sha1-1RQsDK7msRifh9OnYREGT4bIu/I=}
|
||||
dev: false
|
||||
|
||||
/json-schema-traverse/0.4.1:
|
||||
/json-schema-traverse@0.4.1:
|
||||
resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
|
||||
dev: false
|
||||
|
||||
/punycode/2.1.1:
|
||||
/punycode@2.1.1:
|
||||
resolution: {integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==}
|
||||
engines: {node: '>=6'}
|
||||
dev: false
|
||||
|
||||
/uri-js/4.2.2:
|
||||
/uri-js@4.2.2:
|
||||
resolution: {integrity: sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==}
|
||||
dependencies:
|
||||
punycode: 2.1.1
|
||||
|
||||
18
__fixtures__/with-pnpm-update-ignore/pnpm-lock.yaml
generated
18
__fixtures__/with-pnpm-update-ignore/pnpm-lock.yaml
generated
@@ -1,21 +1,21 @@
|
||||
lockfileVersion: 5.4
|
||||
|
||||
specifiers:
|
||||
is-negative: 1.0.0
|
||||
is-positive: 1.0.0
|
||||
lockfileVersion: '6.0'
|
||||
|
||||
dependencies:
|
||||
is-negative: 1.0.0
|
||||
is-positive: 1.0.0
|
||||
is-negative:
|
||||
specifier: 1.0.0
|
||||
version: 1.0.0
|
||||
is-positive:
|
||||
specifier: 1.0.0
|
||||
version: 1.0.0
|
||||
|
||||
packages:
|
||||
|
||||
/is-negative/1.0.0:
|
||||
/is-negative@1.0.0:
|
||||
resolution: {integrity: sha512-1aKMsFUc7vYQGzt//8zhkjRWPoYkajY/I5MJEvrc0pDoHXrW7n5ri8DYxhy3rR+Dk0QFl7GjHHsZU1sppQrWtw==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: false
|
||||
|
||||
/is-positive/1.0.0:
|
||||
/is-positive@1.0.0:
|
||||
resolution: {integrity: sha512-xxzPGZ4P2uN6rROUa5N9Z7zTX6ERuE0hs6GUOc/cKBLF2NqKc16UwqHMt3tFg4CO6EBTE5UecUasg+3jZx3Ckg==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: false
|
||||
|
||||
85
__fixtures__/with-unsaved-deps/pnpm-lock.yaml
generated
85
__fixtures__/with-unsaved-deps/pnpm-lock.yaml
generated
@@ -1,50 +1,49 @@
|
||||
lockfileVersion: 5.4
|
||||
|
||||
specifiers:
|
||||
symlink-dir: 2.0.2
|
||||
lockfileVersion: '6.0'
|
||||
|
||||
dependencies:
|
||||
symlink-dir: 2.0.2
|
||||
symlink-dir:
|
||||
specifier: 2.0.2
|
||||
version: 2.0.2
|
||||
|
||||
packages:
|
||||
|
||||
/@types/mz/0.0.32:
|
||||
/@types/mz@0.0.32:
|
||||
resolution: {integrity: sha512-cy3yebKhrHuOcrJGkfwNHhpTXQLgmXSv1BX+4p32j+VUQ6aP2eJ5cL7OvGcAQx75fCTFaAIIAKewvqL+iwSd4g==}
|
||||
dependencies:
|
||||
'@types/node': 10.12.9
|
||||
dev: false
|
||||
|
||||
/@types/node/10.12.9:
|
||||
/@types/node@10.12.9:
|
||||
resolution: {integrity: sha512-eajkMXG812/w3w4a1OcBlaTwsFPO5F7fJ/amy+tieQxEMWBlbV1JGSjkFM+zkHNf81Cad+dfIRA+IBkvmvdAeA==}
|
||||
dev: false
|
||||
|
||||
/any-promise/1.3.0:
|
||||
/any-promise@1.3.0:
|
||||
resolution: {integrity: sha1-q8av7tzqUugJzcA3au0845Y10X8=}
|
||||
dev: false
|
||||
|
||||
/balanced-match/1.0.0:
|
||||
/balanced-match@1.0.0:
|
||||
resolution: {integrity: sha1-ibTRmasr7kneFk6gK4nORi1xt2c=}
|
||||
dev: false
|
||||
|
||||
/brace-expansion/1.1.11:
|
||||
/brace-expansion@1.1.11:
|
||||
resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
|
||||
dependencies:
|
||||
balanced-match: 1.0.0
|
||||
concat-map: 0.0.1
|
||||
dev: false
|
||||
|
||||
/concat-map/0.0.1:
|
||||
/concat-map@0.0.1:
|
||||
resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=}
|
||||
dev: false
|
||||
|
||||
/define-properties/1.1.3:
|
||||
/define-properties@1.1.3:
|
||||
resolution: {integrity: sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==}
|
||||
engines: {node: '>= 0.4'}
|
||||
dependencies:
|
||||
object-keys: 1.0.12
|
||||
dev: false
|
||||
|
||||
/es-abstract/1.12.0:
|
||||
/es-abstract@1.12.0:
|
||||
resolution: {integrity: sha512-C8Fx/0jFmV5IPoMOFPA9P9G5NtqW+4cOPit3MIuvR2t7Ag2K15EJTpxnHAYTzL+aYQJIESYeXZmDBfOBE1HcpA==}
|
||||
engines: {node: '>= 0.4'}
|
||||
dependencies:
|
||||
@@ -55,7 +54,7 @@ packages:
|
||||
is-regex: 1.0.4
|
||||
dev: false
|
||||
|
||||
/es-to-primitive/1.2.0:
|
||||
/es-to-primitive@1.2.0:
|
||||
resolution: {integrity: sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==}
|
||||
engines: {node: '>= 0.4'}
|
||||
dependencies:
|
||||
@@ -64,15 +63,15 @@ packages:
|
||||
is-symbol: 1.0.2
|
||||
dev: false
|
||||
|
||||
/fs.realpath/1.0.0:
|
||||
/fs.realpath@1.0.0:
|
||||
resolution: {integrity: sha1-FQStJSMVjKpA20onh8sBQRmU6k8=}
|
||||
dev: false
|
||||
|
||||
/function-bind/1.1.1:
|
||||
/function-bind@1.1.1:
|
||||
resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==}
|
||||
dev: false
|
||||
|
||||
/glob/7.1.3:
|
||||
/glob@7.1.3:
|
||||
resolution: {integrity: sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==}
|
||||
dependencies:
|
||||
fs.realpath: 1.0.0
|
||||
@@ -83,87 +82,87 @@ packages:
|
||||
path-is-absolute: 1.0.1
|
||||
dev: false
|
||||
|
||||
/graceful-fs/4.1.15:
|
||||
/graceful-fs@4.1.15:
|
||||
resolution: {integrity: sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA==}
|
||||
dev: false
|
||||
|
||||
/has-symbols/1.0.0:
|
||||
/has-symbols@1.0.0:
|
||||
resolution: {integrity: sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=}
|
||||
engines: {node: '>= 0.4'}
|
||||
dev: false
|
||||
|
||||
/has/1.0.3:
|
||||
/has@1.0.3:
|
||||
resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==}
|
||||
engines: {node: '>= 0.4.0'}
|
||||
dependencies:
|
||||
function-bind: 1.1.1
|
||||
dev: false
|
||||
|
||||
/inflight/1.0.6:
|
||||
/inflight@1.0.6:
|
||||
resolution: {integrity: sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=}
|
||||
dependencies:
|
||||
once: 1.4.0
|
||||
wrappy: 1.0.2
|
||||
dev: false
|
||||
|
||||
/inherits/2.0.3:
|
||||
/inherits@2.0.3:
|
||||
resolution: {integrity: sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=}
|
||||
dev: false
|
||||
|
||||
/is-callable/1.1.4:
|
||||
/is-callable@1.1.4:
|
||||
resolution: {integrity: sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==}
|
||||
engines: {node: '>= 0.4'}
|
||||
dev: false
|
||||
|
||||
/is-date-object/1.0.1:
|
||||
/is-date-object@1.0.1:
|
||||
resolution: {integrity: sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=}
|
||||
engines: {node: '>= 0.4'}
|
||||
dev: false
|
||||
|
||||
/is-regex/1.0.4:
|
||||
/is-regex@1.0.4:
|
||||
resolution: {integrity: sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=}
|
||||
engines: {node: '>= 0.4'}
|
||||
dependencies:
|
||||
has: 1.0.3
|
||||
dev: false
|
||||
|
||||
/is-symbol/1.0.2:
|
||||
/is-symbol@1.0.2:
|
||||
resolution: {integrity: sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==}
|
||||
engines: {node: '>= 0.4'}
|
||||
dependencies:
|
||||
has-symbols: 1.0.0
|
||||
dev: false
|
||||
|
||||
/is-windows/1.0.2:
|
||||
/is-windows@1.0.2:
|
||||
resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: false
|
||||
|
||||
/minimatch/3.0.4:
|
||||
/minimatch@3.0.4:
|
||||
resolution: {integrity: sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==}
|
||||
dependencies:
|
||||
brace-expansion: 1.1.11
|
||||
dev: false
|
||||
|
||||
/minimist/0.0.8:
|
||||
/minimist@0.0.8:
|
||||
resolution: {integrity: sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=}
|
||||
dev: false
|
||||
|
||||
/mkdirp-promise/5.0.1:
|
||||
/mkdirp-promise@5.0.1:
|
||||
resolution: {integrity: sha1-6bj2jlUsaKnBcTuEiD96HdA5uKE=}
|
||||
engines: {node: '>=4'}
|
||||
dependencies:
|
||||
mkdirp: 0.5.1
|
||||
dev: false
|
||||
|
||||
/mkdirp/0.5.1:
|
||||
/mkdirp@0.5.1:
|
||||
resolution: {integrity: sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=}
|
||||
hasBin: true
|
||||
dependencies:
|
||||
minimist: 0.0.8
|
||||
dev: false
|
||||
|
||||
/mz/2.7.0:
|
||||
/mz@2.7.0:
|
||||
resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==}
|
||||
dependencies:
|
||||
any-promise: 1.3.0
|
||||
@@ -171,17 +170,17 @@ packages:
|
||||
thenify-all: 1.6.0
|
||||
dev: false
|
||||
|
||||
/object-assign/4.1.1:
|
||||
/object-assign@4.1.1:
|
||||
resolution: {integrity: sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=}
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: false
|
||||
|
||||
/object-keys/1.0.12:
|
||||
/object-keys@1.0.12:
|
||||
resolution: {integrity: sha512-FTMyFUm2wBcGHnH2eXmz7tC6IwlqQZ6mVZ+6dm6vZ4IQIHjs6FdNsQBuKGPuUUUY6NfJw2PshC08Tn6LzLDOag==}
|
||||
engines: {node: '>= 0.4'}
|
||||
dev: false
|
||||
|
||||
/object.getownpropertydescriptors/2.0.3:
|
||||
/object.getownpropertydescriptors@2.0.3:
|
||||
resolution: {integrity: sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=}
|
||||
engines: {node: '>= 0.8'}
|
||||
dependencies:
|
||||
@@ -189,13 +188,13 @@ packages:
|
||||
es-abstract: 1.12.0
|
||||
dev: false
|
||||
|
||||
/once/1.4.0:
|
||||
/once@1.4.0:
|
||||
resolution: {integrity: sha1-WDsap3WWHUsROsF9nFC6753Xa9E=}
|
||||
dependencies:
|
||||
wrappy: 1.0.2
|
||||
dev: false
|
||||
|
||||
/path-is-absolute/1.0.1:
|
||||
/path-is-absolute@1.0.1:
|
||||
resolution: {integrity: sha1-F0uSaHNVNP+8es5r9TpanhtcX18=}
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: false
|
||||
@@ -209,14 +208,14 @@ packages:
|
||||
util.promisify: 1.0.0
|
||||
dev: false
|
||||
|
||||
/rimraf/2.6.2:
|
||||
/rimraf@2.6.2:
|
||||
resolution: {integrity: sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==}
|
||||
hasBin: true
|
||||
dependencies:
|
||||
glob: 7.1.3
|
||||
dev: false
|
||||
|
||||
/symlink-dir/2.0.2:
|
||||
/symlink-dir@2.0.2:
|
||||
resolution: {integrity: sha512-jMqXkCcBVvpdyJKt8BLCp7FVIywe4sfEOL6Ugm1LpUGiwJzdj9q3ld/ECYV+seT/ly6duG0koT6d6jZbcSQ9mg==}
|
||||
engines: {node: '>=6'}
|
||||
hasBin: true
|
||||
@@ -230,26 +229,26 @@ packages:
|
||||
rename-overwrite: 1.0.3
|
||||
dev: false
|
||||
|
||||
/thenify-all/1.6.0:
|
||||
/thenify-all@1.6.0:
|
||||
resolution: {integrity: sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY=}
|
||||
engines: {node: '>=0.8'}
|
||||
dependencies:
|
||||
thenify: 3.3.0
|
||||
dev: false
|
||||
|
||||
/thenify/3.3.0:
|
||||
/thenify@3.3.0:
|
||||
resolution: {integrity: sha1-5p44obq+lpsBCCB5eLn2K4hgSDk=}
|
||||
dependencies:
|
||||
any-promise: 1.3.0
|
||||
dev: false
|
||||
|
||||
/util.promisify/1.0.0:
|
||||
/util.promisify@1.0.0:
|
||||
resolution: {integrity: sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==}
|
||||
dependencies:
|
||||
define-properties: 1.1.3
|
||||
object.getownpropertydescriptors: 2.0.3
|
||||
dev: false
|
||||
|
||||
/wrappy/1.0.2:
|
||||
/wrappy@1.0.2:
|
||||
resolution: {integrity: sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=}
|
||||
dev: false
|
||||
|
||||
@@ -1,43 +1,45 @@
|
||||
lockfileVersion: 5.4
|
||||
lockfileVersion: '6.0'
|
||||
|
||||
importers:
|
||||
|
||||
.:
|
||||
specifiers:
|
||||
is-positive: 1.0.0
|
||||
dependencies:
|
||||
is-positive: 1.0.0
|
||||
is-positive:
|
||||
specifier: 1.0.0
|
||||
version: 1.0.0
|
||||
|
||||
packages/f:
|
||||
specifiers:
|
||||
is-negative: 1.0.0
|
||||
is-positive: 1.0.0
|
||||
dependencies:
|
||||
is-negative: 1.0.0
|
||||
is-positive: 1.0.0
|
||||
is-negative:
|
||||
specifier: 1.0.0
|
||||
version: 1.0.0
|
||||
is-positive:
|
||||
specifier: 1.0.0
|
||||
version: 1.0.0
|
||||
|
||||
packages/g:
|
||||
specifiers:
|
||||
'@pnpm.e2e/external-depend-on-internal-dep': 1.0.0
|
||||
is-positive: 1.0.0
|
||||
dependencies:
|
||||
'@pnpm.e2e/external-depend-on-internal-dep': 1.0.0
|
||||
is-positive: 1.0.0
|
||||
'@pnpm.e2e/external-depend-on-internal-dep':
|
||||
specifier: 1.0.0
|
||||
version: 1.0.0
|
||||
is-positive:
|
||||
specifier: 1.0.0
|
||||
version: 1.0.0
|
||||
|
||||
packages:
|
||||
|
||||
/@pnpm.e2e/external-depend-on-internal-dep/1.0.0:
|
||||
/@pnpm.e2e/external-depend-on-internal-dep@1.0.0:
|
||||
resolution: {integrity: sha512-UPhSnFgg3p1acuOcuWgunypA7tTqhVCBUUC4laNotJw1RUbTldprdLJmrhOvGylvw4VBipHnXPm/y9wTIAf53A==}
|
||||
dependencies:
|
||||
'@pnpm.e2e/internal-f': link:packages/f
|
||||
dev: false
|
||||
|
||||
/is-negative/1.0.0:
|
||||
/is-negative@1.0.0:
|
||||
resolution: {integrity: sha512-1aKMsFUc7vYQGzt//8zhkjRWPoYkajY/I5MJEvrc0pDoHXrW7n5ri8DYxhy3rR+Dk0QFl7GjHHsZU1sppQrWtw==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: false
|
||||
|
||||
/is-positive/1.0.0:
|
||||
/is-positive@1.0.0:
|
||||
resolution: {integrity: sha512-xxzPGZ4P2uN6rROUa5N9Z7zTX6ERuE0hs6GUOc/cKBLF2NqKc16UwqHMt3tFg4CO6EBTE5UecUasg+3jZx3Ckg==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: false
|
||||
|
||||
25
__fixtures__/workspace-with-2-pkgs/pnpm-lock.yaml
generated
25
__fixtures__/workspace-with-2-pkgs/pnpm-lock.yaml
generated
@@ -1,19 +1,24 @@
|
||||
lockfileVersion: '6.0'
|
||||
|
||||
importers:
|
||||
.:
|
||||
specifiers: {}
|
||||
|
||||
.: {}
|
||||
|
||||
packages/bar:
|
||||
dependencies:
|
||||
is-positive: 1.0.0
|
||||
specifiers:
|
||||
is-positive: 1.0.0
|
||||
is-positive:
|
||||
specifier: 1.0.0
|
||||
version: 1.0.0
|
||||
|
||||
packages/foo:
|
||||
dependencies:
|
||||
is-positive: 1.0.0
|
||||
specifiers:
|
||||
is-positive: 1.0.0
|
||||
lockfileVersion: 5.1
|
||||
is-positive:
|
||||
specifier: 1.0.0
|
||||
version: 1.0.0
|
||||
|
||||
packages:
|
||||
/is-positive/1.0.0:
|
||||
|
||||
/is-positive@1.0.0:
|
||||
dev: false
|
||||
engines:
|
||||
node: '>=0.10.0'
|
||||
|
||||
@@ -1,16 +1,20 @@
|
||||
lockfileVersion: '6.0'
|
||||
|
||||
importers:
|
||||
.:
|
||||
specifiers: {}
|
||||
|
||||
.: {}
|
||||
|
||||
packages/bar:
|
||||
dependencies:
|
||||
is-positive: 3.1.0
|
||||
specifiers:
|
||||
is-positive: 3.1.0
|
||||
packages/foo:
|
||||
specifiers: {}
|
||||
lockfileVersion: 5.2
|
||||
is-positive:
|
||||
specifier: 3.1.0
|
||||
version: 3.1.0
|
||||
|
||||
packages/foo: {}
|
||||
|
||||
packages:
|
||||
/is-positive/3.1.0:
|
||||
|
||||
/is-positive@3.1.0:
|
||||
dev: false
|
||||
engines:
|
||||
node: '>=0.10.0'
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "foo",
|
||||
"dependencies": {
|
||||
"ajv": "^6.12.5"
|
||||
"ajv": "^6.12.6"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,25 +1,24 @@
|
||||
lockfileVersion: 5.4
|
||||
lockfileVersion: '6.0'
|
||||
|
||||
importers:
|
||||
|
||||
.:
|
||||
specifiers: {}
|
||||
.: {}
|
||||
|
||||
packages/bar:
|
||||
specifiers:
|
||||
ajv: ^6.10.2
|
||||
dependencies:
|
||||
ajv: 6.10.2
|
||||
ajv:
|
||||
specifier: ^6.10.2
|
||||
version: 6.10.2
|
||||
|
||||
packages/foo:
|
||||
specifiers:
|
||||
ajv: ^6.12.5
|
||||
dependencies:
|
||||
ajv: 6.12.6
|
||||
ajv:
|
||||
specifier: ^6.12.6
|
||||
version: 6.12.6
|
||||
|
||||
packages:
|
||||
|
||||
/ajv/6.10.2:
|
||||
/ajv@6.10.2:
|
||||
resolution: {integrity: sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==}
|
||||
dependencies:
|
||||
fast-deep-equal: 2.0.1
|
||||
@@ -28,7 +27,7 @@ packages:
|
||||
uri-js: 4.2.2
|
||||
dev: false
|
||||
|
||||
/ajv/6.12.6:
|
||||
/ajv@6.12.6:
|
||||
resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
|
||||
dependencies:
|
||||
fast-deep-equal: 3.1.3
|
||||
@@ -37,43 +36,43 @@ packages:
|
||||
uri-js: 4.4.1
|
||||
dev: false
|
||||
|
||||
/fast-deep-equal/2.0.1:
|
||||
/fast-deep-equal@2.0.1:
|
||||
resolution: {integrity: sha512-bCK/2Z4zLidyB4ReuIsvALH6w31YfAQDmXMqMx6FyfHqvBxtjC0eRumeSu4Bs3XtXwpyIywtSTrVT99BxY1f9w==}
|
||||
dev: false
|
||||
|
||||
/fast-deep-equal/3.1.3:
|
||||
/fast-deep-equal@3.1.3:
|
||||
resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
|
||||
dev: false
|
||||
|
||||
/fast-json-stable-stringify/2.0.0:
|
||||
/fast-json-stable-stringify@2.0.0:
|
||||
resolution: {integrity: sha1-1RQsDK7msRifh9OnYREGT4bIu/I=}
|
||||
dev: false
|
||||
|
||||
/fast-json-stable-stringify/2.1.0:
|
||||
/fast-json-stable-stringify@2.1.0:
|
||||
resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
|
||||
dev: false
|
||||
|
||||
/json-schema-traverse/0.4.1:
|
||||
/json-schema-traverse@0.4.1:
|
||||
resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
|
||||
dev: false
|
||||
|
||||
/punycode/2.1.1:
|
||||
/punycode@2.1.1:
|
||||
resolution: {integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==}
|
||||
engines: {node: '>=6'}
|
||||
dev: false
|
||||
|
||||
/punycode/2.3.0:
|
||||
/punycode@2.3.0:
|
||||
resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==}
|
||||
engines: {node: '>=6'}
|
||||
dev: false
|
||||
|
||||
/uri-js/4.2.2:
|
||||
/uri-js@4.2.2:
|
||||
resolution: {integrity: sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==}
|
||||
dependencies:
|
||||
punycode: 2.1.1
|
||||
dev: false
|
||||
|
||||
/uri-js/4.4.1:
|
||||
/uri-js@4.4.1:
|
||||
resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
|
||||
dependencies:
|
||||
punycode: 2.3.0
|
||||
|
||||
@@ -1,41 +1,40 @@
|
||||
lockfileVersion: 5.4
|
||||
lockfileVersion: '6.0'
|
||||
|
||||
importers:
|
||||
|
||||
.:
|
||||
specifiers: {}
|
||||
.: {}
|
||||
|
||||
packages/bar:
|
||||
specifiers:
|
||||
uri-js: '=4.2.2'
|
||||
dependencies:
|
||||
uri-js: 4.2.2
|
||||
uri-js:
|
||||
specifier: '=4.2.2'
|
||||
version: 4.2.2
|
||||
|
||||
packages/foo:
|
||||
specifiers:
|
||||
uri-js: '=4.4.1'
|
||||
dependencies:
|
||||
uri-js: 4.4.1
|
||||
uri-js:
|
||||
specifier: '=4.4.1'
|
||||
version: 4.4.1
|
||||
|
||||
packages:
|
||||
|
||||
/punycode/2.1.1:
|
||||
/punycode@2.1.1:
|
||||
resolution: {integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==}
|
||||
engines: {node: '>=6'}
|
||||
dev: false
|
||||
|
||||
/punycode/2.3.0:
|
||||
/punycode@2.3.0:
|
||||
resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==}
|
||||
engines: {node: '>=6'}
|
||||
dev: false
|
||||
|
||||
/uri-js/4.2.2:
|
||||
/uri-js@4.2.2:
|
||||
resolution: {integrity: sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==}
|
||||
dependencies:
|
||||
punycode: 2.1.1
|
||||
dev: false
|
||||
|
||||
/uri-js/4.4.1:
|
||||
/uri-js@4.4.1:
|
||||
resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
|
||||
dependencies:
|
||||
punycode: 2.3.0
|
||||
|
||||
@@ -1,33 +1,33 @@
|
||||
lockfileVersion: 5.4
|
||||
lockfileVersion: '6.0'
|
||||
|
||||
importers:
|
||||
|
||||
.:
|
||||
specifiers:
|
||||
'@scope/a': workspace:*
|
||||
dependencies:
|
||||
'@scope/a': link:packages/a
|
||||
'@scope/a':
|
||||
specifier: workspace:*
|
||||
version: link:packages/a
|
||||
|
||||
packages/a:
|
||||
specifiers:
|
||||
'@scope/b': workspace:*
|
||||
dependencies:
|
||||
'@scope/b': link:../b
|
||||
'@scope/b':
|
||||
specifier: workspace:*
|
||||
version: link:../b
|
||||
|
||||
packages/b:
|
||||
specifiers:
|
||||
'@scope/c': workspace:*
|
||||
is-positive: 1.0.0
|
||||
dependencies:
|
||||
'@scope/c': link:../c
|
||||
is-positive: 1.0.0
|
||||
'@scope/c':
|
||||
specifier: workspace:*
|
||||
version: link:../c
|
||||
is-positive:
|
||||
specifier: 1.0.0
|
||||
version: 1.0.0
|
||||
|
||||
packages/c:
|
||||
specifiers: {}
|
||||
packages/c: {}
|
||||
|
||||
packages:
|
||||
|
||||
/is-positive/1.0.0:
|
||||
/is-positive@1.0.0:
|
||||
resolution: {integrity: sha512-xxzPGZ4P2uN6rROUa5N9Z7zTX6ERuE0hs6GUOc/cKBLF2NqKc16UwqHMt3tFg4CO6EBTE5UecUasg+3jZx3Ckg==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: false
|
||||
|
||||
@@ -1,25 +1,24 @@
|
||||
lockfileVersion: 5.3
|
||||
lockfileVersion: '6.0'
|
||||
|
||||
importers:
|
||||
|
||||
.:
|
||||
specifiers: {}
|
||||
.: {}
|
||||
|
||||
packages/private:
|
||||
specifiers:
|
||||
is-positive: 1.0.0
|
||||
dependencies:
|
||||
is-positive: 1.0.0
|
||||
is-positive:
|
||||
specifier: 1.0.0
|
||||
version: 1.0.0
|
||||
|
||||
packages/public:
|
||||
specifiers:
|
||||
is-positive: 1.0.0
|
||||
dependencies:
|
||||
is-positive: 1.0.0
|
||||
is-positive:
|
||||
specifier: 1.0.0
|
||||
version: 1.0.0
|
||||
|
||||
packages:
|
||||
|
||||
/is-positive/1.0.0:
|
||||
/is-positive@1.0.0:
|
||||
resolution: {integrity: sha1-iACYVrZKLx632LsBeUGEJK4EUss=}
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: false
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import path from 'path'
|
||||
import { assertStore } from '@pnpm/assert-store'
|
||||
import { WANTED_LOCKFILE } from '@pnpm/constants'
|
||||
import { Lockfile, ProjectSnapshot } from '@pnpm/lockfile-types'
|
||||
import { LockfileV6 as Lockfile, ProjectSnapshotV6 as ProjectSnapshot } from '@pnpm/lockfile-types'
|
||||
import { Modules, readModulesManifest } from '@pnpm/modules-yaml'
|
||||
import { REGISTRY_MOCK_PORT } from '@pnpm/registry-mock'
|
||||
import readYamlFile from 'read-yaml-file'
|
||||
|
||||
@@ -1,14 +1,13 @@
|
||||
lockfileVersion: 5.4
|
||||
|
||||
specifiers:
|
||||
is-positive: 3.1.0
|
||||
lockfileVersion: '6.0'
|
||||
|
||||
dependencies:
|
||||
is-positive: 3.1.0
|
||||
is-positive:
|
||||
specifier: 3.1.0
|
||||
version: 3.1.0
|
||||
|
||||
packages:
|
||||
|
||||
/is-positive/3.1.0:
|
||||
/is-positive@3.1.0:
|
||||
resolution: {integrity: sha1-hX21hKG6XRyymAUn/DtsQ103sP0=}
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: false
|
||||
|
||||
@@ -180,7 +180,7 @@ export async function getConfig (
|
||||
}
|
||||
const rcOptionsTypes = { ...types, ...opts.rcOptionsTypes }
|
||||
const { config: npmConfig, warnings, failedToLoadBuiltInConfig } = loadNpmConf(cliOptions, rcOptionsTypes, {
|
||||
'auto-install-peers': false,
|
||||
'auto-install-peers': true,
|
||||
bail: true,
|
||||
color: 'auto',
|
||||
'enable-modules-dir': true,
|
||||
@@ -217,8 +217,9 @@ export async function getConfig (
|
||||
'recursive-install': true,
|
||||
registry: npmDefaults.registry,
|
||||
'resolution-mode': 'highest',
|
||||
'resolve-peers-from-workspace-root': true,
|
||||
'save-peer': false,
|
||||
'save-workspace-protocol': true,
|
||||
'save-workspace-protocol': 'rolling',
|
||||
'scripts-prepend-node-path': false,
|
||||
'side-effects-cache': true,
|
||||
symlink: true,
|
||||
@@ -229,6 +230,7 @@ export async function getConfig (
|
||||
'strict-peer-dependencies': false,
|
||||
'unsafe-perm': npmDefaults['unsafe-perm'],
|
||||
'use-beta-cli': false,
|
||||
'use-lockfile-v6': true,
|
||||
'use-inline-specifiers-lockfile-format': false,
|
||||
userconfig: npmDefaults.userconfig,
|
||||
'verify-store-integrity': true,
|
||||
|
||||
@@ -23,6 +23,29 @@ export interface ProjectSnapshot {
|
||||
publishDirectory?: string
|
||||
}
|
||||
|
||||
export interface LockfileV6 {
|
||||
importers: Record<string, ProjectSnapshotV6>
|
||||
lockfileVersion: number | string
|
||||
time?: Record<string, string>
|
||||
packages?: PackageSnapshots
|
||||
neverBuiltDependencies?: string[]
|
||||
onlyBuiltDependencies?: string[]
|
||||
overrides?: Record<string, string>
|
||||
packageExtensionsChecksum?: string
|
||||
patchedDependencies?: Record<string, PatchFile>
|
||||
}
|
||||
|
||||
export interface ProjectSnapshotV6 {
|
||||
specifiers: ResolvedDependenciesOfImporters
|
||||
dependencies?: ResolvedDependenciesOfImporters
|
||||
optionalDependencies?: ResolvedDependenciesOfImporters
|
||||
devDependencies?: ResolvedDependenciesOfImporters
|
||||
dependenciesMeta?: DependenciesMeta
|
||||
publishDirectory?: string
|
||||
}
|
||||
|
||||
export type ResolvedDependenciesOfImporters = Record<string, { version: string, specifier: string }>
|
||||
|
||||
export interface PackageSnapshots {
|
||||
[packagePath: string]: PackageSnapshot
|
||||
}
|
||||
|
||||
@@ -1036,6 +1036,10 @@ exports[`plugin-commands-audit audit --audit-level 1`] = `
|
||||
│ │ requestretry@1.13.0 > request@2.88.0 > │
|
||||
│ │ http-signature@1.2.0 > jsprim@1.4.1 > │
|
||||
│ │ json-schema@0.2.3 │
|
||||
│ │ │
|
||||
│ │ . > karma@2.0.5 > useragent@2.2.1 > request@2.88.0 > │
|
||||
│ │ http-signature@1.2.0 > jsprim@1.4.1 > │
|
||||
│ │ json-schema@0.2.3 │
|
||||
├─────────────────────┼────────────────────────────────────────────────────────┤
|
||||
│ More info │ https://github.com/advisories/GHSA-896r-f27r-55mw │
|
||||
└─────────────────────┴────────────────────────────────────────────────────────┘
|
||||
@@ -1118,6 +1122,9 @@ exports[`plugin-commands-audit audit --audit-level 1`] = `
|
||||
│ │ . > karma@2.0.5 > log4js@2.11.0 > slack-node@0.2.0 > │
|
||||
│ │ requestretry@1.13.0 > request@2.88.0 > │
|
||||
│ │ har-validator@5.1.3 > ajv@6.10.2 │
|
||||
│ │ │
|
||||
│ │ . > karma@2.0.5 > useragent@2.2.1 > request@2.88.0 > │
|
||||
│ │ har-validator@5.1.3 > ajv@6.10.2 │
|
||||
├─────────────────────┼────────────────────────────────────────────────────────┤
|
||||
│ More info │ https://github.com/advisories/GHSA-v88g-cgmw-v5xw │
|
||||
└─────────────────────┴────────────────────────────────────────────────────────┘
|
||||
@@ -2265,6 +2272,10 @@ exports[`plugin-commands-audit audit 1`] = `
|
||||
│ │ requestretry@1.13.0 > request@2.88.0 > │
|
||||
│ │ http-signature@1.2.0 > jsprim@1.4.1 > │
|
||||
│ │ json-schema@0.2.3 │
|
||||
│ │ │
|
||||
│ │ . > karma@2.0.5 > useragent@2.2.1 > request@2.88.0 > │
|
||||
│ │ http-signature@1.2.0 > jsprim@1.4.1 > │
|
||||
│ │ json-schema@0.2.3 │
|
||||
├─────────────────────┼────────────────────────────────────────────────────────┤
|
||||
│ More info │ https://github.com/advisories/GHSA-896r-f27r-55mw │
|
||||
└─────────────────────┴────────────────────────────────────────────────────────┘
|
||||
@@ -2347,6 +2358,9 @@ exports[`plugin-commands-audit audit 1`] = `
|
||||
│ │ . > karma@2.0.5 > log4js@2.11.0 > slack-node@0.2.0 > │
|
||||
│ │ requestretry@1.13.0 > request@2.88.0 > │
|
||||
│ │ har-validator@5.1.3 > ajv@6.10.2 │
|
||||
│ │ │
|
||||
│ │ . > karma@2.0.5 > useragent@2.2.1 > request@2.88.0 > │
|
||||
│ │ har-validator@5.1.3 > ajv@6.10.2 │
|
||||
├─────────────────────┼────────────────────────────────────────────────────────┤
|
||||
│ More info │ https://github.com/advisories/GHSA-v88g-cgmw-v5xw │
|
||||
└─────────────────────┴────────────────────────────────────────────────────────┘
|
||||
@@ -3395,6 +3409,10 @@ exports[`plugin-commands-audit audit: CVEs in ignoreCves do not show up 1`] = `
|
||||
│ │ requestretry@1.13.0 > request@2.88.0 > │
|
||||
│ │ http-signature@1.2.0 > jsprim@1.4.1 > │
|
||||
│ │ json-schema@0.2.3 │
|
||||
│ │ │
|
||||
│ │ . > karma@2.0.5 > useragent@2.2.1 > request@2.88.0 > │
|
||||
│ │ http-signature@1.2.0 > jsprim@1.4.1 > │
|
||||
│ │ json-schema@0.2.3 │
|
||||
├─────────────────────┼────────────────────────────────────────────────────────┤
|
||||
│ More info │ https://github.com/advisories/GHSA-896r-f27r-55mw │
|
||||
└─────────────────────┴────────────────────────────────────────────────────────┘
|
||||
@@ -3477,6 +3495,9 @@ exports[`plugin-commands-audit audit: CVEs in ignoreCves do not show up 1`] = `
|
||||
│ │ . > karma@2.0.5 > log4js@2.11.0 > slack-node@0.2.0 > │
|
||||
│ │ requestretry@1.13.0 > request@2.88.0 > │
|
||||
│ │ har-validator@5.1.3 > ajv@6.10.2 │
|
||||
│ │ │
|
||||
│ │ . > karma@2.0.5 > useragent@2.2.1 > request@2.88.0 > │
|
||||
│ │ har-validator@5.1.3 > ajv@6.10.2 │
|
||||
├─────────────────────┼────────────────────────────────────────────────────────┤
|
||||
│ More info │ https://github.com/advisories/GHSA-v88g-cgmw-v5xw │
|
||||
└─────────────────────┴────────────────────────────────────────────────────────┘
|
||||
@@ -4922,7 +4943,8 @@ exports[`plugin-commands-audit audit: CVEs in ignoreCves do not show up when JSO
|
||||
"paths": [
|
||||
". > karma@2.0.5 > log4js@2.11.0 > hipchat-notifier@1.1.0 > request@2.88.0 > http-signature@1.2.0 > jsprim@1.4.1 > json-schema@0.2.3",
|
||||
". > karma@2.0.5 > log4js@2.11.0 > loggly@1.1.1 > request@2.75.0 > http-signature@1.1.1 > jsprim@1.4.1 > json-schema@0.2.3",
|
||||
". > karma@2.0.5 > log4js@2.11.0 > slack-node@0.2.0 > requestretry@1.13.0 > request@2.88.0 > http-signature@1.2.0 > jsprim@1.4.1 > json-schema@0.2.3"
|
||||
". > karma@2.0.5 > log4js@2.11.0 > slack-node@0.2.0 > requestretry@1.13.0 > request@2.88.0 > http-signature@1.2.0 > jsprim@1.4.1 > json-schema@0.2.3",
|
||||
". > karma@2.0.5 > useragent@2.2.1 > request@2.88.0 > http-signature@1.2.0 > jsprim@1.4.1 > json-schema@0.2.3"
|
||||
]
|
||||
}
|
||||
],
|
||||
@@ -5338,7 +5360,8 @@ exports[`plugin-commands-audit audit: CVEs in ignoreCves do not show up when JSO
|
||||
"version": "6.10.2",
|
||||
"paths": [
|
||||
". > karma@2.0.5 > log4js@2.11.0 > hipchat-notifier@1.1.0 > request@2.88.0 > har-validator@5.1.3 > ajv@6.10.2",
|
||||
". > karma@2.0.5 > log4js@2.11.0 > slack-node@0.2.0 > requestretry@1.13.0 > request@2.88.0 > har-validator@5.1.3 > ajv@6.10.2"
|
||||
". > karma@2.0.5 > log4js@2.11.0 > slack-node@0.2.0 > requestretry@1.13.0 > request@2.88.0 > har-validator@5.1.3 > ajv@6.10.2",
|
||||
". > karma@2.0.5 > useragent@2.2.1 > request@2.88.0 > har-validator@5.1.3 > ajv@6.10.2"
|
||||
]
|
||||
}
|
||||
],
|
||||
|
||||
1174
lockfile/plugin-commands-audit/test/fixtures/has-vulnerabilities/pnpm-lock.yaml
generated
vendored
1174
lockfile/plugin-commands-audit/test/fixtures/has-vulnerabilities/pnpm-lock.yaml
generated
vendored
File diff suppressed because it is too large
Load Diff
@@ -105,6 +105,10 @@ export function parse (dependencyPath: string) {
|
||||
const parts = dependencyPath.split('/')
|
||||
if (!_isAbsolute) parts.shift()
|
||||
const host = _isAbsolute ? parts.shift() : undefined
|
||||
if (parts.length === 0) return {
|
||||
host,
|
||||
isAbsolute: _isAbsolute,
|
||||
}
|
||||
const name = parts[0].startsWith('@')
|
||||
? `${parts.shift()}/${parts.shift()}` // eslint-disable-line @typescript-eslint/restrict-template-expressions
|
||||
: parts.shift()
|
||||
|
||||
@@ -99,6 +99,11 @@ test('parse()', () => {
|
||||
})
|
||||
|
||||
expect(() => parse('/foo/bar')).toThrow(/\/foo\/bar is an invalid relative dependency path/)
|
||||
|
||||
expect(parse('file:project(foo@1.0.0)')).toStrictEqual({
|
||||
host: 'file:project(foo@1.0.0)',
|
||||
isAbsolute: true,
|
||||
})
|
||||
})
|
||||
|
||||
test('refToAbsolute()', () => {
|
||||
|
||||
@@ -1,28 +1,29 @@
|
||||
lockfileVersion: 5.4
|
||||
lockfileVersion: '6.0'
|
||||
|
||||
importers:
|
||||
|
||||
.:
|
||||
specifiers:
|
||||
'@zkochan/git-config': 0.1.0
|
||||
is-positive: 1.0.0
|
||||
dependencies:
|
||||
'@zkochan/git-config': 0.1.0
|
||||
is-positive: 1.0.0
|
||||
'@zkochan/git-config':
|
||||
specifier: 0.1.0
|
||||
version: 0.1.0
|
||||
is-positive:
|
||||
specifier: 1.0.0
|
||||
version: 1.0.0
|
||||
|
||||
packages:
|
||||
|
||||
/@zkochan/git-config/0.1.0:
|
||||
/@zkochan/git-config@0.1.0:
|
||||
resolution: {integrity: sha1-lHdoOUuwyBsfrnA+/pjQDYyXl+A=}
|
||||
dependencies:
|
||||
ini: 1.3.8
|
||||
dev: false
|
||||
|
||||
/ini/1.3.8:
|
||||
/ini@1.3.8:
|
||||
resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==}
|
||||
dev: false
|
||||
|
||||
/is-positive/1.0.0:
|
||||
/is-positive@1.0.0:
|
||||
resolution: {integrity: sha1-iACYVrZKLx632LsBeUGEJK4EUss=}
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: false
|
||||
|
||||
@@ -75,6 +75,7 @@
|
||||
"@pnpm/client": "workspace:*",
|
||||
"@pnpm/core": "workspace:*",
|
||||
"@pnpm/git-utils": "workspace:*",
|
||||
"@pnpm/lockfile-types": "workspace:*",
|
||||
"@pnpm/package-store": "workspace:*",
|
||||
"@pnpm/prepare": "workspace:*",
|
||||
"@pnpm/registry-mock": "3.3.0",
|
||||
|
||||
@@ -137,7 +137,7 @@ const defaults = async (opts: InstallOptions) => {
|
||||
return {
|
||||
allowedDeprecatedVersions: {},
|
||||
allowNonAppliedPatches: false,
|
||||
autoInstallPeers: false,
|
||||
autoInstallPeers: true,
|
||||
childConcurrency: 5,
|
||||
depth: 0,
|
||||
enablePnp: false,
|
||||
@@ -179,7 +179,7 @@ const defaults = async (opts: InstallOptions) => {
|
||||
rawConfig: {},
|
||||
registries: DEFAULT_REGISTRIES,
|
||||
resolutionMode: 'highest',
|
||||
saveWorkspaceProtocol: true,
|
||||
saveWorkspaceProtocol: 'rolling',
|
||||
lockfileIncludeTarballUrl: false,
|
||||
scriptsPrependNodePath: false,
|
||||
shamefullyHoist: false,
|
||||
@@ -197,6 +197,7 @@ const defaults = async (opts: InstallOptions) => {
|
||||
process.getuid() !== 0,
|
||||
update: false,
|
||||
useLockfile: true,
|
||||
useLockfileV6: true,
|
||||
saveLockfile: true,
|
||||
useGitBranchLockfile: false,
|
||||
useInlineSpecifiersLockfileFormat: false,
|
||||
@@ -207,8 +208,8 @@ const defaults = async (opts: InstallOptions) => {
|
||||
enableModulesDir: true,
|
||||
modulesCacheMaxAge: 7 * 24 * 60,
|
||||
resolveSymlinksInInjectedDirs: false,
|
||||
dedupeDirectDeps: false,
|
||||
resolvePeersFromWorkspaceRoot: false,
|
||||
dedupeDirectDeps: true,
|
||||
resolvePeersFromWorkspaceRoot: true,
|
||||
extendNodePath: true,
|
||||
} as StrictInstallOptions
|
||||
}
|
||||
|
||||
@@ -25,7 +25,7 @@ test('installation breaks if the lockfile contains the wrong checksum', async ()
|
||||
const corruptedLockfile = await project.readLockfile()
|
||||
const correctLockfile = clone(corruptedLockfile)
|
||||
// breaking the lockfile
|
||||
;(corruptedLockfile.packages['/@pnpm.e2e/pkg-with-1-dep/100.0.0'].resolution as TarballResolution).integrity = (corruptedLockfile.packages['/@pnpm.e2e/dep-of-pkg-with-1-dep/100.0.0'].resolution as TarballResolution).integrity
|
||||
;(corruptedLockfile.packages['/@pnpm.e2e/pkg-with-1-dep@100.0.0'].resolution as TarballResolution).integrity = (corruptedLockfile.packages['/@pnpm.e2e/dep-of-pkg-with-1-dep@100.0.0'].resolution as TarballResolution).integrity
|
||||
await writeYamlFile(WANTED_LOCKFILE, corruptedLockfile, { lineWidth: 1000 })
|
||||
|
||||
await expect(mutateModulesInSingleProject({
|
||||
@@ -68,9 +68,9 @@ test('installation breaks if the lockfile contains the wrong checksum and the st
|
||||
)
|
||||
|
||||
const corruptedLockfile = await project.readLockfile()
|
||||
const correctIntegrity = (corruptedLockfile.packages['/@pnpm.e2e/pkg-with-1-dep/100.0.0'].resolution as TarballResolution).integrity
|
||||
const correctIntegrity = (corruptedLockfile.packages['/@pnpm.e2e/pkg-with-1-dep@100.0.0'].resolution as TarballResolution).integrity
|
||||
// breaking the lockfile
|
||||
;(corruptedLockfile.packages['/@pnpm.e2e/pkg-with-1-dep/100.0.0'].resolution as TarballResolution).integrity = 'sha512-pl8WtlGAnoIQ7gPxT187/YwhKRnsFBR4h0YY+v0FPQjT5WPuZbI9dPRaKWgKBFOqWHylJ8EyPy34V5u9YArfng=='
|
||||
;(corruptedLockfile.packages['/@pnpm.e2e/pkg-with-1-dep@100.0.0'].resolution as TarballResolution).integrity = 'sha512-pl8WtlGAnoIQ7gPxT187/YwhKRnsFBR4h0YY+v0FPQjT5WPuZbI9dPRaKWgKBFOqWHylJ8EyPy34V5u9YArfng=='
|
||||
await writeYamlFile(WANTED_LOCKFILE, corruptedLockfile, { lineWidth: 1000 })
|
||||
|
||||
await expect(
|
||||
@@ -89,7 +89,7 @@ test('installation breaks if the lockfile contains the wrong checksum and the st
|
||||
|
||||
{
|
||||
const lockfile = await project.readLockfile()
|
||||
expect((lockfile.packages['/@pnpm.e2e/pkg-with-1-dep/100.0.0'].resolution as TarballResolution).integrity).toBe(correctIntegrity)
|
||||
expect((lockfile.packages['/@pnpm.e2e/pkg-with-1-dep@100.0.0'].resolution as TarballResolution).integrity).toBe(correctIntegrity)
|
||||
}
|
||||
|
||||
// Breaking the lockfile again
|
||||
@@ -112,6 +112,6 @@ test('installation breaks if the lockfile contains the wrong checksum and the st
|
||||
}))
|
||||
{
|
||||
const lockfile = await project.readLockfile()
|
||||
expect((lockfile.packages['/@pnpm.e2e/pkg-with-1-dep/100.0.0'].resolution as TarballResolution).integrity).toBe(correctIntegrity)
|
||||
expect((lockfile.packages['/@pnpm.e2e/pkg-with-1-dep@100.0.0'].resolution as TarballResolution).integrity).toBe(correctIntegrity)
|
||||
}
|
||||
})
|
||||
|
||||
@@ -101,9 +101,9 @@ test('uninstall package with dependencies and do not touch other deps', async ()
|
||||
|
||||
const lockfile = await project.readLockfile()
|
||||
expect(lockfile.dependencies).toStrictEqual({
|
||||
'is-negative': '2.1.0',
|
||||
})
|
||||
expect(lockfile.specifiers).toStrictEqual({
|
||||
'is-negative': '2.1.0',
|
||||
'is-negative': {
|
||||
specifier: '2.1.0',
|
||||
version: '2.1.0',
|
||||
},
|
||||
})
|
||||
})
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { LOCKFILE_VERSION } from '@pnpm/constants'
|
||||
import { LOCKFILE_VERSION_V6 as LOCKFILE_VERSION } from '@pnpm/constants'
|
||||
import { prepareEmpty } from '@pnpm/prepare'
|
||||
import { addDistTag, getIntegrity } from '@pnpm/registry-mock'
|
||||
import { addDependenciesToPackage } from '@pnpm/core'
|
||||
@@ -14,12 +14,18 @@ test('installing aliased dependency', async () => {
|
||||
|
||||
expect(await project.readLockfile()).toStrictEqual({
|
||||
dependencies: {
|
||||
negative: '/is-negative/1.0.0',
|
||||
positive: '/is-positive/3.1.0',
|
||||
negative: {
|
||||
specifier: 'npm:is-negative@1.0.0',
|
||||
version: '/is-negative@1.0.0',
|
||||
},
|
||||
positive: {
|
||||
specifier: 'npm:is-positive@^3.1.0',
|
||||
version: '/is-positive@3.1.0',
|
||||
},
|
||||
},
|
||||
lockfileVersion: LOCKFILE_VERSION,
|
||||
packages: {
|
||||
'/is-negative/1.0.0': {
|
||||
'/is-negative@1.0.0': {
|
||||
dev: false,
|
||||
engines: {
|
||||
node: '>=0.10.0',
|
||||
@@ -28,7 +34,7 @@ test('installing aliased dependency', async () => {
|
||||
integrity: 'sha512-1aKMsFUc7vYQGzt//8zhkjRWPoYkajY/I5MJEvrc0pDoHXrW7n5ri8DYxhy3rR+Dk0QFl7GjHHsZU1sppQrWtw==',
|
||||
},
|
||||
},
|
||||
'/is-positive/3.1.0': {
|
||||
'/is-positive@3.1.0': {
|
||||
dev: false,
|
||||
engines: {
|
||||
node: '>=0.10.0',
|
||||
@@ -38,10 +44,6 @@ test('installing aliased dependency', async () => {
|
||||
},
|
||||
},
|
||||
},
|
||||
specifiers: {
|
||||
negative: 'npm:is-negative@1.0.0',
|
||||
positive: 'npm:is-positive@^3.1.0',
|
||||
},
|
||||
})
|
||||
})
|
||||
|
||||
@@ -69,19 +71,22 @@ test('a dependency has an aliased subdependency', async () => {
|
||||
|
||||
expect(await project.readLockfile()).toStrictEqual({
|
||||
dependencies: {
|
||||
'@pnpm.e2e/pkg-with-1-aliased-dep': '100.0.0',
|
||||
'@pnpm.e2e/pkg-with-1-aliased-dep': {
|
||||
specifier: '^100.0.0',
|
||||
version: '100.0.0',
|
||||
},
|
||||
},
|
||||
lockfileVersion: LOCKFILE_VERSION,
|
||||
packages: {
|
||||
'/@pnpm.e2e/dep-of-pkg-with-1-dep/100.1.0': {
|
||||
'/@pnpm.e2e/dep-of-pkg-with-1-dep@100.1.0': {
|
||||
dev: false,
|
||||
resolution: {
|
||||
integrity: getIntegrity('@pnpm.e2e/dep-of-pkg-with-1-dep', '100.1.0'),
|
||||
},
|
||||
},
|
||||
'/@pnpm.e2e/pkg-with-1-aliased-dep/100.0.0': {
|
||||
'/@pnpm.e2e/pkg-with-1-aliased-dep@100.0.0': {
|
||||
dependencies: {
|
||||
dep: '/@pnpm.e2e/dep-of-pkg-with-1-dep/100.1.0',
|
||||
dep: '/@pnpm.e2e/dep-of-pkg-with-1-dep@100.1.0',
|
||||
},
|
||||
dev: false,
|
||||
resolution: {
|
||||
@@ -89,9 +94,6 @@ test('a dependency has an aliased subdependency', async () => {
|
||||
},
|
||||
},
|
||||
},
|
||||
specifiers: {
|
||||
'@pnpm.e2e/pkg-with-1-aliased-dep': '^100.0.0',
|
||||
},
|
||||
})
|
||||
})
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ import { addDependenciesToPackage, install, mutateModules, mutateModulesInSingle
|
||||
import { prepareEmpty, preparePackages } from '@pnpm/prepare'
|
||||
import { addDistTag, REGISTRY_MOCK_PORT } from '@pnpm/registry-mock'
|
||||
import rimraf from '@zkochan/rimraf'
|
||||
import { createPeersFolderSuffix } from '@pnpm/dependency-path'
|
||||
import { createPeersFolderSuffixNewFormat as createPeersFolderSuffix } from '@pnpm/dependency-path'
|
||||
import { testDefaults } from '../utils'
|
||||
|
||||
test('auto install non-optional peer dependencies', async () => {
|
||||
@@ -13,8 +13,8 @@ test('auto install non-optional peer dependencies', async () => {
|
||||
await addDependenciesToPackage({}, ['@pnpm.e2e/abc-optional-peers@1.0.0'], await testDefaults({ autoInstallPeers: true }))
|
||||
const lockfile = await project.readLockfile()
|
||||
expect(Object.keys(lockfile.packages)).toStrictEqual([
|
||||
'/@pnpm.e2e/abc-optional-peers/1.0.0_@pnpm.e2e+peer-a@1.0.0',
|
||||
'/@pnpm.e2e/peer-a/1.0.0',
|
||||
'/@pnpm.e2e/abc-optional-peers@1.0.0(@pnpm.e2e/peer-a@1.0.0)',
|
||||
'/@pnpm.e2e/peer-a@1.0.0',
|
||||
])
|
||||
await project.hasNot('@pnpm.e2e/peer-a')
|
||||
})
|
||||
@@ -25,9 +25,9 @@ test('auto install the common peer dependency', async () => {
|
||||
await addDependenciesToPackage({}, ['@pnpm.e2e/wants-peer-c-1', '@pnpm.e2e/wants-peer-c-1.0.0'], await testDefaults({ autoInstallPeers: true }))
|
||||
const lockfile = await project.readLockfile()
|
||||
expect(Object.keys(lockfile.packages)).toStrictEqual([
|
||||
'/@pnpm.e2e/peer-c/1.0.0',
|
||||
'/@pnpm.e2e/wants-peer-c-1.0.0/1.0.0_@pnpm.e2e+peer-c@1.0.0',
|
||||
'/@pnpm.e2e/wants-peer-c-1/1.0.0_@pnpm.e2e+peer-c@1.0.0',
|
||||
'/@pnpm.e2e/peer-c@1.0.0',
|
||||
'/@pnpm.e2e/wants-peer-c-1.0.0@1.0.0(@pnpm.e2e/peer-c@1.0.0)',
|
||||
'/@pnpm.e2e/wants-peer-c-1@1.0.0(@pnpm.e2e/peer-c@1.0.0)',
|
||||
])
|
||||
})
|
||||
|
||||
@@ -36,8 +36,8 @@ test('do not auto install when there is no common peer dependency range intersec
|
||||
await addDependenciesToPackage({}, ['@pnpm.e2e/wants-peer-c-1', '@pnpm.e2e/wants-peer-c-2'], await testDefaults({ autoInstallPeers: true }))
|
||||
const lockfile = await project.readLockfile()
|
||||
expect(Object.keys(lockfile.packages)).toStrictEqual([
|
||||
'/@pnpm.e2e/wants-peer-c-1/1.0.0',
|
||||
'/@pnpm.e2e/wants-peer-c-2/1.0.0',
|
||||
'/@pnpm.e2e/wants-peer-c-1@1.0.0',
|
||||
'/@pnpm.e2e/wants-peer-c-2@1.0.0',
|
||||
])
|
||||
})
|
||||
|
||||
@@ -73,15 +73,15 @@ test('hoist a peer dependency in order to reuse it by other dependencies, when i
|
||||
const lockfile = await project.readLockfile()
|
||||
const suffix = createPeersFolderSuffix([{ name: '@pnpm/x', version: '1.0.0' }, { name: '@pnpm/y', version: '1.0.0' }, { name: '@pnpm/z', version: '1.0.0' }])
|
||||
expect(Object.keys(lockfile.packages)).toStrictEqual([
|
||||
'/@pnpm/x/1.0.0',
|
||||
`/@pnpm/xyz-parent-parent-parent-parent/1.0.0${suffix}`,
|
||||
`/@pnpm/xyz-parent-parent-parent/1.0.0${suffix}`,
|
||||
'/@pnpm/xyz-parent-parent-with-xyz/1.0.0',
|
||||
`/@pnpm/xyz-parent-parent/1.0.0${suffix}`,
|
||||
`/@pnpm/xyz-parent/1.0.0${suffix}`,
|
||||
`/@pnpm/xyz/1.0.0${suffix}`,
|
||||
'/@pnpm/y/1.0.0',
|
||||
'/@pnpm/z/1.0.0',
|
||||
'/@pnpm/x@1.0.0',
|
||||
`/@pnpm/xyz-parent-parent-parent-parent@1.0.0${suffix}`,
|
||||
`/@pnpm/xyz-parent-parent-parent@1.0.0${suffix}`,
|
||||
'/@pnpm/xyz-parent-parent-with-xyz@1.0.0',
|
||||
`/@pnpm/xyz-parent-parent@1.0.0${suffix}`,
|
||||
`/@pnpm/xyz-parent@1.0.0${suffix}`,
|
||||
`/@pnpm/xyz@1.0.0${suffix}`,
|
||||
'/@pnpm/y@1.0.0',
|
||||
'/@pnpm/z@1.0.0',
|
||||
])
|
||||
})
|
||||
|
||||
@@ -97,19 +97,19 @@ test('don\'t hoist a peer dependency when there is a root dependency by that nam
|
||||
const suffix1 = createPeersFolderSuffix([{ name: '@pnpm/y', version: '2.0.0' }, { name: '@pnpm/z', version: '1.0.0' }, { name: '@pnpm.e2e/peer-a', version: '1.0.0' }])
|
||||
const suffix2 = createPeersFolderSuffix([{ name: '@pnpm/x', version: '1.0.0' }, { name: '@pnpm/y', version: '1.0.0' }, { name: '@pnpm/z', version: '1.0.0' }])
|
||||
expect(Object.keys(lockfile.packages).sort()).toStrictEqual([
|
||||
'/@pnpm.e2e/peer-a/1.0.0',
|
||||
'/@pnpm/x/1.0.0',
|
||||
`/@pnpm/xyz-parent-parent-parent-parent/1.0.0${suffix1}`,
|
||||
`/@pnpm/xyz-parent-parent-parent/1.0.0${suffix1}`,
|
||||
'/@pnpm/xyz-parent-parent-with-xyz/1.0.0',
|
||||
`/@pnpm/xyz-parent-parent/1.0.0${suffix1}`,
|
||||
`/@pnpm/xyz-parent/1.0.0${suffix1}`,
|
||||
`/@pnpm/xyz-parent/1.0.0${suffix2}`,
|
||||
`/@pnpm/xyz/1.0.0${suffix1}`,
|
||||
`/@pnpm/xyz/1.0.0${suffix2}`,
|
||||
'/@pnpm/y/1.0.0',
|
||||
'/@pnpm/y/2.0.0',
|
||||
'/@pnpm/z/1.0.0',
|
||||
'/@pnpm.e2e/peer-a@1.0.0',
|
||||
'/@pnpm/x@1.0.0',
|
||||
`/@pnpm/xyz-parent-parent-parent-parent@1.0.0${suffix1}`,
|
||||
`/@pnpm/xyz-parent-parent-parent@1.0.0${suffix1}`,
|
||||
'/@pnpm/xyz-parent-parent-with-xyz@1.0.0',
|
||||
`/@pnpm/xyz-parent-parent@1.0.0${suffix1}`,
|
||||
`/@pnpm/xyz-parent@1.0.0${suffix1}`,
|
||||
`/@pnpm/xyz-parent@1.0.0${suffix2}`,
|
||||
`/@pnpm/xyz@1.0.0${suffix1}`,
|
||||
`/@pnpm/xyz@1.0.0${suffix2}`,
|
||||
'/@pnpm/y@1.0.0',
|
||||
'/@pnpm/y@2.0.0',
|
||||
'/@pnpm/z@1.0.0',
|
||||
].sort())
|
||||
})
|
||||
|
||||
@@ -123,14 +123,14 @@ test('don\'t auto-install a peer dependency, when that dependency is in the root
|
||||
const lockfile = await project.readLockfile()
|
||||
const suffix = createPeersFolderSuffix([{ name: '@pnpm/y', version: '2.0.0' }, { name: '@pnpm/z', version: '1.0.0' }, { name: '@pnpm.e2e/peer-a', version: '1.0.0' }])
|
||||
expect(Object.keys(lockfile.packages).sort()).toStrictEqual([
|
||||
`/@pnpm/xyz-parent-parent-parent-parent/1.0.0${suffix}`,
|
||||
`/@pnpm/xyz-parent-parent-parent/1.0.0${suffix}`,
|
||||
`/@pnpm/xyz-parent-parent/1.0.0${suffix}`,
|
||||
`/@pnpm/xyz-parent/1.0.0${suffix}`,
|
||||
`/@pnpm/xyz/1.0.0${suffix}`,
|
||||
'/@pnpm/y/2.0.0',
|
||||
'/@pnpm/z/1.0.0',
|
||||
'/@pnpm.e2e/peer-a/1.0.0',
|
||||
`/@pnpm/xyz-parent-parent-parent-parent@1.0.0${suffix}`,
|
||||
`/@pnpm/xyz-parent-parent-parent@1.0.0${suffix}`,
|
||||
`/@pnpm/xyz-parent-parent@1.0.0${suffix}`,
|
||||
`/@pnpm/xyz-parent@1.0.0${suffix}`,
|
||||
`/@pnpm/xyz@1.0.0${suffix}`,
|
||||
'/@pnpm/y@2.0.0',
|
||||
'/@pnpm/z@1.0.0',
|
||||
'/@pnpm.e2e/peer-a@1.0.0',
|
||||
].sort())
|
||||
})
|
||||
|
||||
@@ -142,9 +142,9 @@ test('don\'t install the same missing peer dependency twice', async () => {
|
||||
], await testDefaults({ autoInstallPeers: true }))
|
||||
const lockfile = await project.readLockfile()
|
||||
expect(Object.keys(lockfile.packages).sort()).toStrictEqual([
|
||||
'/@pnpm/y/1.0.0',
|
||||
`/@pnpm.e2e/has-has-y-peer-peer/1.0.0${createPeersFolderSuffix([{ name: '@pnpm/y', version: '1.0.0' }, { name: '@pnpm.e2e/has-y-peer', version: '1.0.0' }])}`,
|
||||
'/@pnpm.e2e/has-y-peer/1.0.0_@pnpm+y@1.0.0',
|
||||
'/@pnpm/y@1.0.0',
|
||||
`/@pnpm.e2e/has-has-y-peer-peer@1.0.0${createPeersFolderSuffix([{ name: '@pnpm/y', version: '1.0.0' }, { name: '@pnpm.e2e/has-y-peer', version: '1.0.0' }])}`,
|
||||
'/@pnpm.e2e/has-y-peer@1.0.0(@pnpm/y@1.0.0)',
|
||||
].sort())
|
||||
})
|
||||
|
||||
@@ -160,8 +160,8 @@ test('prefer the peer dependency version already used in the root', async () =>
|
||||
}, await testDefaults({ autoInstallPeers: true }))
|
||||
const lockfile = await project.readLockfile()
|
||||
expect(Object.keys(lockfile.packages).sort()).toStrictEqual([
|
||||
'/@pnpm/y/1.0.0',
|
||||
'/@pnpm.e2e/has-y-peer/1.0.0_@pnpm+y@1.0.0',
|
||||
'/@pnpm/y@1.0.0',
|
||||
'/@pnpm.e2e/has-y-peer@1.0.0(@pnpm/y@1.0.0)',
|
||||
].sort())
|
||||
})
|
||||
|
||||
@@ -175,20 +175,22 @@ test('automatically install root peer dependencies', async () => {
|
||||
peerDependencies: {
|
||||
'is-positive': '^1.0.0',
|
||||
},
|
||||
}, await testDefaults({ autoInstallPeers: true }))
|
||||
}, await testDefaults({ autoInstallPeers: true, resolutionMode: 'lowest-direct' }))
|
||||
|
||||
await project.has('is-positive')
|
||||
await project.has('is-negative')
|
||||
|
||||
{
|
||||
const lockfile = await project.readLockfile()
|
||||
expect(lockfile.specifiers).toStrictEqual({
|
||||
'is-positive': '^1.0.0',
|
||||
'is-negative': '^1.0.0',
|
||||
})
|
||||
expect(lockfile.dependencies).toStrictEqual({
|
||||
'is-positive': '1.0.0',
|
||||
'is-negative': '1.0.1',
|
||||
'is-positive': {
|
||||
specifier: '^1.0.0',
|
||||
version: '1.0.0',
|
||||
},
|
||||
'is-negative': {
|
||||
specifier: '^1.0.0',
|
||||
version: '1.0.0',
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
@@ -201,22 +203,26 @@ test('automatically install root peer dependencies', async () => {
|
||||
await project.has('is-negative')
|
||||
|
||||
// The auto installed peer is not removed when a new dependency is added
|
||||
manifest = await addDependenciesToPackage(manifest, ['is-odd@1.0.0'], await testDefaults({ autoInstallPeers: true }))
|
||||
manifest = await addDependenciesToPackage(manifest, ['is-odd@1.0.0'], await testDefaults({ autoInstallPeers: true, resolutionMode: 'lowest-direct' }))
|
||||
await project.has('is-odd')
|
||||
await project.has('is-positive')
|
||||
await project.has('is-negative')
|
||||
|
||||
{
|
||||
const lockfile = await project.readLockfile()
|
||||
expect(lockfile.specifiers).toStrictEqual({
|
||||
'is-odd': '1.0.0',
|
||||
'is-positive': '^1.0.0',
|
||||
'is-negative': '^1.0.0',
|
||||
})
|
||||
expect(lockfile.dependencies).toStrictEqual({
|
||||
'is-odd': '1.0.0',
|
||||
'is-positive': '1.0.0',
|
||||
'is-negative': '1.0.1',
|
||||
'is-odd': {
|
||||
specifier: '1.0.0',
|
||||
version: '1.0.0',
|
||||
},
|
||||
'is-positive': {
|
||||
specifier: '^1.0.0',
|
||||
version: '1.0.0',
|
||||
},
|
||||
'is-negative': {
|
||||
specifier: '^1.0.0',
|
||||
version: '1.0.0',
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
@@ -226,20 +232,22 @@ test('automatically install root peer dependencies', async () => {
|
||||
manifest,
|
||||
mutation: 'uninstallSome',
|
||||
rootDir: process.cwd(),
|
||||
}, await testDefaults({ autoInstallPeers: true }))
|
||||
}, await testDefaults({ autoInstallPeers: true, resolutionMode: 'lowest-direct' }))
|
||||
await project.hasNot('is-odd')
|
||||
await project.has('is-positive')
|
||||
await project.has('is-negative')
|
||||
|
||||
{
|
||||
const lockfile = await project.readLockfile()
|
||||
expect(lockfile.specifiers).toStrictEqual({
|
||||
'is-positive': '^1.0.0',
|
||||
'is-negative': '^1.0.0',
|
||||
})
|
||||
expect(lockfile.dependencies).toStrictEqual({
|
||||
'is-positive': '1.0.0',
|
||||
'is-negative': '1.0.1',
|
||||
'is-positive': {
|
||||
specifier: '^1.0.0',
|
||||
version: '1.0.0',
|
||||
},
|
||||
'is-negative': {
|
||||
specifier: '^1.0.0',
|
||||
version: '1.0.0',
|
||||
},
|
||||
})
|
||||
}
|
||||
})
|
||||
@@ -285,10 +293,16 @@ test('automatically install peer dependency when it is a dev dependency in anoth
|
||||
const project = assertProject(process.cwd())
|
||||
const lockfile = await project.readLockfile()
|
||||
expect(lockfile.importers['project-1'].devDependencies).toStrictEqual({
|
||||
'is-positive': '1.0.0',
|
||||
'is-positive': {
|
||||
specifier: '1.0.0',
|
||||
version: '1.0.0',
|
||||
},
|
||||
})
|
||||
expect(lockfile.importers['project-2'].dependencies).toStrictEqual({
|
||||
'is-positive': '1.0.0',
|
||||
'is-positive': {
|
||||
specifier: '1.0.0',
|
||||
version: '1.0.0',
|
||||
},
|
||||
})
|
||||
})
|
||||
|
||||
@@ -571,5 +585,5 @@ test('do not override the direct dependency with an auto installed peer dependen
|
||||
},
|
||||
}))
|
||||
const lockfile = await project.readLockfile()
|
||||
expect(lockfile.dependencies.rxjs).toStrictEqual('6.6.7')
|
||||
expect(lockfile.dependencies.rxjs.version).toStrictEqual('6.6.7')
|
||||
})
|
||||
|
||||
@@ -19,8 +19,8 @@ test('prefer version ranges specified for top dependencies', async () => {
|
||||
)
|
||||
|
||||
const lockfile = await project.readLockfile()
|
||||
expect(lockfile.packages).toHaveProperty(['/@pnpm.e2e/dep-of-pkg-with-1-dep/100.0.0'])
|
||||
expect(lockfile.packages).not.toHaveProperty(['/@pnpm.e2e/dep-of-pkg-with-1-dep/100.1.0'])
|
||||
expect(lockfile.packages).toHaveProperty(['/@pnpm.e2e/dep-of-pkg-with-1-dep@100.0.0'])
|
||||
expect(lockfile.packages).not.toHaveProperty(['/@pnpm.e2e/dep-of-pkg-with-1-dep@100.1.0'])
|
||||
})
|
||||
|
||||
test('prefer version ranges specified for top dependencies, when doing named installation', async () => {
|
||||
@@ -39,8 +39,8 @@ test('prefer version ranges specified for top dependencies, when doing named ins
|
||||
await addDependenciesToPackage(manifest, ['@pnpm.e2e/pkg-with-1-dep'], await testDefaults())
|
||||
|
||||
const lockfile = await project.readLockfile()
|
||||
expect(lockfile.packages).toHaveProperty(['/@pnpm.e2e/dep-of-pkg-with-1-dep/100.0.0'])
|
||||
expect(lockfile.packages).not.toHaveProperty(['/@pnpm.e2e/dep-of-pkg-with-1-dep/100.1.0'])
|
||||
expect(lockfile.packages).toHaveProperty(['/@pnpm.e2e/dep-of-pkg-with-1-dep@100.0.0'])
|
||||
expect(lockfile.packages).not.toHaveProperty(['/@pnpm.e2e/dep-of-pkg-with-1-dep@100.1.0'])
|
||||
})
|
||||
|
||||
test('prefer version ranges specified for top dependencies, even if they are aliased', async () => {
|
||||
@@ -59,8 +59,8 @@ test('prefer version ranges specified for top dependencies, even if they are ali
|
||||
)
|
||||
|
||||
const lockfile = await project.readLockfile()
|
||||
expect(lockfile.packages).toHaveProperty(['/@pnpm.e2e/dep-of-pkg-with-1-dep/100.0.0'])
|
||||
expect(lockfile.packages).not.toHaveProperty(['/@pnpm.e2e/dep-of-pkg-with-1-dep/100.1.0'])
|
||||
expect(lockfile.packages).toHaveProperty(['/@pnpm.e2e/dep-of-pkg-with-1-dep@100.0.0'])
|
||||
expect(lockfile.packages).not.toHaveProperty(['/@pnpm.e2e/dep-of-pkg-with-1-dep@100.1.0'])
|
||||
})
|
||||
|
||||
test('prefer version ranges specified for top dependencies, even if the subdependencies are aliased', async () => {
|
||||
@@ -79,8 +79,8 @@ test('prefer version ranges specified for top dependencies, even if the subdepen
|
||||
)
|
||||
|
||||
const lockfile = await project.readLockfile()
|
||||
expect(lockfile.packages).toHaveProperty(['/@pnpm.e2e/dep-of-pkg-with-1-dep/100.0.0'])
|
||||
expect(lockfile.packages).not.toHaveProperty(['/@pnpm.e2e/dep-of-pkg-with-1-dep/100.1.0'])
|
||||
expect(lockfile.packages).toHaveProperty(['/@pnpm.e2e/dep-of-pkg-with-1-dep@100.0.0'])
|
||||
expect(lockfile.packages).not.toHaveProperty(['/@pnpm.e2e/dep-of-pkg-with-1-dep@100.1.0'])
|
||||
})
|
||||
|
||||
test('ignore version of root dependency when it is incompatible with the indirect dependency\'s range', async () => {
|
||||
@@ -99,8 +99,8 @@ test('ignore version of root dependency when it is incompatible with the indirec
|
||||
)
|
||||
|
||||
const lockfile = await project.readLockfile()
|
||||
expect(lockfile.packages).toHaveProperty(['/@pnpm.e2e/dep-of-pkg-with-1-dep/100.0.0'])
|
||||
expect(lockfile.packages).toHaveProperty(['/@pnpm.e2e/dep-of-pkg-with-1-dep/101.0.0'])
|
||||
expect(lockfile.packages).toHaveProperty(['/@pnpm.e2e/dep-of-pkg-with-1-dep@100.0.0'])
|
||||
expect(lockfile.packages).toHaveProperty(['/@pnpm.e2e/dep-of-pkg-with-1-dep@101.0.0'])
|
||||
})
|
||||
|
||||
test('prefer dist-tag specified for top dependency', async () => {
|
||||
@@ -120,8 +120,8 @@ test('prefer dist-tag specified for top dependency', async () => {
|
||||
)
|
||||
|
||||
const lockfile = await project.readLockfile()
|
||||
expect(lockfile.packages).toHaveProperty(['/@pnpm.e2e/dep-of-pkg-with-1-dep/100.0.0'])
|
||||
expect(lockfile.packages).not.toHaveProperty(['/@pnpm.e2e/dep-of-pkg-with-1-dep/100.1.0'])
|
||||
expect(lockfile.packages).toHaveProperty(['/@pnpm.e2e/dep-of-pkg-with-1-dep@100.0.0'])
|
||||
expect(lockfile.packages).not.toHaveProperty(['/@pnpm.e2e/dep-of-pkg-with-1-dep@100.1.0'])
|
||||
})
|
||||
|
||||
test('prefer version ranges passed in via opts.preferredVersions', async () => {
|
||||
@@ -148,8 +148,8 @@ test('prefer version ranges passed in via opts.preferredVersions', async () => {
|
||||
)
|
||||
|
||||
const lockfile = await project.readLockfile()
|
||||
expect(lockfile.packages).toHaveProperty(['/@pnpm.e2e/dep-of-pkg-with-1-dep/100.0.0'])
|
||||
expect(lockfile.packages).not.toHaveProperty(['/@pnpm.e2e/dep-of-pkg-with-1-dep/100.1.0'])
|
||||
expect(lockfile.packages).toHaveProperty(['/@pnpm.e2e/dep-of-pkg-with-1-dep@100.0.0'])
|
||||
expect(lockfile.packages).not.toHaveProperty(['/@pnpm.e2e/dep-of-pkg-with-1-dep@100.1.0'])
|
||||
})
|
||||
|
||||
// Covers https://github.com/pnpm/pnpm/issues/1187
|
||||
@@ -169,9 +169,9 @@ test('prefer version of package that also satisfies the range of the same packag
|
||||
Object.keys(lockfile.packages)
|
||||
).toStrictEqual(
|
||||
[
|
||||
'/@pnpm.e2e/foo/100.0.0',
|
||||
'/@pnpm.e2e/has-foo-as-dep-and-subdep/1.0.0',
|
||||
'/@pnpm.e2e/requires-any-foo/1.0.0',
|
||||
'/@pnpm.e2e/foo@100.0.0',
|
||||
'/@pnpm.e2e/has-foo-as-dep-and-subdep@1.0.0',
|
||||
'/@pnpm.e2e/requires-any-foo@1.0.0',
|
||||
]
|
||||
)
|
||||
})
|
||||
@@ -188,6 +188,6 @@ test('dedupe subdependency when a newer version of the same package is installed
|
||||
await addDependenciesToPackage(manifest, ['@pnpm.e2e/dep-of-pkg-with-1-dep@100.1.0'], await testDefaults())
|
||||
|
||||
const lockfile = await project.readLockfile()
|
||||
expect(lockfile.packages).toHaveProperty(['/@pnpm.e2e/dep-of-pkg-with-1-dep/100.1.0'])
|
||||
expect(lockfile.packages).not.toHaveProperty(['/@pnpm.e2e/dep-of-pkg-with-1-dep/100.0.0'])
|
||||
expect(lockfile.packages).toHaveProperty(['/@pnpm.e2e/dep-of-pkg-with-1-dep@100.1.0'])
|
||||
expect(lockfile.packages).not.toHaveProperty(['/@pnpm.e2e/dep-of-pkg-with-1-dep@100.0.0'])
|
||||
})
|
||||
|
||||
@@ -58,6 +58,6 @@ test('pick common range for a dependency used in two workspace projects', async
|
||||
|
||||
const project = assertProject(process.cwd())
|
||||
const lockfile = await project.readLockfile()
|
||||
expect(lockfile.packages).toHaveProperty(['/@pnpm.e2e/dep-of-pkg-with-1-dep/100.0.0'])
|
||||
expect(lockfile.packages).not.toHaveProperty(['/@pnpm.e2e/dep-of-pkg-with-1-dep/100.1.0'])
|
||||
expect(lockfile.packages).toHaveProperty(['/@pnpm.e2e/dep-of-pkg-with-1-dep@100.0.0'])
|
||||
expect(lockfile.packages).not.toHaveProperty(['/@pnpm.e2e/dep-of-pkg-with-1-dep@100.1.0'])
|
||||
})
|
||||
|
||||
@@ -3,7 +3,7 @@ import { prepareEmpty } from '@pnpm/prepare'
|
||||
import { addDistTag } from '@pnpm/registry-mock'
|
||||
import { addDependenciesToPackage } from '@pnpm/core'
|
||||
import deepRequireCwd from 'deep-require-cwd'
|
||||
import { createPeersFolderSuffix } from '@pnpm/dependency-path'
|
||||
import { createPeersFolderSuffixNewFormat as createPeersFolderSuffix } from '@pnpm/dependency-path'
|
||||
import exists from 'path-exists'
|
||||
import { testDefaults } from '../utils'
|
||||
|
||||
@@ -13,28 +13,31 @@ test('package with default peer dependency, when auto install peers is on', asyn
|
||||
await addDependenciesToPackage({}, ['@pnpm.e2e/has-default-peer'], await testDefaults({ autoInstallPeers: true }))
|
||||
|
||||
const lockfile = await project.readLockfile()
|
||||
expect(lockfile.packages).toHaveProperty(['/@pnpm.e2e/dep-of-pkg-with-1-dep/100.1.0'])
|
||||
expect(lockfile.packages).toHaveProperty(['/@pnpm.e2e/dep-of-pkg-with-1-dep@100.1.0'])
|
||||
})
|
||||
|
||||
test('don\'t install the default peer dependency when it may be resolved from parent packages', async () => {
|
||||
const project = prepareEmpty()
|
||||
await addDependenciesToPackage({}, ['@pnpm.e2e/has-default-peer', '@pnpm.e2e/dep-of-pkg-with-1-dep@101.0.0'], await testDefaults())
|
||||
await addDependenciesToPackage({},
|
||||
['@pnpm.e2e/has-default-peer', '@pnpm.e2e/dep-of-pkg-with-1-dep@101.0.0'],
|
||||
await testDefaults({ autoInstallPeers: false })
|
||||
)
|
||||
|
||||
const lockfile = await project.readLockfile()
|
||||
expect(Object.keys(lockfile.packages)).toStrictEqual([
|
||||
'/@pnpm.e2e/dep-of-pkg-with-1-dep/101.0.0',
|
||||
`/@pnpm.e2e/has-default-peer/1.0.0${createPeersFolderSuffix([{ name: '@pnpm.e2e/dep-of-pkg-with-1-dep', version: '101.0.0' }])}`,
|
||||
'/@pnpm.e2e/dep-of-pkg-with-1-dep@101.0.0',
|
||||
`/@pnpm.e2e/has-default-peer@1.0.0${createPeersFolderSuffix([{ name: '@pnpm.e2e/dep-of-pkg-with-1-dep', version: '101.0.0' }])}`,
|
||||
])
|
||||
})
|
||||
|
||||
test('install the default peer dependency when it cannot be resolved from parent packages', async () => {
|
||||
const project = prepareEmpty()
|
||||
await addDependenciesToPackage({}, ['@pnpm.e2e/has-default-peer'], await testDefaults())
|
||||
await addDependenciesToPackage({}, ['@pnpm.e2e/has-default-peer'], await testDefaults({ autoInstallPeers: false }))
|
||||
|
||||
const lockfile = await project.readLockfile()
|
||||
expect(Object.keys(lockfile.packages)).toStrictEqual([
|
||||
'/@pnpm.e2e/dep-of-pkg-with-1-dep/100.0.0',
|
||||
'/@pnpm.e2e/has-default-peer/1.0.0',
|
||||
'/@pnpm.e2e/dep-of-pkg-with-1-dep@100.0.0',
|
||||
'/@pnpm.e2e/has-default-peer@1.0.0',
|
||||
])
|
||||
})
|
||||
|
||||
@@ -49,7 +52,7 @@ test('package that resolves its own peer dependency', async () => {
|
||||
|
||||
const lockfile = await project.readLockfile()
|
||||
|
||||
expect(lockfile.packages['/@pnpm.e2e/pkg-with-resolved-peer/1.0.0_@pnpm.e2e+peer-c@2.0.0']?.peerDependencies).toStrictEqual({ '@pnpm.e2e/peer-c': '*' })
|
||||
expect(lockfile.packages['/@pnpm.e2e/pkg-with-resolved-peer/1.0.0_@pnpm.e2e+peer-c@2.0.0'].dependencies).toHaveProperty(['@pnpm.e2e/peer-c'])
|
||||
expect(lockfile.packages['/@pnpm.e2e/pkg-with-resolved-peer/1.0.0_@pnpm.e2e+peer-c@2.0.0'].optionalDependencies).toHaveProperty(['@pnpm.e2e/peer-b'])
|
||||
expect(lockfile.packages['/@pnpm.e2e/pkg-with-resolved-peer@1.0.0(@pnpm.e2e/peer-c@2.0.0)']?.peerDependencies).toStrictEqual({ '@pnpm.e2e/peer-c': '*' })
|
||||
expect(lockfile.packages['/@pnpm.e2e/pkg-with-resolved-peer@1.0.0(@pnpm.e2e/peer-c@2.0.0)'].dependencies).toHaveProperty(['@pnpm.e2e/peer-c'])
|
||||
expect(lockfile.packages['/@pnpm.e2e/pkg-with-resolved-peer@1.0.0(@pnpm.e2e/peer-c@2.0.0)'].optionalDependencies).toHaveProperty(['@pnpm.e2e/peer-b'])
|
||||
})
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import path from 'path'
|
||||
import { LOCKFILE_VERSION, WANTED_LOCKFILE } from '@pnpm/constants'
|
||||
import { LOCKFILE_VERSION_V6 as LOCKFILE_VERSION, WANTED_LOCKFILE } from '@pnpm/constants'
|
||||
import { prepareEmpty, preparePackages } from '@pnpm/prepare'
|
||||
import { install, MutatedProject, mutateModules } from '@pnpm/core'
|
||||
import writeYamlFile from 'write-yaml-file'
|
||||
@@ -12,19 +12,25 @@ test('fix broken lockfile with --fix-lockfile', async () => {
|
||||
|
||||
await writeYamlFile(WANTED_LOCKFILE, {
|
||||
dependencies: {
|
||||
'@types/semver': '5.3.31',
|
||||
'@types/semver': {
|
||||
specifier: '^5.3.31',
|
||||
version: '5.3.31',
|
||||
},
|
||||
},
|
||||
devDependencies: {
|
||||
fsevents: '2.3.2',
|
||||
fsevents: {
|
||||
specifier: '^2.3.2',
|
||||
version: '2.3.2',
|
||||
},
|
||||
},
|
||||
lockfileVersion: LOCKFILE_VERSION,
|
||||
packages: {
|
||||
'/@types/semver/5.3.31': {
|
||||
'/@types/semver@5.3.31': {
|
||||
// resolution: {
|
||||
// integrity: 'sha512-WBv5F9HrWTyG800cB9M3veCVkFahqXN7KA7c3VUCYZm/xhNzzIFiXiq+rZmj75j7GvWelN3YNrLX7FjtqBvhMw==',
|
||||
// },
|
||||
},
|
||||
'/core-js-pure/3.16.2': {
|
||||
'/core-js-pure@3.16.2': {
|
||||
resolution: {
|
||||
integrity: 'sha512-oxKe64UH049mJqrKkynWp6Vu0Rlm/BTXO/bJZuN2mmR3RtOFNepLlSWDd1eo16PzHpQAoNG97rLU1V/YxesJjw==',
|
||||
},
|
||||
@@ -32,10 +38,6 @@ test('fix broken lockfile with --fix-lockfile', async () => {
|
||||
// dev: true
|
||||
},
|
||||
},
|
||||
specifiers: {
|
||||
'@types/semver': '^5.3.31',
|
||||
fsevents: '^2.3.2',
|
||||
},
|
||||
}, { lineWidth: 1000 })
|
||||
|
||||
await install({
|
||||
@@ -49,16 +51,16 @@ test('fix broken lockfile with --fix-lockfile', async () => {
|
||||
|
||||
const lockfile: Lockfile = await readYamlFile(WANTED_LOCKFILE)
|
||||
expect(Object.keys(lockfile.packages as PackageSnapshots).length).toBe(2)
|
||||
expect(lockfile.packages?.['/@types/semver/5.3.31']).toBeTruthy()
|
||||
expect(lockfile.packages?.['/@types/semver/5.3.31']?.resolution).toEqual({
|
||||
expect(lockfile.packages?.['/@types/semver@5.3.31']).toBeTruthy()
|
||||
expect(lockfile.packages?.['/@types/semver@5.3.31']?.resolution).toEqual({
|
||||
integrity: 'sha512-WBv5F9HrWTyG800cB9M3veCVkFahqXN7KA7c3VUCYZm/xhNzzIFiXiq+rZmj75j7GvWelN3YNrLX7FjtqBvhMw==',
|
||||
})
|
||||
expect(lockfile.packages?.['/core-js-pure/3.16.2']).toBeTruthy()
|
||||
expect(lockfile.packages?.['/core-js-pure/3.16.2']?.resolution).toEqual({
|
||||
expect(lockfile.packages?.['/core-js-pure@3.16.2']).toBeTruthy()
|
||||
expect(lockfile.packages?.['/core-js-pure@3.16.2']?.resolution).toEqual({
|
||||
integrity: 'sha512-oxKe64UH049mJqrKkynWp6Vu0Rlm/BTXO/bJZuN2mmR3RtOFNepLlSWDd1eo16PzHpQAoNG97rLU1V/YxesJjw==',
|
||||
})
|
||||
expect(lockfile.packages?.['/core-js-pure/3.16.2']?.requiresBuild).toBeTruthy()
|
||||
expect(lockfile.packages?.['/core-js-pure/3.16.2']?.dev).toBeTruthy()
|
||||
expect(lockfile.packages?.['/core-js-pure@3.16.2']?.requiresBuild).toBeTruthy()
|
||||
expect(lockfile.packages?.['/core-js-pure@3.16.2']?.dev).toBeTruthy()
|
||||
})
|
||||
|
||||
test('--fix-lockfile should preserve all locked dependencies version', async () => {
|
||||
@@ -98,30 +100,28 @@ test('--fix-lockfile should preserve all locked dependencies version', async ()
|
||||
* --fix-lockfile should not change the locked dependency version and only adding missing fields in this scene
|
||||
*/
|
||||
await writeYamlFile(WANTED_LOCKFILE, {
|
||||
lockfileVersion: 5.3,
|
||||
lockfileVersion: LOCKFILE_VERSION,
|
||||
importers: {
|
||||
'.': {
|
||||
specifiers: {},
|
||||
},
|
||||
'.': {},
|
||||
'project-1': {
|
||||
specifiers: {
|
||||
'@babel/runtime-corejs3': '7.15.3',
|
||||
},
|
||||
dependencies: {
|
||||
'@babel/runtime-corejs3': '7.15.3',
|
||||
'@babel/runtime-corejs3': {
|
||||
specifier: '7.15.3',
|
||||
version: '7.15.3',
|
||||
},
|
||||
},
|
||||
},
|
||||
'project-2': {
|
||||
specifiers: {
|
||||
'@babel/runtime-corejs3': '7.15.4',
|
||||
},
|
||||
dependencies: {
|
||||
'@babel/runtime-corejs3': '7.15.4',
|
||||
'@babel/runtime-corejs3': {
|
||||
specifier: '7.15.4',
|
||||
version: '7.15.4',
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
packages: {
|
||||
'/@babel/runtime-corejs3/7.15.3': {
|
||||
'/@babel/runtime-corejs3@7.15.3': {
|
||||
resolution: { integrity: 'sha512-30A3lP+sRL6ml8uhoJSs+8jwpKzbw8CqBvDc1laeptxPm5FahumJxirigcbD2qTs71Sonvj1cyZB0OKGAmxQ+A==' },
|
||||
// engines: { node: '>=6.9.0' },
|
||||
dependencies: {
|
||||
@@ -130,7 +130,7 @@ test('--fix-lockfile should preserve all locked dependencies version', async ()
|
||||
},
|
||||
dev: false,
|
||||
},
|
||||
'/@babel/runtime-corejs3/7.15.4': {
|
||||
'/@babel/runtime-corejs3@7.15.4': {
|
||||
resolution: { integrity: 'sha512-lWcAqKeB624/twtTc3w6w/2o9RqJPaNBhPGK6DKLSiwuVWC7WFkypWyNg+CpZoyJH0jVzv1uMtXZ/5/lQOLtCg==' },
|
||||
engines: { node: '>=6.9.0' },
|
||||
dependencies: {
|
||||
@@ -139,17 +139,17 @@ test('--fix-lockfile should preserve all locked dependencies version', async ()
|
||||
},
|
||||
dev: false,
|
||||
},
|
||||
'/core-js-pure/3.17.2': {
|
||||
'/core-js-pure@3.17.2': {
|
||||
resolution: { integrity: 'sha512-2VV7DlIbooyTI7Bh+yzOOWL9tGwLnQKHno7qATE+fqZzDKYr6llVjVQOzpD/QLZFgXDPb8T71pJokHEZHEYJhQ==' },
|
||||
// requiresBuild: true,
|
||||
dev: false,
|
||||
},
|
||||
'/core-js-pure/3.17.3': {
|
||||
'/core-js-pure@3.17.3': {
|
||||
// resolution: { integrity: 'sha512-YusrqwiOTTn8058JDa0cv9unbXdIiIgcgI9gXso0ey4WgkFLd3lYlV9rp9n7nDCsYxXsMDTjA4m1h3T348mdlQ==' },
|
||||
// requiresBuild: true,
|
||||
// dev: false
|
||||
},
|
||||
'/regenerator-runtime/0.13.9': {
|
||||
'/regenerator-runtime@0.13.9': {
|
||||
resolution: { integrity: 'sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==' },
|
||||
// dev: false
|
||||
},
|
||||
@@ -197,41 +197,41 @@ test('--fix-lockfile should preserve all locked dependencies version', async ()
|
||||
|
||||
expect(Object.keys(lockfile.packages as PackageSnapshots).length).toBe(5)
|
||||
|
||||
expect(lockfile.packages?.['/@babel/runtime-corejs3/7.15.3']).toBeTruthy()
|
||||
expect(lockfile.packages?.['/@babel/runtime-corejs3/7.15.3']?.resolution).toEqual({
|
||||
expect(lockfile.packages?.['/@babel/runtime-corejs3@7.15.3']).toBeTruthy()
|
||||
expect(lockfile.packages?.['/@babel/runtime-corejs3@7.15.3']?.resolution).toEqual({
|
||||
integrity: 'sha512-30A3lP+sRL6ml8uhoJSs+8jwpKzbw8CqBvDc1laeptxPm5FahumJxirigcbD2qTs71Sonvj1cyZB0OKGAmxQ+A==',
|
||||
})
|
||||
expect(lockfile.packages?.['/@babel/runtime-corejs3/7.15.3']?.engines).toEqual({
|
||||
expect(lockfile.packages?.['/@babel/runtime-corejs3@7.15.3']?.engines).toEqual({
|
||||
node: '>=6.9.0',
|
||||
})
|
||||
expect(lockfile.packages?.['/@babel/runtime-corejs3/7.15.3']?.dev).toBeFalsy()
|
||||
expect(lockfile.packages?.['/@babel/runtime-corejs3@7.15.3']?.dev).toBeFalsy()
|
||||
|
||||
expect(lockfile.packages?.['/@babel/runtime-corejs3/7.15.4']).toBeTruthy()
|
||||
expect(lockfile.packages?.['/@babel/runtime-corejs3/7.15.4']?.resolution).toEqual({
|
||||
expect(lockfile.packages?.['/@babel/runtime-corejs3@7.15.4']).toBeTruthy()
|
||||
expect(lockfile.packages?.['/@babel/runtime-corejs3@7.15.4']?.resolution).toEqual({
|
||||
integrity: 'sha512-lWcAqKeB624/twtTc3w6w/2o9RqJPaNBhPGK6DKLSiwuVWC7WFkypWyNg+CpZoyJH0jVzv1uMtXZ/5/lQOLtCg==',
|
||||
})
|
||||
expect(lockfile.packages?.['/@babel/runtime-corejs3/7.15.4']?.engines).toEqual({
|
||||
expect(lockfile.packages?.['/@babel/runtime-corejs3@7.15.4']?.engines).toEqual({
|
||||
node: '>=6.9.0',
|
||||
})
|
||||
expect(lockfile.packages?.['/@babel/runtime-corejs3/7.15.4']?.dev).toBeFalsy()
|
||||
expect(lockfile.packages?.['/@babel/runtime-corejs3@7.15.4']?.dev).toBeFalsy()
|
||||
|
||||
expect(lockfile.packages?.['/core-js-pure/3.17.2']).toBeTruthy()
|
||||
expect(lockfile.packages?.['/core-js-pure/3.17.2']?.resolution).toHaveProperty('integrity', 'sha512-2VV7DlIbooyTI7Bh+yzOOWL9tGwLnQKHno7qATE+fqZzDKYr6llVjVQOzpD/QLZFgXDPb8T71pJokHEZHEYJhQ==')
|
||||
expect(lockfile.packages?.['/core-js-pure/3.17.2']?.requiresBuild).toBeTruthy()
|
||||
expect(lockfile.packages?.['/core-js-pure/3.17.2']?.dev).toBeFalsy()
|
||||
expect(lockfile.packages?.['/core-js-pure@3.17.2']).toBeTruthy()
|
||||
expect(lockfile.packages?.['/core-js-pure@3.17.2']?.resolution).toHaveProperty('integrity', 'sha512-2VV7DlIbooyTI7Bh+yzOOWL9tGwLnQKHno7qATE+fqZzDKYr6llVjVQOzpD/QLZFgXDPb8T71pJokHEZHEYJhQ==')
|
||||
expect(lockfile.packages?.['/core-js-pure@3.17.2']?.requiresBuild).toBeTruthy()
|
||||
expect(lockfile.packages?.['/core-js-pure@3.17.2']?.dev).toBeFalsy()
|
||||
|
||||
expect(lockfile.packages?.['/core-js-pure/3.17.3']).toBeTruthy()
|
||||
expect(lockfile.packages?.['/core-js-pure/3.17.3']?.resolution).toEqual({
|
||||
expect(lockfile.packages?.['/core-js-pure@3.17.3']).toBeTruthy()
|
||||
expect(lockfile.packages?.['/core-js-pure@3.17.3']?.resolution).toEqual({
|
||||
integrity: 'sha512-YusrqwiOTTn8058JDa0cv9unbXdIiIgcgI9gXso0ey4WgkFLd3lYlV9rp9n7nDCsYxXsMDTjA4m1h3T348mdlQ==',
|
||||
})
|
||||
expect(lockfile.packages?.['/core-js-pure/3.17.3']?.requiresBuild).toBeTruthy()
|
||||
expect(lockfile.packages?.['/core-js-pure/3.17.3']?.dev).toBeFalsy()
|
||||
expect(lockfile.packages?.['/core-js-pure@3.17.3']?.requiresBuild).toBeTruthy()
|
||||
expect(lockfile.packages?.['/core-js-pure@3.17.3']?.dev).toBeFalsy()
|
||||
|
||||
expect(lockfile.packages?.['/regenerator-runtime/0.13.9']).toBeTruthy()
|
||||
expect(lockfile.packages?.['/regenerator-runtime/0.13.9']?.resolution).toEqual({
|
||||
expect(lockfile.packages?.['/regenerator-runtime@0.13.9']).toBeTruthy()
|
||||
expect(lockfile.packages?.['/regenerator-runtime@0.13.9']?.resolution).toEqual({
|
||||
integrity: 'sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==',
|
||||
})
|
||||
expect(lockfile.packages?.['/regenerator-runtime/0.13.9']?.dev).toBeFalsy()
|
||||
expect(lockfile.packages?.['/regenerator-runtime@0.13.9']?.dev).toBeFalsy()
|
||||
})
|
||||
|
||||
test(
|
||||
|
||||
@@ -63,7 +63,10 @@ test('from a github repo with different name via named installation', async () =
|
||||
|
||||
const lockfile = await project.readLockfile()
|
||||
expect(lockfile.dependencies).toStrictEqual({
|
||||
'say-hi': 'github.com/zkochan/hi/4cdebec76b7b9d1f6e219e06c42d92a6b8ea60cd',
|
||||
'say-hi': {
|
||||
specifier: 'github:zkochan/hi#4cdebec76b7b9d1f6e219e06c42d92a6b8ea60cd',
|
||||
version: 'github.com/zkochan/hi/4cdebec76b7b9d1f6e219e06c42d92a6b8ea60cd',
|
||||
},
|
||||
})
|
||||
|
||||
await project.isExecutable('.bin/hi')
|
||||
@@ -103,7 +106,10 @@ test('from a github repo with different name', async () => {
|
||||
|
||||
const lockfile = await project.readLockfile()
|
||||
expect(lockfile.dependencies).toStrictEqual({
|
||||
'say-hi': 'github.com/zkochan/hi/4cdebec76b7b9d1f6e219e06c42d92a6b8ea60cd',
|
||||
'say-hi': {
|
||||
specifier: 'github:zkochan/hi#4cdebec76b7b9d1f6e219e06c42d92a6b8ea60cd',
|
||||
version: 'github.com/zkochan/hi/4cdebec76b7b9d1f6e219e06c42d92a6b8ea60cd',
|
||||
},
|
||||
})
|
||||
|
||||
await project.isExecutable('.bin/hi')
|
||||
@@ -120,8 +126,8 @@ test('a subdependency is from a github repo with different name', async () => {
|
||||
expect(m).toEqual('Hi')
|
||||
|
||||
const lockfile = await project.readLockfile()
|
||||
expect(lockfile.packages['/@pnpm.e2e/has-aliased-git-dependency/1.0.0'].dependencies).toStrictEqual({
|
||||
'@pnpm.e2e/has-say-hi-peer': '1.0.0_hi@1.0.0',
|
||||
expect(lockfile.packages['/@pnpm.e2e/has-aliased-git-dependency@1.0.0'].dependencies).toStrictEqual({
|
||||
'@pnpm.e2e/has-say-hi-peer': '1.0.0(hi@1.0.0)',
|
||||
'say-hi': 'github.com/zkochan/hi/4cdebec76b7b9d1f6e219e06c42d92a6b8ea60cd',
|
||||
})
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ import path from 'path'
|
||||
import { prepareEmpty, preparePackages } from '@pnpm/prepare'
|
||||
import { install, mutateModules } from '@pnpm/core'
|
||||
import { testDefaults } from '../utils'
|
||||
import { LOCKFILE_VERSION, WANTED_LOCKFILE } from '@pnpm/constants'
|
||||
import { LOCKFILE_VERSION_V6 as LOCKFILE_VERSION, WANTED_LOCKFILE } from '@pnpm/constants'
|
||||
import { ProjectManifest } from '@pnpm/types'
|
||||
import { getCurrentBranch } from '@pnpm/git-utils'
|
||||
import writeYamlFile from 'write-yaml-file'
|
||||
@@ -162,19 +162,19 @@ test('install with --merge-git-branch-lockfiles when merged lockfile is up to da
|
||||
// @types/semver installed in the main branch
|
||||
await writeYamlFile(WANTED_LOCKFILE, {
|
||||
dependencies: {
|
||||
'@types/semver': '5.3.31',
|
||||
'@types/semver': {
|
||||
specifier: '5.3.31',
|
||||
version: '5.3.31',
|
||||
},
|
||||
},
|
||||
lockfileVersion: LOCKFILE_VERSION,
|
||||
packages: {
|
||||
'/@types/semver/5.3.31': {
|
||||
'/@types/semver@5.3.31': {
|
||||
resolution: {
|
||||
integrity: 'sha512-WBv5F9HrWTyG800cB9M3veCVkFahqXN7KA7c3VUCYZm/xhNzzIFiXiq+rZmj75j7GvWelN3YNrLX7FjtqBvhMw==',
|
||||
},
|
||||
},
|
||||
},
|
||||
specifiers: {
|
||||
'@types/semver': '5.3.31',
|
||||
},
|
||||
}, { lineWidth: 1000 })
|
||||
|
||||
const branchName: string = 'main-branch'
|
||||
@@ -184,26 +184,28 @@ test('install with --merge-git-branch-lockfiles when merged lockfile is up to da
|
||||
const otherLockfilePath: string = path.resolve('pnpm-lock.other.yaml')
|
||||
const otherLockfileContent = {
|
||||
dependencies: {
|
||||
'@types/semver': '5.3.31',
|
||||
'is-positive': '3.1.0',
|
||||
'@types/semver': {
|
||||
specifier: '5.3.31',
|
||||
version: '5.3.31',
|
||||
},
|
||||
'is-positive': {
|
||||
specifier: '^3.1.0',
|
||||
version: '3.1.0',
|
||||
},
|
||||
},
|
||||
lockfileVersion: LOCKFILE_VERSION,
|
||||
packages: {
|
||||
'/@types/semver/5.3.31': {
|
||||
'/@types/semver@5.3.31': {
|
||||
resolution: {
|
||||
integrity: 'sha512-WBv5F9HrWTyG800cB9M3veCVkFahqXN7KA7c3VUCYZm/xhNzzIFiXiq+rZmj75j7GvWelN3YNrLX7FjtqBvhMw==',
|
||||
},
|
||||
},
|
||||
'/is-positive/3.1.0': {
|
||||
'/is-positive@3.1.0': {
|
||||
resolution: {
|
||||
integrity: 'sha512-8ND1j3y9/HP94TOvGzr69/FgbkX2ruOldhLEsTWwcJVfo4oRjwemJmJxt7RJkKYH8tz7vYBP9JcKQY8CLuJ90Q==',
|
||||
},
|
||||
},
|
||||
},
|
||||
specifiers: {
|
||||
'@types/semver': '5.3.31',
|
||||
'is-positive': '^3.1.0',
|
||||
},
|
||||
}
|
||||
await writeYamlFile(otherLockfilePath, otherLockfileContent, { lineWidth: 1000 })
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@ import {
|
||||
} from '@pnpm/core'
|
||||
import rimraf from '@zkochan/rimraf'
|
||||
import resolveLinkTarget from 'resolve-link-target'
|
||||
import { WANTED_LOCKFILE } from '@pnpm/constants'
|
||||
import { LOCKFILE_VERSION_V6 as LOCKFILE_VERSION, WANTED_LOCKFILE } from '@pnpm/constants'
|
||||
import { addDistTag } from '@pnpm/registry-mock'
|
||||
import symlinkDir from 'symlink-dir'
|
||||
import writeYamlFile from 'write-yaml-file'
|
||||
@@ -500,10 +500,10 @@ test('hoist when updating in one of the workspace projects', async () => {
|
||||
Object.keys(lockfile.packages)
|
||||
).toStrictEqual(
|
||||
[
|
||||
'/@pnpm.e2e/dep-of-pkg-with-1-dep/100.0.0',
|
||||
'/@pnpm.e2e/foo/100.0.0',
|
||||
'/@pnpm.e2e/foo/100.1.0',
|
||||
'/@pnpm.e2e/pkg-with-1-dep/100.0.0',
|
||||
'/@pnpm.e2e/dep-of-pkg-with-1-dep@100.0.0',
|
||||
'/@pnpm.e2e/foo@100.0.0',
|
||||
'/@pnpm.e2e/foo@100.1.0',
|
||||
'/@pnpm.e2e/pkg-with-1-dep@100.0.0',
|
||||
]
|
||||
)
|
||||
|
||||
@@ -642,35 +642,33 @@ test('hoist packages which is in the dependencies tree of the selected projects'
|
||||
* instead of using is-positive@2.0.0 and does not hoist anything
|
||||
*/
|
||||
await writeYamlFile(WANTED_LOCKFILE, {
|
||||
lockfileVersion: 5.3,
|
||||
lockfileVersion: LOCKFILE_VERSION,
|
||||
importers: {
|
||||
'.': {
|
||||
specifiers: {},
|
||||
},
|
||||
'.': {},
|
||||
'project-1': {
|
||||
specifiers: {
|
||||
'is-positive': '2.0.0',
|
||||
},
|
||||
dependencies: {
|
||||
'is-positive': '2.0.0',
|
||||
'is-positive': {
|
||||
specifier: '2.0.0',
|
||||
version: '2.0.0',
|
||||
},
|
||||
},
|
||||
},
|
||||
'project-2': {
|
||||
specifiers: {
|
||||
'is-positive': '3.0.0',
|
||||
},
|
||||
dependencies: {
|
||||
'is-positive': '3.0.0',
|
||||
'is-positive': {
|
||||
specifier: '3.0.0',
|
||||
version: '3.0.0',
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
packages: {
|
||||
'/is-positive/2.0.0': {
|
||||
'/is-positive@2.0.0': {
|
||||
resolution: { integrity: 'sha1-sU8GvS24EK5sixJ0HRNr+u8Nh70=' },
|
||||
engines: { node: '>=0.10.0' },
|
||||
dev: false,
|
||||
},
|
||||
'/is-positive/3.0.0': {
|
||||
'/is-positive@3.0.0': {
|
||||
resolution: { integrity: 'sha1-jvDuIvfOJPdjP4kIAw7Ei2Ks9KM=' },
|
||||
engines: { node: '>=0.10.0' },
|
||||
dev: false,
|
||||
@@ -702,30 +700,28 @@ test('only hoist packages which is in the dependencies tree of the selected proj
|
||||
])
|
||||
|
||||
await writeYamlFile(WANTED_LOCKFILE, {
|
||||
lockfileVersion: 5.3,
|
||||
lockfileVersion: LOCKFILE_VERSION,
|
||||
importers: {
|
||||
'.': {
|
||||
specifiers: {},
|
||||
},
|
||||
'.': {},
|
||||
'project-1': {
|
||||
specifiers: {
|
||||
'@babel/runtime-corejs3': '7.15.3',
|
||||
},
|
||||
dependencies: {
|
||||
'@babel/runtime-corejs3': '7.15.3',
|
||||
'@babel/runtime-corejs3': {
|
||||
specifier: '7.15.3',
|
||||
version: '7.15.3',
|
||||
},
|
||||
},
|
||||
},
|
||||
'project-2': {
|
||||
specifiers: {
|
||||
'@babel/runtime-corejs3': '7.15.4',
|
||||
},
|
||||
dependencies: {
|
||||
'@babel/runtime-corejs3': '7.15.4',
|
||||
'@babel/runtime-corejs3': {
|
||||
specifier: '7.15.4',
|
||||
version: '7.15.4',
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
packages: {
|
||||
'/@babel/runtime-corejs3/7.15.3': {
|
||||
'/@babel/runtime-corejs3@7.15.3': {
|
||||
resolution: { integrity: 'sha512-30A3lP+sRL6ml8uhoJSs+8jwpKzbw8CqBvDc1laeptxPm5FahumJxirigcbD2qTs71Sonvj1cyZB0OKGAmxQ+A==' },
|
||||
engines: { node: '>=6.9.0' },
|
||||
dependencies: {
|
||||
@@ -734,7 +730,7 @@ test('only hoist packages which is in the dependencies tree of the selected proj
|
||||
},
|
||||
dev: false,
|
||||
},
|
||||
'/@babel/runtime-corejs3/7.15.4': {
|
||||
'/@babel/runtime-corejs3@7.15.4': {
|
||||
resolution: { integrity: 'sha512-lWcAqKeB624/twtTc3w6w/2o9RqJPaNBhPGK6DKLSiwuVWC7WFkypWyNg+CpZoyJH0jVzv1uMtXZ/5/lQOLtCg==' },
|
||||
engines: { node: '>=6.9.0' },
|
||||
dependencies: {
|
||||
@@ -743,17 +739,17 @@ test('only hoist packages which is in the dependencies tree of the selected proj
|
||||
},
|
||||
dev: false,
|
||||
},
|
||||
'/core-js-pure/3.17.2': {
|
||||
'/core-js-pure@3.17.2': {
|
||||
resolution: { integrity: 'sha512-2VV7DlIbooyTI7Bh+yzOOWL9tGwLnQKHno7qATE+fqZzDKYr6llVjVQOzpD/QLZFgXDPb8T71pJokHEZHEYJhQ==' },
|
||||
requiresBuild: true,
|
||||
dev: false,
|
||||
},
|
||||
'/core-js-pure/3.17.3': {
|
||||
'/core-js-pure@3.17.3': {
|
||||
resolution: { integrity: 'sha512-YusrqwiOTTn8058JDa0cv9unbXdIiIgcgI9gXso0ey4WgkFLd3lYlV9rp9n7nDCsYxXsMDTjA4m1h3T348mdlQ==' },
|
||||
requiresBuild: true,
|
||||
dev: false,
|
||||
},
|
||||
'/regenerator-runtime/0.13.9': {
|
||||
'/regenerator-runtime@0.13.9': {
|
||||
resolution: { integrity: 'sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==' },
|
||||
dev: false,
|
||||
},
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { LOCKFILE_VERSION } from '@pnpm/constants'
|
||||
import { LOCKFILE_VERSION_V6 as LOCKFILE_VERSION } from '@pnpm/constants'
|
||||
import { Lockfile } from '@pnpm/lockfile-file'
|
||||
import { prepareEmpty } from '@pnpm/prepare'
|
||||
import { addDistTag } from '@pnpm/registry-mock'
|
||||
|
||||
@@ -119,6 +119,7 @@ test('inject local packages', async () => {
|
||||
},
|
||||
}
|
||||
await mutateModules(importers, await testDefaults({
|
||||
autoInstallPeers: false,
|
||||
allProjects,
|
||||
workspacePackages,
|
||||
}))
|
||||
@@ -143,7 +144,7 @@ test('inject local packages', async () => {
|
||||
injected: true,
|
||||
},
|
||||
})
|
||||
expect(lockfile.packages['file:project-1_is-positive@1.0.0']).toEqual({
|
||||
expect(lockfile.packages['file:project-1(is-positive@1.0.0)']).toEqual({
|
||||
resolution: {
|
||||
directory: 'project-1',
|
||||
type: 'directory',
|
||||
@@ -160,7 +161,7 @@ test('inject local packages', async () => {
|
||||
},
|
||||
dev: false,
|
||||
})
|
||||
expect(lockfile.packages['file:project-2_is-positive@2.0.0']).toEqual({
|
||||
expect(lockfile.packages['file:project-2(is-positive@2.0.0)']).toEqual({
|
||||
resolution: {
|
||||
directory: 'project-2',
|
||||
type: 'directory',
|
||||
@@ -169,7 +170,7 @@ test('inject local packages', async () => {
|
||||
name: 'project-2',
|
||||
version: '1.0.0',
|
||||
dependencies: {
|
||||
'project-1': 'file:project-1_is-positive@2.0.0',
|
||||
'project-1': 'file:project-1(is-positive@2.0.0)',
|
||||
},
|
||||
transitivePeerDependencies: ['is-positive'],
|
||||
dev: false,
|
||||
@@ -187,6 +188,7 @@ test('inject local packages', async () => {
|
||||
await rimraf('project-3/node_modules')
|
||||
|
||||
await mutateModules(importers, await testDefaults({
|
||||
autoInstallPeers: false,
|
||||
allProjects,
|
||||
frozenLockfile: true,
|
||||
workspacePackages,
|
||||
@@ -206,7 +208,7 @@ test('inject local packages', async () => {
|
||||
|
||||
// The injected project is updated when one of its dependencies needs to be updated
|
||||
allProjects[0].manifest.dependencies!['is-negative'] = '2.0.0'
|
||||
await mutateModules(importers, await testDefaults({ allProjects, workspacePackages }))
|
||||
await mutateModules(importers, await testDefaults({ autoInstallPeers: false, allProjects, workspacePackages }))
|
||||
{
|
||||
const lockfile = await rootModules.readLockfile()
|
||||
expect(lockfile.importers['project-2'].dependenciesMeta).toEqual({
|
||||
@@ -214,7 +216,7 @@ test('inject local packages', async () => {
|
||||
injected: true,
|
||||
},
|
||||
})
|
||||
expect(lockfile.packages['file:project-1_is-positive@1.0.0']).toEqual({
|
||||
expect(lockfile.packages['file:project-1(is-positive@1.0.0)']).toEqual({
|
||||
resolution: {
|
||||
directory: 'project-1',
|
||||
type: 'directory',
|
||||
@@ -349,6 +351,7 @@ test('inject local packages declared via file protocol', async () => {
|
||||
},
|
||||
}
|
||||
await mutateModules(importers, await testDefaults({
|
||||
autoInstallPeers: false,
|
||||
allProjects,
|
||||
workspacePackages,
|
||||
}))
|
||||
@@ -373,7 +376,7 @@ test('inject local packages declared via file protocol', async () => {
|
||||
injected: true,
|
||||
},
|
||||
})
|
||||
expect(lockfile.packages['file:project-1_is-positive@1.0.0']).toEqual({
|
||||
expect(lockfile.packages['file:project-1(is-positive@1.0.0)']).toEqual({
|
||||
resolution: {
|
||||
directory: 'project-1',
|
||||
type: 'directory',
|
||||
@@ -390,7 +393,7 @@ test('inject local packages declared via file protocol', async () => {
|
||||
},
|
||||
dev: false,
|
||||
})
|
||||
expect(lockfile.packages['file:project-2_is-positive@2.0.0']).toEqual({
|
||||
expect(lockfile.packages['file:project-2(is-positive@2.0.0)']).toEqual({
|
||||
resolution: {
|
||||
directory: 'project-2',
|
||||
type: 'directory',
|
||||
@@ -399,7 +402,7 @@ test('inject local packages declared via file protocol', async () => {
|
||||
name: 'project-2',
|
||||
version: '1.0.0',
|
||||
dependencies: {
|
||||
'project-1': 'file:project-1_is-positive@2.0.0',
|
||||
'project-1': 'file:project-1(is-positive@2.0.0)',
|
||||
},
|
||||
transitivePeerDependencies: ['is-positive'],
|
||||
dev: false,
|
||||
@@ -417,6 +420,7 @@ test('inject local packages declared via file protocol', async () => {
|
||||
await rimraf('project-3/node_modules')
|
||||
|
||||
await mutateModules(importers, await testDefaults({
|
||||
autoInstallPeers: false,
|
||||
allProjects,
|
||||
frozenLockfile: true,
|
||||
workspacePackages,
|
||||
@@ -437,7 +441,7 @@ test('inject local packages declared via file protocol', async () => {
|
||||
// The injected project is updated when one of its dependencies needs to be updated
|
||||
allProjects[0].manifest.dependencies!['is-negative'] = '2.0.0'
|
||||
writeJsonFile('project-1/package.json', allProjects[0].manifest)
|
||||
await mutateModules(importers, await testDefaults({ allProjects, workspacePackages }))
|
||||
await mutateModules(importers, await testDefaults({ autoInstallPeers: false, allProjects, workspacePackages }))
|
||||
{
|
||||
const lockfile = await rootModules.readLockfile()
|
||||
expect(lockfile.importers['project-2'].dependenciesMeta).toEqual({
|
||||
@@ -445,7 +449,7 @@ test('inject local packages declared via file protocol', async () => {
|
||||
injected: true,
|
||||
},
|
||||
})
|
||||
expect(lockfile.packages['file:project-1_is-positive@1.0.0']).toEqual({
|
||||
expect(lockfile.packages['file:project-1(is-positive@1.0.0)']).toEqual({
|
||||
resolution: {
|
||||
directory: 'project-1',
|
||||
type: 'directory',
|
||||
@@ -570,6 +574,7 @@ test('inject local packages when the file protocol is used', async () => {
|
||||
},
|
||||
}
|
||||
await mutateModules(importers, await testDefaults({
|
||||
autoInstallPeers: false,
|
||||
allProjects,
|
||||
workspacePackages,
|
||||
}))
|
||||
@@ -589,7 +594,7 @@ test('inject local packages when the file protocol is used', async () => {
|
||||
const rootModules = assertProject(process.cwd())
|
||||
{
|
||||
const lockfile = await rootModules.readLockfile()
|
||||
expect(lockfile.packages['file:project-1_is-positive@1.0.0']).toEqual({
|
||||
expect(lockfile.packages['file:project-1(is-positive@1.0.0)']).toEqual({
|
||||
resolution: {
|
||||
directory: 'project-1',
|
||||
type: 'directory',
|
||||
@@ -606,7 +611,7 @@ test('inject local packages when the file protocol is used', async () => {
|
||||
},
|
||||
dev: false,
|
||||
})
|
||||
expect(lockfile.packages['file:project-2_is-positive@2.0.0']).toEqual({
|
||||
expect(lockfile.packages['file:project-2(is-positive@2.0.0)']).toEqual({
|
||||
resolution: {
|
||||
directory: 'project-2',
|
||||
type: 'directory',
|
||||
@@ -615,7 +620,7 @@ test('inject local packages when the file protocol is used', async () => {
|
||||
name: 'project-2',
|
||||
version: '1.0.0',
|
||||
dependencies: {
|
||||
'project-1': 'file:project-1_is-positive@2.0.0',
|
||||
'project-1': 'file:project-1(is-positive@2.0.0)',
|
||||
},
|
||||
transitivePeerDependencies: ['is-positive'],
|
||||
dev: false,
|
||||
@@ -633,6 +638,7 @@ test('inject local packages when the file protocol is used', async () => {
|
||||
await rimraf('project-3/node_modules')
|
||||
|
||||
await mutateModules(importers, await testDefaults({
|
||||
autoInstallPeers: false,
|
||||
allProjects,
|
||||
frozenLockfile: true,
|
||||
workspacePackages,
|
||||
@@ -654,12 +660,13 @@ test('inject local packages when the file protocol is used', async () => {
|
||||
allProjects[0].manifest.dependencies!['is-negative'] = '2.0.0'
|
||||
writeJsonFile('project-1/package.json', allProjects[0].manifest)
|
||||
await mutateModules(importers, await testDefaults({
|
||||
autoInstallPeers: false,
|
||||
allProjects,
|
||||
workspacePackages,
|
||||
}))
|
||||
{
|
||||
const lockfile = await rootModules.readLockfile()
|
||||
expect(lockfile.packages['file:project-1_is-positive@1.0.0']).toEqual({
|
||||
expect(lockfile.packages['file:project-1(is-positive@1.0.0)']).toEqual({
|
||||
resolution: {
|
||||
directory: 'project-1',
|
||||
type: 'directory',
|
||||
@@ -761,6 +768,7 @@ test('inject local packages and relink them after build', async () => {
|
||||
},
|
||||
}
|
||||
await mutateModules(importers, await testDefaults({
|
||||
autoInstallPeers: false,
|
||||
allProjects,
|
||||
workspacePackages,
|
||||
}))
|
||||
@@ -781,7 +789,7 @@ test('inject local packages and relink them after build', async () => {
|
||||
injected: true,
|
||||
},
|
||||
})
|
||||
expect(lockfile.packages['file:project-1_is-positive@1.0.0']).toEqual({
|
||||
expect(lockfile.packages['file:project-1(is-positive@1.0.0)']).toEqual({
|
||||
resolution: {
|
||||
directory: 'project-1',
|
||||
type: 'directory',
|
||||
@@ -805,6 +813,7 @@ test('inject local packages and relink them after build', async () => {
|
||||
await rimraf('project-2/node_modules')
|
||||
|
||||
await mutateModules(importers, await testDefaults({
|
||||
autoInstallPeers: false,
|
||||
allProjects,
|
||||
frozenLockfile: true,
|
||||
workspacePackages,
|
||||
@@ -878,7 +887,7 @@ test('inject local packages and relink them after build (file protocol is used)'
|
||||
rootDir: path.resolve('project-2'),
|
||||
},
|
||||
]
|
||||
await mutateModules(importers, await testDefaults({ allProjects }))
|
||||
await mutateModules(importers, await testDefaults({ autoInstallPeers: false, allProjects }))
|
||||
|
||||
await projects['project-1'].has('is-negative')
|
||||
await projects['project-1'].has('@pnpm.e2e/dep-of-pkg-with-1-dep')
|
||||
@@ -891,7 +900,7 @@ test('inject local packages and relink them after build (file protocol is used)'
|
||||
|
||||
const rootModules = assertProject(process.cwd())
|
||||
const lockfile = await rootModules.readLockfile()
|
||||
expect(lockfile.packages['file:project-1_is-positive@1.0.0']).toEqual({
|
||||
expect(lockfile.packages['file:project-1(is-positive@1.0.0)']).toEqual({
|
||||
resolution: {
|
||||
directory: 'project-1',
|
||||
type: 'directory',
|
||||
@@ -915,6 +924,7 @@ test('inject local packages and relink them after build (file protocol is used)'
|
||||
await rimraf('project-2/node_modules')
|
||||
|
||||
await mutateModules(importers, await testDefaults({
|
||||
autoInstallPeers: false,
|
||||
allProjects,
|
||||
frozenLockfile: true,
|
||||
}))
|
||||
@@ -1039,6 +1049,7 @@ test('inject local packages when node-linker is hoisted', async () => {
|
||||
},
|
||||
}
|
||||
await mutateModules(importers, await testDefaults({
|
||||
autoInstallPeers: false,
|
||||
allProjects,
|
||||
nodeLinker: 'hoisted',
|
||||
workspacePackages,
|
||||
@@ -1063,7 +1074,7 @@ test('inject local packages when node-linker is hoisted', async () => {
|
||||
injected: true,
|
||||
},
|
||||
})
|
||||
expect(lockfile.packages['file:project-1_is-positive@1.0.0']).toEqual({
|
||||
expect(lockfile.packages['file:project-1(is-positive@1.0.0)']).toEqual({
|
||||
resolution: {
|
||||
directory: 'project-1',
|
||||
type: 'directory',
|
||||
@@ -1081,7 +1092,7 @@ test('inject local packages when node-linker is hoisted', async () => {
|
||||
},
|
||||
dev: false,
|
||||
})
|
||||
expect(lockfile.packages['file:project-2_is-positive@2.0.0']).toEqual({
|
||||
expect(lockfile.packages['file:project-2(is-positive@2.0.0)']).toEqual({
|
||||
resolution: {
|
||||
directory: 'project-2',
|
||||
type: 'directory',
|
||||
@@ -1091,7 +1102,7 @@ test('inject local packages when node-linker is hoisted', async () => {
|
||||
version: '1.0.0',
|
||||
dependencies: {
|
||||
'@pnpm.e2e/dep-of-pkg-with-1-dep': '101.0.0',
|
||||
'project-1': 'file:project-1_is-positive@2.0.0',
|
||||
'project-1': 'file:project-1(is-positive@2.0.0)',
|
||||
},
|
||||
transitivePeerDependencies: ['is-positive'],
|
||||
dev: false,
|
||||
@@ -1204,6 +1215,7 @@ test('inject local packages when node-linker is hoisted and dependenciesMeta is
|
||||
},
|
||||
}
|
||||
await mutateModules(importers, await testDefaults({
|
||||
autoInstallPeers: false,
|
||||
allProjects,
|
||||
nodeLinker: 'hoisted',
|
||||
workspacePackages,
|
||||
@@ -1247,7 +1259,7 @@ test('inject local packages when node-linker is hoisted and dependenciesMeta is
|
||||
injected: true,
|
||||
},
|
||||
})
|
||||
expect(lockfile.packages['file:project-1_is-positive@1.0.0']).toEqual({
|
||||
expect(lockfile.packages['file:project-1(is-positive@1.0.0)']).toEqual({
|
||||
resolution: {
|
||||
directory: 'project-1',
|
||||
type: 'directory',
|
||||
@@ -1265,7 +1277,7 @@ test('inject local packages when node-linker is hoisted and dependenciesMeta is
|
||||
},
|
||||
dev: false,
|
||||
})
|
||||
expect(lockfile.packages['file:project-2_is-positive@2.0.0']).toEqual({
|
||||
expect(lockfile.packages['file:project-2(is-positive@2.0.0)']).toEqual({
|
||||
resolution: {
|
||||
directory: 'project-2',
|
||||
type: 'directory',
|
||||
@@ -1275,7 +1287,7 @@ test('inject local packages when node-linker is hoisted and dependenciesMeta is
|
||||
version: '1.0.0',
|
||||
dependencies: {
|
||||
'@pnpm.e2e/dep-of-pkg-with-1-dep': '101.0.0',
|
||||
'project-1': 'file:project-1_is-positive@2.0.0',
|
||||
'project-1': 'file:project-1(is-positive@2.0.0)',
|
||||
},
|
||||
transitivePeerDependencies: ['is-positive'],
|
||||
dev: false,
|
||||
@@ -1384,6 +1396,7 @@ test('peer dependency of injected project should be resolved correctly', async (
|
||||
},
|
||||
}
|
||||
await mutateModules(importers, await testDefaults({
|
||||
autoInstallPeers: false,
|
||||
allProjects,
|
||||
nodeLinker: 'hoisted',
|
||||
workspacePackages,
|
||||
@@ -1391,7 +1404,7 @@ test('peer dependency of injected project should be resolved correctly', async (
|
||||
|
||||
const rootModules = assertProject(process.cwd())
|
||||
const lockfile = await rootModules.readLockfile()
|
||||
expect(lockfile.packages?.['file:project-2_project-1@project-1'].dependencies?.['project-1']).toEqual('link:project-1')
|
||||
expect(lockfile.packages?.['file:project-2(project-1@project-1)'].dependencies?.['project-1']).toEqual('link:project-1')
|
||||
})
|
||||
|
||||
// There was a bug related to this. The manifests in the workspacePackages object were modified
|
||||
@@ -1469,6 +1482,7 @@ test('do not modify the manifest of the injected workpspace project', async () =
|
||||
},
|
||||
}
|
||||
const [project1] = await mutateModules(importers, await testDefaults({
|
||||
autoInstallPeers: false,
|
||||
allProjects,
|
||||
workspacePackages,
|
||||
}))
|
||||
|
||||
@@ -26,7 +26,7 @@ test('do not fail if installed package does not support the current engine and e
|
||||
await project.storeHas('@pnpm.e2e/not-compatible-with-any-os', '1.0.0')
|
||||
|
||||
const lockfile = await project.readLockfile()
|
||||
expect(lockfile.packages['/@pnpm.e2e/not-compatible-with-any-os/1.0.0'].os).toStrictEqual(['this-os-does-not-exist'])
|
||||
expect(lockfile.packages['/@pnpm.e2e/not-compatible-with-any-os@1.0.0'].os).toStrictEqual(['this-os-does-not-exist'])
|
||||
})
|
||||
|
||||
test('do not fail if installed package requires the node version that was passed in and engine-strict = true', async () => {
|
||||
@@ -41,7 +41,7 @@ test('do not fail if installed package requires the node version that was passed
|
||||
await project.storeHas('@pnpm.e2e/for-legacy-node', '1.0.0')
|
||||
|
||||
const lockfile = await project.readLockfile()
|
||||
expect(lockfile.packages['/@pnpm.e2e/for-legacy-node/1.0.0'].engines).toStrictEqual({ node: '0.10' })
|
||||
expect(lockfile.packages['/@pnpm.e2e/for-legacy-node@1.0.0'].engines).toStrictEqual({ node: '0.10' })
|
||||
})
|
||||
|
||||
test(`save cpu field to ${WANTED_LOCKFILE}`, async () => {
|
||||
@@ -52,7 +52,7 @@ test(`save cpu field to ${WANTED_LOCKFILE}`, async () => {
|
||||
const lockfile = await project.readLockfile()
|
||||
|
||||
expect(
|
||||
lockfile.packages['/@pnpm.e2e/has-cpu-specified/1.0.0'].cpu
|
||||
lockfile.packages['/@pnpm.e2e/has-cpu-specified@1.0.0'].cpu
|
||||
).toStrictEqual(
|
||||
['x64', 'ia32']
|
||||
)
|
||||
@@ -65,5 +65,5 @@ test(`engines field is not added to ${WANTED_LOCKFILE} when "node": "*" is in "e
|
||||
|
||||
const lockfile = await project.readLockfile()
|
||||
|
||||
expect(lockfile.packages['/jsonify/0.0.0']).not.toHaveProperty(['engines'])
|
||||
expect(lockfile.packages['/jsonify@0.0.0']).not.toHaveProperty(['engines'])
|
||||
})
|
||||
|
||||
@@ -54,7 +54,7 @@ test('run pre/postinstall scripts', async () => {
|
||||
}
|
||||
|
||||
const lockfile = await project.readLockfile()
|
||||
expect(lockfile.packages['/@pnpm.e2e/pre-and-postinstall-scripts-example/1.0.0'].requiresBuild)
|
||||
expect(lockfile.packages['/@pnpm.e2e/pre-and-postinstall-scripts-example@1.0.0'].requiresBuild)
|
||||
})
|
||||
|
||||
test('run pre/postinstall scripts, when PnP is used and no symlinks', async () => {
|
||||
@@ -416,8 +416,8 @@ test('selectively ignore scripts in some dependencies by neverBuiltDependencies'
|
||||
|
||||
const lockfile = await project.readLockfile()
|
||||
expect(lockfile.neverBuiltDependencies).toStrictEqual(neverBuiltDependencies)
|
||||
expect(lockfile.packages['/@pnpm.e2e/pre-and-postinstall-scripts-example/1.0.0'].requiresBuild).toBe(undefined)
|
||||
expect(lockfile.packages['/@pnpm.e2e/install-script-example/1.0.0'].requiresBuild).toBeTruthy()
|
||||
expect(lockfile.packages['/@pnpm.e2e/pre-and-postinstall-scripts-example@1.0.0'].requiresBuild).toBe(undefined)
|
||||
expect(lockfile.packages['/@pnpm.e2e/install-script-example@1.0.0'].requiresBuild).toBeTruthy()
|
||||
|
||||
await rimraf('node_modules')
|
||||
|
||||
@@ -454,8 +454,8 @@ test('selectively allow scripts in some dependencies by onlyBuiltDependencies',
|
||||
|
||||
const lockfile = await project.readLockfile()
|
||||
expect(lockfile.onlyBuiltDependencies).toStrictEqual(onlyBuiltDependencies)
|
||||
expect(lockfile.packages['/@pnpm.e2e/pre-and-postinstall-scripts-example/1.0.0'].requiresBuild).toBe(undefined)
|
||||
expect(lockfile.packages['/@pnpm.e2e/install-script-example/1.0.0'].requiresBuild).toBe(true)
|
||||
expect(lockfile.packages['/@pnpm.e2e/pre-and-postinstall-scripts-example@1.0.0'].requiresBuild).toBe(undefined)
|
||||
expect(lockfile.packages['/@pnpm.e2e/install-script-example@1.0.0'].requiresBuild).toBe(true)
|
||||
|
||||
await rimraf('node_modules')
|
||||
|
||||
@@ -476,8 +476,8 @@ test('lockfile is updated if neverBuiltDependencies is changed', async () => {
|
||||
{
|
||||
const lockfile = await project.readLockfile()
|
||||
expect(lockfile.neverBuiltDependencies).toBeFalsy()
|
||||
expect(lockfile.packages['/@pnpm.e2e/pre-and-postinstall-scripts-example/1.0.0'].requiresBuild).toBeTruthy()
|
||||
expect(lockfile.packages['/@pnpm.e2e/install-script-example/1.0.0'].requiresBuild).toBeTruthy()
|
||||
expect(lockfile.packages['/@pnpm.e2e/pre-and-postinstall-scripts-example@1.0.0'].requiresBuild).toBeTruthy()
|
||||
expect(lockfile.packages['/@pnpm.e2e/install-script-example@1.0.0'].requiresBuild).toBeTruthy()
|
||||
}
|
||||
|
||||
const neverBuiltDependencies = ['@pnpm.e2e/pre-and-postinstall-scripts-example']
|
||||
@@ -490,8 +490,8 @@ test('lockfile is updated if neverBuiltDependencies is changed', async () => {
|
||||
{
|
||||
const lockfile = await project.readLockfile()
|
||||
expect(lockfile.neverBuiltDependencies).toStrictEqual(neverBuiltDependencies)
|
||||
expect(lockfile.packages['/@pnpm.e2e/pre-and-postinstall-scripts-example/1.0.0'].requiresBuild).toBe(undefined)
|
||||
expect(lockfile.packages['/@pnpm.e2e/install-script-example/1.0.0'].requiresBuild).toBeTruthy()
|
||||
expect(lockfile.packages['/@pnpm.e2e/pre-and-postinstall-scripts-example@1.0.0'].requiresBuild).toBe(undefined)
|
||||
expect(lockfile.packages['/@pnpm.e2e/install-script-example@1.0.0'].requiresBuild).toBeTruthy()
|
||||
}
|
||||
})
|
||||
|
||||
@@ -505,8 +505,8 @@ test('lockfile is updated if onlyBuiltDependencies is changed', async () => {
|
||||
{
|
||||
const lockfile = await project.readLockfile()
|
||||
expect(lockfile.onlyBuiltDependencies).toBeFalsy()
|
||||
expect(lockfile.packages['/@pnpm.e2e/pre-and-postinstall-scripts-example/1.0.0'].requiresBuild).toBeTruthy()
|
||||
expect(lockfile.packages['/@pnpm.e2e/install-script-example/1.0.0'].requiresBuild).toBeTruthy()
|
||||
expect(lockfile.packages['/@pnpm.e2e/pre-and-postinstall-scripts-example@1.0.0'].requiresBuild).toBeTruthy()
|
||||
expect(lockfile.packages['/@pnpm.e2e/install-script-example@1.0.0'].requiresBuild).toBeTruthy()
|
||||
}
|
||||
|
||||
const onlyBuiltDependencies: string[] = []
|
||||
@@ -519,8 +519,8 @@ test('lockfile is updated if onlyBuiltDependencies is changed', async () => {
|
||||
{
|
||||
const lockfile = await project.readLockfile()
|
||||
expect(lockfile.onlyBuiltDependencies).toStrictEqual(onlyBuiltDependencies)
|
||||
expect(lockfile.packages['/@pnpm.e2e/pre-and-postinstall-scripts-example/1.0.0'].requiresBuild).toBe(undefined)
|
||||
expect(lockfile.packages['/@pnpm.e2e/install-script-example/1.0.0'].requiresBuild).toBe(undefined)
|
||||
expect(lockfile.packages['/@pnpm.e2e/pre-and-postinstall-scripts-example@1.0.0'].requiresBuild).toBe(undefined)
|
||||
expect(lockfile.packages['/@pnpm.e2e/install-script-example@1.0.0'].requiresBuild).toBe(undefined)
|
||||
}
|
||||
|
||||
onlyBuiltDependencies.push('@pnpm.e2e/pre-and-postinstall-scripts-example')
|
||||
@@ -533,8 +533,8 @@ test('lockfile is updated if onlyBuiltDependencies is changed', async () => {
|
||||
{
|
||||
const lockfile = await project.readLockfile()
|
||||
expect(lockfile.onlyBuiltDependencies).toStrictEqual(onlyBuiltDependencies)
|
||||
expect(lockfile.packages['/@pnpm.e2e/pre-and-postinstall-scripts-example/1.0.0'].requiresBuild).toBe(true)
|
||||
expect(lockfile.packages['/@pnpm.e2e/install-script-example/1.0.0'].requiresBuild).toBe(undefined)
|
||||
expect(lockfile.packages['/@pnpm.e2e/pre-and-postinstall-scripts-example@1.0.0'].requiresBuild).toBe(true)
|
||||
expect(lockfile.packages['/@pnpm.e2e/install-script-example@1.0.0'].requiresBuild).toBe(undefined)
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { promises as fs } from 'fs'
|
||||
import path from 'path'
|
||||
import { LOCKFILE_VERSION } from '@pnpm/constants'
|
||||
import { LOCKFILE_VERSION_V6 as LOCKFILE_VERSION } from '@pnpm/constants'
|
||||
import { Lockfile } from '@pnpm/lockfile-file'
|
||||
import { prepareEmpty, preparePackages } from '@pnpm/prepare'
|
||||
import { addDistTag } from '@pnpm/registry-mock'
|
||||
@@ -46,10 +46,12 @@ test('local file', async () => {
|
||||
|
||||
expect(lockfile).toStrictEqual({
|
||||
dependencies: {
|
||||
'local-pkg': 'link:../local-pkg',
|
||||
'local-pkg': {
|
||||
specifier: expectedSpecs['local-pkg'],
|
||||
version: 'link:../local-pkg',
|
||||
},
|
||||
},
|
||||
lockfileVersion: LOCKFILE_VERSION,
|
||||
specifiers: expectedSpecs,
|
||||
})
|
||||
})
|
||||
|
||||
@@ -87,10 +89,12 @@ test('local file via link:', async () => {
|
||||
|
||||
expect(lockfile).toStrictEqual({
|
||||
dependencies: {
|
||||
'local-pkg': 'link:../local-pkg',
|
||||
'local-pkg': {
|
||||
specifier: expectedSpecs['local-pkg'],
|
||||
version: 'link:../local-pkg',
|
||||
},
|
||||
},
|
||||
lockfileVersion: LOCKFILE_VERSION,
|
||||
specifiers: expectedSpecs,
|
||||
})
|
||||
})
|
||||
|
||||
@@ -113,10 +117,12 @@ test('local file with symlinked node_modules', async () => {
|
||||
|
||||
expect(lockfile).toStrictEqual({
|
||||
dependencies: {
|
||||
'local-pkg': 'link:../local-pkg',
|
||||
'local-pkg': {
|
||||
specifier: expectedSpecs['local-pkg'],
|
||||
version: 'link:../local-pkg',
|
||||
},
|
||||
},
|
||||
lockfileVersion: LOCKFILE_VERSION,
|
||||
specifiers: expectedSpecs,
|
||||
})
|
||||
})
|
||||
|
||||
@@ -141,7 +147,7 @@ test('tarball local package', async () => {
|
||||
expect(manifest.dependencies).toStrictEqual({ 'tar-pkg': pkgSpec })
|
||||
|
||||
const lockfile = await project.readLockfile()
|
||||
expect(lockfile.packages[lockfile.dependencies['tar-pkg']]).toStrictEqual({
|
||||
expect(lockfile.packages[lockfile.dependencies['tar-pkg'].version]).toStrictEqual({
|
||||
dev: false,
|
||||
name: 'tar-pkg',
|
||||
resolution: {
|
||||
@@ -171,8 +177,8 @@ test('tarball local package from project directory', async () => {
|
||||
expect(manifest.dependencies).toStrictEqual({ 'tar-pkg': pkgSpec })
|
||||
|
||||
const lockfile = await project.readLockfile()
|
||||
expect(lockfile.dependencies['tar-pkg']).toBe(pkgSpec)
|
||||
expect(lockfile.packages[lockfile.dependencies['tar-pkg']]).toStrictEqual({
|
||||
expect(lockfile.dependencies['tar-pkg'].version).toBe(pkgSpec)
|
||||
expect(lockfile.packages[lockfile.dependencies['tar-pkg'].version]).toStrictEqual({
|
||||
dev: false,
|
||||
name: 'tar-pkg',
|
||||
resolution: {
|
||||
|
||||
@@ -29,8 +29,7 @@ test('install with lockfileOnly = true', async () => {
|
||||
|
||||
const lockfile = await project.readLockfile()
|
||||
expect(lockfile.dependencies['@pnpm.e2e/pkg-with-1-dep']).toBeTruthy()
|
||||
expect(lockfile.packages['/@pnpm.e2e/pkg-with-1-dep/100.0.0']).toBeTruthy()
|
||||
expect(lockfile.specifiers['@pnpm.e2e/pkg-with-1-dep']).toBeTruthy()
|
||||
expect(lockfile.packages['/@pnpm.e2e/pkg-with-1-dep@100.0.0']).toBeTruthy()
|
||||
|
||||
const currentLockfile = await project.readCurrentLockfile()
|
||||
expect(currentLockfile).toBeFalsy()
|
||||
@@ -70,11 +69,10 @@ test('warn when installing with lockfileOnly = true and node_modules exists', as
|
||||
|
||||
const lockfile = await project.readLockfile()
|
||||
expect(lockfile.dependencies.rimraf).toBeTruthy()
|
||||
expect(lockfile.packages['/rimraf/2.5.1']).toBeTruthy()
|
||||
expect(lockfile.specifiers.rimraf).toBeTruthy()
|
||||
expect(lockfile.packages['/rimraf@2.5.1']).toBeTruthy()
|
||||
|
||||
const currentLockfile = await project.readCurrentLockfile()
|
||||
expect(currentLockfile.packages['/rimraf/2.5.1']).toBeFalsy()
|
||||
expect(currentLockfile.packages['/rimraf@2.5.1']).toBeFalsy()
|
||||
})
|
||||
|
||||
// For @pnpm/core it might make sense to throw an exception in this case but for now it is better than having
|
||||
@@ -94,5 +92,5 @@ test('always update the lockfile when lockfileOnly is used, even if frozenLockfi
|
||||
}))
|
||||
|
||||
const lockfile = await project.readLockfile()
|
||||
expect(lockfile.specifiers['is-positive']).toBe('2.0.0')
|
||||
expect(lockfile.dependencies['is-positive'].specifier).toBe('2.0.0')
|
||||
})
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import * as path from 'path'
|
||||
import { promises as fs } from 'fs'
|
||||
import { prepareEmpty, preparePackages } from '@pnpm/prepare'
|
||||
import { prepare, prepareEmpty, preparePackages } from '@pnpm/prepare'
|
||||
import { PnpmError } from '@pnpm/error'
|
||||
import {
|
||||
PackageManifestLog,
|
||||
@@ -9,7 +9,7 @@ import {
|
||||
StageLog,
|
||||
StatsLog,
|
||||
} from '@pnpm/core-loggers'
|
||||
import { LOCKFILE_VERSION } from '@pnpm/constants'
|
||||
import { LOCKFILE_VERSION_V6 as LOCKFILE_VERSION } from '@pnpm/constants'
|
||||
import { fixtures } from '@pnpm/test-fixtures'
|
||||
import { ProjectManifest } from '@pnpm/types'
|
||||
import { addDistTag, getIntegrity, REGISTRY_MOCK_PORT } from '@pnpm/registry-mock'
|
||||
@@ -46,7 +46,7 @@ test('spec not specified in package.json.dependencies', async () => {
|
||||
}, await testDefaults())
|
||||
|
||||
const lockfile = await project.readLockfile()
|
||||
expect(lockfile.specifiers['is-positive']).toBe('')
|
||||
expect(lockfile.dependencies['is-positive'].specifier).toBe('')
|
||||
})
|
||||
|
||||
test('ignoring some files in the dependency', async () => {
|
||||
@@ -507,7 +507,7 @@ test('bundledDependencies (pkg-with-bundled-dependencies@1.0.0)', async () => {
|
||||
|
||||
const lockfile = await project.readLockfile()
|
||||
expect(
|
||||
lockfile.packages['/@pnpm.e2e/pkg-with-bundled-dependencies/1.0.0'].bundledDependencies
|
||||
lockfile.packages['/@pnpm.e2e/pkg-with-bundled-dependencies@1.0.0'].bundledDependencies
|
||||
).toStrictEqual(
|
||||
['@pnpm.e2e/hello-world-js-bin']
|
||||
)
|
||||
@@ -522,7 +522,7 @@ test('bundleDependencies (pkg-with-bundle-dependencies@1.0.0)', async () => {
|
||||
|
||||
const lockfile = await project.readLockfile()
|
||||
expect(
|
||||
lockfile.packages['/@pnpm.e2e/pkg-with-bundle-dependencies/1.0.0'].bundledDependencies
|
||||
lockfile.packages['/@pnpm.e2e/pkg-with-bundle-dependencies@1.0.0'].bundledDependencies
|
||||
).toStrictEqual(
|
||||
['@pnpm.e2e/hello-world-js-bin']
|
||||
)
|
||||
@@ -535,7 +535,7 @@ test('installing a package with bundleDependencies set to false (pkg-with-bundle
|
||||
|
||||
const lockfile = await project.readLockfile()
|
||||
expect(
|
||||
typeof lockfile.packages['/@pnpm.e2e/pkg-with-bundle-dependencies-false/1.0.0'].bundledDependencies
|
||||
typeof lockfile.packages['/@pnpm.e2e/pkg-with-bundle-dependencies-false@1.0.0'].bundledDependencies
|
||||
).toEqual('undefined')
|
||||
})
|
||||
|
||||
@@ -583,7 +583,7 @@ testOnNonWindows('building native addons', async () => {
|
||||
expect(await exists('node_modules/diskusage/build')).toBeTruthy()
|
||||
|
||||
const lockfile = await project.readLockfile()
|
||||
expect(lockfile.packages).toHaveProperty(['/diskusage/1.1.3', 'requiresBuild'], true)
|
||||
expect(lockfile.packages).toHaveProperty(['/diskusage@1.1.3', 'requiresBuild'], true)
|
||||
})
|
||||
|
||||
test('should update subdep on second install', async () => {
|
||||
@@ -597,7 +597,7 @@ test('should update subdep on second install', async () => {
|
||||
|
||||
let lockfile = await project.readLockfile()
|
||||
|
||||
expect(lockfile.packages).toHaveProperty(['/@pnpm.e2e/dep-of-pkg-with-1-dep/100.0.0'])
|
||||
expect(lockfile.packages).toHaveProperty(['/@pnpm.e2e/dep-of-pkg-with-1-dep@100.0.0'])
|
||||
|
||||
await addDistTag({ package: '@pnpm.e2e/dep-of-pkg-with-1-dep', version: '100.1.0', distTag: 'latest' })
|
||||
|
||||
@@ -616,8 +616,8 @@ test('should update subdep on second install', async () => {
|
||||
|
||||
lockfile = await project.readLockfile()
|
||||
|
||||
expect(lockfile.packages).not.toHaveProperty(['/@pnpm.e2e/dep-of-pkg-with-1-dep/100.0.0'])
|
||||
expect(lockfile.packages).toHaveProperty(['/@pnpm.e2e/dep-of-pkg-with-1-dep/100.1.0'])
|
||||
expect(lockfile.packages).not.toHaveProperty(['/@pnpm.e2e/dep-of-pkg-with-1-dep@100.0.0'])
|
||||
expect(lockfile.packages).toHaveProperty(['/@pnpm.e2e/dep-of-pkg-with-1-dep@100.1.0'])
|
||||
|
||||
expect(deepRequireCwd(['@pnpm.e2e/pkg-with-1-dep', '@pnpm.e2e/dep-of-pkg-with-1-dep', './package.json']).version).toEqual('100.1.0')
|
||||
})
|
||||
@@ -633,7 +633,7 @@ test('should not update subdep when depth is smaller than depth of package', asy
|
||||
|
||||
let lockfile = await project.readLockfile()
|
||||
|
||||
expect(lockfile.packages).toHaveProperty(['/@pnpm.e2e/dep-of-pkg-with-1-dep/100.0.0'])
|
||||
expect(lockfile.packages).toHaveProperty(['/@pnpm.e2e/dep-of-pkg-with-1-dep@100.0.0'])
|
||||
|
||||
await addDistTag({ package: '@pnpm.e2e/dep-of-pkg-with-1-dep', version: '100.1.0', distTag: 'latest' })
|
||||
|
||||
@@ -643,8 +643,8 @@ test('should not update subdep when depth is smaller than depth of package', asy
|
||||
|
||||
lockfile = await project.readLockfile()
|
||||
|
||||
expect(lockfile.packages).toHaveProperty(['/@pnpm.e2e/dep-of-pkg-with-1-dep/100.0.0'])
|
||||
expect(lockfile.packages).not.toHaveProperty(['/@pnpm.e2e/dep-of-pkg-with-1-dep/100.1.0'])
|
||||
expect(lockfile.packages).toHaveProperty(['/@pnpm.e2e/dep-of-pkg-with-1-dep@100.0.0'])
|
||||
expect(lockfile.packages).not.toHaveProperty(['/@pnpm.e2e/dep-of-pkg-with-1-dep@100.1.0'])
|
||||
|
||||
expect(deepRequireCwd(['@pnpm.e2e/pkg-with-1-dep', '@pnpm.e2e/dep-of-pkg-with-1-dep', './package.json']).version).toEqual('100.0.0')
|
||||
})
|
||||
@@ -715,6 +715,7 @@ test('lockfile locks npm dependencies', async () => {
|
||||
const project = prepareEmpty()
|
||||
const reporter = sinon.spy()
|
||||
|
||||
await addDistTag({ package: '@pnpm.e2e/pkg-with-1-dep', version: '100.0.0', distTag: 'latest' })
|
||||
await addDistTag({ package: '@pnpm.e2e/dep-of-pkg-with-1-dep', version: '100.0.0', distTag: 'latest' })
|
||||
|
||||
const manifest = await addDependenciesToPackage({}, ['@pnpm.e2e/pkg-with-1-dep'], await testDefaults({ save: true, reporter }))
|
||||
@@ -815,7 +816,7 @@ test('should throw error when trying to install a package without name', async (
|
||||
|
||||
// Covers https://github.com/pnpm/pnpm/issues/1193
|
||||
test('rewrites node_modules created by npm', async () => {
|
||||
const project = prepareEmpty()
|
||||
const project = prepare()
|
||||
|
||||
await execa('npm', ['install', 'rimraf@2.5.1', '@types/node', '--save'])
|
||||
|
||||
@@ -938,23 +939,26 @@ test('all the subdeps of dependencies are linked when a node_modules is partiall
|
||||
|
||||
await writeYamlFile(path.resolve('pnpm-lock.yaml'), {
|
||||
dependencies: {
|
||||
'@pnpm.e2e/foobarqar': '1.0.1',
|
||||
'@pnpm.e2e/foobarqar': {
|
||||
specifier: '1.0.1',
|
||||
version: '1.0.1',
|
||||
},
|
||||
},
|
||||
lockfileVersion: LOCKFILE_VERSION,
|
||||
packages: {
|
||||
'/@pnpm.e2e/bar/100.0.0': {
|
||||
'/@pnpm.e2e/bar@100.0.0': {
|
||||
dev: false,
|
||||
resolution: {
|
||||
integrity: getIntegrity('@pnpm.e2e/bar', '100.0.0'),
|
||||
},
|
||||
},
|
||||
'/@pnpm.e2e/foo/100.1.0': {
|
||||
'/@pnpm.e2e/foo@100.1.0': {
|
||||
dev: false,
|
||||
resolution: {
|
||||
integrity: getIntegrity('@pnpm.e2e/foo', '100.1.0'),
|
||||
},
|
||||
},
|
||||
'/@pnpm.e2e/foobarqar/1.0.1': {
|
||||
'/@pnpm.e2e/foobarqar@1.0.1': {
|
||||
dependencies: {
|
||||
'@pnpm.e2e/bar': '100.0.0',
|
||||
'@pnpm.e2e/foo': '100.1.0',
|
||||
@@ -965,7 +969,7 @@ test('all the subdeps of dependencies are linked when a node_modules is partiall
|
||||
integrity: getIntegrity('@pnpm.e2e/foobarqar', '1.0.1'),
|
||||
},
|
||||
},
|
||||
'/is-positive/3.1.0': {
|
||||
'/is-positive@3.1.0': {
|
||||
dev: false,
|
||||
engines: {
|
||||
node: '>=0.10.0',
|
||||
@@ -975,9 +979,6 @@ test('all the subdeps of dependencies are linked when a node_modules is partiall
|
||||
},
|
||||
},
|
||||
},
|
||||
specifiers: {
|
||||
'@pnpm.e2e/foobarqar': '1.0.1',
|
||||
},
|
||||
}, { lineWidth: 1000 })
|
||||
|
||||
await mutateModulesInSingleProject({
|
||||
@@ -1022,25 +1023,28 @@ test('subdep symlinks are updated if the lockfile has new subdep versions specif
|
||||
Object.keys(lockfile.packages)
|
||||
).toStrictEqual(
|
||||
[
|
||||
'/@pnpm.e2e/dep-of-pkg-with-1-dep/100.0.0',
|
||||
'/@pnpm.e2e/parent-of-pkg-with-1-dep/1.0.0',
|
||||
'/@pnpm.e2e/pkg-with-1-dep/100.0.0',
|
||||
'/@pnpm.e2e/dep-of-pkg-with-1-dep@100.0.0',
|
||||
'/@pnpm.e2e/parent-of-pkg-with-1-dep@1.0.0',
|
||||
'/@pnpm.e2e/pkg-with-1-dep@100.0.0',
|
||||
]
|
||||
)
|
||||
|
||||
await writeYamlFile(path.resolve('pnpm-lock.yaml'), {
|
||||
dependencies: {
|
||||
'@pnpm.e2e/parent-of-pkg-with-1-dep': '1.0.0',
|
||||
'@pnpm.e2e/parent-of-pkg-with-1-dep': {
|
||||
specifier: '1.0.0',
|
||||
version: '1.0.0',
|
||||
},
|
||||
},
|
||||
lockfileVersion: LOCKFILE_VERSION,
|
||||
packages: {
|
||||
'/@pnpm.e2e/dep-of-pkg-with-1-dep/100.1.0': {
|
||||
'/@pnpm.e2e/dep-of-pkg-with-1-dep@100.1.0': {
|
||||
dev: false,
|
||||
resolution: {
|
||||
integrity: getIntegrity('@pnpm.e2e/dep-of-pkg-with-1-dep', '100.1.0'),
|
||||
},
|
||||
},
|
||||
'/@pnpm.e2e/parent-of-pkg-with-1-dep/1.0.0': {
|
||||
'/@pnpm.e2e/parent-of-pkg-with-1-dep@1.0.0': {
|
||||
dependencies: {
|
||||
'@pnpm.e2e/pkg-with-1-dep': '100.0.0',
|
||||
},
|
||||
@@ -1049,7 +1053,7 @@ test('subdep symlinks are updated if the lockfile has new subdep versions specif
|
||||
integrity: getIntegrity('@pnpm.e2e/parent-of-pkg-with-1-dep', '1.0.0'),
|
||||
},
|
||||
},
|
||||
'/@pnpm.e2e/pkg-with-1-dep/100.0.0': {
|
||||
'/@pnpm.e2e/pkg-with-1-dep@100.0.0': {
|
||||
dependencies: {
|
||||
'@pnpm.e2e/dep-of-pkg-with-1-dep': '100.1.0',
|
||||
},
|
||||
@@ -1059,9 +1063,6 @@ test('subdep symlinks are updated if the lockfile has new subdep versions specif
|
||||
},
|
||||
},
|
||||
},
|
||||
specifiers: {
|
||||
'@pnpm.e2e/parent-of-pkg-with-1-dep': '1.0.0',
|
||||
},
|
||||
}, { lineWidth: 1000 })
|
||||
|
||||
await mutateModulesInSingleProject({
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import path from 'path'
|
||||
import { assertProject } from '@pnpm/assert-project'
|
||||
import { LOCKFILE_VERSION } from '@pnpm/constants'
|
||||
import { LOCKFILE_VERSION_V6 as LOCKFILE_VERSION } from '@pnpm/constants'
|
||||
import { readCurrentLockfile } from '@pnpm/lockfile-file'
|
||||
import { prepareEmpty, preparePackages } from '@pnpm/prepare'
|
||||
import { addDistTag } from '@pnpm/registry-mock'
|
||||
@@ -12,7 +12,7 @@ import {
|
||||
mutateModulesInSingleProject,
|
||||
} from '@pnpm/core'
|
||||
import rimraf from '@zkochan/rimraf'
|
||||
import { createPeersFolderSuffix } from '@pnpm/dependency-path'
|
||||
import { createPeersFolderSuffixNewFormat as createPeersFolderSuffix } from '@pnpm/dependency-path'
|
||||
import loadJsonFile from 'load-json-file'
|
||||
import exists from 'path-exists'
|
||||
import pick from 'ramda/src/pick'
|
||||
@@ -162,7 +162,7 @@ test('install only the dependencies of the specified importer. The current lockf
|
||||
const rootModules = assertProject(process.cwd())
|
||||
const currentLockfile = await rootModules.readCurrentLockfile()
|
||||
expect(currentLockfile.importers).toHaveProperty(['project-3'])
|
||||
expect(currentLockfile.packages).toHaveProperty(['/@pnpm.e2e/foobar/100.0.0'])
|
||||
expect(currentLockfile.packages).toHaveProperty(['/@pnpm.e2e/foobar@100.0.0'])
|
||||
})
|
||||
|
||||
test('some projects were removed from the workspace and the ones that are left depend on them', async () => {
|
||||
@@ -304,8 +304,8 @@ test('dependencies of other importers are not pruned when installing for a subse
|
||||
const lockfile = await rootModules.readCurrentLockfile()
|
||||
expect(Object.keys(lockfile.importers)).toStrictEqual(['project-1', 'project-2'])
|
||||
expect(Object.keys(lockfile.packages)).toStrictEqual([
|
||||
'/is-negative/1.0.0',
|
||||
'/is-positive/2.0.0',
|
||||
'/is-negative@1.0.0',
|
||||
'/is-positive@2.0.0',
|
||||
])
|
||||
})
|
||||
|
||||
@@ -701,30 +701,30 @@ test('partial installation in a monorepo does not remove dependencies of other w
|
||||
importers: {
|
||||
'project-1': {
|
||||
dependencies: {
|
||||
'is-positive': '1.0.0',
|
||||
},
|
||||
specifiers: {
|
||||
'is-positive': '1.0.0',
|
||||
'is-positive': {
|
||||
specifier: '1.0.0',
|
||||
vesrion: '1.0.0',
|
||||
},
|
||||
},
|
||||
},
|
||||
'project-2': {
|
||||
dependencies: {
|
||||
'@pnpm.e2e/pkg-with-1-dep': '100.0.0',
|
||||
},
|
||||
specifiers: {
|
||||
'@pnpm.e2e/pkg-with-1-dep': '100.0.0',
|
||||
'@pnpm.e2e/pkg-with-1-ep': {
|
||||
specifier: '100.0.0',
|
||||
version: '100.0.0',
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
lockfileVersion: LOCKFILE_VERSION,
|
||||
packages: {
|
||||
'/@pnpm.e2e/dep-of-pkg-with-1-dep/100.0.0': {
|
||||
'/@pnpm.e2e/dep-of-pkg-with-1-dep@100.0.0': {
|
||||
dev: false,
|
||||
resolution: {
|
||||
integrity: 'sha512-RWObNQIluSr56fVbOwD75Dt5CE2aiPReTMMUblYEMEqUI+iJw5ovTyO7LzUG/VJ4iVL2uUrbkQ6+rq4z4WOdDw==',
|
||||
},
|
||||
},
|
||||
'/is-positive/1.0.0': {
|
||||
'/is-positive@1.0.0': {
|
||||
dev: false,
|
||||
engines: {
|
||||
node: '>=0.10.0',
|
||||
@@ -733,7 +733,7 @@ test('partial installation in a monorepo does not remove dependencies of other w
|
||||
integrity: 'sha512-xxzPGZ4P2uN6rROUa5N9Z7zTX6ERuE0hs6GUOc/cKBLF2NqKc16UwqHMt3tFg4CO6EBTE5UecUasg+3jZx3Ckg==',
|
||||
},
|
||||
},
|
||||
'/@pnpm.e2e/pkg-with-1-dep/100.0.0': {
|
||||
'/@pnpm.e2e/pkg-with-1-dep@100.0.0': {
|
||||
dependencies: {
|
||||
'@pnpm.e2e/dep-of-pkg-with-1-dep': '100.0.0',
|
||||
},
|
||||
@@ -800,30 +800,30 @@ test('partial installation in a monorepo does not remove dependencies of other w
|
||||
importers: {
|
||||
'project-1': {
|
||||
dependencies: {
|
||||
'is-positive': '1.0.0',
|
||||
},
|
||||
specifiers: {
|
||||
'is-positive': '1.0.0',
|
||||
'is-positive': {
|
||||
specifier: '1.0.0',
|
||||
version: '1.0.0',
|
||||
},
|
||||
},
|
||||
},
|
||||
'project-2': {
|
||||
dependencies: {
|
||||
'@pnpm.e2e/pkg-with-1-dep': '100.0.0',
|
||||
},
|
||||
specifiers: {
|
||||
'@pnpm.e2e/pkg-with-1-dep': '100.0.0',
|
||||
'@pnpm.e2e/pkg-with-1-dep': {
|
||||
specifier: '100.0.0',
|
||||
version: '100.0.0',
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
lockfileVersion: LOCKFILE_VERSION,
|
||||
packages: {
|
||||
'/@pnpm.e2e/dep-of-pkg-with-1-dep/100.0.0': {
|
||||
'/@pnpm.e2e/dep-of-pkg-with-1-dep@100.0.0': {
|
||||
dev: false,
|
||||
resolution: {
|
||||
integrity: 'sha512-RWObNQIluSr56fVbOwD75Dt5CE2aiPReTMMUblYEMEqUI+iJw5ovTyO7LzUG/VJ4iVL2uUrbkQ6+rq4z4WOdDw==',
|
||||
},
|
||||
},
|
||||
'/is-positive/1.0.0': {
|
||||
'/is-positive@1.0.0': {
|
||||
dev: false,
|
||||
engines: {
|
||||
node: '>=0.10.0',
|
||||
@@ -832,7 +832,7 @@ test('partial installation in a monorepo does not remove dependencies of other w
|
||||
integrity: 'sha512-xxzPGZ4P2uN6rROUa5N9Z7zTX6ERuE0hs6GUOc/cKBLF2NqKc16UwqHMt3tFg4CO6EBTE5UecUasg+3jZx3Ckg==',
|
||||
},
|
||||
},
|
||||
'/@pnpm.e2e/pkg-with-1-dep/100.0.0': {
|
||||
'/@pnpm.e2e/pkg-with-1-dep@100.0.0': {
|
||||
dependencies: {
|
||||
'@pnpm.e2e/dep-of-pkg-with-1-dep': '100.0.0',
|
||||
},
|
||||
@@ -1047,6 +1047,7 @@ test('update workspace range', async () => {
|
||||
},
|
||||
},
|
||||
},
|
||||
saveWorkspaceProtocol: true,
|
||||
}))
|
||||
|
||||
const expected = {
|
||||
@@ -1241,11 +1242,11 @@ test('remove dependencies of a project that was removed from the workspace (duri
|
||||
{
|
||||
const wantedLockfile = await project.readLockfile()
|
||||
expect(Object.keys(wantedLockfile.importers)).toStrictEqual(['project-1'])
|
||||
expect(Object.keys(wantedLockfile.packages)).toStrictEqual(['/is-positive/1.0.0'])
|
||||
expect(Object.keys(wantedLockfile.packages)).toStrictEqual(['/is-positive@1.0.0'])
|
||||
|
||||
const currentLockfile = await project.readCurrentLockfile()
|
||||
expect(Object.keys(currentLockfile.importers)).toStrictEqual(['project-1', 'project-2'])
|
||||
expect(Object.keys(currentLockfile.packages)).toStrictEqual(['/is-negative/1.0.0', '/is-positive/1.0.0'])
|
||||
expect(Object.keys(currentLockfile.packages)).toStrictEqual(['/is-negative@1.0.0', '/is-positive@1.0.0'])
|
||||
|
||||
await project.has('.pnpm/is-positive@1.0.0')
|
||||
await project.has('.pnpm/is-negative@1.0.0')
|
||||
@@ -1259,7 +1260,7 @@ test('remove dependencies of a project that was removed from the workspace (duri
|
||||
{
|
||||
const currentLockfile = await project.readCurrentLockfile()
|
||||
expect(Object.keys(currentLockfile.importers)).toStrictEqual(['project-1'])
|
||||
expect(Object.keys(currentLockfile.packages)).toStrictEqual(['/is-positive/1.0.0'])
|
||||
expect(Object.keys(currentLockfile.packages)).toStrictEqual(['/is-positive@1.0.0'])
|
||||
|
||||
await project.has('.pnpm/is-positive@1.0.0')
|
||||
await project.hasNot('.pnpm/is-negative@1.0.0')
|
||||
@@ -1327,7 +1328,7 @@ test('do not resolve a subdependency from the workspace by default', async () =>
|
||||
const project = assertProject(process.cwd())
|
||||
|
||||
const wantedLockfile = await project.readLockfile()
|
||||
expect(wantedLockfile.packages['/@pnpm.e2e/pkg-with-1-dep/100.0.0'].dependencies?.['@pnpm.e2e/dep-of-pkg-with-1-dep']).toBe('100.1.0')
|
||||
expect(wantedLockfile.packages['/@pnpm.e2e/pkg-with-1-dep@100.0.0'].dependencies?.['@pnpm.e2e/dep-of-pkg-with-1-dep']).toBe('100.1.0')
|
||||
})
|
||||
|
||||
test('resolve a subdependency from the workspace', async () => {
|
||||
@@ -1390,7 +1391,7 @@ test('resolve a subdependency from the workspace', async () => {
|
||||
const project = assertProject(process.cwd())
|
||||
|
||||
const wantedLockfile = await project.readLockfile()
|
||||
expect(wantedLockfile.packages['/@pnpm.e2e/pkg-with-1-dep/100.0.0'].dependencies?.['@pnpm.e2e/dep-of-pkg-with-1-dep']).toBe('link:@pnpm.e2e/dep-of-pkg-with-1-dep')
|
||||
expect(wantedLockfile.packages['/@pnpm.e2e/pkg-with-1-dep@100.0.0'].dependencies?.['@pnpm.e2e/dep-of-pkg-with-1-dep']).toBe('link:@pnpm.e2e/dep-of-pkg-with-1-dep')
|
||||
|
||||
await rimraf('node_modules')
|
||||
|
||||
@@ -1461,6 +1462,7 @@ test('resolve a subdependency from the workspace and use it as a peer', async ()
|
||||
}
|
||||
await mutateModules(importers, await testDefaults({
|
||||
allProjects,
|
||||
autoInstallPeers: false,
|
||||
linkWorkspacePackagesDepth: Infinity,
|
||||
strictPeerDependencies: false,
|
||||
workspacePackages,
|
||||
@@ -1473,19 +1475,19 @@ test('resolve a subdependency from the workspace and use it as a peer', async ()
|
||||
const suffix2 = createPeersFolderSuffix([{ name: '@pnpm.e2e/peer-a', version: '@pnpm.e2e+peer-a' }, { name: '@pnpm.e2e/peer-b', version: '1.0.0' }, { name: '@pnpm.e2e/peer-c', version: '1.0.1' }])
|
||||
expect(Object.keys(wantedLockfile.packages).sort()).toStrictEqual(
|
||||
[
|
||||
'/@pnpm.e2e/abc-grand-parent-with-c/1.0.0',
|
||||
'/@pnpm.e2e/abc-parent-with-ab/1.0.0',
|
||||
'/@pnpm.e2e/abc-parent-with-ab/1.0.0_@pnpm.e2e+peer-c@1.0.1',
|
||||
`/@pnpm.e2e/abc/1.0.0${suffix1}`,
|
||||
`/@pnpm.e2e/abc/1.0.0${suffix2}`,
|
||||
'/@pnpm.e2e/dep-of-pkg-with-1-dep/100.0.0',
|
||||
'/is-positive/1.0.0',
|
||||
'/@pnpm.e2e/peer-b/1.0.0',
|
||||
'/@pnpm.e2e/peer-c/1.0.1',
|
||||
'/@pnpm.e2e/abc-grand-parent-with-c@1.0.0',
|
||||
'/@pnpm.e2e/abc-parent-with-ab@1.0.0',
|
||||
'/@pnpm.e2e/abc-parent-with-ab@1.0.0(@pnpm.e2e/peer-c@1.0.1)',
|
||||
`/@pnpm.e2e/abc@1.0.0${suffix1}`,
|
||||
`/@pnpm.e2e/abc@1.0.0${suffix2}`,
|
||||
'/@pnpm.e2e/dep-of-pkg-with-1-dep@100.0.0',
|
||||
'/is-positive@1.0.0',
|
||||
'/@pnpm.e2e/peer-b@1.0.0',
|
||||
'/@pnpm.e2e/peer-c@1.0.1',
|
||||
].sort()
|
||||
)
|
||||
expect(wantedLockfile.packages['/@pnpm.e2e/abc-parent-with-ab/1.0.0'].dependencies?.['@pnpm.e2e/peer-a']).toBe('link:@pnpm.e2e/peer-a')
|
||||
expect(wantedLockfile.packages[`/@pnpm.e2e/abc/1.0.0${suffix1}`].dependencies?.['@pnpm.e2e/peer-a']).toBe('link:@pnpm.e2e/peer-a')
|
||||
expect(wantedLockfile.packages['/@pnpm.e2e/abc-parent-with-ab@1.0.0'].dependencies?.['@pnpm.e2e/peer-a']).toBe('link:@pnpm.e2e/peer-a')
|
||||
expect(wantedLockfile.packages[`/@pnpm.e2e/abc@1.0.0${suffix1}`].dependencies?.['@pnpm.e2e/peer-a']).toBe('link:@pnpm.e2e/peer-a')
|
||||
})
|
||||
|
||||
test('resolve a subdependency from the workspace, when it uses the workspace protocol', async () => {
|
||||
@@ -1556,7 +1558,7 @@ test('resolve a subdependency from the workspace, when it uses the workspace pro
|
||||
const project = assertProject(process.cwd())
|
||||
|
||||
const wantedLockfile = await project.readLockfile()
|
||||
expect(wantedLockfile.packages['/@pnpm.e2e/pkg-with-1-dep/100.0.0'].dependencies?.['@pnpm.e2e/dep-of-pkg-with-1-dep']).toBe('link:@pnpm.e2e/dep-of-pkg-with-1-dep')
|
||||
expect(wantedLockfile.packages['/@pnpm.e2e/pkg-with-1-dep@100.0.0'].dependencies?.['@pnpm.e2e/dep-of-pkg-with-1-dep']).toBe('link:@pnpm.e2e/dep-of-pkg-with-1-dep')
|
||||
|
||||
await rimraf('node_modules')
|
||||
|
||||
@@ -1641,11 +1643,14 @@ test('install the dependency that is already present in the workspace when addin
|
||||
const rootModules = assertProject(process.cwd())
|
||||
const currentLockfile = await rootModules.readCurrentLockfile()
|
||||
|
||||
expect(currentLockfile.importers['project-1'].specifiers?.['@pnpm.e2e/dep-of-pkg-with-1-dep']).toBe('^100.0.0')
|
||||
expect(currentLockfile.importers['project-2'].specifiers?.['@pnpm.e2e/dep-of-pkg-with-1-dep']).toBe('^100.0.0')
|
||||
|
||||
expect(currentLockfile.importers['project-1'].dependencies?.['@pnpm.e2e/dep-of-pkg-with-1-dep']).toBe('100.0.0')
|
||||
expect(currentLockfile.importers['project-2'].dependencies?.['@pnpm.e2e/dep-of-pkg-with-1-dep']).toBe('100.0.0')
|
||||
expect(currentLockfile.importers['project-1'].dependencies?.['@pnpm.e2e/dep-of-pkg-with-1-dep']).toStrictEqual({
|
||||
specifier: '^100.0.0',
|
||||
version: '100.0.0',
|
||||
})
|
||||
expect(currentLockfile.importers['project-2'].dependencies?.['@pnpm.e2e/dep-of-pkg-with-1-dep']).toStrictEqual({
|
||||
specifier: '^100.0.0',
|
||||
version: '100.0.0',
|
||||
})
|
||||
})
|
||||
|
||||
test('do not update dependency that has the same name as a dependency in the workspace', async () => {
|
||||
@@ -1720,8 +1725,8 @@ test('do not update dependency that has the same name as a dependency in the wor
|
||||
const rootModules = assertProject(process.cwd())
|
||||
const currentLockfile = await rootModules.readCurrentLockfile()
|
||||
expect(Object.keys(currentLockfile.packages)).toStrictEqual([
|
||||
'/@pnpm.e2e/dep-of-pkg-with-1-dep/100.0.0',
|
||||
'/is-negative/2.1.0',
|
||||
'/@pnpm.e2e/dep-of-pkg-with-1-dep@100.0.0',
|
||||
'/is-negative@2.1.0',
|
||||
])
|
||||
})
|
||||
|
||||
@@ -1834,6 +1839,7 @@ test('do not symlink local package from the location described in its publishCon
|
||||
version: '1.0.0',
|
||||
publishConfig: {
|
||||
directory: 'dist',
|
||||
linkDirectory: false,
|
||||
},
|
||||
}
|
||||
const project2Manifest = {
|
||||
|
||||
@@ -92,12 +92,12 @@ test('install dev dependencies only', async () => {
|
||||
|
||||
{
|
||||
const lockfile = await project.readLockfile()
|
||||
expect(lockfile.packages['/is-positive/1.0.0'].dev === false).toBeTruthy()
|
||||
expect(lockfile.packages['/is-positive@1.0.0'].dev === false).toBeTruthy()
|
||||
}
|
||||
|
||||
{
|
||||
const currentLockfile = await project.readCurrentLockfile()
|
||||
expect(currentLockfile.packages['/is-positive/1.0.0']).toBeFalsy()
|
||||
expect(currentLockfile.packages['/is-positive@1.0.0']).toBeFalsy()
|
||||
}
|
||||
|
||||
// Repeat normal installation adds missing deps to node_modules
|
||||
@@ -107,7 +107,7 @@ test('install dev dependencies only', async () => {
|
||||
|
||||
{
|
||||
const currentLockfile = await project.readCurrentLockfile()
|
||||
expect(currentLockfile.packages['/is-positive/1.0.0']).toBeTruthy()
|
||||
expect(currentLockfile.packages['/is-positive@1.0.0']).toBeTruthy()
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
@@ -56,7 +56,7 @@ test('skip non-existing optional dependency', async () => {
|
||||
|
||||
const lockfile = await project.readLockfile()
|
||||
|
||||
expect(lockfile.specifiers).toStrictEqual({ 'is-positive': '*' })
|
||||
expect(lockfile.dependencies['is-positive'].specifier).toBe('*')
|
||||
})
|
||||
|
||||
test('skip optional dependency that does not support the current OS', async () => {
|
||||
@@ -74,13 +74,13 @@ test('skip optional dependency that does not support the current OS', async () =
|
||||
expect(await exists(path.resolve('node_modules/.pnpm/@pnpm.e2e+dep-of-optional-pkg@1.0.0'))).toBeFalsy()
|
||||
|
||||
const lockfile = await project.readLockfile()
|
||||
expect(lockfile.packages['/@pnpm.e2e/not-compatible-with-any-os/1.0.0']).toBeTruthy()
|
||||
expect(lockfile.packages['/@pnpm.e2e/not-compatible-with-any-os@1.0.0']).toBeTruthy()
|
||||
|
||||
// optional dependencies always get requiresBuild: true
|
||||
// this is to resolve https://github.com/pnpm/pnpm/issues/2038
|
||||
expect(lockfile.packages['/@pnpm.e2e/not-compatible-with-any-os/1.0.0'].requiresBuild).toBeTruthy()
|
||||
expect(lockfile.packages['/@pnpm.e2e/not-compatible-with-any-os@1.0.0'].requiresBuild).toBeTruthy()
|
||||
|
||||
expect(lockfile.packages['/@pnpm.e2e/dep-of-optional-pkg/1.0.0']).toBeTruthy()
|
||||
expect(lockfile.packages['/@pnpm.e2e/dep-of-optional-pkg@1.0.0']).toBeTruthy()
|
||||
|
||||
const currentLockfile = await project.readCurrentLockfile()
|
||||
|
||||
@@ -252,7 +252,7 @@ test('optional subdependency is not removed from current lockfile when new depen
|
||||
expect(modulesInfo.skipped).toStrictEqual(['/@pnpm.e2e/dep-of-optional-pkg/1.0.0', '/@pnpm.e2e/not-compatible-with-any-os/1.0.0'])
|
||||
|
||||
const currentLockfile = await readYamlFile<Lockfile>(path.resolve('node_modules/.pnpm/lock.yaml'))
|
||||
expect(currentLockfile.packages).toHaveProperty(['/@pnpm.e2e/not-compatible-with-any-os/1.0.0'])
|
||||
expect(currentLockfile.packages).toHaveProperty(['/@pnpm.e2e/not-compatible-with-any-os@1.0.0'])
|
||||
}
|
||||
|
||||
await mutateModules([
|
||||
@@ -265,7 +265,7 @@ test('optional subdependency is not removed from current lockfile when new depen
|
||||
|
||||
{
|
||||
const currentLockfile = await readYamlFile<Lockfile>(path.resolve('node_modules/.pnpm/lock.yaml'))
|
||||
expect(currentLockfile.packages).toHaveProperty(['/@pnpm.e2e/not-compatible-with-any-os/1.0.0'])
|
||||
expect(currentLockfile.packages).toHaveProperty(['/@pnpm.e2e/not-compatible-with-any-os@1.0.0'])
|
||||
}
|
||||
})
|
||||
|
||||
@@ -309,7 +309,7 @@ test('optional subdependency is skipped', async () => {
|
||||
const lockfile = await project.readLockfile()
|
||||
|
||||
expect(Object.keys(lockfile.packages).length).toBe(3)
|
||||
expect(lockfile.packages).toHaveProperty(['/@pnpm.e2e/not-compatible-with-any-os/1.0.0'])
|
||||
expect(lockfile.packages).toHaveProperty(['/@pnpm.e2e/not-compatible-with-any-os@1.0.0'])
|
||||
|
||||
// forced headless install should install non-compatible optional deps
|
||||
|
||||
@@ -341,7 +341,7 @@ test('optional subdependency of newly added optional dependency is skipped', asy
|
||||
const lockfile = await project.readLockfile()
|
||||
|
||||
expect(Object.keys(lockfile.packages).length).toBe(3)
|
||||
expect(lockfile.packages).toHaveProperty(['/@pnpm.e2e/not-compatible-with-any-os/1.0.0'])
|
||||
expect(lockfile.packages).toHaveProperty(['/@pnpm.e2e/not-compatible-with-any-os@1.0.0'])
|
||||
})
|
||||
|
||||
test('only that package is skipped which is an optional dependency only and not installable', async () => {
|
||||
@@ -360,7 +360,7 @@ test('only that package is skipped which is an optional dependency only and not
|
||||
}
|
||||
|
||||
const lockfile = await project.readLockfile()
|
||||
expect(typeof lockfile.packages['/@pnpm.e2e/dep-of-optional-pkg/1.0.0'].optional).toBe('undefined')
|
||||
expect(typeof lockfile.packages['/@pnpm.e2e/dep-of-optional-pkg@1.0.0'].optional).toBe('undefined')
|
||||
|
||||
await rimraf('node_modules')
|
||||
|
||||
@@ -533,8 +533,8 @@ test('do not fail on unsupported dependency of optional dependency', async () =>
|
||||
)
|
||||
|
||||
const lockfile = await project.readLockfile()
|
||||
expect(lockfile.packages['/@pnpm.e2e/not-compatible-with-any-os/1.0.0'].optional).toBeTruthy()
|
||||
expect(lockfile.packages['/@pnpm.e2e/dep-of-optional-pkg/1.0.0']).toBeTruthy()
|
||||
expect(lockfile.packages['/@pnpm.e2e/not-compatible-with-any-os@1.0.0'].optional).toBeTruthy()
|
||||
expect(lockfile.packages['/@pnpm.e2e/dep-of-optional-pkg@1.0.0']).toBeTruthy()
|
||||
})
|
||||
|
||||
test('fail on unsupported dependency of optional dependency', async () => {
|
||||
|
||||
@@ -24,10 +24,10 @@ test('versions are replaced with versions specified through overrides option', a
|
||||
|
||||
{
|
||||
const lockfile = await project.readLockfile()
|
||||
expect(lockfile.packages['/@pnpm.e2e/foobarqar/1.0.0'].dependencies?.['@pnpm.e2e/foo']).toBe('/@pnpm.e2e/qar/100.0.0')
|
||||
expect(lockfile.packages['/@pnpm.e2e/foobar/100.0.0'].dependencies?.['@pnpm.e2e/foo']).toBe('100.0.0')
|
||||
expect(lockfile.packages).toHaveProperty(['/@pnpm.e2e/dep-of-pkg-with-1-dep/101.0.0'])
|
||||
expect(lockfile.packages).toHaveProperty(['/@pnpm.e2e/bar/100.1.0'])
|
||||
expect(lockfile.packages['/@pnpm.e2e/foobarqar@1.0.0'].dependencies?.['@pnpm.e2e/foo']).toBe('/@pnpm.e2e/qar@100.0.0')
|
||||
expect(lockfile.packages['/@pnpm.e2e/foobar@100.0.0'].dependencies?.['@pnpm.e2e/foo']).toBe('100.0.0')
|
||||
expect(lockfile.packages).toHaveProperty(['/@pnpm.e2e/dep-of-pkg-with-1-dep@101.0.0'])
|
||||
expect(lockfile.packages).toHaveProperty(['/@pnpm.e2e/bar@100.1.0'])
|
||||
expect(lockfile.overrides).toStrictEqual({
|
||||
'@pnpm.e2e/foobarqar>@pnpm.e2e/foo': 'npm:@pnpm.e2e/qar@100.0.0',
|
||||
'@pnpm.e2e/bar@^100.0.0': '100.1.0',
|
||||
@@ -55,9 +55,9 @@ test('versions are replaced with versions specified through overrides option', a
|
||||
|
||||
{
|
||||
const lockfile = await project.readLockfile()
|
||||
expect(lockfile.packages).toHaveProperty(['/@pnpm.e2e/dep-of-pkg-with-1-dep/101.0.0'])
|
||||
expect(lockfile.packages).toHaveProperty(['/@pnpm.e2e/bar/100.0.0'])
|
||||
expect(lockfile.packages).toHaveProperty(['/@pnpm.e2e/foobarqar/1.0.1'])
|
||||
expect(lockfile.packages).toHaveProperty(['/@pnpm.e2e/dep-of-pkg-with-1-dep@101.0.0'])
|
||||
expect(lockfile.packages).toHaveProperty(['/@pnpm.e2e/bar@100.0.0'])
|
||||
expect(lockfile.packages).toHaveProperty(['/@pnpm.e2e/foobarqar@1.0.1'])
|
||||
expect(lockfile.overrides).toStrictEqual({
|
||||
'@pnpm.e2e/foobarqar': '1.0.1',
|
||||
'@pnpm.e2e/foobarqar>@pnpm.e2e/foo': 'npm:@pnpm.e2e/qar@100.0.0',
|
||||
|
||||
@@ -25,7 +25,7 @@ test('manifests are extended with fields specified by packageExtensions', async
|
||||
|
||||
{
|
||||
const lockfile = await project.readLockfile()
|
||||
expect(lockfile.packages['/is-positive/1.0.0'].dependencies?.['@pnpm.e2e/bar']).toBe('100.1.0')
|
||||
expect(lockfile.packages['/is-positive@1.0.0'].dependencies?.['@pnpm.e2e/bar']).toBe('100.1.0')
|
||||
expect(lockfile.packageExtensionsChecksum).toStrictEqual(createObjectChecksum({
|
||||
'is-positive': {
|
||||
dependencies: {
|
||||
@@ -47,7 +47,7 @@ test('manifests are extended with fields specified by packageExtensions', async
|
||||
|
||||
{
|
||||
const lockfile = await project.readLockfile()
|
||||
expect(lockfile.packages['/is-positive/1.0.0'].dependencies?.['@pnpm.e2e/foobar']).toBe('100.0.0')
|
||||
expect(lockfile.packages['/is-positive@1.0.0'].dependencies?.['@pnpm.e2e/foobar']).toBe('100.0.0')
|
||||
expect(lockfile.packageExtensionsChecksum).toStrictEqual(createObjectChecksum({
|
||||
'is-positive': {
|
||||
dependencies: {
|
||||
@@ -104,7 +104,7 @@ test('manifests are patched by extensions from the compatibility database', asyn
|
||||
)
|
||||
|
||||
const lockfile = await project.readLockfile()
|
||||
expect(lockfile.packages['/debug/4.0.0'].peerDependenciesMeta?.['supports-color']?.optional).toBe(true)
|
||||
expect(lockfile.packages['/debug@4.0.0'].peerDependenciesMeta?.['supports-color']?.optional).toBe(true)
|
||||
})
|
||||
|
||||
test('manifests are not patched by extensions from the compatibility database when ignoreCompatibilityDb is true', async () => {
|
||||
@@ -119,5 +119,5 @@ test('manifests are not patched by extensions from the compatibility database wh
|
||||
)
|
||||
|
||||
const lockfile = await project.readLockfile()
|
||||
expect(lockfile.packages['/debug/4.0.0'].peerDependenciesMeta).toBeUndefined()
|
||||
expect(lockfile.packages['/debug@4.0.0'].peerDependenciesMeta).toBeUndefined()
|
||||
})
|
||||
|
||||
@@ -40,7 +40,7 @@ test('patch package', async () => {
|
||||
hash: patchFileHash,
|
||||
},
|
||||
})
|
||||
expect(lockfile.packages[`/is-positive/1.0.0_${patchFileHash}`]).toBeTruthy()
|
||||
expect(lockfile.packages[`/is-positive@1.0.0(patch_hash=${patchFileHash})`]).toBeTruthy()
|
||||
|
||||
const filesIndexFile = path.join(opts.storeDir, 'files/c7/1ccf199e0fdae37aad13946b937d67bcd35fa111b84d21b3a19439cfdc2812c5d8da8a735e94c2a1ccb77b4583808ee8405313951e7146ac83ede3671dc292-index.json')
|
||||
const filesIndex = await loadJsonFile<PackageFilesIndex>(filesIndexFile)
|
||||
@@ -207,7 +207,7 @@ test('patch package when scripts are ignored', async () => {
|
||||
hash: patchFileHash,
|
||||
},
|
||||
})
|
||||
expect(lockfile.packages[`/is-positive/1.0.0_${patchFileHash}`]).toBeTruthy()
|
||||
expect(lockfile.packages[`/is-positive@1.0.0(patch_hash=${patchFileHash})`]).toBeTruthy()
|
||||
|
||||
const filesIndexFile = path.join(opts.storeDir, 'files/c7/1ccf199e0fdae37aad13946b937d67bcd35fa111b84d21b3a19439cfdc2812c5d8da8a735e94c2a1ccb77b4583808ee8405313951e7146ac83ede3671dc292-index.json')
|
||||
const filesIndex = await loadJsonFile<PackageFilesIndex>(filesIndexFile)
|
||||
@@ -294,7 +294,7 @@ test('patch package when the package is not in onlyBuiltDependencies list', asyn
|
||||
hash: patchFileHash,
|
||||
},
|
||||
})
|
||||
expect(lockfile.packages[`/is-positive/1.0.0_${patchFileHash}`]).toBeTruthy()
|
||||
expect(lockfile.packages[`/is-positive@1.0.0(patch_hash=${patchFileHash})`]).toBeTruthy()
|
||||
|
||||
const filesIndexFile = path.join(opts.storeDir, 'files/c7/1ccf199e0fdae37aad13946b937d67bcd35fa111b84d21b3a19439cfdc2812c5d8da8a735e94c2a1ccb77b4583808ee8405313951e7146ac83ede3671dc292-index.json')
|
||||
const filesIndex = await loadJsonFile<PackageFilesIndex>(filesIndexFile)
|
||||
@@ -378,8 +378,8 @@ test('patch package when the patched package has no dependencies and appears mul
|
||||
|
||||
const lockfile = await project.readLockfile()
|
||||
expect(Object.keys(lockfile.packages)).toStrictEqual([
|
||||
'/is-not-positive/1.0.0',
|
||||
'/is-positive/1.0.0_jnbpamcxayl5i4ehrkoext3any',
|
||||
'/is-not-positive@1.0.0',
|
||||
'/is-positive@1.0.0(patch_hash=jnbpamcxayl5i4ehrkoext3any)',
|
||||
])
|
||||
})
|
||||
|
||||
|
||||
@@ -19,7 +19,7 @@ import rimraf from '@zkochan/rimraf'
|
||||
import exists from 'path-exists'
|
||||
import sinon from 'sinon'
|
||||
import deepRequireCwd from 'deep-require-cwd'
|
||||
import { createPeersFolderSuffix } from '@pnpm/dependency-path'
|
||||
import { createPeersFolderSuffixNewFormat as createPeersFolderSuffix, depPathToFilename } from '@pnpm/dependency-path'
|
||||
import { testDefaults } from '../utils'
|
||||
|
||||
const f = fixtures(__dirname)
|
||||
@@ -49,15 +49,16 @@ test('peer dependency is grouped with dependency when peer is resolved not from
|
||||
|
||||
const lockfile = await project.readLockfile()
|
||||
|
||||
expect(lockfile.packages['/@pnpm.e2e/using-ajv/1.0.0'].dependencies!['ajv-keywords']).toBe('1.5.0_ajv@4.10.4')
|
||||
expect(lockfile.packages['/@pnpm.e2e/using-ajv@1.0.0'].dependencies!['ajv-keywords']).toBe('1.5.0(ajv@4.10.4)')
|
||||
// covers https://github.com/pnpm/pnpm/issues/1150
|
||||
expect(lockfile.packages).toHaveProperty(['/ajv-keywords/1.5.0_ajv@4.10.4'])
|
||||
expect(lockfile.packages).toHaveProperty(['/ajv-keywords@1.5.0(ajv@4.10.4)'])
|
||||
})
|
||||
|
||||
// Covers https://github.com/pnpm/pnpm/issues/1133
|
||||
test('nothing is needlessly removed from node_modules', async () => {
|
||||
prepareEmpty()
|
||||
const opts = await testDefaults({
|
||||
autoInstallPeers: false,
|
||||
modulesCacheMaxAge: 0,
|
||||
strictPeerDependencies: false,
|
||||
})
|
||||
@@ -98,7 +99,7 @@ test('peer dependency is grouped with dependent when the peer is a top dependenc
|
||||
}, await testDefaults({ preferFrozenLockfile: false }))
|
||||
|
||||
const lockfile = await project.readLockfile()
|
||||
expect(lockfile.packages['/ajv-keywords/1.5.0_ajv@4.10.4'].dependencies).toHaveProperty(['ajv'])
|
||||
expect(lockfile.packages['/ajv-keywords@1.5.0(ajv@4.10.4)'].dependencies).toHaveProperty(['ajv'])
|
||||
})
|
||||
|
||||
test('the right peer dependency is used in every workspace package', async () => {
|
||||
@@ -150,16 +151,25 @@ test('the right peer dependency is used in every workspace package', async () =>
|
||||
rootDir: path.resolve('project-2'),
|
||||
},
|
||||
]
|
||||
await mutateModules(importers, await testDefaults({ allProjects, lockfileOnly: true, strictPeerDependencies: false }))
|
||||
await mutateModules(importers, await testDefaults({ allProjects, autoInstallPeers: false, lockfileOnly: true, strictPeerDependencies: false }))
|
||||
|
||||
const lockfile = await readYamlFile<Lockfile>(path.resolve(WANTED_LOCKFILE))
|
||||
|
||||
expect(lockfile.importers['project-1'].dependencies).toStrictEqual({
|
||||
'ajv-keywords': '1.5.0',
|
||||
'ajv-keywords': {
|
||||
specifier: '1.5.0',
|
||||
version: '1.5.0',
|
||||
},
|
||||
})
|
||||
expect(lockfile.importers['project-2'].dependencies).toStrictEqual({
|
||||
ajv: '4.10.4',
|
||||
'ajv-keywords': '1.5.0_ajv@4.10.4',
|
||||
ajv: {
|
||||
specifier: '4.10.4',
|
||||
version: '4.10.4',
|
||||
},
|
||||
'ajv-keywords': {
|
||||
specifier: '1.5.0',
|
||||
version: '1.5.0(ajv@4.10.4)',
|
||||
},
|
||||
})
|
||||
})
|
||||
|
||||
@@ -168,7 +178,11 @@ test('warning is reported when cannot resolve peer dependency for top-level depe
|
||||
|
||||
const reporter = jest.fn()
|
||||
|
||||
await addDependenciesToPackage({}, ['ajv-keywords@1.5.0'], await testDefaults({ reporter, strictPeerDependencies: false }))
|
||||
await addDependenciesToPackage(
|
||||
{},
|
||||
['ajv-keywords@1.5.0'],
|
||||
await testDefaults({ autoInstallPeers: false, reporter, strictPeerDependencies: false })
|
||||
)
|
||||
|
||||
expect(reporter).toHaveBeenCalledWith(
|
||||
expect.objectContaining({
|
||||
@@ -208,7 +222,7 @@ test('strict-peer-dependencies: error is thrown when cannot resolve peer depende
|
||||
dependencies: {
|
||||
'ajv-keywords': '1.5.0',
|
||||
},
|
||||
}, await testDefaults({ strictPeerDependencies: true }))
|
||||
}, await testDefaults({ autoInstallPeers: false, strictPeerDependencies: true }))
|
||||
} catch (_err: any) { // eslint-disable-line
|
||||
err = _err
|
||||
}
|
||||
@@ -289,7 +303,7 @@ test('peer dependency is resolved from the dependencies of the workspace root pr
|
||||
|
||||
{
|
||||
const lockfile = await projects.root.readLockfile()
|
||||
expect(lockfile.importers.pkg?.dependencies?.['ajv-keywords']).toBe('1.5.0_ajv@4.10.0')
|
||||
expect(lockfile.importers.pkg?.dependencies?.['ajv-keywords'].version).toBe('1.5.0(ajv@4.10.0)')
|
||||
}
|
||||
|
||||
allProjects[1].manifest.dependencies!['is-positive'] = '1.0.0'
|
||||
@@ -306,7 +320,7 @@ test('peer dependency is resolved from the dependencies of the workspace root pr
|
||||
|
||||
{
|
||||
const lockfile = await projects.root.readLockfile()
|
||||
expect(lockfile.importers.pkg?.dependencies?.['ajv-keywords']).toBe('1.5.0_ajv@4.10.0')
|
||||
expect(lockfile.importers.pkg?.dependencies?.['ajv-keywords'].version).toBe('1.5.0(ajv@4.10.0)')
|
||||
}
|
||||
})
|
||||
|
||||
@@ -316,7 +330,11 @@ test('warning is reported when cannot resolve peer dependency for non-top-level
|
||||
|
||||
const reporter = jest.fn()
|
||||
|
||||
await addDependenciesToPackage({}, ['@pnpm.e2e/abc-grand-parent-without-c'], await testDefaults({ reporter, strictPeerDependencies: false }))
|
||||
await addDependenciesToPackage(
|
||||
{},
|
||||
['@pnpm.e2e/abc-grand-parent-without-c'],
|
||||
await testDefaults({ autoInstallPeers: false, reporter, strictPeerDependencies: false })
|
||||
)
|
||||
|
||||
expect(reporter).toHaveBeenCalledWith(
|
||||
expect.objectContaining({
|
||||
@@ -481,7 +499,7 @@ test('the list of transitive peer dependencies is kept up to date', async () =>
|
||||
expect(await exists(path.resolve('node_modules/.pnpm/@pnpm.e2e+abc-grand-parent@1.0.0_@pnpm.e2e+peer-c@1.0.0/node_modules/@pnpm.e2e/abc-grand-parent'))).toBeTruthy()
|
||||
{
|
||||
const lockfile = await project.readLockfile()
|
||||
expect(lockfile.packages['/@pnpm.e2e/abc-grand-parent/1.0.0_@pnpm.e2e+peer-c@1.0.0'].transitivePeerDependencies).toStrictEqual(['@pnpm.e2e/peer-c'])
|
||||
expect(lockfile.packages['/@pnpm.e2e/abc-grand-parent@1.0.0(@pnpm.e2e/peer-c@1.0.0)'].transitivePeerDependencies).toStrictEqual(['@pnpm.e2e/peer-c'])
|
||||
}
|
||||
|
||||
await mutateModulesInSingleProject({
|
||||
@@ -494,7 +512,7 @@ test('the list of transitive peer dependencies is kept up to date', async () =>
|
||||
|
||||
{
|
||||
const lockfile = await project.readLockfile()
|
||||
expect(lockfile.packages['/@pnpm.e2e/abc-grand-parent/1.0.0'].transitivePeerDependencies).toBeFalsy()
|
||||
expect(lockfile.packages['/@pnpm.e2e/abc-grand-parent@1.0.0'].transitivePeerDependencies).toBeFalsy()
|
||||
}
|
||||
})
|
||||
|
||||
@@ -522,18 +540,24 @@ test('peer dependencies are linked when running one named installation', async (
|
||||
|
||||
prepareEmpty()
|
||||
|
||||
const manifest = await addDependenciesToPackage({}, ['@pnpm.e2e/abc-grand-parent-with-c', '@pnpm.e2e/abc-parent-with-ab', '@pnpm.e2e/peer-c@2.0.0'], await testDefaults({ strictPeerDependencies: false }))
|
||||
const manifest = await addDependenciesToPackage({}, ['@pnpm.e2e/abc-grand-parent-with-c', '@pnpm.e2e/abc-parent-with-ab', '@pnpm.e2e/peer-c@2.0.0'], await testDefaults({ autoInstallPeers: false, strictPeerDependencies: false }))
|
||||
|
||||
const pkgVariationsDir = path.resolve('node_modules/.pnpm/@pnpm.e2e+abc@1.0.0')
|
||||
|
||||
const pkgVariation1 = path.join(pkgVariationsDir + createPeersFolderSuffix([{ name: '@pnpm.e2e/peer-a', version: '1.0.0' }, { name: '@pnpm.e2e/peer-b', version: '1.0.0' }, { name: '@pnpm.e2e/peer-c', version: '1.0.0' }]), 'node_modules')
|
||||
const pkgVariation1 = path.join(
|
||||
'node_modules/.pnpm',
|
||||
depPathToFilename('/@pnpm.e2e/abc/1.0.0' + createPeersFolderSuffix([{ name: '@pnpm.e2e/peer-a', version: '1.0.0' }, { name: '@pnpm.e2e/peer-b', version: '1.0.0' }, { name: '@pnpm.e2e/peer-c', version: '1.0.0' }])),
|
||||
'node_modules'
|
||||
)
|
||||
await okFile(path.join(pkgVariation1, '@pnpm.e2e/abc'))
|
||||
await okFile(path.join(pkgVariation1, '@pnpm.e2e/peer-a'))
|
||||
await okFile(path.join(pkgVariation1, '@pnpm.e2e/peer-b'))
|
||||
await okFile(path.join(pkgVariation1, '@pnpm.e2e/peer-c'))
|
||||
await okFile(path.join(pkgVariation1, '@pnpm.e2e/dep-of-pkg-with-1-dep'))
|
||||
|
||||
const pkgVariation2 = path.join(pkgVariationsDir + createPeersFolderSuffix([{ name: '@pnpm.e2e/peer-a', version: '1.0.0' }, { name: '@pnpm.e2e/peer-b', version: '1.0.0' }, { name: '@pnpm.e2e/peer-c', version: '1.0.0' }]), 'node_modules')
|
||||
const pkgVariation2 = path.join(
|
||||
'node_modules/.pnpm',
|
||||
depPathToFilename('/@pnpm.e2e/abc/1.0.0' + createPeersFolderSuffix([{ name: '@pnpm.e2e/peer-a', version: '1.0.0' }, { name: '@pnpm.e2e/peer-b', version: '1.0.0' }, { name: '@pnpm.e2e/peer-c', version: '1.0.0' }])),
|
||||
'node_modules'
|
||||
)
|
||||
await okFile(path.join(pkgVariation2, '@pnpm.e2e/abc'))
|
||||
await okFile(path.join(pkgVariation2, '@pnpm.e2e/peer-a'))
|
||||
await okFile(path.join(pkgVariation2, '@pnpm.e2e/peer-b'))
|
||||
@@ -545,7 +569,7 @@ test('peer dependencies are linked when running one named installation', async (
|
||||
|
||||
// this part was failing. See issue: https://github.com/pnpm/pnpm/issues/1201
|
||||
await addDistTag({ package: '@pnpm.e2e/peer-a', version: '1.0.1', distTag: 'latest' })
|
||||
await install(manifest, await testDefaults({ update: true, depth: 100, strictPeerDependencies: false }))
|
||||
await install(manifest, await testDefaults({ autoInstallPeers: false, update: true, depth: 100, strictPeerDependencies: false }))
|
||||
})
|
||||
|
||||
test('peer dependencies are linked when running two separate named installations', async () => {
|
||||
@@ -557,16 +581,22 @@ test('peer dependencies are linked when running two separate named installations
|
||||
const manifest = await addDependenciesToPackage({}, ['@pnpm.e2e/abc-grand-parent-with-c', '@pnpm.e2e/peer-c@2.0.0'], await testDefaults({ strictPeerDependencies: false }))
|
||||
await addDependenciesToPackage(manifest, ['@pnpm.e2e/abc-parent-with-ab'], await testDefaults({ strictPeerDependencies: false }))
|
||||
|
||||
const pkgVariationsDir = path.resolve('node_modules/.pnpm/@pnpm.e2e+abc@1.0.0')
|
||||
|
||||
const pkgVariation1 = path.join(pkgVariationsDir + createPeersFolderSuffix([{ name: '@pnpm.e2e/peer-a', version: '1.0.0' }, { name: '@pnpm.e2e/peer-b', version: '1.0.0' }, { name: '@pnpm.e2e/peer-c', version: '1.0.0' }]), 'node_modules')
|
||||
const pkgVariation1 = path.join(
|
||||
'node_modules/.pnpm',
|
||||
depPathToFilename('/@pnpm.e2e/abc/1.0.0' + createPeersFolderSuffix([{ name: '@pnpm.e2e/peer-a', version: '1.0.0' }, { name: '@pnpm.e2e/peer-b', version: '1.0.0' }, { name: '@pnpm.e2e/peer-c', version: '1.0.0' }])),
|
||||
'node_modules'
|
||||
)
|
||||
await okFile(path.join(pkgVariation1, '@pnpm.e2e/abc'))
|
||||
await okFile(path.join(pkgVariation1, '@pnpm.e2e/peer-a'))
|
||||
await okFile(path.join(pkgVariation1, '@pnpm.e2e/peer-b'))
|
||||
await okFile(path.join(pkgVariation1, '@pnpm.e2e/peer-c'))
|
||||
await okFile(path.join(pkgVariation1, '@pnpm.e2e/dep-of-pkg-with-1-dep'))
|
||||
|
||||
const pkgVariation2 = path.join(pkgVariationsDir + createPeersFolderSuffix([{ name: '@pnpm.e2e/peer-a', version: '1.0.0' }, { name: '@pnpm.e2e/peer-b', version: '1.0.0' }, { name: '@pnpm.e2e/peer-c', version: '2.0.0' }]), 'node_modules')
|
||||
const pkgVariation2 = path.join(
|
||||
'node_modules/.pnpm',
|
||||
depPathToFilename('/@pnpm.e2e/abc/1.0.0' + createPeersFolderSuffix([{ name: '@pnpm.e2e/peer-a', version: '1.0.0' }, { name: '@pnpm.e2e/peer-b', version: '1.0.0' }, { name: '@pnpm.e2e/peer-c', version: '2.0.0' }])),
|
||||
'node_modules'
|
||||
)
|
||||
await okFile(path.join(pkgVariation2, '@pnpm.e2e/abc'))
|
||||
await okFile(path.join(pkgVariation2, '@pnpm.e2e/peer-a'))
|
||||
await okFile(path.join(pkgVariation2, '@pnpm.e2e/peer-b'))
|
||||
@@ -625,7 +655,7 @@ test('peer bins are linked', async () => {
|
||||
await addDependenciesToPackage({}, ['@pnpm.e2e/for-testing-peers-having-bins'], await testDefaults({ fastUnpack: false }))
|
||||
|
||||
const suffix = createPeersFolderSuffix([{ name: '@pnpm.e2e/peer-with-bin', version: '1.0.0' }])
|
||||
const pkgVariation = path.join(`.pnpm/@pnpm.e2e+pkg-with-peer-having-bin@1.0.0${suffix}/node_modules`)
|
||||
const pkgVariation = path.join('.pnpm', depPathToFilename(`/@pnpm.e2e/pkg-with-peer-having-bin/1.0.0${suffix}`), 'node_modules')
|
||||
|
||||
await project.isExecutable(path.join(pkgVariation, '@pnpm.e2e/pkg-with-peer-having-bin/node_modules/.bin', 'peer-with-bin'))
|
||||
|
||||
@@ -652,8 +682,8 @@ test('package that has parent as peer dependency', async () => {
|
||||
|
||||
const lockfile = await project.readLockfile()
|
||||
|
||||
expect(lockfile.packages).toHaveProperty(['/@pnpm.e2e/has-alpha-as-peer/1.0.0_@pnpm.e2e+alpha@1.0.0'])
|
||||
expect(lockfile.packages).not.toHaveProperty(['/@pnpm.e2e/has-alpha-as-peer/1.0.0'])
|
||||
expect(lockfile.packages).toHaveProperty(['/@pnpm.e2e/has-alpha-as-peer@1.0.0(@pnpm.e2e/alpha@1.0.0)'])
|
||||
expect(lockfile.packages).not.toHaveProperty(['/@pnpm.e2e/has-alpha-as-peer@1.0.0'])
|
||||
})
|
||||
|
||||
test('own peer installed in root as well is linked to root', async () => {
|
||||
@@ -681,12 +711,14 @@ test('peer dependency is grouped with dependent when the peer is a top dependenc
|
||||
|
||||
expect(lockfile.importers.project).toStrictEqual({
|
||||
dependencies: {
|
||||
ajv: '4.10.4',
|
||||
'ajv-keywords': '1.5.0_ajv@4.10.4',
|
||||
},
|
||||
specifiers: {
|
||||
ajv: '4.10.4',
|
||||
'ajv-keywords': '1.5.0',
|
||||
ajv: {
|
||||
specifier: '4.10.4',
|
||||
version: '4.10.4',
|
||||
},
|
||||
'ajv-keywords': {
|
||||
specifier: '1.5.0',
|
||||
version: '1.5.0(ajv@4.10.4)',
|
||||
},
|
||||
},
|
||||
})
|
||||
})
|
||||
@@ -702,8 +734,12 @@ test('peer dependency is grouped correctly with peer installed via separate inst
|
||||
dependencies: {
|
||||
'@pnpm.e2e/abc': '1.0.0',
|
||||
},
|
||||
}, await testDefaults({ reporter, lockfileDir, strictPeerDependencies: false }))
|
||||
await addDependenciesToPackage(manifest, ['@pnpm.e2e/peer-c@2.0.0'], await testDefaults({ reporter, lockfileDir, strictPeerDependencies: false }))
|
||||
}, await testDefaults({ autoInstallPeers: false, reporter, lockfileDir, strictPeerDependencies: false }))
|
||||
await addDependenciesToPackage(
|
||||
manifest,
|
||||
['@pnpm.e2e/peer-c@2.0.0'],
|
||||
await testDefaults({ autoInstallPeers: false, reporter, lockfileDir, strictPeerDependencies: false })
|
||||
)
|
||||
|
||||
expect(await exists(path.join('../node_modules/.pnpm/@pnpm.e2e+abc@1.0.0_@pnpm.e2e+peer-c@2.0.0/node_modules/@pnpm.e2e/dep-of-pkg-with-1-dep'))).toBeTruthy()
|
||||
})
|
||||
@@ -720,12 +756,14 @@ test('peer dependency is grouped with dependent when the peer is a top dependenc
|
||||
const lockfile = await readYamlFile<Lockfile>(path.resolve('..', WANTED_LOCKFILE))
|
||||
expect(lockfile.importers._).toStrictEqual({
|
||||
dependencies: {
|
||||
ajv: '4.10.4',
|
||||
'ajv-keywords': '1.5.0_ajv@4.10.4',
|
||||
},
|
||||
specifiers: {
|
||||
ajv: '4.10.4',
|
||||
'ajv-keywords': '1.5.0',
|
||||
ajv: {
|
||||
specifier: '4.10.4',
|
||||
version: '4.10.4',
|
||||
},
|
||||
'ajv-keywords': {
|
||||
specifier: '1.5.0',
|
||||
version: '1.5.0(ajv@4.10.4)',
|
||||
},
|
||||
},
|
||||
})
|
||||
}
|
||||
@@ -736,12 +774,14 @@ test('peer dependency is grouped with dependent when the peer is a top dependenc
|
||||
const lockfile = await readYamlFile<Lockfile>(path.resolve('..', WANTED_LOCKFILE))
|
||||
expect(lockfile.importers._).toStrictEqual({
|
||||
dependencies: {
|
||||
ajv: '4.10.4',
|
||||
'ajv-keywords': '1.5.0_ajv@4.10.4',
|
||||
},
|
||||
specifiers: {
|
||||
ajv: '4.10.4',
|
||||
'ajv-keywords': '1.5.0',
|
||||
ajv: {
|
||||
specifier: '4.10.4',
|
||||
version: '4.10.4',
|
||||
},
|
||||
'ajv-keywords': {
|
||||
specifier: '1.5.0',
|
||||
version: '1.5.0(ajv@4.10.4)',
|
||||
},
|
||||
},
|
||||
})
|
||||
}
|
||||
@@ -753,6 +793,7 @@ test('peer dependency is grouped with dependent when the peer is a top dependenc
|
||||
mutation: 'uninstallSome',
|
||||
rootDir: process.cwd(),
|
||||
}, await testDefaults({
|
||||
autoInstallPeers: false,
|
||||
lockfileDir,
|
||||
strictPeerDependencies: false,
|
||||
})
|
||||
@@ -762,10 +803,10 @@ test('peer dependency is grouped with dependent when the peer is a top dependenc
|
||||
const lockfile = await readYamlFile<Lockfile>(path.resolve('..', WANTED_LOCKFILE))
|
||||
expect(lockfile.importers._).toStrictEqual({
|
||||
dependencies: {
|
||||
'ajv-keywords': '1.5.0',
|
||||
},
|
||||
specifiers: {
|
||||
'ajv-keywords': '1.5.0',
|
||||
'ajv-keywords': {
|
||||
specifier: '1.5.0',
|
||||
version: '1.5.0',
|
||||
},
|
||||
},
|
||||
})
|
||||
}
|
||||
@@ -783,12 +824,14 @@ test('external lockfile: peer dependency is grouped with dependent even after a
|
||||
const lockfile = await readYamlFile<Lockfile>(path.resolve('..', WANTED_LOCKFILE))
|
||||
expect(lockfile.importers._).toStrictEqual({
|
||||
dependencies: {
|
||||
ajv: '4.10.4',
|
||||
'ajv-keywords': '1.4.0_ajv@4.10.4',
|
||||
},
|
||||
specifiers: {
|
||||
ajv: '4.10.4',
|
||||
'ajv-keywords': '1.4.0',
|
||||
ajv: {
|
||||
specifier: '4.10.4',
|
||||
version: '4.10.4',
|
||||
},
|
||||
'ajv-keywords': {
|
||||
specifier: '1.4.0',
|
||||
version: '1.4.0(ajv@4.10.4)',
|
||||
},
|
||||
},
|
||||
})
|
||||
}
|
||||
@@ -799,12 +842,14 @@ test('external lockfile: peer dependency is grouped with dependent even after a
|
||||
const lockfile = await readYamlFile<Lockfile>(path.resolve('..', WANTED_LOCKFILE))
|
||||
expect(lockfile.importers._).toStrictEqual({
|
||||
dependencies: {
|
||||
ajv: '4.10.4',
|
||||
'ajv-keywords': '1.5.0_ajv@4.10.4',
|
||||
},
|
||||
specifiers: {
|
||||
ajv: '4.10.4',
|
||||
'ajv-keywords': '1.5.0',
|
||||
ajv: {
|
||||
specifier: '4.10.4',
|
||||
version: '4.10.4',
|
||||
},
|
||||
'ajv-keywords': {
|
||||
specifier: '1.5.0',
|
||||
version: '1.5.0(ajv@4.10.4)',
|
||||
},
|
||||
},
|
||||
})
|
||||
}
|
||||
@@ -822,12 +867,14 @@ test('external lockfile: peer dependency is grouped with dependent even after a
|
||||
const lockfile = await readYamlFile<Lockfile>(path.resolve('..', WANTED_LOCKFILE))
|
||||
expect(lockfile.importers._).toStrictEqual({
|
||||
dependencies: {
|
||||
'@pnpm.e2e/abc-parent-with-ab': '1.0.0_@pnpm.e2e+peer-c@1.0.0',
|
||||
'@pnpm.e2e/peer-c': '1.0.0',
|
||||
},
|
||||
specifiers: {
|
||||
'@pnpm.e2e/abc-parent-with-ab': '1.0.0',
|
||||
'@pnpm.e2e/peer-c': '1.0.0',
|
||||
'@pnpm.e2e/abc-parent-with-ab': {
|
||||
specifier: '1.0.0',
|
||||
version: '1.0.0(@pnpm.e2e/peer-c@1.0.0)',
|
||||
},
|
||||
'@pnpm.e2e/peer-c': {
|
||||
specifier: '1.0.0',
|
||||
version: '1.0.0',
|
||||
},
|
||||
},
|
||||
})
|
||||
}
|
||||
@@ -838,12 +885,14 @@ test('external lockfile: peer dependency is grouped with dependent even after a
|
||||
const lockfile = await readYamlFile<Lockfile>(path.resolve('..', WANTED_LOCKFILE))
|
||||
expect(lockfile.importers._).toStrictEqual({
|
||||
dependencies: {
|
||||
'@pnpm.e2e/abc-parent-with-ab': '1.0.0_@pnpm.e2e+peer-c@2.0.0',
|
||||
'@pnpm.e2e/peer-c': '2.0.0',
|
||||
},
|
||||
specifiers: {
|
||||
'@pnpm.e2e/abc-parent-with-ab': '1.0.0',
|
||||
'@pnpm.e2e/peer-c': '2.0.0',
|
||||
'@pnpm.e2e/abc-parent-with-ab': {
|
||||
specifier: '1.0.0',
|
||||
version: '1.0.0(@pnpm.e2e/peer-c@2.0.0)',
|
||||
},
|
||||
'@pnpm.e2e/peer-c': {
|
||||
specifier: '2.0.0',
|
||||
version: '2.0.0',
|
||||
},
|
||||
},
|
||||
})
|
||||
}
|
||||
@@ -882,8 +931,8 @@ test('peer dependency is resolved from parent package', async () => {
|
||||
|
||||
const lockfile = await readYamlFile<Lockfile>(WANTED_LOCKFILE)
|
||||
expect(Object.keys(lockfile.packages ?? {})).toStrictEqual([
|
||||
'/@pnpm.e2e/has-tango-as-peer-dep/1.0.0_@pnpm.e2e+tango@1.0.0',
|
||||
'/@pnpm.e2e/tango/1.0.0',
|
||||
'/@pnpm.e2e/has-tango-as-peer-dep@1.0.0(@pnpm.e2e/tango@1.0.0)',
|
||||
'/@pnpm.e2e/tango@1.0.0',
|
||||
])
|
||||
})
|
||||
|
||||
@@ -909,7 +958,7 @@ test('transitive peerDependencies field does not break the lockfile on subsequen
|
||||
|
||||
const lockfile = await readYamlFile<Lockfile>(WANTED_LOCKFILE)
|
||||
|
||||
expect(Object.keys(lockfile.packages!['/most/1.7.3'].dependencies!)).toStrictEqual([
|
||||
expect(Object.keys(lockfile.packages!['/most@1.7.3'].dependencies!)).toStrictEqual([
|
||||
'@most/multicast',
|
||||
'@most/prelude',
|
||||
'symbol-observable',
|
||||
@@ -932,8 +981,8 @@ test('peer dependency is resolved from parent package via its alias', async () =
|
||||
const lockfile = await readYamlFile<Lockfile>(WANTED_LOCKFILE)
|
||||
const suffix = createPeersFolderSuffix([{ name: '@pnpm.e2e/tango-tango', version: '1.0.0' }])
|
||||
expect(Object.keys(lockfile.packages ?? {})).toStrictEqual([
|
||||
`/@pnpm.e2e/has-tango-as-peer-dep/1.0.0${suffix}`,
|
||||
`/@pnpm.e2e/tango-tango/1.0.0${suffix}`,
|
||||
`/@pnpm.e2e/has-tango-as-peer-dep@1.0.0${suffix}`,
|
||||
`/@pnpm.e2e/tango-tango@1.0.0${suffix}`,
|
||||
])
|
||||
})
|
||||
|
||||
@@ -976,7 +1025,11 @@ test('warning is not reported when cannot resolve optional peer dependency', asy
|
||||
|
||||
const reporter = jest.fn()
|
||||
|
||||
await addDependenciesToPackage({}, ['@pnpm.e2e/abc-optional-peers@1.0.0', '@pnpm.e2e/peer-c@2.0.0'], await testDefaults({ reporter, strictPeerDependencies: false }))
|
||||
await addDependenciesToPackage(
|
||||
{},
|
||||
['@pnpm.e2e/abc-optional-peers@1.0.0', '@pnpm.e2e/peer-c@2.0.0'],
|
||||
await testDefaults({ autoInstallPeers: false, reporter, strictPeerDependencies: false })
|
||||
)
|
||||
|
||||
expect(reporter).toHaveBeenCalledWith(
|
||||
expect.objectContaining({
|
||||
@@ -1033,7 +1086,7 @@ test('warning is not reported when cannot resolve optional peer dependency', asy
|
||||
|
||||
const lockfile = await project.readLockfile()
|
||||
|
||||
expect(lockfile.packages['/@pnpm.e2e/abc-optional-peers/1.0.0_@pnpm.e2e+peer-c@2.0.0'].peerDependenciesMeta).toStrictEqual({
|
||||
expect(lockfile.packages['/@pnpm.e2e/abc-optional-peers@1.0.0(@pnpm.e2e/peer-c@2.0.0)'].peerDependenciesMeta).toStrictEqual({
|
||||
'@pnpm.e2e/peer-b': {
|
||||
optional: true,
|
||||
},
|
||||
@@ -1048,7 +1101,11 @@ test('warning is not reported when cannot resolve optional peer dependency (spec
|
||||
|
||||
const reporter = jest.fn()
|
||||
|
||||
await addDependenciesToPackage({}, ['@pnpm.e2e/abc-optional-peers-meta-only@1.0.0', '@pnpm.e2e/peer-c@2.0.0'], await testDefaults({ reporter, strictPeerDependencies: false }))
|
||||
await addDependenciesToPackage(
|
||||
{},
|
||||
['@pnpm.e2e/abc-optional-peers-meta-only@1.0.0', '@pnpm.e2e/peer-c@2.0.0'],
|
||||
await testDefaults({ autoInstallPeers: false, reporter, strictPeerDependencies: false })
|
||||
)
|
||||
|
||||
expect(reporter).toHaveBeenCalledWith(
|
||||
expect.objectContaining({
|
||||
@@ -1092,12 +1149,12 @@ test('warning is not reported when cannot resolve optional peer dependency (spec
|
||||
|
||||
const lockfile = await project.readLockfile()
|
||||
|
||||
expect(lockfile.packages['/@pnpm.e2e/abc-optional-peers-meta-only/1.0.0_@pnpm.e2e+peer-c@2.0.0'].peerDependencies).toStrictEqual({
|
||||
expect(lockfile.packages['/@pnpm.e2e/abc-optional-peers-meta-only@1.0.0(@pnpm.e2e/peer-c@2.0.0)'].peerDependencies).toStrictEqual({
|
||||
'@pnpm.e2e/peer-a': '^1.0.0',
|
||||
'@pnpm.e2e/peer-b': '*',
|
||||
'@pnpm.e2e/peer-c': '*',
|
||||
})
|
||||
expect(lockfile.packages['/@pnpm.e2e/abc-optional-peers-meta-only/1.0.0_@pnpm.e2e+peer-c@2.0.0'].peerDependenciesMeta).toStrictEqual({
|
||||
expect(lockfile.packages['/@pnpm.e2e/abc-optional-peers-meta-only@1.0.0(@pnpm.e2e/peer-c@2.0.0)'].peerDependenciesMeta).toStrictEqual({
|
||||
'@pnpm.e2e/peer-b': {
|
||||
optional: true,
|
||||
},
|
||||
@@ -1156,7 +1213,7 @@ test('peer dependency that is resolved by a dev dependency', async () => {
|
||||
}, await testDefaults({ fastUnpack: false, lockfileOnly: true, strictPeerDependencies: false }))
|
||||
|
||||
const lockfile = await project.readLockfile()
|
||||
expect(lockfile.packages['/@types/mongoose/5.7.32'].dev).toBeUndefined()
|
||||
expect(lockfile.packages['/@types/mongoose@5.7.32'].dev).toBeUndefined()
|
||||
|
||||
await mutateModulesInSingleProject({
|
||||
manifest,
|
||||
@@ -1223,5 +1280,5 @@ test('peer dependency is grouped with dependency when peer is resolved not from
|
||||
await mutateModules(importers, await testDefaults({ allProjects }))
|
||||
|
||||
const lockfile = await readYamlFile<Lockfile>(path.resolve(WANTED_LOCKFILE))
|
||||
expect(lockfile.packages?.['/ajv-keywords/1.5.0_ajv@ajv'].dependencies?.['ajv']).toBe('link:ajv')
|
||||
expect(lockfile.packages?.['/ajv-keywords@1.5.0(ajv@ajv)'].dependencies?.['ajv']).toBe('link:ajv')
|
||||
})
|
||||
|
||||
@@ -21,7 +21,7 @@ test('reports warning when installing deprecated packages', async () => {
|
||||
} as DeprecationLog))
|
||||
|
||||
const lockfile = await project.readLockfile()
|
||||
expect(lockfile.packages['/express/0.14.1'].deprecated).toBe('express 0.x series is deprecated')
|
||||
expect(lockfile.packages['/express@0.14.1'].deprecated).toBe('express 0.x series is deprecated')
|
||||
|
||||
reporter.mockReset()
|
||||
|
||||
|
||||
@@ -10,10 +10,10 @@ test('time-based resolution mode', async () => {
|
||||
|
||||
const lockfile = await project.readLockfile()
|
||||
expect(Object.keys(lockfile.packages)).toStrictEqual([
|
||||
'/@pnpm.e2e/bravo-dep/1.0.1',
|
||||
'/@pnpm.e2e/bravo/1.0.0',
|
||||
'/@pnpm.e2e/romeo-dep/1.0.0',
|
||||
'/@pnpm.e2e/romeo/1.0.0',
|
||||
'/@pnpm.e2e/bravo-dep@1.0.1',
|
||||
'/@pnpm.e2e/bravo@1.0.0',
|
||||
'/@pnpm.e2e/romeo-dep@1.0.0',
|
||||
'/@pnpm.e2e/romeo@1.0.0',
|
||||
])
|
||||
})
|
||||
|
||||
@@ -27,10 +27,10 @@ test('time-based resolution mode with a registry that supports the time field in
|
||||
|
||||
const lockfile = await project.readLockfile()
|
||||
expect(Object.keys(lockfile.packages)).toStrictEqual([
|
||||
'/@pnpm.e2e/bravo-dep/1.0.1',
|
||||
'/@pnpm.e2e/bravo/1.0.0',
|
||||
'/@pnpm.e2e/romeo-dep/1.0.0',
|
||||
'/@pnpm.e2e/romeo/1.0.0',
|
||||
'/@pnpm.e2e/bravo-dep@1.0.1',
|
||||
'/@pnpm.e2e/bravo@1.0.0',
|
||||
'/@pnpm.e2e/romeo-dep@1.0.0',
|
||||
'/@pnpm.e2e/romeo@1.0.0',
|
||||
])
|
||||
})
|
||||
|
||||
@@ -46,14 +46,14 @@ test('the lowest version of a direct dependency is installed when resolution mod
|
||||
|
||||
{
|
||||
const lockfile = await project.readLockfile()
|
||||
expect(lockfile.packages['/@pnpm.e2e/foo/100.0.0']).toBeTruthy()
|
||||
expect(lockfile.packages['/@pnpm.e2e/foo@100.0.0']).toBeTruthy()
|
||||
}
|
||||
|
||||
manifest = await install(manifest, await testDefaults({ resolutionMode: 'time-based', update: true }))
|
||||
|
||||
{
|
||||
const lockfile = await project.readLockfile()
|
||||
expect(lockfile.packages['/@pnpm.e2e/foo/100.1.0']).toBeTruthy()
|
||||
expect(lockfile.packages['/@pnpm.e2e/foo@100.1.0']).toBeTruthy()
|
||||
}
|
||||
expect(manifest.dependencies).toStrictEqual({
|
||||
'@pnpm.e2e/foo': '^100.1.0',
|
||||
@@ -78,15 +78,15 @@ test('the lowest version of a direct dependency is installed when resolution mod
|
||||
|
||||
{
|
||||
const lockfile = await project.readLockfile()
|
||||
expect(lockfile.packages['/@pnpm.e2e/pkg-with-1-dep/100.0.0']).toBeTruthy()
|
||||
expect(lockfile.packages['/@pnpm.e2e/dep-of-pkg-with-1-dep/100.1.0']).toBeTruthy()
|
||||
expect(lockfile.packages['/@pnpm.e2e/pkg-with-1-dep@100.0.0']).toBeTruthy()
|
||||
expect(lockfile.packages['/@pnpm.e2e/dep-of-pkg-with-1-dep@100.1.0']).toBeTruthy()
|
||||
}
|
||||
|
||||
manifest = await install(manifest, await testDefaults({ resolutionMode: 'lowest-direct', update: true }))
|
||||
|
||||
{
|
||||
const lockfile = await project.readLockfile()
|
||||
expect(lockfile.packages['/@pnpm.e2e/pkg-with-1-dep/100.1.0']).toBeTruthy()
|
||||
expect(lockfile.packages['/@pnpm.e2e/pkg-with-1-dep@100.1.0']).toBeTruthy()
|
||||
}
|
||||
expect(manifest.dependencies).toStrictEqual({
|
||||
'@pnpm.e2e/pkg-with-1-dep': '^100.1.0',
|
||||
|
||||
@@ -34,9 +34,9 @@ test('preserve subdeps on update', async () => {
|
||||
const lockfile = await project.readLockfile()
|
||||
|
||||
expect(lockfile.packages).toBeTruthy()
|
||||
expect(lockfile.packages).toHaveProperty(['/@pnpm.e2e/abc-parent-with-ab/1.0.0_@pnpm.e2e+peer-c@1.0.0'])
|
||||
expect(lockfile.packages).toHaveProperty(['/@pnpm.e2e/foobarqar/1.0.1'])
|
||||
expect(lockfile.packages['/@pnpm.e2e/foobarqar/1.0.1'].dependencies).toStrictEqual({
|
||||
expect(lockfile.packages).toHaveProperty(['/@pnpm.e2e/abc-parent-with-ab@1.0.0(@pnpm.e2e/peer-c@1.0.0)'])
|
||||
expect(lockfile.packages).toHaveProperty(['/@pnpm.e2e/foobarqar@1.0.1'])
|
||||
expect(lockfile.packages['/@pnpm.e2e/foobarqar@1.0.1'].dependencies).toStrictEqual({
|
||||
'@pnpm.e2e/bar': '100.0.0',
|
||||
'@pnpm.e2e/foo': '100.0.0',
|
||||
'@pnpm.e2e/qar': '100.0.0',
|
||||
@@ -70,9 +70,9 @@ test('preserve subdeps on update when no node_modules is present', async () => {
|
||||
const lockfile = await project.readLockfile()
|
||||
|
||||
expect(lockfile.packages).toBeTruthy()
|
||||
expect(lockfile.packages).toHaveProperty(['/@pnpm.e2e/abc-parent-with-ab/1.0.0_@pnpm.e2e+peer-c@1.0.0']) // preserve version of package that has resolved peer deps
|
||||
expect(lockfile.packages).toHaveProperty(['/@pnpm.e2e/foobarqar/1.0.1'])
|
||||
expect(lockfile.packages['/@pnpm.e2e/foobarqar/1.0.1'].dependencies).toStrictEqual({
|
||||
expect(lockfile.packages).toHaveProperty(['/@pnpm.e2e/abc-parent-with-ab@1.0.0(@pnpm.e2e/peer-c@1.0.0)']) // preserve version of package that has resolved peer deps
|
||||
expect(lockfile.packages).toHaveProperty(['/@pnpm.e2e/foobarqar@1.0.1'])
|
||||
expect(lockfile.packages['/@pnpm.e2e/foobarqar@1.0.1'].dependencies).toStrictEqual({
|
||||
'@pnpm.e2e/bar': '100.0.0',
|
||||
'@pnpm.e2e/foo': '100.0.0',
|
||||
'@pnpm.e2e/qar': '100.0.0',
|
||||
@@ -112,7 +112,7 @@ test('update dependency when external lockfile directory is used', async () => {
|
||||
|
||||
const lockfile = await readYamlFile<Lockfile>(path.join('..', WANTED_LOCKFILE))
|
||||
|
||||
expect(lockfile.packages).toHaveProperty(['/@pnpm.e2e/foo/100.1.0'])
|
||||
expect(lockfile.packages).toHaveProperty(['/@pnpm.e2e/foo@100.1.0'])
|
||||
})
|
||||
|
||||
// Covers https://github.com/pnpm/pnpm/issues/2191
|
||||
@@ -143,9 +143,9 @@ test('preserve subdeps when installing on a package that has one dependency spec
|
||||
|
||||
const lockfile = await project.readLockfile()
|
||||
|
||||
expect(lockfile.packages).toHaveProperty(['/@pnpm.e2e/abc-parent-with-ab/1.0.0_@pnpm.e2e+peer-c@1.0.0']) // preserve version of package that has resolved peer deps
|
||||
expect(lockfile.packages).toHaveProperty(['/@pnpm.e2e/foobarqar/1.0.1'])
|
||||
expect(lockfile.packages['/@pnpm.e2e/foobarqar/1.0.1'].dependencies).toStrictEqual({
|
||||
expect(lockfile.packages).toHaveProperty(['/@pnpm.e2e/abc-parent-with-ab@1.0.0(@pnpm.e2e/peer-c@1.0.0)']) // preserve version of package that has resolved peer deps
|
||||
expect(lockfile.packages).toHaveProperty(['/@pnpm.e2e/foobarqar@1.0.1'])
|
||||
expect(lockfile.packages['/@pnpm.e2e/foobarqar@1.0.1'].dependencies).toStrictEqual({
|
||||
'@pnpm.e2e/bar': '100.0.0',
|
||||
'@pnpm.e2e/foo': '100.0.0',
|
||||
'@pnpm.e2e/qar': '100.0.0',
|
||||
@@ -169,7 +169,7 @@ test('update only the packages that were requested to be updated when hoisting i
|
||||
expect(manifest.dependencies).toStrictEqual({ '@pnpm.e2e/bar': '^100.0.0', '@pnpm.e2e/foo': '^100.1.0' })
|
||||
|
||||
const lockfile = await project.readLockfile()
|
||||
expect(Object.keys(lockfile.packages)).toStrictEqual(['/@pnpm.e2e/bar/100.0.0', '/@pnpm.e2e/foo/100.1.0'])
|
||||
expect(Object.keys(lockfile.packages)).toStrictEqual(['/@pnpm.e2e/bar@100.0.0', '/@pnpm.e2e/foo@100.1.0'])
|
||||
})
|
||||
|
||||
test('update only the specified package', async () => {
|
||||
@@ -202,9 +202,9 @@ test('update only the specified package', async () => {
|
||||
|
||||
const lockfile = await project.readLockfile()
|
||||
|
||||
expect(lockfile.packages).toHaveProperty(['/@pnpm.e2e/abc-parent-with-ab/1.0.0_@pnpm.e2e+peer-c@1.0.0'])
|
||||
expect(lockfile.packages).toHaveProperty(['/@pnpm.e2e/foobarqar/1.0.0'])
|
||||
expect(lockfile.packages['/@pnpm.e2e/foobarqar/1.0.0'].dependencies).toStrictEqual({
|
||||
expect(lockfile.packages).toHaveProperty(['/@pnpm.e2e/abc-parent-with-ab@1.0.0(@pnpm.e2e/peer-c@1.0.0)'])
|
||||
expect(lockfile.packages).toHaveProperty(['/@pnpm.e2e/foobarqar@1.0.0'])
|
||||
expect(lockfile.packages['/@pnpm.e2e/foobarqar@1.0.0'].dependencies).toStrictEqual({
|
||||
'@pnpm.e2e/bar': '100.0.0',
|
||||
'@pnpm.e2e/foo': '100.1.0',
|
||||
'is-positive': '3.1.0',
|
||||
|
||||
@@ -74,11 +74,11 @@ test('dependency should not be added to package.json if it is already there', as
|
||||
|
||||
const lockfile = await project.readLockfile()
|
||||
|
||||
expect(lockfile.devDependencies['@pnpm.e2e/foo']).toBe('100.0.0')
|
||||
expect(lockfile.packages['/@pnpm.e2e/foo/100.0.0'].dev).toBeTruthy()
|
||||
expect(lockfile.devDependencies['@pnpm.e2e/foo'].version).toBe('100.0.0')
|
||||
expect(lockfile.packages['/@pnpm.e2e/foo@100.0.0'].dev).toBeTruthy()
|
||||
|
||||
expect(lockfile.optionalDependencies['@pnpm.e2e/bar']).toBe('100.0.0')
|
||||
expect(lockfile.packages['/@pnpm.e2e/bar/100.0.0'].optional).toBeTruthy()
|
||||
expect(lockfile.optionalDependencies['@pnpm.e2e/bar'].version).toBe('100.0.0')
|
||||
expect(lockfile.packages['/@pnpm.e2e/bar@100.0.0'].optional).toBeTruthy()
|
||||
})
|
||||
|
||||
test('dependencies should be updated in the fields where they already are', async () => {
|
||||
@@ -184,6 +184,7 @@ test('multiple save to package.json with `exact` versions (@rstacruz/tap-spec &
|
||||
})
|
||||
|
||||
test('save to package.json with save prefix ~', async () => {
|
||||
await addDistTag({ package: '@pnpm.e2e/pkg-with-1-dep', version: '100.0.0', distTag: 'latest' })
|
||||
prepareEmpty()
|
||||
const manifest = await addDependenciesToPackage({}, ['@pnpm.e2e/pkg-with-1-dep'], await testDefaults({ pinnedVersion: 'minor' }))
|
||||
|
||||
|
||||
@@ -62,7 +62,10 @@ test('relative link is linked by the name of the alias', async () => {
|
||||
|
||||
const wantedLockfile = await project.readLockfile()
|
||||
expect(wantedLockfile.dependencies).toStrictEqual({
|
||||
hello: 'link:../hello-world-js-bin',
|
||||
hello: {
|
||||
specifier: 'link:../hello-world-js-bin',
|
||||
version: 'link:../hello-world-js-bin',
|
||||
},
|
||||
})
|
||||
})
|
||||
|
||||
@@ -146,10 +149,10 @@ test('relative link is rewritten by named installation to regular dependency', a
|
||||
expect(project.requireModule('@pnpm.e2e/hello-world-js-bin/package.json').isLocal).toBeFalsy()
|
||||
|
||||
const wantedLockfile = await project.readLockfile()
|
||||
expect(wantedLockfile.dependencies['@pnpm.e2e/hello-world-js-bin']).toBe('1.0.0')
|
||||
expect(wantedLockfile.dependencies['@pnpm.e2e/hello-world-js-bin'].version).toBe('1.0.0')
|
||||
|
||||
const currentLockfile = await project.readCurrentLockfile()
|
||||
expect(currentLockfile.dependencies['@pnpm.e2e/hello-world-js-bin']).toBe('1.0.0')
|
||||
expect(currentLockfile.dependencies['@pnpm.e2e/hello-world-js-bin'].version).toBe('1.0.0')
|
||||
})
|
||||
|
||||
test('relative link uses realpath when contained in a symlinked dir', async () => {
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
import { promises as fs } from 'fs'
|
||||
import path from 'path'
|
||||
import { LOCKFILE_VERSION, WANTED_LOCKFILE } from '@pnpm/constants'
|
||||
import { LOCKFILE_VERSION_V6 as LOCKFILE_VERSION, WANTED_LOCKFILE } from '@pnpm/constants'
|
||||
import { RootLog } from '@pnpm/core-loggers'
|
||||
import { PnpmError } from '@pnpm/error'
|
||||
import { Lockfile, TarballResolution } from '@pnpm/lockfile-file'
|
||||
import { LockfileV6 } from '@pnpm/lockfile-types'
|
||||
import { prepareEmpty, preparePackages } from '@pnpm/prepare'
|
||||
import { readPackageJsonFromDir } from '@pnpm/read-package-json'
|
||||
import { addDistTag, getIntegrity, REGISTRY_MOCK_PORT } from '@pnpm/registry-mock'
|
||||
@@ -45,15 +46,14 @@ test('lockfile has correct format', async () => {
|
||||
expect(modules!.pendingBuilds.length).toBe(0)
|
||||
|
||||
const lockfile = await project.readLockfile()
|
||||
const id = '/@pnpm.e2e/pkg-with-1-dep/100.0.0'
|
||||
const id = '/@pnpm.e2e/pkg-with-1-dep@100.0.0'
|
||||
|
||||
expect(lockfile.lockfileVersion).toBe(LOCKFILE_VERSION)
|
||||
|
||||
expect(lockfile.specifiers).toBeTruthy()
|
||||
expect(lockfile.dependencies).toBeTruthy()
|
||||
expect(lockfile.dependencies['@pnpm.e2e/pkg-with-1-dep']).toBe('100.0.0')
|
||||
expect(lockfile.dependencies['@pnpm.e2e/pkg-with-1-dep'].version).toBe('100.0.0')
|
||||
expect(lockfile.dependencies).toHaveProperty(['@rstacruz/tap-spec'])
|
||||
expect(lockfile.dependencies['is-negative']).toContain('/') // has not shortened tarball from the non-standard registry
|
||||
expect(lockfile.dependencies['is-negative'].version).toContain('/') // has not shortened tarball from the non-standard registry
|
||||
|
||||
expect(lockfile.packages).toBeTruthy() // has packages field
|
||||
expect(lockfile.packages).toHaveProperty([id])
|
||||
@@ -78,11 +78,11 @@ test('lockfile has dev deps even when installing for prod only', async () => {
|
||||
}, await testDefaults({ production: true }))
|
||||
|
||||
const lockfile = await project.readLockfile()
|
||||
const id = '/is-negative/2.1.0'
|
||||
const id = '/is-negative@2.1.0'
|
||||
|
||||
expect(lockfile.devDependencies).toBeTruthy()
|
||||
|
||||
expect(lockfile.devDependencies['is-negative']).toBe('2.1.0')
|
||||
expect(lockfile.devDependencies['is-negative'].version).toBe('2.1.0')
|
||||
|
||||
expect(lockfile.packages[id]).toBeTruthy()
|
||||
})
|
||||
@@ -92,19 +92,19 @@ test('lockfile with scoped package', async () => {
|
||||
|
||||
await writeYamlFile(WANTED_LOCKFILE, {
|
||||
dependencies: {
|
||||
'@types/semver': '5.3.31',
|
||||
'@types/semver': {
|
||||
specifier: '^5.3.31',
|
||||
version: '5.3.31',
|
||||
},
|
||||
},
|
||||
lockfileVersion: LOCKFILE_VERSION,
|
||||
packages: {
|
||||
'/@types/semver/5.3.31': {
|
||||
'/@types/semver@5.3.31': {
|
||||
resolution: {
|
||||
integrity: 'sha512-WBv5F9HrWTyG800cB9M3veCVkFahqXN7KA7c3VUCYZm/xhNzzIFiXiq+rZmj75j7GvWelN3YNrLX7FjtqBvhMw==',
|
||||
},
|
||||
},
|
||||
},
|
||||
specifiers: {
|
||||
'@types/semver': '^5.3.31',
|
||||
},
|
||||
}, { lineWidth: 1000 })
|
||||
|
||||
await install({
|
||||
@@ -118,10 +118,19 @@ test("lockfile doesn't lock subdependencies that don't satisfy the new specs", a
|
||||
const project = prepareEmpty()
|
||||
|
||||
// dependends on react-onclickoutside@5.9.0
|
||||
const manifest = await addDependenciesToPackage({}, ['react-datetime@2.8.8'], await testDefaults({ fastUnpack: false, save: true, strictPeerDependencies: false }))
|
||||
const manifest = await addDependenciesToPackage({}, ['react-datetime@2.8.8'], await testDefaults({
|
||||
autoInstallPeers: false,
|
||||
fastUnpack: false,
|
||||
save: true,
|
||||
strictPeerDependencies: false,
|
||||
}))
|
||||
|
||||
// dependends on react-onclickoutside@0.3.4
|
||||
await addDependenciesToPackage(manifest, ['react-datetime@1.3.0'], await testDefaults({ save: true, strictPeerDependencies: false }))
|
||||
await addDependenciesToPackage(manifest, ['react-datetime@1.3.0'], await testDefaults({
|
||||
autoInstallPeers: false,
|
||||
save: true,
|
||||
strictPeerDependencies: false,
|
||||
}))
|
||||
|
||||
expect(
|
||||
project.requireModule('.pnpm/react-datetime@1.3.0/node_modules/react-onclickoutside/package.json').version
|
||||
@@ -146,19 +155,19 @@ test('lockfile removed when no deps in package.json', async () => {
|
||||
|
||||
await writeYamlFile(WANTED_LOCKFILE, {
|
||||
dependencies: {
|
||||
'is-negative': '2.1.0',
|
||||
'is-negative': {
|
||||
specifier: '2.1.0',
|
||||
version: '2.1.0',
|
||||
},
|
||||
},
|
||||
lockfileVersion: LOCKFILE_VERSION,
|
||||
packages: {
|
||||
'/is-negative/2.1.0': {
|
||||
'/is-negative@2.1.0': {
|
||||
resolution: {
|
||||
tarball: `http://localhost:${REGISTRY_MOCK_PORT}/is-negative/-/is-negative-2.1.0.tgz`,
|
||||
},
|
||||
},
|
||||
},
|
||||
specifiers: {
|
||||
'is-negative': '2.1.0',
|
||||
},
|
||||
}, { lineWidth: 1000 })
|
||||
|
||||
await install({}, await testDefaults())
|
||||
@@ -171,33 +180,37 @@ test('lockfile is fixed when it does not match package.json', async () => {
|
||||
|
||||
await writeYamlFile(WANTED_LOCKFILE, {
|
||||
dependencies: {
|
||||
'@types/semver': '5.3.31',
|
||||
'is-negative': '2.1.0',
|
||||
'is-positive': '3.1.0',
|
||||
'@types/semver': {
|
||||
specifier: '5.3.31',
|
||||
version: '5.3.31',
|
||||
},
|
||||
'is-negative': {
|
||||
specifier: '^2.1.0',
|
||||
version: '2.1.0',
|
||||
},
|
||||
'is-positive': {
|
||||
specifier: '^3.1.0',
|
||||
version: '3.1.0',
|
||||
},
|
||||
},
|
||||
lockfileVersion: LOCKFILE_VERSION,
|
||||
packages: {
|
||||
'/@types/semver/5.3.31': {
|
||||
'/@types/semver@5.3.31': {
|
||||
resolution: {
|
||||
integrity: 'sha512-WBv5F9HrWTyG800cB9M3veCVkFahqXN7KA7c3VUCYZm/xhNzzIFiXiq+rZmj75j7GvWelN3YNrLX7FjtqBvhMw==',
|
||||
},
|
||||
},
|
||||
'/is-negative/2.1.0': {
|
||||
'/is-negative@2.1.0': {
|
||||
resolution: {
|
||||
tarball: `http://localhost:${REGISTRY_MOCK_PORT}/is-negative/-/is-negative-2.1.0.tgz`,
|
||||
},
|
||||
},
|
||||
'/is-positive/3.1.0': {
|
||||
'/is-positive@3.1.0': {
|
||||
resolution: {
|
||||
integrity: 'sha512-8ND1j3y9/HP94TOvGzr69/FgbkX2ruOldhLEsTWwcJVfo4oRjwemJmJxt7RJkKYH8tz7vYBP9JcKQY8CLuJ90Q==',
|
||||
},
|
||||
},
|
||||
},
|
||||
specifiers: {
|
||||
'@types/semver': '5.3.31',
|
||||
'is-negative': '^2.1.0',
|
||||
'is-positive': '^3.1.0',
|
||||
},
|
||||
}, { lineWidth: 1000 })
|
||||
|
||||
const reporter = sinon.spy()
|
||||
@@ -218,10 +231,10 @@ test('lockfile is fixed when it does not match package.json', async () => {
|
||||
|
||||
const lockfile = await project.readLockfile()
|
||||
|
||||
expect(lockfile.devDependencies['is-negative']).toBe('2.1.0')
|
||||
expect(lockfile.optionalDependencies['is-positive']).toBe('3.1.0')
|
||||
expect(lockfile.devDependencies['is-negative'].version).toBe('2.1.0')
|
||||
expect(lockfile.optionalDependencies['is-positive'].version).toBe('3.1.0')
|
||||
expect(lockfile.dependencies).toBeFalsy()
|
||||
expect(lockfile.packages).not.toHaveProperty(['/@types/semver/5.3.31'])
|
||||
expect(lockfile.packages).not.toHaveProperty(['/@types/semver@5.3.31'])
|
||||
})
|
||||
|
||||
test(`doing named installation when ${WANTED_LOCKFILE} exists already`, async () => {
|
||||
@@ -229,33 +242,37 @@ test(`doing named installation when ${WANTED_LOCKFILE} exists already`, async ()
|
||||
|
||||
await writeYamlFile(WANTED_LOCKFILE, {
|
||||
dependencies: {
|
||||
'@types/semver': '5.3.31',
|
||||
'is-negative': '2.1.0',
|
||||
'is-positive': '3.1.0',
|
||||
'@types/semver': {
|
||||
specifier: '5.3.31',
|
||||
version: '5.3.31',
|
||||
},
|
||||
'is-negative': {
|
||||
specifier: '^2.1.0',
|
||||
version: '2.1.0',
|
||||
},
|
||||
'is-positive': {
|
||||
specifier: '^3.1.0',
|
||||
version: '3.1.0',
|
||||
},
|
||||
},
|
||||
lockfileVersion: LOCKFILE_VERSION,
|
||||
packages: {
|
||||
'/@types/semver/5.3.31': {
|
||||
'/@types/semver@5.3.31': {
|
||||
resolution: {
|
||||
integrity: 'sha512-WBv5F9HrWTyG800cB9M3veCVkFahqXN7KA7c3VUCYZm/xhNzzIFiXiq+rZmj75j7GvWelN3YNrLX7FjtqBvhMw==',
|
||||
},
|
||||
},
|
||||
'/is-negative/2.1.0': {
|
||||
'/is-negative@2.1.0': {
|
||||
resolution: {
|
||||
tarball: `http://localhost:${REGISTRY_MOCK_PORT}/is-negative/-/is-negative-2.1.0.tgz`,
|
||||
},
|
||||
},
|
||||
'/is-positive/3.1.0': {
|
||||
'/is-positive@3.1.0': {
|
||||
resolution: {
|
||||
integrity: 'sha512-8ND1j3y9/HP94TOvGzr69/FgbkX2ruOldhLEsTWwcJVfo4oRjwemJmJxt7RJkKYH8tz7vYBP9JcKQY8CLuJ90Q==',
|
||||
},
|
||||
},
|
||||
},
|
||||
specifiers: {
|
||||
'@types/semver': '5.3.31',
|
||||
'is-negative': '^2.1.0',
|
||||
'is-positive': '^3.1.0',
|
||||
},
|
||||
}, { lineWidth: 1000 })
|
||||
|
||||
const reporter = sinon.spy()
|
||||
@@ -339,17 +356,17 @@ test(`subdeps are updated on repeat install if outer ${WANTED_LOCKFILE} does not
|
||||
|
||||
const lockfile = await project.readLockfile()
|
||||
|
||||
expect(lockfile.packages).toHaveProperty(['/@pnpm.e2e/dep-of-pkg-with-1-dep/100.0.0'])
|
||||
expect(lockfile.packages).toHaveProperty(['/@pnpm.e2e/dep-of-pkg-with-1-dep@100.0.0'])
|
||||
|
||||
delete lockfile.packages['/@pnpm.e2e/dep-of-pkg-with-1-dep/100.0.0']
|
||||
delete lockfile.packages['/@pnpm.e2e/dep-of-pkg-with-1-dep@100.0.0']
|
||||
|
||||
lockfile.packages['/@pnpm.e2e/dep-of-pkg-with-1-dep/100.1.0'] = {
|
||||
lockfile.packages['/@pnpm.e2e/dep-of-pkg-with-1-dep@100.1.0'] = {
|
||||
resolution: {
|
||||
integrity: getIntegrity('@pnpm.e2e/dep-of-pkg-with-1-dep', '100.1.0'),
|
||||
},
|
||||
}
|
||||
|
||||
lockfile.packages['/@pnpm.e2e/pkg-with-1-dep/100.0.0'].dependencies!['@pnpm.e2e/dep-of-pkg-with-1-dep'] = '100.1.0'
|
||||
lockfile.packages['/@pnpm.e2e/pkg-with-1-dep@100.0.0'].dependencies!['@pnpm.e2e/dep-of-pkg-with-1-dep'] = '100.1.0'
|
||||
|
||||
await writeYamlFile(WANTED_LOCKFILE, lockfile, { lineWidth: 1000 })
|
||||
|
||||
@@ -366,8 +383,8 @@ test("recreates lockfile if it doesn't match the dependencies in package.json",
|
||||
manifest = await addDependenciesToPackage(manifest, ['map-obj@1.0.0'], await testDefaults({ pinnedVersion: 'patch', targetDependenciesField: 'optionalDependencies' }))
|
||||
|
||||
const lockfile1 = await project.readLockfile()
|
||||
expect(lockfile1.dependencies['is-negative']).toBe('1.0.0')
|
||||
expect(lockfile1.specifiers['is-negative']).toBe('1.0.0')
|
||||
expect(lockfile1.dependencies['is-negative'].version).toBe('1.0.0')
|
||||
expect(lockfile1.dependencies['is-negative'].specifier).toBe('1.0.0')
|
||||
|
||||
manifest.dependencies!['is-negative'] = '^2.1.0'
|
||||
manifest.devDependencies!['is-positive'] = '^2.0.0'
|
||||
@@ -377,14 +394,14 @@ test("recreates lockfile if it doesn't match the dependencies in package.json",
|
||||
|
||||
const lockfile = await project.readLockfile()
|
||||
|
||||
expect(lockfile.dependencies['is-negative']).toBe('2.1.0')
|
||||
expect(lockfile.specifiers['is-negative']).toBe('^2.1.0')
|
||||
expect(lockfile.dependencies['is-negative'].version).toBe('2.1.0')
|
||||
expect(lockfile.dependencies['is-negative'].specifier).toBe('^2.1.0')
|
||||
|
||||
expect(lockfile.devDependencies['is-positive']).toBe('2.0.0')
|
||||
expect(lockfile.specifiers['is-positive']).toBe('^2.0.0')
|
||||
expect(lockfile.devDependencies['is-positive'].version).toBe('2.0.0')
|
||||
expect(lockfile.devDependencies['is-positive'].specifier).toBe('^2.0.0')
|
||||
|
||||
expect(lockfile.optionalDependencies['map-obj']).toBe('1.0.1')
|
||||
expect(lockfile.specifiers['map-obj']).toBe('1.0.1')
|
||||
expect(lockfile.optionalDependencies['map-obj'].version).toBe('1.0.1')
|
||||
expect(lockfile.optionalDependencies['map-obj'].specifier).toBe('1.0.1')
|
||||
})
|
||||
|
||||
test('repeat install with lockfile should not mutate lockfile when dependency has version specified with v prefix', async () => {
|
||||
@@ -394,7 +411,7 @@ test('repeat install with lockfile should not mutate lockfile when dependency ha
|
||||
|
||||
const lockfile1 = await project.readLockfile()
|
||||
|
||||
expect(lockfile1.dependencies['highmaps-release']).toBe('5.0.11')
|
||||
expect(lockfile1.dependencies['highmaps-release'].version).toBe('5.0.11')
|
||||
|
||||
await rimraf('node_modules')
|
||||
|
||||
@@ -421,7 +438,7 @@ test('package is not marked dev if it is also a subdep of a regular dependency',
|
||||
|
||||
const lockfile = await project.readLockfile()
|
||||
|
||||
expect(lockfile.packages['/@pnpm.e2e/dep-of-pkg-with-1-dep/100.0.0'].dev).toBeFalsy()
|
||||
expect(lockfile.packages['/@pnpm.e2e/dep-of-pkg-with-1-dep@100.0.0'].dev).toBeFalsy()
|
||||
})
|
||||
|
||||
test('package is not marked optional if it is also a subdep of a regular dependency', async () => {
|
||||
@@ -435,7 +452,7 @@ test('package is not marked optional if it is also a subdep of a regular depende
|
||||
|
||||
const lockfile = await project.readLockfile()
|
||||
|
||||
expect(lockfile.packages['/@pnpm.e2e/dep-of-pkg-with-1-dep/100.0.0'].optional).toBeFalsy()
|
||||
expect(lockfile.packages['/@pnpm.e2e/dep-of-pkg-with-1-dep@100.0.0'].optional).toBeFalsy()
|
||||
})
|
||||
|
||||
test('scoped module from different registry', async () => {
|
||||
@@ -453,13 +470,22 @@ test('scoped module from different registry', async () => {
|
||||
|
||||
expect(lockfile).toStrictEqual({
|
||||
dependencies: {
|
||||
'@foo/has-dep-from-same-scope': '1.0.0',
|
||||
'@zkochan/foo': '1.0.0',
|
||||
'is-positive': '3.1.0',
|
||||
'@foo/has-dep-from-same-scope': {
|
||||
specifier: '^1.0.0',
|
||||
version: '1.0.0',
|
||||
},
|
||||
'@zkochan/foo': {
|
||||
specifier: '^1.0.0',
|
||||
version: '1.0.0',
|
||||
},
|
||||
'is-positive': {
|
||||
specifier: '^3.1.0',
|
||||
version: '3.1.0',
|
||||
},
|
||||
},
|
||||
lockfileVersion: LOCKFILE_VERSION,
|
||||
packages: {
|
||||
'/@foo/has-dep-from-same-scope/1.0.0': {
|
||||
'/@foo/has-dep-from-same-scope@1.0.0': {
|
||||
dependencies: {
|
||||
'@foo/no-deps': '1.0.0',
|
||||
'is-negative': '1.0.0',
|
||||
@@ -469,19 +495,19 @@ test('scoped module from different registry', async () => {
|
||||
integrity: getIntegrity('@foo/has-dep-from-same-scope', '1.0.0'),
|
||||
},
|
||||
},
|
||||
'/@foo/no-deps/1.0.0': {
|
||||
'/@foo/no-deps@1.0.0': {
|
||||
dev: false,
|
||||
resolution: {
|
||||
integrity: getIntegrity('@foo/no-deps', '1.0.0'),
|
||||
},
|
||||
},
|
||||
'/@zkochan/foo/1.0.0': {
|
||||
'/@zkochan/foo@1.0.0': {
|
||||
dev: false,
|
||||
resolution: {
|
||||
integrity: 'sha512-IFvrYpq7E6BqKex7A7czIFnFncPiUVdhSzGhAOWpp8RlkXns4y/9ZdynxaA/e0VkihRxQkihE2pTyvxjfe/wBg==',
|
||||
},
|
||||
},
|
||||
'/is-negative/1.0.0': {
|
||||
'/is-negative@1.0.0': {
|
||||
dev: false,
|
||||
engines: {
|
||||
node: '>=0.10.0',
|
||||
@@ -490,7 +516,7 @@ test('scoped module from different registry', async () => {
|
||||
integrity: 'sha512-1aKMsFUc7vYQGzt//8zhkjRWPoYkajY/I5MJEvrc0pDoHXrW7n5ri8DYxhy3rR+Dk0QFl7GjHHsZU1sppQrWtw==',
|
||||
},
|
||||
},
|
||||
'/is-positive/3.1.0': {
|
||||
'/is-positive@3.1.0': {
|
||||
dev: false,
|
||||
engines: {
|
||||
node: '>=0.10.0',
|
||||
@@ -500,11 +526,6 @@ test('scoped module from different registry', async () => {
|
||||
},
|
||||
},
|
||||
},
|
||||
specifiers: {
|
||||
'@foo/has-dep-from-same-scope': '^1.0.0',
|
||||
'@zkochan/foo': '^1.0.0',
|
||||
'is-positive': '^3.1.0',
|
||||
},
|
||||
})
|
||||
})
|
||||
|
||||
@@ -631,7 +652,7 @@ test('dev property is correctly set for package that is duplicated to both the d
|
||||
await addDependenciesToPackage({}, ['overlap@2.2.8'], await testDefaults())
|
||||
|
||||
const lockfile = await project.readLockfile()
|
||||
expect(lockfile.packages['/couleurs/5.0.0'].dev === false).toBeTruthy()
|
||||
expect(lockfile.packages['/couleurs@5.0.0'].dev === false).toBeTruthy()
|
||||
})
|
||||
|
||||
test('no lockfile', async () => {
|
||||
@@ -652,20 +673,20 @@ test('lockfile is ignored when lockfile = false', async () => {
|
||||
|
||||
await writeYamlFile(WANTED_LOCKFILE, {
|
||||
dependencies: {
|
||||
'is-negative': '2.1.0',
|
||||
'is-negative': {
|
||||
specifier: '2.1.0',
|
||||
version: '2.1.0',
|
||||
},
|
||||
},
|
||||
lockfileVersion: LOCKFILE_VERSION,
|
||||
packages: {
|
||||
'/is-negative/2.1.0': {
|
||||
'/is-negative@2.1.0': {
|
||||
resolution: {
|
||||
integrity: 'sha1-uZnX2TX0P1IHsBsA094ghS9Mp10=', // Invalid integrity
|
||||
tarball: `http://localhost:${REGISTRY_MOCK_PORT}/is-negative/-/is-negative-2.1.0.tgz`,
|
||||
},
|
||||
},
|
||||
},
|
||||
specifiers: {
|
||||
'is-negative': '2.1.0',
|
||||
},
|
||||
}, { lineWidth: 1000 })
|
||||
|
||||
const reporter = sinon.spy()
|
||||
@@ -741,7 +762,7 @@ test('save tarball URL when it is non-standard', async () => {
|
||||
|
||||
const lockfile = await project.readLockfile()
|
||||
|
||||
expect((lockfile.packages['/esprima-fb/3001.1.0-dev-harmony-fb'].resolution as TarballResolution).tarball).toBe('esprima-fb/-/esprima-fb-3001.0001.0000-dev-harmony-fb.tgz')
|
||||
expect((lockfile.packages['/esprima-fb@3001.1.0-dev-harmony-fb'].resolution as TarballResolution).tarball).toBe('esprima-fb/-/esprima-fb-3001.0001.0000-dev-harmony-fb.tgz')
|
||||
})
|
||||
|
||||
test('packages installed via tarball URL from the default registry are normalized', async () => {
|
||||
@@ -756,18 +777,24 @@ test('packages installed via tarball URL from the default registry are normalize
|
||||
|
||||
expect(lockfile).toStrictEqual({
|
||||
dependencies: {
|
||||
'is-positive': '@registry.npmjs.org/is-positive/-/is-positive-1.0.0.tgz',
|
||||
'@pnpm.e2e/pkg-with-tarball-dep-from-registry': '1.0.0',
|
||||
'is-positive': {
|
||||
specifier: 'https://registry.npmjs.org/is-positive/-/is-positive-1.0.0.tgz',
|
||||
version: '@registry.npmjs.org/is-positive/-/is-positive-1.0.0.tgz',
|
||||
},
|
||||
'@pnpm.e2e/pkg-with-tarball-dep-from-registry': {
|
||||
specifier: `http://localhost:${REGISTRY_MOCK_PORT}/@pnpm.e2e/pkg-with-tarball-dep-from-registry/-/pkg-with-tarball-dep-from-registry-1.0.0.tgz`,
|
||||
version: '1.0.0',
|
||||
},
|
||||
},
|
||||
lockfileVersion: LOCKFILE_VERSION,
|
||||
packages: {
|
||||
'/@pnpm.e2e/dep-of-pkg-with-1-dep/100.0.0': {
|
||||
'/@pnpm.e2e/dep-of-pkg-with-1-dep@100.0.0': {
|
||||
dev: false,
|
||||
resolution: {
|
||||
integrity: getIntegrity('@pnpm.e2e/dep-of-pkg-with-1-dep', '100.0.0'),
|
||||
},
|
||||
},
|
||||
'/@pnpm.e2e/pkg-with-tarball-dep-from-registry/1.0.0': {
|
||||
'/@pnpm.e2e/pkg-with-tarball-dep-from-registry@1.0.0': {
|
||||
dependencies: {
|
||||
'@pnpm.e2e/dep-of-pkg-with-1-dep': '100.0.0',
|
||||
},
|
||||
@@ -786,10 +813,6 @@ test('packages installed via tarball URL from the default registry are normalize
|
||||
version: '1.0.0',
|
||||
},
|
||||
},
|
||||
specifiers: {
|
||||
'is-positive': 'https://registry.npmjs.org/is-positive/-/is-positive-1.0.0.tgz',
|
||||
'@pnpm.e2e/pkg-with-tarball-dep-from-registry': `http://localhost:${REGISTRY_MOCK_PORT}/@pnpm.e2e/pkg-with-tarball-dep-from-registry/-/pkg-with-tarball-dep-from-registry-1.0.0.tgz`,
|
||||
},
|
||||
})
|
||||
})
|
||||
|
||||
@@ -818,18 +841,18 @@ test('lockfile file has correct format when lockfile directory does not equal th
|
||||
expect(modules.pendingBuilds.length).toBe(0)
|
||||
|
||||
{
|
||||
const lockfile: Lockfile = await readYamlFile(WANTED_LOCKFILE)
|
||||
const id = '/@pnpm.e2e/pkg-with-1-dep/100.0.0'
|
||||
const lockfile: LockfileV6 = await readYamlFile(WANTED_LOCKFILE)
|
||||
const id = '/@pnpm.e2e/pkg-with-1-dep@100.0.0'
|
||||
|
||||
expect(lockfile.lockfileVersion).toBe(LOCKFILE_VERSION)
|
||||
|
||||
expect(lockfile.importers).toBeTruthy()
|
||||
expect(lockfile.importers.project).toBeTruthy()
|
||||
expect(lockfile.importers.project.specifiers).toBeTruthy()
|
||||
expect(lockfile.importers.project).toBeTruthy()
|
||||
expect(lockfile.importers.project.dependencies).toBeTruthy()
|
||||
expect(lockfile.importers.project.dependencies!['@pnpm.e2e/pkg-with-1-dep']).toBe('100.0.0')
|
||||
expect(lockfile.importers.project.dependencies!['@pnpm.e2e/pkg-with-1-dep'].version).toBe('100.0.0')
|
||||
expect(lockfile.importers.project.dependencies!['@zkochan/foo']).toBeTruthy()
|
||||
expect(lockfile.importers.project.dependencies!['is-negative']).toContain('/')
|
||||
expect(lockfile.importers.project.dependencies!['is-negative'].version).toContain('/')
|
||||
|
||||
expect(lockfile.packages![id].dependencies).toHaveProperty(['@pnpm.e2e/dep-of-pkg-with-1-dep'])
|
||||
expect(lockfile.packages![id].resolution).toHaveProperty(['integrity'])
|
||||
@@ -852,17 +875,16 @@ test('lockfile file has correct format when lockfile directory does not equal th
|
||||
}))
|
||||
|
||||
{
|
||||
const lockfile = await readYamlFile<Lockfile>(path.join('..', WANTED_LOCKFILE))
|
||||
const lockfile = await readYamlFile<LockfileV6>(path.join('..', WANTED_LOCKFILE))
|
||||
|
||||
expect(lockfile.importers).toHaveProperty(['project-2'])
|
||||
|
||||
// previous entries are not removed
|
||||
const id = '/@pnpm.e2e/pkg-with-1-dep/100.0.0'
|
||||
const id = '/@pnpm.e2e/pkg-with-1-dep@100.0.0'
|
||||
|
||||
expect(lockfile.importers.project.specifiers).toBeTruthy()
|
||||
expect(lockfile.importers.project.dependencies!['@pnpm.e2e/pkg-with-1-dep']).toBe('100.0.0')
|
||||
expect(lockfile.importers.project.dependencies!['@pnpm.e2e/pkg-with-1-dep'].version).toBe('100.0.0')
|
||||
expect(lockfile.importers.project.dependencies).toHaveProperty(['@zkochan/foo'])
|
||||
expect(lockfile.importers.project.dependencies!['is-negative']).toContain('/')
|
||||
expect(lockfile.importers.project.dependencies!['is-negative'].version).toContain('/')
|
||||
|
||||
expect(lockfile.packages).toHaveProperty([id])
|
||||
expect(lockfile.packages![id].dependencies).toBeTruthy()
|
||||
@@ -902,29 +924,29 @@ test(`doing named installation when shared ${WANTED_LOCKFILE} exists already`, a
|
||||
importers: {
|
||||
pkg1: {
|
||||
dependencies: {
|
||||
'is-negative': '2.1.0',
|
||||
},
|
||||
specifiers: {
|
||||
'is-negative': '^2.1.0',
|
||||
'is-negative': {
|
||||
specifier: '^2.1.0',
|
||||
version: '2.1.0',
|
||||
},
|
||||
},
|
||||
},
|
||||
pkg2: {
|
||||
dependencies: {
|
||||
'is-positive': '3.1.0',
|
||||
},
|
||||
specifiers: {
|
||||
'is-positive': '^3.1.0',
|
||||
'is-positive': {
|
||||
specifier: '^3.1.0',
|
||||
version: '3.1.0',
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
lockfileVersion: LOCKFILE_VERSION,
|
||||
packages: {
|
||||
'/is-negative/2.1.0': {
|
||||
'/is-negative@2.1.0': {
|
||||
resolution: {
|
||||
tarball: `http://localhost:${REGISTRY_MOCK_PORT}/is-negative/-/is-negative-2.1.0.tgz`,
|
||||
},
|
||||
},
|
||||
'/is-positive/3.1.0': {
|
||||
'/is-positive@3.1.0': {
|
||||
resolution: {
|
||||
integrity: 'sha512-8ND1j3y9/HP94TOvGzr69/FgbkX2ruOldhLEsTWwcJVfo4oRjwemJmJxt7RJkKYH8tz7vYBP9JcKQY8CLuJ90Q==',
|
||||
},
|
||||
@@ -941,7 +963,7 @@ test(`doing named installation when shared ${WANTED_LOCKFILE} exists already`, a
|
||||
})
|
||||
)
|
||||
|
||||
const currentLockfile = await readYamlFile<Lockfile>(path.resolve('node_modules/.pnpm/lock.yaml'))
|
||||
const currentLockfile = await readYamlFile<LockfileV6>(path.resolve('node_modules/.pnpm/lock.yaml'))
|
||||
|
||||
expect(Object.keys(currentLockfile['importers'])).toStrictEqual(['pkg2'])
|
||||
|
||||
@@ -1037,8 +1059,8 @@ test('lockfile is not getting broken if the used registry changes', async () =>
|
||||
await addDependenciesToPackage(manifest, ['is-negative@1'], newOpts)
|
||||
|
||||
expect(Object.keys((await project.readLockfile()).packages)).toStrictEqual([
|
||||
'/is-negative/1.0.1',
|
||||
'/is-positive/1.0.0',
|
||||
'/is-negative@1.0.1',
|
||||
'/is-positive@1.0.0',
|
||||
])
|
||||
})
|
||||
|
||||
@@ -1050,8 +1072,8 @@ test('broken lockfile is fixed even if it seems like up to date at first. Unless
|
||||
const manifest = await addDependenciesToPackage({}, ['@pnpm.e2e/pkg-with-1-dep'], await testDefaults({ lockfileOnly: true }))
|
||||
{
|
||||
const lockfile = await project.readLockfile()
|
||||
expect(lockfile.packages).toHaveProperty(['/@pnpm.e2e/dep-of-pkg-with-1-dep/100.0.0'])
|
||||
delete lockfile.packages['/@pnpm.e2e/dep-of-pkg-with-1-dep/100.0.0']
|
||||
expect(lockfile.packages).toHaveProperty(['/@pnpm.e2e/dep-of-pkg-with-1-dep@100.0.0'])
|
||||
delete lockfile.packages['/@pnpm.e2e/dep-of-pkg-with-1-dep@100.0.0']
|
||||
await writeYamlFile(WANTED_LOCKFILE, lockfile, { lineWidth: 1000 })
|
||||
}
|
||||
|
||||
@@ -1075,7 +1097,7 @@ test('broken lockfile is fixed even if it seems like up to date at first. Unless
|
||||
|
||||
await project.has('@pnpm.e2e/pkg-with-1-dep')
|
||||
const lockfile = await project.readLockfile()
|
||||
expect(lockfile.packages).toHaveProperty(['/@pnpm.e2e/dep-of-pkg-with-1-dep/100.0.0'])
|
||||
expect(lockfile.packages).toHaveProperty(['/@pnpm.e2e/dep-of-pkg-with-1-dep@100.0.0'])
|
||||
})
|
||||
|
||||
const REGISTRY_MIRROR_DIR = path.join(__dirname, './registry-mirror')
|
||||
@@ -1113,11 +1135,14 @@ test('tarball domain differs from registry domain', async () => {
|
||||
|
||||
expect(lockfile).toStrictEqual({
|
||||
dependencies: {
|
||||
'is-positive': 'registry.npmjs.org/is-positive/3.1.0',
|
||||
'is-positive': {
|
||||
specifier: '^3.1.0',
|
||||
version: 'registry.npmjs.org/is-positive@3.1.0',
|
||||
},
|
||||
},
|
||||
lockfileVersion: LOCKFILE_VERSION,
|
||||
packages: {
|
||||
'registry.npmjs.org/is-positive/3.1.0': {
|
||||
'registry.npmjs.org/is-positive@3.1.0': {
|
||||
dev: false,
|
||||
engines: { node: '>=0.10.0' },
|
||||
name: 'is-positive',
|
||||
@@ -1129,7 +1154,6 @@ test('tarball domain differs from registry domain', async () => {
|
||||
version: '3.1.0',
|
||||
},
|
||||
},
|
||||
specifiers: { 'is-positive': '^3.1.0' },
|
||||
})
|
||||
})
|
||||
|
||||
@@ -1157,7 +1181,10 @@ test('tarball installed through non-standard URL endpoint from the registry doma
|
||||
|
||||
expect(lockfile).toStrictEqual({
|
||||
dependencies: {
|
||||
'is-positive': '@registry.npmjs.org/is-positive/download/is-positive-3.1.0.tgz',
|
||||
'is-positive': {
|
||||
specifier: 'https://registry.npmjs.org/is-positive/download/is-positive-3.1.0.tgz',
|
||||
version: '@registry.npmjs.org/is-positive/download/is-positive-3.1.0.tgz',
|
||||
},
|
||||
},
|
||||
lockfileVersion: LOCKFILE_VERSION,
|
||||
packages: {
|
||||
@@ -1171,35 +1198,33 @@ test('tarball installed through non-standard URL endpoint from the registry doma
|
||||
version: '3.1.0',
|
||||
},
|
||||
},
|
||||
specifiers: {
|
||||
'is-positive': 'https://registry.npmjs.org/is-positive/download/is-positive-3.1.0.tgz',
|
||||
},
|
||||
})
|
||||
})
|
||||
|
||||
test('a lockfile with merge conflicts is autofixed', async () => {
|
||||
// TODO: fix merge conflicts with the new lockfile format (TODOv8)
|
||||
test.skip('a lockfile with merge conflicts is autofixed', async () => {
|
||||
const project = prepareEmpty()
|
||||
|
||||
await fs.writeFile(WANTED_LOCKFILE, `\
|
||||
importers:
|
||||
.:
|
||||
dependencies:
|
||||
'@pnpm.e2e/dep-of-pkg-with-1-dep':
|
||||
specifier: '>100.0.0'
|
||||
<<<<<<< HEAD
|
||||
'@pnpm.e2e/dep-of-pkg-with-1-dep': 100.0.0
|
||||
version: 100.0.0
|
||||
=======
|
||||
'@pnpm.e2e/dep-of-pkg-with-1-dep': 100.1.0
|
||||
version: 100.1.0
|
||||
>>>>>>> next
|
||||
specifiers:
|
||||
'@pnpm.e2e/dep-of-pkg-with-1-dep': '>100.0.0'
|
||||
lockfileVersion: ${LOCKFILE_VERSION}
|
||||
packages:
|
||||
<<<<<<< HEAD
|
||||
/@pnpm.e2e/dep-of-pkg-with-1-dep/100.0.0:
|
||||
/@pnpm.e2e/dep-of-pkg-with-1-dep@100.0.0:
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: ${getIntegrity('@pnpm.e2e/dep-of-pkg-with-1-dep', '100.0.0')}
|
||||
=======
|
||||
/@pnpm.e2e/dep-of-pkg-with-1-dep/100.1.0:
|
||||
/@pnpm.e2e/dep-of-pkg-with-1-dep@100.1.0:
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: ${getIntegrity('@pnpm.e2e/dep-of-pkg-with-1-dep', '100.1.0')}
|
||||
@@ -1212,7 +1237,7 @@ packages:
|
||||
}, await testDefaults())
|
||||
|
||||
const lockfile = await project.readLockfile()
|
||||
expect(lockfile.dependencies['@pnpm.e2e/dep-of-pkg-with-1-dep']).toBe('100.1.0')
|
||||
expect(lockfile.dependencies['@pnpm.e2e/dep-of-pkg-with-1-dep'].version).toBe('100.1.0')
|
||||
})
|
||||
|
||||
test('a lockfile with duplicate keys is fixed', async () => {
|
||||
@@ -1222,12 +1247,12 @@ test('a lockfile with duplicate keys is fixed', async () => {
|
||||
importers:
|
||||
.:
|
||||
dependencies:
|
||||
'@pnpm.e2e/dep-of-pkg-with-1-dep': 100.0.0
|
||||
specifiers:
|
||||
'@pnpm.e2e/dep-of-pkg-with-1-dep': '100.0.0'
|
||||
'@pnpm.e2e/dep-of-pkg-with-1-dep':
|
||||
specifier: '100.0.0'
|
||||
version: 100.0.0
|
||||
lockfileVersion: ${LOCKFILE_VERSION}
|
||||
packages:
|
||||
/@pnpm.e2e/dep-of-pkg-with-1-dep/100.0.0:
|
||||
/@pnpm.e2e/dep-of-pkg-with-1-dep@100.0.0:
|
||||
resolution: {integrity: ${getIntegrity('@pnpm.e2e/dep-of-pkg-with-1-dep', '100.0.0')}}
|
||||
dev: false
|
||||
resolution: {integrity: ${getIntegrity('@pnpm.e2e/dep-of-pkg-with-1-dep', '100.0.0')}}
|
||||
@@ -1241,7 +1266,7 @@ packages:
|
||||
}, await testDefaults({ reporter }))
|
||||
|
||||
const lockfile = await project.readLockfile()
|
||||
expect(lockfile.dependencies['@pnpm.e2e/dep-of-pkg-with-1-dep']).toBe('100.0.0')
|
||||
expect(lockfile.dependencies['@pnpm.e2e/dep-of-pkg-with-1-dep'].version).toBe('100.0.0')
|
||||
|
||||
expect(reporter).toBeCalledWith(expect.objectContaining({
|
||||
level: 'warn',
|
||||
@@ -1258,12 +1283,12 @@ test('a lockfile with duplicate keys is causes an exception, when frozenLockfile
|
||||
importers:
|
||||
.:
|
||||
dependencies:
|
||||
'@pnpm.e2e/dep-of-pkg-with-1-dep': 100.0.0
|
||||
specifiers:
|
||||
'@pnpm.e2e/dep-of-pkg-with-1-dep': '100.0.0'
|
||||
'@pnpm.e2e/dep-of-pkg-with-1-dep':
|
||||
specifier: '100.0.0'
|
||||
version: 100.0.0
|
||||
lockfileVersion: ${LOCKFILE_VERSION}
|
||||
packages:
|
||||
/@pnpm.e2e/dep-of-pkg-with-1-dep/100.0.0:
|
||||
/@pnpm.e2e/dep-of-pkg-with-1-dep@100.0.0:
|
||||
resolution: {integrity: ${getIntegrity('@pnpm.e2e/dep-of-pkg-with-1-dep', '100.0.0')}}
|
||||
dev: false
|
||||
resolution: {integrity: ${getIntegrity('@pnpm.e2e/dep-of-pkg-with-1-dep', '100.0.0')}}
|
||||
@@ -1296,7 +1321,7 @@ importers:
|
||||
'@pnpm.e2e/dep-of-pkg-with-1-dep': '100.0.0'
|
||||
lockfileVersion: ${LOCKFILE_VERSION}
|
||||
packages:
|
||||
/@pnpm.e2e/dep-of-pkg-with-1-dep/100.0.0:
|
||||
/@pnpm.e2e/dep-of-pkg-with-1-dep@100.0.0:
|
||||
resolution: {integrity: ${getIntegrity('@pnpm.e2e/dep-of-pkg-with-1-dep', '100.0.0')}}
|
||||
dev: false
|
||||
resolution: {integrity: ${getIntegrity('@pnpm.e2e/dep-of-pkg-with-1-dep', '100.0.0')}}
|
||||
@@ -1328,7 +1353,7 @@ test('build metadata is always ignored in versions and the lockfile is not flick
|
||||
'@monorepolint/cli@0.5.0-alpha.51',
|
||||
], await testDefaults({ lockfileOnly: true }))
|
||||
|
||||
const depPath = '/@monorepolint/core/0.5.0-alpha.51'
|
||||
const depPath = '/@monorepolint/core@0.5.0-alpha.51'
|
||||
const initialLockfile = await project.readLockfile()
|
||||
const initialPkgEntry = initialLockfile.packages[depPath]
|
||||
expect(initialPkgEntry?.resolution).toStrictEqual({
|
||||
@@ -1348,8 +1373,8 @@ test('a broken lockfile should not break the store', async () => {
|
||||
const manifest = await addDependenciesToPackage({}, ['is-positive@1.0.0'], { ...opts, lockfileOnly: true })
|
||||
|
||||
const lockfile: Lockfile = await readYamlFile(WANTED_LOCKFILE)
|
||||
lockfile.packages!['/is-positive/1.0.0'].name = 'bad-name'
|
||||
lockfile.packages!['/is-positive/1.0.0'].version = '1.0.0'
|
||||
lockfile.packages!['/is-positive@1.0.0'].name = 'bad-name'
|
||||
lockfile.packages!['/is-positive@1.0.0'].version = '1.0.0'
|
||||
|
||||
await writeYamlFile(WANTED_LOCKFILE, lockfile)
|
||||
|
||||
@@ -1359,8 +1384,8 @@ test('a broken lockfile should not break the store', async () => {
|
||||
rootDir: process.cwd(),
|
||||
}, await testDefaults({ lockfileOnly: true, storeDir: path.resolve('store2') }))
|
||||
|
||||
delete lockfile.packages!['/is-positive/1.0.0'].name
|
||||
delete lockfile.packages!['/is-positive/1.0.0'].version
|
||||
delete lockfile.packages!['/is-positive@1.0.0'].name
|
||||
delete lockfile.packages!['/is-positive@1.0.0'].version
|
||||
|
||||
await writeYamlFile(WANTED_LOCKFILE, lockfile)
|
||||
await rimraf(path.resolve('node_modules'))
|
||||
@@ -1379,7 +1404,7 @@ test('include tarball URL', async () => {
|
||||
await addDependenciesToPackage({}, ['@pnpm.e2e/pkg-with-1-dep@100.0.0'], opts)
|
||||
|
||||
const lockfile = await project.readLockfile()
|
||||
expect((lockfile.packages['/@pnpm.e2e/pkg-with-1-dep/100.0.0'].resolution as TarballResolution).tarball)
|
||||
expect((lockfile.packages['/@pnpm.e2e/pkg-with-1-dep@100.0.0'].resolution as TarballResolution).tarball)
|
||||
.toBe(`http://localhost:${REGISTRY_MOCK_PORT}/@pnpm.e2e/pkg-with-1-dep/-/pkg-with-1-dep-100.0.0.tgz`)
|
||||
})
|
||||
|
||||
@@ -1407,7 +1432,7 @@ test('lockfile v6', async () => {
|
||||
test('lockfile v5 is converted to lockfile v6', async () => {
|
||||
prepareEmpty()
|
||||
|
||||
const manifest = await addDependenciesToPackage({}, ['@pnpm.e2e/pkg-with-1-dep@100.0.0'], await testDefaults())
|
||||
const manifest = await addDependenciesToPackage({}, ['@pnpm.e2e/pkg-with-1-dep@100.0.0'], await testDefaults({ useLockfileV6: false }))
|
||||
|
||||
{
|
||||
const lockfile = await readYamlFile<any>(WANTED_LOCKFILE) // eslint-disable-line @typescript-eslint/no-explicit-any
|
||||
|
||||
@@ -20,5 +20,5 @@ test('copy does not fail on package that self-requires itself', async () => {
|
||||
expect(m).toBeTruthy() // requires-itself is available with packageImportMethod = copy
|
||||
|
||||
const lockfile = await project.readLockfile()
|
||||
expect(lockfile.packages['/@pnpm.e2e/requires-itself/1.0.0'].dependencies).toStrictEqual({ 'is-positive': '1.0.0' })
|
||||
expect(lockfile.packages['/@pnpm.e2e/requires-itself@1.0.0'].dependencies).toStrictEqual({ 'is-positive': '1.0.0' })
|
||||
})
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import path from 'path'
|
||||
import { LOCKFILE_VERSION, WANTED_LOCKFILE } from '@pnpm/constants'
|
||||
import { LOCKFILE_VERSION_V6 as LOCKFILE_VERSION, WANTED_LOCKFILE } from '@pnpm/constants'
|
||||
import {
|
||||
PackageManifestLog,
|
||||
RootLog,
|
||||
@@ -161,10 +161,10 @@ test('uninstall package with dependencies and do not touch other deps', async ()
|
||||
|
||||
const lockfile = await project.readLockfile()
|
||||
expect(lockfile.dependencies).toStrictEqual({
|
||||
'is-negative': '2.1.0',
|
||||
})
|
||||
expect(lockfile.specifiers).toStrictEqual({
|
||||
'is-negative': '2.1.0',
|
||||
'is-negative': {
|
||||
specifier: '2.1.0',
|
||||
version: '2.1.0',
|
||||
},
|
||||
})
|
||||
})
|
||||
|
||||
@@ -318,21 +318,19 @@ test('uninstalling a dependency from package that uses shared lockfile', async (
|
||||
|
||||
expect(lockfile).toStrictEqual({
|
||||
importers: {
|
||||
'project-1': {
|
||||
specifiers: {},
|
||||
},
|
||||
'project-1': {},
|
||||
'project-2': {
|
||||
dependencies: {
|
||||
'is-negative': '1.0.0',
|
||||
},
|
||||
specifiers: {
|
||||
'is-negative': '1.0.0',
|
||||
'is-negative': {
|
||||
specifier: '1.0.0',
|
||||
version: '1.0.0',
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
lockfileVersion: LOCKFILE_VERSION,
|
||||
packages: {
|
||||
'/is-negative/1.0.0': {
|
||||
'/is-negative@1.0.0': {
|
||||
dev: false,
|
||||
engines: {
|
||||
node: '>=0.10.0',
|
||||
|
||||
@@ -33,7 +33,8 @@ test('unlink 1 package that exists in package.json', async () => {
|
||||
}),
|
||||
])
|
||||
|
||||
const opts = await testDefaults({ fastUnpack: false, store: path.resolve('.store') })
|
||||
// TODO: unset useLockfileV6
|
||||
const opts = await testDefaults({ fastUnpack: false, store: path.resolve('.store'), useLockfileV6: false })
|
||||
|
||||
let manifest = await link(
|
||||
['is-subdir', 'is-positive'],
|
||||
@@ -96,7 +97,7 @@ test("don't update package when unlinking", async () => {
|
||||
test(`don't update package when unlinking. Initial link is done on a package w/o ${WANTED_LOCKFILE}`, async () => {
|
||||
const project = prepareEmpty()
|
||||
|
||||
const opts = await testDefaults({ dir: process.cwd() })
|
||||
const opts = await testDefaults({ dir: process.cwd(), resolutionMode: 'lowest-direct' })
|
||||
process.chdir('..')
|
||||
|
||||
await writeJsonFile('foo/package.json', {
|
||||
@@ -122,7 +123,7 @@ test(`don't update package when unlinking. Initial link is done on a package w/o
|
||||
rootDir: process.cwd(),
|
||||
}, opts)
|
||||
|
||||
expect(project.requireModule('@pnpm.e2e/foo/package.json').version).toBe('100.1.0')
|
||||
expect(project.requireModule('@pnpm.e2e/foo/package.json').version).toBe('100.0.0')
|
||||
expect(unlinkResult.manifest.dependencies).toStrictEqual({ '@pnpm.e2e/foo': '^100.0.0' })
|
||||
})
|
||||
|
||||
|
||||
@@ -51,6 +51,9 @@
|
||||
{
|
||||
"path": "../../lockfile/lockfile-to-pnp"
|
||||
},
|
||||
{
|
||||
"path": "../../lockfile/lockfile-types"
|
||||
},
|
||||
{
|
||||
"path": "../../lockfile/lockfile-utils"
|
||||
},
|
||||
|
||||
42
pkg-manager/headless/test/fixtures/deps-have-lifecycle-scripts/pnpm-lock.yaml
generated
vendored
42
pkg-manager/headless/test/fixtures/deps-have-lifecycle-scripts/pnpm-lock.yaml
generated
vendored
@@ -1,32 +1,32 @@
|
||||
lockfileVersion: 5.4
|
||||
|
||||
specifiers:
|
||||
'@pnpm.e2e/pre-and-postinstall-scripts-example': '*'
|
||||
json-append: 1.1.1
|
||||
lockfileVersion: '6.0'
|
||||
|
||||
dependencies:
|
||||
'@pnpm.e2e/pre-and-postinstall-scripts-example': 1.0.0
|
||||
json-append: 1.1.1
|
||||
'@pnpm.e2e/pre-and-postinstall-scripts-example':
|
||||
specifier: '*'
|
||||
version: 1.0.0
|
||||
json-append:
|
||||
specifier: 1.1.1
|
||||
version: 1.1.1
|
||||
|
||||
packages:
|
||||
|
||||
/@pnpm.e2e/hello-world-js-bin/1.0.0:
|
||||
/@pnpm.e2e/hello-world-js-bin@1.0.0:
|
||||
resolution: {integrity: sha512-3f6ugQfqFW9GR36OSeTfsSNlup7hIslT23haX3dvT/e5GyU3iInat3+0GI+MqvRcwcNzsBrTJq7yDWp3wk7O/Q==}
|
||||
hasBin: true
|
||||
dev: false
|
||||
|
||||
/@pnpm.e2e/pre-and-postinstall-scripts-example/1.0.0:
|
||||
/@pnpm.e2e/pre-and-postinstall-scripts-example@1.0.0:
|
||||
resolution: {integrity: sha512-p2L5hqNZFiWX/4tQiuawjhh4xVy2QObs21HzZa6DdGZfWlgzdKiMN5MLuwh5ehI0GxuNWSrq0+/T+DEEr7kWVw==}
|
||||
requiresBuild: true
|
||||
dependencies:
|
||||
'@pnpm.e2e/hello-world-js-bin': 1.0.0
|
||||
dev: false
|
||||
|
||||
/buffer-from/1.1.2:
|
||||
/buffer-from@1.1.2:
|
||||
resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==}
|
||||
dev: false
|
||||
|
||||
/concat-stream/1.6.2:
|
||||
/concat-stream@1.6.2:
|
||||
resolution: {integrity: sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==}
|
||||
engines: {'0': node >= 0.8}
|
||||
dependencies:
|
||||
@@ -36,30 +36,30 @@ packages:
|
||||
typedarray: 0.0.6
|
||||
dev: false
|
||||
|
||||
/core-util-is/1.0.3:
|
||||
/core-util-is@1.0.3:
|
||||
resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==}
|
||||
dev: false
|
||||
|
||||
/inherits/2.0.4:
|
||||
/inherits@2.0.4:
|
||||
resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
|
||||
dev: false
|
||||
|
||||
/isarray/1.0.0:
|
||||
/isarray@1.0.0:
|
||||
resolution: {integrity: sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=}
|
||||
dev: false
|
||||
|
||||
/json-append/1.1.1:
|
||||
/json-append@1.1.1:
|
||||
resolution: {integrity: sha1-Pnu6YqBHvzHJjexDGaU5uyhrsQQ=}
|
||||
hasBin: true
|
||||
dependencies:
|
||||
concat-stream: 1.6.2
|
||||
dev: false
|
||||
|
||||
/process-nextick-args/2.0.1:
|
||||
/process-nextick-args@2.0.1:
|
||||
resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==}
|
||||
dev: false
|
||||
|
||||
/readable-stream/2.3.7:
|
||||
/readable-stream@2.3.7:
|
||||
resolution: {integrity: sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==}
|
||||
dependencies:
|
||||
core-util-is: 1.0.3
|
||||
@@ -71,20 +71,20 @@ packages:
|
||||
util-deprecate: 1.0.2
|
||||
dev: false
|
||||
|
||||
/safe-buffer/5.1.2:
|
||||
/safe-buffer@5.1.2:
|
||||
resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==}
|
||||
dev: false
|
||||
|
||||
/string_decoder/1.1.1:
|
||||
/string_decoder@1.1.1:
|
||||
resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==}
|
||||
dependencies:
|
||||
safe-buffer: 5.1.2
|
||||
dev: false
|
||||
|
||||
/typedarray/0.0.6:
|
||||
/typedarray@0.0.6:
|
||||
resolution: {integrity: sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=}
|
||||
dev: false
|
||||
|
||||
/util-deprecate/1.0.2:
|
||||
/util-deprecate@1.0.2:
|
||||
resolution: {integrity: sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=}
|
||||
dev: false
|
||||
|
||||
38
pkg-manager/headless/test/fixtures/has-glob-and-rimraf/pnpm-lock.yaml
generated
vendored
38
pkg-manager/headless/test/fixtures/has-glob-and-rimraf/pnpm-lock.yaml
generated
vendored
@@ -1,35 +1,35 @@
|
||||
lockfileVersion: 5.4
|
||||
|
||||
specifiers:
|
||||
glob: ^7.0.5
|
||||
rimraf: ^2.6.2
|
||||
lockfileVersion: '6.0'
|
||||
|
||||
dependencies:
|
||||
glob: 7.2.0
|
||||
rimraf: 2.7.1
|
||||
glob:
|
||||
specifier: ^7.0.5
|
||||
version: 7.2.0
|
||||
rimraf:
|
||||
specifier: ^2.6.2
|
||||
version: 2.7.1
|
||||
|
||||
packages:
|
||||
|
||||
/balanced-match/1.0.2:
|
||||
/balanced-match@1.0.2:
|
||||
resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
|
||||
dev: false
|
||||
|
||||
/brace-expansion/1.1.11:
|
||||
/brace-expansion@1.1.11:
|
||||
resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
|
||||
dependencies:
|
||||
balanced-match: 1.0.2
|
||||
concat-map: 0.0.1
|
||||
dev: false
|
||||
|
||||
/concat-map/0.0.1:
|
||||
/concat-map@0.0.1:
|
||||
resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=}
|
||||
dev: false
|
||||
|
||||
/fs.realpath/1.0.0:
|
||||
/fs.realpath@1.0.0:
|
||||
resolution: {integrity: sha1-FQStJSMVjKpA20onh8sBQRmU6k8=}
|
||||
dev: false
|
||||
|
||||
/glob/7.2.0:
|
||||
/glob@7.2.0:
|
||||
resolution: {integrity: sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==}
|
||||
dependencies:
|
||||
fs.realpath: 1.0.0
|
||||
@@ -40,41 +40,41 @@ packages:
|
||||
path-is-absolute: 1.0.1
|
||||
dev: false
|
||||
|
||||
/inflight/1.0.6:
|
||||
/inflight@1.0.6:
|
||||
resolution: {integrity: sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=}
|
||||
dependencies:
|
||||
once: 1.4.0
|
||||
wrappy: 1.0.2
|
||||
dev: false
|
||||
|
||||
/inherits/2.0.4:
|
||||
/inherits@2.0.4:
|
||||
resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
|
||||
dev: false
|
||||
|
||||
/minimatch/3.1.2:
|
||||
/minimatch@3.1.2:
|
||||
resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
|
||||
dependencies:
|
||||
brace-expansion: 1.1.11
|
||||
dev: false
|
||||
|
||||
/once/1.4.0:
|
||||
/once@1.4.0:
|
||||
resolution: {integrity: sha1-WDsap3WWHUsROsF9nFC6753Xa9E=}
|
||||
dependencies:
|
||||
wrappy: 1.0.2
|
||||
dev: false
|
||||
|
||||
/path-is-absolute/1.0.1:
|
||||
/path-is-absolute@1.0.1:
|
||||
resolution: {integrity: sha1-F0uSaHNVNP+8es5r9TpanhtcX18=}
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: false
|
||||
|
||||
/rimraf/2.7.1:
|
||||
/rimraf@2.7.1:
|
||||
resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==}
|
||||
hasBin: true
|
||||
dependencies:
|
||||
glob: 7.2.0
|
||||
dev: false
|
||||
|
||||
/wrappy/1.0.2:
|
||||
/wrappy@1.0.2:
|
||||
resolution: {integrity: sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=}
|
||||
dev: false
|
||||
|
||||
31
pkg-manager/headless/test/fixtures/has-glob/pnpm-lock.yaml
generated
vendored
31
pkg-manager/headless/test/fixtures/has-glob/pnpm-lock.yaml
generated
vendored
@@ -1,33 +1,32 @@
|
||||
lockfileVersion: 5.4
|
||||
|
||||
specifiers:
|
||||
glob: ^7.0.5
|
||||
lockfileVersion: '6.0'
|
||||
|
||||
dependencies:
|
||||
glob: 7.2.0
|
||||
glob:
|
||||
specifier: ^7.0.5
|
||||
version: 7.2.0
|
||||
|
||||
packages:
|
||||
|
||||
/balanced-match/1.0.2:
|
||||
/balanced-match@1.0.2:
|
||||
resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
|
||||
dev: false
|
||||
|
||||
/brace-expansion/1.1.11:
|
||||
/brace-expansion@1.1.11:
|
||||
resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
|
||||
dependencies:
|
||||
balanced-match: 1.0.2
|
||||
concat-map: 0.0.1
|
||||
dev: false
|
||||
|
||||
/concat-map/0.0.1:
|
||||
/concat-map@0.0.1:
|
||||
resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=}
|
||||
dev: false
|
||||
|
||||
/fs.realpath/1.0.0:
|
||||
/fs.realpath@1.0.0:
|
||||
resolution: {integrity: sha1-FQStJSMVjKpA20onh8sBQRmU6k8=}
|
||||
dev: false
|
||||
|
||||
/glob/7.2.0:
|
||||
/glob@7.2.0:
|
||||
resolution: {integrity: sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==}
|
||||
dependencies:
|
||||
fs.realpath: 1.0.0
|
||||
@@ -38,34 +37,34 @@ packages:
|
||||
path-is-absolute: 1.0.1
|
||||
dev: false
|
||||
|
||||
/inflight/1.0.6:
|
||||
/inflight@1.0.6:
|
||||
resolution: {integrity: sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=}
|
||||
dependencies:
|
||||
once: 1.4.0
|
||||
wrappy: 1.0.2
|
||||
dev: false
|
||||
|
||||
/inherits/2.0.4:
|
||||
/inherits@2.0.4:
|
||||
resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
|
||||
dev: false
|
||||
|
||||
/minimatch/3.1.2:
|
||||
/minimatch@3.1.2:
|
||||
resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
|
||||
dependencies:
|
||||
brace-expansion: 1.1.11
|
||||
dev: false
|
||||
|
||||
/once/1.4.0:
|
||||
/once@1.4.0:
|
||||
resolution: {integrity: sha1-WDsap3WWHUsROsF9nFC6753Xa9E=}
|
||||
dependencies:
|
||||
wrappy: 1.0.2
|
||||
dev: false
|
||||
|
||||
/path-is-absolute/1.0.1:
|
||||
/path-is-absolute@1.0.1:
|
||||
resolution: {integrity: sha1-F0uSaHNVNP+8es5r9TpanhtcX18=}
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: false
|
||||
|
||||
/wrappy/1.0.2:
|
||||
/wrappy@1.0.2:
|
||||
resolution: {integrity: sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=}
|
||||
dev: false
|
||||
|
||||
15
pkg-manager/headless/test/fixtures/has-incompatible-optional-subdep/pnpm-lock.yaml
generated
vendored
15
pkg-manager/headless/test/fixtures/has-incompatible-optional-subdep/pnpm-lock.yaml
generated
vendored
@@ -1,19 +1,18 @@
|
||||
lockfileVersion: 5.4
|
||||
|
||||
specifiers:
|
||||
'@pnpm.e2e/pkg-with-optional': 1.0.0
|
||||
lockfileVersion: '6.0'
|
||||
|
||||
dependencies:
|
||||
'@pnpm.e2e/pkg-with-optional': 1.0.0
|
||||
'@pnpm.e2e/pkg-with-optional':
|
||||
specifier: 1.0.0
|
||||
version: 1.0.0
|
||||
|
||||
packages:
|
||||
|
||||
/@pnpm.e2e/dep-of-optional-pkg/1.0.0:
|
||||
/@pnpm.e2e/dep-of-optional-pkg@1.0.0:
|
||||
resolution: {integrity: sha512-ouCWx8q98JzIJ/Ef2Ny6uvHYWxe+T2irzTBhntx/31Jd+1QxbGVETO8yJXrDZyuD3rBGaZULj78gIcwa068fAA==}
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/@pnpm.e2e/not-compatible-with-any-os/1.0.0:
|
||||
/@pnpm.e2e/not-compatible-with-any-os@1.0.0:
|
||||
resolution: {integrity: sha512-8sAm2PvHtibzjUYOXrmvmHXhthl7mD582GNDjhQ7CrQblo084OiAjNGaLka4vXXWF93LVaJ91btIRCECJPFLXw==}
|
||||
os: [this-os-does-not-exist]
|
||||
requiresBuild: true
|
||||
@@ -22,7 +21,7 @@ packages:
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/@pnpm.e2e/pkg-with-optional/1.0.0:
|
||||
/@pnpm.e2e/pkg-with-optional@1.0.0:
|
||||
resolution: {integrity: sha512-Er5ld8foGmtV7tEzjy8NPYoA9MkUfAe7iU4dx/5wpPYhX32+SUqML8iG2RmjqrVdCDFzRepG3zSP6RcCTVaMPQ==}
|
||||
optionalDependencies:
|
||||
'@pnpm.e2e/not-compatible-with-any-os': 1.0.0
|
||||
|
||||
9
pkg-manager/headless/test/fixtures/has-local-dep/pkg/pnpm-lock.yaml
generated
vendored
9
pkg-manager/headless/test/fixtures/has-local-dep/pkg/pnpm-lock.yaml
generated
vendored
@@ -1,10 +1,9 @@
|
||||
lockfileVersion: 5.4
|
||||
|
||||
specifiers:
|
||||
tar-pkg: file:../tar-pkg-1.0.0.tgz
|
||||
lockfileVersion: '6.0'
|
||||
|
||||
dependencies:
|
||||
tar-pkg: file:../tar-pkg-1.0.0.tgz
|
||||
tar-pkg:
|
||||
specifier: file:../tar-pkg-1.0.0.tgz
|
||||
version: file:../tar-pkg-1.0.0.tgz
|
||||
|
||||
packages:
|
||||
|
||||
|
||||
9
pkg-manager/headless/test/fixtures/has-local-dir-dep/pnpm-lock.yaml
generated
vendored
9
pkg-manager/headless/test/fixtures/has-local-dir-dep/pnpm-lock.yaml
generated
vendored
@@ -1,7 +1,6 @@
|
||||
lockfileVersion: 5.4
|
||||
|
||||
specifiers:
|
||||
example: link:example
|
||||
lockfileVersion: '6.0'
|
||||
|
||||
dependencies:
|
||||
example: link:example
|
||||
example:
|
||||
specifier: link:example
|
||||
version: link:example
|
||||
|
||||
54
pkg-manager/headless/test/fixtures/has-nonexistent-optional-dep/pnpm-lock.yaml
generated
vendored
54
pkg-manager/headless/test/fixtures/has-nonexistent-optional-dep/pnpm-lock.yaml
generated
vendored
@@ -1,49 +1,51 @@
|
||||
lockfileVersion: 5.4
|
||||
|
||||
specifiers:
|
||||
'@zkochan/not-exists': 1.2.0
|
||||
is-negative: ^2.1.0
|
||||
is-positive: ^1.0.0
|
||||
rimraf: ^2.6.2
|
||||
lockfileVersion: '6.0'
|
||||
|
||||
dependencies:
|
||||
is-positive: 1.0.0
|
||||
rimraf: 2.7.1
|
||||
is-positive:
|
||||
specifier: ^1.0.0
|
||||
version: 1.0.0
|
||||
rimraf:
|
||||
specifier: ^2.6.2
|
||||
version: 2.7.1
|
||||
|
||||
optionalDependencies:
|
||||
'@zkochan/not-exists': 1.2.0
|
||||
'@zkochan/not-exists':
|
||||
specifier: 1.2.0
|
||||
version: 1.2.0
|
||||
|
||||
devDependencies:
|
||||
is-negative: 2.1.0
|
||||
is-negative:
|
||||
specifier: ^2.1.0
|
||||
version: 2.1.0
|
||||
|
||||
packages:
|
||||
|
||||
/@zkochan/not-exists/1.2.0:
|
||||
/@zkochan/not-exists@1.2.0:
|
||||
resolution: {integrity: sha512-lweugcX5nailCqZBttArTojZZpHGWhmFJX78KJHlxwhM8tLAy5QCgRgRxrubrksdvA+2Y3inWG5TToyyjL82BQ==}
|
||||
engines: {node: '>=0.1.90'}
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/balanced-match/1.0.0:
|
||||
/balanced-match@1.0.0:
|
||||
resolution: {integrity: sha1-ibTRmasr7kneFk6gK4nORi1xt2c=}
|
||||
dev: false
|
||||
|
||||
/brace-expansion/1.1.11:
|
||||
/brace-expansion@1.1.11:
|
||||
resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
|
||||
dependencies:
|
||||
balanced-match: 1.0.0
|
||||
concat-map: 0.0.1
|
||||
dev: false
|
||||
|
||||
/concat-map/0.0.1:
|
||||
/concat-map@0.0.1:
|
||||
resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=}
|
||||
dev: false
|
||||
|
||||
/fs.realpath/1.0.0:
|
||||
/fs.realpath@1.0.0:
|
||||
resolution: {integrity: sha1-FQStJSMVjKpA20onh8sBQRmU6k8=}
|
||||
dev: false
|
||||
|
||||
/glob/7.1.6:
|
||||
/glob@7.1.6:
|
||||
resolution: {integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==}
|
||||
dependencies:
|
||||
fs.realpath: 1.0.0
|
||||
@@ -54,51 +56,51 @@ packages:
|
||||
path-is-absolute: 1.0.1
|
||||
dev: false
|
||||
|
||||
/inflight/1.0.6:
|
||||
/inflight@1.0.6:
|
||||
resolution: {integrity: sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=}
|
||||
dependencies:
|
||||
once: 1.4.0
|
||||
wrappy: 1.0.2
|
||||
dev: false
|
||||
|
||||
/inherits/2.0.4:
|
||||
/inherits@2.0.4:
|
||||
resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
|
||||
dev: false
|
||||
|
||||
/is-negative/2.1.0:
|
||||
/is-negative@2.1.0:
|
||||
resolution: {integrity: sha1-8Nhjd6oVpkw0lh84rCqb4rQKEYc=}
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: true
|
||||
|
||||
/is-positive/1.0.0:
|
||||
/is-positive@1.0.0:
|
||||
resolution: {integrity: sha1-iACYVrZKLx632LsBeUGEJK4EUss=}
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: false
|
||||
|
||||
/minimatch/3.0.4:
|
||||
/minimatch@3.0.4:
|
||||
resolution: {integrity: sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==}
|
||||
dependencies:
|
||||
brace-expansion: 1.1.11
|
||||
dev: false
|
||||
|
||||
/once/1.4.0:
|
||||
/once@1.4.0:
|
||||
resolution: {integrity: sha1-WDsap3WWHUsROsF9nFC6753Xa9E=}
|
||||
dependencies:
|
||||
wrappy: 1.0.2
|
||||
dev: false
|
||||
|
||||
/path-is-absolute/1.0.1:
|
||||
/path-is-absolute@1.0.1:
|
||||
resolution: {integrity: sha1-F0uSaHNVNP+8es5r9TpanhtcX18=}
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: false
|
||||
|
||||
/rimraf/2.7.1:
|
||||
/rimraf@2.7.1:
|
||||
resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==}
|
||||
hasBin: true
|
||||
dependencies:
|
||||
glob: 7.1.6
|
||||
dev: false
|
||||
|
||||
/wrappy/1.0.2:
|
||||
/wrappy@1.0.2:
|
||||
resolution: {integrity: sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=}
|
||||
dev: false
|
||||
|
||||
61
pkg-manager/headless/test/fixtures/has-several-versions-of-same-pkg/pnpm-lock.yaml
generated
vendored
61
pkg-manager/headless/test/fixtures/has-several-versions-of-same-pkg/pnpm-lock.yaml
generated
vendored
@@ -1,18 +1,19 @@
|
||||
lockfileVersion: 5.4
|
||||
|
||||
specifiers:
|
||||
has-flag: 1.0.0
|
||||
ms: 1.0.0
|
||||
send: 0.17.2
|
||||
lockfileVersion: '6.0'
|
||||
|
||||
dependencies:
|
||||
has-flag: 1.0.0
|
||||
ms: 1.0.0
|
||||
send: 0.17.2
|
||||
has-flag:
|
||||
specifier: 1.0.0
|
||||
version: 1.0.0
|
||||
ms:
|
||||
specifier: 1.0.0
|
||||
version: 1.0.0
|
||||
send:
|
||||
specifier: 0.17.2
|
||||
version: 0.17.2
|
||||
|
||||
packages:
|
||||
|
||||
/debug/2.6.9:
|
||||
/debug@2.6.9:
|
||||
resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==}
|
||||
peerDependencies:
|
||||
supports-color: '*'
|
||||
@@ -23,44 +24,44 @@ packages:
|
||||
ms: 2.0.0
|
||||
dev: false
|
||||
|
||||
/depd/1.1.2:
|
||||
/depd@1.1.2:
|
||||
resolution: {integrity: sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=}
|
||||
engines: {node: '>= 0.6'}
|
||||
dev: false
|
||||
|
||||
/destroy/1.0.4:
|
||||
/destroy@1.0.4:
|
||||
resolution: {integrity: sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=}
|
||||
dev: false
|
||||
|
||||
/ee-first/1.1.1:
|
||||
/ee-first@1.1.1:
|
||||
resolution: {integrity: sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=}
|
||||
dev: false
|
||||
|
||||
/encodeurl/1.0.2:
|
||||
/encodeurl@1.0.2:
|
||||
resolution: {integrity: sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=}
|
||||
engines: {node: '>= 0.8'}
|
||||
dev: false
|
||||
|
||||
/escape-html/1.0.3:
|
||||
/escape-html@1.0.3:
|
||||
resolution: {integrity: sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=}
|
||||
dev: false
|
||||
|
||||
/etag/1.8.1:
|
||||
/etag@1.8.1:
|
||||
resolution: {integrity: sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=}
|
||||
engines: {node: '>= 0.6'}
|
||||
dev: false
|
||||
|
||||
/fresh/0.5.2:
|
||||
/fresh@0.5.2:
|
||||
resolution: {integrity: sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=}
|
||||
engines: {node: '>= 0.6'}
|
||||
dev: false
|
||||
|
||||
/has-flag/1.0.0:
|
||||
/has-flag@1.0.0:
|
||||
resolution: {integrity: sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=}
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: false
|
||||
|
||||
/http-errors/1.8.1:
|
||||
/http-errors@1.8.1:
|
||||
resolution: {integrity: sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==}
|
||||
engines: {node: '>= 0.6'}
|
||||
dependencies:
|
||||
@@ -71,41 +72,41 @@ packages:
|
||||
toidentifier: 1.0.1
|
||||
dev: false
|
||||
|
||||
/inherits/2.0.4:
|
||||
/inherits@2.0.4:
|
||||
resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
|
||||
dev: false
|
||||
|
||||
/mime/1.6.0:
|
||||
/mime@1.6.0:
|
||||
resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==}
|
||||
engines: {node: '>=4'}
|
||||
hasBin: true
|
||||
dev: false
|
||||
|
||||
/ms/1.0.0:
|
||||
/ms@1.0.0:
|
||||
resolution: {integrity: sha1-Wa3NIu3FQ/e1OBhi0xOHsfS8lHM=}
|
||||
dev: false
|
||||
|
||||
/ms/2.0.0:
|
||||
/ms@2.0.0:
|
||||
resolution: {integrity: sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=}
|
||||
dev: false
|
||||
|
||||
/ms/2.1.3:
|
||||
/ms@2.1.3:
|
||||
resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
|
||||
dev: false
|
||||
|
||||
/on-finished/2.3.0:
|
||||
/on-finished@2.3.0:
|
||||
resolution: {integrity: sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=}
|
||||
engines: {node: '>= 0.8'}
|
||||
dependencies:
|
||||
ee-first: 1.1.1
|
||||
dev: false
|
||||
|
||||
/range-parser/1.2.1:
|
||||
/range-parser@1.2.1:
|
||||
resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==}
|
||||
engines: {node: '>= 0.6'}
|
||||
dev: false
|
||||
|
||||
/send/0.17.2:
|
||||
/send@0.17.2:
|
||||
resolution: {integrity: sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==}
|
||||
engines: {node: '>= 0.8.0'}
|
||||
dependencies:
|
||||
@@ -126,16 +127,16 @@ packages:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/setprototypeof/1.2.0:
|
||||
/setprototypeof@1.2.0:
|
||||
resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==}
|
||||
dev: false
|
||||
|
||||
/statuses/1.5.0:
|
||||
/statuses@1.5.0:
|
||||
resolution: {integrity: sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=}
|
||||
engines: {node: '>= 0.6'}
|
||||
dev: false
|
||||
|
||||
/toidentifier/1.0.1:
|
||||
/toidentifier@1.0.1:
|
||||
resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==}
|
||||
engines: {node: '>=0.6'}
|
||||
dev: false
|
||||
|
||||
134
pkg-manager/headless/test/fixtures/ignore-package-manifest/pnpm-lock.yaml
generated
vendored
134
pkg-manager/headless/test/fixtures/ignore-package-manifest/pnpm-lock.yaml
generated
vendored
@@ -1,39 +1,53 @@
|
||||
lockfileVersion: '6.0'
|
||||
|
||||
dependencies:
|
||||
is-positive: 1.0.0
|
||||
rimraf: 2.7.1
|
||||
devDependencies:
|
||||
is-negative: 2.1.0
|
||||
lockfileVersion: 5.1
|
||||
is-positive:
|
||||
specifier: ^1.0.0
|
||||
version: 1.0.0
|
||||
rimraf:
|
||||
specifier: ^2.6.2
|
||||
version: 2.7.1
|
||||
|
||||
optionalDependencies:
|
||||
colors: 1.2.0
|
||||
colors:
|
||||
specifier: 1.2.0
|
||||
version: 1.2.0
|
||||
|
||||
devDependencies:
|
||||
is-negative:
|
||||
specifier: ^2.1.0
|
||||
version: 2.1.0
|
||||
|
||||
packages:
|
||||
/balanced-match/1.0.0:
|
||||
|
||||
/balanced-match@1.0.0:
|
||||
resolution: {integrity: sha1-ibTRmasr7kneFk6gK4nORi1xt2c=}
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha1-ibTRmasr7kneFk6gK4nORi1xt2c=
|
||||
/brace-expansion/1.1.11:
|
||||
|
||||
/brace-expansion@1.1.11:
|
||||
resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
|
||||
dependencies:
|
||||
balanced-match: 1.0.0
|
||||
concat-map: 0.0.1
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
|
||||
/colors/1.2.0:
|
||||
|
||||
/colors@1.2.0:
|
||||
resolution: {integrity: sha512-lweugcX5nailCqZBttArTojZZpHGWhmFJX78KJHlxwhM8tLAy5QCgRgRxrubrksdvA+2Y3inWG5TToyyjL82BQ==}
|
||||
engines: {node: '>=0.1.90'}
|
||||
requiresBuild: true
|
||||
dev: false
|
||||
engines:
|
||||
node: '>=0.1.90'
|
||||
optional: true
|
||||
resolution:
|
||||
integrity: sha512-lweugcX5nailCqZBttArTojZZpHGWhmFJX78KJHlxwhM8tLAy5QCgRgRxrubrksdvA+2Y3inWG5TToyyjL82BQ==
|
||||
/concat-map/0.0.1:
|
||||
|
||||
/concat-map@0.0.1:
|
||||
resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=}
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
|
||||
/fs.realpath/1.0.0:
|
||||
|
||||
/fs.realpath@1.0.0:
|
||||
resolution: {integrity: sha1-FQStJSMVjKpA20onh8sBQRmU6k8=}
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
|
||||
/glob/7.1.6:
|
||||
|
||||
/glob@7.1.6:
|
||||
resolution: {integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==}
|
||||
dependencies:
|
||||
fs.realpath: 1.0.0
|
||||
inflight: 1.0.6
|
||||
@@ -42,62 +56,52 @@ packages:
|
||||
once: 1.4.0
|
||||
path-is-absolute: 1.0.1
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==
|
||||
/inflight/1.0.6:
|
||||
|
||||
/inflight@1.0.6:
|
||||
resolution: {integrity: sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=}
|
||||
dependencies:
|
||||
once: 1.4.0
|
||||
wrappy: 1.0.2
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=
|
||||
/inherits/2.0.4:
|
||||
|
||||
/inherits@2.0.4:
|
||||
resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
|
||||
/is-negative/2.1.0:
|
||||
|
||||
/is-negative@2.1.0:
|
||||
resolution: {integrity: sha1-8Nhjd6oVpkw0lh84rCqb4rQKEYc=}
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: true
|
||||
engines:
|
||||
node: '>=0.10.0'
|
||||
resolution:
|
||||
integrity: sha1-8Nhjd6oVpkw0lh84rCqb4rQKEYc=
|
||||
/is-positive/1.0.0:
|
||||
|
||||
/is-positive@1.0.0:
|
||||
resolution: {integrity: sha1-iACYVrZKLx632LsBeUGEJK4EUss=}
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: false
|
||||
engines:
|
||||
node: '>=0.10.0'
|
||||
resolution:
|
||||
integrity: sha1-iACYVrZKLx632LsBeUGEJK4EUss=
|
||||
/minimatch/3.0.4:
|
||||
|
||||
/minimatch@3.0.4:
|
||||
resolution: {integrity: sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==}
|
||||
dependencies:
|
||||
brace-expansion: 1.1.11
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==
|
||||
/once/1.4.0:
|
||||
|
||||
/once@1.4.0:
|
||||
resolution: {integrity: sha1-WDsap3WWHUsROsF9nFC6753Xa9E=}
|
||||
dependencies:
|
||||
wrappy: 1.0.2
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
|
||||
/path-is-absolute/1.0.1:
|
||||
|
||||
/path-is-absolute@1.0.1:
|
||||
resolution: {integrity: sha1-F0uSaHNVNP+8es5r9TpanhtcX18=}
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: false
|
||||
engines:
|
||||
node: '>=0.10.0'
|
||||
resolution:
|
||||
integrity: sha1-F0uSaHNVNP+8es5r9TpanhtcX18=
|
||||
/rimraf/2.7.1:
|
||||
|
||||
/rimraf@2.7.1:
|
||||
resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==}
|
||||
hasBin: true
|
||||
dependencies:
|
||||
glob: 7.1.6
|
||||
dev: false
|
||||
hasBin: true
|
||||
resolution:
|
||||
integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==
|
||||
/wrappy/1.0.2:
|
||||
|
||||
/wrappy@1.0.2:
|
||||
resolution: {integrity: sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=}
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
|
||||
specifiers:
|
||||
colors: 1.2.0
|
||||
is-negative: ^2.1.0
|
||||
is-positive: ^1.0.0
|
||||
rimraf: ^2.6.2
|
||||
|
||||
27
pkg-manager/headless/test/fixtures/prod-dep-is-dev-subdep/pnpm-lock.yaml
generated
vendored
27
pkg-manager/headless/test/fixtures/prod-dep-is-dev-subdep/pnpm-lock.yaml
generated
vendored
@@ -1,35 +1,36 @@
|
||||
lockfileVersion: 5.4
|
||||
|
||||
specifiers:
|
||||
inflight: 1.0.6
|
||||
is-positive: 1.0.0
|
||||
once: ^1.4.0
|
||||
lockfileVersion: '6.0'
|
||||
|
||||
dependencies:
|
||||
is-positive: 1.0.0
|
||||
once: 1.4.0
|
||||
is-positive:
|
||||
specifier: 1.0.0
|
||||
version: 1.0.0
|
||||
once:
|
||||
specifier: ^1.4.0
|
||||
version: 1.4.0
|
||||
|
||||
devDependencies:
|
||||
inflight: 1.0.6
|
||||
inflight:
|
||||
specifier: 1.0.6
|
||||
version: 1.0.6
|
||||
|
||||
packages:
|
||||
|
||||
/inflight/1.0.6:
|
||||
/inflight@1.0.6:
|
||||
resolution: {integrity: sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=}
|
||||
dependencies:
|
||||
once: 1.4.0
|
||||
wrappy: 1.0.2
|
||||
dev: true
|
||||
|
||||
/is-positive/1.0.0:
|
||||
/is-positive@1.0.0:
|
||||
resolution: {integrity: sha1-iACYVrZKLx632LsBeUGEJK4EUss=}
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: false
|
||||
|
||||
/once/1.4.0:
|
||||
/once@1.4.0:
|
||||
resolution: {integrity: sha1-WDsap3WWHUsROsF9nFC6753Xa9E=}
|
||||
dependencies:
|
||||
wrappy: 1.0.2
|
||||
|
||||
/wrappy/1.0.2:
|
||||
/wrappy@1.0.2:
|
||||
resolution: {integrity: sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=}
|
||||
|
||||
18
pkg-manager/headless/test/fixtures/reinstall-peer-deps/pnpm-lock.yaml
generated
vendored
18
pkg-manager/headless/test/fixtures/reinstall-peer-deps/pnpm-lock.yaml
generated
vendored
@@ -1,13 +1,13 @@
|
||||
lockfileVersion: 5.4
|
||||
lockfileVersion: '6.0'
|
||||
|
||||
specifiers:
|
||||
'@pnpm.e2e/abc': 1.0.0
|
||||
devDependencies:
|
||||
'@pnpm.e2e/abc': 1.0.0_glqo5zmflraj4jc2fza4v4hjou
|
||||
'@pnpm.e2e/abc':
|
||||
specifier: 1.0.0
|
||||
version: 1.0.0(@pnpm.e2e/peer-a@1.0.1)(@pnpm.e2e/peer-b@1.0.0)(@pnpm.e2e/peer-c@1.0.1)
|
||||
|
||||
packages:
|
||||
|
||||
/@pnpm.e2e/abc/1.0.0_glqo5zmflraj4jc2fza4v4hjou:
|
||||
/@pnpm.e2e/abc@1.0.0(@pnpm.e2e/peer-a@1.0.1)(@pnpm.e2e/peer-b@1.0.0)(@pnpm.e2e/peer-c@1.0.1):
|
||||
resolution: {integrity: sha512-/BCMmCRQ58DLWtF5iU97Lbf0s+llpWHvvZvQfFnCYFBpa1pfYnlJW1k6+Z4UzcUdYrUvyDmYPwxGVvPStAUw1w==}
|
||||
peerDependencies:
|
||||
'@pnpm.e2e/peer-a': ^1.0.0
|
||||
@@ -20,18 +20,18 @@ packages:
|
||||
'@pnpm.e2e/peer-c': 1.0.1
|
||||
dev: true
|
||||
|
||||
/@pnpm.e2e/dep-of-pkg-with-1-dep/100.0.0:
|
||||
/@pnpm.e2e/dep-of-pkg-with-1-dep@100.0.0:
|
||||
resolution: {integrity: sha512-KUmwlEiE3pzpmPCfrLkoOO7fmL4Tft+dcm6YQlUfOUJvHO73xlcKVoA/xOHP/ayUO8GiPlIqWRbKHrsxvXGE8g==}
|
||||
dev: true
|
||||
|
||||
/@pnpm.e2e/peer-a/1.0.1:
|
||||
/@pnpm.e2e/peer-a@1.0.1:
|
||||
resolution: {integrity: sha512-eKxesosmflSp5xnW1gyRhMZ75RLI7SupTZNe1SK6EPDDgNmswNxbwdpyUDFUDWa3yHd5WSQbRDH2IysqMWIs2g==}
|
||||
dev: true
|
||||
|
||||
/@pnpm.e2e/peer-b/1.0.0:
|
||||
/@pnpm.e2e/peer-b@1.0.0:
|
||||
resolution: {integrity: sha512-jvRKPPRU2qx/AxfcpyO/aSX8TQclpXUXOnUbSLxgBi+P4+InCRkK2u+jFQbcc+b8rIFzR0jr7YCIYLIjRDPPcw==}
|
||||
dev: true
|
||||
|
||||
/@pnpm.e2e/peer-c/1.0.1:
|
||||
/@pnpm.e2e/peer-c@1.0.1:
|
||||
resolution: {integrity: sha512-6ag+AQOLJgsioiG8aInnOJGautKz7lNf3zKQ8FJHOb4b3yIclmUofTaDwth9ydp9W56qzwbHWXjkdrqfW5JViQ==}
|
||||
dev: true
|
||||
|
||||
1
pkg-manager/headless/test/fixtures/resolved-peer-deps-in-subdeps/.npmrc
vendored
Normal file
1
pkg-manager/headless/test/fixtures/resolved-peer-deps-in-subdeps/.npmrc
vendored
Normal file
@@ -0,0 +1 @@
|
||||
auto-install-peers=false
|
||||
121
pkg-manager/headless/test/fixtures/resolved-peer-deps-in-subdeps/pnpm-lock.yaml
generated
vendored
121
pkg-manager/headless/test/fixtures/resolved-peer-deps-in-subdeps/pnpm-lock.yaml
generated
vendored
@@ -1,14 +1,13 @@
|
||||
lockfileVersion: 5.4
|
||||
|
||||
specifiers:
|
||||
pnpm-default-reporter: 0.14.7
|
||||
lockfileVersion: '6.0'
|
||||
|
||||
dependencies:
|
||||
pnpm-default-reporter: 0.14.7
|
||||
pnpm-default-reporter:
|
||||
specifier: 0.14.7
|
||||
version: 0.14.7
|
||||
|
||||
packages:
|
||||
|
||||
/@most/multicast/1.3.0_most@1.9.0:
|
||||
/@most/multicast@1.3.0(most@1.9.0):
|
||||
resolution: {integrity: sha512-DWH8AShgp5bXn+auGzf5tzPxvpmEvQJd0CNsApOci1LDF4eAEcnw4HQOr2Jaa+L92NbDYFKBSXxll+i7r1ikvw==}
|
||||
peerDependencies:
|
||||
most: ^1.0.1
|
||||
@@ -17,57 +16,57 @@ packages:
|
||||
most: 1.9.0
|
||||
dev: false
|
||||
|
||||
/@most/prelude/1.8.0:
|
||||
/@most/prelude@1.8.0:
|
||||
resolution: {integrity: sha512-t1CcURpZzfmBA6fEWwqmCqeNzWAj1w2WqEmCk/2yXMe/p8Ut000wFmVKMy8A1Rl9VVxZEZ5nBHd/pU0dR4bv/w==}
|
||||
dev: false
|
||||
|
||||
/@types/common-tags/1.8.1:
|
||||
/@types/common-tags@1.8.1:
|
||||
resolution: {integrity: sha512-20R/mDpKSPWdJs5TOpz3e7zqbeCNuMCPhV7Yndk9KU2Rbij2r5W4RzwDPkzC+2lzUqXYu9rFzTktCBnDjHuNQg==}
|
||||
dev: false
|
||||
|
||||
/@types/node/9.6.61:
|
||||
/@types/node@9.6.61:
|
||||
resolution: {integrity: sha512-/aKAdg5c8n468cYLy2eQrcR5k6chlbNwZNGUj3TboyPa2hcO2QAJcfymlqPzMiRj8B6nYKXjzQz36minFE0RwQ==}
|
||||
dev: false
|
||||
|
||||
/@types/ramda/0.25.51:
|
||||
/@types/ramda@0.25.51:
|
||||
resolution: {integrity: sha512-xcmtfHIgF9SYjhGdsZR1nQslxG4hu0cIpFfLQ4CWdw3KzHvl7ki1AzFLQUkbDTG42ZN3ZsQfdRzXRlkAvbIy5Q==}
|
||||
dev: false
|
||||
|
||||
/@types/semver/5.5.0:
|
||||
/@types/semver@5.5.0:
|
||||
resolution: {integrity: sha512-41qEJgBH/TWgo5NFSvBCJ1qkoi3Q6ONSF2avrHq1LVEZfYpdHmj0y9SuTK+u9ZhG1sYQKBL1AWXKyLWP4RaUoQ==}
|
||||
dev: false
|
||||
|
||||
/ansi-diff/1.1.1:
|
||||
/ansi-diff@1.1.1:
|
||||
resolution: {integrity: sha512-XnTdFDQzbEewrDx8epWXdw7oqHMvv315vEtfqDiEhhWghIf4++h26c3/FMz7iTLhNrnj56DNIXpbxHZq+3s6qw==}
|
||||
dependencies:
|
||||
ansi-split: 1.0.1
|
||||
dev: false
|
||||
|
||||
/ansi-regex/3.0.0:
|
||||
/ansi-regex@3.0.0:
|
||||
resolution: {integrity: sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=}
|
||||
engines: {node: '>=4'}
|
||||
dev: false
|
||||
|
||||
/ansi-split/1.0.1:
|
||||
/ansi-split@1.0.1:
|
||||
resolution: {integrity: sha512-RRxQym4DFtDNmHIkW6aeFVvrXURb11lGAEPXNiryjCe8bK8RsANjzJ0M2aGOkvBYwP4Bl/xZ8ijtr6D3j1x/eg==}
|
||||
dependencies:
|
||||
ansi-regex: 3.0.0
|
||||
dev: false
|
||||
|
||||
/ansi-styles/3.2.1:
|
||||
/ansi-styles@3.2.1:
|
||||
resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==}
|
||||
engines: {node: '>=4'}
|
||||
dependencies:
|
||||
color-convert: 1.9.3
|
||||
dev: false
|
||||
|
||||
/as-table/1.0.55:
|
||||
/as-table@1.0.55:
|
||||
resolution: {integrity: sha512-xvsWESUJn0JN421Xb9MQw6AsMHRCUknCe0Wjlxvjud80mU4E6hQf1A6NzQKcYNmYw62MfzEtXc+badstZP3JpQ==}
|
||||
dependencies:
|
||||
printable-characters: 1.0.42
|
||||
dev: false
|
||||
|
||||
/chalk/2.4.2:
|
||||
/chalk@2.4.2:
|
||||
resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==}
|
||||
engines: {node: '>=4'}
|
||||
dependencies:
|
||||
@@ -76,89 +75,89 @@ packages:
|
||||
supports-color: 5.5.0
|
||||
dev: false
|
||||
|
||||
/cli-cursor/2.1.0:
|
||||
/cli-cursor@2.1.0:
|
||||
resolution: {integrity: sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=}
|
||||
engines: {node: '>=4'}
|
||||
dependencies:
|
||||
restore-cursor: 2.0.0
|
||||
dev: false
|
||||
|
||||
/color-convert/1.9.3:
|
||||
/color-convert@1.9.3:
|
||||
resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==}
|
||||
dependencies:
|
||||
color-name: 1.1.3
|
||||
dev: false
|
||||
|
||||
/color-name/1.1.3:
|
||||
/color-name@1.1.3:
|
||||
resolution: {integrity: sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=}
|
||||
dev: false
|
||||
|
||||
/common-tags/1.8.2:
|
||||
/common-tags@1.8.2:
|
||||
resolution: {integrity: sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==}
|
||||
engines: {node: '>=4.0.0'}
|
||||
dev: false
|
||||
|
||||
/core-util-is/1.0.3:
|
||||
/core-util-is@1.0.3:
|
||||
resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==}
|
||||
dev: false
|
||||
|
||||
/data-uri-to-buffer/2.0.2:
|
||||
/data-uri-to-buffer@2.0.2:
|
||||
resolution: {integrity: sha512-ND9qDTLc6diwj+Xe5cdAgVTbLVdXbtxTJRXRhli8Mowuaan+0EJOtdqJ0QCHNSSPyoXGx9HX2/VMnKeC34AChA==}
|
||||
dev: false
|
||||
|
||||
/define-properties/1.1.3:
|
||||
/define-properties@1.1.3:
|
||||
resolution: {integrity: sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==}
|
||||
engines: {node: '>= 0.4'}
|
||||
dependencies:
|
||||
object-keys: 1.1.1
|
||||
dev: false
|
||||
|
||||
/escape-string-regexp/1.0.5:
|
||||
/escape-string-regexp@1.0.5:
|
||||
resolution: {integrity: sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=}
|
||||
engines: {node: '>=0.8.0'}
|
||||
dev: false
|
||||
|
||||
/get-source/1.0.42:
|
||||
/get-source@1.0.42:
|
||||
resolution: {integrity: sha512-uM5xCIG5w2meVbiZaID4ajH6J8OfApqhlKXtZwsS/IIM9PLb0b2kc5sRdy78yEDfxsIYEWNk0OVxai6OpDCExA==}
|
||||
dependencies:
|
||||
data-uri-to-buffer: 2.0.2
|
||||
source-map: 0.6.1
|
||||
dev: false
|
||||
|
||||
/globalthis/1.0.2:
|
||||
/globalthis@1.0.2:
|
||||
resolution: {integrity: sha512-ZQnSFO1la8P7auIOQECnm0sSuoMeaSq0EEdXMBFF2QJO4uNcwbyhSgG3MruWNbFTqCLmxVwGOl7LZ9kASvHdeQ==}
|
||||
engines: {node: '>= 0.4'}
|
||||
dependencies:
|
||||
define-properties: 1.1.3
|
||||
dev: false
|
||||
|
||||
/has-flag/3.0.0:
|
||||
/has-flag@3.0.0:
|
||||
resolution: {integrity: sha1-tdRU3CGZriJWmfNGfloH87lVuv0=}
|
||||
engines: {node: '>=4'}
|
||||
dev: false
|
||||
|
||||
/inherits/2.0.4:
|
||||
/inherits@2.0.4:
|
||||
resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
|
||||
dev: false
|
||||
|
||||
/isarray/1.0.0:
|
||||
/isarray@1.0.0:
|
||||
resolution: {integrity: sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=}
|
||||
dev: false
|
||||
|
||||
/json-stringify-safe/5.0.1:
|
||||
/json-stringify-safe@5.0.1:
|
||||
resolution: {integrity: sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=}
|
||||
dev: false
|
||||
|
||||
/mimic-fn/1.2.0:
|
||||
/mimic-fn@1.2.0:
|
||||
resolution: {integrity: sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==}
|
||||
engines: {node: '>=4'}
|
||||
dev: false
|
||||
|
||||
/minimist/1.2.5:
|
||||
/minimist@1.2.5:
|
||||
resolution: {integrity: sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==}
|
||||
dev: false
|
||||
|
||||
/most-last/1.0.1_most@1.9.0:
|
||||
/most-last@1.0.1(most@1.9.0):
|
||||
resolution: {integrity: sha512-ycc+leSrXoGRjxhsZJW/l+Sk0CXj9e/z6EP5ebZ8A+zDWGRq1v/oeNkyQF4TG95LnT5Q0ysG+5piJYSR86k58A==}
|
||||
peerDependencies:
|
||||
most: ^1.0.3
|
||||
@@ -166,16 +165,16 @@ packages:
|
||||
most: 1.9.0
|
||||
dev: false
|
||||
|
||||
/most/1.9.0:
|
||||
/most@1.9.0:
|
||||
resolution: {integrity: sha512-M7yHMcMGaclzEL6eg8Yh8PlAsaWfL/oSThF4+ZuWKM5CKXcbzmLh+qESwgZFzMKHJ+iVJwb28yFvDEOobI653w==}
|
||||
dependencies:
|
||||
'@most/multicast': 1.3.0_most@1.9.0
|
||||
'@most/multicast': 1.3.0(most@1.9.0)
|
||||
'@most/prelude': 1.8.0
|
||||
globalthis: 1.0.2
|
||||
symbol-observable: 2.0.3
|
||||
dev: false
|
||||
|
||||
/ndjson/1.5.0:
|
||||
/ndjson@1.5.0:
|
||||
resolution: {integrity: sha1-rmA7NrE0vOw0e0UkIrC/mNWDLsg=}
|
||||
hasBin: true
|
||||
dependencies:
|
||||
@@ -185,19 +184,19 @@ packages:
|
||||
through2: 2.0.5
|
||||
dev: false
|
||||
|
||||
/object-keys/1.1.1:
|
||||
/object-keys@1.1.1:
|
||||
resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==}
|
||||
engines: {node: '>= 0.4'}
|
||||
dev: false
|
||||
|
||||
/onetime/2.0.1:
|
||||
/onetime@2.0.1:
|
||||
resolution: {integrity: sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=}
|
||||
engines: {node: '>=4'}
|
||||
dependencies:
|
||||
mimic-fn: 1.2.0
|
||||
dev: false
|
||||
|
||||
/pnpm-default-reporter/0.14.7:
|
||||
/pnpm-default-reporter@0.14.7:
|
||||
resolution: {integrity: sha512-uHBIrBDxS/K82cGaxSQnhMYPJyYI4mX/28voWxqtFwIqhR0Gjf73EGN1wUc3lD38HdQDkCrSk5HBwp5N21AONw==}
|
||||
engines: {node: '>=4'}
|
||||
hasBin: true
|
||||
@@ -213,7 +212,7 @@ packages:
|
||||
cli-cursor: 2.1.0
|
||||
common-tags: 1.8.2
|
||||
most: 1.9.0
|
||||
most-last: 1.0.1_most@1.9.0
|
||||
most-last: 1.0.1(most@1.9.0)
|
||||
ndjson: 1.5.0
|
||||
pretty-bytes: 4.0.2
|
||||
ramda: 0.25.0
|
||||
@@ -222,24 +221,24 @@ packages:
|
||||
zen-push: 0.2.1
|
||||
dev: false
|
||||
|
||||
/pretty-bytes/4.0.2:
|
||||
/pretty-bytes@4.0.2:
|
||||
resolution: {integrity: sha1-sr+C5zUNZcbDOqlaqlpPYyf2HNk=}
|
||||
engines: {node: '>=4'}
|
||||
dev: false
|
||||
|
||||
/printable-characters/1.0.42:
|
||||
/printable-characters@1.0.42:
|
||||
resolution: {integrity: sha1-Pxjpd6m9jrN/zE/1ZZ176Qhos9g=}
|
||||
dev: false
|
||||
|
||||
/process-nextick-args/2.0.1:
|
||||
/process-nextick-args@2.0.1:
|
||||
resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==}
|
||||
dev: false
|
||||
|
||||
/ramda/0.25.0:
|
||||
/ramda@0.25.0:
|
||||
resolution: {integrity: sha512-GXpfrYVPwx3K7RQ6aYT8KPS8XViSXUVJT1ONhoKPE9VAleW42YE+U+8VEyGWt41EnEQW7gwecYJriTI0pKoecQ==}
|
||||
dev: false
|
||||
|
||||
/readable-stream/2.3.7:
|
||||
/readable-stream@2.3.7:
|
||||
resolution: {integrity: sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==}
|
||||
dependencies:
|
||||
core-util-is: 1.0.3
|
||||
@@ -251,7 +250,7 @@ packages:
|
||||
util-deprecate: 1.0.2
|
||||
dev: false
|
||||
|
||||
/restore-cursor/2.0.0:
|
||||
/restore-cursor@2.0.0:
|
||||
resolution: {integrity: sha1-n37ih/gv0ybU/RYpI9YhKe7g368=}
|
||||
engines: {node: '>=4'}
|
||||
dependencies:
|
||||
@@ -259,76 +258,76 @@ packages:
|
||||
signal-exit: 3.0.7
|
||||
dev: false
|
||||
|
||||
/safe-buffer/5.1.2:
|
||||
/safe-buffer@5.1.2:
|
||||
resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==}
|
||||
dev: false
|
||||
|
||||
/semver/5.7.1:
|
||||
/semver@5.7.1:
|
||||
resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==}
|
||||
hasBin: true
|
||||
dev: false
|
||||
|
||||
/signal-exit/3.0.7:
|
||||
/signal-exit@3.0.7:
|
||||
resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==}
|
||||
dev: false
|
||||
|
||||
/source-map/0.6.1:
|
||||
/source-map@0.6.1:
|
||||
resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: false
|
||||
|
||||
/split2/2.2.0:
|
||||
/split2@2.2.0:
|
||||
resolution: {integrity: sha512-RAb22TG39LhI31MbreBgIuKiIKhVsawfTgEGqKHTK87aG+ul/PB8Sqoi3I7kVdRWiCfrKxK3uo4/YUkpNvhPbw==}
|
||||
dependencies:
|
||||
through2: 2.0.5
|
||||
dev: false
|
||||
|
||||
/stacktracey/1.2.127:
|
||||
/stacktracey@1.2.127:
|
||||
resolution: {integrity: sha512-tj3BObW/adLIAQGGQ0flRTADrCv6KQ4VgncUO8NrQ7pk/H6pGMtXxQLjZYw66eqPDTC1DHtnBwGSmG+Wx/D/kg==}
|
||||
dependencies:
|
||||
as-table: 1.0.55
|
||||
get-source: 1.0.42
|
||||
dev: false
|
||||
|
||||
/string_decoder/1.1.1:
|
||||
/string_decoder@1.1.1:
|
||||
resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==}
|
||||
dependencies:
|
||||
safe-buffer: 5.1.2
|
||||
dev: false
|
||||
|
||||
/supports-color/5.5.0:
|
||||
/supports-color@5.5.0:
|
||||
resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==}
|
||||
engines: {node: '>=4'}
|
||||
dependencies:
|
||||
has-flag: 3.0.0
|
||||
dev: false
|
||||
|
||||
/symbol-observable/2.0.3:
|
||||
/symbol-observable@2.0.3:
|
||||
resolution: {integrity: sha512-sQV7phh2WCYAn81oAkakC5qjq2Ml0g8ozqz03wOGnx9dDlG1de6yrF+0RAzSJD8fPUow3PTSMf2SAbOGxb93BA==}
|
||||
engines: {node: '>=0.10'}
|
||||
dev: false
|
||||
|
||||
/through2/2.0.5:
|
||||
/through2@2.0.5:
|
||||
resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==}
|
||||
dependencies:
|
||||
readable-stream: 2.3.7
|
||||
xtend: 4.0.2
|
||||
dev: false
|
||||
|
||||
/util-deprecate/1.0.2:
|
||||
/util-deprecate@1.0.2:
|
||||
resolution: {integrity: sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=}
|
||||
dev: false
|
||||
|
||||
/xtend/4.0.2:
|
||||
/xtend@4.0.2:
|
||||
resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==}
|
||||
engines: {node: '>=0.4'}
|
||||
dev: false
|
||||
|
||||
/zen-observable/0.7.1:
|
||||
/zen-observable@0.7.1:
|
||||
resolution: {integrity: sha512-OI6VMSe0yeqaouIXtedC+F55Sr6r9ppS7+wTbSexkYdHbdt4ctTuPNXP/rwm7GTVI63YBc+EBT0b0tl7YnJLRg==}
|
||||
dev: false
|
||||
|
||||
/zen-push/0.2.1:
|
||||
/zen-push@0.2.1:
|
||||
resolution: {integrity: sha512-Qv4qvc8ZIue51B/0zmeIMxpIGDVhz4GhJALBvnKs/FRa2T7jy4Ori9wFwaHVt0zWV7MIFglKAHbgnVxVTw7U1w==}
|
||||
dependencies:
|
||||
zen-observable: 0.7.1
|
||||
|
||||
21
pkg-manager/headless/test/fixtures/side-effects-of-subdep/pnpm-lock.yaml
generated
vendored
21
pkg-manager/headless/test/fixtures/side-effects-of-subdep/pnpm-lock.yaml
generated
vendored
@@ -1,14 +1,13 @@
|
||||
lockfileVersion: 5.4
|
||||
|
||||
specifiers:
|
||||
expire-fs: 2.2.3
|
||||
lockfileVersion: '6.0'
|
||||
|
||||
dependencies:
|
||||
expire-fs: 2.2.3
|
||||
expire-fs:
|
||||
specifier: 2.2.3
|
||||
version: 2.2.3
|
||||
|
||||
packages:
|
||||
|
||||
/debug/4.3.3:
|
||||
/debug@4.3.3:
|
||||
resolution: {integrity: sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==}
|
||||
engines: {node: '>=6.0'}
|
||||
peerDependencies:
|
||||
@@ -20,7 +19,7 @@ packages:
|
||||
ms: 2.1.2
|
||||
dev: false
|
||||
|
||||
/diskusage/1.1.3:
|
||||
/diskusage@1.1.3:
|
||||
resolution: {integrity: sha512-EAyaxl8hy4Ph07kzlzGTfpbZMNAAAHXSZtNEMwdlnSd1noHzvA6HsgKt4fEMSvaEXQYLSphe5rPMxN4WOj0hcQ==}
|
||||
requiresBuild: true
|
||||
dependencies:
|
||||
@@ -28,11 +27,11 @@ packages:
|
||||
nan: 2.15.0
|
||||
dev: false
|
||||
|
||||
/es6-promise/4.2.8:
|
||||
/es6-promise@4.2.8:
|
||||
resolution: {integrity: sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==}
|
||||
dev: false
|
||||
|
||||
/expire-fs/2.2.3:
|
||||
/expire-fs@2.2.3:
|
||||
resolution: {integrity: sha512-ofQ0zNXKProir7/dtNAJiOucthMhraUznLiPd2MpoFexVi21BfGj0owPO5wMleO5cmSVOPRPJf8+XZqLpix4Ew==}
|
||||
dependencies:
|
||||
debug: 4.3.3
|
||||
@@ -41,10 +40,10 @@ packages:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/ms/2.1.2:
|
||||
/ms@2.1.2:
|
||||
resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
|
||||
dev: false
|
||||
|
||||
/nan/2.15.0:
|
||||
/nan@2.15.0:
|
||||
resolution: {integrity: sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ==}
|
||||
dev: false
|
||||
|
||||
13
pkg-manager/headless/test/fixtures/side-effects/pnpm-lock.yaml
generated
vendored
13
pkg-manager/headless/test/fixtures/side-effects/pnpm-lock.yaml
generated
vendored
@@ -1,19 +1,18 @@
|
||||
lockfileVersion: 5.4
|
||||
|
||||
specifiers:
|
||||
'@pnpm.e2e/pre-and-postinstall-scripts-example': 1.0.0
|
||||
lockfileVersion: '6.0'
|
||||
|
||||
dependencies:
|
||||
'@pnpm.e2e/pre-and-postinstall-scripts-example': 1.0.0
|
||||
'@pnpm.e2e/pre-and-postinstall-scripts-example':
|
||||
specifier: 1.0.0
|
||||
version: 1.0.0
|
||||
|
||||
packages:
|
||||
|
||||
/@pnpm.e2e/hello-world-js-bin/1.0.0:
|
||||
/@pnpm.e2e/hello-world-js-bin@1.0.0:
|
||||
resolution: {integrity: sha512-3f6ugQfqFW9GR36OSeTfsSNlup7hIslT23haX3dvT/e5GyU3iInat3+0GI+MqvRcwcNzsBrTJq7yDWp3wk7O/Q==}
|
||||
hasBin: true
|
||||
dev: false
|
||||
|
||||
/@pnpm.e2e/pre-and-postinstall-scripts-example/1.0.0:
|
||||
/@pnpm.e2e/pre-and-postinstall-scripts-example@1.0.0:
|
||||
resolution: {integrity: sha512-p2L5hqNZFiWX/4tQiuawjhh4xVy2QObs21HzZa6DdGZfWlgzdKiMN5MLuwh5ehI0GxuNWSrq0+/T+DEEr7kWVw==}
|
||||
requiresBuild: true
|
||||
dependencies:
|
||||
|
||||
1
pkg-manager/headless/test/fixtures/simple-shamefully-flatten/.npmrc
vendored
Normal file
1
pkg-manager/headless/test/fixtures/simple-shamefully-flatten/.npmrc
vendored
Normal file
@@ -0,0 +1 @@
|
||||
auto-install-peers=false
|
||||
63
pkg-manager/headless/test/fixtures/simple-shamefully-flatten/pnpm-lock.yaml
generated
vendored
63
pkg-manager/headless/test/fixtures/simple-shamefully-flatten/pnpm-lock.yaml
generated
vendored
@@ -1,31 +1,34 @@
|
||||
lockfileVersion: 5.4
|
||||
|
||||
specifiers:
|
||||
'@pnpm.e2e/pkg-with-peer-having-bin': 1.0.0
|
||||
colors: 1.2.0
|
||||
is-negative: ^2.1.0
|
||||
is-positive: ^1.0.0
|
||||
rimraf: ^2.6.2
|
||||
lockfileVersion: '6.0'
|
||||
|
||||
dependencies:
|
||||
'@pnpm.e2e/pkg-with-peer-having-bin': 1.0.0
|
||||
is-positive: 1.0.0
|
||||
rimraf: 2.7.1
|
||||
'@pnpm.e2e/pkg-with-peer-having-bin':
|
||||
specifier: 1.0.0
|
||||
version: 1.0.0
|
||||
is-positive:
|
||||
specifier: ^1.0.0
|
||||
version: 1.0.0
|
||||
rimraf:
|
||||
specifier: ^2.6.2
|
||||
version: 2.7.1
|
||||
|
||||
optionalDependencies:
|
||||
colors: 1.2.0
|
||||
colors:
|
||||
specifier: 1.2.0
|
||||
version: 1.2.0
|
||||
|
||||
devDependencies:
|
||||
is-negative: 2.1.0
|
||||
is-negative:
|
||||
specifier: ^2.1.0
|
||||
version: 2.1.0
|
||||
|
||||
packages:
|
||||
|
||||
/@pnpm.e2e/hello-world-js-bin/1.0.0:
|
||||
/@pnpm.e2e/hello-world-js-bin@1.0.0:
|
||||
resolution: {integrity: sha512-3f6ugQfqFW9GR36OSeTfsSNlup7hIslT23haX3dvT/e5GyU3iInat3+0GI+MqvRcwcNzsBrTJq7yDWp3wk7O/Q==}
|
||||
hasBin: true
|
||||
dev: false
|
||||
|
||||
/@pnpm.e2e/pkg-with-peer-having-bin/1.0.0:
|
||||
/@pnpm.e2e/pkg-with-peer-having-bin@1.0.0:
|
||||
resolution: {integrity: sha512-bbL3oe5SBIz54k276vb4pR5T0ZrKZ2p2+OObfMMtkG43nCfwRBca3+WAqKjs9pIu2c4vUFhnU4rcqdbeuJkIbg==}
|
||||
peerDependencies:
|
||||
'@pnpm.e2e/peer-with-bin': ^1.0.0
|
||||
@@ -33,33 +36,33 @@ packages:
|
||||
'@pnpm.e2e/hello-world-js-bin': 1.0.0
|
||||
dev: false
|
||||
|
||||
/balanced-match/1.0.2:
|
||||
/balanced-match@1.0.2:
|
||||
resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
|
||||
dev: false
|
||||
|
||||
/brace-expansion/1.1.11:
|
||||
/brace-expansion@1.1.11:
|
||||
resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
|
||||
dependencies:
|
||||
balanced-match: 1.0.2
|
||||
concat-map: 0.0.1
|
||||
dev: false
|
||||
|
||||
/colors/1.2.0:
|
||||
/colors@1.2.0:
|
||||
resolution: {integrity: sha512-lweugcX5nailCqZBttArTojZZpHGWhmFJX78KJHlxwhM8tLAy5QCgRgRxrubrksdvA+2Y3inWG5TToyyjL82BQ==}
|
||||
engines: {node: '>=0.1.90'}
|
||||
requiresBuild: true
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/concat-map/0.0.1:
|
||||
/concat-map@0.0.1:
|
||||
resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=}
|
||||
dev: false
|
||||
|
||||
/fs.realpath/1.0.0:
|
||||
/fs.realpath@1.0.0:
|
||||
resolution: {integrity: sha1-FQStJSMVjKpA20onh8sBQRmU6k8=}
|
||||
dev: false
|
||||
|
||||
/glob/7.2.0:
|
||||
/glob@7.2.0:
|
||||
resolution: {integrity: sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==}
|
||||
dependencies:
|
||||
fs.realpath: 1.0.0
|
||||
@@ -70,51 +73,51 @@ packages:
|
||||
path-is-absolute: 1.0.1
|
||||
dev: false
|
||||
|
||||
/inflight/1.0.6:
|
||||
/inflight@1.0.6:
|
||||
resolution: {integrity: sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=}
|
||||
dependencies:
|
||||
once: 1.4.0
|
||||
wrappy: 1.0.2
|
||||
dev: false
|
||||
|
||||
/inherits/2.0.4:
|
||||
/inherits@2.0.4:
|
||||
resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
|
||||
dev: false
|
||||
|
||||
/is-negative/2.1.0:
|
||||
/is-negative@2.1.0:
|
||||
resolution: {integrity: sha1-8Nhjd6oVpkw0lh84rCqb4rQKEYc=}
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: true
|
||||
|
||||
/is-positive/1.0.0:
|
||||
/is-positive@1.0.0:
|
||||
resolution: {integrity: sha1-iACYVrZKLx632LsBeUGEJK4EUss=}
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: false
|
||||
|
||||
/minimatch/3.1.2:
|
||||
/minimatch@3.1.2:
|
||||
resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
|
||||
dependencies:
|
||||
brace-expansion: 1.1.11
|
||||
dev: false
|
||||
|
||||
/once/1.4.0:
|
||||
/once@1.4.0:
|
||||
resolution: {integrity: sha1-WDsap3WWHUsROsF9nFC6753Xa9E=}
|
||||
dependencies:
|
||||
wrappy: 1.0.2
|
||||
dev: false
|
||||
|
||||
/path-is-absolute/1.0.1:
|
||||
/path-is-absolute@1.0.1:
|
||||
resolution: {integrity: sha1-F0uSaHNVNP+8es5r9TpanhtcX18=}
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: false
|
||||
|
||||
/rimraf/2.7.1:
|
||||
/rimraf@2.7.1:
|
||||
resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==}
|
||||
hasBin: true
|
||||
dependencies:
|
||||
glob: 7.2.0
|
||||
dev: false
|
||||
|
||||
/wrappy/1.0.2:
|
||||
/wrappy@1.0.2:
|
||||
resolution: {integrity: sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=}
|
||||
dev: false
|
||||
|
||||
61
pkg-manager/headless/test/fixtures/simple-with-more-deps/pnpm-lock.yaml
generated
vendored
61
pkg-manager/headless/test/fixtures/simple-with-more-deps/pnpm-lock.yaml
generated
vendored
@@ -1,52 +1,55 @@
|
||||
lockfileVersion: 5.4
|
||||
|
||||
specifiers:
|
||||
colors: 1.2.0
|
||||
is-negative: ^2.1.0
|
||||
is-positive: ^1.0.0
|
||||
resolve-from: 4.0.0
|
||||
rimraf: ^2.6.2
|
||||
lockfileVersion: '6.0'
|
||||
|
||||
dependencies:
|
||||
is-positive: 1.0.0
|
||||
resolve-from: 4.0.0
|
||||
rimraf: 2.7.1
|
||||
is-positive:
|
||||
specifier: ^1.0.0
|
||||
version: 1.0.0
|
||||
resolve-from:
|
||||
specifier: 4.0.0
|
||||
version: 4.0.0
|
||||
rimraf:
|
||||
specifier: ^2.6.2
|
||||
version: 2.7.1
|
||||
|
||||
optionalDependencies:
|
||||
colors: 1.2.0
|
||||
colors:
|
||||
specifier: 1.2.0
|
||||
version: 1.2.0
|
||||
|
||||
devDependencies:
|
||||
is-negative: 2.1.0
|
||||
is-negative:
|
||||
specifier: ^2.1.0
|
||||
version: 2.1.0
|
||||
|
||||
packages:
|
||||
|
||||
/balanced-match/1.0.0:
|
||||
/balanced-match@1.0.0:
|
||||
resolution: {integrity: sha1-ibTRmasr7kneFk6gK4nORi1xt2c=}
|
||||
dev: false
|
||||
|
||||
/brace-expansion/1.1.11:
|
||||
/brace-expansion@1.1.11:
|
||||
resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
|
||||
dependencies:
|
||||
balanced-match: 1.0.0
|
||||
concat-map: 0.0.1
|
||||
dev: false
|
||||
|
||||
/colors/1.2.0:
|
||||
/colors@1.2.0:
|
||||
resolution: {integrity: sha512-lweugcX5nailCqZBttArTojZZpHGWhmFJX78KJHlxwhM8tLAy5QCgRgRxrubrksdvA+2Y3inWG5TToyyjL82BQ==}
|
||||
engines: {node: '>=0.1.90'}
|
||||
requiresBuild: true
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/concat-map/0.0.1:
|
||||
/concat-map@0.0.1:
|
||||
resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=}
|
||||
dev: false
|
||||
|
||||
/fs.realpath/1.0.0:
|
||||
/fs.realpath@1.0.0:
|
||||
resolution: {integrity: sha1-FQStJSMVjKpA20onh8sBQRmU6k8=}
|
||||
dev: false
|
||||
|
||||
/glob/7.1.6:
|
||||
/glob@7.1.6:
|
||||
resolution: {integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==}
|
||||
dependencies:
|
||||
fs.realpath: 1.0.0
|
||||
@@ -57,56 +60,56 @@ packages:
|
||||
path-is-absolute: 1.0.1
|
||||
dev: false
|
||||
|
||||
/inflight/1.0.6:
|
||||
/inflight@1.0.6:
|
||||
resolution: {integrity: sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=}
|
||||
dependencies:
|
||||
once: 1.4.0
|
||||
wrappy: 1.0.2
|
||||
dev: false
|
||||
|
||||
/inherits/2.0.4:
|
||||
/inherits@2.0.4:
|
||||
resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
|
||||
dev: false
|
||||
|
||||
/is-negative/2.1.0:
|
||||
/is-negative@2.1.0:
|
||||
resolution: {integrity: sha1-8Nhjd6oVpkw0lh84rCqb4rQKEYc=}
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: true
|
||||
|
||||
/is-positive/1.0.0:
|
||||
/is-positive@1.0.0:
|
||||
resolution: {integrity: sha1-iACYVrZKLx632LsBeUGEJK4EUss=}
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: false
|
||||
|
||||
/minimatch/3.0.4:
|
||||
/minimatch@3.0.4:
|
||||
resolution: {integrity: sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==}
|
||||
dependencies:
|
||||
brace-expansion: 1.1.11
|
||||
dev: false
|
||||
|
||||
/once/1.4.0:
|
||||
/once@1.4.0:
|
||||
resolution: {integrity: sha1-WDsap3WWHUsROsF9nFC6753Xa9E=}
|
||||
dependencies:
|
||||
wrappy: 1.0.2
|
||||
dev: false
|
||||
|
||||
/path-is-absolute/1.0.1:
|
||||
/path-is-absolute@1.0.1:
|
||||
resolution: {integrity: sha1-F0uSaHNVNP+8es5r9TpanhtcX18=}
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: false
|
||||
|
||||
/resolve-from/4.0.0:
|
||||
/resolve-from@4.0.0:
|
||||
resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
|
||||
engines: {node: '>=4'}
|
||||
dev: false
|
||||
|
||||
/rimraf/2.7.1:
|
||||
/rimraf@2.7.1:
|
||||
resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==}
|
||||
hasBin: true
|
||||
dependencies:
|
||||
glob: 7.1.6
|
||||
dev: false
|
||||
|
||||
/wrappy/1.0.2:
|
||||
/wrappy@1.0.2:
|
||||
resolution: {integrity: sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=}
|
||||
dev: false
|
||||
|
||||
20
pkg-manager/headless/test/fixtures/simple-with-optional-dep/pnpm-lock.yaml
generated
vendored
20
pkg-manager/headless/test/fixtures/simple-with-optional-dep/pnpm-lock.yaml
generated
vendored
@@ -1,22 +1,22 @@
|
||||
lockfileVersion: 5.4
|
||||
|
||||
specifiers:
|
||||
'@pnpm.e2e/pkg-with-good-optional': '*'
|
||||
is-positive: 1.0.0
|
||||
lockfileVersion: '6.0'
|
||||
|
||||
dependencies:
|
||||
'@pnpm.e2e/pkg-with-good-optional': 1.0.0
|
||||
'@pnpm.e2e/pkg-with-good-optional':
|
||||
specifier: '*'
|
||||
version: 1.0.0
|
||||
|
||||
optionalDependencies:
|
||||
is-positive: 1.0.0
|
||||
is-positive:
|
||||
specifier: 1.0.0
|
||||
version: 1.0.0
|
||||
|
||||
packages:
|
||||
|
||||
/@pnpm.e2e/dep-of-pkg-with-1-dep/101.0.0:
|
||||
/@pnpm.e2e/dep-of-pkg-with-1-dep@101.0.0:
|
||||
resolution: {integrity: sha512-v/FQPTv+Y6j/J5a7ymlifFIhJa28wROyiTfg1vcAVKdJ9S94E32CHVUbzgvdcu9pAkLqe7INiwJ2ynqmgiTiiw==}
|
||||
dev: false
|
||||
|
||||
/@pnpm.e2e/pkg-with-good-optional/1.0.0:
|
||||
/@pnpm.e2e/pkg-with-good-optional@1.0.0:
|
||||
resolution: {integrity: sha512-nHI1OeIwd3u8wEhHBIgbJmK6ryrums0YrxVB3RHkpbXXeI3YFsxiv0T0+MuQc7ajXT5/pwUvkyo2g2n37cWuRA==}
|
||||
dependencies:
|
||||
'@pnpm.e2e/dep-of-pkg-with-1-dep': 101.0.0
|
||||
@@ -24,7 +24,7 @@ packages:
|
||||
is-positive: 1.0.0
|
||||
dev: false
|
||||
|
||||
/is-positive/1.0.0:
|
||||
/is-positive@1.0.0:
|
||||
resolution: {integrity: sha512-xxzPGZ4P2uN6rROUa5N9Z7zTX6ERuE0hs6GUOc/cKBLF2NqKc16UwqHMt3tFg4CO6EBTE5UecUasg+3jZx3Ckg==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
requiresBuild: true
|
||||
|
||||
54
pkg-manager/headless/test/fixtures/simple/pnpm-lock.yaml
generated
vendored
54
pkg-manager/headless/test/fixtures/simple/pnpm-lock.yaml
generated
vendored
@@ -1,50 +1,52 @@
|
||||
lockfileVersion: 5.4
|
||||
|
||||
specifiers:
|
||||
colors: 1.2.0
|
||||
is-negative: ^2.1.0
|
||||
is-positive: ^1.0.0
|
||||
rimraf: ^2.6.2
|
||||
lockfileVersion: '6.0'
|
||||
|
||||
dependencies:
|
||||
is-positive: 1.0.0
|
||||
rimraf: 2.7.1
|
||||
is-positive:
|
||||
specifier: ^1.0.0
|
||||
version: 1.0.0
|
||||
rimraf:
|
||||
specifier: ^2.6.2
|
||||
version: 2.7.1
|
||||
|
||||
optionalDependencies:
|
||||
colors: 1.2.0
|
||||
colors:
|
||||
specifier: 1.2.0
|
||||
version: 1.2.0
|
||||
|
||||
devDependencies:
|
||||
is-negative: 2.1.0
|
||||
is-negative:
|
||||
specifier: ^2.1.0
|
||||
version: 2.1.0
|
||||
|
||||
packages:
|
||||
|
||||
/balanced-match/1.0.0:
|
||||
/balanced-match@1.0.0:
|
||||
resolution: {integrity: sha1-ibTRmasr7kneFk6gK4nORi1xt2c=}
|
||||
dev: false
|
||||
|
||||
/brace-expansion/1.1.11:
|
||||
/brace-expansion@1.1.11:
|
||||
resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
|
||||
dependencies:
|
||||
balanced-match: 1.0.0
|
||||
concat-map: 0.0.1
|
||||
dev: false
|
||||
|
||||
/colors/1.2.0:
|
||||
/colors@1.2.0:
|
||||
resolution: {integrity: sha512-lweugcX5nailCqZBttArTojZZpHGWhmFJX78KJHlxwhM8tLAy5QCgRgRxrubrksdvA+2Y3inWG5TToyyjL82BQ==}
|
||||
engines: {node: '>=0.1.90'}
|
||||
requiresBuild: true
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
/concat-map/0.0.1:
|
||||
/concat-map@0.0.1:
|
||||
resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=}
|
||||
dev: false
|
||||
|
||||
/fs.realpath/1.0.0:
|
||||
/fs.realpath@1.0.0:
|
||||
resolution: {integrity: sha1-FQStJSMVjKpA20onh8sBQRmU6k8=}
|
||||
dev: false
|
||||
|
||||
/glob/7.1.6:
|
||||
/glob@7.1.6:
|
||||
resolution: {integrity: sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==}
|
||||
dependencies:
|
||||
fs.realpath: 1.0.0
|
||||
@@ -55,51 +57,51 @@ packages:
|
||||
path-is-absolute: 1.0.1
|
||||
dev: false
|
||||
|
||||
/inflight/1.0.6:
|
||||
/inflight@1.0.6:
|
||||
resolution: {integrity: sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=}
|
||||
dependencies:
|
||||
once: 1.4.0
|
||||
wrappy: 1.0.2
|
||||
dev: false
|
||||
|
||||
/inherits/2.0.4:
|
||||
/inherits@2.0.4:
|
||||
resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
|
||||
dev: false
|
||||
|
||||
/is-negative/2.1.0:
|
||||
/is-negative@2.1.0:
|
||||
resolution: {integrity: sha1-8Nhjd6oVpkw0lh84rCqb4rQKEYc=}
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: true
|
||||
|
||||
/is-positive/1.0.0:
|
||||
/is-positive@1.0.0:
|
||||
resolution: {integrity: sha1-iACYVrZKLx632LsBeUGEJK4EUss=}
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: false
|
||||
|
||||
/minimatch/3.0.4:
|
||||
/minimatch@3.0.4:
|
||||
resolution: {integrity: sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==}
|
||||
dependencies:
|
||||
brace-expansion: 1.1.11
|
||||
dev: false
|
||||
|
||||
/once/1.4.0:
|
||||
/once@1.4.0:
|
||||
resolution: {integrity: sha1-WDsap3WWHUsROsF9nFC6753Xa9E=}
|
||||
dependencies:
|
||||
wrappy: 1.0.2
|
||||
dev: false
|
||||
|
||||
/path-is-absolute/1.0.1:
|
||||
/path-is-absolute@1.0.1:
|
||||
resolution: {integrity: sha1-F0uSaHNVNP+8es5r9TpanhtcX18=}
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: false
|
||||
|
||||
/rimraf/2.7.1:
|
||||
/rimraf@2.7.1:
|
||||
resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==}
|
||||
hasBin: true
|
||||
dependencies:
|
||||
glob: 7.1.6
|
||||
dev: false
|
||||
|
||||
/wrappy/1.0.2:
|
||||
/wrappy@1.0.2:
|
||||
resolution: {integrity: sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=}
|
||||
dev: false
|
||||
|
||||
31
pkg-manager/headless/test/fixtures/with-1-dep/pnpm-lock.yaml
generated
vendored
31
pkg-manager/headless/test/fixtures/with-1-dep/pnpm-lock.yaml
generated
vendored
@@ -1,29 +1,28 @@
|
||||
lockfileVersion: 5.4
|
||||
|
||||
specifiers:
|
||||
rimraf: 2.5.1
|
||||
lockfileVersion: '6.0'
|
||||
|
||||
dependencies:
|
||||
rimraf: 2.5.1
|
||||
rimraf:
|
||||
specifier: 2.5.1
|
||||
version: 2.5.1
|
||||
|
||||
packages:
|
||||
|
||||
/balanced-match/1.0.2:
|
||||
/balanced-match@1.0.2:
|
||||
resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
|
||||
dev: false
|
||||
|
||||
/brace-expansion/1.1.11:
|
||||
/brace-expansion@1.1.11:
|
||||
resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
|
||||
dependencies:
|
||||
balanced-match: 1.0.2
|
||||
concat-map: 0.0.1
|
||||
dev: false
|
||||
|
||||
/concat-map/0.0.1:
|
||||
/concat-map@0.0.1:
|
||||
resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=}
|
||||
dev: false
|
||||
|
||||
/glob/6.0.4:
|
||||
/glob@6.0.4:
|
||||
resolution: {integrity: sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=}
|
||||
dependencies:
|
||||
inflight: 1.0.6
|
||||
@@ -33,41 +32,41 @@ packages:
|
||||
path-is-absolute: 1.0.1
|
||||
dev: false
|
||||
|
||||
/inflight/1.0.6:
|
||||
/inflight@1.0.6:
|
||||
resolution: {integrity: sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=}
|
||||
dependencies:
|
||||
once: 1.4.0
|
||||
wrappy: 1.0.2
|
||||
dev: false
|
||||
|
||||
/inherits/2.0.4:
|
||||
/inherits@2.0.4:
|
||||
resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
|
||||
dev: false
|
||||
|
||||
/minimatch/3.1.2:
|
||||
/minimatch@3.1.2:
|
||||
resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
|
||||
dependencies:
|
||||
brace-expansion: 1.1.11
|
||||
dev: false
|
||||
|
||||
/once/1.4.0:
|
||||
/once@1.4.0:
|
||||
resolution: {integrity: sha1-WDsap3WWHUsROsF9nFC6753Xa9E=}
|
||||
dependencies:
|
||||
wrappy: 1.0.2
|
||||
dev: false
|
||||
|
||||
/path-is-absolute/1.0.1:
|
||||
/path-is-absolute@1.0.1:
|
||||
resolution: {integrity: sha1-F0uSaHNVNP+8es5r9TpanhtcX18=}
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: false
|
||||
|
||||
/rimraf/2.5.1:
|
||||
/rimraf@2.5.1:
|
||||
resolution: {integrity: sha1-UuHpRvP5ubDV2JiLoxkaryotvUM=}
|
||||
hasBin: true
|
||||
dependencies:
|
||||
glob: 6.0.4
|
||||
dev: false
|
||||
|
||||
/wrappy/1.0.2:
|
||||
/wrappy@1.0.2:
|
||||
resolution: {integrity: sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=}
|
||||
dev: false
|
||||
|
||||
29
pkg-manager/headless/test/fixtures/workspace/pnpm-lock.yaml
generated
vendored
29
pkg-manager/headless/test/fixtures/workspace/pnpm-lock.yaml
generated
vendored
@@ -1,25 +1,32 @@
|
||||
lockfileVersion: '6.0'
|
||||
|
||||
importers:
|
||||
|
||||
bar:
|
||||
dependencies:
|
||||
foo: 'link:../foo'
|
||||
is-positive: 1.0.0
|
||||
specifiers:
|
||||
foo: 1.0.0
|
||||
is-positive: 1.0.0
|
||||
foo:
|
||||
specifier: 1.0.0
|
||||
version: 'link:../foo'
|
||||
is-positive:
|
||||
specifier: 1.0.0
|
||||
version: 1.0.0
|
||||
|
||||
foo:
|
||||
dependencies:
|
||||
is-negative: 1.0.0
|
||||
specifiers:
|
||||
is-negative: 1.0.0
|
||||
lockfileVersion: 5
|
||||
is-negative:
|
||||
specifier: 1.0.0
|
||||
version: 1.0.0
|
||||
|
||||
packages:
|
||||
/is-negative/1.0.0:
|
||||
|
||||
/is-negative@1.0.0:
|
||||
dev: false
|
||||
engines:
|
||||
node: '>=0.10.0'
|
||||
resolution:
|
||||
integrity: sha1-clmHeoPIAKwxkd17nZ+80PdS1P4=
|
||||
/is-positive/1.0.0:
|
||||
|
||||
/is-positive@1.0.0:
|
||||
dev: false
|
||||
engines:
|
||||
node: '>=0.10.0'
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user