@elaraai/east 1.0.45 → 1.0.47
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/containers/sortedmap.d.ts +22 -0
- package/dist/src/containers/sortedmap.d.ts.map +1 -1
- package/dist/src/containers/sortedmap.js +31 -2
- package/dist/src/containers/sortedmap.js.map +1 -1
- package/dist/src/containers/sortedset.d.ts +22 -0
- package/dist/src/containers/sortedset.d.ts.map +1 -1
- package/dist/src/containers/sortedset.js +31 -2
- package/dist/src/containers/sortedset.js.map +1 -1
- package/dist/src/expr/blob.d.ts +6 -1
- package/dist/src/expr/blob.d.ts.map +1 -1
- package/dist/src/expr/blob.js +6 -1
- package/dist/src/expr/blob.js.map +1 -1
- package/dist/src/expr/libs/blob.d.ts +10 -1
- package/dist/src/expr/libs/blob.d.ts.map +1 -1
- package/dist/src/expr/libs/blob.js +10 -1
- package/dist/src/expr/libs/blob.js.map +1 -1
- package/dist/src/fuzz.d.ts.map +1 -1
- package/dist/src/fuzz.js +11 -2
- package/dist/src/fuzz.js.map +1 -1
- package/dist/src/serialization/beast2/index.d.ts +76 -22
- package/dist/src/serialization/beast2/index.d.ts.map +1 -1
- package/dist/src/serialization/beast2/index.js +87 -720
- package/dist/src/serialization/beast2/index.js.map +1 -1
- package/dist/src/serialization/beast2/index.spec.js +147 -4
- package/dist/src/serialization/beast2/index.spec.js.map +1 -1
- package/dist/src/serialization/beast2/shared.d.ts +79 -0
- package/dist/src/serialization/beast2/shared.d.ts.map +1 -0
- package/dist/src/serialization/beast2/shared.js +143 -0
- package/dist/src/serialization/beast2/shared.js.map +1 -0
- package/dist/src/serialization/beast2/v4/container.d.ts +67 -0
- package/dist/src/serialization/beast2/v4/container.d.ts.map +1 -0
- package/dist/src/serialization/beast2/v4/container.js +727 -0
- package/dist/src/serialization/beast2/v4/container.js.map +1 -0
- package/dist/src/serialization/beast2/{sourcemap-table.d.ts → v4/sourcemap-table.d.ts} +2 -2
- package/dist/src/serialization/beast2/v4/sourcemap-table.d.ts.map +1 -0
- package/dist/src/serialization/beast2/{sourcemap-table.js → v4/sourcemap-table.js} +2 -2
- package/dist/src/serialization/beast2/v4/sourcemap-table.js.map +1 -0
- package/dist/src/serialization/beast2/{string-table.d.ts → v4/string-table.d.ts} +1 -1
- package/dist/src/serialization/beast2/v4/string-table.d.ts.map +1 -0
- package/dist/src/serialization/beast2/{string-table.js → v4/string-table.js} +1 -1
- package/dist/src/serialization/beast2/v4/string-table.js.map +1 -0
- package/dist/src/serialization/beast2/{type-table.d.ts → v4/type-table.d.ts} +6 -4
- package/dist/src/serialization/beast2/v4/type-table.d.ts.map +1 -0
- package/dist/src/serialization/beast2/{type-table.js → v4/type-table.js} +103 -10
- package/dist/src/serialization/beast2/v4/type-table.js.map +1 -0
- package/dist/src/serialization/beast2/{value-table.d.ts → v4/value-table.d.ts} +2 -2
- package/dist/src/serialization/beast2/v4/value-table.d.ts.map +1 -0
- package/dist/src/serialization/beast2/{value-table.js → v4/value-table.js} +3 -3
- package/dist/src/serialization/beast2/v4/value-table.js.map +1 -0
- package/dist/src/serialization/beast2/v5/codec.d.ts +213 -0
- package/dist/src/serialization/beast2/v5/codec.d.ts.map +1 -0
- package/dist/src/serialization/beast2/v5/codec.js +954 -0
- package/dist/src/serialization/beast2/v5/codec.js.map +1 -0
- package/dist/src/serialization/beast2/v5/deflate.d.ts +16 -0
- package/dist/src/serialization/beast2/v5/deflate.d.ts.map +1 -0
- package/dist/src/serialization/beast2/v5/deflate.js +172 -0
- package/dist/src/serialization/beast2/v5/deflate.js.map +1 -0
- package/dist/src/serialization/beast2/v5/frames.d.ts +150 -0
- package/dist/src/serialization/beast2/v5/frames.d.ts.map +1 -0
- package/dist/src/serialization/beast2/v5/frames.js +284 -0
- package/dist/src/serialization/beast2/v5/frames.js.map +1 -0
- package/dist/src/serialization/beast2/v5/index.spec.d.ts +6 -0
- package/dist/src/serialization/beast2/v5/index.spec.d.ts.map +1 -0
- package/dist/src/serialization/beast2/v5/index.spec.js +484 -0
- package/dist/src/serialization/beast2/v5/index.spec.js.map +1 -0
- package/dist/src/serialization/beast2/v5/stream.d.ts +177 -0
- package/dist/src/serialization/beast2/v5/stream.d.ts.map +1 -0
- package/dist/src/serialization/beast2/v5/stream.js +447 -0
- package/dist/src/serialization/beast2/v5/stream.js.map +1 -0
- package/dist/src/serialization/beast2/v5/type-section.d.ts +81 -0
- package/dist/src/serialization/beast2/v5/type-section.d.ts.map +1 -0
- package/dist/src/serialization/beast2/v5/type-section.js +211 -0
- package/dist/src/serialization/beast2/v5/type-section.js.map +1 -0
- package/dist/src/serialization/beast2/version.d.ts +40 -0
- package/dist/src/serialization/beast2/version.d.ts.map +1 -0
- package/dist/src/serialization/beast2/version.js +23 -0
- package/dist/src/serialization/beast2/version.js.map +1 -0
- 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
- package/dist/src/serialization/beast2/sourcemap-table.d.ts.map +0 -1
- package/dist/src/serialization/beast2/sourcemap-table.js.map +0 -1
- package/dist/src/serialization/beast2/string-table.d.ts.map +0 -1
- package/dist/src/serialization/beast2/string-table.js.map +0 -1
- package/dist/src/serialization/beast2/type-table.d.ts.map +0 -1
- package/dist/src/serialization/beast2/type-table.js.map +0 -1
- package/dist/src/serialization/beast2/value-table.d.ts.map +0 -1
- package/dist/src/serialization/beast2/value-table.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"codec.js","sourceRoot":"","sources":["../../../../../src/serialization/beast2/v5/codec.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2025 Elara AI Pty Ltd
|
|
3
|
+
* Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Compresses `src` to a raw DEFLATE stream, deterministically.
|
|
7
|
+
*
|
|
8
|
+
* The output is a pure function of the input — byte-identical to east-c's
|
|
9
|
+
* implementation of the same specified algorithm — and is ordinary RFC 1951
|
|
10
|
+
* DEFLATE, so any standard inflate reads it.
|
|
11
|
+
*
|
|
12
|
+
* @param src - the bytes to compress
|
|
13
|
+
* @returns a raw DEFLATE stream (no zlib header, no trailer)
|
|
14
|
+
*/
|
|
15
|
+
export declare function deterministicDeflateRaw(src: Uint8Array): Uint8Array;
|
|
16
|
+
//# sourceMappingURL=deflate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deflate.d.ts","sourceRoot":"","sources":["../../../../../src/serialization/beast2/v5/deflate.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA+FH;;;;;;;;;GASG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,UAAU,GAAG,UAAU,CAkEnE"}
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2025 Elara AI Pty Ltd
|
|
3
|
+
* Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Deterministic DEFLATE encoder for beast2 v5 frames.
|
|
7
|
+
*
|
|
8
|
+
* **Why we ship our own encoder.** Inflate is universally interoperable — any
|
|
9
|
+
* valid RFC 1951 stream decodes identically under zlib, zlib-ng, miniz and the
|
|
10
|
+
* browser's `DecompressionStream`. Deflate is not: every library picks its own
|
|
11
|
+
* match finding and Huffman trees, so the same input compresses to different
|
|
12
|
+
* (all valid) bytes. Measured: miniz, node's zlib and CPython's zlib disagree
|
|
13
|
+
* three ways on identical input. Since e3 content-addresses beast2 bytes, an
|
|
14
|
+
* implementation-defined encoder would give one logical value several hashes
|
|
15
|
+
* depending on which runtime wrote it — splitting caches and duplicating
|
|
16
|
+
* objects.
|
|
17
|
+
*
|
|
18
|
+
* So beast2 pins the *encoder*, not the library: this algorithm is specified
|
|
19
|
+
* in v5/SPEC.md and implemented identically here and in east-c (east-py reaches
|
|
20
|
+
* it through the C bridge). Output is a pure function of the input. Decoders
|
|
21
|
+
* stay liberal and simply inflate, so nothing downstream needs porting.
|
|
22
|
+
*
|
|
23
|
+
* The three things implementations disagree on are all pinned here:
|
|
24
|
+
* - **Fixed Huffman blocks** (`BTYPE=01`) — no dynamic tree construction,
|
|
25
|
+
* which is the largest source of divergence.
|
|
26
|
+
* - **A specified match finder** — 3-byte hash of fixed width, chains bounded
|
|
27
|
+
* at {@link MAX_CHAIN}, greedy with a strictly-greater comparison so the
|
|
28
|
+
* shortest distance wins ties.
|
|
29
|
+
* - **Specified window and bit packing**, straight from RFC 1951.
|
|
30
|
+
*
|
|
31
|
+
* It compresses less than zlib (~1.6x larger) and that is the price of
|
|
32
|
+
* determinism; it still beats the uncompressed form by ~3.3x on real data.
|
|
33
|
+
*/
|
|
34
|
+
const WINDOW = 32768;
|
|
35
|
+
const MIN_MATCH = 3;
|
|
36
|
+
const MAX_MATCH = 258;
|
|
37
|
+
const HASH_BITS = 15;
|
|
38
|
+
const HASH_SIZE = 1 << HASH_BITS;
|
|
39
|
+
const HASH_MASK = HASH_SIZE - 1;
|
|
40
|
+
/** Match-chain bound. Pinned by the format: it caps work AND fixes the output. */
|
|
41
|
+
const MAX_CHAIN = 32;
|
|
42
|
+
// RFC 1951 §3.2.5 length and distance tables.
|
|
43
|
+
const LEN_BASE = [3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258];
|
|
44
|
+
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
|
+
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
|
+
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
|
+
/** LSB-first bit sink, as DEFLATE requires. */
|
|
48
|
+
class BitWriter {
|
|
49
|
+
buf;
|
|
50
|
+
len = 0;
|
|
51
|
+
cur = 0;
|
|
52
|
+
bit = 0;
|
|
53
|
+
constructor(capacity) {
|
|
54
|
+
this.buf = new Uint8Array(Math.max(64, capacity));
|
|
55
|
+
}
|
|
56
|
+
push(byte) {
|
|
57
|
+
if (this.len === this.buf.length) {
|
|
58
|
+
const grown = new Uint8Array(this.buf.length * 2);
|
|
59
|
+
grown.set(this.buf);
|
|
60
|
+
this.buf = grown;
|
|
61
|
+
}
|
|
62
|
+
this.buf[this.len++] = byte;
|
|
63
|
+
}
|
|
64
|
+
/** Write `count` low bits of `value`, least-significant bit first. */
|
|
65
|
+
writeBits(value, count) {
|
|
66
|
+
for (let i = 0; i < count; i++) {
|
|
67
|
+
this.cur |= ((value >> i) & 1) << this.bit;
|
|
68
|
+
if (++this.bit === 8) {
|
|
69
|
+
this.push(this.cur);
|
|
70
|
+
this.cur = 0;
|
|
71
|
+
this.bit = 0;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
/** Write a Huffman code, most-significant bit of the code first. */
|
|
76
|
+
writeCode(code, bits) {
|
|
77
|
+
for (let i = bits - 1; i >= 0; i--)
|
|
78
|
+
this.writeBits((code >> i) & 1, 1);
|
|
79
|
+
}
|
|
80
|
+
finish() {
|
|
81
|
+
if (this.bit > 0)
|
|
82
|
+
this.push(this.cur);
|
|
83
|
+
return this.buf.subarray(0, this.len);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
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
|
+
/**
|
|
98
|
+
* Compresses `src` to a raw DEFLATE stream, deterministically.
|
|
99
|
+
*
|
|
100
|
+
* The output is a pure function of the input — byte-identical to east-c's
|
|
101
|
+
* implementation of the same specified algorithm — and is ordinary RFC 1951
|
|
102
|
+
* DEFLATE, so any standard inflate reads it.
|
|
103
|
+
*
|
|
104
|
+
* @param src - the bytes to compress
|
|
105
|
+
* @returns a raw DEFLATE stream (no zlib header, no trailer)
|
|
106
|
+
*/
|
|
107
|
+
export function deterministicDeflateRaw(src) {
|
|
108
|
+
const bw = new BitWriter(Math.max(64, src.length >> 1));
|
|
109
|
+
bw.writeBits(1, 1); // BFINAL — beast2 frames are a single block
|
|
110
|
+
bw.writeBits(1, 2); // BTYPE = 01, fixed Huffman
|
|
111
|
+
const head = new Int32Array(HASH_SIZE).fill(-1);
|
|
112
|
+
const prev = new Int32Array(src.length > 0 ? src.length : 1).fill(-1);
|
|
113
|
+
const n = src.length;
|
|
114
|
+
const hashAt = (i) => ((src[i] << 10) ^ (src[i + 1] << 5) ^ src[i + 2]) & HASH_MASK;
|
|
115
|
+
const insert = (i) => {
|
|
116
|
+
if (i + MIN_MATCH > n)
|
|
117
|
+
return;
|
|
118
|
+
const h = hashAt(i);
|
|
119
|
+
prev[i] = head[h];
|
|
120
|
+
head[h] = i;
|
|
121
|
+
};
|
|
122
|
+
let pos = 0;
|
|
123
|
+
while (pos < n) {
|
|
124
|
+
let bestLen = 0;
|
|
125
|
+
let bestDist = 0;
|
|
126
|
+
if (pos + MIN_MATCH <= n) {
|
|
127
|
+
let cand = head[hashAt(pos)];
|
|
128
|
+
let chain = 0;
|
|
129
|
+
const maxLen = Math.min(MAX_MATCH, n - pos);
|
|
130
|
+
while (cand >= 0 && chain++ < MAX_CHAIN) {
|
|
131
|
+
const dist = pos - cand;
|
|
132
|
+
if (dist > WINDOW)
|
|
133
|
+
break;
|
|
134
|
+
let len = 0;
|
|
135
|
+
while (len < maxLen && src[cand + len] === src[pos + len])
|
|
136
|
+
len++;
|
|
137
|
+
// Strictly greater: among equal-length matches the nearest wins,
|
|
138
|
+
// which is part of what makes the output reproducible.
|
|
139
|
+
if (len > bestLen) {
|
|
140
|
+
bestLen = len;
|
|
141
|
+
bestDist = dist;
|
|
142
|
+
if (len === maxLen)
|
|
143
|
+
break;
|
|
144
|
+
}
|
|
145
|
+
cand = prev[cand];
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
if (bestLen >= MIN_MATCH) {
|
|
149
|
+
let lc = 0;
|
|
150
|
+
while (lc < 28 && LEN_BASE[lc + 1] <= bestLen)
|
|
151
|
+
lc++;
|
|
152
|
+
writeLitLen(bw, 257 + lc);
|
|
153
|
+
bw.writeBits(bestLen - LEN_BASE[lc], LEN_EXTRA[lc]);
|
|
154
|
+
let dc = 0;
|
|
155
|
+
while (dc < 29 && DIST_BASE[dc + 1] <= bestDist)
|
|
156
|
+
dc++;
|
|
157
|
+
bw.writeCode(dc, 5);
|
|
158
|
+
bw.writeBits(bestDist - DIST_BASE[dc], DIST_EXTRA[dc]);
|
|
159
|
+
for (let i = 0; i < bestLen; i++)
|
|
160
|
+
insert(pos + i);
|
|
161
|
+
pos += bestLen;
|
|
162
|
+
}
|
|
163
|
+
else {
|
|
164
|
+
writeLitLen(bw, src[pos]);
|
|
165
|
+
insert(pos);
|
|
166
|
+
pos++;
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
writeLitLen(bw, 256); // end of block
|
|
170
|
+
return bw.finish();
|
|
171
|
+
}
|
|
172
|
+
//# sourceMappingURL=deflate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deflate.js","sourceRoot":"","sources":["../../../../../src/serialization/beast2/v5/deflate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2025 Elara AI Pty Ltd
|
|
3
|
+
* Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Beast2 v5 frame layer — the on-wire transport of the value stream.
|
|
7
|
+
*
|
|
8
|
+
* The v5 value stream is a sequence of frames; the concatenation of the
|
|
9
|
+
* decompressed frame payloads forms the logical value encoding. Each frame:
|
|
10
|
+
*
|
|
11
|
+
* varint(codec_id) varint(uncompressed_len) varint(payload_len) payload
|
|
12
|
+
*
|
|
13
|
+
* Codec 0 (`none`) stores the logical bytes raw (`payload_len` must equal
|
|
14
|
+
* `uncompressed_len`); codec 1 (`deflate`) stores a raw DEFLATE (RFC 1951)
|
|
15
|
+
* stream that must inflate to exactly `uncompressed_len` bytes. Codec 2 is
|
|
16
|
+
* reserved for zstd. Writers choose a codec per frame, so a blob may mix
|
|
17
|
+
* compressed and uncompressed frames.
|
|
18
|
+
*
|
|
19
|
+
* Deflate uses Node's zlib when available (loaded via
|
|
20
|
+
* `process.getBuiltinModule`, which browser bundlers ignore); browsers fall
|
|
21
|
+
* back to the async `CompressionStream`/`DecompressionStream` path used by
|
|
22
|
+
* the async decode entry points.
|
|
23
|
+
*/
|
|
24
|
+
import { BufferWriter, BufferReader } from "../../binary-utils.js";
|
|
25
|
+
/** Codec id: store logical bytes uncompressed. */
|
|
26
|
+
export declare const CODEC_NONE = 0;
|
|
27
|
+
/** Codec id: raw DEFLATE (RFC 1951). The mandatory baseline codec. */
|
|
28
|
+
export declare const CODEC_DEFLATE = 1;
|
|
29
|
+
/** Codec id reserved for zstd — not yet implemented by any runtime. */
|
|
30
|
+
export declare const CODEC_ZSTD = 2;
|
|
31
|
+
/** Codec names accepted by the encode entry points. */
|
|
32
|
+
export type Beast2Codec = "none" | "deflate";
|
|
33
|
+
/** Frames with payloads below this size are stored uncompressed. */
|
|
34
|
+
export declare const COMPRESSION_THRESHOLD = 64;
|
|
35
|
+
/** Upper bound on a single frame's uncompressed length (1 GiB) — guards
|
|
36
|
+
* against decompression bombs and absurd allocations on corrupt input. */
|
|
37
|
+
export declare const MAX_FRAME_UNCOMPRESSED: number;
|
|
38
|
+
/** Resolves a codec name to its wire id. */
|
|
39
|
+
export declare function codecId(codec: Beast2Codec): number;
|
|
40
|
+
/**
|
|
41
|
+
* Compresses logical bytes with raw DEFLATE.
|
|
42
|
+
*
|
|
43
|
+
* Uses beast2's own specified encoder rather than the platform's zlib, so the
|
|
44
|
+
* bytes are identical in every runtime — see `./deflate.ts` for why that
|
|
45
|
+
* matters (content-addressing) and how the algorithm is pinned. It needs no
|
|
46
|
+
* platform support at all, so browsers can compress too.
|
|
47
|
+
*
|
|
48
|
+
* @param data - the logical bytes to compress
|
|
49
|
+
* @returns the raw DEFLATE stream
|
|
50
|
+
*/
|
|
51
|
+
export declare function deflateRawSync(data: Uint8Array): Uint8Array;
|
|
52
|
+
/**
|
|
53
|
+
* Decompresses a raw DEFLATE frame payload synchronously.
|
|
54
|
+
*
|
|
55
|
+
* @param payload - the compressed frame payload
|
|
56
|
+
* @param uncompressedLen - the expected logical byte length from the frame header
|
|
57
|
+
* @returns the logical bytes
|
|
58
|
+
* @throws {Error} When zlib is unavailable (browsers — use the async decode
|
|
59
|
+
* entry points), the stream is corrupt, or the output length mismatches.
|
|
60
|
+
*/
|
|
61
|
+
export declare function inflateRawSync(payload: Uint8Array, uncompressedLen: number): Uint8Array;
|
|
62
|
+
/**
|
|
63
|
+
* Decompresses a raw DEFLATE frame payload asynchronously via
|
|
64
|
+
* `DecompressionStream("deflate-raw")` — the browser path.
|
|
65
|
+
*
|
|
66
|
+
* @param payload - the compressed frame payload
|
|
67
|
+
* @param uncompressedLen - the expected logical byte length from the frame header
|
|
68
|
+
* @returns the logical bytes
|
|
69
|
+
* @throws {Error} When the stream is corrupt or the output length mismatches.
|
|
70
|
+
*/
|
|
71
|
+
export declare function inflateRawAsync(payload: Uint8Array, uncompressedLen: number): Promise<Uint8Array>;
|
|
72
|
+
/**
|
|
73
|
+
* Writes one frame carrying the given logical bytes.
|
|
74
|
+
*
|
|
75
|
+
* Small payloads (below {@link COMPRESSION_THRESHOLD}) and payloads that
|
|
76
|
+
* deflate fails to shrink are stored with codec `none` regardless of the
|
|
77
|
+
* requested codec — the codec id is a per-frame writer choice.
|
|
78
|
+
*
|
|
79
|
+
* @param out - the wire-level writer to append the frame to
|
|
80
|
+
* @param logical - the logical bytes this frame carries
|
|
81
|
+
* @param codec - the requested codec for this frame
|
|
82
|
+
*/
|
|
83
|
+
export declare function writeFrame(out: BufferWriter, logical: Uint8Array, codec: Beast2Codec): void;
|
|
84
|
+
/** A parsed frame header plus the payload's wire position. */
|
|
85
|
+
export interface FrameHeader {
|
|
86
|
+
codec: number;
|
|
87
|
+
uncompressedLen: number;
|
|
88
|
+
payloadLen: number;
|
|
89
|
+
/** Wire offset of the first payload byte. */
|
|
90
|
+
payloadOffset: number;
|
|
91
|
+
/** Wire offset of the byte after the payload (the next frame). */
|
|
92
|
+
endOffset: number;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Parses one frame header at `offset` and validates its bounds.
|
|
96
|
+
*
|
|
97
|
+
* @param data - the whole blob
|
|
98
|
+
* @param offset - wire offset of the frame's first byte
|
|
99
|
+
* @returns the parsed header
|
|
100
|
+
* @throws {Error} When the header is truncated, the codec is unknown, the
|
|
101
|
+
* lengths are inconsistent, or the payload runs past the end of input.
|
|
102
|
+
*/
|
|
103
|
+
export declare function readFrameHeader(data: Uint8Array, offset: number): FrameHeader;
|
|
104
|
+
/**
|
|
105
|
+
* Sequential reader over the value stream's frames, yielding one
|
|
106
|
+
* {@link BufferReader} per logical chunk.
|
|
107
|
+
*
|
|
108
|
+
* The driver decides when to stop pulling frames — the logical value encoding
|
|
109
|
+
* is self-terminating, so bytes after the last consumed frame (the optional
|
|
110
|
+
* index and footer) are never touched by this reader.
|
|
111
|
+
*/
|
|
112
|
+
export declare class FrameReader {
|
|
113
|
+
/** Wire offset of the next unread frame (after the last consumed one). */
|
|
114
|
+
wireOffset: number;
|
|
115
|
+
/** Wire offsets of each consumed frame's first byte, in order. */
|
|
116
|
+
readonly frameOffsets: number[];
|
|
117
|
+
private readonly data;
|
|
118
|
+
private readonly inflate;
|
|
119
|
+
/**
|
|
120
|
+
* @param data - the whole blob
|
|
121
|
+
* @param offset - wire offset of the first value-stream frame
|
|
122
|
+
* @param inflate - decompressor for deflate frames (defaults to the sync
|
|
123
|
+
* zlib binding; the async decode path pre-inflates and injects a lookup)
|
|
124
|
+
*/
|
|
125
|
+
constructor(data: Uint8Array, offset: number, inflate?: FrameInflate);
|
|
126
|
+
/** Whether another frame could start here (any unread bytes remain). */
|
|
127
|
+
hasBytes(): boolean;
|
|
128
|
+
/**
|
|
129
|
+
* Consumes the next frame and returns a reader over its logical chunk.
|
|
130
|
+
*
|
|
131
|
+
* @returns a reader positioned at the chunk's first byte
|
|
132
|
+
* @throws {Error} When no bytes remain or the frame is malformed.
|
|
133
|
+
*/
|
|
134
|
+
next(): BufferReader;
|
|
135
|
+
}
|
|
136
|
+
/** Decompressor signature used by {@link FrameReader}: receives the payload,
|
|
137
|
+
* the declared uncompressed length, and the frame's wire start offset. */
|
|
138
|
+
export type FrameInflate = (payload: Uint8Array, uncompressedLen: number, frameStart: number) => Uint8Array;
|
|
139
|
+
/**
|
|
140
|
+
* Pre-inflates every deflate frame from `offset` to the end of input
|
|
141
|
+
* asynchronously and returns an inflate lookup keyed by frame start offset —
|
|
142
|
+
* the browser decode path pairs this with a {@link FrameReader} and then runs
|
|
143
|
+
* the ordinary synchronous decode.
|
|
144
|
+
*
|
|
145
|
+
* @param data - the whole blob
|
|
146
|
+
* @param offset - wire offset of the first value-stream frame
|
|
147
|
+
* @returns an inflate function serving the precomputed chunks
|
|
148
|
+
*/
|
|
149
|
+
export declare function preInflateFrames(data: Uint8Array, offset: number): Promise<FrameInflate>;
|
|
150
|
+
//# sourceMappingURL=frames.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"frames.d.ts","sourceRoot":"","sources":["../../../../../src/serialization/beast2/v5/frames.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAGnE,kDAAkD;AAClD,eAAO,MAAM,UAAU,IAAI,CAAC;AAC5B,sEAAsE;AACtE,eAAO,MAAM,aAAa,IAAI,CAAC;AAC/B,uEAAuE;AACvE,eAAO,MAAM,UAAU,IAAI,CAAC;AAE5B,uDAAuD;AACvD,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,SAAS,CAAC;AAE7C,oEAAoE;AACpE,eAAO,MAAM,qBAAqB,KAAK,CAAC;AAExC;2EAC2E;AAC3E,eAAO,MAAM,sBAAsB,QAAU,CAAC;AAE9C,4CAA4C;AAC5C,wBAAgB,OAAO,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,CAElD;AAgBD;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,UAAU,GAAG,UAAU,CAE3D;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,GAAG,UAAU,CASvF;AAED;;;;;;;;GAQG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAgCvG;AAMD;;;;;;;;;;GAUG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,GAAG,IAAI,CAe3F;AAMD,8DAA8D;AAC9D,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,6CAA6C;IAC7C,aAAa,EAAE,MAAM,CAAC;IACtB,kEAAkE;IAClE,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG,WAAW,CAsB7E;AAED;;;;;;;GAOG;AACH,qBAAa,WAAW;IACtB,0EAA0E;IAC1E,UAAU,EAAE,MAAM,CAAC;IACnB,kEAAkE;IAClE,QAAQ,CAAC,YAAY,EAAE,MAAM,EAAE,CAAM;IACrC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAa;IAClC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;IAEvC;;;;;OAKG;gBACS,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,YAA6B;IAMpF,wEAAwE;IACxE,QAAQ,IAAI,OAAO;IAInB;;;;;OAKG;IACH,IAAI,IAAI,YAAY;CAcrB;AAED;2EAC2E;AAC3E,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,UAAU,CAAC;AAM5G;;;;;;;;;GASG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CA8B9F"}
|