@elaraai/east 1.0.75 → 1.0.77
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/dist/src/serialization/beast2/index.d.ts +21 -0
- package/dist/src/serialization/beast2/index.d.ts.map +1 -1
- package/dist/src/serialization/beast2/index.js +55 -0
- package/dist/src/serialization/beast2/index.js.map +1 -1
- package/dist/src/serialization/beast2/v5/deflate.d.ts.map +1 -1
- package/dist/src/serialization/beast2/v5/deflate.js +147 -50
- package/dist/src/serialization/beast2/v5/deflate.js.map +1 -1
- package/dist/src/serialization/beast2/v5/deflate.spec.d.ts +6 -0
- package/dist/src/serialization/beast2/v5/deflate.spec.d.ts.map +1 -0
- package/dist/src/serialization/beast2/v5/deflate.spec.js +237 -0
- package/dist/src/serialization/beast2/v5/deflate.spec.js.map +1 -0
- package/dist/src/serialization/beast2/v5/frame-pool.d.ts +119 -0
- package/dist/src/serialization/beast2/v5/frame-pool.d.ts.map +1 -0
- package/dist/src/serialization/beast2/v5/frame-pool.js +235 -0
- package/dist/src/serialization/beast2/v5/frame-pool.js.map +1 -0
- package/dist/src/serialization/beast2/v5/frame-pool.spec.d.ts +6 -0
- package/dist/src/serialization/beast2/v5/frame-pool.spec.d.ts.map +1 -0
- package/dist/src/serialization/beast2/v5/frame-pool.spec.js +287 -0
- package/dist/src/serialization/beast2/v5/frame-pool.spec.js.map +1 -0
- package/dist/src/serialization/beast2/v5/frame-worker.d.ts +6 -0
- package/dist/src/serialization/beast2/v5/frame-worker.d.ts.map +1 -0
- package/dist/src/serialization/beast2/v5/frame-worker.js +40 -0
- package/dist/src/serialization/beast2/v5/frame-worker.js.map +1 -0
- package/dist/src/serialization/beast2/v5/stream.d.ts +63 -2
- package/dist/src/serialization/beast2/v5/stream.d.ts.map +1 -1
- package/dist/src/serialization/beast2/v5/stream.js +132 -9
- package/dist/src/serialization/beast2/v5/stream.js.map +1 -1
- package/dist/src/serialization/index.d.ts +1 -1
- package/dist/src/serialization/index.d.ts.map +1 -1
- package/dist/src/serialization/index.js +1 -1
- package/dist/src/serialization/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -26,6 +26,7 @@ export type { Beast2Codec } from "./v5/frames.js";
|
|
|
26
26
|
export { Beast2Writer, type Beast2WriterOptions, encodeBeast2SegmentsFor, encodeBeast2PagedFor, type Beast2PagedEncodeOptions, BEAST2_PAGED_BATCH_DEFAULT, BEAST2_PAGED_TARGET_BYTES_DEFAULT, iterBeast2SegmentsFor, Beast2Pages, openBeast2PagesFor, } from "./v5/stream.js";
|
|
27
27
|
export { type Beast2Extents, readBeast2Extents, carveBeast2, spliceBeast2, rebuildBeast2, type RebuildBeast2Options, type Beast2RangeReader, type Beast2SyncRangeReader, type Beast2RangedExtents, type ReadBeast2ExtentsRangedOptions, readBeast2ExtentsRanged, readBeast2ExtentsSync, isBeast2SyncRangeReader, carveBeast2Ranged, spliceBeast2Tail, } from "./v5/geometry.js";
|
|
28
28
|
export { openBeast2LazyFor, isBeast2LazySafe, type Beast2LazySafeOptions } from "./v5/lazy.js";
|
|
29
|
+
import type { Beast2SyncRangeReader } from "./v5/range.js";
|
|
29
30
|
/**
|
|
30
31
|
* Reads the root type a beast2 blob's header declares, without decoding the
|
|
31
32
|
* value.
|
|
@@ -41,6 +42,26 @@ export { openBeast2LazyFor, isBeast2LazySafe, type Beast2LazySafeOptions } from
|
|
|
41
42
|
* section is malformed.
|
|
42
43
|
*/
|
|
43
44
|
export declare function readBeast2Type(data: Uint8Array): EastTypeValue;
|
|
45
|
+
/**
|
|
46
|
+
* Reads the root type a beast2 blob's header declares, through ranged reads
|
|
47
|
+
* instead of the whole blob.
|
|
48
|
+
*
|
|
49
|
+
* The sibling of {@link readBeast2Type}, for a blob too big to hold in memory:
|
|
50
|
+
* a delivered file a caller is about to accept as a dataset, where the point of
|
|
51
|
+
* checking the type is to refuse it *before* paying for its bytes. Both
|
|
52
|
+
* container versions carry the type up front, so one head read normally answers
|
|
53
|
+
* it; a type section wider than the probe costs one more read, never the file.
|
|
54
|
+
*
|
|
55
|
+
* Collection roots have a cheaper and stricter check available in
|
|
56
|
+
* `readBeast2Extents(reader)`, which reads the index too. This one is for the
|
|
57
|
+
* roots that have no index.
|
|
58
|
+
*
|
|
59
|
+
* @param reader - synchronous ranged access to the blob
|
|
60
|
+
* @returns the declared root type
|
|
61
|
+
* @throws {Error} When the blob is not a beast2 container, or its type section
|
|
62
|
+
* is malformed or implausibly large.
|
|
63
|
+
*/
|
|
64
|
+
export declare function readBeast2HeaderType(reader: Beast2SyncRangeReader): EastTypeValue;
|
|
44
65
|
/**
|
|
45
66
|
* Whether a blob carries the v5 trailing paging index (a well-formed
|
|
46
67
|
* index + footer). O(index) — inspects the blob's tail without decoding any
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/serialization/beast2/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;GAOG;AAEH,OAAO,EAAmB,KAAK,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAE5E,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAU,KAAK,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;AAC5E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAiBvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAwB,KAAK,aAAa,EAAE,MAAM,cAAc,CAAC;AAExE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,YAAY,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AACvD,YAAY,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EACL,YAAY,EACZ,KAAK,mBAAmB,EACxB,uBAAuB,EACvB,oBAAoB,EACpB,KAAK,wBAAwB,EAC7B,0BAA0B,EAC1B,iCAAiC,EACjC,qBAAqB,EACrB,WAAW,EACX,kBAAkB,GACnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,KAAK,aAAa,EAClB,iBAAiB,EACjB,WAAW,EACX,YAAY,EACZ,aAAa,EACb,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACtB,KAAK,qBAAqB,EAC1B,KAAK,mBAAmB,EACxB,KAAK,8BAA8B,EACnC,uBAAuB,EACvB,qBAAqB,EACrB,uBAAuB,EACvB,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,KAAK,qBAAqB,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/serialization/beast2/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -45,6 +45,61 @@ export function readBeast2Type(data) {
|
|
|
45
45
|
return readBeast2V4Type(data);
|
|
46
46
|
return readTypeSection(new BufferReader(data, MAGIC_BYTES_V5.length)).rootType;
|
|
47
47
|
}
|
|
48
|
+
/** Head read sizes {@link readBeast2HeaderType} tries, in order. The first
|
|
49
|
+
* covers every type section anything realistic writes; the last is a ceiling,
|
|
50
|
+
* not a budget — a blob whose declared type needs more than 16 MiB of type
|
|
51
|
+
* table is malformed, not merely large. */
|
|
52
|
+
const HEADER_TYPE_PROBE_BYTES = [64 * 1024, 1024 * 1024, 16 * 1024 * 1024];
|
|
53
|
+
/**
|
|
54
|
+
* Reads the root type a beast2 blob's header declares, through ranged reads
|
|
55
|
+
* instead of the whole blob.
|
|
56
|
+
*
|
|
57
|
+
* The sibling of {@link readBeast2Type}, for a blob too big to hold in memory:
|
|
58
|
+
* a delivered file a caller is about to accept as a dataset, where the point of
|
|
59
|
+
* checking the type is to refuse it *before* paying for its bytes. Both
|
|
60
|
+
* container versions carry the type up front, so one head read normally answers
|
|
61
|
+
* it; a type section wider than the probe costs one more read, never the file.
|
|
62
|
+
*
|
|
63
|
+
* Collection roots have a cheaper and stricter check available in
|
|
64
|
+
* `readBeast2Extents(reader)`, which reads the index too. This one is for the
|
|
65
|
+
* roots that have no index.
|
|
66
|
+
*
|
|
67
|
+
* @param reader - synchronous ranged access to the blob
|
|
68
|
+
* @returns the declared root type
|
|
69
|
+
* @throws {Error} When the blob is not a beast2 container, or its type section
|
|
70
|
+
* is malformed or implausibly large.
|
|
71
|
+
*/
|
|
72
|
+
export function readBeast2HeaderType(reader) {
|
|
73
|
+
const size = reader.size;
|
|
74
|
+
if (size < 8) {
|
|
75
|
+
throw new Error(`Data too short for Beast2 format: ${size} bytes`);
|
|
76
|
+
}
|
|
77
|
+
let lastError;
|
|
78
|
+
let read = 0;
|
|
79
|
+
for (const probe of HEADER_TYPE_PROBE_BYTES) {
|
|
80
|
+
const length = Math.min(size, probe);
|
|
81
|
+
if (length <= read && read > 0)
|
|
82
|
+
break;
|
|
83
|
+
read = length;
|
|
84
|
+
const head = reader.read(0, length);
|
|
85
|
+
if (head.length !== length) {
|
|
86
|
+
throw new Error(`beast2: reader returned ${head.length} bytes for a ${length}-byte range at offset 0`);
|
|
87
|
+
}
|
|
88
|
+
try {
|
|
89
|
+
return readBeast2Type(head);
|
|
90
|
+
}
|
|
91
|
+
catch (err) {
|
|
92
|
+
// A short head fails the same way a malformed one does, so grow first
|
|
93
|
+
// and only report the failure once the whole type section must be in
|
|
94
|
+
// hand. `read === size` means it is.
|
|
95
|
+
if (length === size)
|
|
96
|
+
throw err;
|
|
97
|
+
lastError = err;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
throw new Error(`beast2: type section not readable in the first ${read} bytes — ` +
|
|
101
|
+
`${lastError instanceof Error ? lastError.message : String(lastError)}`);
|
|
102
|
+
}
|
|
48
103
|
/**
|
|
49
104
|
* Whether a blob carries the v5 trailing paging index (a well-formed
|
|
50
105
|
* index + footer). O(index) — inspects the blob's tail without decoding any
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/serialization/beast2/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;GAOG;AAEH,OAAO,EAAE,eAAe,EAAsB,MAAM,uBAAuB,CAAC;AAC5E,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAExD,OAAO,EAAE,MAAM,EAAyC,MAAM,aAAa,CAAC;AAE5E,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEtD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAA4B,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,uBAAuB,EACvB,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,sBAAsB,EACtB,cAAc,EACd,uBAAuB,GACxB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,oBAAoB,EAAsB,MAAM,cAAc,CAAC;AAExE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAG/C,OAAO,EACL,YAAY,EAEZ,uBAAuB,EACvB,oBAAoB,EAEpB,0BAA0B,EAC1B,iCAAiC,EACjC,qBAAqB,EACrB,WAAW,EACX,kBAAkB,GACnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAEL,iBAAiB,EACjB,WAAW,EACX,YAAY,EACZ,aAAa,EAMb,uBAAuB,EACvB,qBAAqB,EACrB,uBAAuB,EACvB,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAA8B,MAAM,cAAc,CAAC;AAC/F,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/serialization/beast2/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deflate.d.ts","sourceRoot":"","sources":["../../../../../src/serialization/beast2/v5/deflate.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"deflate.d.ts","sourceRoot":"","sources":["../../../../../src/serialization/beast2/v5/deflate.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAqJH;;;;;;;;;GASG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,UAAU,GAAG,UAAU,CAyGnE"}
|
|
@@ -28,6 +28,14 @@
|
|
|
28
28
|
* shortest distance wins ties.
|
|
29
29
|
* - **Specified window and bit packing**, straight from RFC 1951.
|
|
30
30
|
*
|
|
31
|
+
* What is pinned is the *symbol stream*, not how the bits reach the buffer, so
|
|
32
|
+
* the implementation is free to be fast: {@link BitWriter} accumulates in a
|
|
33
|
+
* machine word and flushes whole bytes rather than stepping bit by bit, Huffman
|
|
34
|
+
* codes are pre-reversed into {@link LL_SYM} so emitting one is a shift and an
|
|
35
|
+
* or, and match candidates are compared four bytes at a time. Each of those is
|
|
36
|
+
* byte-for-byte output-preserving — `deflate.spec.ts` holds this file to a copy
|
|
37
|
+
* of the bit-at-a-time original over structured and random inputs.
|
|
38
|
+
*
|
|
31
39
|
* It compresses less than zlib (~1.6x larger) and that is the price of
|
|
32
40
|
* determinism; it still beats the uncompressed form by ~3.3x on real data.
|
|
33
41
|
*/
|
|
@@ -44,56 +52,107 @@ const LEN_BASE = [3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, 35, 4
|
|
|
44
52
|
const LEN_EXTRA = [0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0];
|
|
45
53
|
const DIST_BASE = [1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577];
|
|
46
54
|
const DIST_EXTRA = [0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13];
|
|
47
|
-
/**
|
|
55
|
+
/** Reverse the low `width` bits of `value`. */
|
|
56
|
+
function reverseBits(value, width) {
|
|
57
|
+
let out = 0;
|
|
58
|
+
for (let i = 0; i < width; i++)
|
|
59
|
+
out |= ((value >>> i) & 1) << (width - 1 - i);
|
|
60
|
+
return out;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* The fixed literal/length code (RFC 1951 §3.2.6), one entry per symbol, packed
|
|
64
|
+
* as `(code reversed within its width) << 4 | width`.
|
|
65
|
+
*
|
|
66
|
+
* Huffman codes go out most-significant bit first while the sink packs
|
|
67
|
+
* least-significant first, so reversing each code once — here — turns emitting
|
|
68
|
+
* one into a single shift-and-or. Widths are 7…9 and codes at most 9 bits, so
|
|
69
|
+
* the pair fits 13 bits. east-c holds the same table as a literal constant.
|
|
70
|
+
*/
|
|
71
|
+
const LL_SYM = (() => {
|
|
72
|
+
const table = new Uint16Array(288);
|
|
73
|
+
for (let sym = 0; sym < 288; sym++) {
|
|
74
|
+
let code;
|
|
75
|
+
let width;
|
|
76
|
+
if (sym <= 143) {
|
|
77
|
+
code = 0x30 + sym;
|
|
78
|
+
width = 8;
|
|
79
|
+
}
|
|
80
|
+
else if (sym <= 255) {
|
|
81
|
+
code = 0x190 + sym - 144;
|
|
82
|
+
width = 9;
|
|
83
|
+
}
|
|
84
|
+
else if (sym <= 279) {
|
|
85
|
+
code = sym - 256;
|
|
86
|
+
width = 7;
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
code = 0xC0 + sym - 280;
|
|
90
|
+
width = 8;
|
|
91
|
+
}
|
|
92
|
+
table[sym] = (reverseBits(code, width) << 4) | width;
|
|
93
|
+
}
|
|
94
|
+
return table;
|
|
95
|
+
})();
|
|
96
|
+
/** The fixed distance code: five bits, reversed the same way. */
|
|
97
|
+
const DIST_CODE = (() => {
|
|
98
|
+
const table = new Uint8Array(30);
|
|
99
|
+
for (let d = 0; d < 30; d++)
|
|
100
|
+
table[d] = reverseBits(d, 5);
|
|
101
|
+
return table;
|
|
102
|
+
})();
|
|
103
|
+
/**
|
|
104
|
+
* LSB-first bit sink, as DEFLATE requires.
|
|
105
|
+
*
|
|
106
|
+
* Bits accumulate in `acc` and leave two bytes at a time. No field written here
|
|
107
|
+
* is wider than 13 bits and a flush leaves fewer than 16 live, so `acc` never
|
|
108
|
+
* reaches bit 31 and stays a small non-negative int32.
|
|
109
|
+
*/
|
|
48
110
|
class BitWriter {
|
|
49
111
|
buf;
|
|
50
112
|
len = 0;
|
|
51
|
-
|
|
52
|
-
|
|
113
|
+
acc = 0;
|
|
114
|
+
nbits = 0;
|
|
53
115
|
constructor(capacity) {
|
|
54
116
|
this.buf = new Uint8Array(Math.max(64, capacity));
|
|
55
117
|
}
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
this.buf
|
|
118
|
+
grow(need) {
|
|
119
|
+
let capacity = this.buf.length;
|
|
120
|
+
while (capacity < need)
|
|
121
|
+
capacity *= 2;
|
|
122
|
+
const grown = new Uint8Array(capacity);
|
|
123
|
+
grown.set(this.buf);
|
|
124
|
+
this.buf = grown;
|
|
63
125
|
}
|
|
64
126
|
/** Write `count` low bits of `value`, least-significant bit first. */
|
|
65
127
|
writeBits(value, count) {
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
this.
|
|
71
|
-
|
|
72
|
-
|
|
128
|
+
this.acc |= (value & ((1 << count) - 1)) << this.nbits;
|
|
129
|
+
this.nbits += count;
|
|
130
|
+
if (this.nbits >= 16) {
|
|
131
|
+
if (this.len + 2 > this.buf.length)
|
|
132
|
+
this.grow(this.len + 2);
|
|
133
|
+
this.buf[this.len++] = this.acc & 0xff;
|
|
134
|
+
this.buf[this.len++] = (this.acc >>> 8) & 0xff;
|
|
135
|
+
this.acc >>>= 16;
|
|
136
|
+
this.nbits -= 16;
|
|
73
137
|
}
|
|
74
138
|
}
|
|
75
|
-
/**
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
139
|
+
/** Emit a literal/length symbol in the fixed code. */
|
|
140
|
+
writeLitLen(sym) {
|
|
141
|
+
const entry = LL_SYM[sym];
|
|
142
|
+
this.writeBits(entry >>> 4, entry & 15);
|
|
79
143
|
}
|
|
144
|
+
/** Flush the tail, zero-padding the final partial byte. */
|
|
80
145
|
finish() {
|
|
81
|
-
|
|
82
|
-
this.
|
|
146
|
+
while (this.nbits > 0) {
|
|
147
|
+
if (this.len + 1 > this.buf.length)
|
|
148
|
+
this.grow(this.len + 1);
|
|
149
|
+
this.buf[this.len++] = this.acc & 0xff;
|
|
150
|
+
this.acc >>>= 8;
|
|
151
|
+
this.nbits -= 8;
|
|
152
|
+
}
|
|
83
153
|
return this.buf.subarray(0, this.len);
|
|
84
154
|
}
|
|
85
155
|
}
|
|
86
|
-
/** Emit a literal/length symbol in the fixed code (RFC 1951 §3.2.6). */
|
|
87
|
-
function writeLitLen(bw, sym) {
|
|
88
|
-
if (sym <= 143)
|
|
89
|
-
bw.writeCode(0x30 + sym, 8);
|
|
90
|
-
else if (sym <= 255)
|
|
91
|
-
bw.writeCode(0x190 + sym - 144, 9);
|
|
92
|
-
else if (sym <= 279)
|
|
93
|
-
bw.writeCode(sym - 256, 7);
|
|
94
|
-
else
|
|
95
|
-
bw.writeCode(0xC0 + sym - 280, 8);
|
|
96
|
-
}
|
|
97
156
|
/**
|
|
98
157
|
* Compresses `src` to a raw DEFLATE stream, deterministically.
|
|
99
158
|
*
|
|
@@ -111,6 +170,7 @@ export function deterministicDeflateRaw(src) {
|
|
|
111
170
|
const head = new Int32Array(HASH_SIZE).fill(-1);
|
|
112
171
|
const prev = new Int32Array(src.length > 0 ? src.length : 1).fill(-1);
|
|
113
172
|
const n = src.length;
|
|
173
|
+
const view = new DataView(src.buffer, src.byteOffset, src.byteLength);
|
|
114
174
|
const hashAt = (i) => ((src[i] << 10) ^ (src[i + 1] << 5) ^ src[i + 2]) & HASH_MASK;
|
|
115
175
|
const insert = (i) => {
|
|
116
176
|
if (i + MIN_MATCH > n)
|
|
@@ -119,28 +179,62 @@ export function deterministicDeflateRaw(src) {
|
|
|
119
179
|
prev[i] = head[h];
|
|
120
180
|
head[h] = i;
|
|
121
181
|
};
|
|
182
|
+
/**
|
|
183
|
+
* Length of the common prefix of `src` at `a` and at `b`, capped at `max` —
|
|
184
|
+
* the same number a byte-at-a-time loop gives, which is what the output's
|
|
185
|
+
* determinism rests on.
|
|
186
|
+
*/
|
|
187
|
+
const matchLen = (a, b, max) => {
|
|
188
|
+
let len = 0;
|
|
189
|
+
while (len + 4 <= max) {
|
|
190
|
+
const x = view.getUint32(a + len, true);
|
|
191
|
+
const y = view.getUint32(b + len, true);
|
|
192
|
+
if (x !== y) {
|
|
193
|
+
const diff = x ^ y;
|
|
194
|
+
// Isolate the lowest differing bit; its byte is the first mismatch,
|
|
195
|
+
// because the words were loaded little-endian.
|
|
196
|
+
return len + ((31 - Math.clz32(diff & -diff)) >> 3);
|
|
197
|
+
}
|
|
198
|
+
len += 4;
|
|
199
|
+
}
|
|
200
|
+
while (len < max && src[a + len] === src[b + len])
|
|
201
|
+
len++;
|
|
202
|
+
return len;
|
|
203
|
+
};
|
|
122
204
|
let pos = 0;
|
|
123
205
|
while (pos < n) {
|
|
124
206
|
let bestLen = 0;
|
|
125
207
|
let bestDist = 0;
|
|
208
|
+
// The position's hash, computed at most once per position: the chain head
|
|
209
|
+
// and the literal-path insert below both want it, and on data that does not
|
|
210
|
+
// compress that insert is the whole inner loop. -1 while `pos` is in the
|
|
211
|
+
// last two bytes, which are never hashed.
|
|
212
|
+
let hash = -1;
|
|
126
213
|
if (pos + MIN_MATCH <= n) {
|
|
127
|
-
|
|
214
|
+
hash = hashAt(pos);
|
|
215
|
+
let cand = head[hash];
|
|
128
216
|
let chain = 0;
|
|
129
217
|
const maxLen = Math.min(MAX_MATCH, n - pos);
|
|
130
218
|
while (cand >= 0 && chain++ < MAX_CHAIN) {
|
|
131
219
|
const dist = pos - cand;
|
|
132
220
|
if (dist > WINDOW)
|
|
133
221
|
break;
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
//
|
|
138
|
-
//
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
222
|
+
// A candidate can only matter by beating `bestLen`, which needs it to
|
|
223
|
+
// match at index `bestLen` — so one compare rejects nearly every
|
|
224
|
+
// candidate on data that does not compress. Rejecting it here is
|
|
225
|
+
// exactly what the length loop would have done, so the symbol stream
|
|
226
|
+
// is untouched. (`bestLen < maxLen` inside the loop, so both reads are
|
|
227
|
+
// in bounds.)
|
|
228
|
+
if (src[cand + bestLen] === src[pos + bestLen]) {
|
|
229
|
+
const len = matchLen(cand, pos, maxLen);
|
|
230
|
+
// Strictly greater: among equal-length matches the nearest wins,
|
|
231
|
+
// which is part of what makes the output reproducible.
|
|
232
|
+
if (len > bestLen) {
|
|
233
|
+
bestLen = len;
|
|
234
|
+
bestDist = dist;
|
|
235
|
+
if (len === maxLen)
|
|
236
|
+
break;
|
|
237
|
+
}
|
|
144
238
|
}
|
|
145
239
|
cand = prev[cand];
|
|
146
240
|
}
|
|
@@ -149,24 +243,27 @@ export function deterministicDeflateRaw(src) {
|
|
|
149
243
|
let lc = 0;
|
|
150
244
|
while (lc < 28 && LEN_BASE[lc + 1] <= bestLen)
|
|
151
245
|
lc++;
|
|
152
|
-
writeLitLen(
|
|
246
|
+
bw.writeLitLen(257 + lc);
|
|
153
247
|
bw.writeBits(bestLen - LEN_BASE[lc], LEN_EXTRA[lc]);
|
|
154
248
|
let dc = 0;
|
|
155
249
|
while (dc < 29 && DIST_BASE[dc + 1] <= bestDist)
|
|
156
250
|
dc++;
|
|
157
|
-
bw.
|
|
251
|
+
bw.writeBits(DIST_CODE[dc], 5);
|
|
158
252
|
bw.writeBits(bestDist - DIST_BASE[dc], DIST_EXTRA[dc]);
|
|
159
253
|
for (let i = 0; i < bestLen; i++)
|
|
160
254
|
insert(pos + i);
|
|
161
255
|
pos += bestLen;
|
|
162
256
|
}
|
|
163
257
|
else {
|
|
164
|
-
writeLitLen(
|
|
165
|
-
|
|
258
|
+
bw.writeLitLen(src[pos]);
|
|
259
|
+
if (hash >= 0) {
|
|
260
|
+
prev[pos] = head[hash];
|
|
261
|
+
head[hash] = pos;
|
|
262
|
+
}
|
|
166
263
|
pos++;
|
|
167
264
|
}
|
|
168
265
|
}
|
|
169
|
-
writeLitLen(
|
|
266
|
+
bw.writeLitLen(256); // end of block
|
|
170
267
|
return bw.finish();
|
|
171
268
|
}
|
|
172
269
|
//# sourceMappingURL=deflate.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deflate.js","sourceRoot":"","sources":["../../../../../src/serialization/beast2/v5/deflate.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH
|
|
1
|
+
{"version":3,"file":"deflate.js","sourceRoot":"","sources":["../../../../../src/serialization/beast2/v5/deflate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deflate.spec.d.ts","sourceRoot":"","sources":["../../../../../src/serialization/beast2/v5/deflate.spec.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|