Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@
"prepare": "husky"
},
"dependencies": {
"glob": "^13.0.2",
"glob": "^14.0.2",

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 (optional) Consumers passing globOptions to createPackageWithOptions get glob 14's breaking behavior and types in what ships as a non-major asar release. The globOptions field (src/asar.ts:47) is glob's own GlobOptionsWithFileTypesFalse, and src/crawlfs.ts:32 forwards it unchanged. So glob 14 drops debug, re-roots ignore patterns starting with /, applies windowsPathsNoEscape: true to ignore, and changes matching to minimatch 11. Fix: publish this as a breaking asar release (e.g. a !/BREAKING CHANGE commit), or keep glob ^13 until a planned major.

Why this was flagged

An asar API caller such as electron-builder or Forge passes globOptions: { ignore: [...] } or debug through createPackageWithOptions. src/asar.ts:63-68 hands them to crawlFilesystem, and src/crawlfs.ts:32-35 spreads them into glob() after windowsPathsNoEscape: true. With glob 14, backslash-escaped ignore entries are now read as path separators on Windows. ignore entries starting with / now resolve against root, and debug is a TypeScript error. Files the caller excluded on 13.0.6 can now end up in the archive, or included files can drop out. The release workflow (.github/workflows/release.yml) runs semantic-release, and a build(deps): commit does not cut a major version, so ^ ranges in downstream projects pick this up automatically. No source change or test adapts or documents the new semantics.

Verification: Trigger: a programmatic asar caller passes globOptions. crawl spreads it into glob(dir, { windowsPathsNoEscape: true, ...options }) (src/crawlfs.ts:32-35). The diff changes "glob": "^13.0.2" to "^14.0.2". This commit is typed build(deps): with no breaking marker. The result is that consumers' ignore sets can silently include or exclude different files, all without a major bump.

"minimatch": "^11.0.1"
},
"devDependencies": {
Expand Down
36 changes: 23 additions & 13 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ __metadata:
"@tsconfig/node22": "npm:^22.0.1"
"@types/node": "npm:^22.12.0"
electron: "npm:^43.0.0"
glob: "npm:^13.0.2"
glob: "npm:^14.0.2"
husky: "npm:^9.1.7"
lint-staged: "npm:^17.4.1"
minimatch: "npm:^11.0.1"
Expand Down Expand Up @@ -77,7 +77,7 @@ __metadata:
languageName: node
linkType: hard

"@isaacs/nonrecursive-glob-match@npm:^1.0.1":
"@isaacs/nonrecursive-glob-match@npm:^1.0.1, @isaacs/nonrecursive-glob-match@npm:^1.0.3":
version: 1.0.3
resolution: "@isaacs/nonrecursive-glob-match@npm:1.0.3"
checksum: 10c0/dc2eb2b9cffc8d4b22b0de8beb8ecdc903b7bef1cb094d83fe0a7e454f0c7e1a8bcb4a168f66299eb17e1620fdf3c8cdf69545d11933845a122a10393b86c40a
Expand Down Expand Up @@ -809,14 +809,14 @@ __metadata:
languageName: node
linkType: hard

"glob@npm:^13.0.2":
version: 13.0.6
resolution: "glob@npm:13.0.6"
"glob@npm:^14.0.2":
version: 14.0.2
resolution: "glob@npm:14.0.2"
dependencies:
minimatch: "npm:^10.2.2"
minimatch: "npm:^11.0.0"
minipass: "npm:^7.1.3"
path-scurry: "npm:^2.0.2"
checksum: 10c0/269c236f11a9b50357fe7a8c6aadac667e01deb5242b19c84975628f05f4438d8ee1354bb62c5d6c10f37fd59911b54d7799730633a2786660d8c69f1d18120a
path-scurry: "npm:^3.0.0"
checksum: 10c0/30e6d02930d281d1879048ac4631648491aa5e60d84fe4195b048f88545f341766a3e2ab05d0a9d59457bd8905720925d20a0491654feeb7fc68568177e8d8e4
languageName: node
linkType: hard

Expand Down Expand Up @@ -1044,7 +1044,7 @@ __metadata:
languageName: node
linkType: hard

"minimatch@npm:^10.2.2, minimatch@npm:^10.2.4":
"minimatch@npm:^10.2.4":
version: 10.2.5
resolution: "minimatch@npm:10.2.5"
dependencies:
Expand All @@ -1053,6 +1053,16 @@ __metadata:
languageName: node
linkType: hard

"minimatch@npm:^11.0.0":
version: 11.0.3
resolution: "minimatch@npm:11.0.3"
dependencies:
"@isaacs/nonrecursive-glob-match": "npm:^1.0.3"
brace-expansion: "npm:^5.0.12"
checksum: 10c0/5e8f192102251981872d3c117b3804d4b2759a20b5d788e65af2263a7679d96692f00ca8784b245e38476d042472c818f10ceac06085dec23a22136931b76053
languageName: node
linkType: hard

"minimatch@npm:^11.0.1":
version: 11.0.1
resolution: "minimatch@npm:11.0.1"
Expand Down Expand Up @@ -1279,13 +1289,13 @@ __metadata:
languageName: node
linkType: hard

"path-scurry@npm:^2.0.2":
version: 2.0.2
resolution: "path-scurry@npm:2.0.2"
"path-scurry@npm:^3.0.0":
version: 3.0.0
resolution: "path-scurry@npm:3.0.0"
dependencies:
lru-cache: "npm:^11.0.0"
minipass: "npm:^7.1.2"
checksum: 10c0/b35ad37cf6557a87fd057121ce2be7695380c9138d93e87ae928609da259ea0a170fac6f3ef1eb3ece8a068e8b7f2f3adf5bb2374cf4d4a57fe484954fcc9482
checksum: 10c0/3256223b51952732bc5460f574143d7d9904cd6d68fac3072906162c90e9f27fdf6f3fe812287e65a876f92d73c12a58368b28749ed07a58bdb04dc76f60a938
languageName: node
linkType: hard

Expand Down
Loading