@pnpm/exe 12.0.0-rc.8 → 12.0.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/README.md CHANGED
@@ -51,6 +51,15 @@ To quote the [Rush](https://rushjs.io/) team:
51
51
  </picture>
52
52
  </a>
53
53
  </td>
54
+ <td align="center" valign="middle">
55
+ <a href="https://notion.com/?utm_source=pnpm&utm_medium=readme" target="_blank" rel="noopener noreferrer">
56
+ <picture>
57
+ <source media="(prefers-color-scheme: light)" srcset="https://pnpm.io/img/users/notion.svg" />
58
+ <source media="(prefers-color-scheme: dark)" srcset="https://pnpm.io/img/users/notion_light.svg" />
59
+ <img src="https://pnpm.io/img/users/notion.svg" width="80" alt="Notion" />
60
+ </picture>
61
+ </a>
62
+ </td>
54
63
  </tr>
55
64
  </tbody>
56
65
  </table>
@@ -130,6 +139,9 @@ To quote the [Rush](https://rushjs.io/) team:
130
139
  </picture>
131
140
  </a>
132
141
  </td>
142
+ <td align="center" valign="middle">
143
+ <a href="https://latitude.so/?utm_source=pnpm&utm_medium=readme" target="_blank" rel="noopener noreferrer"><img src="https://pnpm.io/img/users/latitude.svg" width="160" alt="Latitude"></a>
144
+ </td>
133
145
  </tr>
134
146
  </tbody>
135
147
  </table>
@@ -1,9 +1,9 @@
1
1
  {
2
- "lastValidatedTimestamp": 1787256857205,
2
+ "lastValidatedTimestamp": 1787755126764,
3
3
  "projects": {
4
4
  "/home/runner/_work/pnpm/pnpm/pnpm/npm/pnpm/temp-deploy": {
5
5
  "name": "pacquet",
6
- "version": "12.0.0-rc.8"
6
+ "version": "12.0.0"
7
7
  }
8
8
  },
9
9
  "pnpmfiles": [],
@@ -27,7 +27,7 @@
27
27
  "@commitlint/prompt-cli": "^21.2.2",
28
28
  "@cyclonedx/cyclonedx-library": "10.2.0",
29
29
  "@eslint/js": "^10.0.1",
30
- "@inquirer/prompts": "^8.5.2",
30
+ "@inquirer/prompts": "^8.6.0",
31
31
  "@jest/globals": "30.4.1",
32
32
  "@npm/types": "^2.1.0",
33
33
  "@openpgp/web-stream-tools": "0.3.1",
@@ -47,7 +47,7 @@
47
47
  "@pnpm/tabtab": "^0.5.4",
48
48
  "@pnpm/tgz-fixtures": "0.0.0",
49
49
  "@reflink/reflink": "0.1.19",
50
- "@rushstack/worker-pool": "0.7.23",
50
+ "@rushstack/worker-pool": "0.7.25",
51
51
  "@stylistic/eslint-plugin": "^5.10.0",
52
52
  "@types/adm-zip": "^0.5.8",
53
53
  "@types/archy": "0.0.36",
@@ -86,7 +86,7 @@
86
86
  "@types/write-file-atomic": "^4.0.3",
87
87
  "@types/yarnpkg__lockfile": "^1.1.9",
88
88
  "@types/zkochan__table": "npm:@types/table@6.3.2",
89
- "@typescript-eslint/utils": "^8.67.0",
89
+ "@typescript-eslint/utils": "^8.68.0",
90
90
  "@typescript/native-preview": "7.0.0-dev.20260707.2",
91
91
  "@yarnpkg/core": "4.9.1",
92
92
  "@yarnpkg/extensions": "2.0.7",
@@ -129,7 +129,7 @@
129
129
  "encode-registry": "^3.0.1",
130
130
  "esbuild": "^0.28.2",
131
131
  "escape-string-regexp": "^5.0.0",
132
- "eslint": "^10.8.1",
132
+ "eslint": "^10.9.1",
133
133
  "eslint-plugin-import-x": "^4.17.1",
134
134
  "eslint-plugin-jest": "^29.16.1",
135
135
  "eslint-plugin-n": "^18.3.0",
@@ -149,7 +149,7 @@
149
149
  "graph-cycles": "3.0.0",
150
150
  "hosted-git-info": "npm:@pnpm/hosted-git-info@1.0.0",
151
151
  "https-proxy-server-express": "0.1.2",
152
- "human-id": "^4.2.0",
152
+ "human-id": "^4.2.1",
153
153
  "husky": "^9.1.7",
154
154
  "hyperdrive-schemas": "^2.0.0",
155
155
  "ini": "6.0.0",
@@ -174,7 +174,7 @@
174
174
  "mdast-util-to-string": "^4.0.0",
175
175
  "memoize": "^11.0.0",
176
176
  "micromatch": "^4.0.8",
177
- "msgpackr": "2.0.5",
177
+ "msgpackr": "2.0.6",
178
178
  "nm-prune": "^5.0.0",
179
179
  "node-gyp": "^12.3.0",
180
180
  "normalize-newline": "5.0.0",
@@ -247,7 +247,7 @@
247
247
  "tree-kill": "^1.2.2",
248
248
  "ts-jest-resolver": "2.0.1",
249
249
  "typescript": "6.0.3",
250
- "typescript-eslint": "^8.67.0",
250
+ "typescript-eslint": "^8.68.0",
251
251
  "undici": "^7.29.0",
252
252
  "unified": "^11.0.5",
253
253
  "validate-npm-package-name": "7.0.2",
@@ -279,24 +279,17 @@
279
279
  "minimumReleaseAge": 1440,
280
280
  "minimumReleaseAgeExclude": [
281
281
  "@pnpm/*",
282
- "@rushstack/worker-pool@0.7.18",
283
282
  "@zkochan/*",
284
283
  "better-path-resolve",
285
- "body-parser@2.2.1",
286
284
  "can-link",
287
285
  "can-write-to-dir",
288
286
  "cmd-extension",
289
287
  "comver-to-semver",
290
288
  "dir-is-case-sensitive",
291
- "esbuild@0.28.1",
292
289
  "@esbuild/*",
293
- "express@4.22.1",
294
290
  "glob@11.1.0",
295
- "handlebars@4.7.9",
296
291
  "is-inner-link",
297
292
  "is-subdir",
298
- "jws@3.2.3",
299
- "lodash@4.17.23",
300
293
  "make-empty-dir",
301
294
  "normalize-registry-url",
302
295
  "parse-npm-tarball-url@5.0.0",
@@ -305,9 +298,7 @@
305
298
  "pnpm",
306
299
  "preferred-pm",
307
300
  "promise-share",
308
- "qs@6.14.2 || 6.15.2",
309
301
  "read-ini-file",
310
- "read-json5-file",
311
302
  "read-yaml-file",
312
303
  "realpath-missing",
313
304
  "rename-overwrite",
@@ -318,15 +309,12 @@
318
309
  "safe-execa",
319
310
  "safe-promise-defer",
320
311
  "symlink-dir",
321
- "tar@7.5.10",
322
312
  "which-pm",
323
- "which-pm-runs",
324
313
  "write-ini-file",
325
314
  "write-json5-file",
326
315
  "write-yaml-file",
327
- "tmp@0.2.6",
328
316
  "http-proxy-middleware@3.0.7",
329
- "get-pnpm@0.0.2 || 0.0.3"
317
+ "get-pnpm@0.0.3"
330
318
  ],
331
319
  "minimumReleaseAgeIgnoreMissingTime": true,
332
320
  "minimumReleaseAgeStrict": true,
@@ -1175,6 +1175,15 @@ const parse = (input, options) => {
1175
1175
  consume('/**', 3);
1176
1176
  }
1177
1177
 
1178
+ // A globstar followed only by balanced closing parens is at the logical end of patterns like
1179
+ // `test(/utils/**)` and `test?(/utils/**)`. Treat it as EOS so the trailing `/**` can match its
1180
+ // parent path, except in negated extglobs where that would change the exclusion semantics.
1181
+ const isEnd = eos() || (
1182
+ state.parens > 0
1183
+ && rest === ')'.repeat(state.parens)
1184
+ && !extglobs.some(extglob => extglob.type === 'negate')
1185
+ );
1186
+
1178
1187
  if (prior.type === 'bos' && eos()) {
1179
1188
  prev.type = 'globstar';
1180
1189
  prev.value += value;
@@ -1185,7 +1194,7 @@ const parse = (input, options) => {
1185
1194
  continue;
1186
1195
  }
1187
1196
 
1188
- if (prior.type === 'slash' && prior.prev.type !== 'bos' && !afterStar && eos()) {
1197
+ if (prior.type === 'slash' && prior.prev.type !== 'bos' && !afterStar && isEnd) {
1189
1198
  state.output = state.output.slice(0, -(prior.output + prev.output).length);
1190
1199
  prior.output = `(?:${prior.output}`;
1191
1200
 
@@ -50,7 +50,7 @@ const scan = (input, options) => {
50
50
  const opts = options || {};
51
51
 
52
52
  const length = input.length - 1;
53
- const scanToEnd = opts.parts === true || opts.scanToEnd === true;
53
+ const scanToEnd = opts.parts === true || opts.tokens === true || opts.scanToEnd === true;
54
54
  const slashes = [];
55
55
  const tokens = [];
56
56
  const parts = [];
@@ -184,15 +184,21 @@ const scan = (input, options) => {
184
184
  }
185
185
 
186
186
  if (scanToEnd === true) {
187
+ let parens = 0;
188
+
187
189
  while (eos() !== true && (code = advance())) {
188
190
  if (code === CHAR_BACKWARD_SLASH) {
189
191
  backslashes = token.backslashes = true;
190
- code = advance();
192
+ advance();
193
+ continue;
194
+ }
195
+
196
+ if (code === CHAR_LEFT_PARENTHESES) {
197
+ parens++;
191
198
  continue;
192
199
  }
193
200
 
194
- if (code === CHAR_RIGHT_PARENTHESES) {
195
- isGlob = token.isGlob = true;
201
+ if (code === CHAR_RIGHT_PARENTHESES && --parens === 0) {
196
202
  finished = true;
197
203
  break;
198
204
  }
@@ -257,14 +263,21 @@ const scan = (input, options) => {
257
263
  isGlob = token.isGlob = true;
258
264
 
259
265
  if (scanToEnd === true) {
266
+ let parens = 1;
267
+
260
268
  while (eos() !== true && (code = advance())) {
261
- if (code === CHAR_LEFT_PARENTHESES) {
269
+ if (code === CHAR_BACKWARD_SLASH) {
262
270
  backslashes = token.backslashes = true;
263
- code = advance();
271
+ advance();
264
272
  continue;
265
273
  }
266
274
 
267
- if (code === CHAR_RIGHT_PARENTHESES) {
275
+ if (code === CHAR_LEFT_PARENTHESES) {
276
+ parens++;
277
+ continue;
278
+ }
279
+
280
+ if (code === CHAR_RIGHT_PARENTHESES && --parens === 0) {
268
281
  finished = true;
269
282
  break;
270
283
  }
@@ -351,7 +364,7 @@ const scan = (input, options) => {
351
364
  let prevIndex;
352
365
 
353
366
  for (let idx = 0; idx < slashes.length; idx++) {
354
- const n = prevIndex ? prevIndex + 1 : start;
367
+ const n = prevIndex !== undefined ? prevIndex + 1 : start;
355
368
  const i = slashes[idx];
356
369
  const value = input.slice(n, i);
357
370
  if (opts.tokens) {
@@ -364,21 +377,20 @@ const scan = (input, options) => {
364
377
  depth(tokens[idx]);
365
378
  state.maxDepth += tokens[idx].depth;
366
379
  }
367
- if (idx !== 0 || value !== '') {
380
+ if (i >= start) {
368
381
  parts.push(value);
382
+ prevIndex = i;
369
383
  }
370
- prevIndex = i;
371
384
  }
372
385
 
373
- if (prevIndex && prevIndex + 1 < input.length) {
374
- const value = input.slice(prevIndex + 1);
375
- parts.push(value);
386
+ const n = prevIndex !== undefined ? prevIndex + 1 : start;
387
+ const value = input.slice(n);
388
+ parts.push(value);
376
389
 
377
- if (opts.tokens) {
378
- tokens[tokens.length - 1].value = value;
379
- depth(tokens[tokens.length - 1]);
380
- state.maxDepth += tokens[tokens.length - 1].depth;
381
- }
390
+ if (opts.tokens && prevIndex && prevIndex + 1 < input.length) {
391
+ tokens[tokens.length - 1].value = value;
392
+ depth(tokens[tokens.length - 1]);
393
+ state.maxDepth += tokens[tokens.length - 1].depth;
382
394
  }
383
395
 
384
396
  state.slashes = slashes;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "picomatch",
3
3
  "description": "Blazing fast and accurate glob matcher written in JavaScript, with no dependencies and full support for standard and extended Bash glob features, including braces, extglobs, POSIX brackets, and regular expressions.",
4
- "version": "4.0.5",
4
+ "version": "4.0.7",
5
5
  "homepage": "https://github.com/micromatch/picomatch",
6
6
  "author": "Jon Schlinkert (https://github.com/jonschlinkert)",
7
7
  "funding": "https://github.com/sponsors/jonschlinkert",
package/package.json CHANGED
@@ -9,7 +9,7 @@
9
9
  "./dist/node_modules/node-gyp/gyp/gyp"
10
10
  ]
11
11
  },
12
- "version": "12.0.0-rc.8",
12
+ "version": "12.0.0",
13
13
  "description": "Fast, disk space efficient package manager",
14
14
  "keywords": [
15
15
  "pnpm",
@@ -46,14 +46,14 @@
46
46
  "THIRD-PARTY-NOTICES.md"
47
47
  ],
48
48
  "optionalDependencies": {
49
- "@pnpm/exe.win32-x64": "12.0.0-rc.8",
50
- "@pnpm/exe.win32-arm64": "12.0.0-rc.8",
51
- "@pnpm/exe.darwin-x64": "12.0.0-rc.8",
52
- "@pnpm/exe.darwin-arm64": "12.0.0-rc.8",
53
- "@pnpm/exe.linux-x64": "12.0.0-rc.8",
54
- "@pnpm/exe.linux-arm64": "12.0.0-rc.8",
55
- "@pnpm/exe.linux-x64-musl": "12.0.0-rc.8",
56
- "@pnpm/exe.linux-arm64-musl": "12.0.0-rc.8"
49
+ "@pnpm/exe.win32-x64": "12.0.0",
50
+ "@pnpm/exe.win32-arm64": "12.0.0",
51
+ "@pnpm/exe.darwin-x64": "12.0.0",
52
+ "@pnpm/exe.darwin-arm64": "12.0.0",
53
+ "@pnpm/exe.linux-x64": "12.0.0",
54
+ "@pnpm/exe.linux-arm64": "12.0.0",
55
+ "@pnpm/exe.linux-x64-musl": "12.0.0",
56
+ "@pnpm/exe.linux-arm64-musl": "12.0.0"
57
57
  },
58
58
  "scripts": {
59
59
  "preinstall": "node install.js",