feat(fls): ZIP layer of the .fls codec

Reader and writer ported from filius-ipad with the same path policy,
limits and error codes; DEFLATE via fflate, cut at the declared size
like Apple Compression. 54 tests: the Swift archive rejection tests,
DEFLATE edge cases, and all 23 corpus files cross-checked against
fflate.unzipSync and round-tripped.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-09-29 20:03:07 +00:00
co-authored by Claude Opus 5.5
parent 77feeabf39
commit 750cc72c55
13 changed files with 1101 additions and 2 deletions
+18
View File
@@ -471,6 +471,10 @@
"resolved": "packages/core",
"link": true
},
"node_modules/@mdg-filius/fls": {
"resolved": "packages/fls",
"link": true
},
"node_modules/@napi-rs/lzma-linux-x64-gnu": {
"version": "1.5.1",
"resolved": "https://registry.npmjs.org/@napi-rs/lzma-linux-x64-gnu/-/lzma-linux-x64-gnu-1.5.1.tgz",
@@ -1150,6 +1154,12 @@
}
}
},
"node_modules/fflate": {
"version": "0.8.3",
"resolved": "https://registry.npmjs.org/fflate/-/fflate-0.8.3.tgz",
"integrity": "sha512-tbZNuJrLwGUp3zshBtdy4W+ORxZuIh8a5ilyIEQDC5rY1f3U20JMry0Ll3WBzU58EZKsEuJFXhb5gwv8CsPvgA==",
"license": "MIT"
},
"node_modules/fsevents": {
"version": "2.3.3",
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
@@ -1645,6 +1655,14 @@
"name": "@mdg-filius/core",
"version": "0.0.0",
"license": "GPL-3.0-only"
},
"packages/fls": {
"name": "@mdg-filius/fls",
"version": "0.0.0",
"license": "GPL-3.0-only",
"dependencies": {
"fflate": "^0.8.2"
}
}
}
}