pnpm 12.1.0 → 12.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +65 -0
- package/dist/node_modules/.pnpm-workspace-state-v1.json +11 -9
- package/install.js +6 -5
- package/package.json +11 -11
- /package/{pnpm → pnpm.exe} +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,70 @@
|
|
|
1
1
|
# pnpm
|
|
2
2
|
|
|
3
|
+
## 12.2.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- Catalogs can now resolve workspace dependencies through the `workspace:` protocol.
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- Fixed `pnpm audit --fix` failing with `ERR_PNPM_INVALID_FIX_OPTION` when used without a value, including when another flag follows it, as in `pnpm audit --fix --json` [#13261](https://github.com/pnpm/pnpm/issues/13261). Fixed `pnpm audit --fix=override` ignoring the `saveExact` and `savePrefix` settings when writing vulnerability overrides [#11523](https://github.com/pnpm/pnpm/issues/11523).
|
|
12
|
+
|
|
13
|
+
- Authenticate Node.js runtime downloads from `nodeDownloadMirrors` with URL-scoped npm registry credentials, including bearer tokens, basic auth, and `tokenHelper` [pnpm/pnpm#14334](https://github.com/pnpm/pnpm/issues/14334).
|
|
14
|
+
|
|
15
|
+
- Fixed detached child processes being terminated after successful commands on Windows.
|
|
16
|
+
|
|
17
|
+
- Sped up installs in large workspaces by resolving each named `workspace:` dependency (`workspace:*`, `workspace:^`, `workspace:1.2.3`) once and reusing it across every project that declares it, instead of re-resolving it per project.
|
|
18
|
+
|
|
19
|
+
- Fixed `pnpm install --fix-lockfile` to derive its repair and filtered-merge views from one lockfile snapshot.
|
|
20
|
+
|
|
21
|
+
- Load pnpmfile `updateConfig` hooks before packing so hook-provided catalogs resolve in `pnpm pack`, `pnpm publish`, and `pnpm stage publish` [pnpm/pnpm#14377](https://github.com/pnpm/pnpm/issues/14377).
|
|
22
|
+
|
|
23
|
+
- `pnpm deploy` no longer requires `injectWorkspacePackages` to be enabled. A linked workspace dependency is rewritten to a `file:` dependency in the dedicated deploy lockfile, and the peer dependencies it declares are bound to the deployed graph's own resolution.
|
|
24
|
+
|
|
25
|
+
When a peer resolves to more than one version in that graph the binding is ambiguous, and choosing between the candidates is exactly what injecting the package would have decided, so the deploy still fails — now with `ERR_PNPM_DEPLOY_AMBIGUOUS_PEER`, which names the package, the peer, and the competing versions, instead of refusing every non-injected workspace up front, and suggests pinning the peer to one version with an `overrides` entry as the way to keep deploying without injection [#9386](https://github.com/pnpm/pnpm/issues/9386).
|
|
26
|
+
|
|
27
|
+
- Fixed global virtual store hashes for dependency cycles. Every package that transitively depends on an allowed build now includes the engine in its store path, independent of traversal order [pnpm/pnpm#14341](https://github.com/pnpm/pnpm/issues/14341).
|
|
28
|
+
|
|
29
|
+
- Fixed `ERR_PNPM_CMD_SHIM_CHMOD` when several installs run at once against a shared global virtual store. One install could remove a command shim while another was making it executable ([pnpm/pnpm#14353](https://github.com/pnpm/pnpm/issues/14353)).
|
|
30
|
+
|
|
31
|
+
- Fixed the PowerShell shim generated by `npm install -g pnpm` on Windows so it invokes the native `pnpm.exe` binary [pnpm/pnpm#14362](https://github.com/pnpm/pnpm/issues/14362).
|
|
32
|
+
|
|
33
|
+
- Fixed context-aware global shims on WSL2 so native Linux installations dispatch through the project runtime.
|
|
34
|
+
|
|
35
|
+
- `pnpm install` no longer writes global `minimumReleaseAgeExclude` entries to the project's `pnpm-workspace.yaml` [pnpm/pnpm#14347](https://github.com/pnpm/pnpm/issues/14347).
|
|
36
|
+
|
|
37
|
+
- Fixed `catalog:` ranges in workspace package peer dependencies being reported as unmet [pnpm/pnpm#14361](https://github.com/pnpm/pnpm/issues/14361).
|
|
38
|
+
|
|
39
|
+
- `globalDir` and `globalBinDir` are honored wherever they are set, so `pnpm add -g` no longer fails with `ERR_PNPM_GLOBAL_BIN_DIR_NOT_IN_PATH` after `pnpm config set -g global-bin-dir` [#14336](https://github.com/pnpm/pnpm/issues/14336). The global `config.yaml` is read again, `PNPM_CONFIG_GLOBAL_DIR` / `PNPM_CONFIG_GLOBAL_BIN_DIR` reach the directories derived from them, and a leading `~/` is expanded before that derivation. A project's `pnpm-workspace.yaml` still cannot set either key.
|
|
40
|
+
|
|
41
|
+
- Fixed the install progress line reporting `added 0` under `nodeLinker: hoisted`, even when packages were linked into `node_modules` [#14348](https://github.com/pnpm/pnpm/issues/14348).
|
|
42
|
+
|
|
43
|
+
- An auto-installed optional peer is now resolved to a version its declared peer range accepts, even when the workspace root depends on that package at a version outside the range. Previously the root's version was used and then reported as an unmet optional peer [#13867](https://github.com/pnpm/pnpm/issues/13867).
|
|
44
|
+
|
|
45
|
+
- Fixed `pnpm run "/pattern/"` running matching scripts one at a time in a single project. Matching scripts now run concurrently up to `workspaceConcurrency`, and their output is prefixed so concurrent lines remain distinguishable [pnpm discussion 14357](https://github.com/orgs/pnpm/discussions/14357).
|
|
46
|
+
|
|
47
|
+
- Fixed a slowdown at the end of a resolving install in a large workspace. The peer-dependency report now inspects only the projects the resolution flagged, rather than every project in the lockfile ([pnpm/pnpm#14359](https://github.com/pnpm/pnpm/issues/14359)).
|
|
48
|
+
|
|
49
|
+
- Speed up workspace discovery for literal directories and conventional trailing-star patterns.
|
|
50
|
+
|
|
51
|
+
Workspace patterns now follow the same dot-directory rule as pnpm 11: a wildcard no longer matches a dot-prefixed directory, so `packages/*` and `**` skip `packages/.cache` and `.git`. A pattern that names a dot-prefixed directory still matches it, as `packages/.cache` and `packages/.*` do.
|
|
52
|
+
|
|
53
|
+
- `pnpm audit` now ends its output with a trailing newline, including the `--json`, `--fix`, and `--ignore` output.
|
|
54
|
+
|
|
55
|
+
- Retry transient Windows file-lock errors while replacing hoisted packages during installation.
|
|
56
|
+
This fixes [pnpm/pnpm#14349](https://github.com/pnpm/pnpm/issues/14349).
|
|
57
|
+
|
|
58
|
+
- Fixed command-line `--side-effects-cache` overrides being ignored when `pnpm-workspace.yaml` uses the object form of `sideEffectsCache` [pnpm/pnpm#14338](https://github.com/pnpm/pnpm/issues/14338).
|
|
59
|
+
|
|
60
|
+
- Speed up workspace project discovery in large monorepos: workspace patterns are now probed concurrently and the discovered projects' `package.json` files are read in parallel [#14352](https://github.com/pnpm/pnpm/issues/14352).
|
|
61
|
+
|
|
62
|
+
- Fixed repeated `pnpm dedupe` runs alternating between peer resolutions when a peer is provided through an npm alias.
|
|
63
|
+
|
|
64
|
+
- Fixed `pnpm repo <package>` and `pnpm docs <package>` resolving bare package names through the `latest` tag, and prevented malformed package ranges from crashing registry selection.
|
|
65
|
+
|
|
66
|
+
- Fixed non-ASCII characters in configuration values being mangled during environment-variable substitution. Paths such as `storeDir: ./café-store` are now preserved [#14383](https://github.com/pnpm/pnpm/issues/14383).
|
|
67
|
+
|
|
3
68
|
## 12.1.0
|
|
4
69
|
|
|
5
70
|
### Minor Changes
|
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
{
|
|
2
|
-
"lastValidatedTimestamp":
|
|
2
|
+
"lastValidatedTimestamp": 1788219115260,
|
|
3
3
|
"projects": {
|
|
4
4
|
"/home/runner/_work/pnpm/pnpm/pnpm/npm/pnpm/temp-deploy": {
|
|
5
5
|
"name": "pacquet",
|
|
6
|
-
"version": "12.
|
|
6
|
+
"version": "12.2.0"
|
|
7
7
|
}
|
|
8
8
|
},
|
|
9
9
|
"pnpmfiles": [],
|
|
10
10
|
"filteredInstall": false,
|
|
11
11
|
"settings": {
|
|
12
12
|
"allowBuilds": {
|
|
13
|
+
"@parcel/watcher": false,
|
|
13
14
|
"core-js": false,
|
|
14
15
|
"esbuild": true,
|
|
15
16
|
"fuse-native": true,
|
|
@@ -131,7 +132,7 @@
|
|
|
131
132
|
"escape-string-regexp": "^5.0.0",
|
|
132
133
|
"eslint": "^10.9.1",
|
|
133
134
|
"eslint-plugin-import-x": "^4.17.1",
|
|
134
|
-
"eslint-plugin-jest": "^29.16.
|
|
135
|
+
"eslint-plugin-jest": "^29.16.5",
|
|
135
136
|
"eslint-plugin-n": "^18.3.0",
|
|
136
137
|
"eslint-plugin-promise": "^7.3.0",
|
|
137
138
|
"eslint-plugin-regexp": "^3.1.1",
|
|
@@ -158,8 +159,8 @@
|
|
|
158
159
|
"is-subdir": "^2.0.0",
|
|
159
160
|
"is-windows": "^1.0.2",
|
|
160
161
|
"isexe": "4.0.0",
|
|
161
|
-
"jest": "
|
|
162
|
-
"jest-diff": "
|
|
162
|
+
"jest": "30.4.2",
|
|
163
|
+
"jest-diff": "30.4.1",
|
|
163
164
|
"js-yaml": "npm:@zkochan/js-yaml@0.0.11",
|
|
164
165
|
"json5": "^2.2.3",
|
|
165
166
|
"keyv": "5.6.0",
|
|
@@ -174,7 +175,7 @@
|
|
|
174
175
|
"mdast-util-to-string": "^4.0.0",
|
|
175
176
|
"memoize": "^11.0.0",
|
|
176
177
|
"micromatch": "^4.0.8",
|
|
177
|
-
"msgpackr": "2.0
|
|
178
|
+
"msgpackr": "2.1.0",
|
|
178
179
|
"nm-prune": "^5.0.0",
|
|
179
180
|
"node-gyp": "^12.3.0",
|
|
180
181
|
"normalize-newline": "5.0.0",
|
|
@@ -184,7 +185,7 @@
|
|
|
184
185
|
"npm-packlist": "10.0.4",
|
|
185
186
|
"npm-registry-fetch": "^19.0.0",
|
|
186
187
|
"object-hash": "3.0.0",
|
|
187
|
-
"open": "^11.0.
|
|
188
|
+
"open": "^11.0.2",
|
|
188
189
|
"openpgp": "^6.3.1",
|
|
189
190
|
"p-defer": "^4.0.1",
|
|
190
191
|
"p-every": "^2.0.0",
|
|
@@ -199,8 +200,8 @@
|
|
|
199
200
|
"path-temp": "^3.0.0",
|
|
200
201
|
"pidtree": "^1.0.0",
|
|
201
202
|
"preferred-pm": "^5.0.0",
|
|
202
|
-
"pretty-bytes": "^7.1.
|
|
203
|
-
"pretty-ms": "^9.3.
|
|
203
|
+
"pretty-bytes": "^7.1.2",
|
|
204
|
+
"pretty-ms": "^9.3.1",
|
|
204
205
|
"promise-share": "^2.0.1",
|
|
205
206
|
"proxyquire": "^2.1.3",
|
|
206
207
|
"ps-list": "^9.0.0",
|
|
@@ -330,6 +331,7 @@
|
|
|
330
331
|
"trustPolicyExclude": [
|
|
331
332
|
"@pnpm/*",
|
|
332
333
|
"@yarnpkg/libzip@3.2.2",
|
|
334
|
+
"fastq@1.20.2",
|
|
333
335
|
"pnpm",
|
|
334
336
|
"rxjs@7.8.2",
|
|
335
337
|
"tinyexec@1.2.2",
|
package/install.js
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
// Preinstall for the pnpm v12 wrapper (shared verbatim by `pnpm` and
|
|
3
3
|
// `@pnpm/exe`): replace the shebang-less placeholder bins with the host's native
|
|
4
|
-
// binary so `pnpm` runs directly, no Node startup per call.
|
|
5
|
-
//
|
|
6
|
-
//
|
|
7
|
-
//
|
|
4
|
+
// binary so `pnpm` runs directly, no Node startup per call. The `.exe` suffix is
|
|
5
|
+
// used on every platform because PowerShell cannot execute an extensionless
|
|
6
|
+
// native binary through an explicit path. The placeholder makes the bin target
|
|
7
|
+
// packable before preinstall replaces it; the tradeoff is no fallback when build
|
|
8
|
+
// scripts are blocked (`--ignore-scripts`, pnpm/Bun default).
|
|
8
9
|
//
|
|
9
10
|
// `pn`/`pnpx`/`pnx` are committed `#!/bin/sh` scripts on Unix (so only `pnpm` is
|
|
10
11
|
// relinked); on Windows the native binary is hardlinked onto each and
|
|
@@ -63,7 +64,7 @@ function setup () {
|
|
|
63
64
|
}
|
|
64
65
|
rewriteBin(newBin)
|
|
65
66
|
} else {
|
|
66
|
-
placeBinary(nativeBinary, path.join(wrapperDir, 'pnpm'), 0o755)
|
|
67
|
+
placeBinary(nativeBinary, path.join(wrapperDir, 'pnpm.exe'), 0o755)
|
|
67
68
|
}
|
|
68
69
|
}
|
|
69
70
|
|
package/package.json
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"./dist/node_modules/node-gyp/gyp/gyp"
|
|
10
10
|
]
|
|
11
11
|
},
|
|
12
|
-
"version": "12.
|
|
12
|
+
"version": "12.2.0",
|
|
13
13
|
"description": "Fast, disk space efficient package manager",
|
|
14
14
|
"keywords": [
|
|
15
15
|
"pnpm",
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
"directory": "pnpm/npm/pnpm"
|
|
26
26
|
},
|
|
27
27
|
"bin": {
|
|
28
|
-
"pnpm": "pnpm",
|
|
28
|
+
"pnpm": "pnpm.exe",
|
|
29
29
|
"pn": "pn",
|
|
30
30
|
"pnpx": "pnpx",
|
|
31
31
|
"pnx": "pnx"
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
"node": ">=18.*"
|
|
36
36
|
},
|
|
37
37
|
"files": [
|
|
38
|
-
"pnpm",
|
|
38
|
+
"pnpm.exe",
|
|
39
39
|
"pn",
|
|
40
40
|
"pnpx",
|
|
41
41
|
"pnx",
|
|
@@ -46,14 +46,14 @@
|
|
|
46
46
|
"THIRD-PARTY-NOTICES.md"
|
|
47
47
|
],
|
|
48
48
|
"optionalDependencies": {
|
|
49
|
-
"@pnpm/exe.win32-x64": "12.
|
|
50
|
-
"@pnpm/exe.win32-arm64": "12.
|
|
51
|
-
"@pnpm/exe.darwin-x64": "12.
|
|
52
|
-
"@pnpm/exe.darwin-arm64": "12.
|
|
53
|
-
"@pnpm/exe.linux-x64": "12.
|
|
54
|
-
"@pnpm/exe.linux-arm64": "12.
|
|
55
|
-
"@pnpm/exe.linux-x64-musl": "12.
|
|
56
|
-
"@pnpm/exe.linux-arm64-musl": "12.
|
|
49
|
+
"@pnpm/exe.win32-x64": "12.2.0",
|
|
50
|
+
"@pnpm/exe.win32-arm64": "12.2.0",
|
|
51
|
+
"@pnpm/exe.darwin-x64": "12.2.0",
|
|
52
|
+
"@pnpm/exe.darwin-arm64": "12.2.0",
|
|
53
|
+
"@pnpm/exe.linux-x64": "12.2.0",
|
|
54
|
+
"@pnpm/exe.linux-arm64": "12.2.0",
|
|
55
|
+
"@pnpm/exe.linux-x64-musl": "12.2.0",
|
|
56
|
+
"@pnpm/exe.linux-arm64-musl": "12.2.0"
|
|
57
57
|
},
|
|
58
58
|
"scripts": {
|
|
59
59
|
"preinstall": "node install.js",
|
/package/{pnpm → pnpm.exe}
RENAMED
|
File without changes
|