@vzn/vx 0.0.425 → 0.0.426

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vzn/vx",
3
- "version": "0.0.425",
3
+ "version": "0.0.426",
4
4
  "description": "The fastest task runner and build cache for JavaScript monorepos.",
5
5
  "type": "module",
6
6
  "exports": {
@@ -21,10 +21,10 @@
21
21
  "node": ">=18"
22
22
  },
23
23
  "optionalDependencies": {
24
- "@vzn/vx-linux-x64": "0.0.425",
25
- "@vzn/vx-linux-arm64": "0.0.425",
26
- "@vzn/vx-darwin-x64": "0.0.425",
27
- "@vzn/vx-darwin-arm64": "0.0.425"
24
+ "@vzn/vx-linux-x64": "0.0.426",
25
+ "@vzn/vx-linux-arm64": "0.0.426",
26
+ "@vzn/vx-darwin-x64": "0.0.426",
27
+ "@vzn/vx-darwin-arm64": "0.0.426"
28
28
  },
29
29
  "dependencies": {
30
30
  "@anthropic-ai/sandbox-runtime": "^0.0.76"
@@ -470,13 +470,28 @@ async function memberDirs(root: string, pattern: string): Promise<string[]> {
470
470
  // `pack*/*` did not (item 987). Followed only where the depth is bounded:
471
471
  // under `**` the scan would walk every pnpm `node_modules` link.
472
472
  const followSymlinks = !expanded.includes('**')
473
- for await (const rel of glob.scan({ cwd: root, onlyFiles: true, dot: false, followSymlinks })) {
474
- // Skip nested node_modules — workspace package globs shouldn't
475
- // ever reach into them, but a pathological pattern like `**`
476
- // would. Avoid splitting the path on the hot loop.
477
- if (rel.includes(`${path.sep}node_modules${path.sep}`)) continue
478
- if (rel.startsWith(`node_modules${path.sep}`)) continue
479
- dirs.push(path.dirname(path.resolve(root, rel)))
473
+ try {
474
+ for await (const rel of glob.scan({
475
+ cwd: root,
476
+ onlyFiles: true,
477
+ dot: false,
478
+ followSymlinks,
479
+ })) {
480
+ // Skip nested node_modules — workspace package globs shouldn't
481
+ // ever reach into them, but a pathological pattern like `**`
482
+ // would. Avoid splitting the path on the hot loop.
483
+ if (rel.includes(`${path.sep}node_modules${path.sep}`)) continue
484
+ if (rel.startsWith(`node_modules${path.sep}`)) continue
485
+ dirs.push(path.dirname(path.resolve(root, rel)))
486
+ }
487
+ } catch (err) {
488
+ // The scan stops at a directory it may not open and cannot skip it,
489
+ // so the readdir path's skip is not on offer here (D-132).
490
+ if (!isPermissionError(err)) throw err
491
+ const where = relPosix(root, path.resolve(root, err.path ?? ''))
492
+ throw new UserError(
493
+ `${where}: not readable by this user (${err.code}), and the workspace glob "${pattern}" walks into it`,
494
+ )
480
495
  }
481
496
  }
482
497
  return dirs