summaryrefslogtreecommitdiff
path: root/deps/npm
diff options
context:
space:
mode:
authornpm CLI robot <npm-cli+bot@github.com>2023-01-27 13:34:28 -0500
committerGitHub <noreply@github.com>2023-01-27 18:34:28 +0000
commitb6531696fa75a77ea7a153cfac33111842c8f47f (patch)
tree39d0091b6d9d547e22ffd88e8a1be4d85ebc5e3d /deps/npm
parent19623e386fb78b59ba6b79de7e3fd00257d812fc (diff)
downloadnode-new-b6531696fa75a77ea7a153cfac33111842c8f47f.tar.gz
deps: upgrade npm to 9.4.0
PR-URL: https://github.com/nodejs/node/pull/46353 Reviewed-By: Myles Borins <myles.borins@gmail.com> Reviewed-By: Mohammed Keyvanzadeh <mohammadkeyvanzade94@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Diffstat (limited to 'deps/npm')
-rw-r--r--deps/npm/docs/content/commands/npm-ci.md4
-rw-r--r--deps/npm/docs/content/commands/npm-dedupe.md4
-rw-r--r--deps/npm/docs/content/commands/npm-find-dupes.md4
-rw-r--r--deps/npm/docs/content/commands/npm-install-ci-test.md4
-rw-r--r--deps/npm/docs/content/commands/npm-install-test.md4
-rw-r--r--deps/npm/docs/content/commands/npm-install.md4
-rw-r--r--deps/npm/docs/content/commands/npm-link.md4
-rw-r--r--deps/npm/docs/content/commands/npm-ls.md2
-rw-r--r--deps/npm/docs/content/commands/npm-update.md4
-rw-r--r--deps/npm/docs/content/commands/npm.md2
-rw-r--r--deps/npm/docs/content/using-npm/config.md4
-rw-r--r--deps/npm/docs/output/commands/npm-ci.html4
-rw-r--r--deps/npm/docs/output/commands/npm-dedupe.html4
-rw-r--r--deps/npm/docs/output/commands/npm-find-dupes.html4
-rw-r--r--deps/npm/docs/output/commands/npm-install-ci-test.html4
-rw-r--r--deps/npm/docs/output/commands/npm-install-test.html4
-rw-r--r--deps/npm/docs/output/commands/npm-install.html4
-rw-r--r--deps/npm/docs/output/commands/npm-link.html4
-rw-r--r--deps/npm/docs/output/commands/npm-ls.html2
-rw-r--r--deps/npm/docs/output/commands/npm-update.html4
-rw-r--r--deps/npm/docs/output/commands/npm.html2
-rw-r--r--deps/npm/docs/output/using-npm/config.html4
-rw-r--r--deps/npm/lib/utils/config/definitions.js4
-rw-r--r--deps/npm/man/man1/npm-ci.14
-rw-r--r--deps/npm/man/man1/npm-dedupe.14
-rw-r--r--deps/npm/man/man1/npm-find-dupes.14
-rw-r--r--deps/npm/man/man1/npm-install-ci-test.14
-rw-r--r--deps/npm/man/man1/npm-install-test.14
-rw-r--r--deps/npm/man/man1/npm-install.14
-rw-r--r--deps/npm/man/man1/npm-link.14
-rw-r--r--deps/npm/man/man1/npm-ls.12
-rw-r--r--deps/npm/man/man1/npm-update.14
-rw-r--r--deps/npm/man/man1/npm.12
-rw-r--r--deps/npm/man/man7/config.74
-rw-r--r--deps/npm/node_modules/@npmcli/arborist/lib/arborist/build-ideal-tree.js1
-rw-r--r--deps/npm/node_modules/@npmcli/arborist/lib/arborist/index.js1
-rw-r--r--deps/npm/node_modules/@npmcli/arborist/lib/arborist/isolated-reifier.js453
-rw-r--r--deps/npm/node_modules/@npmcli/arborist/lib/arborist/rebuild.js11
-rw-r--r--deps/npm/node_modules/@npmcli/arborist/lib/arborist/reify.js98
-rw-r--r--deps/npm/node_modules/@npmcli/arborist/lib/link.js4
-rw-r--r--deps/npm/node_modules/@npmcli/arborist/lib/node.js2
-rw-r--r--deps/npm/node_modules/@npmcli/arborist/package.json8
-rw-r--r--deps/npm/node_modules/@npmcli/config/package.json4
-rw-r--r--deps/npm/node_modules/buffer/AUTHORS.md (renamed from deps/npm/node_modules/are-we-there-yet/node_modules/buffer/AUTHORS.md)0
-rw-r--r--deps/npm/node_modules/buffer/LICENSE (renamed from deps/npm/node_modules/are-we-there-yet/node_modules/buffer/LICENSE)0
-rw-r--r--deps/npm/node_modules/buffer/index.d.ts (renamed from deps/npm/node_modules/are-we-there-yet/node_modules/buffer/index.d.ts)0
-rw-r--r--deps/npm/node_modules/buffer/index.js (renamed from deps/npm/node_modules/are-we-there-yet/node_modules/buffer/index.js)0
-rw-r--r--deps/npm/node_modules/buffer/package.json (renamed from deps/npm/node_modules/are-we-there-yet/node_modules/buffer/package.json)0
-rw-r--r--deps/npm/node_modules/libnpmaccess/package.json4
-rw-r--r--deps/npm/node_modules/libnpmdiff/package.json8
-rw-r--r--deps/npm/node_modules/libnpmexec/package.json8
-rw-r--r--deps/npm/node_modules/libnpmfund/package.json8
-rw-r--r--deps/npm/node_modules/libnpmhook/package.json4
-rw-r--r--deps/npm/node_modules/libnpmorg/package.json4
-rw-r--r--deps/npm/node_modules/libnpmpack/package.json8
-rw-r--r--deps/npm/node_modules/libnpmpublish/package.json4
-rw-r--r--deps/npm/node_modules/libnpmsearch/package.json4
-rw-r--r--deps/npm/node_modules/libnpmteam/package.json4
-rw-r--r--deps/npm/node_modules/libnpmversion/package.json4
-rw-r--r--deps/npm/package.json16
-rw-r--r--deps/npm/tap-snapshots/test/lib/docs.js.test.cjs42
61 files changed, 660 insertions, 164 deletions
diff --git a/deps/npm/docs/content/commands/npm-ci.md b/deps/npm/docs/content/commands/npm-ci.md
index 1e9220b6a6..c9b64a71ee 100644
--- a/deps/npm/docs/content/commands/npm-ci.md
+++ b/deps/npm/docs/content/commands/npm-ci.md
@@ -109,13 +109,13 @@ folder instead of the current working directory. See
#### `install-strategy`
* Default: "hoisted"
-* Type: "hoisted", "nested", or "shallow"
+* Type: "hoisted", "nested", "shallow", or "linked"
Sets the strategy for installing packages in node_modules. hoisted
(default): Install non-duplicated in top-level, and duplicated as necessary
within directory structure. nested: (formerly --legacy-bundling) install in
place, no hoisting. shallow (formerly --global-style) only install direct
-deps at top-level. linked: (coming soon) install in node_modules/.store,
+deps at top-level. linked: (experimental) install in node_modules/.store,
link in place, unhoisted.
#### `legacy-bundling`
diff --git a/deps/npm/docs/content/commands/npm-dedupe.md b/deps/npm/docs/content/commands/npm-dedupe.md
index c32b50fbc5..60ec58937e 100644
--- a/deps/npm/docs/content/commands/npm-dedupe.md
+++ b/deps/npm/docs/content/commands/npm-dedupe.md
@@ -80,13 +80,13 @@ values in `package.json` you can run: `npm update --save` instead.
#### `install-strategy`
* Default: "hoisted"
-* Type: "hoisted", "nested", or "shallow"
+* Type: "hoisted", "nested", "shallow", or "linked"
Sets the strategy for installing packages in node_modules. hoisted
(default): Install non-duplicated in top-level, and duplicated as necessary
within directory structure. nested: (formerly --legacy-bundling) install in
place, no hoisting. shallow (formerly --global-style) only install direct
-deps at top-level. linked: (coming soon) install in node_modules/.store,
+deps at top-level. linked: (experimental) install in node_modules/.store,
link in place, unhoisted.
#### `legacy-bundling`
diff --git a/deps/npm/docs/content/commands/npm-find-dupes.md b/deps/npm/docs/content/commands/npm-find-dupes.md
index e80f338239..ffb659010f 100644
--- a/deps/npm/docs/content/commands/npm-find-dupes.md
+++ b/deps/npm/docs/content/commands/npm-find-dupes.md
@@ -20,13 +20,13 @@ duplications, without actually changing the package tree.
#### `install-strategy`
* Default: "hoisted"
-* Type: "hoisted", "nested", or "shallow"
+* Type: "hoisted", "nested", "shallow", or "linked"
Sets the strategy for installing packages in node_modules. hoisted
(default): Install non-duplicated in top-level, and duplicated as necessary
within directory structure. nested: (formerly --legacy-bundling) install in
place, no hoisting. shallow (formerly --global-style) only install direct
-deps at top-level. linked: (coming soon) install in node_modules/.store,
+deps at top-level. linked: (experimental) install in node_modules/.store,
link in place, unhoisted.
#### `legacy-bundling`
diff --git a/deps/npm/docs/content/commands/npm-install-ci-test.md b/deps/npm/docs/content/commands/npm-install-ci-test.md
index c7a7551023..f7c9b931c1 100644
--- a/deps/npm/docs/content/commands/npm-install-ci-test.md
+++ b/deps/npm/docs/content/commands/npm-install-ci-test.md
@@ -55,13 +55,13 @@ folder instead of the current working directory. See
#### `install-strategy`
* Default: "hoisted"
-* Type: "hoisted", "nested", or "shallow"
+* Type: "hoisted", "nested", "shallow", or "linked"
Sets the strategy for installing packages in node_modules. hoisted
(default): Install non-duplicated in top-level, and duplicated as necessary
within directory structure. nested: (formerly --legacy-bundling) install in
place, no hoisting. shallow (formerly --global-style) only install direct
-deps at top-level. linked: (coming soon) install in node_modules/.store,
+deps at top-level. linked: (experimental) install in node_modules/.store,
link in place, unhoisted.
#### `legacy-bundling`
diff --git a/deps/npm/docs/content/commands/npm-install-test.md b/deps/npm/docs/content/commands/npm-install-test.md
index 464a448748..e9559f52a0 100644
--- a/deps/npm/docs/content/commands/npm-install-test.md
+++ b/deps/npm/docs/content/commands/npm-install-test.md
@@ -56,13 +56,13 @@ folder instead of the current working directory. See
#### `install-strategy`
* Default: "hoisted"
-* Type: "hoisted", "nested", or "shallow"
+* Type: "hoisted", "nested", "shallow", or "linked"
Sets the strategy for installing packages in node_modules. hoisted
(default): Install non-duplicated in top-level, and duplicated as necessary
within directory structure. nested: (formerly --legacy-bundling) install in
place, no hoisting. shallow (formerly --global-style) only install direct
-deps at top-level. linked: (coming soon) install in node_modules/.store,
+deps at top-level. linked: (experimental) install in node_modules/.store,
link in place, unhoisted.
#### `legacy-bundling`
diff --git a/deps/npm/docs/content/commands/npm-install.md b/deps/npm/docs/content/commands/npm-install.md
index 8353ea25a9..c195152f23 100644
--- a/deps/npm/docs/content/commands/npm-install.md
+++ b/deps/npm/docs/content/commands/npm-install.md
@@ -446,13 +446,13 @@ folder instead of the current working directory. See
#### `install-strategy`
* Default: "hoisted"
-* Type: "hoisted", "nested", or "shallow"
+* Type: "hoisted", "nested", "shallow", or "linked"
Sets the strategy for installing packages in node_modules. hoisted
(default): Install non-duplicated in top-level, and duplicated as necessary
within directory structure. nested: (formerly --legacy-bundling) install in
place, no hoisting. shallow (formerly --global-style) only install direct
-deps at top-level. linked: (coming soon) install in node_modules/.store,
+deps at top-level. linked: (experimental) install in node_modules/.store,
link in place, unhoisted.
#### `legacy-bundling`
diff --git a/deps/npm/docs/content/commands/npm-link.md b/deps/npm/docs/content/commands/npm-link.md
index 9de0ff2c0a..3a8f5b569a 100644
--- a/deps/npm/docs/content/commands/npm-link.md
+++ b/deps/npm/docs/content/commands/npm-link.md
@@ -147,13 +147,13 @@ folder instead of the current working directory. See
#### `install-strategy`
* Default: "hoisted"
-* Type: "hoisted", "nested", or "shallow"
+* Type: "hoisted", "nested", "shallow", or "linked"
Sets the strategy for installing packages in node_modules. hoisted
(default): Install non-duplicated in top-level, and duplicated as necessary
within directory structure. nested: (formerly --legacy-bundling) install in
place, no hoisting. shallow (formerly --global-style) only install direct
-deps at top-level. linked: (coming soon) install in node_modules/.store,
+deps at top-level. linked: (experimental) install in node_modules/.store,
link in place, unhoisted.
#### `legacy-bundling`
diff --git a/deps/npm/docs/content/commands/npm-ls.md b/deps/npm/docs/content/commands/npm-ls.md
index 4690d7752f..29e16bc9b9 100644
--- a/deps/npm/docs/content/commands/npm-ls.md
+++ b/deps/npm/docs/content/commands/npm-ls.md
@@ -27,7 +27,7 @@ packages will *also* show the paths to the specified packages. For
example, running `npm ls promzard` in npm's source tree will show:
```bash
-npm@9.3.1 /path/to/npm
+npm@9.4.0 /path/to/npm
└─┬ init-package-json@0.0.4
└── promzard@0.1.5
```
diff --git a/deps/npm/docs/content/commands/npm-update.md b/deps/npm/docs/content/commands/npm-update.md
index 16c8e4df66..d94e52efe9 100644
--- a/deps/npm/docs/content/commands/npm-update.md
+++ b/deps/npm/docs/content/commands/npm-update.md
@@ -186,13 +186,13 @@ folder instead of the current working directory. See
#### `install-strategy`
* Default: "hoisted"
-* Type: "hoisted", "nested", or "shallow"
+* Type: "hoisted", "nested", "shallow", or "linked"
Sets the strategy for installing packages in node_modules. hoisted
(default): Install non-duplicated in top-level, and duplicated as necessary
within directory structure. nested: (formerly --legacy-bundling) install in
place, no hoisting. shallow (formerly --global-style) only install direct
-deps at top-level. linked: (coming soon) install in node_modules/.store,
+deps at top-level. linked: (experimental) install in node_modules/.store,
link in place, unhoisted.
#### `legacy-bundling`
diff --git a/deps/npm/docs/content/commands/npm.md b/deps/npm/docs/content/commands/npm.md
index f2fdaee318..a7209b8687 100644
--- a/deps/npm/docs/content/commands/npm.md
+++ b/deps/npm/docs/content/commands/npm.md
@@ -14,7 +14,7 @@ Note: This command is unaware of workspaces.
### Version
-9.3.1
+9.4.0
### Description
diff --git a/deps/npm/docs/content/using-npm/config.md b/deps/npm/docs/content/using-npm/config.md
index c70f51d13b..f2f0b0f064 100644
--- a/deps/npm/docs/content/using-npm/config.md
+++ b/deps/npm/docs/content/using-npm/config.md
@@ -701,13 +701,13 @@ workspaces.
#### `install-strategy`
* Default: "hoisted"
-* Type: "hoisted", "nested", or "shallow"
+* Type: "hoisted", "nested", "shallow", or "linked"
Sets the strategy for installing packages in node_modules. hoisted
(default): Install non-duplicated in top-level, and duplicated as necessary
within directory structure. nested: (formerly --legacy-bundling) install in
place, no hoisting. shallow (formerly --global-style) only install direct
-deps at top-level. linked: (coming soon) install in node_modules/.store,
+deps at top-level. linked: (experimental) install in node_modules/.store,
link in place, unhoisted.
#### `json`
diff --git a/deps/npm/docs/output/commands/npm-ci.html b/deps/npm/docs/output/commands/npm-ci.html
index 07f07b5630..da11f6eca9 100644
--- a/deps/npm/docs/output/commands/npm-ci.html
+++ b/deps/npm/docs/output/commands/npm-ci.html
@@ -229,13 +229,13 @@ of the current working directory.</li>
<h4 id="install-strategy"><code>install-strategy</code></h4>
<ul>
<li>Default: "hoisted"</li>
-<li>Type: "hoisted", "nested", or "shallow"</li>
+<li>Type: "hoisted", "nested", "shallow", or "linked"</li>
</ul>
<p>Sets the strategy for installing packages in node_modules. hoisted
(default): Install non-duplicated in top-level, and duplicated as necessary
within directory structure. nested: (formerly --legacy-bundling) install in
place, no hoisting. shallow (formerly --global-style) only install direct
-deps at top-level. linked: (coming soon) install in node_modules/.store,
+deps at top-level. linked: (experimental) install in node_modules/.store,
link in place, unhoisted.</p>
<h4 id="legacy-bundling"><code>legacy-bundling</code></h4>
<ul>
diff --git a/deps/npm/docs/output/commands/npm-dedupe.html b/deps/npm/docs/output/commands/npm-dedupe.html
index 143398d8d7..b0dda833a9 100644
--- a/deps/npm/docs/output/commands/npm-dedupe.html
+++ b/deps/npm/docs/output/commands/npm-dedupe.html
@@ -198,13 +198,13 @@ values in <code>package.json</code> you can run: <code>npm update --save</code>
<h4 id="install-strategy"><code>install-strategy</code></h4>
<ul>
<li>Default: "hoisted"</li>
-<li>Type: "hoisted", "nested", or "shallow"</li>
+<li>Type: "hoisted", "nested", "shallow", or "linked"</li>
</ul>
<p>Sets the strategy for installing packages in node_modules. hoisted
(default): Install non-duplicated in top-level, and duplicated as necessary
within directory structure. nested: (formerly --legacy-bundling) install in
place, no hoisting. shallow (formerly --global-style) only install direct
-deps at top-level. linked: (coming soon) install in node_modules/.store,
+deps at top-level. linked: (experimental) install in node_modules/.store,
link in place, unhoisted.</p>
<h4 id="legacy-bundling"><code>legacy-bundling</code></h4>
<ul>
diff --git a/deps/npm/docs/output/commands/npm-find-dupes.html b/deps/npm/docs/output/commands/npm-find-dupes.html
index 0dd2bc3750..0e596eea43 100644
--- a/deps/npm/docs/output/commands/npm-find-dupes.html
+++ b/deps/npm/docs/output/commands/npm-find-dupes.html
@@ -155,13 +155,13 @@ duplications, without actually changing the package tree.</p>
<h4 id="install-strategy"><code>install-strategy</code></h4>
<ul>
<li>Default: "hoisted"</li>
-<li>Type: "hoisted", "nested", or "shallow"</li>
+<li>Type: "hoisted", "nested", "shallow", or "linked"</li>
</ul>
<p>Sets the strategy for installing packages in node_modules. hoisted
(default): Install non-duplicated in top-level, and duplicated as necessary
within directory structure. nested: (formerly --legacy-bundling) install in
place, no hoisting. shallow (formerly --global-style) only install direct
-deps at top-level. linked: (coming soon) install in node_modules/.store,
+deps at top-level. linked: (experimental) install in node_modules/.store,
link in place, unhoisted.</p>
<h4 id="legacy-bundling"><code>legacy-bundling</code></h4>
<ul>
diff --git a/deps/npm/docs/output/commands/npm-install-ci-test.html b/deps/npm/docs/output/commands/npm-install-ci-test.html
index 0d3dea5b4c..6dc0044846 100644
--- a/deps/npm/docs/output/commands/npm-install-ci-test.html
+++ b/deps/npm/docs/output/commands/npm-install-ci-test.html
@@ -186,13 +186,13 @@ of the current working directory.</li>
<h4 id="install-strategy"><code>install-strategy</code></h4>
<ul>
<li>Default: "hoisted"</li>
-<li>Type: "hoisted", "nested", or "shallow"</li>
+<li>Type: "hoisted", "nested", "shallow", or "linked"</li>
</ul>
<p>Sets the strategy for installing packages in node_modules. hoisted
(default): Install non-duplicated in top-level, and duplicated as necessary
within directory structure. nested: (formerly --legacy-bundling) install in
place, no hoisting. shallow (formerly --global-style) only install direct
-deps at top-level. linked: (coming soon) install in node_modules/.store,
+deps at top-level. linked: (experimental) install in node_modules/.store,
link in place, unhoisted.</p>
<h4 id="legacy-bundling"><code>legacy-bundling</code></h4>
<ul>
diff --git a/deps/npm/docs/output/commands/npm-install-test.html b/deps/npm/docs/output/commands/npm-install-test.html
index ff53148d4f..050257b7a5 100644
--- a/deps/npm/docs/output/commands/npm-install-test.html
+++ b/deps/npm/docs/output/commands/npm-install-test.html
@@ -187,13 +187,13 @@ of the current working directory.</li>
<h4 id="install-strategy"><code>install-strategy</code></h4>
<ul>
<li>Default: "hoisted"</li>
-<li>Type: "hoisted", "nested", or "shallow"</li>
+<li>Type: "hoisted", "nested", "shallow", or "linked"</li>
</ul>
<p>Sets the strategy for installing packages in node_modules. hoisted
(default): Install non-duplicated in top-level, and duplicated as necessary
within directory structure. nested: (formerly --legacy-bundling) install in
place, no hoisting. shallow (formerly --global-style) only install direct
-deps at top-level. linked: (coming soon) install in node_modules/.store,
+deps at top-level. linked: (experimental) install in node_modules/.store,
link in place, unhoisted.</p>
<h4 id="legacy-bundling"><code>legacy-bundling</code></h4>
<ul>
diff --git a/deps/npm/docs/output/commands/npm-install.html b/deps/npm/docs/output/commands/npm-install.html
index 40dc5d32b3..29f847327e 100644
--- a/deps/npm/docs/output/commands/npm-install.html
+++ b/deps/npm/docs/output/commands/npm-install.html
@@ -513,13 +513,13 @@ of the current working directory.</li>
<h4 id="install-strategy"><code>install-strategy</code></h4>
<ul>
<li>Default: "hoisted"</li>
-<li>Type: "hoisted", "nested", or "shallow"</li>
+<li>Type: "hoisted", "nested", "shallow", or "linked"</li>
</ul>
<p>Sets the strategy for installing packages in node_modules. hoisted
(default): Install non-duplicated in top-level, and duplicated as necessary
within directory structure. nested: (formerly --legacy-bundling) install in
place, no hoisting. shallow (formerly --global-style) only install direct
-deps at top-level. linked: (coming soon) install in node_modules/.store,
+deps at top-level. linked: (experimental) install in node_modules/.store,
link in place, unhoisted.</p>
<h4 id="legacy-bundling"><code>legacy-bundling</code></h4>
<ul>
diff --git a/deps/npm/docs/output/commands/npm-link.html b/deps/npm/docs/output/commands/npm-link.html
index d23f83826a..a90473c8b4 100644
--- a/deps/npm/docs/output/commands/npm-link.html
+++ b/deps/npm/docs/output/commands/npm-link.html
@@ -250,13 +250,13 @@ of the current working directory.</li>
<h4 id="install-strategy"><code>install-strategy</code></h4>
<ul>
<li>Default: "hoisted"</li>
-<li>Type: "hoisted", "nested", or "shallow"</li>
+<li>Type: "hoisted", "nested", "shallow", or "linked"</li>
</ul>
<p>Sets the strategy for installing packages in node_modules. hoisted
(default): Install non-duplicated in top-level, and duplicated as necessary
within directory structure. nested: (formerly --legacy-bundling) install in
place, no hoisting. shallow (formerly --global-style) only install direct
-deps at top-level. linked: (coming soon) install in node_modules/.store,
+deps at top-level. linked: (experimental) install in node_modules/.store,
link in place, unhoisted.</p>
<h4 id="legacy-bundling"><code>legacy-bundling</code></h4>
<ul>
diff --git a/deps/npm/docs/output/commands/npm-ls.html b/deps/npm/docs/output/commands/npm-ls.html
index 4bb067ab67..18abea53a1 100644
--- a/deps/npm/docs/output/commands/npm-ls.html
+++ b/deps/npm/docs/output/commands/npm-ls.html
@@ -160,7 +160,7 @@ tree at all, use <a href="../commands/npm-explain.html"><code>npm explain</code>
the results to only the paths to the packages named. Note that nested
packages will <em>also</em> show the paths to the specified packages. For
example, running <code>npm ls promzard</code> in npm's source tree will show:</p>
-<pre><code class="language-bash">npm@9.3.1 /path/to/npm
+<pre><code class="language-bash">npm@9.4.0 /path/to/npm
└─┬ init-package-json@0.0.4
└── promzard@0.1.5
</code></pre>
diff --git a/deps/npm/docs/output/commands/npm-update.html b/deps/npm/docs/output/commands/npm-update.html
index 162eb4fe54..6c7645859b 100644
--- a/deps/npm/docs/output/commands/npm-update.html
+++ b/deps/npm/docs/output/commands/npm-update.html
@@ -277,13 +277,13 @@ of the current working directory.</li>
<h4 id="install-strategy"><code>install-strategy</code></h4>
<ul>
<li>Default: "hoisted"</li>
-<li>Type: "hoisted", "nested", or "shallow"</li>
+<li>Type: "hoisted", "nested", "shallow", or "linked"</li>
</ul>
<p>Sets the strategy for installing packages in node_modules. hoisted
(default): Install non-duplicated in top-level, and duplicated as necessary
within directory structure. nested: (formerly --legacy-bundling) install in
place, no hoisting. shallow (formerly --global-style) only install direct
-deps at top-level. linked: (coming soon) install in node_modules/.store,
+deps at top-level. linked: (experimental) install in node_modules/.store,
link in place, unhoisted.</p>
<h4 id="legacy-bundling"><code>legacy-bundling</code></h4>
<ul>
diff --git a/deps/npm/docs/output/commands/npm.html b/deps/npm/docs/output/commands/npm.html
index 76f4fc5cc1..3141792627 100644
--- a/deps/npm/docs/output/commands/npm.html
+++ b/deps/npm/docs/output/commands/npm.html
@@ -150,7 +150,7 @@ npm command-line interface
</code></pre>
<p>Note: This command is unaware of workspaces.</p>
<h3 id="version">Version</h3>
-<p>9.3.1</p>
+<p>9.4.0</p>
<h3 id="description">Description</h3>
<p>npm is the package manager for the Node JavaScript platform. It puts
modules in place so that node can find them, and manages dependency
diff --git a/deps/npm/docs/output/using-npm/config.html b/deps/npm/docs/output/using-npm/config.html
index 35bc3529ef..d8f54958ad 100644
--- a/deps/npm/docs/output/using-npm/config.html
+++ b/deps/npm/docs/output/using-npm/config.html
@@ -733,13 +733,13 @@ workspaces.</p>
<h4 id="install-strategy"><code>install-strategy</code></h4>
<ul>
<li>Default: "hoisted"</li>
-<li>Type: "hoisted", "nested", or "shallow"</li>
+<li>Type: "hoisted", "nested", "shallow", or "linked"</li>
</ul>
<p>Sets the strategy for installing packages in node_modules. hoisted
(default): Install non-duplicated in top-level, and duplicated as necessary
within directory structure. nested: (formerly --legacy-bundling) install in
place, no hoisting. shallow (formerly --global-style) only install direct
-deps at top-level. linked: (coming soon) install in node_modules/.store,
+deps at top-level. linked: (experimental) install in node_modules/.store,
link in place, unhoisted.</p>
<h4 id="json"><code>json</code></h4>
<ul>
diff --git a/deps/npm/lib/utils/config/definitions.js b/deps/npm/lib/utils/config/definitions.js
index 9ddbafd46f..578e0daa67 100644
--- a/deps/npm/lib/utils/config/definitions.js
+++ b/deps/npm/lib/utils/config/definitions.js
@@ -1090,14 +1090,14 @@ define('install-links', {
define('install-strategy', {
default: 'hoisted',
- type: ['hoisted', 'nested', 'shallow'],
+ type: ['hoisted', 'nested', 'shallow', 'linked'],
description: `
Sets the strategy for installing packages in node_modules.
hoisted (default): Install non-duplicated in top-level, and duplicated as
necessary within directory structure.
nested: (formerly --legacy-bundling) install in place, no hoisting.
shallow (formerly --global-style) only install direct deps at top-level.
- linked: (coming soon) install in node_modules/.store, link in place,
+ linked: (experimental) install in node_modules/.store, link in place,
unhoisted.
`,
flatten,
diff --git a/deps/npm/man/man1/npm-ci.1 b/deps/npm/man/man1/npm-ci.1
index 9335c9aec4..e4d3c2feb0 100644
--- a/deps/npm/man/man1/npm-ci.1
+++ b/deps/npm/man/man1/npm-ci.1
@@ -114,11 +114,11 @@ man pages are linked to \fB{prefix}/share/man\fR
.IP \(bu 4
Default: "hoisted"
.IP \(bu 4
-Type: "hoisted", "nested", or "shallow"
+Type: "hoisted", "nested", "shallow", or "linked"
.RE 0
.P
-Sets the strategy for installing packages in node_modules. hoisted (default): Install non-duplicated in top-level, and duplicated as necessary within directory structure. nested: (formerly --legacy-bundling) install in place, no hoisting. shallow (formerly --global-style) only install direct deps at top-level. linked: (coming soon) install in node_modules/.store, link in place, unhoisted.
+Sets the strategy for installing packages in node_modules. hoisted (default): Install non-duplicated in top-level, and duplicated as necessary within directory structure. nested: (formerly --legacy-bundling) install in place, no hoisting. shallow (formerly --global-style) only install direct deps at top-level. linked: (experimental) install in node_modules/.store, link in place, unhoisted.
.SS "\fBlegacy-bundling\fR"
.RS 0
.IP \(bu 4
diff --git a/deps/npm/man/man1/npm-dedupe.1 b/deps/npm/man/man1/npm-dedupe.1
index ff45a8d0fd..78feb7989c 100644
--- a/deps/npm/man/man1/npm-dedupe.1
+++ b/deps/npm/man/man1/npm-dedupe.1
@@ -70,11 +70,11 @@ Note: \fBnpm dedupe\fR will never update the semver values of direct dependencie
.IP \(bu 4
Default: "hoisted"
.IP \(bu 4
-Type: "hoisted", "nested", or "shallow"
+Type: "hoisted", "nested", "shallow", or "linked"
.RE 0
.P
-Sets the strategy for installing packages in node_modules. hoisted (default): Install non-duplicated in top-level, and duplicated as necessary within directory structure. nested: (formerly --legacy-bundling) install in place, no hoisting. shallow (formerly --global-style) only install direct deps at top-level. linked: (coming soon) install in node_modules/.store, link in place, unhoisted.
+Sets the strategy for installing packages in node_modules. hoisted (default): Install non-duplicated in top-level, and duplicated as necessary within directory structure. nested: (formerly --legacy-bundling) install in place, no hoisting. shallow (formerly --global-style) only install direct deps at top-level. linked: (experimental) install in node_modules/.store, link in place, unhoisted.
.SS "\fBlegacy-bundling\fR"
.RS 0
.IP \(bu 4
diff --git a/deps/npm/man/man1/npm-find-dupes.1 b/deps/npm/man/man1/npm-find-dupes.1
index 5ec681c48c..c38290b9c6 100644
--- a/deps/npm/man/man1/npm-find-dupes.1
+++ b/deps/npm/man/man1/npm-find-dupes.1
@@ -17,11 +17,11 @@ Runs \fBnpm dedupe\fR in \fB--dry-run\fR mode, making npm only output the duplic
.IP \(bu 4
Default: "hoisted"
.IP \(bu 4
-Type: "hoisted", "nested", or "shallow"
+Type: "hoisted", "nested", "shallow", or "linked"
.RE 0
.P
-Sets the strategy for installing packages in node_modules. hoisted (default): Install non-duplicated in top-level, and duplicated as necessary within directory structure. nested: (formerly --legacy-bundling) install in place, no hoisting. shallow (formerly --global-style) only install direct deps at top-level. linked: (coming soon) install in node_modules/.store, link in place, unhoisted.
+Sets the strategy for installing packages in node_modules. hoisted (default): Install non-duplicated in top-level, and duplicated as necessary within directory structure. nested: (formerly --legacy-bundling) install in place, no hoisting. shallow (formerly --global-style) only install direct deps at top-level. linked: (experimental) install in node_modules/.store, link in place, unhoisted.
.SS "\fBlegacy-bundling\fR"
.RS 0
.IP \(bu 4
diff --git a/deps/npm/man/man1/npm-install-ci-test.1 b/deps/npm/man/man1/npm-install-ci-test.1
index 96b0bf5acc..987643c830 100644
--- a/deps/npm/man/man1/npm-install-ci-test.1
+++ b/deps/npm/man/man1/npm-install-ci-test.1
@@ -62,11 +62,11 @@ man pages are linked to \fB{prefix}/share/man\fR
.IP \(bu 4
Default: "hoisted"
.IP \(bu 4
-Type: "hoisted", "nested", or "shallow"
+Type: "hoisted", "nested", "shallow", or "linked"
.RE 0
.P
-Sets the strategy for installing packages in node_modules. hoisted (default): Install non-duplicated in top-level, and duplicated as necessary within directory structure. nested: (formerly --legacy-bundling) install in place, no hoisting. shallow (formerly --global-style) only install direct deps at top-level. linked: (coming soon) install in node_modules/.store, link in place, unhoisted.
+Sets the strategy for installing packages in node_modules. hoisted (default): Install non-duplicated in top-level, and duplicated as necessary within directory structure. nested: (formerly --legacy-bundling) install in place, no hoisting. shallow (formerly --global-style) only install direct deps at top-level. linked: (experimental) install in node_modules/.store, link in place, unhoisted.
.SS "\fBlegacy-bundling\fR"
.RS 0
.IP \(bu 4
diff --git a/deps/npm/man/man1/npm-install-test.1 b/deps/npm/man/man1/npm-install-test.1
index 5b5b6823cf..2f9282ef29 100644
--- a/deps/npm/man/man1/npm-install-test.1
+++ b/deps/npm/man/man1/npm-install-test.1
@@ -62,11 +62,11 @@ man pages are linked to \fB{prefix}/share/man\fR
.IP \(bu 4
Default: "hoisted"
.IP \(bu 4
-Type: "hoisted", "nested", or "shallow"
+Type: "hoisted", "nested", "shallow", or "linked"
.RE 0
.P
-Sets the strategy for installing packages in node_modules. hoisted (default): Install non-duplicated in top-level, and duplicated as necessary within directory structure. nested: (formerly --legacy-bundling) install in place, no hoisting. shallow (formerly --global-style) only install direct deps at top-level. linked: (coming soon) install in node_modules/.store, link in place, unhoisted.
+Sets the strategy for installing packages in node_modules. hoisted (default): Install non-duplicated in top-level, and duplicated as necessary within directory structure. nested: (formerly --legacy-bundling) install in place, no hoisting. shallow (formerly --global-style) only install direct deps at top-level. linked: (experimental) install in node_modules/.store, link in place, unhoisted.
.SS "\fBlegacy-bundling\fR"
.RS 0
.IP \(bu 4
diff --git a/deps/npm/man/man1/npm-install.1 b/deps/npm/man/man1/npm-install.1
index 55e5abe3f8..97997f1bad 100644
--- a/deps/npm/man/man1/npm-install.1
+++ b/deps/npm/man/man1/npm-install.1
@@ -424,11 +424,11 @@ man pages are linked to \fB{prefix}/share/man\fR
.IP \(bu 4
Default: "hoisted"
.IP \(bu 4
-Type: "hoisted", "nested", or "shallow"
+Type: "hoisted", "nested", "shallow", or "linked"
.RE 0
.P
-Sets the strategy for installing packages in node_modules. hoisted (default): Install non-duplicated in top-level, and duplicated as necessary within directory structure. nested: (formerly --legacy-bundling) install in place, no hoisting. shallow (formerly --global-style) only install direct deps at top-level. linked: (coming soon) install in node_modules/.store, link in place, unhoisted.
+Sets the strategy for installing packages in node_modules. hoisted (default): Install non-duplicated in top-level, and duplicated as necessary within directory structure. nested: (formerly --legacy-bundling) install in place, no hoisting. shallow (formerly --global-style) only install direct deps at top-level. linked: (experimental) install in node_modules/.store, link in place, unhoisted.
.SS "\fBlegacy-bundling\fR"
.RS 0
.IP \(bu 4
diff --git a/deps/npm/man/man1/npm-link.1 b/deps/npm/man/man1/npm-link.1
index 42ecdee92a..ed09d4a11c 100644
--- a/deps/npm/man/man1/npm-link.1
+++ b/deps/npm/man/man1/npm-link.1
@@ -129,11 +129,11 @@ man pages are linked to \fB{prefix}/share/man\fR
.IP \(bu 4
Default: "hoisted"
.IP \(bu 4
-Type: "hoisted", "nested", or "shallow"
+Type: "hoisted", "nested", "shallow", or "linked"
.RE 0
.P
-Sets the strategy for installing packages in node_modules. hoisted (default): Install non-duplicated in top-level, and duplicated as necessary within directory structure. nested: (formerly --legacy-bundling) install in place, no hoisting. shallow (formerly --global-style) only install direct deps at top-level. linked: (coming soon) install in node_modules/.store, link in place, unhoisted.
+Sets the strategy for installing packages in node_modules. hoisted (default): Install non-duplicated in top-level, and duplicated as necessary within directory structure. nested: (formerly --legacy-bundling) install in place, no hoisting. shallow (formerly --global-style) only install direct deps at top-level. linked: (experimental) install in node_modules/.store, link in place, unhoisted.
.SS "\fBlegacy-bundling\fR"
.RS 0
.IP \(bu 4
diff --git a/deps/npm/man/man1/npm-ls.1 b/deps/npm/man/man1/npm-ls.1
index 76a6790822..06b0ae23d4 100644
--- a/deps/npm/man/man1/npm-ls.1
+++ b/deps/npm/man/man1/npm-ls.1
@@ -20,7 +20,7 @@ Positional arguments are \fBname@version-range\fR identifiers, which will limit
.P
.RS 2
.nf
-npm@9.3.1 /path/to/npm
+npm@9.4.0 /path/to/npm
└─┬ init-package-json@0.0.4
└── promzard@0.1.5
.fi
diff --git a/deps/npm/man/man1/npm-update.1 b/deps/npm/man/man1/npm-update.1
index 644a6787de..6d826c3290 100644
--- a/deps/npm/man/man1/npm-update.1
+++ b/deps/npm/man/man1/npm-update.1
@@ -170,11 +170,11 @@ man pages are linked to \fB{prefix}/share/man\fR
.IP \(bu 4
Default: "hoisted"
.IP \(bu 4
-Type: "hoisted", "nested", or "shallow"
+Type: "hoisted", "nested", "shallow", or "linked"
.RE 0
.P
-Sets the strategy for installing packages in node_modules. hoisted (default): Install non-duplicated in top-level, and duplicated as necessary within directory structure. nested: (formerly --legacy-bundling) install in place, no hoisting. shallow (formerly --global-style) only install direct deps at top-level. linked: (coming soon) install in node_modules/.store, link in place, unhoisted.
+Sets the strategy for installing packages in node_modules. hoisted (default): Install non-duplicated in top-level, and duplicated as necessary within directory structure. nested: (formerly --legacy-bundling) install in place, no hoisting. shallow (formerly --global-style) only install direct deps at top-level. linked: (experimental) install in node_modules/.store, link in place, unhoisted.
.SS "\fBlegacy-bundling\fR"
.RS 0
.IP \(bu 4
diff --git a/deps/npm/man/man1/npm.1 b/deps/npm/man/man1/npm.1
index 1286027b16..64e6f290ce 100644
--- a/deps/npm/man/man1/npm.1
+++ b/deps/npm/man/man1/npm.1
@@ -12,7 +12,7 @@ npm
Note: This command is unaware of workspaces.
.SS "Version"
.P
-9.3.1
+9.4.0
.SS "Description"
.P
npm is the package manager for the Node JavaScript platform. It puts modules in place so that node can find them, and manages dependency conflicts intelligently.
diff --git a/deps/npm/man/man7/config.7 b/deps/npm/man/man7/config.7
index 6f8d20d6ef..8cfd9b876e 100644
--- a/deps/npm/man/man7/config.7
+++ b/deps/npm/man/man7/config.7
@@ -827,11 +827,11 @@ When set file: protocol dependencies will be packed and installed as regular dep
.IP \(bu 4
Default: "hoisted"
.IP \(bu 4
-Type: "hoisted", "nested", or "shallow"
+Type: "hoisted", "nested", "shallow", or "linked"
.RE 0
.P
-Sets the strategy for installing packages in node_modules. hoisted (default): Install non-duplicated in top-level, and duplicated as necessary within directory structure. nested: (formerly --legacy-bundling) install in place, no hoisting. shallow (formerly --global-style) only install direct deps at top-level. linked: (coming soon) install in node_modules/.store, link in place, unhoisted.
+Sets the strategy for installing packages in node_modules. hoisted (default): Install non-duplicated in top-level, and duplicated as necessary within directory structure. nested: (formerly --legacy-bundling) install in place, no hoisting. shallow (formerly --global-style) only install direct deps at top-level. linked: (experimental) install in node_modules/.store, link in place, unhoisted.
.SS "\fBjson\fR"
.RS 0
.IP \(bu 4
diff --git a/deps/npm/node_modules/@npmcli/arborist/lib/arborist/build-ideal-tree.js b/deps/npm/node_modules/@npmcli/arborist/lib/arborist/build-ideal-tree.js
index a9c4b4bc0b..2ea66ac336 100644
--- a/deps/npm/node_modules/@npmcli/arborist/lib/arborist/build-ideal-tree.js
+++ b/deps/npm/node_modules/@npmcli/arborist/lib/arborist/build-ideal-tree.js
@@ -1232,6 +1232,7 @@ This is a one-time fix-up, please be patient...
const isWorkspace = this.idealTree.workspaces && this.idealTree.workspaces.has(spec.name)
// spec is a directory, link it unless installLinks is set or it's a workspace
+ // TODO post arborist refactor, will need to check for installStrategy=linked
if (spec.type === 'directory' && (isWorkspace || !installLinks)) {
return this[_linkFromSpec](name, spec, parent, edge)
}
diff --git a/deps/npm/node_modules/@npmcli/arborist/lib/arborist/index.js b/deps/npm/node_modules/@npmcli/arborist/lib/arborist/index.js
index 091e0b4657..afcc3ec271 100644
--- a/deps/npm/node_modules/@npmcli/arborist/lib/arborist/index.js
+++ b/deps/npm/node_modules/@npmcli/arborist/lib/arborist/index.js
@@ -42,6 +42,7 @@ const mixins = [
require('./load-virtual.js'),
require('./rebuild.js'),
require('./reify.js'),
+ require('./isolated-reifier.js'),
]
const _workspacesEnabled = Symbol.for('workspacesEnabled')
diff --git a/deps/npm/node_modules/@npmcli/arborist/lib/arborist/isolated-reifier.js b/deps/npm/node_modules/@npmcli/arborist/lib/arborist/isolated-reifier.js
new file mode 100644
index 0000000000..f4f1bb8e44
--- /dev/null
+++ b/deps/npm/node_modules/@npmcli/arborist/lib/arborist/isolated-reifier.js
@@ -0,0 +1,453 @@
+const _makeIdealGraph = Symbol('makeIdealGraph')
+const _createIsolatedTree = Symbol.for('createIsolatedTree')
+const _createBundledTree = Symbol('createBundledTree')
+const fs = require('fs')
+const pacote = require('pacote')
+const { join } = require('path')
+const { depth } = require('treeverse')
+const crypto = require('crypto')
+
+// cache complicated function results
+const memoize = (fn) => {
+ const memo = new Map()
+ return async function (arg) {
+ const key = arg
+ if (memo.has(key)) {
+ return memo.get(key)
+ }
+ const result = {}
+ memo.set(key, result)
+ await fn(result, arg)
+ return result
+ }
+}
+
+module.exports = cls => class IsolatedReifier extends cls {
+ /**
+ * Create an ideal graph.
+ *
+ * An implementation of npm RFC-0042
+ * https://github.com/npm/rfcs/blob/main/accepted/0042-isolated-mode.md
+ *
+ * This entire file should be considered technical debt that will be resolved
+ * with an Arborist refactor or rewrite. Embedded logic in Nodes and Links,
+ * and the incremental state of building trees and reifying contains too many
+ * assumptions to do a linked mode properly.
+ *
+ * Instead, this approach takes a tree built from build-ideal-tree, and
+ * returns a new tree-like structure without the embedded logic of Node and
+ * Link classes.
+ *
+ * Since the RFC requires leaving the package-lock in place, this approach
+ * temporarily replaces the tree state for a couple of steps of reifying.
+ *
+ **/
+ async [_makeIdealGraph] (options) {
+ /* Make sure that the ideal tree is build as the rest of
+ * the algorithm depends on it.
+ */
+ const bitOpt = {
+ ...options,
+ complete: false,
+ }
+ await this.buildIdealTree(bitOpt)
+ const idealTree = this.idealTree
+
+ this.rootNode = {}
+ const root = this.rootNode
+ this.counter = 0
+
+ // memoize to cache generating proxy Nodes
+ this.externalProxyMemo = memoize(this.externalProxy.bind(this))
+ this.workspaceProxyMemo = memoize(this.workspaceProxy.bind(this))
+
+ root.external = []
+ root.isProjectRoot = true
+ root.localLocation = idealTree.location
+ root.localPath = idealTree.path
+ root.workspaces = await Promise.all(
+ Array.from(idealTree.fsChildren.values(), this.workspaceProxyMemo))
+ const processed = new Set()
+ const queue = [idealTree, ...idealTree.fsChildren]
+ while (queue.length !== 0) {
+ const next = queue.pop()
+ if (processed.has(next.location)) {
+ continue
+ }
+ processed.add(next.location)
+ next.edgesOut.forEach(e => {
+ if (!e.to || (next.package.bundleDependencies || next.package.bundledDependencies || []).includes(e.to.name)) {
+ return
+ }
+ queue.push(e.to)
+ })
+ if (!next.isProjectRoot && !next.isWorkspace) {
+ root.external.push(await this.externalProxyMemo(next))
+ }
+ }
+
+ await this.assignCommonProperties(idealTree, root)
+
+ this.idealGraph = root
+ }
+
+ async workspaceProxy (result, node) {
+ result.localLocation = node.location
+ result.localPath = node.path
+ result.isWorkspace = true
+ result.resolved = node.resolved
+ await this.assignCommonProperties(node, result)
+ }
+
+ async externalProxy (result, node) {
+ await this.assignCommonProperties(node, result)
+ if (node.hasShrinkwrap) {
+ const dir = join(
+ node.root.path,
+ 'node_modules',
+ '.store',
+ `${node.name}@${node.version}`
+ )
+ fs.mkdirSync(dir, { recursive: true })
+ // TODO this approach feels wrong
+ // and shouldn't be necessary for shrinkwraps
+ await pacote.extract(node.resolved, dir, {
+ ...this.options,
+ resolved: node.resolved,
+ integrity: node.integrity,
+ })
+ const Arborist = this.constructor
+ const arb = new Arborist({ ...this.options, path: dir })
+ await arb[_makeIdealGraph]({ dev: false })
+ this.rootNode.external.push(...arb.idealGraph.external)
+ arb.idealGraph.external.forEach(e => {
+ e.root = this.rootNode
+ e.id = `${node.id}=>${e.id}`
+ })
+ result.localDependencies = []
+ result.externalDependencies = arb.idealGraph.externalDependencies
+ result.externalOptionalDependencies = arb.idealGraph.externalOptionalDependencies
+ result.dependencies = [
+ ...result.externalDependencies,
+ ...result.localDependencies,
+ ...result.externalOptionalDependencies,
+ ]
+ }
+ result.optional = node.optional
+ result.resolved = node.resolved
+ result.version = node.version
+ }
+
+ async assignCommonProperties (node, result) {
+ function validEdgesOut (node) {
+ return [...node.edgesOut.values()].filter(e => e.to && e.to.target && !(node.package.bundledDepenedencies || node.package.bundleDependencies || []).includes(e.to.name))
+ }
+ const edges = validEdgesOut(node)
+ const optionalDeps = edges.filter(e => e.optional).map(e => e.to.target)
+ const nonOptionalDeps = edges.filter(e => !e.optional).map(e => e.to.target)
+
+ result.localDependencies = await Promise.all(nonOptionalDeps.filter(n => n.isWorkspace).map(this.workspaceProxyMemo))
+ result.externalDependencies = await Promise.all(nonOptionalDeps.filter(n => !n.isWorkspace).map(this.externalProxyMemo))
+ result.externalOptionalDependencies = await Promise.all(optionalDeps.map(this.externalProxyMemo))
+ result.dependencies = [
+ ...result.externalDependencies,
+ ...result.localDependencies,
+ ...result.externalOptionalDependencies,
+ ]
+ result.root = this.rootNode
+ result.id = this.counter++
+ result.name = node.name
+ result.package = { ...node.package }
+ result.package.bundleDependencies = undefined
+ result.hasInstallScript = node.hasInstallScript
+ }
+
+ async [_createBundledTree] () {
+ // TODO: make sure that idealTree object exists
+ const idealTree = this.idealTree
+ // TODO: test workspaces having bundled deps
+ const queue = []
+
+ for (const [, edge] of idealTree.edgesOut) {
+ if (edge.to && (idealTree.package.bundleDependencies || idealTree.package.bundledDependencies || []).includes(edge.to.name)) {
+ queue.push({ from: idealTree, to: edge.to })
+ }
+ }
+ for (const child of idealTree.fsChildren) {
+ for (const [, edge] of child.edgesOut) {
+ if (edge.to && (child.package.bundleDependencies || child.package.bundledDependencies || []).includes(edge.to.name)) {
+ queue.push({ from: child, to: edge.to })
+ }
+ }
+ }
+
+ const processed = new Set()
+ const nodes = new Map()
+ const edges = []
+ while (queue.length !== 0) {
+ const nextEdge = queue.pop()
+ const key = `${nextEdge.from.location}=>${nextEdge.to.location}`
+ // should be impossible, unless bundled is duped
+ /* istanbul ignore next */
+ if (processed.has(key)) {
+ continue
+ }
+ processed.add(key)
+ const from = nextEdge.from
+ if (!from.isRoot && !from.isWorkspace) {
+ nodes.set(from.location, { location: from.location, resolved: from.resolved, name: from.name, optional: from.optional, pkg: { ...from.package, bundleDependencies: undefined } })
+ }
+ const to = nextEdge.to
+ nodes.set(to.location, { location: to.location, resolved: to.resolved, name: to.name, optional: to.optional, pkg: { ...to.package, bundleDependencies: undefined } })
+ edges.push({ from: from.isRoot ? 'root' : from.location, to: to.location })
+
+ to.edgesOut.forEach(e => {
+ // an edge out should always have a to
+ /* istanbul ignore else */
+ if (e.to) {
+ queue.push({ from: e.from, to: e.to })
+ }
+ })
+ }
+ return { edges, nodes }
+ }
+
+ async [_createIsolatedTree] (idealTree) {
+ await this[_makeIdealGraph](this.options)
+
+ const proxiedIdealTree = this.idealGraph
+
+ const bundledTree = await this[_createBundledTree]()
+
+ const treeHash = (startNode) => {
+ // generate short hash based on the dependency tree
+ // starting at this node
+ const deps = []
+ const branch = []
+ depth({
+ tree: startNode,
+ getChildren: node => node.dependencies,
+ filter: node => node,
+ visit: node => {
+ branch.push(`${node.name}@${node.version}`)
+ deps.push(`${branch.join('->')}::${node.resolved}`)
+ },
+ leave: () => {
+ branch.pop()
+ },
+ })
+ deps.sort()
+ return crypto.createHash('shake256', { outputLength: 16 })
+ .update(deps.join(','))
+ .digest('base64')
+ // Node v14 doesn't support base64url
+ .replace(/\+/g, '-')
+ .replace(/\//g, '_')
+ .replace(/=+$/m, '')
+ }
+
+ const getKey = (idealTreeNode) => {
+ return `${idealTreeNode.name}@${idealTreeNode.version}-${treeHash(idealTreeNode)}`
+ }
+
+ const root = {
+ fsChildren: [],
+ integrity: null,
+ inventory: new Map(),
+ isLink: false,
+ isRoot: true,
+ binPaths: [],
+ edgesIn: new Set(),
+ edgesOut: new Map(),
+ hasShrinkwrap: false,
+ parent: null,
+ // TODO: we should probably not reference this.idealTree
+ resolved: this.idealTree.resolved,
+ isTop: true,
+ path: proxiedIdealTree.root.localPath,
+ realpath: proxiedIdealTree.root.localPath,
+ package: proxiedIdealTree.root.package,
+ meta: { loadedFromDisk: false },
+ global: false,
+ isProjectRoot: true,
+ children: [],
+ }
+ // root.inventory.set('', t)
+ // root.meta = this.idealTree.meta
+ // TODO We should mock better the inventory object because it is used by audit-report.js ... maybe
+ root.inventory.query = () => {
+ return []
+ }
+ const processed = new Set()
+ proxiedIdealTree.workspaces.forEach(c => {
+ const workspace = {
+ edgesIn: new Set(),
+ edgesOut: new Map(),
+ children: [],
+ hasInstallScript: c.hasInstallScript,
+ binPaths: [],
+ package: c.package,
+ location: c.localLocation,
+ path: c.localPath,
+ realpath: c.localPath,
+ resolved: c.resolved,
+ }
+ root.fsChildren.push(workspace)
+ root.inventory.set(workspace.location, workspace)
+ })
+ const generateChild = (node, location, pkg, inStore) => {
+ const newChild = {
+ global: false,
+ globalTop: false,
+ isProjectRoot: false,
+ isTop: false,
+ location,
+ name: node.name,
+ optional: node.optional,
+ top: { path: proxiedIdealTree.root.localPath },
+ children: [],
+ edgesIn: new Set(),
+ edgesOut: new Map(),
+ binPaths: [],
+ fsChildren: [],
+ /* istanbul ignore next -- emulate Node */
+ getBundler () {
+ return null
+ },
+ hasShrinkwrap: false,
+ inDepBundle: false,
+ integrity: null,
+ isLink: false,
+ isRoot: false,
+ isInStore: inStore,
+ path: join(proxiedIdealTree.root.localPath, location),
+ realpath: join(proxiedIdealTree.root.localPath, location),
+ resolved: node.resolved,
+ version: pkg.version,
+ package: pkg,
+ }
+ newChild.target = newChild
+ root.children.push(newChild)
+ root.inventory.set(newChild.location, newChild)
+ }
+ proxiedIdealTree.external.forEach(c => {
+ const key = getKey(c)
+ if (processed.has(key)) {
+ return
+ }
+ processed.add(key)
+ const location = join('node_modules', '.store', key, 'node_modules', c.name)
+ generateChild(c, location, c.package, true)
+ })
+ bundledTree.nodes.forEach(node => {
+ generateChild(node, node.location, node.pkg, false)
+ })
+ bundledTree.edges.forEach(e => {
+ const from = e.from === 'root' ? root : root.inventory.get(e.from)
+ const to = root.inventory.get(e.to)
+ // Maybe optional should be propagated from the original edge
+ const edge = { optional: false, from, to }
+ from.edgesOut.set(to.name, edge)
+ to.edgesIn.add(edge)
+ })
+ const memo = new Set()
+
+ function processEdges (node, externalEdge) {
+ externalEdge = !!externalEdge
+ const key = getKey(node)
+ if (memo.has(key)) {
+ return
+ }
+ memo.add(key)
+
+ let from, nmFolder
+ if (externalEdge) {
+ const fromLocation = join('node_modules', '.store', key, 'node_modules', node.name)
+ from = root.children.find(c => c.location === fromLocation)
+ nmFolder = join('node_modules', '.store', key, 'node_modules')
+ } else {
+ from = node.isProjectRoot ? root : root.fsChildren.find(c => c.location === node.localLocation)
+ nmFolder = join(node.localLocation, 'node_modules')
+ }
+
+ const processDeps = (dep, optional, external) => {
+ optional = !!optional
+ external = !!external
+
+ const location = join(nmFolder, dep.name)
+ const binNames = dep.package.bin && Object.keys(dep.package.bin) || []
+ const toKey = getKey(dep)
+
+ let target
+ if (external) {
+ const toLocation = join('node_modules', '.store', toKey, 'node_modules', dep.name)
+ target = root.children.find(c => c.location === toLocation)
+ } else {
+ target = root.fsChildren.find(c => c.location === dep.localLocation)
+ }
+ // TODO: we should no-op is an edge has already been created with the same fromKey and toKey
+
+ binNames.forEach(bn => {
+ target.binPaths.push(join(from.realpath, 'node_modules', '.bin', bn))
+ })
+
+ const link = {
+ global: false,
+ globalTop: false,
+ isProjectRoot: false,
+ edgesIn: new Set(),
+ edgesOut: new Map(),
+ binPaths: [],
+ isTop: false,
+ optional,
+ location: location,
+ path: join(dep.root.localPath, nmFolder, dep.name),
+ realpath: target.path,
+ name: toKey,
+ resolved: dep.resolved,
+ top: { path: dep.root.localPath },
+ children: [],
+ fsChildren: [],
+ isLink: true,
+ isStoreLink: true,
+ isRoot: false,
+ package: { _id: 'abc', bundleDependencies: undefined, deprecated: undefined, bin: target.package.bin, scripts: dep.package.scripts },
+ target,
+ }
+ const newEdge1 = { optional, from, to: link }
+ from.edgesOut.set(dep.name, newEdge1)
+ link.edgesIn.add(newEdge1)
+ const newEdge2 = { optional: false, from: link, to: target }
+ link.edgesOut.set(dep.name, newEdge2)
+ target.edgesIn.add(newEdge2)
+ root.children.push(link)
+ }
+
+ for (const dep of node.localDependencies) {
+ processEdges(dep, false)
+ // nonOptional, local
+ processDeps(dep, false, false)
+ }
+ for (const dep of node.externalDependencies) {
+ processEdges(dep, true)
+ // nonOptional, external
+ processDeps(dep, false, true)
+ }
+ for (const dep of node.externalOptionalDependencies) {
+ processEdges(dep, true)
+ // optional, external
+ processDeps(dep, true, true)
+ }
+ }
+
+ processEdges(proxiedIdealTree, false)
+ for (const node of proxiedIdealTree.workspaces) {
+ processEdges(node, false)
+ }
+ root.children.forEach(c => c.parent = root)
+ root.children.forEach(c => c.root = root)
+ root.root = root
+ root.target = root
+ return root
+ }
+}
diff --git a/deps/npm/node_modules/@npmcli/arborist/lib/arborist/rebuild.js b/deps/npm/node_modules/@npmcli/arborist/lib/arborist/rebuild.js
index 6a675320d8..e8df69e328 100644
--- a/deps/npm/node_modules/@npmcli/arborist/lib/arborist/rebuild.js
+++ b/deps/npm/node_modules/@npmcli/arborist/lib/arborist/rebuild.js
@@ -89,6 +89,7 @@ module.exports = cls => class Builder extends cls {
const {
depNodes,
linkNodes,
+ storeNodes,
} = this[_retrieveNodesByType](nodes)
// build regular deps
@@ -99,6 +100,10 @@ module.exports = cls => class Builder extends cls {
this[_resetQueues]()
await this[_build](linkNodes, { type: 'links' })
}
+ if (storeNodes.size) {
+ this[_resetQueues]()
+ await this[_build](storeNodes, { type: 'storelinks' })
+ }
process.emit('timeEnd', 'build')
}
@@ -130,9 +135,12 @@ module.exports = cls => class Builder extends cls {
[_retrieveNodesByType] (nodes) {
const depNodes = new Set()
const linkNodes = new Set()
+ const storeNodes = new Set()
for (const node of nodes) {
- if (node.isLink) {
+ if (node.isStoreLink) {
+ storeNodes.add(node)
+ } else if (node.isLink) {
linkNodes.add(node)
} else {
depNodes.add(node)
@@ -154,6 +162,7 @@ module.exports = cls => class Builder extends cls {
return {
depNodes,
linkNodes,
+ storeNodes,
}
}
diff --git a/deps/npm/node_modules/@npmcli/arborist/lib/arborist/reify.js b/deps/npm/node_modules/@npmcli/arborist/lib/arborist/reify.js
index e5ccec5c71..3c8059d281 100644
--- a/deps/npm/node_modules/@npmcli/arborist/lib/arborist/reify.js
+++ b/deps/npm/node_modules/@npmcli/arborist/lib/arborist/reify.js
@@ -1,5 +1,4 @@
// mixin implementing the reify method
-
const onExit = require('../signal-handling.js')
const pacote = require('pacote')
const AuditReport = require('../audit-report.js')
@@ -10,8 +9,9 @@ const debug = require('../debug.js')
const walkUp = require('walk-up-path')
const log = require('proc-log')
const hgi = require('hosted-git-info')
+const rpj = require('read-package-json-fast')
-const { dirname, resolve, relative } = require('path')
+const { dirname, resolve, relative, join } = require('path')
const { depth: dfwalk } = require('treeverse')
const {
lstat,
@@ -106,6 +106,8 @@ const _resolvedAdd = Symbol.for('resolvedAdd')
const _usePackageLock = Symbol.for('usePackageLock')
const _formatPackageLock = Symbol.for('formatPackageLock')
+const _createIsolatedTree = Symbol.for('createIsolatedTree')
+
module.exports = cls => class Reifier extends cls {
constructor (options) {
super(options)
@@ -138,6 +140,8 @@ module.exports = cls => class Reifier extends cls {
// public method
async reify (options = {}) {
+ const linked = (options.installStrategy || this.options.installStrategy) === 'linked'
+
if (this[_packageLockOnly] && this[_global]) {
const er = new Error('cannot generate lockfile for global packages')
er.code = 'ESHRINKWRAPGLOBAL'
@@ -154,8 +158,22 @@ module.exports = cls => class Reifier extends cls {
process.emit('time', 'reify')
await this[_validatePath]()
await this[_loadTrees](options)
+
+ const oldTree = this.idealTree
+ if (linked) {
+ // swap out the tree with the isolated tree
+ // this is currently technical debt which will be resolved in a refactor
+ // of Node/Link trees
+ log.warn('reify', 'The "linked" install strategy is EXPERIMENTAL and may contain bugs.')
+ this.idealTree = await this[_createIsolatedTree](this.idealTree)
+ }
await this[_diffTrees]()
await this[_reifyPackages]()
+ if (linked) {
+ // swap back in the idealTree
+ // so that the lockfile is preserved
+ this.idealTree = oldTree
+ }
await this[_saveIdealTree](options)
await this[_copyIdealToActual]()
// This is a very bad pattern and I can't wait to stop doing it
@@ -634,44 +652,40 @@ module.exports = cls => class Reifier extends cls {
}
async [_extractOrLink] (node) {
- // in normal cases, node.resolved should *always* be set by now.
- // however, it is possible when a lockfile is damaged, or very old,
- // or in some other race condition bugs in npm v6, that a previously
- // bundled dependency will have just a version, but no resolved value,
- // and no 'bundled: true' setting.
- // Do the best with what we have, or else remove it from the tree
- // entirely, since we can't possibly reify it.
- let res = null
- if (node.resolved) {
- const registryResolved = this[_registryResolved](node.resolved)
- if (registryResolved) {
- res = `${node.name}@${registryResolved}`
- }
- } else if (node.packageName && node.version) {
- res = `${node.packageName}@${node.version}`
- }
-
- // no idea what this thing is. remove it from the tree.
- if (!res) {
- const warning = 'invalid or damaged lockfile detected\n' +
- 'please re-try this operation once it completes\n' +
- 'so that the damage can be corrected, or perform\n' +
- 'a fresh install with no lockfile if the problem persists.'
- log.warn('reify', warning)
- log.verbose('reify', 'unrecognized node in tree', node.path)
- node.parent = null
- node.fsParent = null
- this[_addNodeToTrashList](node)
- return
- }
-
const nm = resolve(node.parent.path, 'node_modules')
await this[_validateNodeModules](nm)
- if (node.isLink) {
- await rm(node.path, { recursive: true, force: true })
- await this[_symlink](node)
- } else {
+ if (!node.isLink) {
+ // in normal cases, node.resolved should *always* be set by now.
+ // however, it is possible when a lockfile is damaged, or very old,
+ // or in some other race condition bugs in npm v6, that a previously
+ // bundled dependency will have just a version, but no resolved value,
+ // and no 'bundled: true' setting.
+ // Do the best with what we have, or else remove it from the tree
+ // entirely, since we can't possibly reify it.
+ let res = null
+ if (node.resolved) {
+ const registryResolved = this[_registryResolved](node.resolved)
+ if (registryResolved) {
+ res = `${node.name}@${registryResolved}`
+ }
+ } else if (node.package.name && node.version) {
+ res = `${node.package.name}@${node.version}`
+ }
+
+ // no idea what this thing is. remove it from the tree.
+ if (!res) {
+ const warning = 'invalid or damaged lockfile detected\n' +
+ 'please re-try this operation once it completes\n' +
+ 'so that the damage can be corrected, or perform\n' +
+ 'a fresh install with no lockfile if the problem persists.'
+ log.warn('reify', warning)
+ log.verbose('reify', 'unrecognized node in tree', node.path)
+ node.parent = null
+ node.fsParent = null
+ this[_addNodeToTrashList](node)
+ return
+ }
await debug(async () => {
const st = await lstat(node.path).catch(e => null)
if (st && !st.isDirectory()) {
@@ -688,7 +702,17 @@ module.exports = cls => class Reifier extends cls {
resolved: node.resolved,
integrity: node.integrity,
})
+ // store nodes don't use Node class so node.package doesn't get updated
+ if (node.isInStore) {
+ const pkg = await rpj(join(node.path, 'package.json'))
+ node.package.scripts = pkg.scripts
+ }
+ return
}
+
+ // node.isLink
+ await rm(node.path, { recursive: true, force: true })
+ await this[_symlink](node)
}
async [_symlink] (node) {
diff --git a/deps/npm/node_modules/@npmcli/arborist/lib/link.js b/deps/npm/node_modules/@npmcli/arborist/lib/link.js
index ebdbc94285..197f96c5c2 100644
--- a/deps/npm/node_modules/@npmcli/arborist/lib/link.js
+++ b/deps/npm/node_modules/@npmcli/arborist/lib/link.js
@@ -8,7 +8,7 @@ const _delistFromMeta = Symbol.for('_delistFromMeta')
const _refreshLocation = Symbol.for('_refreshLocation')
class Link extends Node {
constructor (options) {
- const { root, realpath, target, parent, fsParent } = options
+ const { root, realpath, target, parent, fsParent, isStoreLink } = options
if (!realpath && !(target && target.path)) {
throw new TypeError('must provide realpath for Link node')
@@ -23,6 +23,8 @@ class Link extends Node {
: null),
})
+ this.isStoreLink = isStoreLink || false
+
if (target) {
this.target = target
} else if (this.realpath === this.root.path) {
diff --git a/deps/npm/node_modules/@npmcli/arborist/lib/node.js b/deps/npm/node_modules/@npmcli/arborist/lib/node.js
index b90a2acf8f..b21a3d8e3d 100644
--- a/deps/npm/node_modules/@npmcli/arborist/lib/node.js
+++ b/deps/npm/node_modules/@npmcli/arborist/lib/node.js
@@ -91,6 +91,7 @@ class Node {
installLinks = false,
legacyPeerDeps = false,
linksIn,
+ isInStore = false,
hasShrinkwrap,
overrides,
loadOverrides = false,
@@ -113,6 +114,7 @@ class Node {
this[_workspaces] = null
this.errors = error ? [error] : []
+ this.isInStore = isInStore
// this will usually be null, except when modeling a
// package's dependencies in a virtual root.
diff --git a/deps/npm/node_modules/@npmcli/arborist/package.json b/deps/npm/node_modules/@npmcli/arborist/package.json
index a7e8132123..735dd41a2e 100644
--- a/deps/npm/node_modules/@npmcli/arborist/package.json
+++ b/deps/npm/node_modules/@npmcli/arborist/package.json
@@ -1,6 +1,6 @@
{
"name": "@npmcli/arborist",
- "version": "6.1.6",
+ "version": "6.2.0",
"description": "Manage node_modules trees",
"dependencies": {
"@isaacs/string-locale-compare": "^1.1.0",
@@ -39,16 +39,18 @@
},
"devDependencies": {
"@npmcli/eslint-config": "^4.0.0",
- "@npmcli/template-oss": "4.11.0",
+ "@npmcli/template-oss": "4.11.1",
"benchmark": "^2.1.4",
"chalk": "^4.1.0",
"minify-registry-metadata": "^3.0.0",
"nock": "^13.2.0",
"tap": "^16.3.2",
+ "tar-stream": "^3.0.0",
"tcompare": "^5.0.6"
},
"scripts": {
"test": "tap",
+ "test-only": "tap --only",
"posttest": "node ../.. run lint",
"snap": "tap",
"postsnap": "npm run lintfix",
@@ -100,7 +102,7 @@
},
"templateOSS": {
"//@npmcli/template-oss": "This file is partially managed by @npmcli/template-oss. Edits may be overwritten.",
- "version": "4.11.0",
+ "version": "4.11.1",
"content": "../../scripts/template-oss/index.js"
}
}
diff --git a/deps/npm/node_modules/@npmcli/config/package.json b/deps/npm/node_modules/@npmcli/config/package.json
index 50d860c1c9..11835648ea 100644
--- a/deps/npm/node_modules/@npmcli/config/package.json
+++ b/deps/npm/node_modules/@npmcli/config/package.json
@@ -33,7 +33,7 @@
},
"devDependencies": {
"@npmcli/eslint-config": "^4.0.0",
- "@npmcli/template-oss": "4.11.0",
+ "@npmcli/template-oss": "4.11.1",
"tap": "^16.3.2"
},
"dependencies": {
@@ -50,6 +50,6 @@
},
"templateOSS": {
"//@npmcli/template-oss": "This file is partially managed by @npmcli/template-oss. Edits may be overwritten.",
- "version": "4.11.0"
+ "version": "4.11.1"
}
}
diff --git a/deps/npm/node_modules/are-we-there-yet/node_modules/buffer/AUTHORS.md b/deps/npm/node_modules/buffer/AUTHORS.md
index 468aa1908c..468aa1908c 100644
--- a/deps/npm/node_modules/are-we-there-yet/node_modules/buffer/AUTHORS.md
+++ b/deps/npm/node_modules/buffer/AUTHORS.md
diff --git a/deps/npm/node_modules/are-we-there-yet/node_modules/buffer/LICENSE b/deps/npm/node_modules/buffer/LICENSE
index d6bf75dcf1..d6bf75dcf1 100644
--- a/deps/npm/node_modules/are-we-there-yet/node_modules/buffer/LICENSE
+++ b/deps/npm/node_modules/buffer/LICENSE
diff --git a/deps/npm/node_modules/are-we-there-yet/node_modules/buffer/index.d.ts b/deps/npm/node_modules/buffer/index.d.ts
index 07096a2f72..07096a2f72 100644
--- a/deps/npm/node_modules/are-we-there-yet/node_modules/buffer/index.d.ts
+++ b/deps/npm/node_modules/buffer/index.d.ts
diff --git a/deps/npm/node_modules/are-we-there-yet/node_modules/buffer/index.js b/deps/npm/node_modules/buffer/index.js
index 7a0e9c2a12..7a0e9c2a12 100644
--- a/deps/npm/node_modules/are-we-there-yet/node_modules/buffer/index.js
+++ b/deps/npm/node_modules/buffer/index.js
diff --git a/deps/npm/node_modules/are-we-there-yet/node_modules/buffer/package.json b/deps/npm/node_modules/buffer/package.json
index ca1ad9a707..ca1ad9a707 100644
--- a/deps/npm/node_modules/are-we-there-yet/node_modules/buffer/package.json
+++ b/deps/npm/node_modules/buffer/package.json
diff --git a/deps/npm/node_modules/libnpmaccess/package.json b/deps/npm/node_modules/libnpmaccess/package.json
index 1e27f79597..c16c640c5e 100644
--- a/deps/npm/node_modules/libnpmaccess/package.json
+++ b/deps/npm/node_modules/libnpmaccess/package.json
@@ -17,7 +17,7 @@
"devDependencies": {
"@npmcli/eslint-config": "^4.0.0",
"@npmcli/mock-registry": "^1.0.0",
- "@npmcli/template-oss": "4.11.0",
+ "@npmcli/template-oss": "4.11.1",
"nock": "^13.2.4",
"tap": "^16.3.2"
},
@@ -41,7 +41,7 @@
],
"templateOSS": {
"//@npmcli/template-oss": "This file is partially managed by @npmcli/template-oss. Edits may be overwritten.",
- "version": "4.11.0",
+ "version": "4.11.1",
"content": "../../scripts/template-oss/index.js"
},
"tap": {
diff --git a/deps/npm/node_modules/libnpmdiff/package.json b/deps/npm/node_modules/libnpmdiff/package.json
index 9e7e3bdb41..a1c261ba9d 100644
--- a/deps/npm/node_modules/libnpmdiff/package.json
+++ b/deps/npm/node_modules/libnpmdiff/package.json
@@ -1,6 +1,6 @@
{
"name": "libnpmdiff",
- "version": "5.0.7",
+ "version": "5.0.8",
"description": "The registry diff",
"repository": {
"type": "git",
@@ -43,11 +43,11 @@
},
"devDependencies": {
"@npmcli/eslint-config": "^4.0.0",
- "@npmcli/template-oss": "4.11.0",
+ "@npmcli/template-oss": "4.11.1",
"tap": "^16.3.2"
},
"dependencies": {
- "@npmcli/arborist": "^6.1.6",
+ "@npmcli/arborist": "^6.2.0",
"@npmcli/disparity-colors": "^3.0.0",
"@npmcli/installed-package-contents": "^2.0.0",
"binary-extensions": "^2.2.0",
@@ -59,7 +59,7 @@
},
"templateOSS": {
"//@npmcli/template-oss": "This file is partially managed by @npmcli/template-oss. Edits may be overwritten.",
- "version": "4.11.0",
+ "version": "4.11.1",
"content": "../../scripts/template-oss/index.js"
},
"tap": {
diff --git a/deps/npm/node_modules/libnpmexec/package.json b/deps/npm/node_modules/libnpmexec/package.json
index c0092d4c87..d91219b1be 100644
--- a/deps/npm/node_modules/libnpmexec/package.json
+++ b/deps/npm/node_modules/libnpmexec/package.json
@@ -1,6 +1,6 @@
{
"name": "libnpmexec",
- "version": "5.0.7",
+ "version": "5.0.8",
"files": [
"bin/",
"lib/"
@@ -52,7 +52,7 @@
"devDependencies": {
"@npmcli/eslint-config": "^4.0.0",
"@npmcli/mock-registry": "^1.0.0",
- "@npmcli/template-oss": "4.11.0",
+ "@npmcli/template-oss": "4.11.1",
"bin-links": "^4.0.1",
"just-extend": "^6.1.1",
"just-safe-set": "^4.1.1",
@@ -61,7 +61,7 @@
"tap": "^16.3.2"
},
"dependencies": {
- "@npmcli/arborist": "^6.1.6",
+ "@npmcli/arborist": "^6.2.0",
"@npmcli/run-script": "^6.0.0",
"chalk": "^4.1.0",
"ci-info": "^3.7.0",
@@ -76,7 +76,7 @@
},
"templateOSS": {
"//@npmcli/template-oss": "This file is partially managed by @npmcli/template-oss. Edits may be overwritten.",
- "version": "4.11.0",
+ "version": "4.11.1",
"content": "../../scripts/template-oss/index.js"
}
}
diff --git a/deps/npm/node_modules/libnpmfund/package.json b/deps/npm/node_modules/libnpmfund/package.json
index c0de224fba..f239951ef3 100644
--- a/deps/npm/node_modules/libnpmfund/package.json
+++ b/deps/npm/node_modules/libnpmfund/package.json
@@ -1,6 +1,6 @@
{
"name": "libnpmfund",
- "version": "4.0.7",
+ "version": "4.0.8",
"main": "lib/index.js",
"files": [
"bin/",
@@ -42,18 +42,18 @@
},
"devDependencies": {
"@npmcli/eslint-config": "^4.0.0",
- "@npmcli/template-oss": "4.11.0",
+ "@npmcli/template-oss": "4.11.1",
"tap": "^16.3.2"
},
"dependencies": {
- "@npmcli/arborist": "^6.1.6"
+ "@npmcli/arborist": "^6.2.0"
},
"engines": {
"node": "^14.17.0 || ^16.13.0 || >=18.0.0"
},
"templateOSS": {
"//@npmcli/template-oss": "This file is partially managed by @npmcli/template-oss. Edits may be overwritten.",
- "version": "4.11.0",
+ "version": "4.11.1",
"content": "../../scripts/template-oss/index.js"
},
"tap": {
diff --git a/deps/npm/node_modules/libnpmhook/package.json b/deps/npm/node_modules/libnpmhook/package.json
index b157f97e68..e1e55e0234 100644
--- a/deps/npm/node_modules/libnpmhook/package.json
+++ b/deps/npm/node_modules/libnpmhook/package.json
@@ -37,7 +37,7 @@
},
"devDependencies": {
"@npmcli/eslint-config": "^4.0.0",
- "@npmcli/template-oss": "4.11.0",
+ "@npmcli/template-oss": "4.11.1",
"nock": "^13.2.4",
"tap": "^16.3.2"
},
@@ -46,7 +46,7 @@
},
"templateOSS": {
"//@npmcli/template-oss": "This file is partially managed by @npmcli/template-oss. Edits may be overwritten.",
- "version": "4.11.0",
+ "version": "4.11.1",
"content": "../../scripts/template-oss/index.js"
},
"tap": {
diff --git a/deps/npm/node_modules/libnpmorg/package.json b/deps/npm/node_modules/libnpmorg/package.json
index 529a7ff9d2..b8dacb4a64 100644
--- a/deps/npm/node_modules/libnpmorg/package.json
+++ b/deps/npm/node_modules/libnpmorg/package.json
@@ -28,7 +28,7 @@
],
"devDependencies": {
"@npmcli/eslint-config": "^4.0.0",
- "@npmcli/template-oss": "4.11.0",
+ "@npmcli/template-oss": "4.11.1",
"minipass": "^4.0.0",
"nock": "^13.2.4",
"tap": "^16.3.2"
@@ -49,7 +49,7 @@
},
"templateOSS": {
"//@npmcli/template-oss": "This file is partially managed by @npmcli/template-oss. Edits may be overwritten.",
- "version": "4.11.0",
+ "version": "4.11.1",
"content": "../../scripts/template-oss/index.js"
},
"tap": {
diff --git a/deps/npm/node_modules/libnpmpack/package.json b/deps/npm/node_modules/libnpmpack/package.json
index 035edaa980..99b9259d83 100644
--- a/deps/npm/node_modules/libnpmpack/package.json
+++ b/deps/npm/node_modules/libnpmpack/package.json
@@ -1,6 +1,6 @@
{
"name": "libnpmpack",
- "version": "5.0.7",
+ "version": "5.0.8",
"description": "Programmatic API for the bits behind npm pack",
"author": "GitHub Inc.",
"main": "lib/index.js",
@@ -23,7 +23,7 @@
},
"devDependencies": {
"@npmcli/eslint-config": "^4.0.0",
- "@npmcli/template-oss": "4.11.0",
+ "@npmcli/template-oss": "4.11.1",
"nock": "^13.0.7",
"spawk": "^1.7.1",
"tap": "^16.3.2"
@@ -36,7 +36,7 @@
"bugs": "https://github.com/npm/libnpmpack/issues",
"homepage": "https://npmjs.com/package/libnpmpack",
"dependencies": {
- "@npmcli/arborist": "^6.1.6",
+ "@npmcli/arborist": "^6.2.0",
"@npmcli/run-script": "^6.0.0",
"npm-package-arg": "^10.1.0",
"pacote": "^15.0.7"
@@ -46,7 +46,7 @@
},
"templateOSS": {
"//@npmcli/template-oss": "This file is partially managed by @npmcli/template-oss. Edits may be overwritten.",
- "version": "4.11.0",
+ "version": "4.11.1",
"content": "../../scripts/template-oss/index.js"
},
"tap": {
diff --git a/deps/npm/node_modules/libnpmpublish/package.json b/deps/npm/node_modules/libnpmpublish/package.json
index c293d566d1..6c64950744 100644
--- a/deps/npm/node_modules/libnpmpublish/package.json
+++ b/deps/npm/node_modules/libnpmpublish/package.json
@@ -26,7 +26,7 @@
"devDependencies": {
"@npmcli/eslint-config": "^4.0.0",
"@npmcli/mock-registry": "^1.0.0",
- "@npmcli/template-oss": "4.11.0",
+ "@npmcli/template-oss": "4.11.1",
"lodash.clonedeep": "^4.5.0",
"nock": "^13.2.4",
"tap": "^16.3.2"
@@ -50,7 +50,7 @@
},
"templateOSS": {
"//@npmcli/template-oss": "This file is partially managed by @npmcli/template-oss. Edits may be overwritten.",
- "version": "4.11.0",
+ "version": "4.11.1",
"content": "../../scripts/template-oss/index.js"
},
"tap": {
diff --git a/deps/npm/node_modules/libnpmsearch/package.json b/deps/npm/node_modules/libnpmsearch/package.json
index e0d67afbbf..4dcac9839e 100644
--- a/deps/npm/node_modules/libnpmsearch/package.json
+++ b/deps/npm/node_modules/libnpmsearch/package.json
@@ -26,7 +26,7 @@
},
"devDependencies": {
"@npmcli/eslint-config": "^4.0.0",
- "@npmcli/template-oss": "4.11.0",
+ "@npmcli/template-oss": "4.11.1",
"nock": "^13.2.4",
"tap": "^16.3.2"
},
@@ -45,7 +45,7 @@
},
"templateOSS": {
"//@npmcli/template-oss": "This file is partially managed by @npmcli/template-oss. Edits may be overwritten.",
- "version": "4.11.0",
+ "version": "4.11.1",
"content": "../../scripts/template-oss/index.js"
},
"tap": {
diff --git a/deps/npm/node_modules/libnpmteam/package.json b/deps/npm/node_modules/libnpmteam/package.json
index b3444c77b8..38b08c83d7 100644
--- a/deps/npm/node_modules/libnpmteam/package.json
+++ b/deps/npm/node_modules/libnpmteam/package.json
@@ -16,7 +16,7 @@
},
"devDependencies": {
"@npmcli/eslint-config": "^4.0.0",
- "@npmcli/template-oss": "4.11.0",
+ "@npmcli/template-oss": "4.11.1",
"nock": "^13.2.4",
"tap": "^16.3.2"
},
@@ -39,7 +39,7 @@
},
"templateOSS": {
"//@npmcli/template-oss": "This file is partially managed by @npmcli/template-oss. Edits may be overwritten.",
- "version": "4.11.0",
+ "version": "4.11.1",
"content": "../../scripts/template-oss/index.js"
},
"tap": {
diff --git a/deps/npm/node_modules/libnpmversion/package.json b/deps/npm/node_modules/libnpmversion/package.json
index ff3855ae6c..c839a95fb9 100644
--- a/deps/npm/node_modules/libnpmversion/package.json
+++ b/deps/npm/node_modules/libnpmversion/package.json
@@ -32,7 +32,7 @@
},
"devDependencies": {
"@npmcli/eslint-config": "^4.0.0",
- "@npmcli/template-oss": "4.11.0",
+ "@npmcli/template-oss": "4.11.1",
"require-inject": "^1.4.4",
"tap": "^16.3.2"
},
@@ -48,7 +48,7 @@
},
"templateOSS": {
"//@npmcli/template-oss": "This file is partially managed by @npmcli/template-oss. Edits may be overwritten.",
- "version": "4.11.0",
+ "version": "4.11.1",
"content": "../../scripts/template-oss/index.js"
}
}
diff --git a/deps/npm/package.json b/deps/npm/package.json
index 423024ae21..7a29b5d8a9 100644
--- a/deps/npm/package.json
+++ b/deps/npm/package.json
@@ -1,5 +1,5 @@
{
- "version": "9.3.1",
+ "version": "9.4.0",
"name": "npm",
"description": "a package manager for JavaScript",
"workspaces": [
@@ -53,7 +53,7 @@
},
"dependencies": {
"@isaacs/string-locale-compare": "^1.1.0",
- "@npmcli/arborist": "^6.1.6",
+ "@npmcli/arborist": "^6.2.0",
"@npmcli/config": "^6.1.1",
"@npmcli/map-workspaces": "^3.0.0",
"@npmcli/package-json": "^3.0.0",
@@ -76,12 +76,12 @@
"is-cidr": "^4.0.2",
"json-parse-even-better-errors": "^3.0.0",
"libnpmaccess": "^7.0.1",
- "libnpmdiff": "^5.0.7",
- "libnpmexec": "^5.0.7",
- "libnpmfund": "^4.0.7",
+ "libnpmdiff": "^5.0.8",
+ "libnpmexec": "^5.0.8",
+ "libnpmfund": "^4.0.8",
"libnpmhook": "^9.0.1",
"libnpmorg": "^5.0.1",
- "libnpmpack": "^5.0.7",
+ "libnpmpack": "^5.0.8",
"libnpmpublish": "^7.0.6",
"libnpmsearch": "^6.0.1",
"libnpmteam": "^5.0.1",
@@ -196,7 +196,7 @@
"@npmcli/git": "^4.0.1",
"@npmcli/mock-registry": "^1.0.0",
"@npmcli/promise-spawn": "^6.0.1",
- "@npmcli/template-oss": "4.11.0",
+ "@npmcli/template-oss": "4.11.1",
"licensee": "^10.0.0",
"nock": "^13.2.4",
"npm-packlist": "^7.0.4",
@@ -250,7 +250,7 @@
},
"templateOSS": {
"//@npmcli/template-oss": "This file is partially managed by @npmcli/template-oss. Edits may be overwritten.",
- "version": "4.11.0",
+ "version": "4.11.1",
"content": "./scripts/template-oss/root.js"
},
"license": "Artistic-2.0",
diff --git a/deps/npm/tap-snapshots/test/lib/docs.js.test.cjs b/deps/npm/tap-snapshots/test/lib/docs.js.test.cjs
index 578bbd7981..b2b0fed529 100644
--- a/deps/npm/tap-snapshots/test/lib/docs.js.test.cjs
+++ b/deps/npm/tap-snapshots/test/lib/docs.js.test.cjs
@@ -1163,13 +1163,13 @@ workspaces.
#### \`install-strategy\`
* Default: "hoisted"
-* Type: "hoisted", "nested", or "shallow"
+* Type: "hoisted", "nested", "shallow", or "linked"
Sets the strategy for installing packages in node_modules. hoisted
(default): Install non-duplicated in top-level, and duplicated as necessary
within directory structure. nested: (formerly --legacy-bundling) install in
place, no hoisting. shallow (formerly --global-style) only install direct
-deps at top-level. linked: (coming soon) install in node_modules/.store,
+deps at top-level. linked: (experimental) install in node_modules/.store,
link in place, unhoisted.
#### \`json\`
@@ -2621,9 +2621,9 @@ npm ci
Options:
[-S|--save|--no-save|--save-prod|--save-dev|--save-optional|--save-peer|--save-bundle]
-[-E|--save-exact] [-g|--global] [--install-strategy <hoisted|nested|shallow>]
-[--legacy-bundling] [--global-style]
-[--omit <dev|optional|peer> [--omit <dev|optional|peer> ...]]
+[-E|--save-exact] [-g|--global]
+[--install-strategy <hoisted|nested|shallow|linked>] [--legacy-bundling]
+[--global-style] [--omit <dev|optional|peer> [--omit <dev|optional|peer> ...]]
[--strict-peer-deps] [--no-package-lock] [--foreground-scripts]
[--ignore-scripts] [--no-audit] [--no-bin-links] [--no-fund] [--dry-run]
[-w|--workspace <workspace-name> [-w|--workspace <workspace-name> ...]]
@@ -2723,7 +2723,7 @@ Usage:
npm dedupe
Options:
-[--install-strategy <hoisted|nested|shallow>] [--legacy-bundling]
+[--install-strategy <hoisted|nested|shallow|linked>] [--legacy-bundling]
[--global-style] [--strict-peer-deps] [--no-package-lock]
[--omit <dev|optional|peer> [--omit <dev|optional|peer> ...]] [--ignore-scripts]
[--no-audit] [--no-bin-links] [--no-fund] [--dry-run]
@@ -2994,7 +2994,7 @@ Usage:
npm find-dupes
Options:
-[--install-strategy <hoisted|nested|shallow>] [--legacy-bundling]
+[--install-strategy <hoisted|nested|shallow|linked>] [--legacy-bundling]
[--global-style] [--strict-peer-deps] [--no-package-lock]
[--omit <dev|optional|peer> [--omit <dev|optional|peer> ...]] [--ignore-scripts]
[--no-audit] [--no-bin-links] [--no-fund]
@@ -3175,9 +3175,9 @@ npm install [<package-spec> ...]
Options:
[-S|--save|--no-save|--save-prod|--save-dev|--save-optional|--save-peer|--save-bundle]
-[-E|--save-exact] [-g|--global] [--install-strategy <hoisted|nested|shallow>]
-[--legacy-bundling] [--global-style]
-[--omit <dev|optional|peer> [--omit <dev|optional|peer> ...]]
+[-E|--save-exact] [-g|--global]
+[--install-strategy <hoisted|nested|shallow|linked>] [--legacy-bundling]
+[--global-style] [--omit <dev|optional|peer> [--omit <dev|optional|peer> ...]]
[--strict-peer-deps] [--no-package-lock] [--foreground-scripts]
[--ignore-scripts] [--no-audit] [--no-bin-links] [--no-fund] [--dry-run]
[-w|--workspace <workspace-name> [-w|--workspace <workspace-name> ...]]
@@ -3222,9 +3222,9 @@ npm install-ci-test
Options:
[-S|--save|--no-save|--save-prod|--save-dev|--save-optional|--save-peer|--save-bundle]
-[-E|--save-exact] [-g|--global] [--install-strategy <hoisted|nested|shallow>]
-[--legacy-bundling] [--global-style]
-[--omit <dev|optional|peer> [--omit <dev|optional|peer> ...]]
+[-E|--save-exact] [-g|--global]
+[--install-strategy <hoisted|nested|shallow|linked>] [--legacy-bundling]
+[--global-style] [--omit <dev|optional|peer> [--omit <dev|optional|peer> ...]]
[--strict-peer-deps] [--no-package-lock] [--foreground-scripts]
[--ignore-scripts] [--no-audit] [--no-bin-links] [--no-fund] [--dry-run]
[-w|--workspace <workspace-name> [-w|--workspace <workspace-name> ...]]
@@ -3269,9 +3269,9 @@ npm install-test [<package-spec> ...]
Options:
[-S|--save|--no-save|--save-prod|--save-dev|--save-optional|--save-peer|--save-bundle]
-[-E|--save-exact] [-g|--global] [--install-strategy <hoisted|nested|shallow>]
-[--legacy-bundling] [--global-style]
-[--omit <dev|optional|peer> [--omit <dev|optional|peer> ...]]
+[-E|--save-exact] [-g|--global]
+[--install-strategy <hoisted|nested|shallow|linked>] [--legacy-bundling]
+[--global-style] [--omit <dev|optional|peer> [--omit <dev|optional|peer> ...]]
[--strict-peer-deps] [--no-package-lock] [--foreground-scripts]
[--ignore-scripts] [--no-audit] [--no-bin-links] [--no-fund] [--dry-run]
[-w|--workspace <workspace-name> [-w|--workspace <workspace-name> ...]]
@@ -3316,8 +3316,9 @@ npm link [<package-spec>]
Options:
[-S|--save|--no-save|--save-prod|--save-dev|--save-optional|--save-peer|--save-bundle]
-[-E|--save-exact] [-g|--global] [--install-strategy <hoisted|nested|shallow>]
-[--legacy-bundling] [--global-style] [--strict-peer-deps] [--no-package-lock]
+[-E|--save-exact] [-g|--global]
+[--install-strategy <hoisted|nested|shallow|linked>] [--legacy-bundling]
+[--global-style] [--strict-peer-deps] [--no-package-lock]
[--omit <dev|optional|peer> [--omit <dev|optional|peer> ...]] [--ignore-scripts]
[--no-audit] [--no-bin-links] [--no-fund] [--dry-run]
[-w|--workspace <workspace-name> [-w|--workspace <workspace-name> ...]]
@@ -4221,8 +4222,9 @@ npm update [<pkg>...]
Options:
[-S|--save|--no-save|--save-prod|--save-dev|--save-optional|--save-peer|--save-bundle]
-[-g|--global] [--install-strategy <hoisted|nested|shallow>] [--legacy-bundling]
-[--global-style] [--omit <dev|optional|peer> [--omit <dev|optional|peer> ...]]
+[-g|--global] [--install-strategy <hoisted|nested|shallow|linked>]
+[--legacy-bundling] [--global-style]
+[--omit <dev|optional|peer> [--omit <dev|optional|peer> ...]]
[--strict-peer-deps] [--no-package-lock] [--foreground-scripts]
[--ignore-scripts] [--no-audit] [--no-bin-links] [--no-fund] [--dry-run]
[-w|--workspace <workspace-name> [-w|--workspace <workspace-name> ...]]