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
+12
View File
@@ -0,0 +1,12 @@
// TextEncoder/TextDecoder exist in every target (browsers, Node, workers) but
// belong to the DOM and Node type libraries, which this package does not load
// on purpose. Declared here to the extent the codec uses them.
declare class TextDecoder {
constructor(label?: string, options?: { fatal?: boolean; ignoreBOM?: boolean });
decode(input?: Uint8Array): string;
}
declare class TextEncoder {
encode(input?: string): Uint8Array;
}