@gscdump/engine 0.27.2 → 0.28.1
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/THIRD-PARTY-LICENSES.md +443 -0
- package/dist/_chunks/engine.mjs +26 -12
- package/dist/_chunks/libs/chokidar.d.mts +1 -0
- package/dist/_chunks/libs/db0.d.mts +1 -0
- package/dist/_chunks/libs/denque.d.mts +1 -0
- package/dist/_chunks/libs/fzstd.mjs +545 -0
- package/dist/_chunks/libs/hyparquet-compressors.mjs +2796 -0
- package/dist/_chunks/libs/icebird.d.mts +441 -0
- package/dist/_chunks/libs/icebird.mjs +3708 -0
- package/dist/_chunks/libs/ioredis.d.mts +1 -0
- package/dist/_chunks/libs/lru-cache.d.mts +1 -0
- package/dist/_chunks/libs/unstorage.d.mts +120 -0
- package/dist/_chunks/sink.d.mts +62 -11
- package/dist/_chunks/storage.d.mts +33 -1
- package/dist/iceberg/index.d.mts +3 -2
- package/dist/iceberg/index.mjs +169 -17
- package/dist/index.d.mts +21 -2
- package/dist/index.mjs +27 -1
- package/dist/vendor/hysnappy-purejs.mjs +1 -12
- package/package.json +7 -6
- package/LICENSE +0 -21
|
@@ -0,0 +1,545 @@
|
|
|
1
|
+
var ab = ArrayBuffer, u8 = Uint8Array, u16 = Uint16Array, i16 = Int16Array, i32 = Int32Array;
|
|
2
|
+
var slc = function(v, s, e) {
|
|
3
|
+
if (u8.prototype.slice) return u8.prototype.slice.call(v, s, e);
|
|
4
|
+
if (s == null || s < 0) s = 0;
|
|
5
|
+
if (e == null || e > v.length) e = v.length;
|
|
6
|
+
var n = new u8(e - s);
|
|
7
|
+
n.set(v.subarray(s, e));
|
|
8
|
+
return n;
|
|
9
|
+
};
|
|
10
|
+
var fill = function(v, n, s, e) {
|
|
11
|
+
if (u8.prototype.fill) return u8.prototype.fill.call(v, n, s, e);
|
|
12
|
+
if (s == null || s < 0) s = 0;
|
|
13
|
+
if (e == null || e > v.length) e = v.length;
|
|
14
|
+
for (; s < e; ++s) v[s] = n;
|
|
15
|
+
return v;
|
|
16
|
+
};
|
|
17
|
+
var cpw = function(v, t, s, e) {
|
|
18
|
+
if (u8.prototype.copyWithin) return u8.prototype.copyWithin.call(v, t, s, e);
|
|
19
|
+
if (s == null || s < 0) s = 0;
|
|
20
|
+
if (e == null || e > v.length) e = v.length;
|
|
21
|
+
while (s < e) v[t++] = v[s++];
|
|
22
|
+
};
|
|
23
|
+
var ec = [
|
|
24
|
+
"invalid zstd data",
|
|
25
|
+
"window size too large (>2046MB)",
|
|
26
|
+
"invalid block type",
|
|
27
|
+
"FSE accuracy too high",
|
|
28
|
+
"match distance too far back",
|
|
29
|
+
"unexpected EOF"
|
|
30
|
+
];
|
|
31
|
+
var err = function(ind, msg, nt) {
|
|
32
|
+
var e = new Error(msg || ec[ind]);
|
|
33
|
+
e.code = ind;
|
|
34
|
+
if (Error.captureStackTrace) Error.captureStackTrace(e, err);
|
|
35
|
+
if (!nt) throw e;
|
|
36
|
+
return e;
|
|
37
|
+
};
|
|
38
|
+
var rb = function(d, b, n) {
|
|
39
|
+
var i = 0, o = 0;
|
|
40
|
+
for (; i < n; ++i) o |= d[b++] << (i << 3);
|
|
41
|
+
return o;
|
|
42
|
+
};
|
|
43
|
+
var b4 = function(d, b) {
|
|
44
|
+
return (d[b] | d[b + 1] << 8 | d[b + 2] << 16 | d[b + 3] << 24) >>> 0;
|
|
45
|
+
};
|
|
46
|
+
var rzfh = function(dat, w) {
|
|
47
|
+
var n3 = dat[0] | dat[1] << 8 | dat[2] << 16;
|
|
48
|
+
if (n3 == 3126568 && dat[3] == 253) {
|
|
49
|
+
var flg = dat[4];
|
|
50
|
+
var ss = flg >> 5 & 1, cc = flg >> 2 & 1, df = flg & 3, fcf = flg >> 6;
|
|
51
|
+
if (flg & 8) err(0);
|
|
52
|
+
var bt = 6 - ss;
|
|
53
|
+
var db = df == 3 ? 4 : df;
|
|
54
|
+
var di = rb(dat, bt, db);
|
|
55
|
+
bt += db;
|
|
56
|
+
var fsb = fcf ? 1 << fcf : ss;
|
|
57
|
+
var fss = rb(dat, bt, fsb) + (fcf == 1 && 256);
|
|
58
|
+
var ws = fss;
|
|
59
|
+
if (!ss) {
|
|
60
|
+
var wb = 1 << 10 + (dat[5] >> 3);
|
|
61
|
+
ws = wb + (wb >> 3) * (dat[5] & 7);
|
|
62
|
+
}
|
|
63
|
+
if (ws > 2145386496) err(1);
|
|
64
|
+
var buf = new u8((w == 1 ? fss || ws : w ? 0 : ws) + 12);
|
|
65
|
+
buf[0] = 1, buf[4] = 4, buf[8] = 8;
|
|
66
|
+
return {
|
|
67
|
+
b: bt + fsb,
|
|
68
|
+
y: 0,
|
|
69
|
+
l: 0,
|
|
70
|
+
d: di,
|
|
71
|
+
w: w && w != 1 ? w : buf.subarray(12),
|
|
72
|
+
e: ws,
|
|
73
|
+
o: new i32(buf.buffer, 0, 3),
|
|
74
|
+
u: fss,
|
|
75
|
+
c: cc,
|
|
76
|
+
m: Math.min(131072, ws)
|
|
77
|
+
};
|
|
78
|
+
} else if ((n3 >> 4 | dat[3] << 20) == 25481893) return b4(dat, 4) + 8;
|
|
79
|
+
err(0);
|
|
80
|
+
};
|
|
81
|
+
var msb = function(val) {
|
|
82
|
+
var bits = 0;
|
|
83
|
+
for (; 1 << bits <= val; ++bits);
|
|
84
|
+
return bits - 1;
|
|
85
|
+
};
|
|
86
|
+
var rfse = function(dat, bt, mal) {
|
|
87
|
+
var tpos = (bt << 3) + 4;
|
|
88
|
+
var al = (dat[bt] & 15) + 5;
|
|
89
|
+
if (al > mal) err(3);
|
|
90
|
+
var sz = 1 << al;
|
|
91
|
+
var probs = sz, sym = -1, re = -1, i = -1, ht = sz;
|
|
92
|
+
var buf = new ab(512 + (sz << 2));
|
|
93
|
+
var freq = new i16(buf, 0, 256);
|
|
94
|
+
var dstate = new u16(buf, 0, 256);
|
|
95
|
+
var nstate = new u16(buf, 512, sz);
|
|
96
|
+
var bb1 = 512 + (sz << 1);
|
|
97
|
+
var syms = new u8(buf, bb1, sz);
|
|
98
|
+
var nbits = new u8(buf, bb1 + sz);
|
|
99
|
+
while (sym < 255 && probs > 0) {
|
|
100
|
+
var bits = msb(probs + 1);
|
|
101
|
+
var cbt = tpos >> 3;
|
|
102
|
+
var msk = (1 << bits + 1) - 1;
|
|
103
|
+
var val = (dat[cbt] | dat[cbt + 1] << 8 | dat[cbt + 2] << 16) >> (tpos & 7) & msk;
|
|
104
|
+
var msk1fb = (1 << bits) - 1;
|
|
105
|
+
var msv = msk - probs - 1;
|
|
106
|
+
var sval = val & msk1fb;
|
|
107
|
+
if (sval < msv) tpos += bits, val = sval;
|
|
108
|
+
else {
|
|
109
|
+
tpos += bits + 1;
|
|
110
|
+
if (val > msk1fb) val -= msv;
|
|
111
|
+
}
|
|
112
|
+
freq[++sym] = --val;
|
|
113
|
+
if (val == -1) {
|
|
114
|
+
probs += val;
|
|
115
|
+
syms[--ht] = sym;
|
|
116
|
+
} else probs -= val;
|
|
117
|
+
if (!val) do {
|
|
118
|
+
var rbt = tpos >> 3;
|
|
119
|
+
re = (dat[rbt] | dat[rbt + 1] << 8) >> (tpos & 7) & 3;
|
|
120
|
+
tpos += 2;
|
|
121
|
+
sym += re;
|
|
122
|
+
} while (re == 3);
|
|
123
|
+
}
|
|
124
|
+
if (sym > 255 || probs) err(0);
|
|
125
|
+
var sympos = 0;
|
|
126
|
+
var sstep = (sz >> 1) + (sz >> 3) + 3;
|
|
127
|
+
var smask = sz - 1;
|
|
128
|
+
for (var s = 0; s <= sym; ++s) {
|
|
129
|
+
var sf = freq[s];
|
|
130
|
+
if (sf < 1) {
|
|
131
|
+
dstate[s] = -sf;
|
|
132
|
+
continue;
|
|
133
|
+
}
|
|
134
|
+
for (i = 0; i < sf; ++i) {
|
|
135
|
+
syms[sympos] = s;
|
|
136
|
+
do
|
|
137
|
+
sympos = sympos + sstep & smask;
|
|
138
|
+
while (sympos >= ht);
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
if (sympos) err(0);
|
|
142
|
+
for (i = 0; i < sz; ++i) {
|
|
143
|
+
var ns = dstate[syms[i]]++;
|
|
144
|
+
nstate[i] = (ns << (nbits[i] = al - msb(ns))) - sz;
|
|
145
|
+
}
|
|
146
|
+
return [tpos + 7 >> 3, {
|
|
147
|
+
b: al,
|
|
148
|
+
s: syms,
|
|
149
|
+
n: nbits,
|
|
150
|
+
t: nstate
|
|
151
|
+
}];
|
|
152
|
+
};
|
|
153
|
+
var rhu = function(dat, bt) {
|
|
154
|
+
var i = 0, wc = -1;
|
|
155
|
+
var buf = new u8(292), hb = dat[bt];
|
|
156
|
+
var hw = buf.subarray(0, 256);
|
|
157
|
+
var rc = buf.subarray(256, 268);
|
|
158
|
+
var ri = new u16(buf.buffer, 268);
|
|
159
|
+
if (hb < 128) {
|
|
160
|
+
var _a = rfse(dat, bt + 1, 6), ebt = _a[0], fdt = _a[1];
|
|
161
|
+
bt += hb;
|
|
162
|
+
var epos = ebt << 3;
|
|
163
|
+
var lb = dat[bt];
|
|
164
|
+
if (!lb) err(0);
|
|
165
|
+
var st1 = 0, st2 = 0, btr1 = fdt.b, btr2 = btr1;
|
|
166
|
+
var fpos = (++bt << 3) - 8 + msb(lb);
|
|
167
|
+
for (;;) {
|
|
168
|
+
fpos -= btr1;
|
|
169
|
+
if (fpos < epos) break;
|
|
170
|
+
var cbt = fpos >> 3;
|
|
171
|
+
st1 += (dat[cbt] | dat[cbt + 1] << 8) >> (fpos & 7) & (1 << btr1) - 1;
|
|
172
|
+
hw[++wc] = fdt.s[st1];
|
|
173
|
+
fpos -= btr2;
|
|
174
|
+
if (fpos < epos) break;
|
|
175
|
+
cbt = fpos >> 3;
|
|
176
|
+
st2 += (dat[cbt] | dat[cbt + 1] << 8) >> (fpos & 7) & (1 << btr2) - 1;
|
|
177
|
+
hw[++wc] = fdt.s[st2];
|
|
178
|
+
btr1 = fdt.n[st1];
|
|
179
|
+
st1 = fdt.t[st1];
|
|
180
|
+
btr2 = fdt.n[st2];
|
|
181
|
+
st2 = fdt.t[st2];
|
|
182
|
+
}
|
|
183
|
+
if (++wc > 255) err(0);
|
|
184
|
+
} else {
|
|
185
|
+
wc = hb - 127;
|
|
186
|
+
for (; i < wc; i += 2) {
|
|
187
|
+
var byte = dat[++bt];
|
|
188
|
+
hw[i] = byte >> 4;
|
|
189
|
+
hw[i + 1] = byte & 15;
|
|
190
|
+
}
|
|
191
|
+
++bt;
|
|
192
|
+
}
|
|
193
|
+
var wes = 0;
|
|
194
|
+
for (i = 0; i < wc; ++i) {
|
|
195
|
+
var wt = hw[i];
|
|
196
|
+
if (wt > 11) err(0);
|
|
197
|
+
wes += wt && 1 << wt - 1;
|
|
198
|
+
}
|
|
199
|
+
var mb = msb(wes) + 1;
|
|
200
|
+
var ts = 1 << mb;
|
|
201
|
+
var rem = ts - wes;
|
|
202
|
+
if (rem & rem - 1) err(0);
|
|
203
|
+
hw[wc++] = msb(rem) + 1;
|
|
204
|
+
for (i = 0; i < wc; ++i) {
|
|
205
|
+
var wt = hw[i];
|
|
206
|
+
++rc[hw[i] = wt && mb + 1 - wt];
|
|
207
|
+
}
|
|
208
|
+
var hbuf = new u8(ts << 1);
|
|
209
|
+
var syms = hbuf.subarray(0, ts), nb = hbuf.subarray(ts);
|
|
210
|
+
ri[mb] = 0;
|
|
211
|
+
for (i = mb; i > 0; --i) {
|
|
212
|
+
var pv = ri[i];
|
|
213
|
+
fill(nb, i, pv, ri[i - 1] = pv + rc[i] * (1 << mb - i));
|
|
214
|
+
}
|
|
215
|
+
if (ri[0] != ts) err(0);
|
|
216
|
+
for (i = 0; i < wc; ++i) {
|
|
217
|
+
var bits = hw[i];
|
|
218
|
+
if (bits) {
|
|
219
|
+
var code = ri[bits];
|
|
220
|
+
fill(syms, i, code, ri[bits] = code + (1 << mb - bits));
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
return [bt, {
|
|
224
|
+
n: nb,
|
|
225
|
+
b: mb,
|
|
226
|
+
s: syms
|
|
227
|
+
}];
|
|
228
|
+
};
|
|
229
|
+
var dllt = (/*#__PURE__*/ rfse(/*#__PURE__*/ new u8([
|
|
230
|
+
81,
|
|
231
|
+
16,
|
|
232
|
+
99,
|
|
233
|
+
140,
|
|
234
|
+
49,
|
|
235
|
+
198,
|
|
236
|
+
24,
|
|
237
|
+
99,
|
|
238
|
+
12,
|
|
239
|
+
33,
|
|
240
|
+
196,
|
|
241
|
+
24,
|
|
242
|
+
99,
|
|
243
|
+
102,
|
|
244
|
+
102,
|
|
245
|
+
134,
|
|
246
|
+
70,
|
|
247
|
+
146,
|
|
248
|
+
4
|
|
249
|
+
]), 0, 6))[1];
|
|
250
|
+
var dmlt = (/*#__PURE__*/ rfse(/*#__PURE__*/ new u8([
|
|
251
|
+
33,
|
|
252
|
+
20,
|
|
253
|
+
196,
|
|
254
|
+
24,
|
|
255
|
+
99,
|
|
256
|
+
140,
|
|
257
|
+
33,
|
|
258
|
+
132,
|
|
259
|
+
16,
|
|
260
|
+
66,
|
|
261
|
+
8,
|
|
262
|
+
33,
|
|
263
|
+
132,
|
|
264
|
+
16,
|
|
265
|
+
66,
|
|
266
|
+
8,
|
|
267
|
+
33,
|
|
268
|
+
68,
|
|
269
|
+
68,
|
|
270
|
+
68,
|
|
271
|
+
68,
|
|
272
|
+
68,
|
|
273
|
+
68,
|
|
274
|
+
68,
|
|
275
|
+
68,
|
|
276
|
+
36,
|
|
277
|
+
9
|
|
278
|
+
]), 0, 6))[1];
|
|
279
|
+
var doct = (/*#__PURE__ */ rfse(/*#__PURE__*/ new u8([
|
|
280
|
+
32,
|
|
281
|
+
132,
|
|
282
|
+
16,
|
|
283
|
+
66,
|
|
284
|
+
102,
|
|
285
|
+
70,
|
|
286
|
+
68,
|
|
287
|
+
68,
|
|
288
|
+
68,
|
|
289
|
+
68,
|
|
290
|
+
36,
|
|
291
|
+
73,
|
|
292
|
+
2
|
|
293
|
+
]), 0, 5))[1];
|
|
294
|
+
var b2bl = function(b, s) {
|
|
295
|
+
var len = b.length, bl = new i32(len);
|
|
296
|
+
for (var i = 0; i < len; ++i) {
|
|
297
|
+
bl[i] = s;
|
|
298
|
+
s += 1 << b[i];
|
|
299
|
+
}
|
|
300
|
+
return bl;
|
|
301
|
+
};
|
|
302
|
+
var llb = /*#__PURE__ */ new u8((/*#__PURE__ */ new i32([
|
|
303
|
+
0,
|
|
304
|
+
0,
|
|
305
|
+
0,
|
|
306
|
+
0,
|
|
307
|
+
16843009,
|
|
308
|
+
50528770,
|
|
309
|
+
134678020,
|
|
310
|
+
202050057,
|
|
311
|
+
269422093
|
|
312
|
+
])).buffer, 0, 36);
|
|
313
|
+
var llbl = /*#__PURE__ */ b2bl(llb, 0);
|
|
314
|
+
var mlb = /*#__PURE__ */ new u8((/*#__PURE__ */ new i32([
|
|
315
|
+
0,
|
|
316
|
+
0,
|
|
317
|
+
0,
|
|
318
|
+
0,
|
|
319
|
+
0,
|
|
320
|
+
0,
|
|
321
|
+
0,
|
|
322
|
+
0,
|
|
323
|
+
16843009,
|
|
324
|
+
50528770,
|
|
325
|
+
117769220,
|
|
326
|
+
185207048,
|
|
327
|
+
252579084,
|
|
328
|
+
16
|
|
329
|
+
])).buffer, 0, 53);
|
|
330
|
+
var mlbl = /*#__PURE__ */ b2bl(mlb, 3);
|
|
331
|
+
var dhu = function(dat, out, hu) {
|
|
332
|
+
var len = dat.length, ss = out.length, lb = dat[len - 1], msk = (1 << hu.b) - 1, eb = -hu.b;
|
|
333
|
+
if (!lb) err(0);
|
|
334
|
+
var st = 0, btr = hu.b, pos = (len << 3) - 8 + msb(lb) - btr, i = -1;
|
|
335
|
+
for (; pos > eb && i < ss;) {
|
|
336
|
+
var cbt = pos >> 3;
|
|
337
|
+
var val = (dat[cbt] | dat[cbt + 1] << 8 | dat[cbt + 2] << 16) >> (pos & 7);
|
|
338
|
+
st = (st << btr | val) & msk;
|
|
339
|
+
out[++i] = hu.s[st];
|
|
340
|
+
pos -= btr = hu.n[st];
|
|
341
|
+
}
|
|
342
|
+
if (pos != eb || i + 1 != ss) err(0);
|
|
343
|
+
};
|
|
344
|
+
var dhu4 = function(dat, out, hu) {
|
|
345
|
+
var bt = 6;
|
|
346
|
+
var sz1 = out.length + 3 >> 2, sz2 = sz1 << 1, sz3 = sz1 + sz2;
|
|
347
|
+
dhu(dat.subarray(bt, bt += dat[0] | dat[1] << 8), out.subarray(0, sz1), hu);
|
|
348
|
+
dhu(dat.subarray(bt, bt += dat[2] | dat[3] << 8), out.subarray(sz1, sz2), hu);
|
|
349
|
+
dhu(dat.subarray(bt, bt += dat[4] | dat[5] << 8), out.subarray(sz2, sz3), hu);
|
|
350
|
+
dhu(dat.subarray(bt), out.subarray(sz3), hu);
|
|
351
|
+
};
|
|
352
|
+
var rzb = function(dat, st, out) {
|
|
353
|
+
var _a;
|
|
354
|
+
var bt = st.b;
|
|
355
|
+
var b0 = dat[bt], btype = b0 >> 1 & 3;
|
|
356
|
+
st.l = b0 & 1;
|
|
357
|
+
var sz = b0 >> 3 | dat[bt + 1] << 5 | dat[bt + 2] << 13;
|
|
358
|
+
var ebt = (bt += 3) + sz;
|
|
359
|
+
if (btype == 1) {
|
|
360
|
+
if (bt >= dat.length) return;
|
|
361
|
+
st.b = bt + 1;
|
|
362
|
+
if (out) {
|
|
363
|
+
fill(out, dat[bt], st.y, st.y += sz);
|
|
364
|
+
return out;
|
|
365
|
+
}
|
|
366
|
+
return fill(new u8(sz), dat[bt]);
|
|
367
|
+
}
|
|
368
|
+
if (ebt > dat.length) return;
|
|
369
|
+
if (btype == 0) {
|
|
370
|
+
st.b = ebt;
|
|
371
|
+
if (out) {
|
|
372
|
+
out.set(dat.subarray(bt, ebt), st.y);
|
|
373
|
+
st.y += sz;
|
|
374
|
+
return out;
|
|
375
|
+
}
|
|
376
|
+
return slc(dat, bt, ebt);
|
|
377
|
+
}
|
|
378
|
+
if (btype == 2) {
|
|
379
|
+
var b3 = dat[bt], lbt = b3 & 3, sf = b3 >> 2 & 3;
|
|
380
|
+
var lss = b3 >> 4, lcs = 0, s4 = 0;
|
|
381
|
+
if (lbt < 2) if (sf & 1) lss |= dat[++bt] << 4 | (sf & 2 && dat[++bt] << 12);
|
|
382
|
+
else lss = b3 >> 3;
|
|
383
|
+
else {
|
|
384
|
+
s4 = sf;
|
|
385
|
+
if (sf < 2) lss |= (dat[++bt] & 63) << 4, lcs = dat[bt] >> 6 | dat[++bt] << 2;
|
|
386
|
+
else if (sf == 2) lss |= dat[++bt] << 4 | (dat[++bt] & 3) << 12, lcs = dat[bt] >> 2 | dat[++bt] << 6;
|
|
387
|
+
else lss |= dat[++bt] << 4 | (dat[++bt] & 63) << 12, lcs = dat[bt] >> 6 | dat[++bt] << 2 | dat[++bt] << 10;
|
|
388
|
+
}
|
|
389
|
+
++bt;
|
|
390
|
+
var buf = out ? out.subarray(st.y, st.y + st.m) : new u8(st.m);
|
|
391
|
+
var spl = buf.length - lss;
|
|
392
|
+
if (lbt == 0) buf.set(dat.subarray(bt, bt += lss), spl);
|
|
393
|
+
else if (lbt == 1) fill(buf, dat[bt++], spl);
|
|
394
|
+
else {
|
|
395
|
+
var hu = st.h;
|
|
396
|
+
if (lbt == 2) {
|
|
397
|
+
var hud = rhu(dat, bt);
|
|
398
|
+
lcs += bt - (bt = hud[0]);
|
|
399
|
+
st.h = hu = hud[1];
|
|
400
|
+
} else if (!hu) err(0);
|
|
401
|
+
(s4 ? dhu4 : dhu)(dat.subarray(bt, bt += lcs), buf.subarray(spl), hu);
|
|
402
|
+
}
|
|
403
|
+
var ns = dat[bt++];
|
|
404
|
+
if (ns) {
|
|
405
|
+
if (ns == 255) ns = (dat[bt++] | dat[bt++] << 8) + 32512;
|
|
406
|
+
else if (ns > 127) ns = ns - 128 << 8 | dat[bt++];
|
|
407
|
+
var scm = dat[bt++];
|
|
408
|
+
if (scm & 3) err(0);
|
|
409
|
+
var dts = [
|
|
410
|
+
dmlt,
|
|
411
|
+
doct,
|
|
412
|
+
dllt
|
|
413
|
+
];
|
|
414
|
+
for (var i = 2; i > -1; --i) {
|
|
415
|
+
var md = scm >> (i << 1) + 2 & 3;
|
|
416
|
+
if (md == 1) {
|
|
417
|
+
var rbuf = new u8([
|
|
418
|
+
0,
|
|
419
|
+
0,
|
|
420
|
+
dat[bt++]
|
|
421
|
+
]);
|
|
422
|
+
dts[i] = {
|
|
423
|
+
s: rbuf.subarray(2, 3),
|
|
424
|
+
n: rbuf.subarray(0, 1),
|
|
425
|
+
t: new u16(rbuf.buffer, 0, 1),
|
|
426
|
+
b: 0
|
|
427
|
+
};
|
|
428
|
+
} else if (md == 2) _a = rfse(dat, bt, 9 - (i & 1)), bt = _a[0], dts[i] = _a[1];
|
|
429
|
+
else if (md == 3) {
|
|
430
|
+
if (!st.t) err(0);
|
|
431
|
+
dts[i] = st.t[i];
|
|
432
|
+
}
|
|
433
|
+
}
|
|
434
|
+
var _b = st.t = dts, mlt = _b[0], oct = _b[1], llt = _b[2];
|
|
435
|
+
var lb = dat[ebt - 1];
|
|
436
|
+
if (!lb) err(0);
|
|
437
|
+
var spos = (ebt << 3) - 8 + msb(lb) - llt.b, cbt = spos >> 3, oubt = 0;
|
|
438
|
+
var lst = (dat[cbt] | dat[cbt + 1] << 8) >> (spos & 7) & (1 << llt.b) - 1;
|
|
439
|
+
cbt = (spos -= oct.b) >> 3;
|
|
440
|
+
var ost = (dat[cbt] | dat[cbt + 1] << 8) >> (spos & 7) & (1 << oct.b) - 1;
|
|
441
|
+
cbt = (spos -= mlt.b) >> 3;
|
|
442
|
+
var mst = (dat[cbt] | dat[cbt + 1] << 8) >> (spos & 7) & (1 << mlt.b) - 1;
|
|
443
|
+
for (++ns; --ns;) {
|
|
444
|
+
var llc = llt.s[lst];
|
|
445
|
+
var lbtr = llt.n[lst];
|
|
446
|
+
var mlc = mlt.s[mst];
|
|
447
|
+
var mbtr = mlt.n[mst];
|
|
448
|
+
var ofc = oct.s[ost];
|
|
449
|
+
var obtr = oct.n[ost];
|
|
450
|
+
cbt = (spos -= ofc) >> 3;
|
|
451
|
+
var ofp = 1 << ofc;
|
|
452
|
+
var off = ofp + ((dat[cbt] | dat[cbt + 1] << 8 | dat[cbt + 2] << 16 | dat[cbt + 3] << 24) >>> (spos & 7) & ofp - 1);
|
|
453
|
+
cbt = (spos -= mlb[mlc]) >> 3;
|
|
454
|
+
var ml = mlbl[mlc] + ((dat[cbt] | dat[cbt + 1] << 8 | dat[cbt + 2] << 16) >> (spos & 7) & (1 << mlb[mlc]) - 1);
|
|
455
|
+
cbt = (spos -= llb[llc]) >> 3;
|
|
456
|
+
var ll = llbl[llc] + ((dat[cbt] | dat[cbt + 1] << 8 | dat[cbt + 2] << 16) >> (spos & 7) & (1 << llb[llc]) - 1);
|
|
457
|
+
cbt = (spos -= lbtr) >> 3;
|
|
458
|
+
lst = llt.t[lst] + ((dat[cbt] | dat[cbt + 1] << 8) >> (spos & 7) & (1 << lbtr) - 1);
|
|
459
|
+
cbt = (spos -= mbtr) >> 3;
|
|
460
|
+
mst = mlt.t[mst] + ((dat[cbt] | dat[cbt + 1] << 8) >> (spos & 7) & (1 << mbtr) - 1);
|
|
461
|
+
cbt = (spos -= obtr) >> 3;
|
|
462
|
+
ost = oct.t[ost] + ((dat[cbt] | dat[cbt + 1] << 8) >> (spos & 7) & (1 << obtr) - 1);
|
|
463
|
+
if (off > 3) {
|
|
464
|
+
st.o[2] = st.o[1];
|
|
465
|
+
st.o[1] = st.o[0];
|
|
466
|
+
st.o[0] = off -= 3;
|
|
467
|
+
} else {
|
|
468
|
+
var idx = off - (ll != 0);
|
|
469
|
+
if (idx) {
|
|
470
|
+
off = idx == 3 ? st.o[0] - 1 : st.o[idx];
|
|
471
|
+
if (idx > 1) st.o[2] = st.o[1];
|
|
472
|
+
st.o[1] = st.o[0];
|
|
473
|
+
st.o[0] = off;
|
|
474
|
+
} else off = st.o[0];
|
|
475
|
+
}
|
|
476
|
+
for (var i = 0; i < ll; ++i) buf[oubt + i] = buf[spl + i];
|
|
477
|
+
oubt += ll, spl += ll;
|
|
478
|
+
var stin = oubt - off;
|
|
479
|
+
if (stin < 0) {
|
|
480
|
+
var len = -stin;
|
|
481
|
+
var bs = st.e + stin;
|
|
482
|
+
if (len > ml) len = ml;
|
|
483
|
+
for (var i = 0; i < len; ++i) buf[oubt + i] = st.w[bs + i];
|
|
484
|
+
oubt += len, ml -= len, stin = 0;
|
|
485
|
+
}
|
|
486
|
+
for (var i = 0; i < ml; ++i) buf[oubt + i] = buf[stin + i];
|
|
487
|
+
oubt += ml;
|
|
488
|
+
}
|
|
489
|
+
if (oubt != spl) while (spl < buf.length) buf[oubt++] = buf[spl++];
|
|
490
|
+
else oubt = buf.length;
|
|
491
|
+
if (out) st.y += oubt;
|
|
492
|
+
else buf = slc(buf, 0, oubt);
|
|
493
|
+
} else if (out) {
|
|
494
|
+
st.y += lss;
|
|
495
|
+
if (spl) for (var i = 0; i < lss; ++i) buf[i] = buf[spl + i];
|
|
496
|
+
} else if (spl) buf = slc(buf, spl);
|
|
497
|
+
st.b = ebt;
|
|
498
|
+
return buf;
|
|
499
|
+
}
|
|
500
|
+
err(2);
|
|
501
|
+
};
|
|
502
|
+
var cct = function(bufs, ol) {
|
|
503
|
+
if (bufs.length == 1) return bufs[0];
|
|
504
|
+
var buf = new u8(ol);
|
|
505
|
+
for (var i = 0, b = 0; i < bufs.length; ++i) {
|
|
506
|
+
var chk = bufs[i];
|
|
507
|
+
buf.set(chk, b);
|
|
508
|
+
b += chk.length;
|
|
509
|
+
}
|
|
510
|
+
return buf;
|
|
511
|
+
};
|
|
512
|
+
function decompress(dat, buf) {
|
|
513
|
+
var bufs = [], nb = +!buf;
|
|
514
|
+
var bt = 0, ol = 0;
|
|
515
|
+
for (; dat.length;) {
|
|
516
|
+
var st = rzfh(dat, nb || buf);
|
|
517
|
+
if (typeof st == "object") {
|
|
518
|
+
if (nb) {
|
|
519
|
+
buf = null;
|
|
520
|
+
if (st.w.length == st.u) {
|
|
521
|
+
bufs.push(buf = st.w);
|
|
522
|
+
ol += st.u;
|
|
523
|
+
}
|
|
524
|
+
} else {
|
|
525
|
+
bufs.push(buf);
|
|
526
|
+
st.e = 0;
|
|
527
|
+
}
|
|
528
|
+
for (; !st.l;) {
|
|
529
|
+
var blk = rzb(dat, st, buf);
|
|
530
|
+
if (!blk) err(5);
|
|
531
|
+
if (buf) st.e = st.y;
|
|
532
|
+
else {
|
|
533
|
+
bufs.push(blk);
|
|
534
|
+
ol += blk.length;
|
|
535
|
+
cpw(st.w, 0, blk.length);
|
|
536
|
+
st.w.set(blk, st.w.length - blk.length);
|
|
537
|
+
}
|
|
538
|
+
}
|
|
539
|
+
bt = st.b + st.c * 4;
|
|
540
|
+
} else bt = st;
|
|
541
|
+
dat = dat.subarray(bt);
|
|
542
|
+
}
|
|
543
|
+
return cct(bufs, ol);
|
|
544
|
+
}
|
|
545
|
+
export { decompress };
|