mirror of
https://github.com/pnpm/pnpm.git
synced 2026-05-24 16:46:06 -04:00
feat!: remove the dev field from the lockfile (#7808)
This commit is contained in:
5
.changeset/tricky-feet-heal.md
Normal file
5
.changeset/tricky-feet-heal.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@pnpm/lockfile.detect-dep-types": major
|
||||
---
|
||||
|
||||
Initial release.
|
||||
4
__fixtures__/circular/pnpm-lock.yaml
generated
4
__fixtures__/circular/pnpm-lock.yaml
generated
@@ -31,23 +31,19 @@ snapshots:
|
||||
d@1.0.0:
|
||||
dependencies:
|
||||
es5-ext: 0.10.24
|
||||
dev: false
|
||||
|
||||
es5-ext@0.10.24:
|
||||
dependencies:
|
||||
es6-iterator: 2.0.1
|
||||
es6-symbol: 3.1.1
|
||||
dev: false
|
||||
|
||||
es6-iterator@2.0.1:
|
||||
dependencies:
|
||||
d: 1.0.0
|
||||
es5-ext: 0.10.24
|
||||
es6-symbol: 3.1.1
|
||||
dev: false
|
||||
|
||||
es6-symbol@3.1.1:
|
||||
dependencies:
|
||||
d: 1.0.0
|
||||
es5-ext: 0.10.24
|
||||
dev: false
|
||||
|
||||
6
__fixtures__/custom-modules-dir/pnpm-lock.yaml
generated
6
__fixtures__/custom-modules-dir/pnpm-lock.yaml
generated
@@ -31,8 +31,6 @@ packages:
|
||||
|
||||
snapshots:
|
||||
|
||||
is-positive@1.0.0:
|
||||
dev: false
|
||||
is-positive@1.0.0: {}
|
||||
|
||||
is-positive@3.1.0:
|
||||
dev: false
|
||||
is-positive@3.1.0: {}
|
||||
|
||||
@@ -10,7 +10,10 @@ importers:
|
||||
|
||||
packages:
|
||||
|
||||
/is-positive@1.0.0:
|
||||
is-positive@1.0.0:
|
||||
resolution: {integrity: sha512-xxzPGZ4P2uN6rROUa5N9Z7zTX6ERuE0hs6GUOc/cKBLF2NqKc16UwqHMt3tFg4CO6EBTE5UecUasg+3jZx3Ckg==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: false
|
||||
|
||||
snapshots:
|
||||
|
||||
is-positive@1.0.0: {}
|
||||
|
||||
@@ -69,47 +69,36 @@ packages:
|
||||
|
||||
snapshots:
|
||||
|
||||
detect-indent@5.0.0:
|
||||
dev: false
|
||||
detect-indent@5.0.0: {}
|
||||
|
||||
graceful-fs@4.2.2:
|
||||
dev: false
|
||||
graceful-fs@4.2.2: {}
|
||||
|
||||
imurmurhash@0.1.4:
|
||||
dev: false
|
||||
imurmurhash@0.1.4: {}
|
||||
|
||||
is-negative@2.1.0:
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
is-plain-obj@1.1.0:
|
||||
dev: false
|
||||
is-plain-obj@1.1.0: {}
|
||||
|
||||
is-positive@3.1.0:
|
||||
dev: true
|
||||
is-positive@3.1.0: {}
|
||||
|
||||
make-dir@1.3.0:
|
||||
dependencies:
|
||||
pify: 3.0.0
|
||||
dev: false
|
||||
|
||||
pify@3.0.0:
|
||||
dev: false
|
||||
pify@3.0.0: {}
|
||||
|
||||
signal-exit@3.0.2:
|
||||
dev: false
|
||||
signal-exit@3.0.2: {}
|
||||
|
||||
sort-keys@2.0.0:
|
||||
dependencies:
|
||||
is-plain-obj: 1.1.0
|
||||
dev: false
|
||||
|
||||
write-file-atomic@2.4.3:
|
||||
dependencies:
|
||||
graceful-fs: 4.2.2
|
||||
imurmurhash: 0.1.4
|
||||
signal-exit: 3.0.2
|
||||
dev: false
|
||||
|
||||
write-json-file@2.3.0:
|
||||
dependencies:
|
||||
@@ -119,4 +108,3 @@ snapshots:
|
||||
pify: 3.0.0
|
||||
sort-keys: 2.0.0
|
||||
write-file-atomic: 2.4.3
|
||||
dev: false
|
||||
|
||||
@@ -69,47 +69,36 @@ packages:
|
||||
|
||||
snapshots:
|
||||
|
||||
detect-indent@5.0.0:
|
||||
dev: false
|
||||
detect-indent@5.0.0: {}
|
||||
|
||||
graceful-fs@4.2.2:
|
||||
dev: false
|
||||
graceful-fs@4.2.2: {}
|
||||
|
||||
imurmurhash@0.1.4:
|
||||
dev: false
|
||||
imurmurhash@0.1.4: {}
|
||||
|
||||
is-negative@2.1.0:
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
is-plain-obj@1.1.0:
|
||||
dev: false
|
||||
is-plain-obj@1.1.0: {}
|
||||
|
||||
is-positive@3.1.0:
|
||||
dev: true
|
||||
is-positive@3.1.0: {}
|
||||
|
||||
make-dir@1.3.0:
|
||||
dependencies:
|
||||
pify: 3.0.0
|
||||
dev: false
|
||||
|
||||
pify@3.0.0:
|
||||
dev: false
|
||||
pify@3.0.0: {}
|
||||
|
||||
signal-exit@3.0.2:
|
||||
dev: false
|
||||
signal-exit@3.0.2: {}
|
||||
|
||||
sort-keys@2.0.0:
|
||||
dependencies:
|
||||
is-plain-obj: 1.1.0
|
||||
dev: false
|
||||
|
||||
write-file-atomic@2.4.3:
|
||||
dependencies:
|
||||
graceful-fs: 4.2.2
|
||||
imurmurhash: 0.1.4
|
||||
signal-exit: 3.0.2
|
||||
dev: false
|
||||
|
||||
write-json-file@2.3.0:
|
||||
dependencies:
|
||||
@@ -119,4 +108,3 @@ snapshots:
|
||||
pify: 3.0.0
|
||||
sort-keys: 2.0.0
|
||||
write-file-atomic: 2.4.3
|
||||
dev: false
|
||||
|
||||
25
__fixtures__/general/pnpm-lock.yaml
generated
25
__fixtures__/general/pnpm-lock.yaml
generated
@@ -70,17 +70,14 @@ packages:
|
||||
|
||||
snapshots:
|
||||
|
||||
balanced-match@1.0.0:
|
||||
dev: false
|
||||
balanced-match@1.0.0: {}
|
||||
|
||||
brace-expansion@1.1.8:
|
||||
dependencies:
|
||||
balanced-match: 1.0.0
|
||||
concat-map: 0.0.1
|
||||
dev: false
|
||||
|
||||
concat-map@0.0.1:
|
||||
dev: false
|
||||
concat-map@0.0.1: {}
|
||||
|
||||
glob@6.0.4:
|
||||
dependencies:
|
||||
@@ -89,41 +86,31 @@ snapshots:
|
||||
minimatch: 3.0.4
|
||||
once: 1.4.0
|
||||
path-is-absolute: 1.0.1
|
||||
dev: false
|
||||
|
||||
inflight@1.0.6:
|
||||
dependencies:
|
||||
once: 1.4.0
|
||||
wrappy: 1.0.2
|
||||
dev: false
|
||||
|
||||
inherits@2.0.3:
|
||||
dev: false
|
||||
inherits@2.0.3: {}
|
||||
|
||||
is-negative@1.0.0:
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
is-positive@1.0.0:
|
||||
dev: true
|
||||
is-positive@1.0.0: {}
|
||||
|
||||
minimatch@3.0.4:
|
||||
dependencies:
|
||||
brace-expansion: 1.1.8
|
||||
dev: false
|
||||
|
||||
once@1.4.0:
|
||||
dependencies:
|
||||
wrappy: 1.0.2
|
||||
dev: false
|
||||
|
||||
path-is-absolute@1.0.1:
|
||||
dev: false
|
||||
path-is-absolute@1.0.1: {}
|
||||
|
||||
rimraf@2.5.1:
|
||||
dependencies:
|
||||
glob: 6.0.4
|
||||
dev: false
|
||||
|
||||
wrappy@1.0.2:
|
||||
dev: false
|
||||
wrappy@1.0.2: {}
|
||||
|
||||
6
__fixtures__/has-2-outdated-deps/node_modules/.pnpm/lock.yaml
generated
vendored
6
__fixtures__/has-2-outdated-deps/node_modules/.pnpm/lock.yaml
generated
vendored
@@ -28,8 +28,6 @@ packages:
|
||||
|
||||
snapshots:
|
||||
|
||||
is-negative@1.0.1:
|
||||
dev: false
|
||||
is-negative@1.0.1: {}
|
||||
|
||||
is-positive@1.0.0:
|
||||
dev: true
|
||||
is-positive@1.0.0: {}
|
||||
|
||||
6
__fixtures__/has-2-outdated-deps/pnpm-lock.yaml
generated
6
__fixtures__/has-2-outdated-deps/pnpm-lock.yaml
generated
@@ -28,8 +28,6 @@ packages:
|
||||
|
||||
snapshots:
|
||||
|
||||
is-negative@1.0.1:
|
||||
dev: false
|
||||
is-negative@1.0.1: {}
|
||||
|
||||
is-positive@1.0.0:
|
||||
dev: true
|
||||
is-positive@1.0.0: {}
|
||||
|
||||
11
__fixtures__/has-major-outdated-deps/node_modules/.pnpm/lock.yaml
generated
vendored
11
__fixtures__/has-major-outdated-deps/node_modules/.pnpm/lock.yaml
generated
vendored
@@ -12,17 +12,20 @@ devDependencies:
|
||||
|
||||
packages:
|
||||
|
||||
/is-negative@1.0.0:
|
||||
dev: false
|
||||
is-negative@1.0.0:
|
||||
engines:
|
||||
node: '>=0.10.0'
|
||||
resolution:
|
||||
integrity: sha1-clmHeoPIAKwxkd17nZ+80PdS1P4=
|
||||
|
||||
/is-positive@2.0.0:
|
||||
dev: true
|
||||
is-positive@2.0.0:
|
||||
engines:
|
||||
node: '>=0.10.0'
|
||||
resolution:
|
||||
integrity: sha1-sU8GvS24EK5sixJ0HRNr+u8Nh70=
|
||||
|
||||
snapshots:
|
||||
|
||||
is-negative@1.0.0: {}
|
||||
|
||||
is-positive@2.0.0: {}
|
||||
|
||||
12
__fixtures__/has-major-outdated-deps/pnpm-lock.yaml
generated
12
__fixtures__/has-major-outdated-deps/pnpm-lock.yaml
generated
@@ -12,16 +12,20 @@ devDependencies:
|
||||
|
||||
packages:
|
||||
|
||||
/is-negative@1.0.0:
|
||||
dev: false
|
||||
is-negative@1.0.0:
|
||||
engines:
|
||||
node: '>=0.10.0'
|
||||
resolution:
|
||||
integrity: sha512-1aKMsFUc7vYQGzt//8zhkjRWPoYkajY/I5MJEvrc0pDoHXrW7n5ri8DYxhy3rR+Dk0QFl7GjHHsZU1sppQrWtw==
|
||||
|
||||
/is-positive@2.0.0:
|
||||
dev: true
|
||||
is-positive@2.0.0:
|
||||
engines:
|
||||
node: '>=0.10.0'
|
||||
resolution:
|
||||
integrity: sha512-uJQLtRnc7RP/Xo8tjkK9MJsWdnuKhiD5e8x+idmkUqr2p0R+n/ZdDFG1LEt98WwoRzWhSefhPnyLBleKZhg/Lg==
|
||||
|
||||
snapshots:
|
||||
|
||||
is-negative@1.0.0: {}
|
||||
|
||||
is-positive@2.0.0: {}
|
||||
|
||||
36
__fixtures__/has-not-outdated-deps/node_modules/.pnpm/lock.yaml
generated
vendored
36
__fixtures__/has-not-outdated-deps/node_modules/.pnpm/lock.yaml
generated
vendored
@@ -1,17 +1,31 @@
|
||||
lockfileVersion: '6.0'
|
||||
dependencies:
|
||||
is-negative:
|
||||
version: 2.1.0
|
||||
specifier: ^2.1.0
|
||||
is-positive:
|
||||
version: 3.1.0
|
||||
specifier: ^3.1.0
|
||||
|
||||
importers:
|
||||
|
||||
'.':
|
||||
|
||||
dependencies:
|
||||
|
||||
is-negative:
|
||||
version: 2.1.0
|
||||
specifier: ^2.1.0
|
||||
|
||||
is-positive:
|
||||
version: 3.1.0
|
||||
specifier: ^3.1.0
|
||||
|
||||
packages:
|
||||
/is-negative@2.1.0:
|
||||
dev: false
|
||||
|
||||
is-negative@2.1.0:
|
||||
resolution:
|
||||
integrity: sha512-+iCKT4ZcvjRnjkHnQjZ8/qfciLLGD8BFKS0GNR5VjDU6jEiwh899R0GSMkaYcuTNd7fEKXb3Qib0webe6HczNw==
|
||||
/is-positive@3.1.0:
|
||||
dev: false
|
||||
|
||||
is-positive@3.1.0:
|
||||
resolution:
|
||||
integrity: sha512-8ND1j3y9/HP94TOvGzr69/FgbkX2ruOldhLEsTWwcJVfo4oRjwemJmJxt7RJkKYH8tz7vYBP9JcKQY8CLuJ90Q==
|
||||
|
||||
snapshots:
|
||||
|
||||
is-negative@2.1.0: {}
|
||||
|
||||
is-positive@3.1.0: {}
|
||||
|
||||
36
__fixtures__/has-not-outdated-deps/pnpm-lock.yaml
generated
36
__fixtures__/has-not-outdated-deps/pnpm-lock.yaml
generated
@@ -1,17 +1,31 @@
|
||||
lockfileVersion: '7.0'
|
||||
dependencies:
|
||||
is-negative:
|
||||
version: 2.1.0
|
||||
specifier: ^2.1.0
|
||||
is-positive:
|
||||
version: 3.1.0
|
||||
specifier: ^3.1.0
|
||||
|
||||
importers:
|
||||
|
||||
'.':
|
||||
|
||||
dependencies:
|
||||
|
||||
is-negative:
|
||||
version: 2.1.0
|
||||
specifier: ^2.1.0
|
||||
|
||||
is-positive:
|
||||
version: 3.1.0
|
||||
specifier: ^3.1.0
|
||||
|
||||
packages:
|
||||
/is-negative@2.1.0:
|
||||
dev: false
|
||||
|
||||
is-negative@2.1.0:
|
||||
resolution:
|
||||
integrity: sha512-+iCKT4ZcvjRnjkHnQjZ8/qfciLLGD8BFKS0GNR5VjDU6jEiwh899R0GSMkaYcuTNd7fEKXb3Qib0webe6HczNw==
|
||||
/is-positive@3.1.0:
|
||||
dev: false
|
||||
|
||||
is-positive@3.1.0:
|
||||
resolution:
|
||||
integrity: sha512-8ND1j3y9/HP94TOvGzr69/FgbkX2ruOldhLEsTWwcJVfo4oRjwemJmJxt7RJkKYH8tz7vYBP9JcKQY8CLuJ90Q==
|
||||
|
||||
snapshots:
|
||||
|
||||
is-negative@2.1.0: {}
|
||||
|
||||
is-positive@3.1.0: {}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
lockfileVersion: '7.0'
|
||||
|
||||
importers:
|
||||
pkg:
|
||||
dependencies:
|
||||
@@ -8,10 +9,19 @@ importers:
|
||||
is-positive:
|
||||
version: 3.1.0
|
||||
specifier: ^3.1.0
|
||||
|
||||
packages:
|
||||
/is-negative@1.1.0:
|
||||
|
||||
is-negative@1.1.0:
|
||||
resolution:
|
||||
integrity: sha512-+iCKT4ZcvjRnjkHnQjZ8/qfciLLGD8BFKS0GNR5VjDU6jEiwh899R0GSMkaYcuTNd7fEKXb3Qib0webe6HczNw==
|
||||
/is-positive@3.1.0:
|
||||
|
||||
is-positive@3.1.0:
|
||||
resolution:
|
||||
integrity: sha512-8ND1j3y9/HP94TOvGzr69/FgbkX2ruOldhLEsTWwcJVfo4oRjwemJmJxt7RJkKYH8tz7vYBP9JcKQY8CLuJ90Q==
|
||||
|
||||
snapshots:
|
||||
|
||||
is-negative@1.1.0: {}
|
||||
|
||||
is-positive@3.1.0: {}
|
||||
|
||||
47
__fixtures__/has-outdated-deps/node_modules/.pnpm/lock.yaml
generated
vendored
47
__fixtures__/has-outdated-deps/node_modules/.pnpm/lock.yaml
generated
vendored
@@ -1,31 +1,42 @@
|
||||
lockfileVersion: '6.0'
|
||||
lockfileVersion: '7.0'
|
||||
|
||||
dependencies:
|
||||
'@pnpm.e2e/deprecated':
|
||||
specifier: 1.0.0
|
||||
version: 1.0.0
|
||||
is-negative:
|
||||
specifier: ^1.0.0
|
||||
version: 1.0.0
|
||||
importers:
|
||||
|
||||
devDependencies:
|
||||
is-positive:
|
||||
specifier: ^1.0.0
|
||||
version: 1.0.0
|
||||
'.':
|
||||
dependencies:
|
||||
|
||||
'@pnpm.e2e/deprecated':
|
||||
specifier: 1.0.0
|
||||
version: 1.0.0
|
||||
|
||||
is-negative:
|
||||
specifier: ^1.0.0
|
||||
version: 1.0.0
|
||||
|
||||
devDependencies:
|
||||
|
||||
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
|
||||
|
||||
snapshots:
|
||||
|
||||
'@pnpm.e2e/deprecated@1.0.0': {}
|
||||
|
||||
is-negative@1.0.0: {}
|
||||
|
||||
is-positive@1.0.0: {}
|
||||
|
||||
45
__fixtures__/has-outdated-deps/pnpm-lock.yaml
generated
45
__fixtures__/has-outdated-deps/pnpm-lock.yaml
generated
@@ -1,31 +1,42 @@
|
||||
lockfileVersion: '7.0'
|
||||
|
||||
dependencies:
|
||||
'@pnpm.e2e/deprecated':
|
||||
specifier: 1.0.0
|
||||
version: 1.0.0
|
||||
is-negative:
|
||||
specifier: ^2.1.0
|
||||
version: 2.1.0
|
||||
importers:
|
||||
|
||||
devDependencies:
|
||||
is-positive:
|
||||
specifier: ^3.1.0
|
||||
version: 3.1.0
|
||||
'.':
|
||||
dependencies:
|
||||
|
||||
'@pnpm.e2e/deprecated':
|
||||
specifier: 1.0.0
|
||||
version: 1.0.0
|
||||
|
||||
is-negative:
|
||||
specifier: ^2.1.0
|
||||
version: 2.1.0
|
||||
|
||||
devDependencies:
|
||||
|
||||
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: sha512-8ND1j3y9/HP94TOvGzr69/FgbkX2ruOldhLEsTWwcJVfo4oRjwemJmJxt7RJkKYH8tz7vYBP9JcKQY8CLuJ90Q==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: true
|
||||
|
||||
snapshots:
|
||||
|
||||
'@pnpm.e2e/deprecated@1.0.0': {}
|
||||
|
||||
is-negative@2.1.0: {}
|
||||
|
||||
is-positive@3.1.0: {}
|
||||
|
||||
18
__fixtures__/monorepo/pnpm-lock.yaml
generated
18
__fixtures__/monorepo/pnpm-lock.yaml
generated
@@ -1,14 +1,20 @@
|
||||
lockfileVersion: '7.0'
|
||||
|
||||
importers:
|
||||
package:
|
||||
dependencies:
|
||||
is-positive: 3.1.0
|
||||
specifiers:
|
||||
is-positive: 3.1.0
|
||||
lockfileVersion: 5
|
||||
is-positive:
|
||||
version: 3.1.0
|
||||
specifier: 3.1.0
|
||||
|
||||
packages:
|
||||
/is-positive/3.1.0:
|
||||
dev: false
|
||||
|
||||
is-positive@3.1.0:
|
||||
engines:
|
||||
node: '>=0.10.0'
|
||||
resolution:
|
||||
integrity: sha512-8ND1j3y9/HP94TOvGzr69/FgbkX2ruOldhLEsTWwcJVfo4oRjwemJmJxt7RJkKYH8tz7vYBP9JcKQY8CLuJ90Q==
|
||||
|
||||
snapshots:
|
||||
|
||||
is-positive@3.1.0: {}
|
||||
|
||||
@@ -1,6 +1,12 @@
|
||||
scripts:
|
||||
step1: node ../pnpm/dist/pnpm.cjs install -rf --frozen-lockfile --no-shared-workspace-lockfile --no-link-workspace-packages
|
||||
step2: node ../pnpm/dist/pnpm.cjs install -rf --frozen-lockfile --no-shared-workspace-lockfile --no-link-workspace-packages
|
||||
step3: node ../pnpm/dist/pnpm.cjs install -rf -C fixtureWithLinks --frozen-lockfile --link-workspace-packages --no-shared-workspace-lockfile
|
||||
step4: cd ./fixture-with-external-shrinkwrap/pkg && node ../../../pnpm/dist/pnpm.cjs install -f --frozen-lockfile
|
||||
step5: cd ./custom-modules-dir && node ../../pnpm/dist/pnpm.cjs install -f --frozen-lockfile
|
||||
prepareFixtures: >
|
||||
node ../pnpm/dist/pnpm.cjs install -rf --frozen-lockfile --no-shared-workspace-lockfile --no-link-workspace-packages &&
|
||||
node ../pnpm/dist/pnpm.cjs install -rf -C fixtureWithLinks --frozen-lockfile --link-workspace-packages --no-shared-workspace-lockfile &&
|
||||
cd ./fixture-with-external-shrinkwrap/pkg && node ../../../pnpm/dist/pnpm.cjs install -f --frozen-lockfile &&
|
||||
cd ../../custom-modules-dir && node ../../pnpm/dist/pnpm.cjs install -f --frozen-lockfile
|
||||
pnpm run step1 &&
|
||||
pnpm run step2 &&
|
||||
pnpm run step3 &&
|
||||
pnpm run step4 &&
|
||||
pnpm run step5
|
||||
|
||||
448
__fixtures__/pkg-with-external-lockfile/pnpm-lock.yaml
generated
448
__fixtures__/pkg-with-external-lockfile/pnpm-lock.yaml
generated
@@ -14,21 +14,215 @@ importers:
|
||||
|
||||
packages:
|
||||
|
||||
/accepts@1.3.7:
|
||||
accepts@1.3.7:
|
||||
resolution: {integrity: sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==}
|
||||
engines: {node: '>= 0.6'}
|
||||
|
||||
array-flatten@1.1.1:
|
||||
resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==}
|
||||
|
||||
body-parser@1.19.0:
|
||||
resolution: {integrity: sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==}
|
||||
engines: {node: '>= 0.8'}
|
||||
|
||||
bytes@3.1.0:
|
||||
resolution: {integrity: sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==}
|
||||
engines: {node: '>= 0.8'}
|
||||
|
||||
content-disposition@0.5.3:
|
||||
resolution: {integrity: sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==}
|
||||
engines: {node: '>= 0.6'}
|
||||
|
||||
content-type@1.0.4:
|
||||
resolution: {integrity: sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==}
|
||||
engines: {node: '>= 0.6'}
|
||||
|
||||
cookie-signature@1.0.6:
|
||||
resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==}
|
||||
|
||||
cookie@0.4.0:
|
||||
resolution: {integrity: sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==}
|
||||
engines: {node: '>= 0.6'}
|
||||
|
||||
debug@2.6.9:
|
||||
resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==}
|
||||
peerDependencies:
|
||||
supports-color: '*'
|
||||
peerDependenciesMeta:
|
||||
supports-color:
|
||||
optional: true
|
||||
|
||||
depd@1.1.2:
|
||||
resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==}
|
||||
engines: {node: '>= 0.6'}
|
||||
|
||||
destroy@1.0.4:
|
||||
resolution: {integrity: sha512-3NdhDuEXnfun/z7x9GOElY49LoqVHoGScmOKwmxhsS8N5Y+Z8KyPPDnaSzqWgYt/ji4mqwfTS34Htrk0zPIXVg==}
|
||||
|
||||
ee-first@1.1.1:
|
||||
resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==}
|
||||
|
||||
encodeurl@1.0.2:
|
||||
resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==}
|
||||
engines: {node: '>= 0.8'}
|
||||
|
||||
escape-html@1.0.3:
|
||||
resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==}
|
||||
|
||||
etag@1.8.1:
|
||||
resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==}
|
||||
engines: {node: '>= 0.6'}
|
||||
|
||||
express@4.17.1:
|
||||
resolution: {integrity: sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==}
|
||||
engines: {node: '>= 0.10.0'}
|
||||
|
||||
finalhandler@1.1.2:
|
||||
resolution: {integrity: sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==}
|
||||
engines: {node: '>= 0.8'}
|
||||
|
||||
forwarded@0.1.2:
|
||||
resolution: {integrity: sha512-Ua9xNhH0b8pwE3yRbFfXJvfdWF0UHNCdeyb2sbi9Ul/M+r3PTdrz7Cv4SCfZRMjmzEM9PhraqfZFbGTIg3OMyA==}
|
||||
engines: {node: '>= 0.6'}
|
||||
|
||||
fresh@0.5.2:
|
||||
resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==}
|
||||
engines: {node: '>= 0.6'}
|
||||
|
||||
http-errors@1.7.2:
|
||||
resolution: {integrity: sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==}
|
||||
engines: {node: '>= 0.6'}
|
||||
|
||||
http-errors@1.7.3:
|
||||
resolution: {integrity: sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==}
|
||||
engines: {node: '>= 0.6'}
|
||||
|
||||
iconv-lite@0.4.24:
|
||||
resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
|
||||
inherits@2.0.3:
|
||||
resolution: {integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==}
|
||||
|
||||
inherits@2.0.4:
|
||||
resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
|
||||
|
||||
ipaddr.js@1.9.1:
|
||||
resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==}
|
||||
engines: {node: '>= 0.10'}
|
||||
|
||||
media-typer@0.3.0:
|
||||
resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==}
|
||||
engines: {node: '>= 0.6'}
|
||||
|
||||
merge-descriptors@1.0.1:
|
||||
resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==}
|
||||
|
||||
methods@1.1.2:
|
||||
resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==}
|
||||
engines: {node: '>= 0.6'}
|
||||
|
||||
mime-db@1.44.0:
|
||||
resolution: {integrity: sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==}
|
||||
engines: {node: '>= 0.6'}
|
||||
|
||||
mime-types@2.1.27:
|
||||
resolution: {integrity: sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==}
|
||||
engines: {node: '>= 0.6'}
|
||||
|
||||
mime@1.6.0:
|
||||
resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==}
|
||||
engines: {node: '>=4'}
|
||||
hasBin: true
|
||||
|
||||
ms@2.0.0:
|
||||
resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==}
|
||||
|
||||
ms@2.1.1:
|
||||
resolution: {integrity: sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==}
|
||||
|
||||
negotiator@0.6.2:
|
||||
resolution: {integrity: sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==}
|
||||
engines: {node: '>= 0.6'}
|
||||
|
||||
on-finished@2.3.0:
|
||||
resolution: {integrity: sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==}
|
||||
engines: {node: '>= 0.8'}
|
||||
|
||||
parseurl@1.3.3:
|
||||
resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==}
|
||||
engines: {node: '>= 0.8'}
|
||||
|
||||
path-to-regexp@0.1.7:
|
||||
resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==}
|
||||
|
||||
proxy-addr@2.0.6:
|
||||
resolution: {integrity: sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==}
|
||||
engines: {node: '>= 0.10'}
|
||||
|
||||
qs@6.7.0:
|
||||
resolution: {integrity: sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==}
|
||||
engines: {node: '>=0.6'}
|
||||
|
||||
range-parser@1.2.1:
|
||||
resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==}
|
||||
engines: {node: '>= 0.6'}
|
||||
|
||||
raw-body@2.4.0:
|
||||
resolution: {integrity: sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==}
|
||||
engines: {node: '>= 0.8'}
|
||||
|
||||
safe-buffer@5.1.2:
|
||||
resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==}
|
||||
|
||||
safer-buffer@2.1.2:
|
||||
resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==}
|
||||
|
||||
send@0.17.1:
|
||||
resolution: {integrity: sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==}
|
||||
engines: {node: '>= 0.8.0'}
|
||||
|
||||
serve-static@1.14.1:
|
||||
resolution: {integrity: sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==}
|
||||
engines: {node: '>= 0.8.0'}
|
||||
|
||||
setprototypeof@1.1.1:
|
||||
resolution: {integrity: sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==}
|
||||
|
||||
statuses@1.5.0:
|
||||
resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==}
|
||||
engines: {node: '>= 0.6'}
|
||||
|
||||
toidentifier@1.0.0:
|
||||
resolution: {integrity: sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==}
|
||||
engines: {node: '>=0.6'}
|
||||
|
||||
type-is@1.6.18:
|
||||
resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==}
|
||||
engines: {node: '>= 0.6'}
|
||||
|
||||
unpipe@1.0.0:
|
||||
resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==}
|
||||
engines: {node: '>= 0.8'}
|
||||
|
||||
utils-merge@1.0.1:
|
||||
resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==}
|
||||
engines: {node: '>= 0.4.0'}
|
||||
|
||||
vary@1.1.2:
|
||||
resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==}
|
||||
engines: {node: '>= 0.8'}
|
||||
|
||||
snapshots:
|
||||
|
||||
accepts@1.3.7:
|
||||
dependencies:
|
||||
mime-types: 2.1.27
|
||||
negotiator: 0.6.2
|
||||
dev: false
|
||||
|
||||
/array-flatten@1.1.1:
|
||||
resolution: {integrity: sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==}
|
||||
dev: false
|
||||
array-flatten@1.1.1: {}
|
||||
|
||||
/body-parser@1.19.0:
|
||||
resolution: {integrity: sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==}
|
||||
engines: {node: '>= 0.8'}
|
||||
body-parser@1.19.0:
|
||||
dependencies:
|
||||
bytes: 3.1.0
|
||||
content-type: 1.0.4
|
||||
@@ -42,75 +236,36 @@ packages:
|
||||
type-is: 1.6.18
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/bytes@3.1.0:
|
||||
resolution: {integrity: sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==}
|
||||
engines: {node: '>= 0.8'}
|
||||
dev: false
|
||||
bytes@3.1.0: {}
|
||||
|
||||
/content-disposition@0.5.3:
|
||||
resolution: {integrity: sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==}
|
||||
engines: {node: '>= 0.6'}
|
||||
content-disposition@0.5.3:
|
||||
dependencies:
|
||||
safe-buffer: 5.1.2
|
||||
dev: false
|
||||
|
||||
/content-type@1.0.4:
|
||||
resolution: {integrity: sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==}
|
||||
engines: {node: '>= 0.6'}
|
||||
dev: false
|
||||
content-type@1.0.4: {}
|
||||
|
||||
/cookie-signature@1.0.6:
|
||||
resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==}
|
||||
dev: false
|
||||
cookie-signature@1.0.6: {}
|
||||
|
||||
/cookie@0.4.0:
|
||||
resolution: {integrity: sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==}
|
||||
engines: {node: '>= 0.6'}
|
||||
dev: false
|
||||
cookie@0.4.0: {}
|
||||
|
||||
/debug@2.6.9:
|
||||
resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==}
|
||||
peerDependencies:
|
||||
supports-color: '*'
|
||||
peerDependenciesMeta:
|
||||
supports-color:
|
||||
optional: true
|
||||
debug@2.6.9:
|
||||
dependencies:
|
||||
ms: 2.0.0
|
||||
dev: false
|
||||
|
||||
/depd@1.1.2:
|
||||
resolution: {integrity: sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==}
|
||||
engines: {node: '>= 0.6'}
|
||||
dev: false
|
||||
depd@1.1.2: {}
|
||||
|
||||
/destroy@1.0.4:
|
||||
resolution: {integrity: sha512-3NdhDuEXnfun/z7x9GOElY49LoqVHoGScmOKwmxhsS8N5Y+Z8KyPPDnaSzqWgYt/ji4mqwfTS34Htrk0zPIXVg==}
|
||||
dev: false
|
||||
destroy@1.0.4: {}
|
||||
|
||||
/ee-first@1.1.1:
|
||||
resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==}
|
||||
dev: false
|
||||
ee-first@1.1.1: {}
|
||||
|
||||
/encodeurl@1.0.2:
|
||||
resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==}
|
||||
engines: {node: '>= 0.8'}
|
||||
dev: false
|
||||
encodeurl@1.0.2: {}
|
||||
|
||||
/escape-html@1.0.3:
|
||||
resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==}
|
||||
dev: false
|
||||
escape-html@1.0.3: {}
|
||||
|
||||
/etag@1.8.1:
|
||||
resolution: {integrity: sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==}
|
||||
engines: {node: '>= 0.6'}
|
||||
dev: false
|
||||
etag@1.8.1: {}
|
||||
|
||||
/express@4.17.1:
|
||||
resolution: {integrity: sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==}
|
||||
engines: {node: '>= 0.10.0'}
|
||||
express@4.17.1:
|
||||
dependencies:
|
||||
accepts: 1.3.7
|
||||
array-flatten: 1.1.1
|
||||
@@ -144,11 +299,8 @@ packages:
|
||||
vary: 1.1.2
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/finalhandler@1.1.2:
|
||||
resolution: {integrity: sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==}
|
||||
engines: {node: '>= 0.8'}
|
||||
finalhandler@1.1.2:
|
||||
dependencies:
|
||||
debug: 2.6.9
|
||||
encodeurl: 1.0.2
|
||||
@@ -159,160 +311,86 @@ packages:
|
||||
unpipe: 1.0.0
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/forwarded@0.1.2:
|
||||
resolution: {integrity: sha512-Ua9xNhH0b8pwE3yRbFfXJvfdWF0UHNCdeyb2sbi9Ul/M+r3PTdrz7Cv4SCfZRMjmzEM9PhraqfZFbGTIg3OMyA==}
|
||||
engines: {node: '>= 0.6'}
|
||||
dev: false
|
||||
forwarded@0.1.2: {}
|
||||
|
||||
/fresh@0.5.2:
|
||||
resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==}
|
||||
engines: {node: '>= 0.6'}
|
||||
dev: false
|
||||
fresh@0.5.2: {}
|
||||
|
||||
/http-errors@1.7.2:
|
||||
resolution: {integrity: sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==}
|
||||
engines: {node: '>= 0.6'}
|
||||
http-errors@1.7.2:
|
||||
dependencies:
|
||||
depd: 1.1.2
|
||||
inherits: 2.0.3
|
||||
setprototypeof: 1.1.1
|
||||
statuses: 1.5.0
|
||||
toidentifier: 1.0.0
|
||||
dev: false
|
||||
|
||||
/http-errors@1.7.3:
|
||||
resolution: {integrity: sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==}
|
||||
engines: {node: '>= 0.6'}
|
||||
http-errors@1.7.3:
|
||||
dependencies:
|
||||
depd: 1.1.2
|
||||
inherits: 2.0.4
|
||||
setprototypeof: 1.1.1
|
||||
statuses: 1.5.0
|
||||
toidentifier: 1.0.0
|
||||
dev: false
|
||||
|
||||
/iconv-lite@0.4.24:
|
||||
resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
iconv-lite@0.4.24:
|
||||
dependencies:
|
||||
safer-buffer: 2.1.2
|
||||
dev: false
|
||||
|
||||
/inherits@2.0.3:
|
||||
resolution: {integrity: sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==}
|
||||
dev: false
|
||||
inherits@2.0.3: {}
|
||||
|
||||
/inherits@2.0.4:
|
||||
resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
|
||||
dev: false
|
||||
inherits@2.0.4: {}
|
||||
|
||||
/ipaddr.js@1.9.1:
|
||||
resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==}
|
||||
engines: {node: '>= 0.10'}
|
||||
dev: false
|
||||
ipaddr.js@1.9.1: {}
|
||||
|
||||
/media-typer@0.3.0:
|
||||
resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==}
|
||||
engines: {node: '>= 0.6'}
|
||||
dev: false
|
||||
media-typer@0.3.0: {}
|
||||
|
||||
/merge-descriptors@1.0.1:
|
||||
resolution: {integrity: sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==}
|
||||
dev: false
|
||||
merge-descriptors@1.0.1: {}
|
||||
|
||||
/methods@1.1.2:
|
||||
resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==}
|
||||
engines: {node: '>= 0.6'}
|
||||
dev: false
|
||||
methods@1.1.2: {}
|
||||
|
||||
/mime-db@1.44.0:
|
||||
resolution: {integrity: sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==}
|
||||
engines: {node: '>= 0.6'}
|
||||
dev: false
|
||||
mime-db@1.44.0: {}
|
||||
|
||||
/mime-types@2.1.27:
|
||||
resolution: {integrity: sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==}
|
||||
engines: {node: '>= 0.6'}
|
||||
mime-types@2.1.27:
|
||||
dependencies:
|
||||
mime-db: 1.44.0
|
||||
dev: false
|
||||
|
||||
/mime@1.6.0:
|
||||
resolution: {integrity: sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==}
|
||||
engines: {node: '>=4'}
|
||||
hasBin: true
|
||||
dev: false
|
||||
mime@1.6.0: {}
|
||||
|
||||
/ms@2.0.0:
|
||||
resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==}
|
||||
dev: false
|
||||
ms@2.0.0: {}
|
||||
|
||||
/ms@2.1.1:
|
||||
resolution: {integrity: sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==}
|
||||
dev: false
|
||||
ms@2.1.1: {}
|
||||
|
||||
/negotiator@0.6.2:
|
||||
resolution: {integrity: sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==}
|
||||
engines: {node: '>= 0.6'}
|
||||
dev: false
|
||||
negotiator@0.6.2: {}
|
||||
|
||||
/on-finished@2.3.0:
|
||||
resolution: {integrity: sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==}
|
||||
engines: {node: '>= 0.8'}
|
||||
on-finished@2.3.0:
|
||||
dependencies:
|
||||
ee-first: 1.1.1
|
||||
dev: false
|
||||
|
||||
/parseurl@1.3.3:
|
||||
resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==}
|
||||
engines: {node: '>= 0.8'}
|
||||
dev: false
|
||||
parseurl@1.3.3: {}
|
||||
|
||||
/path-to-regexp@0.1.7:
|
||||
resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==}
|
||||
dev: false
|
||||
path-to-regexp@0.1.7: {}
|
||||
|
||||
/proxy-addr@2.0.6:
|
||||
resolution: {integrity: sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==}
|
||||
engines: {node: '>= 0.10'}
|
||||
proxy-addr@2.0.6:
|
||||
dependencies:
|
||||
forwarded: 0.1.2
|
||||
ipaddr.js: 1.9.1
|
||||
dev: false
|
||||
|
||||
/qs@6.7.0:
|
||||
resolution: {integrity: sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==}
|
||||
engines: {node: '>=0.6'}
|
||||
dev: false
|
||||
qs@6.7.0: {}
|
||||
|
||||
/range-parser@1.2.1:
|
||||
resolution: {integrity: sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==}
|
||||
engines: {node: '>= 0.6'}
|
||||
dev: false
|
||||
range-parser@1.2.1: {}
|
||||
|
||||
/raw-body@2.4.0:
|
||||
resolution: {integrity: sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==}
|
||||
engines: {node: '>= 0.8'}
|
||||
raw-body@2.4.0:
|
||||
dependencies:
|
||||
bytes: 3.1.0
|
||||
http-errors: 1.7.2
|
||||
iconv-lite: 0.4.24
|
||||
unpipe: 1.0.0
|
||||
dev: false
|
||||
|
||||
/safe-buffer@5.1.2:
|
||||
resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==}
|
||||
dev: false
|
||||
safe-buffer@5.1.2: {}
|
||||
|
||||
/safer-buffer@2.1.2:
|
||||
resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==}
|
||||
dev: false
|
||||
safer-buffer@2.1.2: {}
|
||||
|
||||
/send@0.17.1:
|
||||
resolution: {integrity: sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==}
|
||||
engines: {node: '>= 0.8.0'}
|
||||
send@0.17.1:
|
||||
dependencies:
|
||||
debug: 2.6.9
|
||||
depd: 1.1.2
|
||||
@@ -329,11 +407,8 @@ packages:
|
||||
statuses: 1.5.0
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/serve-static@1.14.1:
|
||||
resolution: {integrity: sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==}
|
||||
engines: {node: '>= 0.8.0'}
|
||||
serve-static@1.14.1:
|
||||
dependencies:
|
||||
encodeurl: 1.0.2
|
||||
escape-html: 1.0.3
|
||||
@@ -341,41 +416,20 @@ packages:
|
||||
send: 0.17.1
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/setprototypeof@1.1.1:
|
||||
resolution: {integrity: sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==}
|
||||
dev: false
|
||||
setprototypeof@1.1.1: {}
|
||||
|
||||
/statuses@1.5.0:
|
||||
resolution: {integrity: sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==}
|
||||
engines: {node: '>= 0.6'}
|
||||
dev: false
|
||||
statuses@1.5.0: {}
|
||||
|
||||
/toidentifier@1.0.0:
|
||||
resolution: {integrity: sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==}
|
||||
engines: {node: '>=0.6'}
|
||||
dev: false
|
||||
toidentifier@1.0.0: {}
|
||||
|
||||
/type-is@1.6.18:
|
||||
resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==}
|
||||
engines: {node: '>= 0.6'}
|
||||
type-is@1.6.18:
|
||||
dependencies:
|
||||
media-typer: 0.3.0
|
||||
mime-types: 2.1.27
|
||||
dev: false
|
||||
|
||||
/unpipe@1.0.0:
|
||||
resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==}
|
||||
engines: {node: '>= 0.8'}
|
||||
dev: false
|
||||
unpipe@1.0.0: {}
|
||||
|
||||
/utils-merge@1.0.1:
|
||||
resolution: {integrity: sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==}
|
||||
engines: {node: '>= 0.4.0'}
|
||||
dev: false
|
||||
utils-merge@1.0.1: {}
|
||||
|
||||
/vary@1.1.2:
|
||||
resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==}
|
||||
engines: {node: '>= 0.8'}
|
||||
dev: false
|
||||
vary@1.1.2: {}
|
||||
|
||||
3
__fixtures__/with-file-dep/pnpm-lock.yaml
generated
3
__fixtures__/with-file-dep/pnpm-lock.yaml
generated
@@ -23,5 +23,4 @@ packages:
|
||||
|
||||
snapshots:
|
||||
|
||||
is-positive@3.1.0:
|
||||
dev: false
|
||||
is-positive@3.1.0: {}
|
||||
|
||||
3
__fixtures__/with-non-package-dep/pnpm-lock.yaml
generated
3
__fixtures__/with-non-package-dep/pnpm-lock.yaml
generated
@@ -20,5 +20,4 @@ packages:
|
||||
|
||||
snapshots:
|
||||
|
||||
camelcase@https://codeload.github.com/denolib/camelcase/tar.gz/aeb6b15f9c9957c8fa56f9731e914c4d8a6d2f2b:
|
||||
dev: false
|
||||
camelcase@https://codeload.github.com/denolib/camelcase/tar.gz/aeb6b15f9c9957c8fa56f9731e914c4d8a6d2f2b: {}
|
||||
|
||||
15
__fixtures__/with-peer/pnpm-lock.yaml
generated
15
__fixtures__/with-peer/pnpm-lock.yaml
generated
@@ -46,7 +46,6 @@ snapshots:
|
||||
ajv-keywords@3.4.1(ajv@6.10.2):
|
||||
dependencies:
|
||||
ajv: 6.10.2
|
||||
dev: false
|
||||
|
||||
ajv@6.10.2:
|
||||
dependencies:
|
||||
@@ -54,21 +53,15 @@ snapshots:
|
||||
fast-json-stable-stringify: 2.0.0
|
||||
json-schema-traverse: 0.4.1
|
||||
uri-js: 4.2.2
|
||||
dev: false
|
||||
|
||||
fast-deep-equal@2.0.1:
|
||||
dev: false
|
||||
fast-deep-equal@2.0.1: {}
|
||||
|
||||
fast-json-stable-stringify@2.0.0:
|
||||
dev: false
|
||||
fast-json-stable-stringify@2.0.0: {}
|
||||
|
||||
json-schema-traverse@0.4.1:
|
||||
dev: false
|
||||
json-schema-traverse@0.4.1: {}
|
||||
|
||||
punycode@2.1.1:
|
||||
dev: false
|
||||
punycode@2.1.1: {}
|
||||
|
||||
uri-js@4.2.2:
|
||||
dependencies:
|
||||
punycode: 2.1.1
|
||||
dev: false
|
||||
|
||||
73
__fixtures__/with-unsaved-deps/pnpm-lock.yaml
generated
73
__fixtures__/with-unsaved-deps/pnpm-lock.yaml
generated
@@ -157,30 +157,23 @@ snapshots:
|
||||
'@types/mz@0.0.32':
|
||||
dependencies:
|
||||
'@types/node': 10.12.9
|
||||
dev: false
|
||||
|
||||
'@types/node@10.12.9':
|
||||
dev: false
|
||||
'@types/node@10.12.9': {}
|
||||
|
||||
any-promise@1.3.0:
|
||||
dev: false
|
||||
any-promise@1.3.0: {}
|
||||
|
||||
balanced-match@1.0.0:
|
||||
dev: false
|
||||
balanced-match@1.0.0: {}
|
||||
|
||||
brace-expansion@1.1.11:
|
||||
dependencies:
|
||||
balanced-match: 1.0.0
|
||||
concat-map: 0.0.1
|
||||
dev: false
|
||||
|
||||
concat-map@0.0.1:
|
||||
dev: false
|
||||
concat-map@0.0.1: {}
|
||||
|
||||
define-properties@1.1.3:
|
||||
dependencies:
|
||||
object-keys: 1.0.12
|
||||
dev: false
|
||||
|
||||
es-abstract@1.12.0:
|
||||
dependencies:
|
||||
@@ -189,20 +182,16 @@ snapshots:
|
||||
has: 1.0.3
|
||||
is-callable: 1.1.4
|
||||
is-regex: 1.0.4
|
||||
dev: false
|
||||
|
||||
es-to-primitive@1.2.0:
|
||||
dependencies:
|
||||
is-callable: 1.1.4
|
||||
is-date-object: 1.0.1
|
||||
is-symbol: 1.0.2
|
||||
dev: false
|
||||
|
||||
fs.realpath@1.0.0:
|
||||
dev: false
|
||||
fs.realpath@1.0.0: {}
|
||||
|
||||
function-bind@1.1.1:
|
||||
dev: false
|
||||
function-bind@1.1.1: {}
|
||||
|
||||
glob@7.1.3:
|
||||
dependencies:
|
||||
@@ -212,103 +201,80 @@ snapshots:
|
||||
minimatch: 3.0.4
|
||||
once: 1.4.0
|
||||
path-is-absolute: 1.0.1
|
||||
dev: false
|
||||
|
||||
graceful-fs@4.1.15:
|
||||
dev: false
|
||||
graceful-fs@4.1.15: {}
|
||||
|
||||
has-symbols@1.0.0:
|
||||
dev: false
|
||||
has-symbols@1.0.0: {}
|
||||
|
||||
has@1.0.3:
|
||||
dependencies:
|
||||
function-bind: 1.1.1
|
||||
dev: false
|
||||
|
||||
inflight@1.0.6:
|
||||
dependencies:
|
||||
once: 1.4.0
|
||||
wrappy: 1.0.2
|
||||
dev: false
|
||||
|
||||
inherits@2.0.3:
|
||||
dev: false
|
||||
inherits@2.0.3: {}
|
||||
|
||||
is-callable@1.1.4:
|
||||
dev: false
|
||||
is-callable@1.1.4: {}
|
||||
|
||||
is-date-object@1.0.1:
|
||||
dev: false
|
||||
is-date-object@1.0.1: {}
|
||||
|
||||
is-regex@1.0.4:
|
||||
dependencies:
|
||||
has: 1.0.3
|
||||
dev: false
|
||||
|
||||
is-symbol@1.0.2:
|
||||
dependencies:
|
||||
has-symbols: 1.0.0
|
||||
dev: false
|
||||
|
||||
is-windows@1.0.2:
|
||||
dev: false
|
||||
is-windows@1.0.2: {}
|
||||
|
||||
minimatch@3.0.4:
|
||||
dependencies:
|
||||
brace-expansion: 1.1.11
|
||||
dev: false
|
||||
|
||||
minimist@0.0.8:
|
||||
dev: false
|
||||
minimist@0.0.8: {}
|
||||
|
||||
mkdirp-promise@5.0.1:
|
||||
dependencies:
|
||||
mkdirp: 0.5.1
|
||||
dev: false
|
||||
|
||||
mkdirp@0.5.1:
|
||||
dependencies:
|
||||
minimist: 0.0.8
|
||||
dev: false
|
||||
|
||||
mz@2.7.0:
|
||||
dependencies:
|
||||
any-promise: 1.3.0
|
||||
object-assign: 4.1.1
|
||||
thenify-all: 1.6.0
|
||||
dev: false
|
||||
|
||||
object-assign@4.1.1:
|
||||
dev: false
|
||||
object-assign@4.1.1: {}
|
||||
|
||||
object-keys@1.0.12:
|
||||
dev: false
|
||||
object-keys@1.0.12: {}
|
||||
|
||||
object.getownpropertydescriptors@2.0.3:
|
||||
dependencies:
|
||||
define-properties: 1.1.3
|
||||
es-abstract: 1.12.0
|
||||
dev: false
|
||||
|
||||
once@1.4.0:
|
||||
dependencies:
|
||||
wrappy: 1.0.2
|
||||
dev: false
|
||||
|
||||
path-is-absolute@1.0.1:
|
||||
dev: false
|
||||
path-is-absolute@1.0.1: {}
|
||||
|
||||
rename-overwrite@1.0.3:
|
||||
dependencies:
|
||||
graceful-fs: 4.1.15
|
||||
rimraf: 2.6.2
|
||||
util.promisify: 1.0.0
|
||||
dev: false
|
||||
|
||||
rimraf@2.6.2:
|
||||
dependencies:
|
||||
glob: 7.1.3
|
||||
dev: false
|
||||
|
||||
symlink-dir@2.0.2:
|
||||
dependencies:
|
||||
@@ -319,23 +285,18 @@ snapshots:
|
||||
mkdirp-promise: 5.0.1
|
||||
mz: 2.7.0
|
||||
rename-overwrite: 1.0.3
|
||||
dev: false
|
||||
|
||||
thenify-all@1.6.0:
|
||||
dependencies:
|
||||
thenify: 3.3.0
|
||||
dev: false
|
||||
|
||||
thenify@3.3.0:
|
||||
dependencies:
|
||||
any-promise: 1.3.0
|
||||
dev: false
|
||||
|
||||
util.promisify@1.0.0:
|
||||
dependencies:
|
||||
define-properties: 1.1.3
|
||||
object.getownpropertydescriptors: 2.0.3
|
||||
dev: false
|
||||
|
||||
wrappy@1.0.2:
|
||||
dev: false
|
||||
wrappy@1.0.2: {}
|
||||
|
||||
@@ -28,18 +28,23 @@ importers:
|
||||
|
||||
packages:
|
||||
|
||||
/@pnpm.e2e/external-depend-on-internal-dep@1.0.0:
|
||||
'@pnpm.e2e/external-depend-on-internal-dep@1.0.0':
|
||||
resolution: {integrity: sha512-LAqiBIWE7ONGsqVizu0nGhAmqkQhAPHKTlXQVZSeCMrB1e8t5hbCtQs62KGSt81QYBYaQkhMdbv1/V9alZ98wA==}
|
||||
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
|
||||
|
||||
snapshots:
|
||||
|
||||
'@pnpm.e2e/external-depend-on-internal-dep@1.0.0':
|
||||
dependencies:
|
||||
'@pnpm.e2e/internal-f': link:packages/f
|
||||
|
||||
is-negative@1.0.0: {}
|
||||
|
||||
is-positive@1.0.0: {}
|
||||
|
||||
@@ -24,5 +24,4 @@ packages:
|
||||
|
||||
snapshots:
|
||||
|
||||
is-positive@1.0.0:
|
||||
dev: false
|
||||
is-positive@1.0.0: {}
|
||||
|
||||
@@ -20,5 +20,4 @@ packages:
|
||||
|
||||
snapshots:
|
||||
|
||||
is-positive@3.1.0:
|
||||
dev: false
|
||||
is-positive@3.1.0: {}
|
||||
|
||||
@@ -65,7 +65,6 @@ snapshots:
|
||||
fast-json-stable-stringify: 2.0.0
|
||||
json-schema-traverse: 0.4.1
|
||||
uri-js: 4.2.2
|
||||
dev: false
|
||||
|
||||
ajv@6.12.6:
|
||||
dependencies:
|
||||
@@ -73,35 +72,25 @@ snapshots:
|
||||
fast-json-stable-stringify: 2.1.0
|
||||
json-schema-traverse: 0.4.1
|
||||
uri-js: 4.4.1
|
||||
dev: false
|
||||
|
||||
fast-deep-equal@2.0.1:
|
||||
dev: false
|
||||
fast-deep-equal@2.0.1: {}
|
||||
|
||||
fast-deep-equal@3.1.3:
|
||||
dev: false
|
||||
fast-deep-equal@3.1.3: {}
|
||||
|
||||
fast-json-stable-stringify@2.0.0:
|
||||
dev: false
|
||||
fast-json-stable-stringify@2.0.0: {}
|
||||
|
||||
fast-json-stable-stringify@2.1.0:
|
||||
dev: false
|
||||
fast-json-stable-stringify@2.1.0: {}
|
||||
|
||||
json-schema-traverse@0.4.1:
|
||||
dev: false
|
||||
json-schema-traverse@0.4.1: {}
|
||||
|
||||
punycode@2.1.1:
|
||||
dev: false
|
||||
punycode@2.1.1: {}
|
||||
|
||||
punycode@2.3.0:
|
||||
dev: false
|
||||
punycode@2.3.0: {}
|
||||
|
||||
uri-js@4.2.2:
|
||||
dependencies:
|
||||
punycode: 2.1.1
|
||||
dev: false
|
||||
|
||||
uri-js@4.4.1:
|
||||
dependencies:
|
||||
punycode: 2.3.0
|
||||
dev: false
|
||||
|
||||
@@ -38,18 +38,14 @@ packages:
|
||||
|
||||
snapshots:
|
||||
|
||||
punycode@2.1.1:
|
||||
dev: false
|
||||
punycode@2.1.1: {}
|
||||
|
||||
punycode@2.3.0:
|
||||
dev: false
|
||||
punycode@2.3.0: {}
|
||||
|
||||
uri-js@4.2.2:
|
||||
dependencies:
|
||||
punycode: 2.1.1
|
||||
dev: false
|
||||
|
||||
uri-js@4.4.1:
|
||||
dependencies:
|
||||
punycode: 2.3.0
|
||||
dev: false
|
||||
|
||||
@@ -33,5 +33,4 @@ packages:
|
||||
|
||||
snapshots:
|
||||
|
||||
is-positive@1.0.0:
|
||||
dev: false
|
||||
is-positive@1.0.0: {}
|
||||
|
||||
@@ -24,5 +24,4 @@ packages:
|
||||
|
||||
snapshots:
|
||||
|
||||
is-positive@1.0.0:
|
||||
dev: false
|
||||
is-positive@1.0.0: {}
|
||||
|
||||
@@ -48,6 +48,7 @@
|
||||
"@pnpm/lockfile-types": "workspace:*",
|
||||
"@pnpm/lockfile-utils": "workspace:*",
|
||||
"@pnpm/lockfile-walker": "workspace:*",
|
||||
"@pnpm/lockfile.detect-dep-types": "workspace:*",
|
||||
"@pnpm/read-project-manifest": "workspace:*",
|
||||
"@pnpm/types": "workspace:*",
|
||||
"ramda": "npm:@pnpm/ramda@0.28.1"
|
||||
|
||||
@@ -2,6 +2,7 @@ import path from 'path'
|
||||
import { type Lockfile, type TarballResolution } from '@pnpm/lockfile-types'
|
||||
import { nameVerFromPkgSnapshot } from '@pnpm/lockfile-utils'
|
||||
import { lockfileWalkerGroupImporterSteps, type LockfileWalkerStep } from '@pnpm/lockfile-walker'
|
||||
import { detectDepTypes, type DepTypes, DepType } from '@pnpm/lockfile.detect-dep-types'
|
||||
import { type DependenciesField } from '@pnpm/types'
|
||||
import { safeReadProjectManifestOnly } from '@pnpm/read-project-manifest'
|
||||
import mapValues from 'ramda/src/map'
|
||||
@@ -30,9 +31,10 @@ export async function lockfileToAuditTree (
|
||||
): Promise<AuditTree> {
|
||||
const importerWalkers = lockfileWalkerGroupImporterSteps(lockfile, Object.keys(lockfile.importers), { include: opts?.include })
|
||||
const dependencies: Record<string, AuditNode> = {}
|
||||
const depTypes = detectDepTypes(lockfile)
|
||||
await Promise.all(
|
||||
importerWalkers.map(async (importerWalker) => {
|
||||
const importerDeps = lockfileToAuditNode(importerWalker.step)
|
||||
const importerDeps = lockfileToAuditNode(depTypes, importerWalker.step)
|
||||
// For some reason the registry responds with 500 if the keys in dependencies have slashes
|
||||
// see issue: https://github.com/pnpm/pnpm/issues/2848
|
||||
const depName = importerWalker.importerId.replace(/\//g, '__')
|
||||
@@ -60,13 +62,13 @@ export async function lockfileToAuditTree (
|
||||
return auditTree
|
||||
}
|
||||
|
||||
function lockfileToAuditNode (step: LockfileWalkerStep): Record<string, AuditNode> {
|
||||
function lockfileToAuditNode (depTypes: DepTypes, step: LockfileWalkerStep): Record<string, AuditNode> {
|
||||
const dependencies: Record<string, AuditNode> = {}
|
||||
for (const { depPath, pkgSnapshot, next } of step.dependencies) {
|
||||
const { name, version } = nameVerFromPkgSnapshot(depPath, pkgSnapshot)
|
||||
const subdeps = lockfileToAuditNode(next())
|
||||
const subdeps = lockfileToAuditNode(depTypes, next())
|
||||
const dep: AuditNode = {
|
||||
dev: pkgSnapshot.dev === true,
|
||||
dev: depTypes[depPath] === DepType.DevOnly,
|
||||
integrity: (pkgSnapshot.resolution as TarballResolution).integrity,
|
||||
version,
|
||||
}
|
||||
|
||||
@@ -33,6 +33,9 @@
|
||||
{
|
||||
"path": "../../reviewing/list"
|
||||
},
|
||||
{
|
||||
"path": "../detect-dep-types"
|
||||
},
|
||||
{
|
||||
"path": "../lockfile-file"
|
||||
},
|
||||
|
||||
13
lockfile/detect-dep-types/README.md
Normal file
13
lockfile/detect-dep-types/README.md
Normal file
@@ -0,0 +1,13 @@
|
||||
# @pnpm/lockfile.detect-dep-types
|
||||
|
||||
> Detect the types of dependencies
|
||||
|
||||
## Install
|
||||
|
||||
```
|
||||
pnpm add @pnpm/lockfile.detect-dep-types
|
||||
```
|
||||
|
||||
## License
|
||||
|
||||
[MIT](LICENSE)
|
||||
44
lockfile/detect-dep-types/package.json
Normal file
44
lockfile/detect-dep-types/package.json
Normal file
@@ -0,0 +1,44 @@
|
||||
{
|
||||
"name": "@pnpm/lockfile.detect-dep-types",
|
||||
"version": "0.0.0",
|
||||
"description": "Detect the types of dependencies",
|
||||
"main": "lib/index.js",
|
||||
"types": "lib/index.d.ts",
|
||||
"engines": {
|
||||
"node": ">=18.12"
|
||||
},
|
||||
"files": [
|
||||
"lib",
|
||||
"!*.map"
|
||||
],
|
||||
"scripts": {
|
||||
"lint": "eslint \"src/**/*.ts\"",
|
||||
"test": "pnpm run compile",
|
||||
"prepublishOnly": "pnpm run compile",
|
||||
"compile": "tsc --build && pnpm run lint --fix"
|
||||
},
|
||||
"repository": "https://github.com/pnpm/pnpm/blob/main/lockfile/detect-dep-types",
|
||||
"keywords": [
|
||||
"pnpm9",
|
||||
"pnpm",
|
||||
"shrinkwrap",
|
||||
"lockfile"
|
||||
],
|
||||
"license": "MIT",
|
||||
"bugs": {
|
||||
"url": "https://github.com/pnpm/pnpm/issues"
|
||||
},
|
||||
"homepage": "https://github.com/pnpm/pnpm/blob/main/lockfile/detect-dep-types#readme",
|
||||
"devDependencies": {
|
||||
"@pnpm/lockfile.detect-dep-types": "workspace:*",
|
||||
"tempy": "^1.0.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"@pnpm/dependency-path": "workspace:*",
|
||||
"@pnpm/lockfile-types": "workspace:*"
|
||||
},
|
||||
"funding": "https://opencollective.com/pnpm",
|
||||
"exports": {
|
||||
".": "./lib/index.js"
|
||||
}
|
||||
}
|
||||
77
lockfile/detect-dep-types/src/index.ts
Normal file
77
lockfile/detect-dep-types/src/index.ts
Normal file
@@ -0,0 +1,77 @@
|
||||
import { type Lockfile, type PackageSnapshots, type ResolvedDependencies } from '@pnpm/lockfile-types'
|
||||
import * as dp from '@pnpm/dependency-path'
|
||||
|
||||
export enum DepType {
|
||||
DevOnly,
|
||||
DevAndProd,
|
||||
ProdOnly
|
||||
}
|
||||
|
||||
export type DepTypes = Record<string, DepType>
|
||||
|
||||
export function detectDepTypes (lockfile: Lockfile): DepTypes {
|
||||
const dev: DepTypes = {}
|
||||
const devDepPaths = Object.values(lockfile.importers)
|
||||
.map((deps) => resolvedDepsToDepPaths(deps.devDependencies ?? {})).flat()
|
||||
const optionalDepPaths = Object.values(lockfile.importers)
|
||||
.map((deps) => resolvedDepsToDepPaths(deps.optionalDependencies ?? {})).flat()
|
||||
const prodDepPaths = Object.values(lockfile.importers)
|
||||
.map((deps) => resolvedDepsToDepPaths(deps.dependencies ?? {})).flat()
|
||||
const ctx = {
|
||||
packages: lockfile.packages ?? {},
|
||||
walked: new Set<string>(),
|
||||
notProdOnly: new Set<string>(),
|
||||
dev,
|
||||
}
|
||||
detectDepTypesInSubGraph(ctx, devDepPaths, {
|
||||
dev: true,
|
||||
})
|
||||
detectDepTypesInSubGraph(ctx, optionalDepPaths, {
|
||||
dev: false,
|
||||
})
|
||||
detectDepTypesInSubGraph(ctx, prodDepPaths, {
|
||||
dev: false,
|
||||
})
|
||||
return dev
|
||||
}
|
||||
|
||||
function detectDepTypesInSubGraph (
|
||||
ctx: {
|
||||
notProdOnly: Set<string>
|
||||
packages: PackageSnapshots
|
||||
walked: Set<string>
|
||||
dev: Record<string, DepType>
|
||||
},
|
||||
depPaths: string[],
|
||||
opts: {
|
||||
dev: boolean
|
||||
}
|
||||
) {
|
||||
for (const depPath of depPaths) {
|
||||
const key = `${depPath}:${opts.dev.toString()}`
|
||||
if (ctx.walked.has(key)) continue
|
||||
ctx.walked.add(key)
|
||||
if (!ctx.packages[depPath]) {
|
||||
continue
|
||||
}
|
||||
if (opts.dev) {
|
||||
ctx.notProdOnly.add(depPath)
|
||||
ctx.dev[depPath] = DepType.DevOnly
|
||||
} else if (ctx.dev[depPath] === DepType.DevOnly) { // keeping if dev is explicitly false
|
||||
ctx.dev[depPath] = DepType.DevAndProd
|
||||
} else if (ctx.dev[depPath] === undefined && !ctx.notProdOnly.has(depPath)) {
|
||||
ctx.dev[depPath] = DepType.ProdOnly
|
||||
}
|
||||
const depLockfile = ctx.packages[depPath]
|
||||
const newDependencies = resolvedDepsToDepPaths(depLockfile.dependencies ?? {})
|
||||
detectDepTypesInSubGraph(ctx, newDependencies, opts)
|
||||
const newOptionalDependencies = resolvedDepsToDepPaths(depLockfile.optionalDependencies ?? {})
|
||||
detectDepTypesInSubGraph(ctx, newOptionalDependencies, { dev: opts.dev })
|
||||
}
|
||||
}
|
||||
|
||||
function resolvedDepsToDepPaths (deps: ResolvedDependencies) {
|
||||
return Object.entries(deps)
|
||||
.map(([alias, ref]) => dp.refToRelative(ref, alias))
|
||||
.filter((depPath) => depPath !== null) as string[]
|
||||
}
|
||||
20
lockfile/detect-dep-types/tsconfig.json
Normal file
20
lockfile/detect-dep-types/tsconfig.json
Normal file
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"extends": "@pnpm/tsconfig",
|
||||
"compilerOptions": {
|
||||
"outDir": "lib",
|
||||
"rootDir": "src"
|
||||
},
|
||||
"include": [
|
||||
"src/**/*.ts",
|
||||
"../../__typings__/**/*.d.ts"
|
||||
],
|
||||
"references": [
|
||||
{
|
||||
"path": "../../packages/dependency-path"
|
||||
},
|
||||
{
|
||||
"path": "../lockfile-types"
|
||||
}
|
||||
],
|
||||
"composite": true
|
||||
}
|
||||
8
lockfile/detect-dep-types/tsconfig.lint.json
Normal file
8
lockfile/detect-dep-types/tsconfig.lint.json
Normal file
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"extends": "./tsconfig.json",
|
||||
"include": [
|
||||
"src/**/*.ts",
|
||||
"test/**/*.ts",
|
||||
"../../__typings__/**/*.d.ts"
|
||||
]
|
||||
}
|
||||
@@ -1,7 +1,6 @@
|
||||
import { type Lockfile } from '@pnpm/lockfile-types'
|
||||
import { type DependenciesField } from '@pnpm/types'
|
||||
import mapValues from 'ramda/src/map'
|
||||
import { filterImporter } from './filterImporter'
|
||||
import { filterLockfileByImporters } from './filterLockfileByImporters'
|
||||
|
||||
export function filterLockfile (
|
||||
lockfile: Lockfile,
|
||||
@@ -10,20 +9,8 @@ export function filterLockfile (
|
||||
skipped: Set<string>
|
||||
}
|
||||
): Lockfile {
|
||||
let pairs = Object.entries(lockfile.packages ?? {})
|
||||
.filter(([depPath]) => !opts.skipped.has(depPath))
|
||||
if (!opts.include.dependencies) {
|
||||
pairs = pairs.filter(([_, pkg]) => pkg.dev !== false || pkg.optional)
|
||||
}
|
||||
if (!opts.include.devDependencies) {
|
||||
pairs = pairs.filter(([_, pkg]) => pkg.dev !== true)
|
||||
}
|
||||
if (!opts.include.optionalDependencies) {
|
||||
pairs = pairs.filter(([_, pkg]) => !pkg.optional)
|
||||
}
|
||||
return {
|
||||
...lockfile,
|
||||
importers: mapValues((importer) => filterImporter(importer, opts.include), lockfile.importers),
|
||||
packages: Object.fromEntries(pairs),
|
||||
}
|
||||
return filterLockfileByImporters(lockfile, Object.keys(lockfile.importers), {
|
||||
...opts,
|
||||
failOnMissingDependencies: false,
|
||||
})
|
||||
}
|
||||
|
||||
@@ -33,7 +33,6 @@ test('filterByImporters(): only prod dependencies of one importer', () => {
|
||||
lockfileVersion: LOCKFILE_VERSION,
|
||||
packages: {
|
||||
'dev-dep@1.0.0': {
|
||||
dev: true,
|
||||
resolution: { integrity: '' },
|
||||
},
|
||||
'optional-dep@1.0.0': {
|
||||
@@ -259,7 +258,6 @@ test('filterByImporters(): do not include skipped packages', () => {
|
||||
lockfileVersion: LOCKFILE_VERSION,
|
||||
packages: {
|
||||
'dev-dep@1.0.0': {
|
||||
dev: true,
|
||||
resolution: { integrity: '' },
|
||||
},
|
||||
'optional-dep@1.0.0': {
|
||||
@@ -325,7 +323,6 @@ test('filterByImporters(): do not include skipped packages', () => {
|
||||
lockfileVersion: LOCKFILE_VERSION,
|
||||
packages: {
|
||||
'dev-dep@1.0.0': {
|
||||
dev: true,
|
||||
resolution: { integrity: '' },
|
||||
},
|
||||
'prod-dep-dep@1.0.0': {
|
||||
|
||||
@@ -61,7 +61,6 @@ test('filterByImportersAndEngine(): skip packages that are not installable', ()
|
||||
resolution: { integrity: '' },
|
||||
},
|
||||
'dev-dep@1.0.0': {
|
||||
dev: true,
|
||||
resolution: { integrity: '' },
|
||||
},
|
||||
'foo@1.0.0': {
|
||||
@@ -161,7 +160,6 @@ test('filterByImportersAndEngine(): skip packages that are not installable', ()
|
||||
resolution: { integrity: '' },
|
||||
},
|
||||
'dev-dep@1.0.0': {
|
||||
dev: true,
|
||||
resolution: { integrity: '' },
|
||||
},
|
||||
'foo@1.0.0': {
|
||||
@@ -248,7 +246,6 @@ test('filterByImportersAndEngine(): filter the packages that set os and cpu', ()
|
||||
resolution: { integrity: '' },
|
||||
},
|
||||
'dev-dep@1.0.0': {
|
||||
dev: true,
|
||||
resolution: { integrity: '' },
|
||||
},
|
||||
'foo@1.0.0': {
|
||||
@@ -347,7 +344,6 @@ test('filterByImportersAndEngine(): filter the packages that set os and cpu', ()
|
||||
resolution: { integrity: '' },
|
||||
},
|
||||
'dev-dep@1.0.0': {
|
||||
dev: true,
|
||||
resolution: { integrity: '' },
|
||||
},
|
||||
'foo@1.0.0': {
|
||||
@@ -424,7 +420,6 @@ test('filterByImportersAndEngine(): filter the packages that set libc', () => {
|
||||
resolution: { integrity: '' },
|
||||
},
|
||||
'dev-dep@1.0.0': {
|
||||
dev: true,
|
||||
resolution: { integrity: '' },
|
||||
},
|
||||
'foo@1.0.0': {
|
||||
@@ -522,7 +517,6 @@ test('filterByImportersAndEngine(): filter the packages that set libc', () => {
|
||||
resolution: { integrity: '' },
|
||||
},
|
||||
'dev-dep@1.0.0': {
|
||||
dev: true,
|
||||
resolution: { integrity: '' },
|
||||
},
|
||||
'foo@1.0.0': {
|
||||
|
||||
@@ -88,13 +88,12 @@ export type LockfileResolution = Resolution | {
|
||||
integrity: string
|
||||
}
|
||||
|
||||
export type PackageSnapshotV7 = Pick<PackageSnapshot, 'dev' | 'optional' | 'dependencies' | 'optionalDependencies' | 'transitivePeerDependencies'>
|
||||
export type PackageSnapshotV7 = Pick<PackageSnapshot, 'optional' | 'dependencies' | 'optionalDependencies' | 'transitivePeerDependencies'>
|
||||
|
||||
export type PackageInfo = Pick<PackageSnapshot, 'id' | 'patched' | 'hasBin' | 'name' | 'version' | 'resolution' | 'peerDependencies' | 'peerDependenciesMeta' | 'bundledDependencies' | 'engines' | 'cpu' | 'os' | 'libc' | 'deprecated'>
|
||||
|
||||
export interface PackageSnapshot {
|
||||
id?: string
|
||||
dev?: true | false
|
||||
optional?: true
|
||||
patched?: true
|
||||
hasBin?: true
|
||||
|
||||
@@ -9,7 +9,7 @@ export type LockfileFileV7 = Omit<InlineSpecifiersLockfile, 'importers' | 'packa
|
||||
Partial<InlineSpecifiersProjectSnapshot> &
|
||||
Partial<Pick<InlineSpecifiersLockfile, 'importers'>> & {
|
||||
packages?: Record<string, Pick<PackageSnapshot, 'resolution' | 'engines' | 'cpu' | 'os' | 'hasBin' | 'name' | 'version' | 'bundledDependencies' | 'peerDependencies' | 'peerDependenciesMeta' | 'deprecated'>>
|
||||
snapshots?: Record<string, Pick<PackageSnapshot, 'dependencies' | 'optionalDependencies' | 'patched' | 'dev' | 'optional' | 'transitivePeerDependencies' | 'id'>>
|
||||
snapshots?: Record<string, Pick<PackageSnapshot, 'dependencies' | 'optionalDependencies' | 'patched' | 'optional' | 'transitivePeerDependencies' | 'id'>>
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -31,14 +31,12 @@
|
||||
"homepage": "https://github.com/pnpm/pnpm/blob/main/lockfile/lockfile-walker#readme",
|
||||
"devDependencies": {
|
||||
"@pnpm/lockfile-walker": "workspace:*",
|
||||
"@types/ramda": "0.28.20",
|
||||
"tempy": "^1.0.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"@pnpm/dependency-path": "workspace:*",
|
||||
"@pnpm/lockfile-types": "workspace:*",
|
||||
"@pnpm/types": "workspace:*",
|
||||
"ramda": "npm:@pnpm/ramda@0.28.1"
|
||||
"@pnpm/types": "workspace:*"
|
||||
},
|
||||
"funding": "https://opencollective.com/pnpm",
|
||||
"exports": {
|
||||
|
||||
@@ -127,22 +127,18 @@ function copyPackageSnapshots (
|
||||
const ctx = {
|
||||
copiedSnapshots,
|
||||
nonOptional: new Set<string>(),
|
||||
notProdOnly: new Set<string>(),
|
||||
originalPackages,
|
||||
walked: new Set<string>(),
|
||||
warn: opts.warn,
|
||||
}
|
||||
|
||||
copyDependencySubGraph(ctx, opts.devDepPaths, {
|
||||
dev: true,
|
||||
optional: false,
|
||||
})
|
||||
copyDependencySubGraph(ctx, opts.optionalDepPaths, {
|
||||
dev: false,
|
||||
optional: true,
|
||||
})
|
||||
copyDependencySubGraph(ctx, opts.prodDepPaths, {
|
||||
dev: false,
|
||||
optional: false,
|
||||
})
|
||||
|
||||
@@ -159,19 +155,17 @@ function copyDependencySubGraph (
|
||||
ctx: {
|
||||
copiedSnapshots: PackageSnapshots
|
||||
nonOptional: Set<string>
|
||||
notProdOnly: Set<string>
|
||||
originalPackages: PackageSnapshots
|
||||
walked: Set<string>
|
||||
warn: (msg: string) => void
|
||||
},
|
||||
depPaths: string[],
|
||||
opts: {
|
||||
dev: boolean
|
||||
optional: boolean
|
||||
}
|
||||
) {
|
||||
for (const depPath of depPaths) {
|
||||
const key = `${depPath}:${opts.optional.toString()}:${opts.dev.toString()}`
|
||||
const key = `${depPath}:${opts.optional.toString()}`
|
||||
if (ctx.walked.has(key)) continue
|
||||
ctx.walked.add(key)
|
||||
if (!ctx.originalPackages[depPath]) {
|
||||
@@ -190,17 +184,9 @@ function copyDependencySubGraph (
|
||||
ctx.nonOptional.add(depPath)
|
||||
delete depLockfile.optional
|
||||
}
|
||||
if (opts.dev) {
|
||||
ctx.notProdOnly.add(depPath)
|
||||
depLockfile.dev = true
|
||||
} else if (depLockfile.dev === true) { // keeping if dev is explicitly false
|
||||
delete depLockfile.dev
|
||||
} else if (depLockfile.dev === undefined && !ctx.notProdOnly.has(depPath)) {
|
||||
depLockfile.dev = false
|
||||
}
|
||||
const newDependencies = resolvedDepsToDepPaths(depLockfile.dependencies ?? {})
|
||||
copyDependencySubGraph(ctx, newDependencies, opts)
|
||||
const newOptionalDependencies = resolvedDepsToDepPaths(depLockfile.optionalDependencies ?? {})
|
||||
copyDependencySubGraph(ctx, newOptionalDependencies, { dev: opts.dev, optional: true })
|
||||
copyDependencySubGraph(ctx, newOptionalDependencies, { optional: true })
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,13 +27,11 @@ test('remove one redundant package', () => {
|
||||
lockfileVersion: LOCKFILE_VERSION,
|
||||
packages: {
|
||||
'is-positive@1.0.0': {
|
||||
dev: false,
|
||||
resolution: {
|
||||
integrity: 'sha1-ChbBDewTLAqLCzb793Fo5VDvg/g=',
|
||||
},
|
||||
},
|
||||
'is-positive@2.0.0': {
|
||||
dev: false,
|
||||
resolution: {
|
||||
integrity: 'sha1-ChbBDewTLAqLCzb793Fo5VDvg/g=',
|
||||
},
|
||||
@@ -60,7 +58,6 @@ test('remove one redundant package', () => {
|
||||
lockfileVersion: LOCKFILE_VERSION,
|
||||
packages: {
|
||||
'is-positive@1.0.0': {
|
||||
dev: false,
|
||||
resolution: {
|
||||
integrity: 'sha1-ChbBDewTLAqLCzb793Fo5VDvg/g=',
|
||||
},
|
||||
@@ -118,19 +115,16 @@ test('keep all', () => {
|
||||
dependencies: {
|
||||
'is-positive': '2.0.0',
|
||||
},
|
||||
dev: false,
|
||||
resolution: {
|
||||
integrity: 'sha1-ChbBDewTLAqLCzb793Fo5VDvg/g=',
|
||||
},
|
||||
},
|
||||
'is-positive@1.0.0': {
|
||||
dev: false,
|
||||
resolution: {
|
||||
integrity: 'sha1-ChbBDewTLAqLCzb793Fo5VDvg/g=',
|
||||
},
|
||||
},
|
||||
'is-positive@2.0.0': {
|
||||
dev: false,
|
||||
resolution: {
|
||||
integrity: 'sha1-ChbBDewTLAqLCzb793Fo5VDvg/g=',
|
||||
},
|
||||
@@ -163,19 +157,16 @@ test('keep all', () => {
|
||||
dependencies: {
|
||||
'is-positive': '2.0.0',
|
||||
},
|
||||
dev: false,
|
||||
resolution: {
|
||||
integrity: 'sha1-ChbBDewTLAqLCzb793Fo5VDvg/g=',
|
||||
},
|
||||
},
|
||||
'is-positive@1.0.0': {
|
||||
dev: false,
|
||||
resolution: {
|
||||
integrity: 'sha1-ChbBDewTLAqLCzb793Fo5VDvg/g=',
|
||||
},
|
||||
},
|
||||
'is-positive@2.0.0': {
|
||||
dev: false,
|
||||
resolution: {
|
||||
integrity: 'sha1-ChbBDewTLAqLCzb793Fo5VDvg/g=',
|
||||
},
|
||||
@@ -220,7 +211,6 @@ test('optional dependency should have optional = true', () => {
|
||||
},
|
||||
},
|
||||
'is-positive@1.0.0': {
|
||||
dev: false,
|
||||
resolution: {
|
||||
integrity: 'sha1-ChbBDewTLAqLCzb793Fo5VDvg/g=',
|
||||
},
|
||||
@@ -229,13 +219,11 @@ test('optional dependency should have optional = true', () => {
|
||||
dependencies: {
|
||||
foo: '1.0.0',
|
||||
},
|
||||
dev: false,
|
||||
resolution: {
|
||||
integrity: 'sha1-ChbBDewTLAqLCzb793Fo5VDvg/g=',
|
||||
},
|
||||
},
|
||||
'pkg-with-good-optional@1.0.0': {
|
||||
dev: false,
|
||||
optionalDependencies: {
|
||||
foo: '1.0.0',
|
||||
'is-positive': '1.0.0',
|
||||
@@ -276,7 +264,6 @@ test('optional dependency should have optional = true', () => {
|
||||
lockfileVersion: LOCKFILE_VERSION,
|
||||
packages: {
|
||||
'foo-child@1.0.0': {
|
||||
dev: false,
|
||||
resolution: {
|
||||
integrity: 'sha1-ChbBDewTLAqLCzb793Fo5VDvg/g=',
|
||||
},
|
||||
@@ -285,13 +272,11 @@ test('optional dependency should have optional = true', () => {
|
||||
dependencies: {
|
||||
'foo-child': '1.0.0',
|
||||
},
|
||||
dev: false,
|
||||
resolution: {
|
||||
integrity: 'sha1-ChbBDewTLAqLCzb793Fo5VDvg/g=',
|
||||
},
|
||||
},
|
||||
'is-positive@1.0.0': {
|
||||
dev: false,
|
||||
optional: true,
|
||||
resolution: {
|
||||
integrity: 'sha1-ChbBDewTLAqLCzb793Fo5VDvg/g=',
|
||||
@@ -301,13 +286,11 @@ test('optional dependency should have optional = true', () => {
|
||||
dependencies: {
|
||||
foo: '1.0.0',
|
||||
},
|
||||
dev: false,
|
||||
resolution: {
|
||||
integrity: 'sha1-ChbBDewTLAqLCzb793Fo5VDvg/g=',
|
||||
},
|
||||
},
|
||||
'pkg-with-good-optional@1.0.0': {
|
||||
dev: false,
|
||||
optionalDependencies: {
|
||||
foo: '1.0.0',
|
||||
'is-positive': '1.0.0',
|
||||
@@ -337,13 +320,11 @@ test('optional dependency should not have optional = true if used not only as op
|
||||
lockfileVersion: LOCKFILE_VERSION,
|
||||
packages: {
|
||||
'is-positive@1.0.0': {
|
||||
dev: false,
|
||||
resolution: {
|
||||
integrity: 'sha1-ChbBDewTLAqLCzb793Fo5VDvg/g=',
|
||||
},
|
||||
},
|
||||
'pkg-with-good-optional@1.0.0': {
|
||||
dev: false,
|
||||
optionalDependencies: {
|
||||
'is-positive': '1.0.0',
|
||||
},
|
||||
@@ -376,13 +357,11 @@ test('optional dependency should not have optional = true if used not only as op
|
||||
lockfileVersion: LOCKFILE_VERSION,
|
||||
packages: {
|
||||
'is-positive@1.0.0': {
|
||||
dev: false,
|
||||
resolution: {
|
||||
integrity: 'sha1-ChbBDewTLAqLCzb793Fo5VDvg/g=',
|
||||
},
|
||||
},
|
||||
'pkg-with-good-optional@1.0.0': {
|
||||
dev: false,
|
||||
optionalDependencies: {
|
||||
'is-positive': '1.0.0',
|
||||
},
|
||||
@@ -394,207 +373,6 @@ test('optional dependency should not have optional = true if used not only as op
|
||||
})
|
||||
})
|
||||
|
||||
test('dev dependency should have dev = true', () => {
|
||||
expect(pruneLockfile({
|
||||
importers: {
|
||||
'.': {
|
||||
dependencies: {
|
||||
'pkg-with-good-optional': '1.0.0',
|
||||
},
|
||||
devDependencies: {
|
||||
'is-positive': '1.0.0',
|
||||
},
|
||||
specifiers: {
|
||||
'is-positive': '^1.0.0',
|
||||
'pkg-with-good-optional': '^1.0.0',
|
||||
},
|
||||
},
|
||||
},
|
||||
lockfileVersion: LOCKFILE_VERSION,
|
||||
packages: {
|
||||
'is-positive@1.0.0': {
|
||||
resolution: {
|
||||
integrity: 'sha1-ChbBDewTLAqLCzb793Fo5VDvg/g=',
|
||||
},
|
||||
},
|
||||
'pkg-with-good-optional@1.0.0': {
|
||||
dev: false,
|
||||
resolution: {
|
||||
integrity: 'sha1-ChbBDewTLAqLCzb793Fo5VDvg/g=',
|
||||
},
|
||||
},
|
||||
},
|
||||
}, {
|
||||
name: 'foo',
|
||||
version: '1.0.0',
|
||||
|
||||
dependencies: {
|
||||
'pkg-with-good-optional': '^1.0.0',
|
||||
},
|
||||
devDependencies: {
|
||||
'is-positive': '^1.0.0',
|
||||
},
|
||||
}, '.', DEFAULT_OPTS)).toStrictEqual({
|
||||
importers: {
|
||||
'.': {
|
||||
dependencies: {
|
||||
'pkg-with-good-optional': '1.0.0',
|
||||
},
|
||||
devDependencies: {
|
||||
'is-positive': '1.0.0',
|
||||
},
|
||||
specifiers: {
|
||||
'is-positive': '^1.0.0',
|
||||
'pkg-with-good-optional': '^1.0.0',
|
||||
},
|
||||
},
|
||||
},
|
||||
lockfileVersion: LOCKFILE_VERSION,
|
||||
packages: {
|
||||
'is-positive@1.0.0': {
|
||||
dev: true,
|
||||
resolution: {
|
||||
integrity: 'sha1-ChbBDewTLAqLCzb793Fo5VDvg/g=',
|
||||
},
|
||||
},
|
||||
'pkg-with-good-optional@1.0.0': {
|
||||
dev: false,
|
||||
resolution: {
|
||||
integrity: 'sha1-ChbBDewTLAqLCzb793Fo5VDvg/g=',
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
})
|
||||
|
||||
test('dev dependency should not have dev = true if it is used not only as dev', () => {
|
||||
expect(pruneLockfile({
|
||||
importers: {
|
||||
'.': {
|
||||
dependencies: {
|
||||
'some-pkg': '1.0.0',
|
||||
},
|
||||
devDependencies: {
|
||||
'is-positive': '1.0.0',
|
||||
},
|
||||
specifiers: {
|
||||
'is-positive': '^1.0.0',
|
||||
'some-pkg': '^1.0.0',
|
||||
},
|
||||
},
|
||||
},
|
||||
lockfileVersion: LOCKFILE_VERSION,
|
||||
packages: {
|
||||
'is-positive@1.0.0': {
|
||||
resolution: {
|
||||
integrity: 'sha1-ChbBDewTLAqLCzb793Fo5VDvg/g=',
|
||||
},
|
||||
},
|
||||
'some-pkg@1.0.0': {
|
||||
dependencies: {
|
||||
'is-positive': '1.0.0',
|
||||
},
|
||||
dev: false,
|
||||
resolution: {
|
||||
integrity: 'sha1-ChbBDewTLAqLCzb793Fo5VDvg/g=',
|
||||
},
|
||||
},
|
||||
},
|
||||
}, {
|
||||
name: 'foo',
|
||||
version: '1.0.0',
|
||||
|
||||
dependencies: {
|
||||
'some-pkg': '^1.0.0',
|
||||
},
|
||||
devDependencies: {
|
||||
'is-positive': '^1.0.0',
|
||||
},
|
||||
}, '.', DEFAULT_OPTS)).toStrictEqual({
|
||||
importers: {
|
||||
'.': {
|
||||
dependencies: {
|
||||
'some-pkg': '1.0.0',
|
||||
},
|
||||
devDependencies: {
|
||||
'is-positive': '1.0.0',
|
||||
},
|
||||
specifiers: {
|
||||
'is-positive': '^1.0.0',
|
||||
'some-pkg': '^1.0.0',
|
||||
},
|
||||
},
|
||||
},
|
||||
lockfileVersion: LOCKFILE_VERSION,
|
||||
packages: {
|
||||
'is-positive@1.0.0': {
|
||||
resolution: {
|
||||
integrity: 'sha1-ChbBDewTLAqLCzb793Fo5VDvg/g=',
|
||||
},
|
||||
},
|
||||
'some-pkg@1.0.0': {
|
||||
dependencies: {
|
||||
'is-positive': '1.0.0',
|
||||
},
|
||||
dev: false,
|
||||
resolution: {
|
||||
integrity: 'sha1-ChbBDewTLAqLCzb793Fo5VDvg/g=',
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
})
|
||||
|
||||
test('the dev field should be updated to dev = false if it is not a dev dependency anymore', () => {
|
||||
expect(pruneLockfile({
|
||||
importers: {
|
||||
'.': {
|
||||
dependencies: {
|
||||
a: '1.0.0',
|
||||
},
|
||||
specifiers: {
|
||||
a: '^1.0.0',
|
||||
},
|
||||
},
|
||||
},
|
||||
lockfileVersion: LOCKFILE_VERSION,
|
||||
packages: {
|
||||
'a@1.0.0': {
|
||||
resolution: {
|
||||
integrity: 'sha1-ChbBDewTLAqLCzb793Fo5VDvg/g=',
|
||||
},
|
||||
},
|
||||
},
|
||||
}, {
|
||||
name: 'foo',
|
||||
version: '1.0.0',
|
||||
|
||||
dependencies: {
|
||||
a: '^1.0.0',
|
||||
},
|
||||
}, '.', DEFAULT_OPTS)).toStrictEqual({
|
||||
importers: {
|
||||
'.': {
|
||||
dependencies: {
|
||||
a: '1.0.0',
|
||||
},
|
||||
specifiers: {
|
||||
a: '^1.0.0',
|
||||
},
|
||||
},
|
||||
},
|
||||
lockfileVersion: LOCKFILE_VERSION,
|
||||
packages: {
|
||||
'a@1.0.0': {
|
||||
dev: false,
|
||||
resolution: {
|
||||
integrity: 'sha1-ChbBDewTLAqLCzb793Fo5VDvg/g=',
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
})
|
||||
|
||||
test('subdependency is both optional and dev', () => {
|
||||
expect(pruneLockfile(yaml`
|
||||
importers:
|
||||
@@ -648,20 +426,17 @@ test('subdependency is both optional and dev', () => {
|
||||
lockfileVersion: 5
|
||||
packages:
|
||||
parent@1.0.0:
|
||||
dev: true
|
||||
optionalDependencies:
|
||||
subdep: 1.0.0
|
||||
subdep2: 1.0.0
|
||||
resolution:
|
||||
integrity: sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=
|
||||
prod-parent@1.0.0:
|
||||
dev: false
|
||||
dependencies:
|
||||
subdep2: 1.0.0
|
||||
resolution:
|
||||
integrity: sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=
|
||||
subdep@1.0.0:
|
||||
dev: true
|
||||
optional: true
|
||||
resolution:
|
||||
integrity: sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=
|
||||
@@ -671,75 +446,6 @@ test('subdependency is both optional and dev', () => {
|
||||
`)
|
||||
})
|
||||
|
||||
test('dev = true is removed if dependency is used both as dev and prod dependency', () => {
|
||||
expect(pruneLockfile(yaml`
|
||||
importers:
|
||||
.:
|
||||
dependencies:
|
||||
foo: inflight@1.0.6
|
||||
devDependencies:
|
||||
inflight: 1.0.6
|
||||
specifiers:
|
||||
foo: 'npm:inflight@^1.0.6'
|
||||
inflight: ^1.0.6
|
||||
lockfileVersion: 5
|
||||
packages:
|
||||
inflight@1.0.6:
|
||||
dev: true
|
||||
dependencies:
|
||||
once: 1.4.0
|
||||
wrappy: 1.0.2
|
||||
resolution:
|
||||
integrity: sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=
|
||||
once@1.4.0:
|
||||
dev: true
|
||||
dependencies:
|
||||
wrappy: 1.0.2
|
||||
resolution:
|
||||
integrity: sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
|
||||
wrappy@1.0.2:
|
||||
dev: true
|
||||
resolution:
|
||||
integrity: sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
|
||||
`, {
|
||||
name: 'foo',
|
||||
version: '1.0.0',
|
||||
|
||||
dependencies: {
|
||||
foo: 'npm:inflight@^1.0.6',
|
||||
},
|
||||
devDependencies: {
|
||||
inflight: '^1.0.6',
|
||||
},
|
||||
}, '.', DEFAULT_OPTS)).toStrictEqual(yaml`
|
||||
importers:
|
||||
.:
|
||||
dependencies:
|
||||
foo: inflight@1.0.6
|
||||
devDependencies:
|
||||
inflight: 1.0.6
|
||||
specifiers:
|
||||
foo: 'npm:inflight@^1.0.6'
|
||||
inflight: ^1.0.6
|
||||
lockfileVersion: 5
|
||||
packages:
|
||||
inflight@1.0.6:
|
||||
dependencies:
|
||||
once: 1.4.0
|
||||
wrappy: 1.0.2
|
||||
resolution:
|
||||
integrity: sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=
|
||||
once@1.4.0:
|
||||
dependencies:
|
||||
wrappy: 1.0.2
|
||||
resolution:
|
||||
integrity: sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
|
||||
wrappy@1.0.2:
|
||||
resolution:
|
||||
integrity: sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
|
||||
`)
|
||||
})
|
||||
|
||||
test('optional = true is removed if dependency is used both as optional and prod dependency', () => {
|
||||
expect(pruneLockfile(yaml`
|
||||
importers:
|
||||
@@ -793,20 +499,17 @@ test('optional = true is removed if dependency is used both as optional and prod
|
||||
lockfileVersion: 5
|
||||
packages:
|
||||
inflight@1.0.6:
|
||||
dev: false
|
||||
dependencies:
|
||||
once: 1.4.0
|
||||
wrappy: 1.0.2
|
||||
resolution:
|
||||
integrity: sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=
|
||||
once@1.4.0:
|
||||
dev: false
|
||||
dependencies:
|
||||
wrappy: 1.0.2
|
||||
resolution:
|
||||
integrity: sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
|
||||
wrappy@1.0.2:
|
||||
dev: false
|
||||
resolution:
|
||||
integrity: sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
|
||||
`)
|
||||
@@ -878,7 +581,6 @@ test(`ignore dependencies that are in package.json but are not in ${WANTED_LOCKF
|
||||
lockfileVersion: LOCKFILE_VERSION,
|
||||
packages: {
|
||||
'is-positive@1.0.0': {
|
||||
dev: false,
|
||||
resolution: {
|
||||
integrity: 'sha1-ChbBDewTLAqLCzb793Fo5VDvg/g=',
|
||||
},
|
||||
@@ -906,7 +608,6 @@ test(`ignore dependencies that are in package.json but are not in ${WANTED_LOCKF
|
||||
lockfileVersion: LOCKFILE_VERSION,
|
||||
packages: {
|
||||
'is-positive@1.0.0': {
|
||||
dev: false,
|
||||
resolution: {
|
||||
integrity: 'sha1-ChbBDewTLAqLCzb793Fo5VDvg/g=',
|
||||
},
|
||||
@@ -931,7 +632,6 @@ test('keep lockfileMinorVersion, if present', () => {
|
||||
lockfileVersion: 5.2,
|
||||
packages: {
|
||||
'is-positive@1.0.0': {
|
||||
dev: false,
|
||||
resolution: {
|
||||
integrity: 'sha1-ChbBDewTLAqLCzb793Fo5VDvg/g=',
|
||||
},
|
||||
@@ -958,7 +658,6 @@ test('keep lockfileMinorVersion, if present', () => {
|
||||
lockfileVersion: 5.2,
|
||||
packages: {
|
||||
'is-positive@1.0.0': {
|
||||
dev: false,
|
||||
resolution: {
|
||||
integrity: 'sha1-ChbBDewTLAqLCzb793Fo5VDvg/g=',
|
||||
},
|
||||
@@ -983,7 +682,6 @@ test('keep linked package even if it is not in package.json', () => {
|
||||
lockfileVersion: LOCKFILE_VERSION,
|
||||
packages: {
|
||||
'is-negative@1.0.0': {
|
||||
dev: false,
|
||||
resolution: {
|
||||
integrity: 'sha1-ChbBDewTLAqLCzb793Fo5VDvg/g=',
|
||||
},
|
||||
@@ -1011,7 +709,6 @@ test('keep linked package even if it is not in package.json', () => {
|
||||
lockfileVersion: LOCKFILE_VERSION,
|
||||
packages: {
|
||||
'is-negative@1.0.0': {
|
||||
dev: false,
|
||||
resolution: {
|
||||
integrity: 'sha1-ChbBDewTLAqLCzb793Fo5VDvg/g=',
|
||||
},
|
||||
@@ -1043,19 +740,16 @@ test("prune: don't remove package used by another importer", () => {
|
||||
lockfileVersion: LOCKFILE_VERSION,
|
||||
packages: {
|
||||
'is-negative@1.0.0': {
|
||||
dev: false,
|
||||
resolution: {
|
||||
integrity: 'sha1-ChbBDewTLAqLCzb793Fo5VDvg/g=',
|
||||
},
|
||||
},
|
||||
'is-positive@1.0.0': {
|
||||
dev: false,
|
||||
resolution: {
|
||||
integrity: 'sha1-ChbBDewTLAqLCzb793Fo5VDvg/g=',
|
||||
},
|
||||
},
|
||||
'is-positive@2.0.0': {
|
||||
dev: false,
|
||||
resolution: {
|
||||
integrity: 'sha1-ChbBDewTLAqLCzb793Fo5VDvg/g=',
|
||||
},
|
||||
@@ -1088,13 +782,11 @@ test("prune: don't remove package used by another importer", () => {
|
||||
lockfileVersion: LOCKFILE_VERSION,
|
||||
packages: {
|
||||
'is-negative@1.0.0': {
|
||||
dev: false,
|
||||
resolution: {
|
||||
integrity: 'sha1-ChbBDewTLAqLCzb793Fo5VDvg/g=',
|
||||
},
|
||||
},
|
||||
'is-positive@1.0.0': {
|
||||
dev: false,
|
||||
resolution: {
|
||||
integrity: 'sha1-ChbBDewTLAqLCzb793Fo5VDvg/g=',
|
||||
},
|
||||
@@ -1118,13 +810,11 @@ test('pruneSharedLockfile: remove one redundant package', () => {
|
||||
lockfileVersion: LOCKFILE_VERSION,
|
||||
packages: {
|
||||
'is-positive@1.0.0': {
|
||||
dev: false,
|
||||
resolution: {
|
||||
integrity: 'sha1-ChbBDewTLAqLCzb793Fo5VDvg/g=',
|
||||
},
|
||||
},
|
||||
'is-positive@2.0.0': {
|
||||
dev: false,
|
||||
resolution: {
|
||||
integrity: 'sha1-ChbBDewTLAqLCzb793Fo5VDvg/g=',
|
||||
},
|
||||
@@ -1144,7 +834,6 @@ test('pruneSharedLockfile: remove one redundant package', () => {
|
||||
lockfileVersion: LOCKFILE_VERSION,
|
||||
packages: {
|
||||
'is-positive@1.0.0': {
|
||||
dev: false,
|
||||
resolution: {
|
||||
integrity: 'sha1-ChbBDewTLAqLCzb793Fo5VDvg/g=',
|
||||
},
|
||||
|
||||
@@ -51,11 +51,8 @@ test('installing aliased dependency', async () => {
|
||||
},
|
||||
},
|
||||
snapshots: {
|
||||
'is-negative@1.0.0': {
|
||||
dev: false,
|
||||
},
|
||||
'is-negative@1.0.0': {},
|
||||
'is-positive@3.1.0': {
|
||||
dev: false,
|
||||
},
|
||||
},
|
||||
})
|
||||
@@ -112,14 +109,11 @@ test('a dependency has an aliased subdependency', async () => {
|
||||
},
|
||||
},
|
||||
snapshots: {
|
||||
'@pnpm.e2e/dep-of-pkg-with-1-dep@100.1.0': {
|
||||
dev: false,
|
||||
},
|
||||
'@pnpm.e2e/dep-of-pkg-with-1-dep@100.1.0': {},
|
||||
'@pnpm.e2e/pkg-with-1-aliased-dep@100.0.0': {
|
||||
dependencies: {
|
||||
dep: '@pnpm.e2e/dep-of-pkg-with-1-dep@100.1.0',
|
||||
},
|
||||
dev: false,
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
@@ -58,7 +58,6 @@ test('fix broken lockfile with --fix-lockfile', async () => {
|
||||
expect(lockfile.packages?.['core-js-pure@3.16.2']?.resolution).toEqual({
|
||||
integrity: 'sha512-oxKe64UH049mJqrKkynWp6Vu0Rlm/BTXO/bJZuN2mmR3RtOFNepLlSWDd1eo16PzHpQAoNG97rLU1V/YxesJjw==',
|
||||
})
|
||||
expect(lockfile.snapshots?.['core-js-pure@3.16.2']?.dev).toBeTruthy()
|
||||
})
|
||||
|
||||
test('--fix-lockfile should preserve all locked dependencies version', async () => {
|
||||
@@ -214,7 +213,6 @@ test('--fix-lockfile should preserve all locked dependencies version', async ()
|
||||
expect(lockfile.packages?.['@babel/runtime-corejs3@7.15.3']?.engines).toEqual({
|
||||
node: '>=6.9.0',
|
||||
})
|
||||
expect(lockfile.snapshots?.['@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({
|
||||
@@ -223,23 +221,19 @@ test('--fix-lockfile should preserve all locked dependencies version', async ()
|
||||
expect(lockfile.packages?.['@babel/runtime-corejs3@7.15.4']?.engines).toEqual({
|
||||
node: '>=6.9.0',
|
||||
})
|
||||
expect(lockfile.snapshots?.['@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.snapshots?.['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({
|
||||
integrity: 'sha512-YusrqwiOTTn8058JDa0cv9unbXdIiIgcgI9gXso0ey4WgkFLd3lYlV9rp9n7nDCsYxXsMDTjA4m1h3T348mdlQ==',
|
||||
})
|
||||
expect(lockfile.snapshots?.['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({
|
||||
integrity: 'sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==',
|
||||
})
|
||||
expect(lockfile.snapshots?.['regenerator-runtime@0.13.9']?.dev).toBeFalsy()
|
||||
})
|
||||
|
||||
test(
|
||||
|
||||
@@ -157,7 +157,6 @@ test('inject local packages', async () => {
|
||||
'is-negative': '1.0.0',
|
||||
'is-positive': '1.0.0',
|
||||
},
|
||||
dev: false,
|
||||
})
|
||||
expect(lockfile.packages['project-2@file:project-2']).toEqual({
|
||||
resolution: {
|
||||
@@ -170,7 +169,6 @@ test('inject local packages', async () => {
|
||||
'project-1': 'file:project-1(is-positive@2.0.0)',
|
||||
},
|
||||
transitivePeerDependencies: ['is-positive'],
|
||||
dev: false,
|
||||
})
|
||||
|
||||
const modulesState = rootModules.readModulesManifest()
|
||||
@@ -227,7 +225,6 @@ test('inject local packages', async () => {
|
||||
'is-negative': '2.0.0',
|
||||
'is-positive': '1.0.0',
|
||||
},
|
||||
dev: false,
|
||||
})
|
||||
const modulesState = rootModules.readModulesManifest()
|
||||
expect(modulesState?.injectedDeps?.['project-1'].length).toEqual(2)
|
||||
@@ -377,7 +374,6 @@ test('inject local packages declared via file protocol', async () => {
|
||||
'is-negative': '1.0.0',
|
||||
'is-positive': '1.0.0',
|
||||
},
|
||||
dev: false,
|
||||
})
|
||||
expect(lockfile.packages['project-1@file:project-1']).toEqual({
|
||||
resolution: {
|
||||
@@ -393,7 +389,6 @@ test('inject local packages declared via file protocol', async () => {
|
||||
'project-1': 'file:project-1(is-positive@2.0.0)',
|
||||
},
|
||||
transitivePeerDependencies: ['is-positive'],
|
||||
dev: false,
|
||||
})
|
||||
expect(lockfile.packages['project-2@file:project-2']).toEqual({
|
||||
resolution: {
|
||||
@@ -448,7 +443,6 @@ test('inject local packages declared via file protocol', async () => {
|
||||
'is-negative': '2.0.0',
|
||||
'is-positive': '1.0.0',
|
||||
},
|
||||
dev: false,
|
||||
})
|
||||
expect(lockfile.packages['project-1@file:project-1']).toEqual({
|
||||
resolution: {
|
||||
@@ -592,7 +586,6 @@ test('inject local packages when the file protocol is used', async () => {
|
||||
'is-negative': '1.0.0',
|
||||
'is-positive': '1.0.0',
|
||||
},
|
||||
dev: false,
|
||||
})
|
||||
expect(lockfile.packages['project-1@file:project-1']).toEqual({
|
||||
resolution: {
|
||||
@@ -608,7 +601,6 @@ test('inject local packages when the file protocol is used', async () => {
|
||||
'project-1': 'file:project-1(is-positive@2.0.0)',
|
||||
},
|
||||
transitivePeerDependencies: ['is-positive'],
|
||||
dev: false,
|
||||
})
|
||||
expect(lockfile.packages['project-2@file:project-2']).toEqual({
|
||||
resolution: {
|
||||
@@ -662,7 +654,6 @@ test('inject local packages when the file protocol is used', async () => {
|
||||
'is-negative': '2.0.0',
|
||||
'is-positive': '1.0.0',
|
||||
},
|
||||
dev: false,
|
||||
})
|
||||
expect(lockfile.packages['project-1@file:project-1']).toEqual({
|
||||
resolution: {
|
||||
@@ -784,7 +775,6 @@ test('inject local packages and relink them after build', async () => {
|
||||
'is-negative': '1.0.0',
|
||||
'is-positive': '1.0.0',
|
||||
},
|
||||
dev: false,
|
||||
})
|
||||
expect(lockfile.packages['project-1@file:project-1']).toEqual({
|
||||
resolution: {
|
||||
@@ -894,7 +884,6 @@ test('inject local packages and relink them after build (file protocol is used)'
|
||||
'is-negative': '1.0.0',
|
||||
'is-positive': '1.0.0',
|
||||
},
|
||||
dev: false,
|
||||
})
|
||||
expect(lockfile.packages['project-1@file:project-1']).toEqual({
|
||||
resolution: {
|
||||
@@ -1068,7 +1057,6 @@ test('inject local packages when node-linker is hoisted', async () => {
|
||||
'is-negative': '1.0.0',
|
||||
'is-positive': '1.0.0',
|
||||
},
|
||||
dev: false,
|
||||
})
|
||||
expect(lockfile.packages['project-1@file:project-1']).toEqual({
|
||||
resolution: {
|
||||
@@ -1085,7 +1073,6 @@ test('inject local packages when node-linker is hoisted', async () => {
|
||||
'project-1': 'file:project-1(is-positive@2.0.0)',
|
||||
},
|
||||
transitivePeerDependencies: ['is-positive'],
|
||||
dev: false,
|
||||
})
|
||||
expect(lockfile.packages['project-2@file:project-2']).toEqual({
|
||||
resolution: {
|
||||
@@ -1246,7 +1233,6 @@ test('inject local packages when node-linker is hoisted and dependenciesMeta is
|
||||
},
|
||||
})
|
||||
expect(lockfile.snapshots['project-1@file:project-1(is-positive@1.0.0)']).toEqual({
|
||||
dev: false,
|
||||
dependencies: {
|
||||
'@pnpm.e2e/dep-of-pkg-with-1-dep': '100.0.0',
|
||||
'is-negative': '1.0.0',
|
||||
@@ -1268,7 +1254,6 @@ test('inject local packages when node-linker is hoisted and dependenciesMeta is
|
||||
'project-1': 'file:project-1(is-positive@2.0.0)',
|
||||
},
|
||||
transitivePeerDependencies: ['is-positive'],
|
||||
dev: false,
|
||||
})
|
||||
expect(lockfile.packages['project-2@file:project-2']).toEqual({
|
||||
resolution: {
|
||||
@@ -1990,7 +1975,6 @@ test('injected local packages are deduped', async () => {
|
||||
'project-1': 'file:project-1(is-positive@2.0.0)',
|
||||
},
|
||||
transitivePeerDependencies: ['is-positive'],
|
||||
dev: false,
|
||||
})
|
||||
expect(lockfile.packages['project-2@file:project-2']).toEqual({
|
||||
resolution: {
|
||||
|
||||
@@ -428,9 +428,7 @@ test('re-install should update local file dependency', async () => {
|
||||
},
|
||||
},
|
||||
snapshots: {
|
||||
'local-pkg@file:../local-pkg': {
|
||||
dev: false,
|
||||
},
|
||||
'local-pkg@file:../local-pkg': {},
|
||||
},
|
||||
lockfileVersion: LOCKFILE_VERSION,
|
||||
})
|
||||
@@ -460,7 +458,6 @@ test('re-install should update local file dependency', async () => {
|
||||
expect(lockfile).toMatchObject({
|
||||
snapshots: {
|
||||
'local-pkg@file:../local-pkg': {
|
||||
dev: false,
|
||||
dependencies: {
|
||||
'is-positive': '1.0.0',
|
||||
},
|
||||
@@ -492,7 +489,6 @@ test('re-install should update local file dependency', async () => {
|
||||
},
|
||||
snapshots: {
|
||||
'local-pkg@file:../local-pkg': {
|
||||
dev: false,
|
||||
dependencies: {
|
||||
'is-positive': '2.0.0',
|
||||
},
|
||||
|
||||
@@ -914,31 +914,27 @@ test('all the subdeps of dependencies are linked when a node_modules is partiall
|
||||
},
|
||||
lockfileVersion: LOCKFILE_VERSION,
|
||||
packages: {
|
||||
'/@pnpm.e2e/bar@100.0.0': {
|
||||
dev: false,
|
||||
'@pnpm.e2e/bar@100.0.0': {
|
||||
resolution: {
|
||||
integrity: getIntegrity('@pnpm.e2e/bar', '100.0.0'),
|
||||
},
|
||||
},
|
||||
'/@pnpm.e2e/foo@100.1.0': {
|
||||
dev: false,
|
||||
'@pnpm.e2e/foo@100.1.0': {
|
||||
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',
|
||||
'is-positive': '3.1.0',
|
||||
},
|
||||
dev: false,
|
||||
resolution: {
|
||||
integrity: getIntegrity('@pnpm.e2e/foobarqar', '1.0.1'),
|
||||
},
|
||||
},
|
||||
'/is-positive@3.1.0': {
|
||||
dev: false,
|
||||
'is-positive@3.1.0': {
|
||||
engines: {
|
||||
node: '>=0.10.0',
|
||||
},
|
||||
@@ -1008,7 +1004,6 @@ test('subdep symlinks are updated if the lockfile has new subdep versions specif
|
||||
lockfileVersion: LOCKFILE_VERSION,
|
||||
packages: {
|
||||
'@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'),
|
||||
},
|
||||
@@ -1017,7 +1012,6 @@ test('subdep symlinks are updated if the lockfile has new subdep versions specif
|
||||
dependencies: {
|
||||
'@pnpm.e2e/pkg-with-1-dep': '100.0.0',
|
||||
},
|
||||
dev: false,
|
||||
resolution: {
|
||||
integrity: getIntegrity('@pnpm.e2e/parent-of-pkg-with-1-dep', '1.0.0'),
|
||||
},
|
||||
@@ -1026,7 +1020,6 @@ test('subdep symlinks are updated if the lockfile has new subdep versions specif
|
||||
dependencies: {
|
||||
'@pnpm.e2e/dep-of-pkg-with-1-dep': '100.1.0',
|
||||
},
|
||||
dev: false,
|
||||
resolution: {
|
||||
integrity: getIntegrity('@pnpm.e2e/pkg-with-1-dep', '100.0.0'),
|
||||
},
|
||||
|
||||
@@ -1401,7 +1401,6 @@ test('resolve a subdependency from the workspace', async () => {
|
||||
const project = assertProject(process.cwd())
|
||||
|
||||
const wantedLockfile = project.readLockfile()
|
||||
console.log(JSON.stringify(wantedLockfile, null, 2))
|
||||
expect(wantedLockfile.snapshots['@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')
|
||||
|
||||
rimraf('node_modules')
|
||||
|
||||
@@ -90,11 +90,6 @@ test('install dev dependencies only', async () => {
|
||||
project.has('inflight')
|
||||
project.hasNot('once')
|
||||
|
||||
{
|
||||
const lockfile = project.readLockfile()
|
||||
expect(lockfile.snapshots['is-positive@1.0.0'].dev === false).toBeTruthy()
|
||||
}
|
||||
|
||||
{
|
||||
const currentLockfile = project.readCurrentLockfile()
|
||||
expect(currentLockfile.packages['is-positive@1.0.0']).toBeFalsy()
|
||||
|
||||
@@ -643,7 +643,7 @@ test.skip('peer dependencies are linked', async () => {
|
||||
expect(deepRequireCwd(['@pnpm.e2e/abc-grand-parent-with-c', '@pnpm.e2e/abc-parent-with-ab', '@pnpm.e2e/abc', '@pnpm.e2e/peer-c', './package.json']).version).toBe('1.0.0')
|
||||
|
||||
const lockfile = project.readLockfile()
|
||||
expect(lockfile.snapshots['@pnpm.e2e/abc-parent-with-ab/1.0.0/@pnpm.e2e/peer-a@1.0.0+@pnpm.e2e+peer-b@1.0.0'].dev).toBeTruthy()
|
||||
expect(lockfile.snapshots['@pnpm.e2e/abc-parent-with-ab/1.0.0/@pnpm.e2e/peer-a@1.0.0+@pnpm.e2e+peer-b@1.0.0']).toBeTruthy()
|
||||
})
|
||||
|
||||
test('scoped peer dependency is linked', async () => {
|
||||
@@ -1217,9 +1217,6 @@ test('peer dependency that is resolved by a dev dependency', async () => {
|
||||
rootDir: process.cwd(),
|
||||
}, testDefaults({ fastUnpack: false, lockfileOnly: true, strictPeerDependencies: false }))
|
||||
|
||||
const lockfile = project.readLockfile()
|
||||
expect(lockfile.snapshots['@types/mongoose@5.7.32'].dev).toBeUndefined()
|
||||
|
||||
await mutateModulesInSingleProject({
|
||||
manifest,
|
||||
mutation: 'install',
|
||||
|
||||
@@ -75,7 +75,6 @@ test('dependency should not be added to package.json if it is already there', as
|
||||
const lockfile = project.readLockfile()
|
||||
|
||||
expect(lockfile.importers['.'].devDependencies?.['@pnpm.e2e/foo'].version).toBe('100.0.0')
|
||||
expect(lockfile.snapshots['@pnpm.e2e/foo@100.0.0'].dev).toBeTruthy()
|
||||
|
||||
expect(lockfile.importers['.'].optionalDependencies?.['@pnpm.e2e/bar'].version).toBe('100.0.0')
|
||||
expect(lockfile.snapshots['@pnpm.e2e/bar@100.0.0'].optional).toBeTruthy()
|
||||
|
||||
@@ -429,25 +429,6 @@ test('repeat install with lockfile should not mutate lockfile when dependency ha
|
||||
expect(lockfile1).toStrictEqual(lockfile2) // lockfile hasn't been changed
|
||||
})
|
||||
|
||||
test('package is not marked dev if it is also a subdep of a regular dependency', async () => {
|
||||
const project = prepareEmpty()
|
||||
|
||||
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'], testDefaults())
|
||||
|
||||
// console.log('installed @pnpm.e2e/pkg-with-1-dep')
|
||||
|
||||
await addDependenciesToPackage(manifest, ['@pnpm.e2e/dep-of-pkg-with-1-dep'], testDefaults({ targetDependenciesField: 'devDependencies' }))
|
||||
|
||||
// console.log('installed optional dependency which is also a dependency of @pnpm.e2e/pkg-with-1-dep')
|
||||
|
||||
const lockfile = project.readLockfile()
|
||||
|
||||
expect(lockfile.snapshots['@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 () => {
|
||||
const project = prepareEmpty()
|
||||
|
||||
@@ -538,20 +519,11 @@ test('scoped module from different registry', async () => {
|
||||
'@foo/no-deps': '1.0.0',
|
||||
'is-negative': '1.0.0',
|
||||
},
|
||||
dev: false,
|
||||
},
|
||||
'@foo/no-deps@1.0.0': {
|
||||
dev: false,
|
||||
},
|
||||
'@zkochan/foo@1.0.0': {
|
||||
dev: false,
|
||||
},
|
||||
'is-negative@1.0.0': {
|
||||
dev: false,
|
||||
},
|
||||
'is-positive@3.1.0': {
|
||||
dev: false,
|
||||
},
|
||||
'@foo/no-deps@1.0.0': {},
|
||||
'@zkochan/foo@1.0.0': {},
|
||||
'is-negative@1.0.0': {},
|
||||
'is-positive@3.1.0': {},
|
||||
},
|
||||
})
|
||||
})
|
||||
@@ -646,22 +618,6 @@ test('pendingBuilds gets updated if install removes packages', async () => {
|
||||
expect(modules1!.pendingBuilds.length > modules2!.pendingBuilds.length).toBeTruthy()
|
||||
})
|
||||
|
||||
test('dev properties are correctly updated on named install', async () => {
|
||||
const project = prepareEmpty()
|
||||
|
||||
const manifest = await addDependenciesToPackage(
|
||||
{},
|
||||
['inflight@1.0.6'],
|
||||
testDefaults({ targetDependenciesField: 'devDependencies' })
|
||||
)
|
||||
await addDependenciesToPackage(manifest, ['foo@npm:inflight@1.0.6'], testDefaults({}))
|
||||
|
||||
const lockfile = project.readLockfile()
|
||||
expect(
|
||||
Object.values(lockfile.snapshots).filter((dep) => typeof dep.dev !== 'undefined')
|
||||
).toStrictEqual([])
|
||||
})
|
||||
|
||||
test('optional properties are correctly updated on named install', async () => {
|
||||
const project = prepareEmpty()
|
||||
|
||||
@@ -672,16 +628,6 @@ test('optional properties are correctly updated on named install', async () => {
|
||||
expect(Object.values(lockfile.snapshots).filter((dep) => typeof dep.optional !== 'undefined')).toStrictEqual([])
|
||||
})
|
||||
|
||||
test('dev property is correctly set for package that is duplicated to both the dependencies and devDependencies group', async () => {
|
||||
const project = prepareEmpty()
|
||||
|
||||
// TODO: use a smaller package for testing
|
||||
await addDependenciesToPackage({}, ['overlap@2.2.8'], testDefaults())
|
||||
|
||||
const lockfile = project.readLockfile()
|
||||
expect(lockfile.snapshots['couleurs@5.0.0'].dev === false).toBeTruthy()
|
||||
})
|
||||
|
||||
test('no lockfile', async () => {
|
||||
const project = prepareEmpty()
|
||||
const reporter = sinon.spy()
|
||||
@@ -842,18 +788,13 @@ test('packages installed via tarball URL from the default registry are normalize
|
||||
},
|
||||
},
|
||||
snapshots: {
|
||||
'@pnpm.e2e/dep-of-pkg-with-1-dep@100.0.0': {
|
||||
dev: false,
|
||||
},
|
||||
'@pnpm.e2e/dep-of-pkg-with-1-dep@100.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',
|
||||
},
|
||||
dev: false,
|
||||
},
|
||||
'is-positive@https://registry.npmjs.org/is-positive/-/is-positive-1.0.0.tgz': {
|
||||
dev: false,
|
||||
},
|
||||
'is-positive@https://registry.npmjs.org/is-positive/-/is-positive-1.0.0.tgz': {},
|
||||
},
|
||||
})
|
||||
})
|
||||
@@ -1171,9 +1112,7 @@ test('tarball domain differs from registry domain', async () => {
|
||||
},
|
||||
},
|
||||
snapshots: {
|
||||
'is-positive@3.1.0': {
|
||||
dev: false,
|
||||
},
|
||||
'is-positive@3.1.0': {},
|
||||
},
|
||||
})
|
||||
})
|
||||
@@ -1226,9 +1165,7 @@ test('tarball installed through non-standard URL endpoint from the registry doma
|
||||
},
|
||||
},
|
||||
snapshots: {
|
||||
'is-positive@https://registry.npmjs.org/is-positive/download/is-positive-3.1.0.tgz': {
|
||||
dev: false,
|
||||
},
|
||||
'is-positive@https://registry.npmjs.org/is-positive/download/is-positive-3.1.0.tgz': {},
|
||||
},
|
||||
})
|
||||
})
|
||||
|
||||
@@ -344,9 +344,7 @@ test('uninstalling a dependency from package that uses shared lockfile', async (
|
||||
},
|
||||
},
|
||||
snapshots: {
|
||||
'is-negative@1.0.0': {
|
||||
dev: false,
|
||||
},
|
||||
'is-negative@1.0.0': {},
|
||||
},
|
||||
})
|
||||
})
|
||||
|
||||
4
pkg-manager/headless/test/fixtures/deps-have-lifecycle-scripts/pnpm-lock.yaml
generated
vendored
4
pkg-manager/headless/test/fixtures/deps-have-lifecycle-scripts/pnpm-lock.yaml
generated
vendored
@@ -23,10 +23,8 @@ packages:
|
||||
|
||||
snapshots:
|
||||
|
||||
'@pnpm.e2e/hello-world-js-bin@1.0.0':
|
||||
dev: false
|
||||
'@pnpm.e2e/hello-world-js-bin@1.0.0': {}
|
||||
|
||||
'@pnpm.e2e/pre-and-postinstall-scripts-example@2.0.0':
|
||||
dependencies:
|
||||
'@pnpm.e2e/hello-world-js-bin': 1.0.0
|
||||
dev: false
|
||||
|
||||
24
pkg-manager/headless/test/fixtures/has-glob-and-rimraf/pnpm-lock.yaml
generated
vendored
24
pkg-manager/headless/test/fixtures/has-glob-and-rimraf/pnpm-lock.yaml
generated
vendored
@@ -57,20 +57,16 @@ packages:
|
||||
|
||||
snapshots:
|
||||
|
||||
balanced-match@1.0.2:
|
||||
dev: false
|
||||
balanced-match@1.0.2: {}
|
||||
|
||||
brace-expansion@1.1.11:
|
||||
dependencies:
|
||||
balanced-match: 1.0.2
|
||||
concat-map: 0.0.1
|
||||
dev: false
|
||||
|
||||
concat-map@0.0.1:
|
||||
dev: false
|
||||
concat-map@0.0.1: {}
|
||||
|
||||
fs.realpath@1.0.0:
|
||||
dev: false
|
||||
fs.realpath@1.0.0: {}
|
||||
|
||||
glob@7.2.3:
|
||||
dependencies:
|
||||
@@ -80,34 +76,26 @@ snapshots:
|
||||
minimatch: 3.1.2
|
||||
once: 1.4.0
|
||||
path-is-absolute: 1.0.1
|
||||
dev: false
|
||||
|
||||
inflight@1.0.6:
|
||||
dependencies:
|
||||
once: 1.4.0
|
||||
wrappy: 1.0.2
|
||||
dev: false
|
||||
|
||||
inherits@2.0.4:
|
||||
dev: false
|
||||
inherits@2.0.4: {}
|
||||
|
||||
minimatch@3.1.2:
|
||||
dependencies:
|
||||
brace-expansion: 1.1.11
|
||||
dev: false
|
||||
|
||||
once@1.4.0:
|
||||
dependencies:
|
||||
wrappy: 1.0.2
|
||||
dev: false
|
||||
|
||||
path-is-absolute@1.0.1:
|
||||
dev: false
|
||||
path-is-absolute@1.0.1: {}
|
||||
|
||||
rimraf@2.7.1:
|
||||
dependencies:
|
||||
glob: 7.2.3
|
||||
dev: false
|
||||
|
||||
wrappy@1.0.2:
|
||||
dev: false
|
||||
wrappy@1.0.2: {}
|
||||
|
||||
23
pkg-manager/headless/test/fixtures/has-glob/pnpm-lock.yaml
generated
vendored
23
pkg-manager/headless/test/fixtures/has-glob/pnpm-lock.yaml
generated
vendored
@@ -50,20 +50,16 @@ packages:
|
||||
|
||||
snapshots:
|
||||
|
||||
balanced-match@1.0.2:
|
||||
dev: false
|
||||
balanced-match@1.0.2: {}
|
||||
|
||||
brace-expansion@1.1.11:
|
||||
dependencies:
|
||||
balanced-match: 1.0.2
|
||||
concat-map: 0.0.1
|
||||
dev: false
|
||||
|
||||
concat-map@0.0.1:
|
||||
dev: false
|
||||
concat-map@0.0.1: {}
|
||||
|
||||
fs.realpath@1.0.0:
|
||||
dev: false
|
||||
fs.realpath@1.0.0: {}
|
||||
|
||||
glob@7.2.3:
|
||||
dependencies:
|
||||
@@ -73,29 +69,22 @@ snapshots:
|
||||
minimatch: 3.1.2
|
||||
once: 1.4.0
|
||||
path-is-absolute: 1.0.1
|
||||
dev: false
|
||||
|
||||
inflight@1.0.6:
|
||||
dependencies:
|
||||
once: 1.4.0
|
||||
wrappy: 1.0.2
|
||||
dev: false
|
||||
|
||||
inherits@2.0.4:
|
||||
dev: false
|
||||
inherits@2.0.4: {}
|
||||
|
||||
minimatch@3.1.2:
|
||||
dependencies:
|
||||
brace-expansion: 1.1.11
|
||||
dev: false
|
||||
|
||||
once@1.4.0:
|
||||
dependencies:
|
||||
wrappy: 1.0.2
|
||||
dev: false
|
||||
|
||||
path-is-absolute@1.0.1:
|
||||
dev: false
|
||||
path-is-absolute@1.0.1: {}
|
||||
|
||||
wrappy@1.0.2:
|
||||
dev: false
|
||||
wrappy@1.0.2: {}
|
||||
|
||||
3
pkg-manager/headless/test/fixtures/has-incompatible-optional-subdep/pnpm-lock.yaml
generated
vendored
3
pkg-manager/headless/test/fixtures/has-incompatible-optional-subdep/pnpm-lock.yaml
generated
vendored
@@ -27,16 +27,13 @@ packages:
|
||||
snapshots:
|
||||
|
||||
'@pnpm.e2e/dep-of-optional-pkg@1.0.0':
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
'@pnpm.e2e/not-compatible-with-any-os@1.0.0':
|
||||
dependencies:
|
||||
'@pnpm.e2e/dep-of-optional-pkg': 1.0.0
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
'@pnpm.e2e/pkg-with-optional@1.0.0':
|
||||
optionalDependencies:
|
||||
'@pnpm.e2e/not-compatible-with-any-os': 1.0.0
|
||||
dev: false
|
||||
|
||||
3
pkg-manager/headless/test/fixtures/has-local-dep/pkg/pnpm-lock.yaml
generated
vendored
3
pkg-manager/headless/test/fixtures/has-local-dep/pkg/pnpm-lock.yaml
generated
vendored
@@ -20,5 +20,4 @@ packages:
|
||||
|
||||
snapshots:
|
||||
|
||||
tar-pkg@file:../tar-pkg-1.0.0.tgz:
|
||||
dev: false
|
||||
tar-pkg@file:../tar-pkg-1.0.0.tgz: {}
|
||||
|
||||
30
pkg-manager/headless/test/fixtures/has-nonexistent-optional-dep/pnpm-lock.yaml
generated
vendored
30
pkg-manager/headless/test/fixtures/has-nonexistent-optional-dep/pnpm-lock.yaml
generated
vendored
@@ -69,20 +69,16 @@ packages:
|
||||
|
||||
snapshots:
|
||||
|
||||
balanced-match@1.0.2:
|
||||
dev: false
|
||||
balanced-match@1.0.2: {}
|
||||
|
||||
brace-expansion@1.1.11:
|
||||
dependencies:
|
||||
balanced-match: 1.0.2
|
||||
concat-map: 0.0.1
|
||||
dev: false
|
||||
|
||||
concat-map@0.0.1:
|
||||
dev: false
|
||||
concat-map@0.0.1: {}
|
||||
|
||||
fs.realpath@1.0.0:
|
||||
dev: false
|
||||
fs.realpath@1.0.0: {}
|
||||
|
||||
glob@7.2.3:
|
||||
dependencies:
|
||||
@@ -92,40 +88,30 @@ snapshots:
|
||||
minimatch: 3.1.2
|
||||
once: 1.4.0
|
||||
path-is-absolute: 1.0.1
|
||||
dev: false
|
||||
|
||||
inflight@1.0.6:
|
||||
dependencies:
|
||||
once: 1.4.0
|
||||
wrappy: 1.0.2
|
||||
dev: false
|
||||
|
||||
inherits@2.0.4:
|
||||
dev: false
|
||||
inherits@2.0.4: {}
|
||||
|
||||
is-negative@2.1.0:
|
||||
dev: true
|
||||
is-negative@2.1.0: {}
|
||||
|
||||
is-positive@1.0.0:
|
||||
dev: false
|
||||
is-positive@1.0.0: {}
|
||||
|
||||
minimatch@3.1.2:
|
||||
dependencies:
|
||||
brace-expansion: 1.1.11
|
||||
dev: false
|
||||
|
||||
once@1.4.0:
|
||||
dependencies:
|
||||
wrappy: 1.0.2
|
||||
dev: false
|
||||
|
||||
path-is-absolute@1.0.1:
|
||||
dev: false
|
||||
path-is-absolute@1.0.1: {}
|
||||
|
||||
rimraf@2.7.1:
|
||||
dependencies:
|
||||
glob: 7.2.3
|
||||
dev: false
|
||||
|
||||
wrappy@1.0.2:
|
||||
dev: false
|
||||
wrappy@1.0.2: {}
|
||||
|
||||
55
pkg-manager/headless/test/fixtures/has-several-versions-of-same-pkg/pnpm-lock.yaml
generated
vendored
55
pkg-manager/headless/test/fixtures/has-several-versions-of-same-pkg/pnpm-lock.yaml
generated
vendored
@@ -106,31 +106,22 @@ snapshots:
|
||||
debug@2.6.9:
|
||||
dependencies:
|
||||
ms: 2.0.0
|
||||
dev: false
|
||||
|
||||
depd@1.1.2:
|
||||
dev: false
|
||||
depd@1.1.2: {}
|
||||
|
||||
destroy@1.0.4:
|
||||
dev: false
|
||||
destroy@1.0.4: {}
|
||||
|
||||
ee-first@1.1.1:
|
||||
dev: false
|
||||
ee-first@1.1.1: {}
|
||||
|
||||
encodeurl@1.0.2:
|
||||
dev: false
|
||||
encodeurl@1.0.2: {}
|
||||
|
||||
escape-html@1.0.3:
|
||||
dev: false
|
||||
escape-html@1.0.3: {}
|
||||
|
||||
etag@1.8.1:
|
||||
dev: false
|
||||
etag@1.8.1: {}
|
||||
|
||||
fresh@0.5.2:
|
||||
dev: false
|
||||
fresh@0.5.2: {}
|
||||
|
||||
has-flag@1.0.0:
|
||||
dev: false
|
||||
has-flag@1.0.0: {}
|
||||
|
||||
http-errors@1.8.1:
|
||||
dependencies:
|
||||
@@ -139,30 +130,22 @@ snapshots:
|
||||
setprototypeof: 1.2.0
|
||||
statuses: 1.5.0
|
||||
toidentifier: 1.0.1
|
||||
dev: false
|
||||
|
||||
inherits@2.0.4:
|
||||
dev: false
|
||||
inherits@2.0.4: {}
|
||||
|
||||
mime@1.6.0:
|
||||
dev: false
|
||||
mime@1.6.0: {}
|
||||
|
||||
ms@1.0.0:
|
||||
dev: false
|
||||
ms@1.0.0: {}
|
||||
|
||||
ms@2.0.0:
|
||||
dev: false
|
||||
ms@2.0.0: {}
|
||||
|
||||
ms@2.1.3:
|
||||
dev: false
|
||||
ms@2.1.3: {}
|
||||
|
||||
on-finished@2.3.0:
|
||||
dependencies:
|
||||
ee-first: 1.1.1
|
||||
dev: false
|
||||
|
||||
range-parser@1.2.1:
|
||||
dev: false
|
||||
range-parser@1.2.1: {}
|
||||
|
||||
send@0.17.2:
|
||||
dependencies:
|
||||
@@ -181,13 +164,9 @@ snapshots:
|
||||
statuses: 1.5.0
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
setprototypeof@1.2.0:
|
||||
dev: false
|
||||
setprototypeof@1.2.0: {}
|
||||
|
||||
statuses@1.5.0:
|
||||
dev: false
|
||||
statuses@1.5.0: {}
|
||||
|
||||
toidentifier@1.0.1:
|
||||
dev: false
|
||||
toidentifier@1.0.1: {}
|
||||
|
||||
31
pkg-manager/headless/test/fixtures/ignore-package-manifest/pnpm-lock.yaml
generated
vendored
31
pkg-manager/headless/test/fixtures/ignore-package-manifest/pnpm-lock.yaml
generated
vendored
@@ -77,24 +77,19 @@ packages:
|
||||
|
||||
snapshots:
|
||||
|
||||
balanced-match@1.0.2:
|
||||
dev: false
|
||||
balanced-match@1.0.2: {}
|
||||
|
||||
brace-expansion@1.1.11:
|
||||
dependencies:
|
||||
balanced-match: 1.0.2
|
||||
concat-map: 0.0.1
|
||||
dev: false
|
||||
|
||||
colors@1.2.0:
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
concat-map@0.0.1:
|
||||
dev: false
|
||||
concat-map@0.0.1: {}
|
||||
|
||||
fs.realpath@1.0.0:
|
||||
dev: false
|
||||
fs.realpath@1.0.0: {}
|
||||
|
||||
glob@7.2.3:
|
||||
dependencies:
|
||||
@@ -104,40 +99,30 @@ snapshots:
|
||||
minimatch: 3.1.2
|
||||
once: 1.4.0
|
||||
path-is-absolute: 1.0.1
|
||||
dev: false
|
||||
|
||||
inflight@1.0.6:
|
||||
dependencies:
|
||||
once: 1.4.0
|
||||
wrappy: 1.0.2
|
||||
dev: false
|
||||
|
||||
inherits@2.0.4:
|
||||
dev: false
|
||||
inherits@2.0.4: {}
|
||||
|
||||
is-negative@2.1.0:
|
||||
dev: true
|
||||
is-negative@2.1.0: {}
|
||||
|
||||
is-positive@1.0.0:
|
||||
dev: false
|
||||
is-positive@1.0.0: {}
|
||||
|
||||
minimatch@3.1.2:
|
||||
dependencies:
|
||||
brace-expansion: 1.1.11
|
||||
dev: false
|
||||
|
||||
once@1.4.0:
|
||||
dependencies:
|
||||
wrappy: 1.0.2
|
||||
dev: false
|
||||
|
||||
path-is-absolute@1.0.1:
|
||||
dev: false
|
||||
path-is-absolute@1.0.1: {}
|
||||
|
||||
rimraf@2.7.1:
|
||||
dependencies:
|
||||
glob: 7.2.3
|
||||
dev: false
|
||||
|
||||
wrappy@1.0.2:
|
||||
dev: false
|
||||
wrappy@1.0.2: {}
|
||||
|
||||
4
pkg-manager/headless/test/fixtures/prod-dep-is-dev-subdep/pnpm-lock.yaml
generated
vendored
4
pkg-manager/headless/test/fixtures/prod-dep-is-dev-subdep/pnpm-lock.yaml
generated
vendored
@@ -40,10 +40,8 @@ snapshots:
|
||||
dependencies:
|
||||
once: 1.4.0
|
||||
wrappy: 1.0.2
|
||||
dev: true
|
||||
|
||||
is-positive@1.0.0:
|
||||
dev: false
|
||||
is-positive@1.0.0: {}
|
||||
|
||||
once@1.4.0:
|
||||
dependencies:
|
||||
|
||||
13
pkg-manager/headless/test/fixtures/reinstall-peer-deps/pnpm-lock.yaml
generated
vendored
13
pkg-manager/headless/test/fixtures/reinstall-peer-deps/pnpm-lock.yaml
generated
vendored
@@ -41,18 +41,13 @@ snapshots:
|
||||
'@pnpm.e2e/peer-a': 1.0.1
|
||||
'@pnpm.e2e/peer-b': 1.0.0
|
||||
'@pnpm.e2e/peer-c': 1.0.1
|
||||
dev: true
|
||||
|
||||
'@pnpm.e2e/dep-of-pkg-with-1-dep@100.0.0':
|
||||
dev: true
|
||||
'@pnpm.e2e/dep-of-pkg-with-1-dep@100.0.0': {}
|
||||
|
||||
'@pnpm.e2e/peer-a@1.0.1':
|
||||
dev: true
|
||||
'@pnpm.e2e/peer-a@1.0.1': {}
|
||||
|
||||
'@pnpm.e2e/peer-b@1.0.0':
|
||||
dev: true
|
||||
'@pnpm.e2e/peer-b@1.0.0': {}
|
||||
|
||||
'@pnpm.e2e/peer-c@1.0.1':
|
||||
dev: true
|
||||
'@pnpm.e2e/peer-c@1.0.1': {}
|
||||
|
||||
time: {}
|
||||
|
||||
115
pkg-manager/headless/test/fixtures/resolved-peer-deps-in-subdeps/pnpm-lock.yaml
generated
vendored
115
pkg-manager/headless/test/fixtures/resolved-peer-deps-in-subdeps/pnpm-lock.yaml
generated
vendored
@@ -211,129 +211,98 @@ snapshots:
|
||||
dependencies:
|
||||
'@most/prelude': 1.7.0
|
||||
most: 1.7.3
|
||||
dev: false
|
||||
|
||||
'@most/prelude@1.7.0':
|
||||
dev: false
|
||||
'@most/prelude@1.7.0': {}
|
||||
|
||||
'@types/common-tags@1.4.0':
|
||||
dev: false
|
||||
'@types/common-tags@1.4.0': {}
|
||||
|
||||
'@types/node@8.10.0':
|
||||
dev: false
|
||||
'@types/node@8.10.0': {}
|
||||
|
||||
'@types/node@9.6.0':
|
||||
dev: false
|
||||
'@types/node@9.6.0': {}
|
||||
|
||||
'@types/ramda@0.25.20':
|
||||
dev: false
|
||||
'@types/ramda@0.25.20': {}
|
||||
|
||||
'@types/semver@5.5.0':
|
||||
dev: false
|
||||
'@types/semver@5.5.0': {}
|
||||
|
||||
ansi-diff@1.0.10:
|
||||
dependencies:
|
||||
ansi-split: 1.0.1
|
||||
dev: false
|
||||
|
||||
ansi-regex@3.0.0:
|
||||
dev: false
|
||||
ansi-regex@3.0.0: {}
|
||||
|
||||
ansi-split@1.0.1:
|
||||
dependencies:
|
||||
ansi-regex: 3.0.0
|
||||
dev: false
|
||||
|
||||
ansi-styles@3.2.1:
|
||||
dependencies:
|
||||
color-convert: 1.9.1
|
||||
dev: false
|
||||
|
||||
as-table@1.0.31:
|
||||
dependencies:
|
||||
printable-characters: 1.0.38
|
||||
dev: false
|
||||
|
||||
babel-runtime@6.26.0:
|
||||
dependencies:
|
||||
core-js: 2.5.3
|
||||
regenerator-runtime: 0.11.1
|
||||
dev: false
|
||||
|
||||
chalk@2.3.2:
|
||||
dependencies:
|
||||
ansi-styles: 3.2.1
|
||||
escape-string-regexp: 1.0.5
|
||||
supports-color: 5.3.0
|
||||
dev: false
|
||||
|
||||
cli-cursor@2.1.0:
|
||||
dependencies:
|
||||
restore-cursor: 2.0.0
|
||||
dev: false
|
||||
|
||||
color-convert@1.9.1:
|
||||
dependencies:
|
||||
color-name: 1.1.3
|
||||
dev: false
|
||||
|
||||
color-name@1.1.3:
|
||||
dev: false
|
||||
color-name@1.1.3: {}
|
||||
|
||||
common-tags@1.7.2:
|
||||
dependencies:
|
||||
babel-runtime: 6.26.0
|
||||
dev: false
|
||||
|
||||
core-js@2.5.3:
|
||||
dev: false
|
||||
core-js@2.5.3: {}
|
||||
|
||||
core-util-is@1.0.2:
|
||||
dev: false
|
||||
core-util-is@1.0.2: {}
|
||||
|
||||
data-uri-to-buffer@2.0.0:
|
||||
dependencies:
|
||||
'@types/node': 8.10.0
|
||||
dev: false
|
||||
|
||||
escape-string-regexp@1.0.5:
|
||||
dev: false
|
||||
escape-string-regexp@1.0.5: {}
|
||||
|
||||
get-source@1.0.24:
|
||||
dependencies:
|
||||
data-uri-to-buffer: 2.0.0
|
||||
source-map: 0.6.1
|
||||
dev: false
|
||||
|
||||
has-flag@3.0.0:
|
||||
dev: false
|
||||
has-flag@3.0.0: {}
|
||||
|
||||
inherits@2.0.3:
|
||||
dev: false
|
||||
inherits@2.0.3: {}
|
||||
|
||||
isarray@1.0.0:
|
||||
dev: false
|
||||
isarray@1.0.0: {}
|
||||
|
||||
json-stringify-safe@5.0.1:
|
||||
dev: false
|
||||
json-stringify-safe@5.0.1: {}
|
||||
|
||||
mimic-fn@1.2.0:
|
||||
dev: false
|
||||
mimic-fn@1.2.0: {}
|
||||
|
||||
minimist@1.2.0:
|
||||
dev: false
|
||||
minimist@1.2.0: {}
|
||||
|
||||
most-last@1.0.0(most@1.7.3):
|
||||
dependencies:
|
||||
most: 1.7.3
|
||||
dev: false
|
||||
|
||||
most@1.7.3:
|
||||
dependencies:
|
||||
'@most/multicast': 1.3.0(most@1.7.3)
|
||||
'@most/prelude': 1.7.0
|
||||
symbol-observable: 1.2.0
|
||||
dev: false
|
||||
|
||||
ndjson@1.5.0:
|
||||
dependencies:
|
||||
@@ -341,12 +310,10 @@ snapshots:
|
||||
minimist: 1.2.0
|
||||
split2: 2.2.0
|
||||
through2: 2.0.3
|
||||
dev: false
|
||||
|
||||
onetime@2.0.1:
|
||||
dependencies:
|
||||
mimic-fn: 1.2.0
|
||||
dev: false
|
||||
|
||||
pnpm-default-reporter@0.14.7:
|
||||
dependencies:
|
||||
@@ -366,19 +333,14 @@ snapshots:
|
||||
semver: 5.5.0
|
||||
stacktracey: 1.2.100
|
||||
zen-push: 0.2.1
|
||||
dev: false
|
||||
|
||||
pretty-bytes@4.0.2:
|
||||
dev: false
|
||||
pretty-bytes@4.0.2: {}
|
||||
|
||||
printable-characters@1.0.38:
|
||||
dev: false
|
||||
printable-characters@1.0.38: {}
|
||||
|
||||
process-nextick-args@2.0.0:
|
||||
dev: false
|
||||
process-nextick-args@2.0.0: {}
|
||||
|
||||
ramda@0.25.0:
|
||||
dev: false
|
||||
ramda@0.25.0: {}
|
||||
|
||||
readable-stream@2.3.5:
|
||||
dependencies:
|
||||
@@ -389,71 +351,54 @@ snapshots:
|
||||
safe-buffer: 5.1.1
|
||||
string_decoder: 1.0.3
|
||||
util-deprecate: 1.0.2
|
||||
dev: false
|
||||
|
||||
regenerator-runtime@0.11.1:
|
||||
dev: false
|
||||
regenerator-runtime@0.11.1: {}
|
||||
|
||||
restore-cursor@2.0.0:
|
||||
dependencies:
|
||||
onetime: 2.0.1
|
||||
signal-exit: 3.0.2
|
||||
dev: false
|
||||
|
||||
safe-buffer@5.1.1:
|
||||
dev: false
|
||||
safe-buffer@5.1.1: {}
|
||||
|
||||
semver@5.5.0:
|
||||
dev: false
|
||||
semver@5.5.0: {}
|
||||
|
||||
signal-exit@3.0.2:
|
||||
dev: false
|
||||
signal-exit@3.0.2: {}
|
||||
|
||||
source-map@0.6.1:
|
||||
dev: false
|
||||
source-map@0.6.1: {}
|
||||
|
||||
split2@2.2.0:
|
||||
dependencies:
|
||||
through2: 2.0.3
|
||||
dev: false
|
||||
|
||||
stacktracey@1.2.100:
|
||||
dependencies:
|
||||
as-table: 1.0.31
|
||||
get-source: 1.0.24
|
||||
dev: false
|
||||
|
||||
string_decoder@1.0.3:
|
||||
dependencies:
|
||||
safe-buffer: 5.1.1
|
||||
dev: false
|
||||
|
||||
supports-color@5.3.0:
|
||||
dependencies:
|
||||
has-flag: 3.0.0
|
||||
dev: false
|
||||
|
||||
symbol-observable@1.2.0:
|
||||
dev: false
|
||||
symbol-observable@1.2.0: {}
|
||||
|
||||
through2@2.0.3:
|
||||
dependencies:
|
||||
readable-stream: 2.3.5
|
||||
xtend: 4.0.1
|
||||
dev: false
|
||||
|
||||
util-deprecate@1.0.2:
|
||||
dev: false
|
||||
util-deprecate@1.0.2: {}
|
||||
|
||||
xtend@4.0.1:
|
||||
dev: false
|
||||
xtend@4.0.1: {}
|
||||
|
||||
zen-observable@0.7.1:
|
||||
dev: false
|
||||
zen-observable@0.7.1: {}
|
||||
|
||||
zen-push@0.2.1:
|
||||
dependencies:
|
||||
zen-observable: 0.7.1
|
||||
dev: false
|
||||
|
||||
time: {}
|
||||
|
||||
12
pkg-manager/headless/test/fixtures/side-effects-of-subdep/pnpm-lock.yaml
generated
vendored
12
pkg-manager/headless/test/fixtures/side-effects-of-subdep/pnpm-lock.yaml
generated
vendored
@@ -43,16 +43,13 @@ snapshots:
|
||||
debug@4.1.1:
|
||||
dependencies:
|
||||
ms: 2.1.2
|
||||
dev: false
|
||||
|
||||
diskusage@1.1.3:
|
||||
dependencies:
|
||||
es6-promise: 4.2.8
|
||||
nan: 2.14.0
|
||||
dev: false
|
||||
|
||||
es6-promise@4.2.8:
|
||||
dev: false
|
||||
es6-promise@4.2.8: {}
|
||||
|
||||
expire-fs@2.2.3:
|
||||
dependencies:
|
||||
@@ -60,12 +57,9 @@ snapshots:
|
||||
diskusage: 1.1.3
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
ms@2.1.2:
|
||||
dev: false
|
||||
ms@2.1.2: {}
|
||||
|
||||
nan@2.14.0:
|
||||
dev: false
|
||||
nan@2.14.0: {}
|
||||
|
||||
time: {}
|
||||
|
||||
4
pkg-manager/headless/test/fixtures/side-effects/pnpm-lock.yaml
generated
vendored
4
pkg-manager/headless/test/fixtures/side-effects/pnpm-lock.yaml
generated
vendored
@@ -23,10 +23,8 @@ packages:
|
||||
|
||||
snapshots:
|
||||
|
||||
'@pnpm.e2e/hello-world-js-bin@1.0.0':
|
||||
dev: false
|
||||
'@pnpm.e2e/hello-world-js-bin@1.0.0': {}
|
||||
|
||||
'@pnpm.e2e/pre-and-postinstall-scripts-example@1.0.0':
|
||||
dependencies:
|
||||
'@pnpm.e2e/hello-world-js-bin': 1.0.0
|
||||
dev: false
|
||||
|
||||
35
pkg-manager/headless/test/fixtures/simple-shamefully-flatten/pnpm-lock.yaml
generated
vendored
35
pkg-manager/headless/test/fixtures/simple-shamefully-flatten/pnpm-lock.yaml
generated
vendored
@@ -89,32 +89,25 @@ packages:
|
||||
|
||||
snapshots:
|
||||
|
||||
'@pnpm.e2e/hello-world-js-bin@1.0.0':
|
||||
dev: false
|
||||
'@pnpm.e2e/hello-world-js-bin@1.0.0': {}
|
||||
|
||||
'@pnpm.e2e/pkg-with-peer-having-bin@1.0.0':
|
||||
dependencies:
|
||||
'@pnpm.e2e/hello-world-js-bin': 1.0.0
|
||||
dev: false
|
||||
|
||||
balanced-match@1.0.2:
|
||||
dev: false
|
||||
balanced-match@1.0.2: {}
|
||||
|
||||
brace-expansion@1.1.11:
|
||||
dependencies:
|
||||
balanced-match: 1.0.2
|
||||
concat-map: 0.0.1
|
||||
dev: false
|
||||
|
||||
colors@1.2.0:
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
concat-map@0.0.1:
|
||||
dev: false
|
||||
concat-map@0.0.1: {}
|
||||
|
||||
fs.realpath@1.0.0:
|
||||
dev: false
|
||||
fs.realpath@1.0.0: {}
|
||||
|
||||
glob@7.2.3:
|
||||
dependencies:
|
||||
@@ -124,42 +117,32 @@ snapshots:
|
||||
minimatch: 3.1.2
|
||||
once: 1.4.0
|
||||
path-is-absolute: 1.0.1
|
||||
dev: false
|
||||
|
||||
inflight@1.0.6:
|
||||
dependencies:
|
||||
once: 1.4.0
|
||||
wrappy: 1.0.2
|
||||
dev: false
|
||||
|
||||
inherits@2.0.4:
|
||||
dev: false
|
||||
inherits@2.0.4: {}
|
||||
|
||||
is-negative@2.1.0:
|
||||
dev: true
|
||||
is-negative@2.1.0: {}
|
||||
|
||||
is-positive@1.0.0:
|
||||
dev: false
|
||||
is-positive@1.0.0: {}
|
||||
|
||||
minimatch@3.1.2:
|
||||
dependencies:
|
||||
brace-expansion: 1.1.11
|
||||
dev: false
|
||||
|
||||
once@1.4.0:
|
||||
dependencies:
|
||||
wrappy: 1.0.2
|
||||
dev: false
|
||||
|
||||
path-is-absolute@1.0.1:
|
||||
dev: false
|
||||
path-is-absolute@1.0.1: {}
|
||||
|
||||
rimraf@2.6.2:
|
||||
dependencies:
|
||||
glob: 7.2.3
|
||||
dev: false
|
||||
|
||||
wrappy@1.0.2:
|
||||
dev: false
|
||||
wrappy@1.0.2: {}
|
||||
|
||||
time: {}
|
||||
|
||||
34
pkg-manager/headless/test/fixtures/simple-with-more-deps/pnpm-lock.yaml
generated
vendored
34
pkg-manager/headless/test/fixtures/simple-with-more-deps/pnpm-lock.yaml
generated
vendored
@@ -84,24 +84,19 @@ packages:
|
||||
|
||||
snapshots:
|
||||
|
||||
balanced-match@1.0.2:
|
||||
dev: false
|
||||
balanced-match@1.0.2: {}
|
||||
|
||||
brace-expansion@1.1.11:
|
||||
dependencies:
|
||||
balanced-match: 1.0.2
|
||||
concat-map: 0.0.1
|
||||
dev: false
|
||||
|
||||
colors@1.2.0:
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
concat-map@0.0.1:
|
||||
dev: false
|
||||
concat-map@0.0.1: {}
|
||||
|
||||
fs.realpath@1.0.0:
|
||||
dev: false
|
||||
fs.realpath@1.0.0: {}
|
||||
|
||||
glob@7.2.3:
|
||||
dependencies:
|
||||
@@ -111,43 +106,32 @@ snapshots:
|
||||
minimatch: 3.1.2
|
||||
once: 1.4.0
|
||||
path-is-absolute: 1.0.1
|
||||
dev: false
|
||||
|
||||
inflight@1.0.6:
|
||||
dependencies:
|
||||
once: 1.4.0
|
||||
wrappy: 1.0.2
|
||||
dev: false
|
||||
|
||||
inherits@2.0.4:
|
||||
dev: false
|
||||
inherits@2.0.4: {}
|
||||
|
||||
is-negative@2.1.0:
|
||||
dev: true
|
||||
is-negative@2.1.0: {}
|
||||
|
||||
is-positive@1.0.0:
|
||||
dev: false
|
||||
is-positive@1.0.0: {}
|
||||
|
||||
minimatch@3.1.2:
|
||||
dependencies:
|
||||
brace-expansion: 1.1.11
|
||||
dev: false
|
||||
|
||||
once@1.4.0:
|
||||
dependencies:
|
||||
wrappy: 1.0.2
|
||||
dev: false
|
||||
|
||||
path-is-absolute@1.0.1:
|
||||
dev: false
|
||||
path-is-absolute@1.0.1: {}
|
||||
|
||||
resolve-from@4.0.0:
|
||||
dev: false
|
||||
resolve-from@4.0.0: {}
|
||||
|
||||
rimraf@2.7.1:
|
||||
dependencies:
|
||||
glob: 7.2.3
|
||||
dev: false
|
||||
|
||||
wrappy@1.0.2:
|
||||
dev: false
|
||||
wrappy@1.0.2: {}
|
||||
|
||||
5
pkg-manager/headless/test/fixtures/simple-with-optional-dep/pnpm-lock.yaml
generated
vendored
5
pkg-manager/headless/test/fixtures/simple-with-optional-dep/pnpm-lock.yaml
generated
vendored
@@ -30,18 +30,15 @@ packages:
|
||||
|
||||
snapshots:
|
||||
|
||||
'@pnpm.e2e/dep-of-pkg-with-1-dep@101.0.0':
|
||||
dev: false
|
||||
'@pnpm.e2e/dep-of-pkg-with-1-dep@101.0.0': {}
|
||||
|
||||
'@pnpm.e2e/pkg-with-good-optional@1.0.0':
|
||||
dependencies:
|
||||
'@pnpm.e2e/dep-of-pkg-with-1-dep': 101.0.0
|
||||
optionalDependencies:
|
||||
is-positive: 1.0.0
|
||||
dev: false
|
||||
|
||||
is-positive@1.0.0:
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
time: {}
|
||||
|
||||
31
pkg-manager/headless/test/fixtures/simple/pnpm-lock.yaml
generated
vendored
31
pkg-manager/headless/test/fixtures/simple/pnpm-lock.yaml
generated
vendored
@@ -77,24 +77,19 @@ packages:
|
||||
|
||||
snapshots:
|
||||
|
||||
balanced-match@1.0.2:
|
||||
dev: false
|
||||
balanced-match@1.0.2: {}
|
||||
|
||||
brace-expansion@1.1.11:
|
||||
dependencies:
|
||||
balanced-match: 1.0.2
|
||||
concat-map: 0.0.1
|
||||
dev: false
|
||||
|
||||
colors@1.2.0:
|
||||
dev: false
|
||||
optional: true
|
||||
|
||||
concat-map@0.0.1:
|
||||
dev: false
|
||||
concat-map@0.0.1: {}
|
||||
|
||||
fs.realpath@1.0.0:
|
||||
dev: false
|
||||
fs.realpath@1.0.0: {}
|
||||
|
||||
glob@7.2.3:
|
||||
dependencies:
|
||||
@@ -104,40 +99,30 @@ snapshots:
|
||||
minimatch: 3.1.2
|
||||
once: 1.4.0
|
||||
path-is-absolute: 1.0.1
|
||||
dev: false
|
||||
|
||||
inflight@1.0.6:
|
||||
dependencies:
|
||||
once: 1.4.0
|
||||
wrappy: 1.0.2
|
||||
dev: false
|
||||
|
||||
inherits@2.0.4:
|
||||
dev: false
|
||||
inherits@2.0.4: {}
|
||||
|
||||
is-negative@2.1.0:
|
||||
dev: true
|
||||
is-negative@2.1.0: {}
|
||||
|
||||
is-positive@1.0.0:
|
||||
dev: false
|
||||
is-positive@1.0.0: {}
|
||||
|
||||
minimatch@3.1.2:
|
||||
dependencies:
|
||||
brace-expansion: 1.1.11
|
||||
dev: false
|
||||
|
||||
once@1.4.0:
|
||||
dependencies:
|
||||
wrappy: 1.0.2
|
||||
dev: false
|
||||
|
||||
path-is-absolute@1.0.1:
|
||||
dev: false
|
||||
path-is-absolute@1.0.1: {}
|
||||
|
||||
rimraf@2.7.1:
|
||||
dependencies:
|
||||
glob: 7.2.3
|
||||
dev: false
|
||||
|
||||
wrappy@1.0.2:
|
||||
dev: false
|
||||
wrappy@1.0.2: {}
|
||||
|
||||
21
pkg-manager/headless/test/fixtures/with-1-dep/pnpm-lock.yaml
generated
vendored
21
pkg-manager/headless/test/fixtures/with-1-dep/pnpm-lock.yaml
generated
vendored
@@ -52,17 +52,14 @@ packages:
|
||||
|
||||
snapshots:
|
||||
|
||||
balanced-match@0.3.0:
|
||||
dev: false
|
||||
balanced-match@0.3.0: {}
|
||||
|
||||
brace-expansion@1.1.2:
|
||||
dependencies:
|
||||
balanced-match: 0.3.0
|
||||
concat-map: 0.0.1
|
||||
dev: false
|
||||
|
||||
concat-map@0.0.1:
|
||||
dev: false
|
||||
concat-map@0.0.1: {}
|
||||
|
||||
glob@6.0.4:
|
||||
dependencies:
|
||||
@@ -71,36 +68,28 @@ snapshots:
|
||||
minimatch: 3.0.0
|
||||
once: 1.3.3
|
||||
path-is-absolute: 1.0.0
|
||||
dev: false
|
||||
|
||||
inflight@1.0.4:
|
||||
dependencies:
|
||||
once: 1.3.3
|
||||
wrappy: 1.0.1
|
||||
dev: false
|
||||
|
||||
inherits@2.0.1:
|
||||
dev: false
|
||||
inherits@2.0.1: {}
|
||||
|
||||
minimatch@3.0.0:
|
||||
dependencies:
|
||||
brace-expansion: 1.1.2
|
||||
dev: false
|
||||
|
||||
once@1.3.3:
|
||||
dependencies:
|
||||
wrappy: 1.0.1
|
||||
dev: false
|
||||
|
||||
path-is-absolute@1.0.0:
|
||||
dev: false
|
||||
path-is-absolute@1.0.0: {}
|
||||
|
||||
rimraf@2.5.1:
|
||||
dependencies:
|
||||
glob: 6.0.4
|
||||
dev: false
|
||||
|
||||
wrappy@1.0.1:
|
||||
dev: false
|
||||
wrappy@1.0.1: {}
|
||||
|
||||
time: {}
|
||||
|
||||
@@ -223,11 +223,6 @@ test('installing non-prod deps then all deps', async () => {
|
||||
|
||||
project.hasNot('once')
|
||||
|
||||
{
|
||||
const lockfile = project.readLockfile()
|
||||
expect(lockfile.snapshots['is-positive@1.0.0'].dev === false).toBeTruthy()
|
||||
}
|
||||
|
||||
{
|
||||
const currentLockfile = project.readCurrentLockfile()
|
||||
expect(currentLockfile.packages).not.toHaveProperty(['is-positive@1.0.0'])
|
||||
|
||||
@@ -25,12 +25,12 @@ exports[`pnpm dedupe updates old resolutions from importers block and removes ol
|
||||
"ajv@6.12.6": Object {
|
||||
"resolution": Object {
|
||||
"integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
|
||||
- },
|
||||
},
|
||||
},
|
||||
- "fast-deep-equal@2.0.1": Object {
|
||||
- "resolution": Object {
|
||||
- "integrity": "sha512-bCK/2Z4zLidyB4ReuIsvALH6w31YfAQDmXMqMx6FyfHqvBxtjC0eRumeSu4Bs3XtXwpyIywtSTrVT99BxY1f9w==",
|
||||
- },
|
||||
},
|
||||
- },
|
||||
"fast-deep-equal@3.1.3": Object {
|
||||
"resolution": Object {
|
||||
@@ -45,33 +45,36 @@ exports[`pnpm dedupe updates old resolutions from importers block and removes ol
|
||||
"fast-json-stable-stringify@2.1.0": Object {
|
||||
"resolution": Object {
|
||||
"integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
|
||||
@@ -55,25 +40,12 @@
|
||||
@@ -53,14 +38,6 @@
|
||||
"json-schema-traverse@0.4.1": Object {
|
||||
"resolution": Object {
|
||||
"integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
|
||||
},
|
||||
},
|
||||
- },
|
||||
- },
|
||||
- "punycode@2.1.1": Object {
|
||||
- "engines": Object {
|
||||
- "node": ">=6",
|
||||
- },
|
||||
- "resolution": Object {
|
||||
- "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
|
||||
- },
|
||||
- },
|
||||
},
|
||||
},
|
||||
"punycode@2.3.0": Object {
|
||||
"engines": Object {
|
||||
"node": ">=6",
|
||||
@@ -69,13 +46,8 @@
|
||||
},
|
||||
"resolution": Object {
|
||||
"integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==",
|
||||
- },
|
||||
- },
|
||||
},
|
||||
- "uri-js@4.2.2": Object {
|
||||
- "resolution": Object {
|
||||
- "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==",
|
||||
},
|
||||
},
|
||||
- },
|
||||
"uri-js@4.4.1": Object {
|
||||
@@ -87,49 +59,25 @@
|
||||
"resolution": Object {
|
||||
"integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
|
||||
@@ -87,14 +59,6 @@
|
||||
"excludeLinksFromLockfile": false,
|
||||
},
|
||||
"snapshots": Object {
|
||||
@@ -82,45 +85,29 @@ exports[`pnpm dedupe updates old resolutions from importers block and removes ol
|
||||
- "json-schema-traverse": "0.4.1",
|
||||
- "uri-js": "4.2.2",
|
||||
- },
|
||||
- "dev": false,
|
||||
- },
|
||||
"ajv@6.12.6": Object {
|
||||
"dependencies": Object {
|
||||
"fast-deep-equal": "3.1.3",
|
||||
"fast-json-stable-stringify": "2.1.0",
|
||||
"json-schema-traverse": "0.4.1",
|
||||
@@ -103,18 +67,10 @@
|
||||
"uri-js": "4.4.1",
|
||||
- },
|
||||
- "dev": false,
|
||||
},
|
||||
- "fast-deep-equal@2.0.1": Object {
|
||||
"dev": false,
|
||||
},
|
||||
"fast-deep-equal@3.1.3": Object {
|
||||
"dev": false,
|
||||
},
|
||||
- "fast-json-stable-stringify@2.0.0": Object {
|
||||
- "dev": false,
|
||||
- },
|
||||
"fast-json-stable-stringify@2.1.0": Object {
|
||||
"dev": false,
|
||||
},
|
||||
"json-schema-traverse@0.4.1": Object {
|
||||
- "dev": false,
|
||||
- },
|
||||
- "punycode@2.1.1": Object {
|
||||
"dev": false,
|
||||
},
|
||||
"punycode@2.3.0": Object {
|
||||
- "dev": false,
|
||||
- },
|
||||
- "fast-deep-equal@2.0.1": Object {},
|
||||
"fast-deep-equal@3.1.3": Object {},
|
||||
- "fast-json-stable-stringify@2.0.0": Object {},
|
||||
"fast-json-stable-stringify@2.1.0": Object {},
|
||||
"json-schema-traverse@0.4.1": Object {},
|
||||
- "punycode@2.1.1": Object {},
|
||||
"punycode@2.3.0": Object {},
|
||||
- "uri-js@4.2.2": Object {
|
||||
- "dependencies": Object {
|
||||
- "punycode": "2.1.1",
|
||||
- },
|
||||
"dev": false,
|
||||
},
|
||||
"uri-js@4.4.1": Object {"
|
||||
- },
|
||||
"uri-js@4.4.1": Object {
|
||||
"dependencies": Object {
|
||||
"punycode": "2.3.0","
|
||||
`;
|
||||
|
||||
exports[`pnpm dedupe updates old resolutions from package block 1`] = `
|
||||
@@ -142,21 +129,17 @@ exports[`pnpm dedupe updates old resolutions from package block 1`] = `
|
||||
"punycode@2.3.0": Object {
|
||||
"engines": Object {
|
||||
"node": ">=6",
|
||||
@@ -52,15 +44,12 @@
|
||||
@@ -52,11 +44,10 @@
|
||||
"excludeLinksFromLockfile": false,
|
||||
},
|
||||
"snapshots": Object {
|
||||
- "punycode@2.1.1": Object {
|
||||
- "dev": false,
|
||||
- },
|
||||
"punycode@2.3.0": Object {
|
||||
"dev": false,
|
||||
},
|
||||
- "punycode@2.1.1": Object {},
|
||||
"punycode@2.3.0": Object {},
|
||||
"uri-js@4.2.2": Object {
|
||||
"dependencies": Object {
|
||||
- "punycode": "2.1.1",
|
||||
+ "punycode": "2.3.0",
|
||||
},
|
||||
"dev": false,
|
||||
},"
|
||||
},
|
||||
"uri-js@4.4.1": Object {"
|
||||
`;
|
||||
|
||||
@@ -91,11 +91,6 @@ function toLockfileDependency (
|
||||
if (Object.keys(newResolvedOptionalDeps).length > 0) {
|
||||
result['optionalDependencies'] = newResolvedOptionalDeps
|
||||
}
|
||||
if (pkg.dev && !pkg.prod) {
|
||||
result['dev'] = true
|
||||
} else if (pkg.prod && !pkg.dev) {
|
||||
result['dev'] = false
|
||||
}
|
||||
if (pkg.optional) {
|
||||
result['optional'] = true
|
||||
}
|
||||
|
||||
31
pnpm-lock.yaml
generated
31
pnpm-lock.yaml
generated
@@ -2007,6 +2007,9 @@ importers:
|
||||
'@pnpm/lockfile-walker':
|
||||
specifier: workspace:*
|
||||
version: link:../lockfile-walker
|
||||
'@pnpm/lockfile.detect-dep-types':
|
||||
specifier: workspace:*
|
||||
version: link:../detect-dep-types
|
||||
'@pnpm/logger':
|
||||
specifier: ^5.0.0
|
||||
version: 5.0.0
|
||||
@@ -2039,6 +2042,22 @@ importers:
|
||||
specifier: 13.3.4
|
||||
version: 13.3.4
|
||||
|
||||
lockfile/detect-dep-types:
|
||||
dependencies:
|
||||
'@pnpm/dependency-path':
|
||||
specifier: workspace:*
|
||||
version: link:../../packages/dependency-path
|
||||
'@pnpm/lockfile-types':
|
||||
specifier: workspace:*
|
||||
version: link:../lockfile-types
|
||||
devDependencies:
|
||||
'@pnpm/lockfile.detect-dep-types':
|
||||
specifier: workspace:*
|
||||
version: 'link:'
|
||||
tempy:
|
||||
specifier: ^1.0.1
|
||||
version: 1.0.1
|
||||
|
||||
lockfile/filter-lockfile:
|
||||
dependencies:
|
||||
'@pnpm/constants':
|
||||
@@ -2283,16 +2302,10 @@ importers:
|
||||
'@pnpm/types':
|
||||
specifier: workspace:*
|
||||
version: link:../../packages/types
|
||||
ramda:
|
||||
specifier: npm:@pnpm/ramda@0.28.1
|
||||
version: '@pnpm/ramda@0.28.1'
|
||||
devDependencies:
|
||||
'@pnpm/lockfile-walker':
|
||||
specifier: workspace:*
|
||||
version: 'link:'
|
||||
'@types/ramda':
|
||||
specifier: 0.28.20
|
||||
version: 0.28.20
|
||||
tempy:
|
||||
specifier: ^1.0.1
|
||||
version: 1.0.1
|
||||
@@ -5243,6 +5256,9 @@ importers:
|
||||
'@pnpm/lockfile-utils':
|
||||
specifier: workspace:*
|
||||
version: link:../../lockfile/lockfile-utils
|
||||
'@pnpm/lockfile.detect-dep-types':
|
||||
specifier: workspace:*
|
||||
version: link:../../lockfile/detect-dep-types
|
||||
'@pnpm/matcher':
|
||||
specifier: workspace:*
|
||||
version: link:../../config/matcher
|
||||
@@ -5316,6 +5332,9 @@ importers:
|
||||
'@pnpm/lockfile-walker':
|
||||
specifier: workspace:*
|
||||
version: link:../../lockfile/lockfile-walker
|
||||
'@pnpm/lockfile.detect-dep-types':
|
||||
specifier: workspace:*
|
||||
version: link:../../lockfile/detect-dep-types
|
||||
'@pnpm/logger':
|
||||
specifier: ^5.0.0
|
||||
version: 5.0.0
|
||||
|
||||
@@ -984,9 +984,7 @@ test("shared-workspace-lockfile: don't install dependencies in projects that are
|
||||
},
|
||||
},
|
||||
snapshots: {
|
||||
'is-positive@1.0.0': {
|
||||
dev: false,
|
||||
},
|
||||
'is-positive@1.0.0': {},
|
||||
},
|
||||
})
|
||||
})
|
||||
@@ -1097,12 +1095,8 @@ test('shared-workspace-lockfile: install dependencies in projects that are relat
|
||||
},
|
||||
},
|
||||
snapshots: {
|
||||
'is-negative@1.0.0': {
|
||||
dev: false,
|
||||
},
|
||||
'is-positive@1.0.0': {
|
||||
dev: false,
|
||||
},
|
||||
'is-negative@1.0.0': {},
|
||||
'is-positive@1.0.0': {},
|
||||
},
|
||||
})
|
||||
})
|
||||
|
||||
@@ -35,6 +35,7 @@
|
||||
"@pnpm/dependency-path": "workspace:*",
|
||||
"@pnpm/lockfile-file": "workspace:*",
|
||||
"@pnpm/lockfile-utils": "workspace:*",
|
||||
"@pnpm/lockfile.detect-dep-types": "workspace:*",
|
||||
"@pnpm/matcher": "workspace:*",
|
||||
"@pnpm/modules-yaml": "workspace:*",
|
||||
"@pnpm/normalize-registries": "workspace:*",
|
||||
|
||||
@@ -6,6 +6,7 @@ import {
|
||||
readCurrentLockfile,
|
||||
readWantedLockfile,
|
||||
} from '@pnpm/lockfile-file'
|
||||
import { detectDepTypes } from '@pnpm/lockfile.detect-dep-types'
|
||||
import { readModulesManifest } from '@pnpm/modules-yaml'
|
||||
import { normalizeRegistries } from '@pnpm/normalize-registries'
|
||||
import { readModulesDir } from '@pnpm/read-modules-dir'
|
||||
@@ -123,6 +124,7 @@ async function dependenciesHierarchyForPackage (
|
||||
currentPackages: currentLockfile.packages ?? {},
|
||||
importers: currentLockfile.importers,
|
||||
includeOptionalDependencies: opts.include.optionalDependencies,
|
||||
lockfile: currentLockfile,
|
||||
lockfileDir: opts.lockfileDir,
|
||||
onlyProjects: opts.onlyProjects,
|
||||
rewriteLinkVersionDir: projectPath,
|
||||
@@ -139,10 +141,12 @@ async function dependenciesHierarchyForPackage (
|
||||
for (const dependenciesField of DEPENDENCIES_FIELDS.sort().filter(dependenciesField => opts.include[dependenciesField])) {
|
||||
const topDeps = currentLockfile.importers[importerId][dependenciesField] ?? {}
|
||||
result[dependenciesField] = []
|
||||
const depTypes = detectDepTypes(currentLockfile)
|
||||
Object.entries(topDeps).forEach(([alias, ref]) => {
|
||||
const packageInfo = getPkgInfo({
|
||||
alias,
|
||||
currentPackages: currentLockfile.packages ?? {},
|
||||
depTypes,
|
||||
rewriteLinkVersionDir: projectPath,
|
||||
linkedPathBaseDir: projectPath,
|
||||
ref,
|
||||
|
||||
@@ -8,6 +8,7 @@ import {
|
||||
nameVerFromPkgSnapshot,
|
||||
pkgSnapshotToResolution,
|
||||
} from '@pnpm/lockfile-utils'
|
||||
import { type DepTypes, DepType } from '@pnpm/lockfile.detect-dep-types'
|
||||
import { type Registries } from '@pnpm/types'
|
||||
import { depPathToFilename, refToRelative } from '@pnpm/dependency-path'
|
||||
import normalizePath from 'normalize-path'
|
||||
@@ -21,6 +22,7 @@ export interface GetPkgInfoOpts {
|
||||
readonly skipped: Set<string>
|
||||
readonly wantedPackages: PackageSnapshots
|
||||
readonly virtualStoreDir?: string
|
||||
readonly depTypes: DepTypes
|
||||
|
||||
/**
|
||||
* The base dir if the `ref` argument is a `"link:"` relative path.
|
||||
@@ -41,7 +43,7 @@ export function getPkgInfo (opts: GetPkgInfoOpts): PackageInfo {
|
||||
let name!: string
|
||||
let version: string
|
||||
let resolved: string | undefined
|
||||
let dev: boolean | undefined
|
||||
let depType: DepType | undefined
|
||||
let optional: true | undefined
|
||||
let isSkipped: boolean = false
|
||||
let isMissing: boolean = false
|
||||
@@ -67,7 +69,7 @@ export function getPkgInfo (opts: GetPkgInfoOpts): PackageInfo {
|
||||
isSkipped = opts.skipped.has(depPath)
|
||||
}
|
||||
resolved = (pkgSnapshotToResolution(depPath, pkgSnapshot, opts.registries) as TarballResolution).tarball
|
||||
dev = pkgSnapshot.dev
|
||||
depType = opts.depTypes[depPath]
|
||||
optional = pkgSnapshot.optional
|
||||
} else {
|
||||
name = opts.alias
|
||||
@@ -99,8 +101,10 @@ export function getPkgInfo (opts: GetPkgInfoOpts): PackageInfo {
|
||||
if (optional === true) {
|
||||
packageInfo.optional = true
|
||||
}
|
||||
if (typeof dev === 'boolean') {
|
||||
packageInfo.dev = dev
|
||||
if (depType === DepType.DevOnly) {
|
||||
packageInfo.dev = true
|
||||
} else if (depType === DepType.ProdOnly) {
|
||||
packageInfo.dev = false
|
||||
}
|
||||
return packageInfo
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import path from 'path'
|
||||
import { type PackageSnapshots, type ProjectSnapshot } from '@pnpm/lockfile-file'
|
||||
import { type Lockfile, type PackageSnapshots, type ProjectSnapshot } from '@pnpm/lockfile-file'
|
||||
import { detectDepTypes } from '@pnpm/lockfile.detect-dep-types'
|
||||
import { type Registries } from '@pnpm/types'
|
||||
import { type SearchFunction } from './types'
|
||||
import { type PackageNode } from './PackageNode'
|
||||
@@ -18,6 +19,7 @@ interface GetTreeOpts {
|
||||
skipped: Set<string>
|
||||
registries: Registries
|
||||
importers: Record<string, ProjectSnapshot>
|
||||
lockfile: Lockfile
|
||||
currentPackages: PackageSnapshots
|
||||
wantedPackages: PackageSnapshots
|
||||
virtualStoreDir?: string
|
||||
@@ -121,10 +123,12 @@ function getTreeHelper (
|
||||
let resultHeight: number | 'unknown' = 0
|
||||
let resultCircular: boolean = false
|
||||
|
||||
const depTypes = detectDepTypes(opts.lockfile)
|
||||
Object.entries(deps).forEach(([alias, ref]) => {
|
||||
const packageInfo = getPkgInfo({
|
||||
alias,
|
||||
currentPackages: opts.currentPackages,
|
||||
depTypes,
|
||||
rewriteLinkVersionDir: opts.rewriteLinkVersionDir,
|
||||
linkedPathBaseDir,
|
||||
peers,
|
||||
|
||||
@@ -95,6 +95,7 @@ describe('getTree', () => {
|
||||
},
|
||||
currentPackages,
|
||||
wantedPackages: currentPackages,
|
||||
lockfile: { lockfileVersion: '7.0', importers: {} },
|
||||
}
|
||||
|
||||
test('full test case to print when max depth is large', () => {
|
||||
@@ -164,6 +165,7 @@ describe('getTree', () => {
|
||||
importers: {},
|
||||
includeOptionalDependencies: false,
|
||||
lockfileDir: '',
|
||||
lockfile: { lockfileVersion: '7.0', importers: {} },
|
||||
skipped: new Set<string>(),
|
||||
registries: {
|
||||
default: 'mock-registry-for-testing.example',
|
||||
@@ -299,6 +301,7 @@ describe('getTree', () => {
|
||||
importers: {},
|
||||
includeOptionalDependencies: false,
|
||||
lockfileDir: '',
|
||||
lockfile: { lockfileVersion: '7.0', importers: {} },
|
||||
skipped: new Set<string>(),
|
||||
registries: {
|
||||
default: 'mock-registry-for-testing.example',
|
||||
|
||||
@@ -21,6 +21,9 @@
|
||||
{
|
||||
"path": "../../fs/read-modules-dir"
|
||||
},
|
||||
{
|
||||
"path": "../../lockfile/detect-dep-types"
|
||||
},
|
||||
{
|
||||
"path": "../../lockfile/lockfile-file"
|
||||
},
|
||||
|
||||
@@ -40,6 +40,7 @@
|
||||
"@pnpm/lockfile-types": "workspace:*",
|
||||
"@pnpm/lockfile-utils": "workspace:*",
|
||||
"@pnpm/lockfile-walker": "workspace:*",
|
||||
"@pnpm/lockfile.detect-dep-types": "workspace:*",
|
||||
"@pnpm/package-is-installable": "workspace:*",
|
||||
"@pnpm/read-package-json": "workspace:*",
|
||||
"@pnpm/store.cafs": "workspace:*",
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import { PnpmError } from '@pnpm/error'
|
||||
import { type Lockfile } from '@pnpm/lockfile-file'
|
||||
import { detectDepTypes } from '@pnpm/lockfile.detect-dep-types'
|
||||
import {
|
||||
type SupportedArchitectures,
|
||||
type DependenciesField,
|
||||
@@ -85,6 +86,7 @@ export async function findDependencyLicenses (opts: {
|
||||
)
|
||||
}
|
||||
|
||||
const depTypes = detectDepTypes(opts.wantedLockfile)
|
||||
const licenseNodeTree = await lockfileToLicenseNodeTree(opts.wantedLockfile, {
|
||||
dir: opts.lockfileDir,
|
||||
modulesDir: opts.modulesDir,
|
||||
@@ -94,6 +96,7 @@ export async function findDependencyLicenses (opts: {
|
||||
registries: opts.registries,
|
||||
includedImporterIds: opts.includedImporterIds,
|
||||
supportedArchitectures: opts.supportedArchitectures,
|
||||
depTypes,
|
||||
})
|
||||
|
||||
// map: name@ver -> LicensePackage
|
||||
|
||||
@@ -5,6 +5,7 @@ import {
|
||||
lockfileWalkerGroupImporterSteps,
|
||||
type LockfileWalkerStep,
|
||||
} from '@pnpm/lockfile-walker'
|
||||
import { type DepTypes, DepType, detectDepTypes } from '@pnpm/lockfile.detect-dep-types'
|
||||
import { type SupportedArchitectures, type DependenciesField, type Registries } from '@pnpm/types'
|
||||
import { getPkgInfo } from './getPkgInfo'
|
||||
import mapValues from 'ramda/src/map'
|
||||
@@ -37,6 +38,7 @@ export interface LicenseExtractOptions {
|
||||
dir: string
|
||||
registries: Registries
|
||||
supportedArchitectures?: SupportedArchitectures
|
||||
depTypes: DepTypes
|
||||
}
|
||||
|
||||
export async function lockfileToLicenseNode (
|
||||
@@ -87,7 +89,7 @@ export async function lockfileToLicenseNode (
|
||||
|
||||
const dep: LicenseNode = {
|
||||
name,
|
||||
dev: pkgSnapshot.dev === true,
|
||||
dev: options.depTypes[depPath] === DepType.DevOnly,
|
||||
integrity: (pkgSnapshot.resolution as TarballResolution).integrity,
|
||||
version,
|
||||
license: packageInfo.license,
|
||||
@@ -131,6 +133,7 @@ export async function lockfileToLicenseNodeTree (
|
||||
opts.includedImporterIds ?? Object.keys(lockfile.importers),
|
||||
{ include: opts?.include }
|
||||
)
|
||||
const depTypes = detectDepTypes(lockfile)
|
||||
const dependencies = Object.fromEntries(
|
||||
await Promise.all(
|
||||
importerWalkers.map(async (importerWalker) => {
|
||||
@@ -141,6 +144,7 @@ export async function lockfileToLicenseNodeTree (
|
||||
dir: opts.dir,
|
||||
registries: opts.registries,
|
||||
supportedArchitectures: opts.supportedArchitectures,
|
||||
depTypes,
|
||||
})
|
||||
return [importerWalker.importerId, {
|
||||
dependencies: importerDeps,
|
||||
|
||||
@@ -15,6 +15,9 @@
|
||||
{
|
||||
"path": "../../fetching/directory-fetcher"
|
||||
},
|
||||
{
|
||||
"path": "../../lockfile/detect-dep-types"
|
||||
},
|
||||
{
|
||||
"path": "../../lockfile/lockfile-file"
|
||||
},
|
||||
|
||||
@@ -48,13 +48,11 @@ test('outdated()', async () => {
|
||||
lockfileVersion: 5,
|
||||
packages: {
|
||||
'is-negative@2.1.0': {
|
||||
dev: true,
|
||||
resolution: {
|
||||
integrity: 'sha1-8Nhjd6oVpkw0lh84rCqb4rQKEYc=',
|
||||
},
|
||||
},
|
||||
'is-positive@1.0.0': {
|
||||
dev: true,
|
||||
resolution: {
|
||||
integrity: 'sha512-xxzPGZ4P2uN6rROUa5N9Z7zTX6ERuE0hs6GUOc/cKBLF2NqKc16UwqHMt3tFg4CO6EBTE5UecUasg+3jZx3Ckg==',
|
||||
},
|
||||
@@ -62,7 +60,6 @@ test('outdated()', async () => {
|
||||
'from-github@https://codeload.github.com/blabla/from-github/tar.gz/d5f8d5500f7faf593d32e134c1b0043ff69151b4': {
|
||||
version: '1.1.0',
|
||||
|
||||
dev: false,
|
||||
resolution: {
|
||||
tarball: 'https://codeload.github.com/blabla/from-github/tar.gz/d5f8d5500f7faf593d32e134c1b0043ff69151b3',
|
||||
},
|
||||
@@ -200,7 +197,6 @@ test('outdated() should return deprecated package even if its current version is
|
||||
lockfileVersion: 5,
|
||||
packages: {
|
||||
'deprecated-pkg@1.0.0': {
|
||||
dev: false,
|
||||
resolution: {
|
||||
integrity: 'sha1-8Nhjd6oVpkw0lh84rCqb4rQKEYc=',
|
||||
},
|
||||
@@ -454,19 +450,16 @@ test('a dependency is not outdated if it is newer than the latest version', asyn
|
||||
lockfileVersion: 5,
|
||||
packages: {
|
||||
'foo@1.0.0': {
|
||||
dev: false,
|
||||
resolution: {
|
||||
integrity: 'sha1-8Nhjd6oVpkw0lh84rCqb4rQKEYc=',
|
||||
},
|
||||
},
|
||||
'foo2@2.0.0-0': {
|
||||
dev: false,
|
||||
resolution: {
|
||||
integrity: 'sha1-8Nhjd6oVpkw0lh84rCqb4rQKEYc=',
|
||||
},
|
||||
},
|
||||
'foo3@2.0.0': {
|
||||
dev: false,
|
||||
resolution: {
|
||||
integrity: 'sha1-8Nhjd6oVpkw0lh84rCqb4rQKEYc=',
|
||||
},
|
||||
@@ -561,13 +554,11 @@ test('should ignore dependencies as expected', async () => {
|
||||
lockfileVersion: 5,
|
||||
packages: {
|
||||
'is-negative@2.1.0': {
|
||||
dev: true,
|
||||
resolution: {
|
||||
integrity: 'sha1-8Nhjd6oVpkw0lh84rCqb4rQKEYc=',
|
||||
},
|
||||
},
|
||||
'is-positive@1.0.0': {
|
||||
dev: true,
|
||||
resolution: {
|
||||
integrity: 'sha512-xxzPGZ4P2uN6rROUa5N9Z7zTX6ERuE0hs6GUOc/cKBLF2NqKc16UwqHMt3tFg4CO6EBTE5UecUasg+3jZx3Ckg==',
|
||||
},
|
||||
@@ -576,7 +567,6 @@ test('should ignore dependencies as expected', async () => {
|
||||
name: 'from-github',
|
||||
version: '1.1.0',
|
||||
|
||||
dev: false,
|
||||
resolution: {
|
||||
tarball: 'https://codeload.github.com/blabla/from-github/tar.gz/d5f8d5500f7faf593d32e134c1b0043ff69151b3',
|
||||
},
|
||||
|
||||
@@ -1,13 +1,11 @@
|
||||
import fs from 'fs'
|
||||
import path from 'path'
|
||||
import { assertStore } from '@pnpm/assert-store'
|
||||
import { type LockfileFileV7 as LockfileFile } from '@pnpm/lockfile-file'
|
||||
import { store } from '@pnpm/plugin-commands-store'
|
||||
import { prepare } from '@pnpm/prepare'
|
||||
import { REGISTRY_MOCK_PORT } from '@pnpm/registry-mock'
|
||||
import { sync as rimraf } from '@zkochan/rimraf'
|
||||
import execa from 'execa'
|
||||
import isEmpty from 'ramda/src/isEmpty'
|
||||
import ssri from 'ssri'
|
||||
|
||||
const STORE_VERSION = 'v3'
|
||||
@@ -135,14 +133,6 @@ test('keep dependencies used by others', async () => {
|
||||
project.storeHas('map-obj', '1.0.1')
|
||||
project.hasNot('map-obj')
|
||||
|
||||
// all dependencies are marked as dev
|
||||
const lockfile = project.readLockfile() as LockfileFile
|
||||
expect(isEmpty(lockfile.snapshots)).toBeFalsy()
|
||||
|
||||
Object.entries(lockfile.snapshots ?? {}).forEach(([_, dep]) => {
|
||||
expect(dep.dev).toBeTruthy()
|
||||
})
|
||||
|
||||
await store.handler({
|
||||
cacheDir,
|
||||
dir: process.cwd(),
|
||||
|
||||
Reference in New Issue
Block a user