@flighthq/compression 0.5.1-next.1556.ff9e615 → 0.5.1-next.1629.669e7c5
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 +2 -2
- package/dist/compress.d.ts +2 -0
- package/dist/compress.d.ts.map +1 -1
- package/dist/compress.js +10 -2
- package/dist/compress.js.map +1 -1
- package/dist/contract.d.ts +0 -1
- package/dist/contract.d.ts.map +1 -1
- package/dist/contract.js +0 -1
- package/dist/contract.js.map +1 -1
- package/dist/deflate.d.ts +3 -3
- package/dist/deflate.d.ts.map +1 -1
- package/dist/deflate.js +11 -13
- package/dist/deflate.js.map +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -1
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
- package/src/compress.test.ts +43 -19
- package/src/deflate.test.ts +51 -49
- package/dist/decompressor.d.ts +0 -6
- package/dist/decompressor.d.ts.map +0 -1
- package/dist/decompressor.js +0 -22
- package/dist/decompressor.js.map +0 -1
- package/src/decompressor.test.ts +0 -58
package/README.md
CHANGED
|
@@ -13,5 +13,5 @@ Import the supported application-facing API from `@flighthq/compression`. The `@
|
|
|
13
13
|
This package is part of the locked-version Flight SDK graph. Applications may instead install and import `@flighthq/sdk` when package-level tree shaking is sufficient.
|
|
14
14
|
|
|
15
15
|
- [Flight project](https://github.com/flighthq/flight)
|
|
16
|
-
- [Source for @flighthq/compression@0.5.1-next.
|
|
17
|
-
- [License](https://github.com/flighthq/flight/blob/
|
|
16
|
+
- [Source for @flighthq/compression@0.5.1-next.1629.669e7c5](https://github.com/flighthq/flight/tree/669e7c57b5177f4dba43dd9e861db543c4d72d2d/packages/compression)
|
|
17
|
+
- [License](https://github.com/flighthq/flight/blob/669e7c57b5177f4dba43dd9e861db543c4d72d2d/LICENSE.md)
|
package/dist/compress.d.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import type { HostCompressDeflateCapability } from '@flighthq/types/contract';
|
|
1
2
|
export declare function compressDeflate(bytes: Readonly<Uint8Array>): Uint8Array;
|
|
2
3
|
export declare function compressDeflateZlib(bytes: Readonly<Uint8Array>): Uint8Array;
|
|
4
|
+
export declare const sdkHostCompressDeflate: HostCompressDeflateCapability;
|
|
3
5
|
//# sourceMappingURL=compress.d.ts.map
|
package/dist/compress.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compress.d.ts","sourceRoot":"","sources":["../src/compress.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"compress.d.ts","sourceRoot":"","sources":["../src/compress.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,0BAA0B,CAAC;AAkB9E,wBAAgB,eAAe,CAAC,KAAK,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,UAAU,CAIvE;AAID,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,QAAQ,CAAC,UAAU,CAAC,GAAG,UAAU,CAa3E;AAID,eAAO,MAAM,sBAAsB,EAAE,6BAIpC,CAAC"}
|
package/dist/compress.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { CompressionFraming } from '@flighthq/types/contract';
|
|
1
2
|
import { computeAdler32, DISTANCE_BASE, DISTANCE_EXTRA, LENGTH_BASE, LENGTH_EXTRA } from './deflateFormat';
|
|
2
3
|
// Dependency-free, synchronous RFC 1951 (DEFLATE) and RFC 1950 (zlib) encoding, in its own module so a
|
|
3
4
|
// bundle that only reads compressed bytes never carries an encoder and vice versa. Written from the
|
|
@@ -9,7 +10,7 @@ import { computeAdler32, DISTANCE_BASE, DISTANCE_EXTRA, LENGTH_BASE, LENGTH_EXTR
|
|
|
9
10
|
// containers worth compressing. When the encoded block would be larger than the bytes themselves — which
|
|
10
11
|
// is what incompressible input does — stored blocks are emitted instead, so compressing never meaningfully
|
|
11
12
|
// grows a payload. Output is a pure function of the input: no timestamps, no heuristics that vary.
|
|
12
|
-
// Raw RFC 1951: the DEFLATE stream alone, with no wrapper. This is the framing `
|
|
13
|
+
// Raw RFC 1951: the DEFLATE stream alone, with no wrapper. This is the framing `decompressDeflate` reads as
|
|
13
14
|
// CompressionFraming.Raw.
|
|
14
15
|
export function compressDeflate(bytes) {
|
|
15
16
|
const input = bytes;
|
|
@@ -17,7 +18,7 @@ export function compressDeflate(bytes) {
|
|
|
17
18
|
return huffman.length <= storedLength(input.length) ? huffman : encodeStoredBlocks(input);
|
|
18
19
|
}
|
|
19
20
|
// RFC 1950: a two-byte header, the same DEFLATE stream, and an Adler-32 of the UNCOMPRESSED bytes, in
|
|
20
|
-
// big-endian order. This is the framing `
|
|
21
|
+
// big-endian order. This is the framing `decompressDeflate` reads as CompressionFraming.Rfc1950.
|
|
21
22
|
export function compressDeflateZlib(bytes) {
|
|
22
23
|
const deflated = compressDeflate(bytes);
|
|
23
24
|
const out = new Uint8Array(ZLIB_HEADER_BYTES + deflated.length + ZLIB_TRAILER_BYTES);
|
|
@@ -32,6 +33,13 @@ export function compressDeflateZlib(bytes) {
|
|
|
32
33
|
out[trailer + 3] = checksum & 0xff;
|
|
33
34
|
return out;
|
|
34
35
|
}
|
|
36
|
+
// The deflate compress slot Flight itself can fill, ready to drop into a Host's `compress` group.
|
|
37
|
+
// Dispatches on framing to the matching encoder. Named for the Host slot it fills.
|
|
38
|
+
export const sdkHostCompressDeflate = {
|
|
39
|
+
compress(bytes, framing) {
|
|
40
|
+
return framing === CompressionFraming.Rfc1950 ? compressDeflateZlib(bytes) : compressDeflate(bytes);
|
|
41
|
+
},
|
|
42
|
+
};
|
|
35
43
|
// Bit order is the format's, not one convention throughout: block headers and extra bits are packed
|
|
36
44
|
// least-significant-bit first, while a Huffman code is packed most-significant-bit first. Mixing the two
|
|
37
45
|
// up produces a stream that still decodes for short inputs and fails on long ones.
|
package/dist/compress.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compress.js","sourceRoot":"","sources":["../src/compress.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"compress.js","sourceRoot":"","sources":["../src/compress.ts"],"names":[],"mappings":"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"}
|
package/dist/contract.d.ts
CHANGED
package/dist/contract.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,
|
|
1
|
+
{"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC"}
|
package/dist/contract.js
CHANGED
package/dist/contract.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract.js","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,
|
|
1
|
+
{"version":3,"file":"contract.js","sourceRoot":"","sources":["../src/contract.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC"}
|
package/dist/deflate.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Decompressor } from '@flighthq/types/contract';
|
|
2
|
-
export declare const
|
|
3
|
-
export declare
|
|
1
|
+
import type { Decompressor, HostDecompressDeflateCapability } from '@flighthq/types/contract';
|
|
2
|
+
export declare const decompressDeflate: Decompressor;
|
|
3
|
+
export declare const sdkHostDecompressDeflate: HostDecompressDeflateCapability;
|
|
4
4
|
//# sourceMappingURL=deflate.d.ts.map
|
package/dist/deflate.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deflate.d.ts","sourceRoot":"","sources":["../src/deflate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"deflate.d.ts","sourceRoot":"","sources":["../src/deflate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,+BAA+B,EAAE,MAAM,0BAA0B,CAAC;AAgB9F,eAAO,MAAM,iBAAiB,EAAE,YAoB/B,CAAC;AAMF,eAAO,MAAM,wBAAwB,EAAE,+BAAmE,CAAC"}
|
package/dist/deflate.js
CHANGED
|
@@ -1,18 +1,17 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { registerDecompressor } from './decompressor';
|
|
1
|
+
import { CompressionFraming } from '@flighthq/types/contract';
|
|
3
2
|
import { computeAdler32, DISTANCE_BASE, DISTANCE_EXTRA, LENGTH_BASE, LENGTH_EXTRA } from './deflateFormat';
|
|
4
3
|
// Dependency-free, synchronous RFC 1951 (DEFLATE) and RFC 1950 (zlib) decoding. Kept in its own module so
|
|
5
|
-
//
|
|
6
|
-
//
|
|
7
|
-
// synchronous parser that
|
|
8
|
-
//
|
|
4
|
+
// this stays tree-shakable: a bundle that never references `sdkHostDecompressDeflate` pays nothing for
|
|
5
|
+
// this Huffman decoder. Sync because inflate is a straight-line state machine, which keeps every
|
|
6
|
+
// synchronous parser that takes a decompress slot synchronous too; a host with a faster native or wasm
|
|
7
|
+
// codec supplies that slot instead.
|
|
9
8
|
//
|
|
10
9
|
// Real containers mix the two framings — SWF's `CWS` body and Away3D's `ByteArray.compress()` are zlib
|
|
11
10
|
// (a 2-byte header, the DEFLATE stream, an Adler-32), while other producers emit the bare stream. The
|
|
12
11
|
// caller supplies that container-owned fact explicitly because the first raw bytes can also form a valid
|
|
13
12
|
// zlib header. A nonzero `uncompressedLength` is a ceiling enforced while bytes are written; callers
|
|
14
13
|
// without one pass 0 and retain the package-wide safety cap.
|
|
15
|
-
export const
|
|
14
|
+
export const decompressDeflate = (compressed, uncompressedLength, framing) => {
|
|
16
15
|
const input = compressed;
|
|
17
16
|
let start = 0;
|
|
18
17
|
let end = input.length;
|
|
@@ -38,12 +37,11 @@ export const inflateDeflate = (compressed, uncompressedLength, framing) => {
|
|
|
38
37
|
return null;
|
|
39
38
|
}
|
|
40
39
|
};
|
|
41
|
-
//
|
|
42
|
-
//
|
|
43
|
-
//
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
}
|
|
40
|
+
// The deflate slot Flight itself can fill, ready to drop into a Host's `decompress` group. A caller
|
|
41
|
+
// that wants the portable decoder passes this; a host with a native or wasm codec supplies its own
|
|
42
|
+
// slot instead and never bundles this module. Named for the Host slot it fills rather than for the
|
|
43
|
+
// registry it used to feed.
|
|
44
|
+
export const sdkHostDecompressDeflate = { decompress: decompressDeflate };
|
|
47
45
|
// The order in which the 19 code-length-code lengths are written in a dynamic-Huffman block header.
|
|
48
46
|
const CODE_LENGTH_ORDER = [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15];
|
|
49
47
|
// An LSB-first bit reader over the DEFLATE stream, plus the growable output buffer. Throwing on overrun
|
package/dist/deflate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deflate.js","sourceRoot":"","sources":["../src/deflate.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"deflate.js","sourceRoot":"","sources":["../src/deflate.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC"}
|
package/dist/index.js
CHANGED
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@flighthq/compression",
|
|
3
|
-
"version": "0.5.1-next.
|
|
3
|
+
"version": "0.5.1-next.1629.669e7c5",
|
|
4
4
|
"author": "Joshua Granick and other contributors",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
"clean:dist": "tsx ../../scripts/clean-package-dist.ts"
|
|
39
39
|
},
|
|
40
40
|
"dependencies": {
|
|
41
|
-
"@flighthq/types": "0.5.1-next.
|
|
41
|
+
"@flighthq/types": "0.5.1-next.1629.669e7c5"
|
|
42
42
|
},
|
|
43
43
|
"devDependencies": {
|
|
44
44
|
"typescript": "^5.3.0"
|
package/src/compress.test.ts
CHANGED
|
@@ -1,27 +1,27 @@
|
|
|
1
1
|
import { CompressionFraming } from '@flighthq/types/contract';
|
|
2
2
|
|
|
3
|
-
import { compressDeflate, compressDeflateZlib } from './compress';
|
|
4
|
-
import {
|
|
3
|
+
import { compressDeflate, compressDeflateZlib, sdkHostCompressDeflate } from './compress';
|
|
4
|
+
import { decompressDeflate } from './deflate';
|
|
5
5
|
|
|
6
|
-
// Every round trip is checked through
|
|
6
|
+
// Every round trip is checked through decompressDeflate, which was written independently of this encoder
|
|
7
7
|
// and is already pinned by its own tests. A compressor checked against its own decoder would agree with
|
|
8
8
|
// itself about a stream neither reads correctly; this one has to satisfy a reader it did not author.
|
|
9
9
|
describe('compressDeflate', () => {
|
|
10
10
|
it('round-trips an empty input as a raw stream', () => {
|
|
11
11
|
const compressed = compressDeflate(new Uint8Array(0));
|
|
12
|
-
expect(
|
|
12
|
+
expect(decompressDeflate(compressed, 0, CompressionFraming.Raw)).toEqual(new Uint8Array(0));
|
|
13
13
|
});
|
|
14
14
|
|
|
15
15
|
it('round-trips text through the raw framing', () => {
|
|
16
16
|
const bytes = new TextEncoder().encode('the quick brown fox jumps over the lazy dog');
|
|
17
17
|
const compressed = compressDeflate(bytes);
|
|
18
|
-
expect(
|
|
18
|
+
expect(decompressDeflate(compressed, bytes.length, CompressionFraming.Raw)).toEqual(bytes);
|
|
19
19
|
});
|
|
20
20
|
|
|
21
21
|
it('round-trips highly repetitive text and actually shrinks it', () => {
|
|
22
22
|
const bytes = new TextEncoder().encode('abcabcabc'.repeat(400));
|
|
23
23
|
const compressed = compressDeflate(bytes);
|
|
24
|
-
expect(
|
|
24
|
+
expect(decompressDeflate(compressed, bytes.length, CompressionFraming.Raw)).toEqual(bytes);
|
|
25
25
|
// A "compress" function that never shrinks anything would satisfy every round-trip assertion above.
|
|
26
26
|
expect(compressed.length).toBeLessThan(bytes.length / 4);
|
|
27
27
|
});
|
|
@@ -36,7 +36,7 @@ describe('compressDeflate', () => {
|
|
|
36
36
|
bytes[i] = seed & 0xff;
|
|
37
37
|
}
|
|
38
38
|
const compressed = compressDeflate(bytes);
|
|
39
|
-
expect(
|
|
39
|
+
expect(decompressDeflate(compressed, bytes.length, CompressionFraming.Raw)).toEqual(bytes);
|
|
40
40
|
expect(compressed.length).toBeLessThanOrEqual(bytes.length + 16);
|
|
41
41
|
});
|
|
42
42
|
|
|
@@ -44,7 +44,7 @@ describe('compressDeflate', () => {
|
|
|
44
44
|
const bytes = new Uint8Array(70_000);
|
|
45
45
|
for (let i = 0; i < bytes.length; i++) bytes[i] = i & 0xff;
|
|
46
46
|
const compressed = compressDeflate(bytes);
|
|
47
|
-
expect(
|
|
47
|
+
expect(decompressDeflate(compressed, bytes.length, CompressionFraming.Raw)).toEqual(bytes);
|
|
48
48
|
});
|
|
49
49
|
|
|
50
50
|
it('round-trips every byte value, so no literal is mis-coded', () => {
|
|
@@ -53,7 +53,7 @@ describe('compressDeflate', () => {
|
|
|
53
53
|
const bytes = new Uint8Array(256);
|
|
54
54
|
for (let i = 0; i < 256; i++) bytes[i] = i;
|
|
55
55
|
const compressed = compressDeflate(bytes);
|
|
56
|
-
expect(
|
|
56
|
+
expect(decompressDeflate(compressed, bytes.length, CompressionFraming.Raw)).toEqual(bytes);
|
|
57
57
|
});
|
|
58
58
|
|
|
59
59
|
it('round-trips a deterministic sweep of shapes a fixed corpus would miss', () => {
|
|
@@ -73,9 +73,9 @@ describe('compressDeflate', () => {
|
|
|
73
73
|
const alphabet = 1 + (length % 7);
|
|
74
74
|
for (let i = 0; i < length; i++) bytes[i] = next() % alphabet;
|
|
75
75
|
const raw = compressDeflate(bytes);
|
|
76
|
-
expect(
|
|
76
|
+
expect(decompressDeflate(raw, length, CompressionFraming.Raw)).toEqual(bytes);
|
|
77
77
|
const wrapped = compressDeflateZlib(bytes);
|
|
78
|
-
expect(
|
|
78
|
+
expect(decompressDeflate(wrapped, length, CompressionFraming.Rfc1950)).toEqual(bytes);
|
|
79
79
|
}
|
|
80
80
|
});
|
|
81
81
|
|
|
@@ -84,7 +84,7 @@ describe('compressDeflate', () => {
|
|
|
84
84
|
// extra bits. An input built only from short repeats never reaches it.
|
|
85
85
|
const bytes = new Uint8Array(2048).fill(7);
|
|
86
86
|
const compressed = compressDeflate(bytes);
|
|
87
|
-
expect(
|
|
87
|
+
expect(decompressDeflate(compressed, bytes.length, CompressionFraming.Raw)).toEqual(bytes);
|
|
88
88
|
});
|
|
89
89
|
|
|
90
90
|
it('round-trips a repeat at the far edge of the window', () => {
|
|
@@ -92,7 +92,7 @@ describe('compressDeflate', () => {
|
|
|
92
92
|
for (let i = 0; i < bytes.length; i++) bytes[i] = (i * 31) & 0xff;
|
|
93
93
|
bytes.set(bytes.subarray(0, 64), bytes.length - 64);
|
|
94
94
|
const compressed = compressDeflate(bytes);
|
|
95
|
-
expect(
|
|
95
|
+
expect(decompressDeflate(compressed, bytes.length, CompressionFraming.Raw)).toEqual(bytes);
|
|
96
96
|
});
|
|
97
97
|
|
|
98
98
|
it('produces the same bytes for the same input', () => {
|
|
@@ -103,7 +103,7 @@ describe('compressDeflate', () => {
|
|
|
103
103
|
it('emits no zlib wrapper, so the zlib reader refuses it', () => {
|
|
104
104
|
const bytes = new TextEncoder().encode('raw means raw'.repeat(20));
|
|
105
105
|
const compressed = compressDeflate(bytes);
|
|
106
|
-
expect(
|
|
106
|
+
expect(decompressDeflate(compressed, bytes.length, CompressionFraming.Rfc1950)).toBeNull();
|
|
107
107
|
});
|
|
108
108
|
|
|
109
109
|
it('does not mutate the input it was given', () => {
|
|
@@ -117,20 +117,20 @@ describe('compressDeflate', () => {
|
|
|
117
117
|
describe('compressDeflateZlib', () => {
|
|
118
118
|
it('round-trips an empty input through the zlib framing', () => {
|
|
119
119
|
const compressed = compressDeflateZlib(new Uint8Array(0));
|
|
120
|
-
expect(
|
|
120
|
+
expect(decompressDeflate(compressed, 0, CompressionFraming.Rfc1950)).toEqual(new Uint8Array(0));
|
|
121
121
|
});
|
|
122
122
|
|
|
123
123
|
it('round-trips text through the zlib framing', () => {
|
|
124
124
|
const bytes = new TextEncoder().encode('the quick brown fox jumps over the lazy dog');
|
|
125
125
|
const compressed = compressDeflateZlib(bytes);
|
|
126
|
-
expect(
|
|
126
|
+
expect(decompressDeflate(compressed, bytes.length, CompressionFraming.Rfc1950)).toEqual(bytes);
|
|
127
127
|
});
|
|
128
128
|
|
|
129
129
|
it('round-trips binary bytes through the zlib framing', () => {
|
|
130
130
|
const bytes = new Uint8Array(1024);
|
|
131
131
|
for (let i = 0; i < bytes.length; i++) bytes[i] = (i * 37) & 0xff;
|
|
132
132
|
const compressed = compressDeflateZlib(bytes);
|
|
133
|
-
expect(
|
|
133
|
+
expect(decompressDeflate(compressed, bytes.length, CompressionFraming.Rfc1950)).toEqual(bytes);
|
|
134
134
|
});
|
|
135
135
|
|
|
136
136
|
it('wraps the same raw stream in a header and an Adler-32 trailer', () => {
|
|
@@ -158,7 +158,7 @@ describe('compressDeflateZlib', () => {
|
|
|
158
158
|
// stream would still be self-consistent, so only a corrupted payload can tell the two apart.
|
|
159
159
|
const bytes = new TextEncoder().encode('checksum me'.repeat(30));
|
|
160
160
|
const compressed = compressDeflateZlib(bytes);
|
|
161
|
-
expect(
|
|
161
|
+
expect(decompressDeflate(compressed, bytes.length, CompressionFraming.Rfc1950)).toEqual(bytes);
|
|
162
162
|
const trailer = compressed.subarray(compressed.length - 4);
|
|
163
163
|
expect(trailer).not.toEqual(new Uint8Array([0, 0, 0, 0]));
|
|
164
164
|
});
|
|
@@ -166,7 +166,7 @@ describe('compressDeflateZlib', () => {
|
|
|
166
166
|
it('emits a wrapper, so the raw reader does not read it back unchanged', () => {
|
|
167
167
|
const bytes = new TextEncoder().encode('zlib means zlib'.repeat(20));
|
|
168
168
|
const compressed = compressDeflateZlib(bytes);
|
|
169
|
-
expect(
|
|
169
|
+
expect(decompressDeflate(compressed, bytes.length, CompressionFraming.Raw)).not.toEqual(bytes);
|
|
170
170
|
});
|
|
171
171
|
|
|
172
172
|
it('produces the same bytes for the same input', () => {
|
|
@@ -174,3 +174,27 @@ describe('compressDeflateZlib', () => {
|
|
|
174
174
|
expect(compressDeflateZlib(bytes)).toEqual(compressDeflateZlib(bytes));
|
|
175
175
|
});
|
|
176
176
|
});
|
|
177
|
+
|
|
178
|
+
describe('sdkHostCompressDeflate', () => {
|
|
179
|
+
it('is a ready-made deflate slot carrying the portable encoder', () => {
|
|
180
|
+
expect(sdkHostCompressDeflate.compress).toBeTypeOf('function');
|
|
181
|
+
});
|
|
182
|
+
|
|
183
|
+
it('dispatches Raw framing to compressDeflate', () => {
|
|
184
|
+
const bytes = new TextEncoder().encode('slot raw framing'.repeat(10));
|
|
185
|
+
expect(sdkHostCompressDeflate.compress(bytes, CompressionFraming.Raw)).toEqual(compressDeflate(bytes));
|
|
186
|
+
});
|
|
187
|
+
|
|
188
|
+
it('dispatches Rfc1950 framing to compressDeflateZlib', () => {
|
|
189
|
+
const bytes = new TextEncoder().encode('slot zlib framing'.repeat(10));
|
|
190
|
+
expect(sdkHostCompressDeflate.compress(bytes, CompressionFraming.Rfc1950)).toEqual(compressDeflateZlib(bytes));
|
|
191
|
+
});
|
|
192
|
+
|
|
193
|
+
it('round-trips through decompressDeflate for both framings', () => {
|
|
194
|
+
const bytes = new TextEncoder().encode('round trip through the slot'.repeat(8));
|
|
195
|
+
const raw = sdkHostCompressDeflate.compress(bytes, CompressionFraming.Raw);
|
|
196
|
+
expect(decompressDeflate(raw, bytes.length, CompressionFraming.Raw)).toEqual(bytes);
|
|
197
|
+
const zlib = sdkHostCompressDeflate.compress(bytes, CompressionFraming.Rfc1950);
|
|
198
|
+
expect(decompressDeflate(zlib, bytes.length, CompressionFraming.Rfc1950)).toEqual(bytes);
|
|
199
|
+
});
|
|
200
|
+
});
|
package/src/deflate.test.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { Compression, CompressionFraming } from '@flighthq/types/contract';
|
|
2
2
|
|
|
3
|
-
import {
|
|
4
|
-
import { inflateDeflate, registerDeflateDecompressor } from './deflate';
|
|
3
|
+
import { decompressDeflate, sdkHostDecompressDeflate } from './deflate';
|
|
5
4
|
|
|
6
5
|
// The compressed fixtures below are precomputed with Node's zlib and embedded as base64 rather than
|
|
7
6
|
// generated at test time: `scene-formats` is a browser-clean package whose build carries no `@types/node`,
|
|
@@ -216,9 +215,9 @@ function createRawStoredStreamStartingWithZlibHeader(): { payload: Uint8Array; s
|
|
|
216
215
|
return { payload, stream };
|
|
217
216
|
}
|
|
218
217
|
|
|
219
|
-
describe('
|
|
218
|
+
describe('decompressDeflate', () => {
|
|
220
219
|
it('round-trips empty input', () => {
|
|
221
|
-
expect(
|
|
220
|
+
expect(decompressDeflate(decodeBase64(FIXTURES.EMPTY), 0, CompressionFraming.Rfc1950)).toEqual(new Uint8Array(0));
|
|
222
221
|
});
|
|
223
222
|
|
|
224
223
|
it('keeps inflating a stream whose expansion ratio is large but bounded', () => {
|
|
@@ -228,36 +227,36 @@ describe('inflateDeflate', () => {
|
|
|
228
227
|
// fixture is 124 bytes expanding 528x to 64 KB, and must still round-trip byte for byte.
|
|
229
228
|
const source = new Uint8Array(64 * 1024);
|
|
230
229
|
for (let i = 0; i < source.length; i++) source[i] = i % 7;
|
|
231
|
-
expect(
|
|
230
|
+
expect(decompressDeflate(decodeBase64(FIXTURES.HIGH_RATIO), 0, CompressionFraming.Rfc1950)).toEqual(source);
|
|
232
231
|
});
|
|
233
232
|
|
|
234
233
|
it('stops expansion at the container-declared output bound', () => {
|
|
235
234
|
const compressed = decodeBase64(FIXTURES.HIGH_RATIO);
|
|
236
|
-
expect(
|
|
237
|
-
expect(
|
|
235
|
+
expect(decompressDeflate(compressed, 64 * 1024, CompressionFraming.Rfc1950)).toHaveLength(64 * 1024);
|
|
236
|
+
expect(decompressDeflate(compressed, 64 * 1024 - 1, CompressionFraming.Rfc1950)).toBeNull();
|
|
238
237
|
});
|
|
239
238
|
|
|
240
239
|
it('round-trips a short literal run (zlib-wrapped)', () => {
|
|
241
|
-
expect(
|
|
240
|
+
expect(decompressDeflate(decodeBase64(FIXTURES.LITERAL), 0, CompressionFraming.Rfc1950)).toEqual(
|
|
242
241
|
encode('flighthq scene-formats'),
|
|
243
242
|
);
|
|
244
243
|
});
|
|
245
244
|
|
|
246
245
|
it('round-trips a headerless raw DEFLATE stream when explicitly requested', () => {
|
|
247
|
-
expect(
|
|
246
|
+
expect(decompressDeflate(decodeBase64(FIXTURES.RAW_LITERAL), 0, CompressionFraming.Raw)).toEqual(
|
|
248
247
|
encode('flighthq scene-formats'),
|
|
249
248
|
);
|
|
250
249
|
});
|
|
251
250
|
|
|
252
251
|
it('does not mistake a valid raw stream beginning 78 9c for zlib framing', () => {
|
|
253
252
|
const { payload, stream } = createRawStoredStreamStartingWithZlibHeader();
|
|
254
|
-
expect(
|
|
255
|
-
expect(
|
|
253
|
+
expect(decompressDeflate(stream, payload.length, CompressionFraming.Raw)).toEqual(payload);
|
|
254
|
+
expect(decompressDeflate(stream, payload.length, CompressionFraming.Rfc1950)).toBeNull();
|
|
256
255
|
});
|
|
257
256
|
|
|
258
257
|
it('round-trips highly repetitive data through back-references and grows the output buffer', () => {
|
|
259
258
|
// 5400 bytes out — past the 1024-byte initial buffer, exercising the grow path.
|
|
260
|
-
expect(
|
|
259
|
+
expect(decompressDeflate(decodeBase64(FIXTURES.REPETITIVE), 0, CompressionFraming.Rfc1950)).toEqual(
|
|
261
260
|
encode('abcABC123'.repeat(600)),
|
|
262
261
|
);
|
|
263
262
|
});
|
|
@@ -265,87 +264,91 @@ describe('inflateDeflate', () => {
|
|
|
265
264
|
it('round-trips prose through a genuine dynamic-Huffman block', () => {
|
|
266
265
|
// Verified offline that zlib emits BTYPE=2 (dynamic Huffman) for this input, exercising the
|
|
267
266
|
// dynamic literal/length + distance code-length decode path.
|
|
268
|
-
expect(
|
|
267
|
+
expect(decompressDeflate(decodeBase64(FIXTURES.LOREM), 0, CompressionFraming.Rfc1950)).toEqual(
|
|
269
268
|
encode(LOREM.repeat(12)),
|
|
270
269
|
);
|
|
271
270
|
});
|
|
272
271
|
|
|
273
272
|
it('round-trips a stored (level 0) block', () => {
|
|
274
|
-
expect(
|
|
273
|
+
expect(decompressDeflate(decodeBase64(FIXTURES.STORED_L0), 0, CompressionFraming.Rfc1950)).toEqual(
|
|
275
274
|
encode('the quick brown fox jumps over the lazy dog'),
|
|
276
275
|
);
|
|
277
276
|
});
|
|
278
277
|
|
|
279
278
|
it('returns null on a truncated stream rather than throwing', () => {
|
|
280
|
-
expect(
|
|
279
|
+
expect(
|
|
280
|
+
decompressDeflate(decodeBase64(FIXTURES.REPETITIVE).subarray(0, 6), 0, CompressionFraming.Rfc1950),
|
|
281
|
+
).toBeNull();
|
|
281
282
|
});
|
|
282
283
|
|
|
283
284
|
it('returns null on a corrupt (invalid block type) stream', () => {
|
|
284
285
|
// 0x78 0x9c is a valid zlib header; 0xff 0xff after it decodes an invalid block type.
|
|
285
286
|
expect(
|
|
286
|
-
|
|
287
|
+
decompressDeflate(new Uint8Array([0x78, 0x9c, 0xff, 0xff, 0, 0, 0, 0]), 0, CompressionFraming.Rfc1950),
|
|
287
288
|
).toBeNull();
|
|
288
289
|
});
|
|
289
290
|
|
|
290
291
|
it('rejects undersized zlib wrappers and unknown framing values', () => {
|
|
291
|
-
expect(
|
|
292
|
-
expect(
|
|
292
|
+
expect(decompressDeflate(new Uint8Array([0x78, 0x9c, 0, 0, 0]), 0, CompressionFraming.Rfc1950)).toBeNull();
|
|
293
|
+
expect(decompressDeflate(decodeBase64(FIXTURES.RAW_LITERAL), 0, 'Unknown' as never)).toBeNull();
|
|
293
294
|
});
|
|
294
295
|
|
|
295
296
|
it('rejects truncated stored-block headers and payloads', () => {
|
|
296
|
-
expect(
|
|
297
|
-
expect(
|
|
297
|
+
expect(decompressDeflate(new Uint8Array([0x01, 0, 0]), 0, CompressionFraming.Raw)).toBeNull();
|
|
298
|
+
expect(decompressDeflate(new Uint8Array([0x01, 0x02, 0, 0xfd, 0xff, 0x41]), 0, CompressionFraming.Raw)).toBeNull();
|
|
298
299
|
});
|
|
299
300
|
|
|
300
301
|
it('rejects reserved fixed length symbols and back-references before the output', () => {
|
|
301
|
-
expect(
|
|
302
|
-
expect(
|
|
302
|
+
expect(decompressDeflate(createFixedBackReferenceStream(286), 0, CompressionFraming.Raw)).toBeNull();
|
|
303
|
+
expect(decompressDeflate(createFixedBackReferenceStream(257, 0), 0, CompressionFraming.Raw)).toBeNull();
|
|
303
304
|
});
|
|
304
305
|
|
|
305
306
|
it('rejects a reserved dynamic distance symbol', () => {
|
|
306
|
-
expect(
|
|
307
|
+
expect(decompressDeflate(createReservedDynamicDistanceStream(), 0, CompressionFraming.Raw)).toBeNull();
|
|
307
308
|
});
|
|
308
309
|
|
|
309
310
|
it('rejects a missing or corrupt zlib Adler-32 trailer', () => {
|
|
310
311
|
const valid = decodeBase64(FIXTURES.LITERAL);
|
|
311
312
|
const corrupt = valid.slice();
|
|
312
313
|
corrupt[corrupt.length - 1] ^= 1;
|
|
313
|
-
expect(
|
|
314
|
-
expect(
|
|
314
|
+
expect(decompressDeflate(valid.subarray(0, valid.length - 4), 0, CompressionFraming.Rfc1950)).toBeNull();
|
|
315
|
+
expect(decompressDeflate(corrupt, 0, CompressionFraming.Rfc1950)).toBeNull();
|
|
315
316
|
});
|
|
316
317
|
|
|
317
318
|
it('rejects illegal zlib methods, window sizes, check bits, and preset dictionaries', () => {
|
|
318
319
|
const illegalMethod = decodeBase64(FIXTURES.LITERAL);
|
|
319
320
|
illegalMethod[0] = 0x77;
|
|
320
321
|
illegalMethod[1] = 0x09; // FCHECK-valid for CM=7, so only the forbidden compression method rejects it.
|
|
321
|
-
expect(
|
|
322
|
+
expect(decompressDeflate(illegalMethod, 0, CompressionFraming.Rfc1950)).toBeNull();
|
|
322
323
|
|
|
323
324
|
const illegalWindow = decodeBase64(FIXTURES.LITERAL);
|
|
324
325
|
illegalWindow[0] = 0xf8;
|
|
325
326
|
illegalWindow[1] = 0x00;
|
|
326
|
-
expect(
|
|
327
|
+
expect(decompressDeflate(illegalWindow, 0, CompressionFraming.Rfc1950)).toBeNull();
|
|
327
328
|
|
|
328
329
|
const illegalCheck = decodeBase64(FIXTURES.LITERAL);
|
|
329
330
|
illegalCheck[1] ^= 1;
|
|
330
|
-
expect(
|
|
331
|
+
expect(decompressDeflate(illegalCheck, 0, CompressionFraming.Rfc1950)).toBeNull();
|
|
331
332
|
|
|
332
333
|
const presetDictionary = decodeBase64(FIXTURES.LITERAL);
|
|
333
334
|
presetDictionary[1] = 0xbb;
|
|
334
|
-
expect(
|
|
335
|
+
expect(decompressDeflate(presetDictionary, 0, CompressionFraming.Rfc1950)).toBeNull();
|
|
335
336
|
});
|
|
336
337
|
|
|
337
338
|
it('rejects a dynamic code-length repeat that exceeds the declared table', () => {
|
|
338
|
-
expect(
|
|
339
|
-
|
|
339
|
+
expect(decompressDeflate(decodeHex('05c0050900000000a0ffaf15'), 0, CompressionFraming.Raw)).toEqual(
|
|
340
|
+
new Uint8Array(),
|
|
341
|
+
);
|
|
342
|
+
expect(decompressDeflate(decodeHex('05c0050900000000a0ffaf0d'), 0, CompressionFraming.Raw)).toBeNull();
|
|
340
343
|
});
|
|
341
344
|
|
|
342
345
|
it.each([16, 17, 18] as const)('rejects dynamic repeat symbol %i when it exceeds the declared table', (symbol) => {
|
|
343
|
-
expect(
|
|
346
|
+
expect(decompressDeflate(createDynamicRepeatOverflowStream(symbol), 0, CompressionFraming.Raw)).toBeNull();
|
|
344
347
|
});
|
|
345
348
|
|
|
346
349
|
it('accepts every dynamic repeat form when it ends inside the declared table', () => {
|
|
347
350
|
for (const symbol of [16, 17, 18] as const) {
|
|
348
|
-
expect(
|
|
351
|
+
expect(decompressDeflate(createValidDynamicRepeatStream(symbol), 0, CompressionFraming.Raw)).toEqual(
|
|
349
352
|
new Uint8Array(),
|
|
350
353
|
);
|
|
351
354
|
}
|
|
@@ -364,30 +367,29 @@ describe('inflateDeflate', () => {
|
|
|
364
367
|
]),
|
|
365
368
|
);
|
|
366
369
|
pushCanonicalCode(bits, 3, 2);
|
|
367
|
-
expect(
|
|
370
|
+
expect(decompressDeflate(packDeflateBits(bits), 0, CompressionFraming.Raw)).toBeNull();
|
|
368
371
|
});
|
|
369
372
|
|
|
370
373
|
it('rejects forbidden dynamic literal counts without rejecting the maximum valid count', () => {
|
|
371
|
-
expect(
|
|
374
|
+
expect(decompressDeflate(decodeHex('edc0210900000000a0ffaf5d22'), 0, CompressionFraming.Raw)).toEqual(
|
|
372
375
|
new Uint8Array(),
|
|
373
376
|
);
|
|
374
|
-
expect(
|
|
375
|
-
expect(
|
|
377
|
+
expect(decompressDeflate(decodeHex('f5c0210900000000a0ffaf7d22'), 0, CompressionFraming.Raw)).toBeNull();
|
|
378
|
+
expect(decompressDeflate(decodeHex('fdc0210900000000a0ffaf9d22'), 0, CompressionFraming.Raw)).toBeNull();
|
|
376
379
|
});
|
|
377
380
|
});
|
|
378
381
|
|
|
379
|
-
describe('
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
382
|
+
describe('sdkHostDecompressDeflate', () => {
|
|
383
|
+
it('is a ready-made deflate slot carrying the portable inflater', () => {
|
|
384
|
+
// What a caller drops into a Host's decompress group when it wants Flight's own decoder rather
|
|
385
|
+
// than a native or wasm one. There is no registration step and no import-order dependence: the
|
|
386
|
+
// slot IS the value.
|
|
387
|
+
expect(sdkHostDecompressDeflate.decompress).toBe(decompressDeflate);
|
|
388
|
+
});
|
|
386
389
|
|
|
387
|
-
|
|
388
|
-
expect(
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
).toEqual(encode('flighthq scene-formats'));
|
|
390
|
+
it('inflates through the slot exactly as the bare function does', () => {
|
|
391
|
+
expect(sdkHostDecompressDeflate.decompress(decodeBase64(FIXTURES.LITERAL), 0, CompressionFraming.Rfc1950)).toEqual(
|
|
392
|
+
encode('flighthq scene-formats'),
|
|
393
|
+
);
|
|
392
394
|
});
|
|
393
395
|
});
|
package/dist/decompressor.d.ts
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import type { Compression, Decompressor } from '@flighthq/types/contract';
|
|
2
|
-
export declare function getDecompressor(compression: Compression): Decompressor | null;
|
|
3
|
-
export declare function hasDecompressor(compression: Compression): boolean;
|
|
4
|
-
export declare function registerDecompressor(compression: Compression, decompress: Decompressor): void;
|
|
5
|
-
export declare function unregisterDecompressor(compression: Compression): void;
|
|
6
|
-
//# sourceMappingURL=decompressor.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"decompressor.d.ts","sourceRoot":"","sources":["../src/decompressor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAU1E,wBAAgB,eAAe,CAAC,WAAW,EAAE,WAAW,GAAG,YAAY,GAAG,IAAI,CAE7E;AAED,wBAAgB,eAAe,CAAC,WAAW,EAAE,WAAW,GAAG,OAAO,CAEjE;AAED,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,YAAY,GAAG,IAAI,CAE7F;AAED,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI,CAErE"}
|
package/dist/decompressor.js
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
// The one registry every container format resolves through. A caller registers an algorithm once and
|
|
2
|
-
// every consumer that carries a compressed body — SWF's `CWS`/`ZWS`, AWD2's compressed blocks, anything
|
|
3
|
-
// added later — can read it, rather than each format owning a private registry keyed by its own
|
|
4
|
-
// vocabulary and asking the caller to register the same function twice.
|
|
5
|
-
//
|
|
6
|
-
// It starts empty and is only ever filled by an explicit `register*` call, so importing a codec module
|
|
7
|
-
// registers nothing and a build that never decompresses pays for no codec. Registration is
|
|
8
|
-
// last-write-wins, which is what lets a host replace a portable decoder with a native or wasm one.
|
|
9
|
-
export function getDecompressor(compression) {
|
|
10
|
-
return _decompressors.get(compression) ?? null;
|
|
11
|
-
}
|
|
12
|
-
export function hasDecompressor(compression) {
|
|
13
|
-
return _decompressors.has(compression);
|
|
14
|
-
}
|
|
15
|
-
export function registerDecompressor(compression, decompress) {
|
|
16
|
-
_decompressors.set(compression, decompress);
|
|
17
|
-
}
|
|
18
|
-
export function unregisterDecompressor(compression) {
|
|
19
|
-
_decompressors.delete(compression);
|
|
20
|
-
}
|
|
21
|
-
const _decompressors = new Map();
|
|
22
|
-
//# sourceMappingURL=decompressor.js.map
|
package/dist/decompressor.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"decompressor.js","sourceRoot":"","sources":["../src/decompressor.ts"],"names":[],"mappings":"AAEA,qGAAqG;AACrG,wGAAwG;AACxG,gGAAgG;AAChG,wEAAwE;AACxE,EAAE;AACF,uGAAuG;AACvG,2FAA2F;AAC3F,mGAAmG;AACnG,MAAM,UAAU,eAAe,CAAC,WAAwB;IACtD,OAAO,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,WAAwB;IACtD,OAAO,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,WAAwB,EAAE,UAAwB;IACrF,cAAc,CAAC,GAAG,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,WAAwB;IAC7D,cAAc,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,cAAc,GAAG,IAAI,GAAG,EAA6B,CAAC"}
|
package/src/decompressor.test.ts
DELETED
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import { Compression } from '@flighthq/types/contract';
|
|
2
|
-
|
|
3
|
-
import { getDecompressor, hasDecompressor, registerDecompressor, unregisterDecompressor } from './decompressor';
|
|
4
|
-
|
|
5
|
-
describe('getDecompressor', () => {
|
|
6
|
-
it('reports nothing registered rather than throwing', () => {
|
|
7
|
-
expect(getDecompressor(Compression.Deflate)).toBeNull();
|
|
8
|
-
expect(getDecompressor(Compression.Lzma)).toBeNull();
|
|
9
|
-
});
|
|
10
|
-
});
|
|
11
|
-
|
|
12
|
-
describe('hasDecompressor', () => {
|
|
13
|
-
afterEach(() => unregisterDecompressor(Compression.Lzma));
|
|
14
|
-
|
|
15
|
-
it('answers without handing back the implementation', () => {
|
|
16
|
-
expect(hasDecompressor(Compression.Lzma)).toBe(false);
|
|
17
|
-
registerDecompressor(Compression.Lzma, () => null);
|
|
18
|
-
expect(hasDecompressor(Compression.Lzma)).toBe(true);
|
|
19
|
-
});
|
|
20
|
-
});
|
|
21
|
-
|
|
22
|
-
describe('registerDecompressor', () => {
|
|
23
|
-
afterEach(() => {
|
|
24
|
-
unregisterDecompressor(Compression.Deflate);
|
|
25
|
-
unregisterDecompressor(Compression.Lzma);
|
|
26
|
-
});
|
|
27
|
-
|
|
28
|
-
it('registers per algorithm, last write winning', () => {
|
|
29
|
-
const first = (): Uint8Array => new Uint8Array([1]);
|
|
30
|
-
const second = (): Uint8Array => new Uint8Array([2]);
|
|
31
|
-
|
|
32
|
-
registerDecompressor(Compression.Deflate, first);
|
|
33
|
-
expect(getDecompressor(Compression.Deflate)).toBe(first);
|
|
34
|
-
// A host replacing a portable decoder with a native or wasm one relies on last-write-wins.
|
|
35
|
-
registerDecompressor(Compression.Deflate, second);
|
|
36
|
-
expect(getDecompressor(Compression.Deflate)).toBe(second);
|
|
37
|
-
// Registering one algorithm leaves the others alone.
|
|
38
|
-
expect(getDecompressor(Compression.Lzma)).toBeNull();
|
|
39
|
-
});
|
|
40
|
-
|
|
41
|
-
it('serves every consumer from the one registration', () => {
|
|
42
|
-
const decompress = (): Uint8Array => new Uint8Array([7]);
|
|
43
|
-
registerDecompressor(Compression.Deflate, decompress);
|
|
44
|
-
|
|
45
|
-
// Whatever container asks — a SWF body, an AWD2 block — resolves the same implementation.
|
|
46
|
-
expect(getDecompressor(Compression.Deflate)).toBe(decompress);
|
|
47
|
-
expect(getDecompressor(Compression.Deflate)).toBe(getDecompressor(Compression.Deflate));
|
|
48
|
-
});
|
|
49
|
-
});
|
|
50
|
-
|
|
51
|
-
describe('unregisterDecompressor', () => {
|
|
52
|
-
it('removes a registration and is safe when none exists', () => {
|
|
53
|
-
registerDecompressor(Compression.Deflate, () => new Uint8Array());
|
|
54
|
-
unregisterDecompressor(Compression.Deflate);
|
|
55
|
-
expect(getDecompressor(Compression.Deflate)).toBeNull();
|
|
56
|
-
expect(() => unregisterDecompressor(Compression.Deflate)).not.toThrow();
|
|
57
|
-
});
|
|
58
|
-
});
|