@forgeax/engine-rhi-debug 0.1.4 → 0.1.7
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 +39 -0
- package/dist/.tsbuildinfo +1 -1
- package/dist/__tests__/readback-matrix-fixture.d.ts +32 -0
- package/dist/__tests__/readback-matrix-fixture.d.ts.map +1 -0
- package/dist/frame-model.d.ts +84 -52
- package/dist/frame-model.d.ts.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.mjs +4651 -46
- package/dist/index.mjs.map +1 -1
- package/dist/recorder/device.d.ts.map +1 -1
- package/dist/recorder/encoder.d.ts.map +1 -1
- package/dist/replay/device-request.d.ts +8 -0
- package/dist/replay/device-request.d.ts.map +1 -0
- package/dist/replay/readback.d.ts +7 -0
- package/dist/replay/readback.d.ts.map +1 -1
- package/dist/replay/session.d.ts +17 -0
- package/dist/replay/session.d.ts.map +1 -1
- package/dist/texel-decode.d.ts +5 -4
- package/dist/texel-decode.d.ts.map +1 -1
- package/dist/types.d.ts +24 -6
- package/dist/types.d.ts.map +1 -1
- package/package.json +7 -7
- package/src/__tests__/consumer-inventory.unit.test.ts +49 -1
- package/src/__tests__/e2e.browser.test.ts +6 -1
- package/src/__tests__/frame-model-parity.test-d.ts +13 -1
- package/src/__tests__/frame-model-parity.unit.test.ts +262 -15
- package/src/__tests__/guard-gates.test.ts +176 -1
- package/src/__tests__/public-surface.integration.test.ts +8 -0
- package/src/__tests__/readback-format-matrix.dawn.test.ts +226 -3
- package/src/__tests__/readback-format-matrix.unit.test.ts +25 -1
- package/src/__tests__/readback-matrix-fixture.ts +20 -0
- package/src/__tests__/replay-fail-fast.unit.test.ts +12 -0
- package/src/__tests__/replay-session.dawn.test.ts +3 -0
- package/src/__tests__/replay-session.test-d.ts +7 -1
- package/src/__tests__/replay-session.unit.test.ts +16 -0
- package/src/__tests__/rhi-debug-fresh-replay.dawn.test.ts +2 -0
- package/src/__tests__/tape-index.unit.test.ts +3 -0
- package/src/__tests__/tree-shake.unit.test.ts +24 -0
- package/src/frame-model.ts +381 -83
- package/src/index.ts +17 -10
- package/src/recorder/device.ts +20 -2
- package/src/recorder/encoder.ts +22 -5
- package/src/replay/device-request.ts +38 -0
- package/src/replay/readback.ts +106 -18
- package/src/replay/session.ts +47 -2
- package/src/texel-decode.ts +37 -3
- package/src/types.ts +30 -6
package/dist/index.mjs
CHANGED
|
@@ -1,9 +1,4238 @@
|
|
|
1
1
|
import { ok, err } from '@forgeax/engine-types';
|
|
2
2
|
import { sha256 } from '@noble/hashes/sha2.js';
|
|
3
3
|
import { bytesToHex } from '@noble/hashes/utils.js';
|
|
4
|
-
import pako from 'pako';
|
|
5
4
|
import { RhiError } from '@forgeax/engine-rhi';
|
|
6
5
|
|
|
6
|
+
var __create = Object.create;
|
|
7
|
+
var __defProp = Object.defineProperty;
|
|
8
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
9
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
10
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
11
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
12
|
+
var __commonJS = (cb, mod) => function __require() {
|
|
13
|
+
return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
|
|
14
|
+
};
|
|
15
|
+
var __copyProps = (to, from, except, desc) => {
|
|
16
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
17
|
+
for (let key of __getOwnPropNames(from))
|
|
18
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
19
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
20
|
+
}
|
|
21
|
+
return to;
|
|
22
|
+
};
|
|
23
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
24
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
25
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
26
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
27
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
28
|
+
__defProp(target, "default", { value: mod, enumerable: true }) ,
|
|
29
|
+
mod
|
|
30
|
+
));
|
|
31
|
+
|
|
32
|
+
// ../../node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/utils/common.js
|
|
33
|
+
var require_common = __commonJS({
|
|
34
|
+
"../../node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/utils/common.js"(exports) {
|
|
35
|
+
var TYPED_OK = typeof Uint8Array !== "undefined" && typeof Uint16Array !== "undefined" && typeof Int32Array !== "undefined";
|
|
36
|
+
function _has(obj, key) {
|
|
37
|
+
return Object.prototype.hasOwnProperty.call(obj, key);
|
|
38
|
+
}
|
|
39
|
+
exports.assign = function(obj) {
|
|
40
|
+
var sources = Array.prototype.slice.call(arguments, 1);
|
|
41
|
+
while (sources.length) {
|
|
42
|
+
var source = sources.shift();
|
|
43
|
+
if (!source) {
|
|
44
|
+
continue;
|
|
45
|
+
}
|
|
46
|
+
if (typeof source !== "object") {
|
|
47
|
+
throw new TypeError(source + "must be non-object");
|
|
48
|
+
}
|
|
49
|
+
for (var p in source) {
|
|
50
|
+
if (_has(source, p)) {
|
|
51
|
+
obj[p] = source[p];
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
return obj;
|
|
56
|
+
};
|
|
57
|
+
exports.shrinkBuf = function(buf, size) {
|
|
58
|
+
if (buf.length === size) {
|
|
59
|
+
return buf;
|
|
60
|
+
}
|
|
61
|
+
if (buf.subarray) {
|
|
62
|
+
return buf.subarray(0, size);
|
|
63
|
+
}
|
|
64
|
+
buf.length = size;
|
|
65
|
+
return buf;
|
|
66
|
+
};
|
|
67
|
+
var fnTyped = {
|
|
68
|
+
arraySet: function(dest, src, src_offs, len, dest_offs) {
|
|
69
|
+
if (src.subarray && dest.subarray) {
|
|
70
|
+
dest.set(src.subarray(src_offs, src_offs + len), dest_offs);
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
for (var i = 0; i < len; i++) {
|
|
74
|
+
dest[dest_offs + i] = src[src_offs + i];
|
|
75
|
+
}
|
|
76
|
+
},
|
|
77
|
+
// Join array of chunks to single array.
|
|
78
|
+
flattenChunks: function(chunks) {
|
|
79
|
+
var i, l, len, pos, chunk, result;
|
|
80
|
+
len = 0;
|
|
81
|
+
for (i = 0, l = chunks.length; i < l; i++) {
|
|
82
|
+
len += chunks[i].length;
|
|
83
|
+
}
|
|
84
|
+
result = new Uint8Array(len);
|
|
85
|
+
pos = 0;
|
|
86
|
+
for (i = 0, l = chunks.length; i < l; i++) {
|
|
87
|
+
chunk = chunks[i];
|
|
88
|
+
result.set(chunk, pos);
|
|
89
|
+
pos += chunk.length;
|
|
90
|
+
}
|
|
91
|
+
return result;
|
|
92
|
+
}
|
|
93
|
+
};
|
|
94
|
+
var fnUntyped = {
|
|
95
|
+
arraySet: function(dest, src, src_offs, len, dest_offs) {
|
|
96
|
+
for (var i = 0; i < len; i++) {
|
|
97
|
+
dest[dest_offs + i] = src[src_offs + i];
|
|
98
|
+
}
|
|
99
|
+
},
|
|
100
|
+
// Join array of chunks to single array.
|
|
101
|
+
flattenChunks: function(chunks) {
|
|
102
|
+
return [].concat.apply([], chunks);
|
|
103
|
+
}
|
|
104
|
+
};
|
|
105
|
+
exports.setTyped = function(on) {
|
|
106
|
+
if (on) {
|
|
107
|
+
exports.Buf8 = Uint8Array;
|
|
108
|
+
exports.Buf16 = Uint16Array;
|
|
109
|
+
exports.Buf32 = Int32Array;
|
|
110
|
+
exports.assign(exports, fnTyped);
|
|
111
|
+
} else {
|
|
112
|
+
exports.Buf8 = Array;
|
|
113
|
+
exports.Buf16 = Array;
|
|
114
|
+
exports.Buf32 = Array;
|
|
115
|
+
exports.assign(exports, fnUntyped);
|
|
116
|
+
}
|
|
117
|
+
};
|
|
118
|
+
exports.setTyped(TYPED_OK);
|
|
119
|
+
}
|
|
120
|
+
});
|
|
121
|
+
|
|
122
|
+
// ../../node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/trees.js
|
|
123
|
+
var require_trees = __commonJS({
|
|
124
|
+
"../../node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/trees.js"(exports) {
|
|
125
|
+
var utils = require_common();
|
|
126
|
+
var Z_FIXED = 4;
|
|
127
|
+
var Z_BINARY = 0;
|
|
128
|
+
var Z_TEXT = 1;
|
|
129
|
+
var Z_UNKNOWN = 2;
|
|
130
|
+
function zero(buf) {
|
|
131
|
+
var len = buf.length;
|
|
132
|
+
while (--len >= 0) {
|
|
133
|
+
buf[len] = 0;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
var STORED_BLOCK = 0;
|
|
137
|
+
var STATIC_TREES = 1;
|
|
138
|
+
var DYN_TREES = 2;
|
|
139
|
+
var MIN_MATCH = 3;
|
|
140
|
+
var MAX_MATCH = 258;
|
|
141
|
+
var LENGTH_CODES = 29;
|
|
142
|
+
var LITERALS = 256;
|
|
143
|
+
var L_CODES = LITERALS + 1 + LENGTH_CODES;
|
|
144
|
+
var D_CODES = 30;
|
|
145
|
+
var BL_CODES = 19;
|
|
146
|
+
var HEAP_SIZE = 2 * L_CODES + 1;
|
|
147
|
+
var MAX_BITS = 15;
|
|
148
|
+
var Buf_size = 16;
|
|
149
|
+
var MAX_BL_BITS = 7;
|
|
150
|
+
var END_BLOCK = 256;
|
|
151
|
+
var REP_3_6 = 16;
|
|
152
|
+
var REPZ_3_10 = 17;
|
|
153
|
+
var REPZ_11_138 = 18;
|
|
154
|
+
var extra_lbits = (
|
|
155
|
+
/* extra bits for each length code */
|
|
156
|
+
[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]
|
|
157
|
+
);
|
|
158
|
+
var extra_dbits = (
|
|
159
|
+
/* extra bits for each distance code */
|
|
160
|
+
[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]
|
|
161
|
+
);
|
|
162
|
+
var extra_blbits = (
|
|
163
|
+
/* extra bits for each bit length code */
|
|
164
|
+
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 7]
|
|
165
|
+
);
|
|
166
|
+
var bl_order = [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15];
|
|
167
|
+
var DIST_CODE_LEN = 512;
|
|
168
|
+
var static_ltree = new Array((L_CODES + 2) * 2);
|
|
169
|
+
zero(static_ltree);
|
|
170
|
+
var static_dtree = new Array(D_CODES * 2);
|
|
171
|
+
zero(static_dtree);
|
|
172
|
+
var _dist_code = new Array(DIST_CODE_LEN);
|
|
173
|
+
zero(_dist_code);
|
|
174
|
+
var _length_code = new Array(MAX_MATCH - MIN_MATCH + 1);
|
|
175
|
+
zero(_length_code);
|
|
176
|
+
var base_length = new Array(LENGTH_CODES);
|
|
177
|
+
zero(base_length);
|
|
178
|
+
var base_dist = new Array(D_CODES);
|
|
179
|
+
zero(base_dist);
|
|
180
|
+
function StaticTreeDesc(static_tree, extra_bits, extra_base, elems, max_length) {
|
|
181
|
+
this.static_tree = static_tree;
|
|
182
|
+
this.extra_bits = extra_bits;
|
|
183
|
+
this.extra_base = extra_base;
|
|
184
|
+
this.elems = elems;
|
|
185
|
+
this.max_length = max_length;
|
|
186
|
+
this.has_stree = static_tree && static_tree.length;
|
|
187
|
+
}
|
|
188
|
+
var static_l_desc;
|
|
189
|
+
var static_d_desc;
|
|
190
|
+
var static_bl_desc;
|
|
191
|
+
function TreeDesc(dyn_tree, stat_desc) {
|
|
192
|
+
this.dyn_tree = dyn_tree;
|
|
193
|
+
this.max_code = 0;
|
|
194
|
+
this.stat_desc = stat_desc;
|
|
195
|
+
}
|
|
196
|
+
function d_code(dist) {
|
|
197
|
+
return dist < 256 ? _dist_code[dist] : _dist_code[256 + (dist >>> 7)];
|
|
198
|
+
}
|
|
199
|
+
function put_short(s, w) {
|
|
200
|
+
s.pending_buf[s.pending++] = w & 255;
|
|
201
|
+
s.pending_buf[s.pending++] = w >>> 8 & 255;
|
|
202
|
+
}
|
|
203
|
+
function send_bits(s, value, length) {
|
|
204
|
+
if (s.bi_valid > Buf_size - length) {
|
|
205
|
+
s.bi_buf |= value << s.bi_valid & 65535;
|
|
206
|
+
put_short(s, s.bi_buf);
|
|
207
|
+
s.bi_buf = value >> Buf_size - s.bi_valid;
|
|
208
|
+
s.bi_valid += length - Buf_size;
|
|
209
|
+
} else {
|
|
210
|
+
s.bi_buf |= value << s.bi_valid & 65535;
|
|
211
|
+
s.bi_valid += length;
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
function send_code(s, c, tree) {
|
|
215
|
+
send_bits(
|
|
216
|
+
s,
|
|
217
|
+
tree[c * 2],
|
|
218
|
+
tree[c * 2 + 1]
|
|
219
|
+
/*.Len*/
|
|
220
|
+
);
|
|
221
|
+
}
|
|
222
|
+
function bi_reverse(code, len) {
|
|
223
|
+
var res = 0;
|
|
224
|
+
do {
|
|
225
|
+
res |= code & 1;
|
|
226
|
+
code >>>= 1;
|
|
227
|
+
res <<= 1;
|
|
228
|
+
} while (--len > 0);
|
|
229
|
+
return res >>> 1;
|
|
230
|
+
}
|
|
231
|
+
function bi_flush(s) {
|
|
232
|
+
if (s.bi_valid === 16) {
|
|
233
|
+
put_short(s, s.bi_buf);
|
|
234
|
+
s.bi_buf = 0;
|
|
235
|
+
s.bi_valid = 0;
|
|
236
|
+
} else if (s.bi_valid >= 8) {
|
|
237
|
+
s.pending_buf[s.pending++] = s.bi_buf & 255;
|
|
238
|
+
s.bi_buf >>= 8;
|
|
239
|
+
s.bi_valid -= 8;
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
function gen_bitlen(s, desc) {
|
|
243
|
+
var tree = desc.dyn_tree;
|
|
244
|
+
var max_code = desc.max_code;
|
|
245
|
+
var stree = desc.stat_desc.static_tree;
|
|
246
|
+
var has_stree = desc.stat_desc.has_stree;
|
|
247
|
+
var extra = desc.stat_desc.extra_bits;
|
|
248
|
+
var base = desc.stat_desc.extra_base;
|
|
249
|
+
var max_length = desc.stat_desc.max_length;
|
|
250
|
+
var h;
|
|
251
|
+
var n, m;
|
|
252
|
+
var bits;
|
|
253
|
+
var xbits;
|
|
254
|
+
var f;
|
|
255
|
+
var overflow = 0;
|
|
256
|
+
for (bits = 0; bits <= MAX_BITS; bits++) {
|
|
257
|
+
s.bl_count[bits] = 0;
|
|
258
|
+
}
|
|
259
|
+
tree[s.heap[s.heap_max] * 2 + 1] = 0;
|
|
260
|
+
for (h = s.heap_max + 1; h < HEAP_SIZE; h++) {
|
|
261
|
+
n = s.heap[h];
|
|
262
|
+
bits = tree[tree[n * 2 + 1] * 2 + 1] + 1;
|
|
263
|
+
if (bits > max_length) {
|
|
264
|
+
bits = max_length;
|
|
265
|
+
overflow++;
|
|
266
|
+
}
|
|
267
|
+
tree[n * 2 + 1] = bits;
|
|
268
|
+
if (n > max_code) {
|
|
269
|
+
continue;
|
|
270
|
+
}
|
|
271
|
+
s.bl_count[bits]++;
|
|
272
|
+
xbits = 0;
|
|
273
|
+
if (n >= base) {
|
|
274
|
+
xbits = extra[n - base];
|
|
275
|
+
}
|
|
276
|
+
f = tree[n * 2];
|
|
277
|
+
s.opt_len += f * (bits + xbits);
|
|
278
|
+
if (has_stree) {
|
|
279
|
+
s.static_len += f * (stree[n * 2 + 1] + xbits);
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
if (overflow === 0) {
|
|
283
|
+
return;
|
|
284
|
+
}
|
|
285
|
+
do {
|
|
286
|
+
bits = max_length - 1;
|
|
287
|
+
while (s.bl_count[bits] === 0) {
|
|
288
|
+
bits--;
|
|
289
|
+
}
|
|
290
|
+
s.bl_count[bits]--;
|
|
291
|
+
s.bl_count[bits + 1] += 2;
|
|
292
|
+
s.bl_count[max_length]--;
|
|
293
|
+
overflow -= 2;
|
|
294
|
+
} while (overflow > 0);
|
|
295
|
+
for (bits = max_length; bits !== 0; bits--) {
|
|
296
|
+
n = s.bl_count[bits];
|
|
297
|
+
while (n !== 0) {
|
|
298
|
+
m = s.heap[--h];
|
|
299
|
+
if (m > max_code) {
|
|
300
|
+
continue;
|
|
301
|
+
}
|
|
302
|
+
if (tree[m * 2 + 1] !== bits) {
|
|
303
|
+
s.opt_len += (bits - tree[m * 2 + 1]) * tree[m * 2];
|
|
304
|
+
tree[m * 2 + 1] = bits;
|
|
305
|
+
}
|
|
306
|
+
n--;
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
function gen_codes(tree, max_code, bl_count) {
|
|
311
|
+
var next_code = new Array(MAX_BITS + 1);
|
|
312
|
+
var code = 0;
|
|
313
|
+
var bits;
|
|
314
|
+
var n;
|
|
315
|
+
for (bits = 1; bits <= MAX_BITS; bits++) {
|
|
316
|
+
next_code[bits] = code = code + bl_count[bits - 1] << 1;
|
|
317
|
+
}
|
|
318
|
+
for (n = 0; n <= max_code; n++) {
|
|
319
|
+
var len = tree[n * 2 + 1];
|
|
320
|
+
if (len === 0) {
|
|
321
|
+
continue;
|
|
322
|
+
}
|
|
323
|
+
tree[n * 2] = bi_reverse(next_code[len]++, len);
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
function tr_static_init() {
|
|
327
|
+
var n;
|
|
328
|
+
var bits;
|
|
329
|
+
var length;
|
|
330
|
+
var code;
|
|
331
|
+
var dist;
|
|
332
|
+
var bl_count = new Array(MAX_BITS + 1);
|
|
333
|
+
length = 0;
|
|
334
|
+
for (code = 0; code < LENGTH_CODES - 1; code++) {
|
|
335
|
+
base_length[code] = length;
|
|
336
|
+
for (n = 0; n < 1 << extra_lbits[code]; n++) {
|
|
337
|
+
_length_code[length++] = code;
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
_length_code[length - 1] = code;
|
|
341
|
+
dist = 0;
|
|
342
|
+
for (code = 0; code < 16; code++) {
|
|
343
|
+
base_dist[code] = dist;
|
|
344
|
+
for (n = 0; n < 1 << extra_dbits[code]; n++) {
|
|
345
|
+
_dist_code[dist++] = code;
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
dist >>= 7;
|
|
349
|
+
for (; code < D_CODES; code++) {
|
|
350
|
+
base_dist[code] = dist << 7;
|
|
351
|
+
for (n = 0; n < 1 << extra_dbits[code] - 7; n++) {
|
|
352
|
+
_dist_code[256 + dist++] = code;
|
|
353
|
+
}
|
|
354
|
+
}
|
|
355
|
+
for (bits = 0; bits <= MAX_BITS; bits++) {
|
|
356
|
+
bl_count[bits] = 0;
|
|
357
|
+
}
|
|
358
|
+
n = 0;
|
|
359
|
+
while (n <= 143) {
|
|
360
|
+
static_ltree[n * 2 + 1] = 8;
|
|
361
|
+
n++;
|
|
362
|
+
bl_count[8]++;
|
|
363
|
+
}
|
|
364
|
+
while (n <= 255) {
|
|
365
|
+
static_ltree[n * 2 + 1] = 9;
|
|
366
|
+
n++;
|
|
367
|
+
bl_count[9]++;
|
|
368
|
+
}
|
|
369
|
+
while (n <= 279) {
|
|
370
|
+
static_ltree[n * 2 + 1] = 7;
|
|
371
|
+
n++;
|
|
372
|
+
bl_count[7]++;
|
|
373
|
+
}
|
|
374
|
+
while (n <= 287) {
|
|
375
|
+
static_ltree[n * 2 + 1] = 8;
|
|
376
|
+
n++;
|
|
377
|
+
bl_count[8]++;
|
|
378
|
+
}
|
|
379
|
+
gen_codes(static_ltree, L_CODES + 1, bl_count);
|
|
380
|
+
for (n = 0; n < D_CODES; n++) {
|
|
381
|
+
static_dtree[n * 2 + 1] = 5;
|
|
382
|
+
static_dtree[n * 2] = bi_reverse(n, 5);
|
|
383
|
+
}
|
|
384
|
+
static_l_desc = new StaticTreeDesc(static_ltree, extra_lbits, LITERALS + 1, L_CODES, MAX_BITS);
|
|
385
|
+
static_d_desc = new StaticTreeDesc(static_dtree, extra_dbits, 0, D_CODES, MAX_BITS);
|
|
386
|
+
static_bl_desc = new StaticTreeDesc(new Array(0), extra_blbits, 0, BL_CODES, MAX_BL_BITS);
|
|
387
|
+
}
|
|
388
|
+
function init_block(s) {
|
|
389
|
+
var n;
|
|
390
|
+
for (n = 0; n < L_CODES; n++) {
|
|
391
|
+
s.dyn_ltree[n * 2] = 0;
|
|
392
|
+
}
|
|
393
|
+
for (n = 0; n < D_CODES; n++) {
|
|
394
|
+
s.dyn_dtree[n * 2] = 0;
|
|
395
|
+
}
|
|
396
|
+
for (n = 0; n < BL_CODES; n++) {
|
|
397
|
+
s.bl_tree[n * 2] = 0;
|
|
398
|
+
}
|
|
399
|
+
s.dyn_ltree[END_BLOCK * 2] = 1;
|
|
400
|
+
s.opt_len = s.static_len = 0;
|
|
401
|
+
s.last_lit = s.matches = 0;
|
|
402
|
+
}
|
|
403
|
+
function bi_windup(s) {
|
|
404
|
+
if (s.bi_valid > 8) {
|
|
405
|
+
put_short(s, s.bi_buf);
|
|
406
|
+
} else if (s.bi_valid > 0) {
|
|
407
|
+
s.pending_buf[s.pending++] = s.bi_buf;
|
|
408
|
+
}
|
|
409
|
+
s.bi_buf = 0;
|
|
410
|
+
s.bi_valid = 0;
|
|
411
|
+
}
|
|
412
|
+
function copy_block(s, buf, len, header) {
|
|
413
|
+
bi_windup(s);
|
|
414
|
+
{
|
|
415
|
+
put_short(s, len);
|
|
416
|
+
put_short(s, ~len);
|
|
417
|
+
}
|
|
418
|
+
utils.arraySet(s.pending_buf, s.window, buf, len, s.pending);
|
|
419
|
+
s.pending += len;
|
|
420
|
+
}
|
|
421
|
+
function smaller(tree, n, m, depth) {
|
|
422
|
+
var _n2 = n * 2;
|
|
423
|
+
var _m2 = m * 2;
|
|
424
|
+
return tree[_n2] < tree[_m2] || tree[_n2] === tree[_m2] && depth[n] <= depth[m];
|
|
425
|
+
}
|
|
426
|
+
function pqdownheap(s, tree, k) {
|
|
427
|
+
var v = s.heap[k];
|
|
428
|
+
var j = k << 1;
|
|
429
|
+
while (j <= s.heap_len) {
|
|
430
|
+
if (j < s.heap_len && smaller(tree, s.heap[j + 1], s.heap[j], s.depth)) {
|
|
431
|
+
j++;
|
|
432
|
+
}
|
|
433
|
+
if (smaller(tree, v, s.heap[j], s.depth)) {
|
|
434
|
+
break;
|
|
435
|
+
}
|
|
436
|
+
s.heap[k] = s.heap[j];
|
|
437
|
+
k = j;
|
|
438
|
+
j <<= 1;
|
|
439
|
+
}
|
|
440
|
+
s.heap[k] = v;
|
|
441
|
+
}
|
|
442
|
+
function compress_block(s, ltree, dtree) {
|
|
443
|
+
var dist;
|
|
444
|
+
var lc;
|
|
445
|
+
var lx = 0;
|
|
446
|
+
var code;
|
|
447
|
+
var extra;
|
|
448
|
+
if (s.last_lit !== 0) {
|
|
449
|
+
do {
|
|
450
|
+
dist = s.pending_buf[s.d_buf + lx * 2] << 8 | s.pending_buf[s.d_buf + lx * 2 + 1];
|
|
451
|
+
lc = s.pending_buf[s.l_buf + lx];
|
|
452
|
+
lx++;
|
|
453
|
+
if (dist === 0) {
|
|
454
|
+
send_code(s, lc, ltree);
|
|
455
|
+
} else {
|
|
456
|
+
code = _length_code[lc];
|
|
457
|
+
send_code(s, code + LITERALS + 1, ltree);
|
|
458
|
+
extra = extra_lbits[code];
|
|
459
|
+
if (extra !== 0) {
|
|
460
|
+
lc -= base_length[code];
|
|
461
|
+
send_bits(s, lc, extra);
|
|
462
|
+
}
|
|
463
|
+
dist--;
|
|
464
|
+
code = d_code(dist);
|
|
465
|
+
send_code(s, code, dtree);
|
|
466
|
+
extra = extra_dbits[code];
|
|
467
|
+
if (extra !== 0) {
|
|
468
|
+
dist -= base_dist[code];
|
|
469
|
+
send_bits(s, dist, extra);
|
|
470
|
+
}
|
|
471
|
+
}
|
|
472
|
+
} while (lx < s.last_lit);
|
|
473
|
+
}
|
|
474
|
+
send_code(s, END_BLOCK, ltree);
|
|
475
|
+
}
|
|
476
|
+
function build_tree(s, desc) {
|
|
477
|
+
var tree = desc.dyn_tree;
|
|
478
|
+
var stree = desc.stat_desc.static_tree;
|
|
479
|
+
var has_stree = desc.stat_desc.has_stree;
|
|
480
|
+
var elems = desc.stat_desc.elems;
|
|
481
|
+
var n, m;
|
|
482
|
+
var max_code = -1;
|
|
483
|
+
var node;
|
|
484
|
+
s.heap_len = 0;
|
|
485
|
+
s.heap_max = HEAP_SIZE;
|
|
486
|
+
for (n = 0; n < elems; n++) {
|
|
487
|
+
if (tree[n * 2] !== 0) {
|
|
488
|
+
s.heap[++s.heap_len] = max_code = n;
|
|
489
|
+
s.depth[n] = 0;
|
|
490
|
+
} else {
|
|
491
|
+
tree[n * 2 + 1] = 0;
|
|
492
|
+
}
|
|
493
|
+
}
|
|
494
|
+
while (s.heap_len < 2) {
|
|
495
|
+
node = s.heap[++s.heap_len] = max_code < 2 ? ++max_code : 0;
|
|
496
|
+
tree[node * 2] = 1;
|
|
497
|
+
s.depth[node] = 0;
|
|
498
|
+
s.opt_len--;
|
|
499
|
+
if (has_stree) {
|
|
500
|
+
s.static_len -= stree[node * 2 + 1];
|
|
501
|
+
}
|
|
502
|
+
}
|
|
503
|
+
desc.max_code = max_code;
|
|
504
|
+
for (n = s.heap_len >> 1; n >= 1; n--) {
|
|
505
|
+
pqdownheap(s, tree, n);
|
|
506
|
+
}
|
|
507
|
+
node = elems;
|
|
508
|
+
do {
|
|
509
|
+
n = s.heap[
|
|
510
|
+
1
|
|
511
|
+
/*SMALLEST*/
|
|
512
|
+
];
|
|
513
|
+
s.heap[
|
|
514
|
+
1
|
|
515
|
+
/*SMALLEST*/
|
|
516
|
+
] = s.heap[s.heap_len--];
|
|
517
|
+
pqdownheap(
|
|
518
|
+
s,
|
|
519
|
+
tree,
|
|
520
|
+
1
|
|
521
|
+
/*SMALLEST*/
|
|
522
|
+
);
|
|
523
|
+
m = s.heap[
|
|
524
|
+
1
|
|
525
|
+
/*SMALLEST*/
|
|
526
|
+
];
|
|
527
|
+
s.heap[--s.heap_max] = n;
|
|
528
|
+
s.heap[--s.heap_max] = m;
|
|
529
|
+
tree[node * 2] = tree[n * 2] + tree[m * 2];
|
|
530
|
+
s.depth[node] = (s.depth[n] >= s.depth[m] ? s.depth[n] : s.depth[m]) + 1;
|
|
531
|
+
tree[n * 2 + 1] = tree[m * 2 + 1] = node;
|
|
532
|
+
s.heap[
|
|
533
|
+
1
|
|
534
|
+
/*SMALLEST*/
|
|
535
|
+
] = node++;
|
|
536
|
+
pqdownheap(
|
|
537
|
+
s,
|
|
538
|
+
tree,
|
|
539
|
+
1
|
|
540
|
+
/*SMALLEST*/
|
|
541
|
+
);
|
|
542
|
+
} while (s.heap_len >= 2);
|
|
543
|
+
s.heap[--s.heap_max] = s.heap[
|
|
544
|
+
1
|
|
545
|
+
/*SMALLEST*/
|
|
546
|
+
];
|
|
547
|
+
gen_bitlen(s, desc);
|
|
548
|
+
gen_codes(tree, max_code, s.bl_count);
|
|
549
|
+
}
|
|
550
|
+
function scan_tree(s, tree, max_code) {
|
|
551
|
+
var n;
|
|
552
|
+
var prevlen = -1;
|
|
553
|
+
var curlen;
|
|
554
|
+
var nextlen = tree[0 * 2 + 1];
|
|
555
|
+
var count = 0;
|
|
556
|
+
var max_count = 7;
|
|
557
|
+
var min_count = 4;
|
|
558
|
+
if (nextlen === 0) {
|
|
559
|
+
max_count = 138;
|
|
560
|
+
min_count = 3;
|
|
561
|
+
}
|
|
562
|
+
tree[(max_code + 1) * 2 + 1] = 65535;
|
|
563
|
+
for (n = 0; n <= max_code; n++) {
|
|
564
|
+
curlen = nextlen;
|
|
565
|
+
nextlen = tree[(n + 1) * 2 + 1];
|
|
566
|
+
if (++count < max_count && curlen === nextlen) {
|
|
567
|
+
continue;
|
|
568
|
+
} else if (count < min_count) {
|
|
569
|
+
s.bl_tree[curlen * 2] += count;
|
|
570
|
+
} else if (curlen !== 0) {
|
|
571
|
+
if (curlen !== prevlen) {
|
|
572
|
+
s.bl_tree[curlen * 2]++;
|
|
573
|
+
}
|
|
574
|
+
s.bl_tree[REP_3_6 * 2]++;
|
|
575
|
+
} else if (count <= 10) {
|
|
576
|
+
s.bl_tree[REPZ_3_10 * 2]++;
|
|
577
|
+
} else {
|
|
578
|
+
s.bl_tree[REPZ_11_138 * 2]++;
|
|
579
|
+
}
|
|
580
|
+
count = 0;
|
|
581
|
+
prevlen = curlen;
|
|
582
|
+
if (nextlen === 0) {
|
|
583
|
+
max_count = 138;
|
|
584
|
+
min_count = 3;
|
|
585
|
+
} else if (curlen === nextlen) {
|
|
586
|
+
max_count = 6;
|
|
587
|
+
min_count = 3;
|
|
588
|
+
} else {
|
|
589
|
+
max_count = 7;
|
|
590
|
+
min_count = 4;
|
|
591
|
+
}
|
|
592
|
+
}
|
|
593
|
+
}
|
|
594
|
+
function send_tree(s, tree, max_code) {
|
|
595
|
+
var n;
|
|
596
|
+
var prevlen = -1;
|
|
597
|
+
var curlen;
|
|
598
|
+
var nextlen = tree[0 * 2 + 1];
|
|
599
|
+
var count = 0;
|
|
600
|
+
var max_count = 7;
|
|
601
|
+
var min_count = 4;
|
|
602
|
+
if (nextlen === 0) {
|
|
603
|
+
max_count = 138;
|
|
604
|
+
min_count = 3;
|
|
605
|
+
}
|
|
606
|
+
for (n = 0; n <= max_code; n++) {
|
|
607
|
+
curlen = nextlen;
|
|
608
|
+
nextlen = tree[(n + 1) * 2 + 1];
|
|
609
|
+
if (++count < max_count && curlen === nextlen) {
|
|
610
|
+
continue;
|
|
611
|
+
} else if (count < min_count) {
|
|
612
|
+
do {
|
|
613
|
+
send_code(s, curlen, s.bl_tree);
|
|
614
|
+
} while (--count !== 0);
|
|
615
|
+
} else if (curlen !== 0) {
|
|
616
|
+
if (curlen !== prevlen) {
|
|
617
|
+
send_code(s, curlen, s.bl_tree);
|
|
618
|
+
count--;
|
|
619
|
+
}
|
|
620
|
+
send_code(s, REP_3_6, s.bl_tree);
|
|
621
|
+
send_bits(s, count - 3, 2);
|
|
622
|
+
} else if (count <= 10) {
|
|
623
|
+
send_code(s, REPZ_3_10, s.bl_tree);
|
|
624
|
+
send_bits(s, count - 3, 3);
|
|
625
|
+
} else {
|
|
626
|
+
send_code(s, REPZ_11_138, s.bl_tree);
|
|
627
|
+
send_bits(s, count - 11, 7);
|
|
628
|
+
}
|
|
629
|
+
count = 0;
|
|
630
|
+
prevlen = curlen;
|
|
631
|
+
if (nextlen === 0) {
|
|
632
|
+
max_count = 138;
|
|
633
|
+
min_count = 3;
|
|
634
|
+
} else if (curlen === nextlen) {
|
|
635
|
+
max_count = 6;
|
|
636
|
+
min_count = 3;
|
|
637
|
+
} else {
|
|
638
|
+
max_count = 7;
|
|
639
|
+
min_count = 4;
|
|
640
|
+
}
|
|
641
|
+
}
|
|
642
|
+
}
|
|
643
|
+
function build_bl_tree(s) {
|
|
644
|
+
var max_blindex;
|
|
645
|
+
scan_tree(s, s.dyn_ltree, s.l_desc.max_code);
|
|
646
|
+
scan_tree(s, s.dyn_dtree, s.d_desc.max_code);
|
|
647
|
+
build_tree(s, s.bl_desc);
|
|
648
|
+
for (max_blindex = BL_CODES - 1; max_blindex >= 3; max_blindex--) {
|
|
649
|
+
if (s.bl_tree[bl_order[max_blindex] * 2 + 1] !== 0) {
|
|
650
|
+
break;
|
|
651
|
+
}
|
|
652
|
+
}
|
|
653
|
+
s.opt_len += 3 * (max_blindex + 1) + 5 + 5 + 4;
|
|
654
|
+
return max_blindex;
|
|
655
|
+
}
|
|
656
|
+
function send_all_trees(s, lcodes, dcodes, blcodes) {
|
|
657
|
+
var rank;
|
|
658
|
+
send_bits(s, lcodes - 257, 5);
|
|
659
|
+
send_bits(s, dcodes - 1, 5);
|
|
660
|
+
send_bits(s, blcodes - 4, 4);
|
|
661
|
+
for (rank = 0; rank < blcodes; rank++) {
|
|
662
|
+
send_bits(s, s.bl_tree[bl_order[rank] * 2 + 1], 3);
|
|
663
|
+
}
|
|
664
|
+
send_tree(s, s.dyn_ltree, lcodes - 1);
|
|
665
|
+
send_tree(s, s.dyn_dtree, dcodes - 1);
|
|
666
|
+
}
|
|
667
|
+
function detect_data_type(s) {
|
|
668
|
+
var black_mask = 4093624447;
|
|
669
|
+
var n;
|
|
670
|
+
for (n = 0; n <= 31; n++, black_mask >>>= 1) {
|
|
671
|
+
if (black_mask & 1 && s.dyn_ltree[n * 2] !== 0) {
|
|
672
|
+
return Z_BINARY;
|
|
673
|
+
}
|
|
674
|
+
}
|
|
675
|
+
if (s.dyn_ltree[9 * 2] !== 0 || s.dyn_ltree[10 * 2] !== 0 || s.dyn_ltree[13 * 2] !== 0) {
|
|
676
|
+
return Z_TEXT;
|
|
677
|
+
}
|
|
678
|
+
for (n = 32; n < LITERALS; n++) {
|
|
679
|
+
if (s.dyn_ltree[n * 2] !== 0) {
|
|
680
|
+
return Z_TEXT;
|
|
681
|
+
}
|
|
682
|
+
}
|
|
683
|
+
return Z_BINARY;
|
|
684
|
+
}
|
|
685
|
+
var static_init_done = false;
|
|
686
|
+
function _tr_init(s) {
|
|
687
|
+
if (!static_init_done) {
|
|
688
|
+
tr_static_init();
|
|
689
|
+
static_init_done = true;
|
|
690
|
+
}
|
|
691
|
+
s.l_desc = new TreeDesc(s.dyn_ltree, static_l_desc);
|
|
692
|
+
s.d_desc = new TreeDesc(s.dyn_dtree, static_d_desc);
|
|
693
|
+
s.bl_desc = new TreeDesc(s.bl_tree, static_bl_desc);
|
|
694
|
+
s.bi_buf = 0;
|
|
695
|
+
s.bi_valid = 0;
|
|
696
|
+
init_block(s);
|
|
697
|
+
}
|
|
698
|
+
function _tr_stored_block(s, buf, stored_len, last) {
|
|
699
|
+
send_bits(s, (STORED_BLOCK << 1) + (last ? 1 : 0), 3);
|
|
700
|
+
copy_block(s, buf, stored_len);
|
|
701
|
+
}
|
|
702
|
+
function _tr_align(s) {
|
|
703
|
+
send_bits(s, STATIC_TREES << 1, 3);
|
|
704
|
+
send_code(s, END_BLOCK, static_ltree);
|
|
705
|
+
bi_flush(s);
|
|
706
|
+
}
|
|
707
|
+
function _tr_flush_block(s, buf, stored_len, last) {
|
|
708
|
+
var opt_lenb, static_lenb;
|
|
709
|
+
var max_blindex = 0;
|
|
710
|
+
if (s.level > 0) {
|
|
711
|
+
if (s.strm.data_type === Z_UNKNOWN) {
|
|
712
|
+
s.strm.data_type = detect_data_type(s);
|
|
713
|
+
}
|
|
714
|
+
build_tree(s, s.l_desc);
|
|
715
|
+
build_tree(s, s.d_desc);
|
|
716
|
+
max_blindex = build_bl_tree(s);
|
|
717
|
+
opt_lenb = s.opt_len + 3 + 7 >>> 3;
|
|
718
|
+
static_lenb = s.static_len + 3 + 7 >>> 3;
|
|
719
|
+
if (static_lenb <= opt_lenb) {
|
|
720
|
+
opt_lenb = static_lenb;
|
|
721
|
+
}
|
|
722
|
+
} else {
|
|
723
|
+
opt_lenb = static_lenb = stored_len + 5;
|
|
724
|
+
}
|
|
725
|
+
if (stored_len + 4 <= opt_lenb && buf !== -1) {
|
|
726
|
+
_tr_stored_block(s, buf, stored_len, last);
|
|
727
|
+
} else if (s.strategy === Z_FIXED || static_lenb === opt_lenb) {
|
|
728
|
+
send_bits(s, (STATIC_TREES << 1) + (last ? 1 : 0), 3);
|
|
729
|
+
compress_block(s, static_ltree, static_dtree);
|
|
730
|
+
} else {
|
|
731
|
+
send_bits(s, (DYN_TREES << 1) + (last ? 1 : 0), 3);
|
|
732
|
+
send_all_trees(s, s.l_desc.max_code + 1, s.d_desc.max_code + 1, max_blindex + 1);
|
|
733
|
+
compress_block(s, s.dyn_ltree, s.dyn_dtree);
|
|
734
|
+
}
|
|
735
|
+
init_block(s);
|
|
736
|
+
if (last) {
|
|
737
|
+
bi_windup(s);
|
|
738
|
+
}
|
|
739
|
+
}
|
|
740
|
+
function _tr_tally(s, dist, lc) {
|
|
741
|
+
s.pending_buf[s.d_buf + s.last_lit * 2] = dist >>> 8 & 255;
|
|
742
|
+
s.pending_buf[s.d_buf + s.last_lit * 2 + 1] = dist & 255;
|
|
743
|
+
s.pending_buf[s.l_buf + s.last_lit] = lc & 255;
|
|
744
|
+
s.last_lit++;
|
|
745
|
+
if (dist === 0) {
|
|
746
|
+
s.dyn_ltree[lc * 2]++;
|
|
747
|
+
} else {
|
|
748
|
+
s.matches++;
|
|
749
|
+
dist--;
|
|
750
|
+
s.dyn_ltree[(_length_code[lc] + LITERALS + 1) * 2]++;
|
|
751
|
+
s.dyn_dtree[d_code(dist) * 2]++;
|
|
752
|
+
}
|
|
753
|
+
return s.last_lit === s.lit_bufsize - 1;
|
|
754
|
+
}
|
|
755
|
+
exports._tr_init = _tr_init;
|
|
756
|
+
exports._tr_stored_block = _tr_stored_block;
|
|
757
|
+
exports._tr_flush_block = _tr_flush_block;
|
|
758
|
+
exports._tr_tally = _tr_tally;
|
|
759
|
+
exports._tr_align = _tr_align;
|
|
760
|
+
}
|
|
761
|
+
});
|
|
762
|
+
|
|
763
|
+
// ../../node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/adler32.js
|
|
764
|
+
var require_adler32 = __commonJS({
|
|
765
|
+
"../../node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/adler32.js"(exports, module) {
|
|
766
|
+
function adler32(adler, buf, len, pos) {
|
|
767
|
+
var s1 = adler & 65535 | 0, s2 = adler >>> 16 & 65535 | 0, n = 0;
|
|
768
|
+
while (len !== 0) {
|
|
769
|
+
n = len > 2e3 ? 2e3 : len;
|
|
770
|
+
len -= n;
|
|
771
|
+
do {
|
|
772
|
+
s1 = s1 + buf[pos++] | 0;
|
|
773
|
+
s2 = s2 + s1 | 0;
|
|
774
|
+
} while (--n);
|
|
775
|
+
s1 %= 65521;
|
|
776
|
+
s2 %= 65521;
|
|
777
|
+
}
|
|
778
|
+
return s1 | s2 << 16 | 0;
|
|
779
|
+
}
|
|
780
|
+
module.exports = adler32;
|
|
781
|
+
}
|
|
782
|
+
});
|
|
783
|
+
|
|
784
|
+
// ../../node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/crc32.js
|
|
785
|
+
var require_crc32 = __commonJS({
|
|
786
|
+
"../../node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/crc32.js"(exports, module) {
|
|
787
|
+
function makeTable() {
|
|
788
|
+
var c, table = [];
|
|
789
|
+
for (var n = 0; n < 256; n++) {
|
|
790
|
+
c = n;
|
|
791
|
+
for (var k = 0; k < 8; k++) {
|
|
792
|
+
c = c & 1 ? 3988292384 ^ c >>> 1 : c >>> 1;
|
|
793
|
+
}
|
|
794
|
+
table[n] = c;
|
|
795
|
+
}
|
|
796
|
+
return table;
|
|
797
|
+
}
|
|
798
|
+
var crcTable = makeTable();
|
|
799
|
+
function crc32(crc, buf, len, pos) {
|
|
800
|
+
var t = crcTable, end = pos + len;
|
|
801
|
+
crc ^= -1;
|
|
802
|
+
for (var i = pos; i < end; i++) {
|
|
803
|
+
crc = crc >>> 8 ^ t[(crc ^ buf[i]) & 255];
|
|
804
|
+
}
|
|
805
|
+
return crc ^ -1;
|
|
806
|
+
}
|
|
807
|
+
module.exports = crc32;
|
|
808
|
+
}
|
|
809
|
+
});
|
|
810
|
+
|
|
811
|
+
// ../../node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/messages.js
|
|
812
|
+
var require_messages = __commonJS({
|
|
813
|
+
"../../node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/messages.js"(exports, module) {
|
|
814
|
+
module.exports = {
|
|
815
|
+
2: "need dictionary",
|
|
816
|
+
/* Z_NEED_DICT 2 */
|
|
817
|
+
1: "stream end",
|
|
818
|
+
/* Z_STREAM_END 1 */
|
|
819
|
+
0: "",
|
|
820
|
+
/* Z_OK 0 */
|
|
821
|
+
"-1": "file error",
|
|
822
|
+
/* Z_ERRNO (-1) */
|
|
823
|
+
"-2": "stream error",
|
|
824
|
+
/* Z_STREAM_ERROR (-2) */
|
|
825
|
+
"-3": "data error",
|
|
826
|
+
/* Z_DATA_ERROR (-3) */
|
|
827
|
+
"-4": "insufficient memory",
|
|
828
|
+
/* Z_MEM_ERROR (-4) */
|
|
829
|
+
"-5": "buffer error",
|
|
830
|
+
/* Z_BUF_ERROR (-5) */
|
|
831
|
+
"-6": "incompatible version"
|
|
832
|
+
/* Z_VERSION_ERROR (-6) */
|
|
833
|
+
};
|
|
834
|
+
}
|
|
835
|
+
});
|
|
836
|
+
|
|
837
|
+
// ../../node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/deflate.js
|
|
838
|
+
var require_deflate = __commonJS({
|
|
839
|
+
"../../node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/deflate.js"(exports) {
|
|
840
|
+
var utils = require_common();
|
|
841
|
+
var trees = require_trees();
|
|
842
|
+
var adler32 = require_adler32();
|
|
843
|
+
var crc32 = require_crc32();
|
|
844
|
+
var msg = require_messages();
|
|
845
|
+
var Z_NO_FLUSH = 0;
|
|
846
|
+
var Z_PARTIAL_FLUSH = 1;
|
|
847
|
+
var Z_FULL_FLUSH = 3;
|
|
848
|
+
var Z_FINISH = 4;
|
|
849
|
+
var Z_BLOCK = 5;
|
|
850
|
+
var Z_OK = 0;
|
|
851
|
+
var Z_STREAM_END = 1;
|
|
852
|
+
var Z_STREAM_ERROR = -2;
|
|
853
|
+
var Z_DATA_ERROR = -3;
|
|
854
|
+
var Z_BUF_ERROR = -5;
|
|
855
|
+
var Z_DEFAULT_COMPRESSION = -1;
|
|
856
|
+
var Z_FILTERED = 1;
|
|
857
|
+
var Z_HUFFMAN_ONLY = 2;
|
|
858
|
+
var Z_RLE = 3;
|
|
859
|
+
var Z_FIXED = 4;
|
|
860
|
+
var Z_DEFAULT_STRATEGY = 0;
|
|
861
|
+
var Z_UNKNOWN = 2;
|
|
862
|
+
var Z_DEFLATED = 8;
|
|
863
|
+
var MAX_MEM_LEVEL = 9;
|
|
864
|
+
var MAX_WBITS = 15;
|
|
865
|
+
var DEF_MEM_LEVEL = 8;
|
|
866
|
+
var LENGTH_CODES = 29;
|
|
867
|
+
var LITERALS = 256;
|
|
868
|
+
var L_CODES = LITERALS + 1 + LENGTH_CODES;
|
|
869
|
+
var D_CODES = 30;
|
|
870
|
+
var BL_CODES = 19;
|
|
871
|
+
var HEAP_SIZE = 2 * L_CODES + 1;
|
|
872
|
+
var MAX_BITS = 15;
|
|
873
|
+
var MIN_MATCH = 3;
|
|
874
|
+
var MAX_MATCH = 258;
|
|
875
|
+
var MIN_LOOKAHEAD = MAX_MATCH + MIN_MATCH + 1;
|
|
876
|
+
var PRESET_DICT = 32;
|
|
877
|
+
var INIT_STATE = 42;
|
|
878
|
+
var EXTRA_STATE = 69;
|
|
879
|
+
var NAME_STATE = 73;
|
|
880
|
+
var COMMENT_STATE = 91;
|
|
881
|
+
var HCRC_STATE = 103;
|
|
882
|
+
var BUSY_STATE = 113;
|
|
883
|
+
var FINISH_STATE = 666;
|
|
884
|
+
var BS_NEED_MORE = 1;
|
|
885
|
+
var BS_BLOCK_DONE = 2;
|
|
886
|
+
var BS_FINISH_STARTED = 3;
|
|
887
|
+
var BS_FINISH_DONE = 4;
|
|
888
|
+
var OS_CODE = 3;
|
|
889
|
+
function err12(strm, errorCode) {
|
|
890
|
+
strm.msg = msg[errorCode];
|
|
891
|
+
return errorCode;
|
|
892
|
+
}
|
|
893
|
+
function rank(f) {
|
|
894
|
+
return (f << 1) - (f > 4 ? 9 : 0);
|
|
895
|
+
}
|
|
896
|
+
function zero(buf) {
|
|
897
|
+
var len = buf.length;
|
|
898
|
+
while (--len >= 0) {
|
|
899
|
+
buf[len] = 0;
|
|
900
|
+
}
|
|
901
|
+
}
|
|
902
|
+
function flush_pending(strm) {
|
|
903
|
+
var s = strm.state;
|
|
904
|
+
var len = s.pending;
|
|
905
|
+
if (len > strm.avail_out) {
|
|
906
|
+
len = strm.avail_out;
|
|
907
|
+
}
|
|
908
|
+
if (len === 0) {
|
|
909
|
+
return;
|
|
910
|
+
}
|
|
911
|
+
utils.arraySet(strm.output, s.pending_buf, s.pending_out, len, strm.next_out);
|
|
912
|
+
strm.next_out += len;
|
|
913
|
+
s.pending_out += len;
|
|
914
|
+
strm.total_out += len;
|
|
915
|
+
strm.avail_out -= len;
|
|
916
|
+
s.pending -= len;
|
|
917
|
+
if (s.pending === 0) {
|
|
918
|
+
s.pending_out = 0;
|
|
919
|
+
}
|
|
920
|
+
}
|
|
921
|
+
function flush_block_only(s, last) {
|
|
922
|
+
trees._tr_flush_block(s, s.block_start >= 0 ? s.block_start : -1, s.strstart - s.block_start, last);
|
|
923
|
+
s.block_start = s.strstart;
|
|
924
|
+
flush_pending(s.strm);
|
|
925
|
+
}
|
|
926
|
+
function put_byte(s, b) {
|
|
927
|
+
s.pending_buf[s.pending++] = b;
|
|
928
|
+
}
|
|
929
|
+
function putShortMSB(s, b) {
|
|
930
|
+
s.pending_buf[s.pending++] = b >>> 8 & 255;
|
|
931
|
+
s.pending_buf[s.pending++] = b & 255;
|
|
932
|
+
}
|
|
933
|
+
function read_buf(strm, buf, start, size) {
|
|
934
|
+
var len = strm.avail_in;
|
|
935
|
+
if (len > size) {
|
|
936
|
+
len = size;
|
|
937
|
+
}
|
|
938
|
+
if (len === 0) {
|
|
939
|
+
return 0;
|
|
940
|
+
}
|
|
941
|
+
strm.avail_in -= len;
|
|
942
|
+
utils.arraySet(buf, strm.input, strm.next_in, len, start);
|
|
943
|
+
if (strm.state.wrap === 1) {
|
|
944
|
+
strm.adler = adler32(strm.adler, buf, len, start);
|
|
945
|
+
} else if (strm.state.wrap === 2) {
|
|
946
|
+
strm.adler = crc32(strm.adler, buf, len, start);
|
|
947
|
+
}
|
|
948
|
+
strm.next_in += len;
|
|
949
|
+
strm.total_in += len;
|
|
950
|
+
return len;
|
|
951
|
+
}
|
|
952
|
+
function longest_match(s, cur_match) {
|
|
953
|
+
var chain_length = s.max_chain_length;
|
|
954
|
+
var scan = s.strstart;
|
|
955
|
+
var match;
|
|
956
|
+
var len;
|
|
957
|
+
var best_len = s.prev_length;
|
|
958
|
+
var nice_match = s.nice_match;
|
|
959
|
+
var limit = s.strstart > s.w_size - MIN_LOOKAHEAD ? s.strstart - (s.w_size - MIN_LOOKAHEAD) : 0;
|
|
960
|
+
var _win = s.window;
|
|
961
|
+
var wmask = s.w_mask;
|
|
962
|
+
var prev = s.prev;
|
|
963
|
+
var strend = s.strstart + MAX_MATCH;
|
|
964
|
+
var scan_end1 = _win[scan + best_len - 1];
|
|
965
|
+
var scan_end = _win[scan + best_len];
|
|
966
|
+
if (s.prev_length >= s.good_match) {
|
|
967
|
+
chain_length >>= 2;
|
|
968
|
+
}
|
|
969
|
+
if (nice_match > s.lookahead) {
|
|
970
|
+
nice_match = s.lookahead;
|
|
971
|
+
}
|
|
972
|
+
do {
|
|
973
|
+
match = cur_match;
|
|
974
|
+
if (_win[match + best_len] !== scan_end || _win[match + best_len - 1] !== scan_end1 || _win[match] !== _win[scan] || _win[++match] !== _win[scan + 1]) {
|
|
975
|
+
continue;
|
|
976
|
+
}
|
|
977
|
+
scan += 2;
|
|
978
|
+
match++;
|
|
979
|
+
do {
|
|
980
|
+
} while (_win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && scan < strend);
|
|
981
|
+
len = MAX_MATCH - (strend - scan);
|
|
982
|
+
scan = strend - MAX_MATCH;
|
|
983
|
+
if (len > best_len) {
|
|
984
|
+
s.match_start = cur_match;
|
|
985
|
+
best_len = len;
|
|
986
|
+
if (len >= nice_match) {
|
|
987
|
+
break;
|
|
988
|
+
}
|
|
989
|
+
scan_end1 = _win[scan + best_len - 1];
|
|
990
|
+
scan_end = _win[scan + best_len];
|
|
991
|
+
}
|
|
992
|
+
} while ((cur_match = prev[cur_match & wmask]) > limit && --chain_length !== 0);
|
|
993
|
+
if (best_len <= s.lookahead) {
|
|
994
|
+
return best_len;
|
|
995
|
+
}
|
|
996
|
+
return s.lookahead;
|
|
997
|
+
}
|
|
998
|
+
function fill_window(s) {
|
|
999
|
+
var _w_size = s.w_size;
|
|
1000
|
+
var p, n, m, more, str;
|
|
1001
|
+
do {
|
|
1002
|
+
more = s.window_size - s.lookahead - s.strstart;
|
|
1003
|
+
if (s.strstart >= _w_size + (_w_size - MIN_LOOKAHEAD)) {
|
|
1004
|
+
utils.arraySet(s.window, s.window, _w_size, _w_size, 0);
|
|
1005
|
+
s.match_start -= _w_size;
|
|
1006
|
+
s.strstart -= _w_size;
|
|
1007
|
+
s.block_start -= _w_size;
|
|
1008
|
+
n = s.hash_size;
|
|
1009
|
+
p = n;
|
|
1010
|
+
do {
|
|
1011
|
+
m = s.head[--p];
|
|
1012
|
+
s.head[p] = m >= _w_size ? m - _w_size : 0;
|
|
1013
|
+
} while (--n);
|
|
1014
|
+
n = _w_size;
|
|
1015
|
+
p = n;
|
|
1016
|
+
do {
|
|
1017
|
+
m = s.prev[--p];
|
|
1018
|
+
s.prev[p] = m >= _w_size ? m - _w_size : 0;
|
|
1019
|
+
} while (--n);
|
|
1020
|
+
more += _w_size;
|
|
1021
|
+
}
|
|
1022
|
+
if (s.strm.avail_in === 0) {
|
|
1023
|
+
break;
|
|
1024
|
+
}
|
|
1025
|
+
n = read_buf(s.strm, s.window, s.strstart + s.lookahead, more);
|
|
1026
|
+
s.lookahead += n;
|
|
1027
|
+
if (s.lookahead + s.insert >= MIN_MATCH) {
|
|
1028
|
+
str = s.strstart - s.insert;
|
|
1029
|
+
s.ins_h = s.window[str];
|
|
1030
|
+
s.ins_h = (s.ins_h << s.hash_shift ^ s.window[str + 1]) & s.hash_mask;
|
|
1031
|
+
while (s.insert) {
|
|
1032
|
+
s.ins_h = (s.ins_h << s.hash_shift ^ s.window[str + MIN_MATCH - 1]) & s.hash_mask;
|
|
1033
|
+
s.prev[str & s.w_mask] = s.head[s.ins_h];
|
|
1034
|
+
s.head[s.ins_h] = str;
|
|
1035
|
+
str++;
|
|
1036
|
+
s.insert--;
|
|
1037
|
+
if (s.lookahead + s.insert < MIN_MATCH) {
|
|
1038
|
+
break;
|
|
1039
|
+
}
|
|
1040
|
+
}
|
|
1041
|
+
}
|
|
1042
|
+
} while (s.lookahead < MIN_LOOKAHEAD && s.strm.avail_in !== 0);
|
|
1043
|
+
}
|
|
1044
|
+
function deflate_stored(s, flush) {
|
|
1045
|
+
var max_block_size = 65535;
|
|
1046
|
+
if (max_block_size > s.pending_buf_size - 5) {
|
|
1047
|
+
max_block_size = s.pending_buf_size - 5;
|
|
1048
|
+
}
|
|
1049
|
+
for (; ; ) {
|
|
1050
|
+
if (s.lookahead <= 1) {
|
|
1051
|
+
fill_window(s);
|
|
1052
|
+
if (s.lookahead === 0 && flush === Z_NO_FLUSH) {
|
|
1053
|
+
return BS_NEED_MORE;
|
|
1054
|
+
}
|
|
1055
|
+
if (s.lookahead === 0) {
|
|
1056
|
+
break;
|
|
1057
|
+
}
|
|
1058
|
+
}
|
|
1059
|
+
s.strstart += s.lookahead;
|
|
1060
|
+
s.lookahead = 0;
|
|
1061
|
+
var max_start = s.block_start + max_block_size;
|
|
1062
|
+
if (s.strstart === 0 || s.strstart >= max_start) {
|
|
1063
|
+
s.lookahead = s.strstart - max_start;
|
|
1064
|
+
s.strstart = max_start;
|
|
1065
|
+
flush_block_only(s, false);
|
|
1066
|
+
if (s.strm.avail_out === 0) {
|
|
1067
|
+
return BS_NEED_MORE;
|
|
1068
|
+
}
|
|
1069
|
+
}
|
|
1070
|
+
if (s.strstart - s.block_start >= s.w_size - MIN_LOOKAHEAD) {
|
|
1071
|
+
flush_block_only(s, false);
|
|
1072
|
+
if (s.strm.avail_out === 0) {
|
|
1073
|
+
return BS_NEED_MORE;
|
|
1074
|
+
}
|
|
1075
|
+
}
|
|
1076
|
+
}
|
|
1077
|
+
s.insert = 0;
|
|
1078
|
+
if (flush === Z_FINISH) {
|
|
1079
|
+
flush_block_only(s, true);
|
|
1080
|
+
if (s.strm.avail_out === 0) {
|
|
1081
|
+
return BS_FINISH_STARTED;
|
|
1082
|
+
}
|
|
1083
|
+
return BS_FINISH_DONE;
|
|
1084
|
+
}
|
|
1085
|
+
if (s.strstart > s.block_start) {
|
|
1086
|
+
flush_block_only(s, false);
|
|
1087
|
+
if (s.strm.avail_out === 0) {
|
|
1088
|
+
return BS_NEED_MORE;
|
|
1089
|
+
}
|
|
1090
|
+
}
|
|
1091
|
+
return BS_NEED_MORE;
|
|
1092
|
+
}
|
|
1093
|
+
function deflate_fast(s, flush) {
|
|
1094
|
+
var hash_head;
|
|
1095
|
+
var bflush;
|
|
1096
|
+
for (; ; ) {
|
|
1097
|
+
if (s.lookahead < MIN_LOOKAHEAD) {
|
|
1098
|
+
fill_window(s);
|
|
1099
|
+
if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH) {
|
|
1100
|
+
return BS_NEED_MORE;
|
|
1101
|
+
}
|
|
1102
|
+
if (s.lookahead === 0) {
|
|
1103
|
+
break;
|
|
1104
|
+
}
|
|
1105
|
+
}
|
|
1106
|
+
hash_head = 0;
|
|
1107
|
+
if (s.lookahead >= MIN_MATCH) {
|
|
1108
|
+
s.ins_h = (s.ins_h << s.hash_shift ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;
|
|
1109
|
+
hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];
|
|
1110
|
+
s.head[s.ins_h] = s.strstart;
|
|
1111
|
+
}
|
|
1112
|
+
if (hash_head !== 0 && s.strstart - hash_head <= s.w_size - MIN_LOOKAHEAD) {
|
|
1113
|
+
s.match_length = longest_match(s, hash_head);
|
|
1114
|
+
}
|
|
1115
|
+
if (s.match_length >= MIN_MATCH) {
|
|
1116
|
+
bflush = trees._tr_tally(s, s.strstart - s.match_start, s.match_length - MIN_MATCH);
|
|
1117
|
+
s.lookahead -= s.match_length;
|
|
1118
|
+
if (s.match_length <= s.max_lazy_match && s.lookahead >= MIN_MATCH) {
|
|
1119
|
+
s.match_length--;
|
|
1120
|
+
do {
|
|
1121
|
+
s.strstart++;
|
|
1122
|
+
s.ins_h = (s.ins_h << s.hash_shift ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;
|
|
1123
|
+
hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];
|
|
1124
|
+
s.head[s.ins_h] = s.strstart;
|
|
1125
|
+
} while (--s.match_length !== 0);
|
|
1126
|
+
s.strstart++;
|
|
1127
|
+
} else {
|
|
1128
|
+
s.strstart += s.match_length;
|
|
1129
|
+
s.match_length = 0;
|
|
1130
|
+
s.ins_h = s.window[s.strstart];
|
|
1131
|
+
s.ins_h = (s.ins_h << s.hash_shift ^ s.window[s.strstart + 1]) & s.hash_mask;
|
|
1132
|
+
}
|
|
1133
|
+
} else {
|
|
1134
|
+
bflush = trees._tr_tally(s, 0, s.window[s.strstart]);
|
|
1135
|
+
s.lookahead--;
|
|
1136
|
+
s.strstart++;
|
|
1137
|
+
}
|
|
1138
|
+
if (bflush) {
|
|
1139
|
+
flush_block_only(s, false);
|
|
1140
|
+
if (s.strm.avail_out === 0) {
|
|
1141
|
+
return BS_NEED_MORE;
|
|
1142
|
+
}
|
|
1143
|
+
}
|
|
1144
|
+
}
|
|
1145
|
+
s.insert = s.strstart < MIN_MATCH - 1 ? s.strstart : MIN_MATCH - 1;
|
|
1146
|
+
if (flush === Z_FINISH) {
|
|
1147
|
+
flush_block_only(s, true);
|
|
1148
|
+
if (s.strm.avail_out === 0) {
|
|
1149
|
+
return BS_FINISH_STARTED;
|
|
1150
|
+
}
|
|
1151
|
+
return BS_FINISH_DONE;
|
|
1152
|
+
}
|
|
1153
|
+
if (s.last_lit) {
|
|
1154
|
+
flush_block_only(s, false);
|
|
1155
|
+
if (s.strm.avail_out === 0) {
|
|
1156
|
+
return BS_NEED_MORE;
|
|
1157
|
+
}
|
|
1158
|
+
}
|
|
1159
|
+
return BS_BLOCK_DONE;
|
|
1160
|
+
}
|
|
1161
|
+
function deflate_slow(s, flush) {
|
|
1162
|
+
var hash_head;
|
|
1163
|
+
var bflush;
|
|
1164
|
+
var max_insert;
|
|
1165
|
+
for (; ; ) {
|
|
1166
|
+
if (s.lookahead < MIN_LOOKAHEAD) {
|
|
1167
|
+
fill_window(s);
|
|
1168
|
+
if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH) {
|
|
1169
|
+
return BS_NEED_MORE;
|
|
1170
|
+
}
|
|
1171
|
+
if (s.lookahead === 0) {
|
|
1172
|
+
break;
|
|
1173
|
+
}
|
|
1174
|
+
}
|
|
1175
|
+
hash_head = 0;
|
|
1176
|
+
if (s.lookahead >= MIN_MATCH) {
|
|
1177
|
+
s.ins_h = (s.ins_h << s.hash_shift ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;
|
|
1178
|
+
hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];
|
|
1179
|
+
s.head[s.ins_h] = s.strstart;
|
|
1180
|
+
}
|
|
1181
|
+
s.prev_length = s.match_length;
|
|
1182
|
+
s.prev_match = s.match_start;
|
|
1183
|
+
s.match_length = MIN_MATCH - 1;
|
|
1184
|
+
if (hash_head !== 0 && s.prev_length < s.max_lazy_match && s.strstart - hash_head <= s.w_size - MIN_LOOKAHEAD) {
|
|
1185
|
+
s.match_length = longest_match(s, hash_head);
|
|
1186
|
+
if (s.match_length <= 5 && (s.strategy === Z_FILTERED || s.match_length === MIN_MATCH && s.strstart - s.match_start > 4096)) {
|
|
1187
|
+
s.match_length = MIN_MATCH - 1;
|
|
1188
|
+
}
|
|
1189
|
+
}
|
|
1190
|
+
if (s.prev_length >= MIN_MATCH && s.match_length <= s.prev_length) {
|
|
1191
|
+
max_insert = s.strstart + s.lookahead - MIN_MATCH;
|
|
1192
|
+
bflush = trees._tr_tally(s, s.strstart - 1 - s.prev_match, s.prev_length - MIN_MATCH);
|
|
1193
|
+
s.lookahead -= s.prev_length - 1;
|
|
1194
|
+
s.prev_length -= 2;
|
|
1195
|
+
do {
|
|
1196
|
+
if (++s.strstart <= max_insert) {
|
|
1197
|
+
s.ins_h = (s.ins_h << s.hash_shift ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;
|
|
1198
|
+
hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];
|
|
1199
|
+
s.head[s.ins_h] = s.strstart;
|
|
1200
|
+
}
|
|
1201
|
+
} while (--s.prev_length !== 0);
|
|
1202
|
+
s.match_available = 0;
|
|
1203
|
+
s.match_length = MIN_MATCH - 1;
|
|
1204
|
+
s.strstart++;
|
|
1205
|
+
if (bflush) {
|
|
1206
|
+
flush_block_only(s, false);
|
|
1207
|
+
if (s.strm.avail_out === 0) {
|
|
1208
|
+
return BS_NEED_MORE;
|
|
1209
|
+
}
|
|
1210
|
+
}
|
|
1211
|
+
} else if (s.match_available) {
|
|
1212
|
+
bflush = trees._tr_tally(s, 0, s.window[s.strstart - 1]);
|
|
1213
|
+
if (bflush) {
|
|
1214
|
+
flush_block_only(s, false);
|
|
1215
|
+
}
|
|
1216
|
+
s.strstart++;
|
|
1217
|
+
s.lookahead--;
|
|
1218
|
+
if (s.strm.avail_out === 0) {
|
|
1219
|
+
return BS_NEED_MORE;
|
|
1220
|
+
}
|
|
1221
|
+
} else {
|
|
1222
|
+
s.match_available = 1;
|
|
1223
|
+
s.strstart++;
|
|
1224
|
+
s.lookahead--;
|
|
1225
|
+
}
|
|
1226
|
+
}
|
|
1227
|
+
if (s.match_available) {
|
|
1228
|
+
bflush = trees._tr_tally(s, 0, s.window[s.strstart - 1]);
|
|
1229
|
+
s.match_available = 0;
|
|
1230
|
+
}
|
|
1231
|
+
s.insert = s.strstart < MIN_MATCH - 1 ? s.strstart : MIN_MATCH - 1;
|
|
1232
|
+
if (flush === Z_FINISH) {
|
|
1233
|
+
flush_block_only(s, true);
|
|
1234
|
+
if (s.strm.avail_out === 0) {
|
|
1235
|
+
return BS_FINISH_STARTED;
|
|
1236
|
+
}
|
|
1237
|
+
return BS_FINISH_DONE;
|
|
1238
|
+
}
|
|
1239
|
+
if (s.last_lit) {
|
|
1240
|
+
flush_block_only(s, false);
|
|
1241
|
+
if (s.strm.avail_out === 0) {
|
|
1242
|
+
return BS_NEED_MORE;
|
|
1243
|
+
}
|
|
1244
|
+
}
|
|
1245
|
+
return BS_BLOCK_DONE;
|
|
1246
|
+
}
|
|
1247
|
+
function deflate_rle(s, flush) {
|
|
1248
|
+
var bflush;
|
|
1249
|
+
var prev;
|
|
1250
|
+
var scan, strend;
|
|
1251
|
+
var _win = s.window;
|
|
1252
|
+
for (; ; ) {
|
|
1253
|
+
if (s.lookahead <= MAX_MATCH) {
|
|
1254
|
+
fill_window(s);
|
|
1255
|
+
if (s.lookahead <= MAX_MATCH && flush === Z_NO_FLUSH) {
|
|
1256
|
+
return BS_NEED_MORE;
|
|
1257
|
+
}
|
|
1258
|
+
if (s.lookahead === 0) {
|
|
1259
|
+
break;
|
|
1260
|
+
}
|
|
1261
|
+
}
|
|
1262
|
+
s.match_length = 0;
|
|
1263
|
+
if (s.lookahead >= MIN_MATCH && s.strstart > 0) {
|
|
1264
|
+
scan = s.strstart - 1;
|
|
1265
|
+
prev = _win[scan];
|
|
1266
|
+
if (prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan]) {
|
|
1267
|
+
strend = s.strstart + MAX_MATCH;
|
|
1268
|
+
do {
|
|
1269
|
+
} while (prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan] && scan < strend);
|
|
1270
|
+
s.match_length = MAX_MATCH - (strend - scan);
|
|
1271
|
+
if (s.match_length > s.lookahead) {
|
|
1272
|
+
s.match_length = s.lookahead;
|
|
1273
|
+
}
|
|
1274
|
+
}
|
|
1275
|
+
}
|
|
1276
|
+
if (s.match_length >= MIN_MATCH) {
|
|
1277
|
+
bflush = trees._tr_tally(s, 1, s.match_length - MIN_MATCH);
|
|
1278
|
+
s.lookahead -= s.match_length;
|
|
1279
|
+
s.strstart += s.match_length;
|
|
1280
|
+
s.match_length = 0;
|
|
1281
|
+
} else {
|
|
1282
|
+
bflush = trees._tr_tally(s, 0, s.window[s.strstart]);
|
|
1283
|
+
s.lookahead--;
|
|
1284
|
+
s.strstart++;
|
|
1285
|
+
}
|
|
1286
|
+
if (bflush) {
|
|
1287
|
+
flush_block_only(s, false);
|
|
1288
|
+
if (s.strm.avail_out === 0) {
|
|
1289
|
+
return BS_NEED_MORE;
|
|
1290
|
+
}
|
|
1291
|
+
}
|
|
1292
|
+
}
|
|
1293
|
+
s.insert = 0;
|
|
1294
|
+
if (flush === Z_FINISH) {
|
|
1295
|
+
flush_block_only(s, true);
|
|
1296
|
+
if (s.strm.avail_out === 0) {
|
|
1297
|
+
return BS_FINISH_STARTED;
|
|
1298
|
+
}
|
|
1299
|
+
return BS_FINISH_DONE;
|
|
1300
|
+
}
|
|
1301
|
+
if (s.last_lit) {
|
|
1302
|
+
flush_block_only(s, false);
|
|
1303
|
+
if (s.strm.avail_out === 0) {
|
|
1304
|
+
return BS_NEED_MORE;
|
|
1305
|
+
}
|
|
1306
|
+
}
|
|
1307
|
+
return BS_BLOCK_DONE;
|
|
1308
|
+
}
|
|
1309
|
+
function deflate_huff(s, flush) {
|
|
1310
|
+
var bflush;
|
|
1311
|
+
for (; ; ) {
|
|
1312
|
+
if (s.lookahead === 0) {
|
|
1313
|
+
fill_window(s);
|
|
1314
|
+
if (s.lookahead === 0) {
|
|
1315
|
+
if (flush === Z_NO_FLUSH) {
|
|
1316
|
+
return BS_NEED_MORE;
|
|
1317
|
+
}
|
|
1318
|
+
break;
|
|
1319
|
+
}
|
|
1320
|
+
}
|
|
1321
|
+
s.match_length = 0;
|
|
1322
|
+
bflush = trees._tr_tally(s, 0, s.window[s.strstart]);
|
|
1323
|
+
s.lookahead--;
|
|
1324
|
+
s.strstart++;
|
|
1325
|
+
if (bflush) {
|
|
1326
|
+
flush_block_only(s, false);
|
|
1327
|
+
if (s.strm.avail_out === 0) {
|
|
1328
|
+
return BS_NEED_MORE;
|
|
1329
|
+
}
|
|
1330
|
+
}
|
|
1331
|
+
}
|
|
1332
|
+
s.insert = 0;
|
|
1333
|
+
if (flush === Z_FINISH) {
|
|
1334
|
+
flush_block_only(s, true);
|
|
1335
|
+
if (s.strm.avail_out === 0) {
|
|
1336
|
+
return BS_FINISH_STARTED;
|
|
1337
|
+
}
|
|
1338
|
+
return BS_FINISH_DONE;
|
|
1339
|
+
}
|
|
1340
|
+
if (s.last_lit) {
|
|
1341
|
+
flush_block_only(s, false);
|
|
1342
|
+
if (s.strm.avail_out === 0) {
|
|
1343
|
+
return BS_NEED_MORE;
|
|
1344
|
+
}
|
|
1345
|
+
}
|
|
1346
|
+
return BS_BLOCK_DONE;
|
|
1347
|
+
}
|
|
1348
|
+
function Config(good_length, max_lazy, nice_length, max_chain, func) {
|
|
1349
|
+
this.good_length = good_length;
|
|
1350
|
+
this.max_lazy = max_lazy;
|
|
1351
|
+
this.nice_length = nice_length;
|
|
1352
|
+
this.max_chain = max_chain;
|
|
1353
|
+
this.func = func;
|
|
1354
|
+
}
|
|
1355
|
+
var configuration_table;
|
|
1356
|
+
configuration_table = [
|
|
1357
|
+
/* good lazy nice chain */
|
|
1358
|
+
new Config(0, 0, 0, 0, deflate_stored),
|
|
1359
|
+
/* 0 store only */
|
|
1360
|
+
new Config(4, 4, 8, 4, deflate_fast),
|
|
1361
|
+
/* 1 max speed, no lazy matches */
|
|
1362
|
+
new Config(4, 5, 16, 8, deflate_fast),
|
|
1363
|
+
/* 2 */
|
|
1364
|
+
new Config(4, 6, 32, 32, deflate_fast),
|
|
1365
|
+
/* 3 */
|
|
1366
|
+
new Config(4, 4, 16, 16, deflate_slow),
|
|
1367
|
+
/* 4 lazy matches */
|
|
1368
|
+
new Config(8, 16, 32, 32, deflate_slow),
|
|
1369
|
+
/* 5 */
|
|
1370
|
+
new Config(8, 16, 128, 128, deflate_slow),
|
|
1371
|
+
/* 6 */
|
|
1372
|
+
new Config(8, 32, 128, 256, deflate_slow),
|
|
1373
|
+
/* 7 */
|
|
1374
|
+
new Config(32, 128, 258, 1024, deflate_slow),
|
|
1375
|
+
/* 8 */
|
|
1376
|
+
new Config(32, 258, 258, 4096, deflate_slow)
|
|
1377
|
+
/* 9 max compression */
|
|
1378
|
+
];
|
|
1379
|
+
function lm_init(s) {
|
|
1380
|
+
s.window_size = 2 * s.w_size;
|
|
1381
|
+
zero(s.head);
|
|
1382
|
+
s.max_lazy_match = configuration_table[s.level].max_lazy;
|
|
1383
|
+
s.good_match = configuration_table[s.level].good_length;
|
|
1384
|
+
s.nice_match = configuration_table[s.level].nice_length;
|
|
1385
|
+
s.max_chain_length = configuration_table[s.level].max_chain;
|
|
1386
|
+
s.strstart = 0;
|
|
1387
|
+
s.block_start = 0;
|
|
1388
|
+
s.lookahead = 0;
|
|
1389
|
+
s.insert = 0;
|
|
1390
|
+
s.match_length = s.prev_length = MIN_MATCH - 1;
|
|
1391
|
+
s.match_available = 0;
|
|
1392
|
+
s.ins_h = 0;
|
|
1393
|
+
}
|
|
1394
|
+
function DeflateState() {
|
|
1395
|
+
this.strm = null;
|
|
1396
|
+
this.status = 0;
|
|
1397
|
+
this.pending_buf = null;
|
|
1398
|
+
this.pending_buf_size = 0;
|
|
1399
|
+
this.pending_out = 0;
|
|
1400
|
+
this.pending = 0;
|
|
1401
|
+
this.wrap = 0;
|
|
1402
|
+
this.gzhead = null;
|
|
1403
|
+
this.gzindex = 0;
|
|
1404
|
+
this.method = Z_DEFLATED;
|
|
1405
|
+
this.last_flush = -1;
|
|
1406
|
+
this.w_size = 0;
|
|
1407
|
+
this.w_bits = 0;
|
|
1408
|
+
this.w_mask = 0;
|
|
1409
|
+
this.window = null;
|
|
1410
|
+
this.window_size = 0;
|
|
1411
|
+
this.prev = null;
|
|
1412
|
+
this.head = null;
|
|
1413
|
+
this.ins_h = 0;
|
|
1414
|
+
this.hash_size = 0;
|
|
1415
|
+
this.hash_bits = 0;
|
|
1416
|
+
this.hash_mask = 0;
|
|
1417
|
+
this.hash_shift = 0;
|
|
1418
|
+
this.block_start = 0;
|
|
1419
|
+
this.match_length = 0;
|
|
1420
|
+
this.prev_match = 0;
|
|
1421
|
+
this.match_available = 0;
|
|
1422
|
+
this.strstart = 0;
|
|
1423
|
+
this.match_start = 0;
|
|
1424
|
+
this.lookahead = 0;
|
|
1425
|
+
this.prev_length = 0;
|
|
1426
|
+
this.max_chain_length = 0;
|
|
1427
|
+
this.max_lazy_match = 0;
|
|
1428
|
+
this.level = 0;
|
|
1429
|
+
this.strategy = 0;
|
|
1430
|
+
this.good_match = 0;
|
|
1431
|
+
this.nice_match = 0;
|
|
1432
|
+
this.dyn_ltree = new utils.Buf16(HEAP_SIZE * 2);
|
|
1433
|
+
this.dyn_dtree = new utils.Buf16((2 * D_CODES + 1) * 2);
|
|
1434
|
+
this.bl_tree = new utils.Buf16((2 * BL_CODES + 1) * 2);
|
|
1435
|
+
zero(this.dyn_ltree);
|
|
1436
|
+
zero(this.dyn_dtree);
|
|
1437
|
+
zero(this.bl_tree);
|
|
1438
|
+
this.l_desc = null;
|
|
1439
|
+
this.d_desc = null;
|
|
1440
|
+
this.bl_desc = null;
|
|
1441
|
+
this.bl_count = new utils.Buf16(MAX_BITS + 1);
|
|
1442
|
+
this.heap = new utils.Buf16(2 * L_CODES + 1);
|
|
1443
|
+
zero(this.heap);
|
|
1444
|
+
this.heap_len = 0;
|
|
1445
|
+
this.heap_max = 0;
|
|
1446
|
+
this.depth = new utils.Buf16(2 * L_CODES + 1);
|
|
1447
|
+
zero(this.depth);
|
|
1448
|
+
this.l_buf = 0;
|
|
1449
|
+
this.lit_bufsize = 0;
|
|
1450
|
+
this.last_lit = 0;
|
|
1451
|
+
this.d_buf = 0;
|
|
1452
|
+
this.opt_len = 0;
|
|
1453
|
+
this.static_len = 0;
|
|
1454
|
+
this.matches = 0;
|
|
1455
|
+
this.insert = 0;
|
|
1456
|
+
this.bi_buf = 0;
|
|
1457
|
+
this.bi_valid = 0;
|
|
1458
|
+
}
|
|
1459
|
+
function deflateResetKeep(strm) {
|
|
1460
|
+
var s;
|
|
1461
|
+
if (!strm || !strm.state) {
|
|
1462
|
+
return err12(strm, Z_STREAM_ERROR);
|
|
1463
|
+
}
|
|
1464
|
+
strm.total_in = strm.total_out = 0;
|
|
1465
|
+
strm.data_type = Z_UNKNOWN;
|
|
1466
|
+
s = strm.state;
|
|
1467
|
+
s.pending = 0;
|
|
1468
|
+
s.pending_out = 0;
|
|
1469
|
+
if (s.wrap < 0) {
|
|
1470
|
+
s.wrap = -s.wrap;
|
|
1471
|
+
}
|
|
1472
|
+
s.status = s.wrap ? INIT_STATE : BUSY_STATE;
|
|
1473
|
+
strm.adler = s.wrap === 2 ? 0 : 1;
|
|
1474
|
+
s.last_flush = Z_NO_FLUSH;
|
|
1475
|
+
trees._tr_init(s);
|
|
1476
|
+
return Z_OK;
|
|
1477
|
+
}
|
|
1478
|
+
function deflateReset(strm) {
|
|
1479
|
+
var ret = deflateResetKeep(strm);
|
|
1480
|
+
if (ret === Z_OK) {
|
|
1481
|
+
lm_init(strm.state);
|
|
1482
|
+
}
|
|
1483
|
+
return ret;
|
|
1484
|
+
}
|
|
1485
|
+
function deflateSetHeader(strm, head) {
|
|
1486
|
+
if (!strm || !strm.state) {
|
|
1487
|
+
return Z_STREAM_ERROR;
|
|
1488
|
+
}
|
|
1489
|
+
if (strm.state.wrap !== 2) {
|
|
1490
|
+
return Z_STREAM_ERROR;
|
|
1491
|
+
}
|
|
1492
|
+
strm.state.gzhead = head;
|
|
1493
|
+
return Z_OK;
|
|
1494
|
+
}
|
|
1495
|
+
function deflateInit2(strm, level, method, windowBits, memLevel, strategy) {
|
|
1496
|
+
if (!strm) {
|
|
1497
|
+
return Z_STREAM_ERROR;
|
|
1498
|
+
}
|
|
1499
|
+
var wrap2 = 1;
|
|
1500
|
+
if (level === Z_DEFAULT_COMPRESSION) {
|
|
1501
|
+
level = 6;
|
|
1502
|
+
}
|
|
1503
|
+
if (windowBits < 0) {
|
|
1504
|
+
wrap2 = 0;
|
|
1505
|
+
windowBits = -windowBits;
|
|
1506
|
+
} else if (windowBits > 15) {
|
|
1507
|
+
wrap2 = 2;
|
|
1508
|
+
windowBits -= 16;
|
|
1509
|
+
}
|
|
1510
|
+
if (memLevel < 1 || memLevel > MAX_MEM_LEVEL || method !== Z_DEFLATED || windowBits < 8 || windowBits > 15 || level < 0 || level > 9 || strategy < 0 || strategy > Z_FIXED) {
|
|
1511
|
+
return err12(strm, Z_STREAM_ERROR);
|
|
1512
|
+
}
|
|
1513
|
+
if (windowBits === 8) {
|
|
1514
|
+
windowBits = 9;
|
|
1515
|
+
}
|
|
1516
|
+
var s = new DeflateState();
|
|
1517
|
+
strm.state = s;
|
|
1518
|
+
s.strm = strm;
|
|
1519
|
+
s.wrap = wrap2;
|
|
1520
|
+
s.gzhead = null;
|
|
1521
|
+
s.w_bits = windowBits;
|
|
1522
|
+
s.w_size = 1 << s.w_bits;
|
|
1523
|
+
s.w_mask = s.w_size - 1;
|
|
1524
|
+
s.hash_bits = memLevel + 7;
|
|
1525
|
+
s.hash_size = 1 << s.hash_bits;
|
|
1526
|
+
s.hash_mask = s.hash_size - 1;
|
|
1527
|
+
s.hash_shift = ~~((s.hash_bits + MIN_MATCH - 1) / MIN_MATCH);
|
|
1528
|
+
s.window = new utils.Buf8(s.w_size * 2);
|
|
1529
|
+
s.head = new utils.Buf16(s.hash_size);
|
|
1530
|
+
s.prev = new utils.Buf16(s.w_size);
|
|
1531
|
+
s.lit_bufsize = 1 << memLevel + 6;
|
|
1532
|
+
s.pending_buf_size = s.lit_bufsize * 4;
|
|
1533
|
+
s.pending_buf = new utils.Buf8(s.pending_buf_size);
|
|
1534
|
+
s.d_buf = 1 * s.lit_bufsize;
|
|
1535
|
+
s.l_buf = (1 + 2) * s.lit_bufsize;
|
|
1536
|
+
s.level = level;
|
|
1537
|
+
s.strategy = strategy;
|
|
1538
|
+
s.method = method;
|
|
1539
|
+
return deflateReset(strm);
|
|
1540
|
+
}
|
|
1541
|
+
function deflateInit(strm, level) {
|
|
1542
|
+
return deflateInit2(strm, level, Z_DEFLATED, MAX_WBITS, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY);
|
|
1543
|
+
}
|
|
1544
|
+
function deflate(strm, flush) {
|
|
1545
|
+
var old_flush, s;
|
|
1546
|
+
var beg, val;
|
|
1547
|
+
if (!strm || !strm.state || flush > Z_BLOCK || flush < 0) {
|
|
1548
|
+
return strm ? err12(strm, Z_STREAM_ERROR) : Z_STREAM_ERROR;
|
|
1549
|
+
}
|
|
1550
|
+
s = strm.state;
|
|
1551
|
+
if (!strm.output || !strm.input && strm.avail_in !== 0 || s.status === FINISH_STATE && flush !== Z_FINISH) {
|
|
1552
|
+
return err12(strm, strm.avail_out === 0 ? Z_BUF_ERROR : Z_STREAM_ERROR);
|
|
1553
|
+
}
|
|
1554
|
+
s.strm = strm;
|
|
1555
|
+
old_flush = s.last_flush;
|
|
1556
|
+
s.last_flush = flush;
|
|
1557
|
+
if (s.status === INIT_STATE) {
|
|
1558
|
+
if (s.wrap === 2) {
|
|
1559
|
+
strm.adler = 0;
|
|
1560
|
+
put_byte(s, 31);
|
|
1561
|
+
put_byte(s, 139);
|
|
1562
|
+
put_byte(s, 8);
|
|
1563
|
+
if (!s.gzhead) {
|
|
1564
|
+
put_byte(s, 0);
|
|
1565
|
+
put_byte(s, 0);
|
|
1566
|
+
put_byte(s, 0);
|
|
1567
|
+
put_byte(s, 0);
|
|
1568
|
+
put_byte(s, 0);
|
|
1569
|
+
put_byte(s, s.level === 9 ? 2 : s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ? 4 : 0);
|
|
1570
|
+
put_byte(s, OS_CODE);
|
|
1571
|
+
s.status = BUSY_STATE;
|
|
1572
|
+
} else {
|
|
1573
|
+
put_byte(
|
|
1574
|
+
s,
|
|
1575
|
+
(s.gzhead.text ? 1 : 0) + (s.gzhead.hcrc ? 2 : 0) + (!s.gzhead.extra ? 0 : 4) + (!s.gzhead.name ? 0 : 8) + (!s.gzhead.comment ? 0 : 16)
|
|
1576
|
+
);
|
|
1577
|
+
put_byte(s, s.gzhead.time & 255);
|
|
1578
|
+
put_byte(s, s.gzhead.time >> 8 & 255);
|
|
1579
|
+
put_byte(s, s.gzhead.time >> 16 & 255);
|
|
1580
|
+
put_byte(s, s.gzhead.time >> 24 & 255);
|
|
1581
|
+
put_byte(s, s.level === 9 ? 2 : s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ? 4 : 0);
|
|
1582
|
+
put_byte(s, s.gzhead.os & 255);
|
|
1583
|
+
if (s.gzhead.extra && s.gzhead.extra.length) {
|
|
1584
|
+
put_byte(s, s.gzhead.extra.length & 255);
|
|
1585
|
+
put_byte(s, s.gzhead.extra.length >> 8 & 255);
|
|
1586
|
+
}
|
|
1587
|
+
if (s.gzhead.hcrc) {
|
|
1588
|
+
strm.adler = crc32(strm.adler, s.pending_buf, s.pending, 0);
|
|
1589
|
+
}
|
|
1590
|
+
s.gzindex = 0;
|
|
1591
|
+
s.status = EXTRA_STATE;
|
|
1592
|
+
}
|
|
1593
|
+
} else {
|
|
1594
|
+
var header = Z_DEFLATED + (s.w_bits - 8 << 4) << 8;
|
|
1595
|
+
var level_flags = -1;
|
|
1596
|
+
if (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2) {
|
|
1597
|
+
level_flags = 0;
|
|
1598
|
+
} else if (s.level < 6) {
|
|
1599
|
+
level_flags = 1;
|
|
1600
|
+
} else if (s.level === 6) {
|
|
1601
|
+
level_flags = 2;
|
|
1602
|
+
} else {
|
|
1603
|
+
level_flags = 3;
|
|
1604
|
+
}
|
|
1605
|
+
header |= level_flags << 6;
|
|
1606
|
+
if (s.strstart !== 0) {
|
|
1607
|
+
header |= PRESET_DICT;
|
|
1608
|
+
}
|
|
1609
|
+
header += 31 - header % 31;
|
|
1610
|
+
s.status = BUSY_STATE;
|
|
1611
|
+
putShortMSB(s, header);
|
|
1612
|
+
if (s.strstart !== 0) {
|
|
1613
|
+
putShortMSB(s, strm.adler >>> 16);
|
|
1614
|
+
putShortMSB(s, strm.adler & 65535);
|
|
1615
|
+
}
|
|
1616
|
+
strm.adler = 1;
|
|
1617
|
+
}
|
|
1618
|
+
}
|
|
1619
|
+
if (s.status === EXTRA_STATE) {
|
|
1620
|
+
if (s.gzhead.extra) {
|
|
1621
|
+
beg = s.pending;
|
|
1622
|
+
while (s.gzindex < (s.gzhead.extra.length & 65535)) {
|
|
1623
|
+
if (s.pending === s.pending_buf_size) {
|
|
1624
|
+
if (s.gzhead.hcrc && s.pending > beg) {
|
|
1625
|
+
strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);
|
|
1626
|
+
}
|
|
1627
|
+
flush_pending(strm);
|
|
1628
|
+
beg = s.pending;
|
|
1629
|
+
if (s.pending === s.pending_buf_size) {
|
|
1630
|
+
break;
|
|
1631
|
+
}
|
|
1632
|
+
}
|
|
1633
|
+
put_byte(s, s.gzhead.extra[s.gzindex] & 255);
|
|
1634
|
+
s.gzindex++;
|
|
1635
|
+
}
|
|
1636
|
+
if (s.gzhead.hcrc && s.pending > beg) {
|
|
1637
|
+
strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);
|
|
1638
|
+
}
|
|
1639
|
+
if (s.gzindex === s.gzhead.extra.length) {
|
|
1640
|
+
s.gzindex = 0;
|
|
1641
|
+
s.status = NAME_STATE;
|
|
1642
|
+
}
|
|
1643
|
+
} else {
|
|
1644
|
+
s.status = NAME_STATE;
|
|
1645
|
+
}
|
|
1646
|
+
}
|
|
1647
|
+
if (s.status === NAME_STATE) {
|
|
1648
|
+
if (s.gzhead.name) {
|
|
1649
|
+
beg = s.pending;
|
|
1650
|
+
do {
|
|
1651
|
+
if (s.pending === s.pending_buf_size) {
|
|
1652
|
+
if (s.gzhead.hcrc && s.pending > beg) {
|
|
1653
|
+
strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);
|
|
1654
|
+
}
|
|
1655
|
+
flush_pending(strm);
|
|
1656
|
+
beg = s.pending;
|
|
1657
|
+
if (s.pending === s.pending_buf_size) {
|
|
1658
|
+
val = 1;
|
|
1659
|
+
break;
|
|
1660
|
+
}
|
|
1661
|
+
}
|
|
1662
|
+
if (s.gzindex < s.gzhead.name.length) {
|
|
1663
|
+
val = s.gzhead.name.charCodeAt(s.gzindex++) & 255;
|
|
1664
|
+
} else {
|
|
1665
|
+
val = 0;
|
|
1666
|
+
}
|
|
1667
|
+
put_byte(s, val);
|
|
1668
|
+
} while (val !== 0);
|
|
1669
|
+
if (s.gzhead.hcrc && s.pending > beg) {
|
|
1670
|
+
strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);
|
|
1671
|
+
}
|
|
1672
|
+
if (val === 0) {
|
|
1673
|
+
s.gzindex = 0;
|
|
1674
|
+
s.status = COMMENT_STATE;
|
|
1675
|
+
}
|
|
1676
|
+
} else {
|
|
1677
|
+
s.status = COMMENT_STATE;
|
|
1678
|
+
}
|
|
1679
|
+
}
|
|
1680
|
+
if (s.status === COMMENT_STATE) {
|
|
1681
|
+
if (s.gzhead.comment) {
|
|
1682
|
+
beg = s.pending;
|
|
1683
|
+
do {
|
|
1684
|
+
if (s.pending === s.pending_buf_size) {
|
|
1685
|
+
if (s.gzhead.hcrc && s.pending > beg) {
|
|
1686
|
+
strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);
|
|
1687
|
+
}
|
|
1688
|
+
flush_pending(strm);
|
|
1689
|
+
beg = s.pending;
|
|
1690
|
+
if (s.pending === s.pending_buf_size) {
|
|
1691
|
+
val = 1;
|
|
1692
|
+
break;
|
|
1693
|
+
}
|
|
1694
|
+
}
|
|
1695
|
+
if (s.gzindex < s.gzhead.comment.length) {
|
|
1696
|
+
val = s.gzhead.comment.charCodeAt(s.gzindex++) & 255;
|
|
1697
|
+
} else {
|
|
1698
|
+
val = 0;
|
|
1699
|
+
}
|
|
1700
|
+
put_byte(s, val);
|
|
1701
|
+
} while (val !== 0);
|
|
1702
|
+
if (s.gzhead.hcrc && s.pending > beg) {
|
|
1703
|
+
strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);
|
|
1704
|
+
}
|
|
1705
|
+
if (val === 0) {
|
|
1706
|
+
s.status = HCRC_STATE;
|
|
1707
|
+
}
|
|
1708
|
+
} else {
|
|
1709
|
+
s.status = HCRC_STATE;
|
|
1710
|
+
}
|
|
1711
|
+
}
|
|
1712
|
+
if (s.status === HCRC_STATE) {
|
|
1713
|
+
if (s.gzhead.hcrc) {
|
|
1714
|
+
if (s.pending + 2 > s.pending_buf_size) {
|
|
1715
|
+
flush_pending(strm);
|
|
1716
|
+
}
|
|
1717
|
+
if (s.pending + 2 <= s.pending_buf_size) {
|
|
1718
|
+
put_byte(s, strm.adler & 255);
|
|
1719
|
+
put_byte(s, strm.adler >> 8 & 255);
|
|
1720
|
+
strm.adler = 0;
|
|
1721
|
+
s.status = BUSY_STATE;
|
|
1722
|
+
}
|
|
1723
|
+
} else {
|
|
1724
|
+
s.status = BUSY_STATE;
|
|
1725
|
+
}
|
|
1726
|
+
}
|
|
1727
|
+
if (s.pending !== 0) {
|
|
1728
|
+
flush_pending(strm);
|
|
1729
|
+
if (strm.avail_out === 0) {
|
|
1730
|
+
s.last_flush = -1;
|
|
1731
|
+
return Z_OK;
|
|
1732
|
+
}
|
|
1733
|
+
} else if (strm.avail_in === 0 && rank(flush) <= rank(old_flush) && flush !== Z_FINISH) {
|
|
1734
|
+
return err12(strm, Z_BUF_ERROR);
|
|
1735
|
+
}
|
|
1736
|
+
if (s.status === FINISH_STATE && strm.avail_in !== 0) {
|
|
1737
|
+
return err12(strm, Z_BUF_ERROR);
|
|
1738
|
+
}
|
|
1739
|
+
if (strm.avail_in !== 0 || s.lookahead !== 0 || flush !== Z_NO_FLUSH && s.status !== FINISH_STATE) {
|
|
1740
|
+
var bstate = s.strategy === Z_HUFFMAN_ONLY ? deflate_huff(s, flush) : s.strategy === Z_RLE ? deflate_rle(s, flush) : configuration_table[s.level].func(s, flush);
|
|
1741
|
+
if (bstate === BS_FINISH_STARTED || bstate === BS_FINISH_DONE) {
|
|
1742
|
+
s.status = FINISH_STATE;
|
|
1743
|
+
}
|
|
1744
|
+
if (bstate === BS_NEED_MORE || bstate === BS_FINISH_STARTED) {
|
|
1745
|
+
if (strm.avail_out === 0) {
|
|
1746
|
+
s.last_flush = -1;
|
|
1747
|
+
}
|
|
1748
|
+
return Z_OK;
|
|
1749
|
+
}
|
|
1750
|
+
if (bstate === BS_BLOCK_DONE) {
|
|
1751
|
+
if (flush === Z_PARTIAL_FLUSH) {
|
|
1752
|
+
trees._tr_align(s);
|
|
1753
|
+
} else if (flush !== Z_BLOCK) {
|
|
1754
|
+
trees._tr_stored_block(s, 0, 0, false);
|
|
1755
|
+
if (flush === Z_FULL_FLUSH) {
|
|
1756
|
+
zero(s.head);
|
|
1757
|
+
if (s.lookahead === 0) {
|
|
1758
|
+
s.strstart = 0;
|
|
1759
|
+
s.block_start = 0;
|
|
1760
|
+
s.insert = 0;
|
|
1761
|
+
}
|
|
1762
|
+
}
|
|
1763
|
+
}
|
|
1764
|
+
flush_pending(strm);
|
|
1765
|
+
if (strm.avail_out === 0) {
|
|
1766
|
+
s.last_flush = -1;
|
|
1767
|
+
return Z_OK;
|
|
1768
|
+
}
|
|
1769
|
+
}
|
|
1770
|
+
}
|
|
1771
|
+
if (flush !== Z_FINISH) {
|
|
1772
|
+
return Z_OK;
|
|
1773
|
+
}
|
|
1774
|
+
if (s.wrap <= 0) {
|
|
1775
|
+
return Z_STREAM_END;
|
|
1776
|
+
}
|
|
1777
|
+
if (s.wrap === 2) {
|
|
1778
|
+
put_byte(s, strm.adler & 255);
|
|
1779
|
+
put_byte(s, strm.adler >> 8 & 255);
|
|
1780
|
+
put_byte(s, strm.adler >> 16 & 255);
|
|
1781
|
+
put_byte(s, strm.adler >> 24 & 255);
|
|
1782
|
+
put_byte(s, strm.total_in & 255);
|
|
1783
|
+
put_byte(s, strm.total_in >> 8 & 255);
|
|
1784
|
+
put_byte(s, strm.total_in >> 16 & 255);
|
|
1785
|
+
put_byte(s, strm.total_in >> 24 & 255);
|
|
1786
|
+
} else {
|
|
1787
|
+
putShortMSB(s, strm.adler >>> 16);
|
|
1788
|
+
putShortMSB(s, strm.adler & 65535);
|
|
1789
|
+
}
|
|
1790
|
+
flush_pending(strm);
|
|
1791
|
+
if (s.wrap > 0) {
|
|
1792
|
+
s.wrap = -s.wrap;
|
|
1793
|
+
}
|
|
1794
|
+
return s.pending !== 0 ? Z_OK : Z_STREAM_END;
|
|
1795
|
+
}
|
|
1796
|
+
function deflateEnd(strm) {
|
|
1797
|
+
var status;
|
|
1798
|
+
if (!strm || !strm.state) {
|
|
1799
|
+
return Z_STREAM_ERROR;
|
|
1800
|
+
}
|
|
1801
|
+
status = strm.state.status;
|
|
1802
|
+
if (status !== INIT_STATE && status !== EXTRA_STATE && status !== NAME_STATE && status !== COMMENT_STATE && status !== HCRC_STATE && status !== BUSY_STATE && status !== FINISH_STATE) {
|
|
1803
|
+
return err12(strm, Z_STREAM_ERROR);
|
|
1804
|
+
}
|
|
1805
|
+
strm.state = null;
|
|
1806
|
+
return status === BUSY_STATE ? err12(strm, Z_DATA_ERROR) : Z_OK;
|
|
1807
|
+
}
|
|
1808
|
+
function deflateSetDictionary(strm, dictionary) {
|
|
1809
|
+
var dictLength = dictionary.length;
|
|
1810
|
+
var s;
|
|
1811
|
+
var str, n;
|
|
1812
|
+
var wrap2;
|
|
1813
|
+
var avail;
|
|
1814
|
+
var next;
|
|
1815
|
+
var input;
|
|
1816
|
+
var tmpDict;
|
|
1817
|
+
if (!strm || !strm.state) {
|
|
1818
|
+
return Z_STREAM_ERROR;
|
|
1819
|
+
}
|
|
1820
|
+
s = strm.state;
|
|
1821
|
+
wrap2 = s.wrap;
|
|
1822
|
+
if (wrap2 === 2 || wrap2 === 1 && s.status !== INIT_STATE || s.lookahead) {
|
|
1823
|
+
return Z_STREAM_ERROR;
|
|
1824
|
+
}
|
|
1825
|
+
if (wrap2 === 1) {
|
|
1826
|
+
strm.adler = adler32(strm.adler, dictionary, dictLength, 0);
|
|
1827
|
+
}
|
|
1828
|
+
s.wrap = 0;
|
|
1829
|
+
if (dictLength >= s.w_size) {
|
|
1830
|
+
if (wrap2 === 0) {
|
|
1831
|
+
zero(s.head);
|
|
1832
|
+
s.strstart = 0;
|
|
1833
|
+
s.block_start = 0;
|
|
1834
|
+
s.insert = 0;
|
|
1835
|
+
}
|
|
1836
|
+
tmpDict = new utils.Buf8(s.w_size);
|
|
1837
|
+
utils.arraySet(tmpDict, dictionary, dictLength - s.w_size, s.w_size, 0);
|
|
1838
|
+
dictionary = tmpDict;
|
|
1839
|
+
dictLength = s.w_size;
|
|
1840
|
+
}
|
|
1841
|
+
avail = strm.avail_in;
|
|
1842
|
+
next = strm.next_in;
|
|
1843
|
+
input = strm.input;
|
|
1844
|
+
strm.avail_in = dictLength;
|
|
1845
|
+
strm.next_in = 0;
|
|
1846
|
+
strm.input = dictionary;
|
|
1847
|
+
fill_window(s);
|
|
1848
|
+
while (s.lookahead >= MIN_MATCH) {
|
|
1849
|
+
str = s.strstart;
|
|
1850
|
+
n = s.lookahead - (MIN_MATCH - 1);
|
|
1851
|
+
do {
|
|
1852
|
+
s.ins_h = (s.ins_h << s.hash_shift ^ s.window[str + MIN_MATCH - 1]) & s.hash_mask;
|
|
1853
|
+
s.prev[str & s.w_mask] = s.head[s.ins_h];
|
|
1854
|
+
s.head[s.ins_h] = str;
|
|
1855
|
+
str++;
|
|
1856
|
+
} while (--n);
|
|
1857
|
+
s.strstart = str;
|
|
1858
|
+
s.lookahead = MIN_MATCH - 1;
|
|
1859
|
+
fill_window(s);
|
|
1860
|
+
}
|
|
1861
|
+
s.strstart += s.lookahead;
|
|
1862
|
+
s.block_start = s.strstart;
|
|
1863
|
+
s.insert = s.lookahead;
|
|
1864
|
+
s.lookahead = 0;
|
|
1865
|
+
s.match_length = s.prev_length = MIN_MATCH - 1;
|
|
1866
|
+
s.match_available = 0;
|
|
1867
|
+
strm.next_in = next;
|
|
1868
|
+
strm.input = input;
|
|
1869
|
+
strm.avail_in = avail;
|
|
1870
|
+
s.wrap = wrap2;
|
|
1871
|
+
return Z_OK;
|
|
1872
|
+
}
|
|
1873
|
+
exports.deflateInit = deflateInit;
|
|
1874
|
+
exports.deflateInit2 = deflateInit2;
|
|
1875
|
+
exports.deflateReset = deflateReset;
|
|
1876
|
+
exports.deflateResetKeep = deflateResetKeep;
|
|
1877
|
+
exports.deflateSetHeader = deflateSetHeader;
|
|
1878
|
+
exports.deflate = deflate;
|
|
1879
|
+
exports.deflateEnd = deflateEnd;
|
|
1880
|
+
exports.deflateSetDictionary = deflateSetDictionary;
|
|
1881
|
+
exports.deflateInfo = "pako deflate (from Nodeca project)";
|
|
1882
|
+
}
|
|
1883
|
+
});
|
|
1884
|
+
|
|
1885
|
+
// ../../node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/utils/strings.js
|
|
1886
|
+
var require_strings = __commonJS({
|
|
1887
|
+
"../../node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/utils/strings.js"(exports) {
|
|
1888
|
+
var utils = require_common();
|
|
1889
|
+
var STR_APPLY_OK = true;
|
|
1890
|
+
var STR_APPLY_UIA_OK = true;
|
|
1891
|
+
try {
|
|
1892
|
+
String.fromCharCode.apply(null, [0]);
|
|
1893
|
+
} catch (__) {
|
|
1894
|
+
STR_APPLY_OK = false;
|
|
1895
|
+
}
|
|
1896
|
+
try {
|
|
1897
|
+
String.fromCharCode.apply(null, new Uint8Array(1));
|
|
1898
|
+
} catch (__) {
|
|
1899
|
+
STR_APPLY_UIA_OK = false;
|
|
1900
|
+
}
|
|
1901
|
+
var _utf8len = new utils.Buf8(256);
|
|
1902
|
+
for (q = 0; q < 256; q++) {
|
|
1903
|
+
_utf8len[q] = q >= 252 ? 6 : q >= 248 ? 5 : q >= 240 ? 4 : q >= 224 ? 3 : q >= 192 ? 2 : 1;
|
|
1904
|
+
}
|
|
1905
|
+
var q;
|
|
1906
|
+
_utf8len[254] = _utf8len[254] = 1;
|
|
1907
|
+
exports.string2buf = function(str) {
|
|
1908
|
+
var buf, c, c2, m_pos, i, str_len = str.length, buf_len = 0;
|
|
1909
|
+
for (m_pos = 0; m_pos < str_len; m_pos++) {
|
|
1910
|
+
c = str.charCodeAt(m_pos);
|
|
1911
|
+
if ((c & 64512) === 55296 && m_pos + 1 < str_len) {
|
|
1912
|
+
c2 = str.charCodeAt(m_pos + 1);
|
|
1913
|
+
if ((c2 & 64512) === 56320) {
|
|
1914
|
+
c = 65536 + (c - 55296 << 10) + (c2 - 56320);
|
|
1915
|
+
m_pos++;
|
|
1916
|
+
}
|
|
1917
|
+
}
|
|
1918
|
+
buf_len += c < 128 ? 1 : c < 2048 ? 2 : c < 65536 ? 3 : 4;
|
|
1919
|
+
}
|
|
1920
|
+
buf = new utils.Buf8(buf_len);
|
|
1921
|
+
for (i = 0, m_pos = 0; i < buf_len; m_pos++) {
|
|
1922
|
+
c = str.charCodeAt(m_pos);
|
|
1923
|
+
if ((c & 64512) === 55296 && m_pos + 1 < str_len) {
|
|
1924
|
+
c2 = str.charCodeAt(m_pos + 1);
|
|
1925
|
+
if ((c2 & 64512) === 56320) {
|
|
1926
|
+
c = 65536 + (c - 55296 << 10) + (c2 - 56320);
|
|
1927
|
+
m_pos++;
|
|
1928
|
+
}
|
|
1929
|
+
}
|
|
1930
|
+
if (c < 128) {
|
|
1931
|
+
buf[i++] = c;
|
|
1932
|
+
} else if (c < 2048) {
|
|
1933
|
+
buf[i++] = 192 | c >>> 6;
|
|
1934
|
+
buf[i++] = 128 | c & 63;
|
|
1935
|
+
} else if (c < 65536) {
|
|
1936
|
+
buf[i++] = 224 | c >>> 12;
|
|
1937
|
+
buf[i++] = 128 | c >>> 6 & 63;
|
|
1938
|
+
buf[i++] = 128 | c & 63;
|
|
1939
|
+
} else {
|
|
1940
|
+
buf[i++] = 240 | c >>> 18;
|
|
1941
|
+
buf[i++] = 128 | c >>> 12 & 63;
|
|
1942
|
+
buf[i++] = 128 | c >>> 6 & 63;
|
|
1943
|
+
buf[i++] = 128 | c & 63;
|
|
1944
|
+
}
|
|
1945
|
+
}
|
|
1946
|
+
return buf;
|
|
1947
|
+
};
|
|
1948
|
+
function buf2binstring(buf, len) {
|
|
1949
|
+
if (len < 65534) {
|
|
1950
|
+
if (buf.subarray && STR_APPLY_UIA_OK || !buf.subarray && STR_APPLY_OK) {
|
|
1951
|
+
return String.fromCharCode.apply(null, utils.shrinkBuf(buf, len));
|
|
1952
|
+
}
|
|
1953
|
+
}
|
|
1954
|
+
var result = "";
|
|
1955
|
+
for (var i = 0; i < len; i++) {
|
|
1956
|
+
result += String.fromCharCode(buf[i]);
|
|
1957
|
+
}
|
|
1958
|
+
return result;
|
|
1959
|
+
}
|
|
1960
|
+
exports.buf2binstring = function(buf) {
|
|
1961
|
+
return buf2binstring(buf, buf.length);
|
|
1962
|
+
};
|
|
1963
|
+
exports.binstring2buf = function(str) {
|
|
1964
|
+
var buf = new utils.Buf8(str.length);
|
|
1965
|
+
for (var i = 0, len = buf.length; i < len; i++) {
|
|
1966
|
+
buf[i] = str.charCodeAt(i);
|
|
1967
|
+
}
|
|
1968
|
+
return buf;
|
|
1969
|
+
};
|
|
1970
|
+
exports.buf2string = function(buf, max) {
|
|
1971
|
+
var i, out, c, c_len;
|
|
1972
|
+
var len = max || buf.length;
|
|
1973
|
+
var utf16buf = new Array(len * 2);
|
|
1974
|
+
for (out = 0, i = 0; i < len; ) {
|
|
1975
|
+
c = buf[i++];
|
|
1976
|
+
if (c < 128) {
|
|
1977
|
+
utf16buf[out++] = c;
|
|
1978
|
+
continue;
|
|
1979
|
+
}
|
|
1980
|
+
c_len = _utf8len[c];
|
|
1981
|
+
if (c_len > 4) {
|
|
1982
|
+
utf16buf[out++] = 65533;
|
|
1983
|
+
i += c_len - 1;
|
|
1984
|
+
continue;
|
|
1985
|
+
}
|
|
1986
|
+
c &= c_len === 2 ? 31 : c_len === 3 ? 15 : 7;
|
|
1987
|
+
while (c_len > 1 && i < len) {
|
|
1988
|
+
c = c << 6 | buf[i++] & 63;
|
|
1989
|
+
c_len--;
|
|
1990
|
+
}
|
|
1991
|
+
if (c_len > 1) {
|
|
1992
|
+
utf16buf[out++] = 65533;
|
|
1993
|
+
continue;
|
|
1994
|
+
}
|
|
1995
|
+
if (c < 65536) {
|
|
1996
|
+
utf16buf[out++] = c;
|
|
1997
|
+
} else {
|
|
1998
|
+
c -= 65536;
|
|
1999
|
+
utf16buf[out++] = 55296 | c >> 10 & 1023;
|
|
2000
|
+
utf16buf[out++] = 56320 | c & 1023;
|
|
2001
|
+
}
|
|
2002
|
+
}
|
|
2003
|
+
return buf2binstring(utf16buf, out);
|
|
2004
|
+
};
|
|
2005
|
+
exports.utf8border = function(buf, max) {
|
|
2006
|
+
var pos;
|
|
2007
|
+
max = max || buf.length;
|
|
2008
|
+
if (max > buf.length) {
|
|
2009
|
+
max = buf.length;
|
|
2010
|
+
}
|
|
2011
|
+
pos = max - 1;
|
|
2012
|
+
while (pos >= 0 && (buf[pos] & 192) === 128) {
|
|
2013
|
+
pos--;
|
|
2014
|
+
}
|
|
2015
|
+
if (pos < 0) {
|
|
2016
|
+
return max;
|
|
2017
|
+
}
|
|
2018
|
+
if (pos === 0) {
|
|
2019
|
+
return max;
|
|
2020
|
+
}
|
|
2021
|
+
return pos + _utf8len[buf[pos]] > max ? pos : max;
|
|
2022
|
+
};
|
|
2023
|
+
}
|
|
2024
|
+
});
|
|
2025
|
+
|
|
2026
|
+
// ../../node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/zstream.js
|
|
2027
|
+
var require_zstream = __commonJS({
|
|
2028
|
+
"../../node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/zstream.js"(exports, module) {
|
|
2029
|
+
function ZStream() {
|
|
2030
|
+
this.input = null;
|
|
2031
|
+
this.next_in = 0;
|
|
2032
|
+
this.avail_in = 0;
|
|
2033
|
+
this.total_in = 0;
|
|
2034
|
+
this.output = null;
|
|
2035
|
+
this.next_out = 0;
|
|
2036
|
+
this.avail_out = 0;
|
|
2037
|
+
this.total_out = 0;
|
|
2038
|
+
this.msg = "";
|
|
2039
|
+
this.state = null;
|
|
2040
|
+
this.data_type = 2;
|
|
2041
|
+
this.adler = 0;
|
|
2042
|
+
}
|
|
2043
|
+
module.exports = ZStream;
|
|
2044
|
+
}
|
|
2045
|
+
});
|
|
2046
|
+
|
|
2047
|
+
// ../../node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/deflate.js
|
|
2048
|
+
var require_deflate2 = __commonJS({
|
|
2049
|
+
"../../node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/deflate.js"(exports) {
|
|
2050
|
+
var zlib_deflate = require_deflate();
|
|
2051
|
+
var utils = require_common();
|
|
2052
|
+
var strings = require_strings();
|
|
2053
|
+
var msg = require_messages();
|
|
2054
|
+
var ZStream = require_zstream();
|
|
2055
|
+
var toString = Object.prototype.toString;
|
|
2056
|
+
var Z_NO_FLUSH = 0;
|
|
2057
|
+
var Z_FINISH = 4;
|
|
2058
|
+
var Z_OK = 0;
|
|
2059
|
+
var Z_STREAM_END = 1;
|
|
2060
|
+
var Z_SYNC_FLUSH = 2;
|
|
2061
|
+
var Z_DEFAULT_COMPRESSION = -1;
|
|
2062
|
+
var Z_DEFAULT_STRATEGY = 0;
|
|
2063
|
+
var Z_DEFLATED = 8;
|
|
2064
|
+
function Deflate(options) {
|
|
2065
|
+
if (!(this instanceof Deflate)) return new Deflate(options);
|
|
2066
|
+
this.options = utils.assign({
|
|
2067
|
+
level: Z_DEFAULT_COMPRESSION,
|
|
2068
|
+
method: Z_DEFLATED,
|
|
2069
|
+
chunkSize: 16384,
|
|
2070
|
+
windowBits: 15,
|
|
2071
|
+
memLevel: 8,
|
|
2072
|
+
strategy: Z_DEFAULT_STRATEGY,
|
|
2073
|
+
to: ""
|
|
2074
|
+
}, options || {});
|
|
2075
|
+
var opt = this.options;
|
|
2076
|
+
if (opt.raw && opt.windowBits > 0) {
|
|
2077
|
+
opt.windowBits = -opt.windowBits;
|
|
2078
|
+
} else if (opt.gzip && opt.windowBits > 0 && opt.windowBits < 16) {
|
|
2079
|
+
opt.windowBits += 16;
|
|
2080
|
+
}
|
|
2081
|
+
this.err = 0;
|
|
2082
|
+
this.msg = "";
|
|
2083
|
+
this.ended = false;
|
|
2084
|
+
this.chunks = [];
|
|
2085
|
+
this.strm = new ZStream();
|
|
2086
|
+
this.strm.avail_out = 0;
|
|
2087
|
+
var status = zlib_deflate.deflateInit2(
|
|
2088
|
+
this.strm,
|
|
2089
|
+
opt.level,
|
|
2090
|
+
opt.method,
|
|
2091
|
+
opt.windowBits,
|
|
2092
|
+
opt.memLevel,
|
|
2093
|
+
opt.strategy
|
|
2094
|
+
);
|
|
2095
|
+
if (status !== Z_OK) {
|
|
2096
|
+
throw new Error(msg[status]);
|
|
2097
|
+
}
|
|
2098
|
+
if (opt.header) {
|
|
2099
|
+
zlib_deflate.deflateSetHeader(this.strm, opt.header);
|
|
2100
|
+
}
|
|
2101
|
+
if (opt.dictionary) {
|
|
2102
|
+
var dict;
|
|
2103
|
+
if (typeof opt.dictionary === "string") {
|
|
2104
|
+
dict = strings.string2buf(opt.dictionary);
|
|
2105
|
+
} else if (toString.call(opt.dictionary) === "[object ArrayBuffer]") {
|
|
2106
|
+
dict = new Uint8Array(opt.dictionary);
|
|
2107
|
+
} else {
|
|
2108
|
+
dict = opt.dictionary;
|
|
2109
|
+
}
|
|
2110
|
+
status = zlib_deflate.deflateSetDictionary(this.strm, dict);
|
|
2111
|
+
if (status !== Z_OK) {
|
|
2112
|
+
throw new Error(msg[status]);
|
|
2113
|
+
}
|
|
2114
|
+
this._dict_set = true;
|
|
2115
|
+
}
|
|
2116
|
+
}
|
|
2117
|
+
Deflate.prototype.push = function(data, mode) {
|
|
2118
|
+
var strm = this.strm;
|
|
2119
|
+
var chunkSize = this.options.chunkSize;
|
|
2120
|
+
var status, _mode;
|
|
2121
|
+
if (this.ended) {
|
|
2122
|
+
return false;
|
|
2123
|
+
}
|
|
2124
|
+
_mode = mode === ~~mode ? mode : mode === true ? Z_FINISH : Z_NO_FLUSH;
|
|
2125
|
+
if (typeof data === "string") {
|
|
2126
|
+
strm.input = strings.string2buf(data);
|
|
2127
|
+
} else if (toString.call(data) === "[object ArrayBuffer]") {
|
|
2128
|
+
strm.input = new Uint8Array(data);
|
|
2129
|
+
} else {
|
|
2130
|
+
strm.input = data;
|
|
2131
|
+
}
|
|
2132
|
+
strm.next_in = 0;
|
|
2133
|
+
strm.avail_in = strm.input.length;
|
|
2134
|
+
do {
|
|
2135
|
+
if (strm.avail_out === 0) {
|
|
2136
|
+
strm.output = new utils.Buf8(chunkSize);
|
|
2137
|
+
strm.next_out = 0;
|
|
2138
|
+
strm.avail_out = chunkSize;
|
|
2139
|
+
}
|
|
2140
|
+
status = zlib_deflate.deflate(strm, _mode);
|
|
2141
|
+
if (status !== Z_STREAM_END && status !== Z_OK) {
|
|
2142
|
+
this.onEnd(status);
|
|
2143
|
+
this.ended = true;
|
|
2144
|
+
return false;
|
|
2145
|
+
}
|
|
2146
|
+
if (strm.avail_out === 0 || strm.avail_in === 0 && (_mode === Z_FINISH || _mode === Z_SYNC_FLUSH)) {
|
|
2147
|
+
if (this.options.to === "string") {
|
|
2148
|
+
this.onData(strings.buf2binstring(utils.shrinkBuf(strm.output, strm.next_out)));
|
|
2149
|
+
} else {
|
|
2150
|
+
this.onData(utils.shrinkBuf(strm.output, strm.next_out));
|
|
2151
|
+
}
|
|
2152
|
+
}
|
|
2153
|
+
} while ((strm.avail_in > 0 || strm.avail_out === 0) && status !== Z_STREAM_END);
|
|
2154
|
+
if (_mode === Z_FINISH) {
|
|
2155
|
+
status = zlib_deflate.deflateEnd(this.strm);
|
|
2156
|
+
this.onEnd(status);
|
|
2157
|
+
this.ended = true;
|
|
2158
|
+
return status === Z_OK;
|
|
2159
|
+
}
|
|
2160
|
+
if (_mode === Z_SYNC_FLUSH) {
|
|
2161
|
+
this.onEnd(Z_OK);
|
|
2162
|
+
strm.avail_out = 0;
|
|
2163
|
+
return true;
|
|
2164
|
+
}
|
|
2165
|
+
return true;
|
|
2166
|
+
};
|
|
2167
|
+
Deflate.prototype.onData = function(chunk) {
|
|
2168
|
+
this.chunks.push(chunk);
|
|
2169
|
+
};
|
|
2170
|
+
Deflate.prototype.onEnd = function(status) {
|
|
2171
|
+
if (status === Z_OK) {
|
|
2172
|
+
if (this.options.to === "string") {
|
|
2173
|
+
this.result = this.chunks.join("");
|
|
2174
|
+
} else {
|
|
2175
|
+
this.result = utils.flattenChunks(this.chunks);
|
|
2176
|
+
}
|
|
2177
|
+
}
|
|
2178
|
+
this.chunks = [];
|
|
2179
|
+
this.err = status;
|
|
2180
|
+
this.msg = this.strm.msg;
|
|
2181
|
+
};
|
|
2182
|
+
function deflate(input, options) {
|
|
2183
|
+
var deflator = new Deflate(options);
|
|
2184
|
+
deflator.push(input, true);
|
|
2185
|
+
if (deflator.err) {
|
|
2186
|
+
throw deflator.msg || msg[deflator.err];
|
|
2187
|
+
}
|
|
2188
|
+
return deflator.result;
|
|
2189
|
+
}
|
|
2190
|
+
function deflateRaw(input, options) {
|
|
2191
|
+
options = options || {};
|
|
2192
|
+
options.raw = true;
|
|
2193
|
+
return deflate(input, options);
|
|
2194
|
+
}
|
|
2195
|
+
function gzip(input, options) {
|
|
2196
|
+
options = options || {};
|
|
2197
|
+
options.gzip = true;
|
|
2198
|
+
return deflate(input, options);
|
|
2199
|
+
}
|
|
2200
|
+
exports.Deflate = Deflate;
|
|
2201
|
+
exports.deflate = deflate;
|
|
2202
|
+
exports.deflateRaw = deflateRaw;
|
|
2203
|
+
exports.gzip = gzip;
|
|
2204
|
+
}
|
|
2205
|
+
});
|
|
2206
|
+
|
|
2207
|
+
// ../../node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/inffast.js
|
|
2208
|
+
var require_inffast = __commonJS({
|
|
2209
|
+
"../../node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/inffast.js"(exports, module) {
|
|
2210
|
+
var BAD = 30;
|
|
2211
|
+
var TYPE = 12;
|
|
2212
|
+
module.exports = function inflate_fast(strm, start) {
|
|
2213
|
+
var state;
|
|
2214
|
+
var _in;
|
|
2215
|
+
var last;
|
|
2216
|
+
var _out;
|
|
2217
|
+
var beg;
|
|
2218
|
+
var end;
|
|
2219
|
+
var dmax;
|
|
2220
|
+
var wsize;
|
|
2221
|
+
var whave;
|
|
2222
|
+
var wnext;
|
|
2223
|
+
var s_window;
|
|
2224
|
+
var hold;
|
|
2225
|
+
var bits;
|
|
2226
|
+
var lcode;
|
|
2227
|
+
var dcode;
|
|
2228
|
+
var lmask;
|
|
2229
|
+
var dmask;
|
|
2230
|
+
var here;
|
|
2231
|
+
var op;
|
|
2232
|
+
var len;
|
|
2233
|
+
var dist;
|
|
2234
|
+
var from;
|
|
2235
|
+
var from_source;
|
|
2236
|
+
var input, output;
|
|
2237
|
+
state = strm.state;
|
|
2238
|
+
_in = strm.next_in;
|
|
2239
|
+
input = strm.input;
|
|
2240
|
+
last = _in + (strm.avail_in - 5);
|
|
2241
|
+
_out = strm.next_out;
|
|
2242
|
+
output = strm.output;
|
|
2243
|
+
beg = _out - (start - strm.avail_out);
|
|
2244
|
+
end = _out + (strm.avail_out - 257);
|
|
2245
|
+
dmax = state.dmax;
|
|
2246
|
+
wsize = state.wsize;
|
|
2247
|
+
whave = state.whave;
|
|
2248
|
+
wnext = state.wnext;
|
|
2249
|
+
s_window = state.window;
|
|
2250
|
+
hold = state.hold;
|
|
2251
|
+
bits = state.bits;
|
|
2252
|
+
lcode = state.lencode;
|
|
2253
|
+
dcode = state.distcode;
|
|
2254
|
+
lmask = (1 << state.lenbits) - 1;
|
|
2255
|
+
dmask = (1 << state.distbits) - 1;
|
|
2256
|
+
top:
|
|
2257
|
+
do {
|
|
2258
|
+
if (bits < 15) {
|
|
2259
|
+
hold += input[_in++] << bits;
|
|
2260
|
+
bits += 8;
|
|
2261
|
+
hold += input[_in++] << bits;
|
|
2262
|
+
bits += 8;
|
|
2263
|
+
}
|
|
2264
|
+
here = lcode[hold & lmask];
|
|
2265
|
+
dolen:
|
|
2266
|
+
for (; ; ) {
|
|
2267
|
+
op = here >>> 24;
|
|
2268
|
+
hold >>>= op;
|
|
2269
|
+
bits -= op;
|
|
2270
|
+
op = here >>> 16 & 255;
|
|
2271
|
+
if (op === 0) {
|
|
2272
|
+
output[_out++] = here & 65535;
|
|
2273
|
+
} else if (op & 16) {
|
|
2274
|
+
len = here & 65535;
|
|
2275
|
+
op &= 15;
|
|
2276
|
+
if (op) {
|
|
2277
|
+
if (bits < op) {
|
|
2278
|
+
hold += input[_in++] << bits;
|
|
2279
|
+
bits += 8;
|
|
2280
|
+
}
|
|
2281
|
+
len += hold & (1 << op) - 1;
|
|
2282
|
+
hold >>>= op;
|
|
2283
|
+
bits -= op;
|
|
2284
|
+
}
|
|
2285
|
+
if (bits < 15) {
|
|
2286
|
+
hold += input[_in++] << bits;
|
|
2287
|
+
bits += 8;
|
|
2288
|
+
hold += input[_in++] << bits;
|
|
2289
|
+
bits += 8;
|
|
2290
|
+
}
|
|
2291
|
+
here = dcode[hold & dmask];
|
|
2292
|
+
dodist:
|
|
2293
|
+
for (; ; ) {
|
|
2294
|
+
op = here >>> 24;
|
|
2295
|
+
hold >>>= op;
|
|
2296
|
+
bits -= op;
|
|
2297
|
+
op = here >>> 16 & 255;
|
|
2298
|
+
if (op & 16) {
|
|
2299
|
+
dist = here & 65535;
|
|
2300
|
+
op &= 15;
|
|
2301
|
+
if (bits < op) {
|
|
2302
|
+
hold += input[_in++] << bits;
|
|
2303
|
+
bits += 8;
|
|
2304
|
+
if (bits < op) {
|
|
2305
|
+
hold += input[_in++] << bits;
|
|
2306
|
+
bits += 8;
|
|
2307
|
+
}
|
|
2308
|
+
}
|
|
2309
|
+
dist += hold & (1 << op) - 1;
|
|
2310
|
+
if (dist > dmax) {
|
|
2311
|
+
strm.msg = "invalid distance too far back";
|
|
2312
|
+
state.mode = BAD;
|
|
2313
|
+
break top;
|
|
2314
|
+
}
|
|
2315
|
+
hold >>>= op;
|
|
2316
|
+
bits -= op;
|
|
2317
|
+
op = _out - beg;
|
|
2318
|
+
if (dist > op) {
|
|
2319
|
+
op = dist - op;
|
|
2320
|
+
if (op > whave) {
|
|
2321
|
+
if (state.sane) {
|
|
2322
|
+
strm.msg = "invalid distance too far back";
|
|
2323
|
+
state.mode = BAD;
|
|
2324
|
+
break top;
|
|
2325
|
+
}
|
|
2326
|
+
}
|
|
2327
|
+
from = 0;
|
|
2328
|
+
from_source = s_window;
|
|
2329
|
+
if (wnext === 0) {
|
|
2330
|
+
from += wsize - op;
|
|
2331
|
+
if (op < len) {
|
|
2332
|
+
len -= op;
|
|
2333
|
+
do {
|
|
2334
|
+
output[_out++] = s_window[from++];
|
|
2335
|
+
} while (--op);
|
|
2336
|
+
from = _out - dist;
|
|
2337
|
+
from_source = output;
|
|
2338
|
+
}
|
|
2339
|
+
} else if (wnext < op) {
|
|
2340
|
+
from += wsize + wnext - op;
|
|
2341
|
+
op -= wnext;
|
|
2342
|
+
if (op < len) {
|
|
2343
|
+
len -= op;
|
|
2344
|
+
do {
|
|
2345
|
+
output[_out++] = s_window[from++];
|
|
2346
|
+
} while (--op);
|
|
2347
|
+
from = 0;
|
|
2348
|
+
if (wnext < len) {
|
|
2349
|
+
op = wnext;
|
|
2350
|
+
len -= op;
|
|
2351
|
+
do {
|
|
2352
|
+
output[_out++] = s_window[from++];
|
|
2353
|
+
} while (--op);
|
|
2354
|
+
from = _out - dist;
|
|
2355
|
+
from_source = output;
|
|
2356
|
+
}
|
|
2357
|
+
}
|
|
2358
|
+
} else {
|
|
2359
|
+
from += wnext - op;
|
|
2360
|
+
if (op < len) {
|
|
2361
|
+
len -= op;
|
|
2362
|
+
do {
|
|
2363
|
+
output[_out++] = s_window[from++];
|
|
2364
|
+
} while (--op);
|
|
2365
|
+
from = _out - dist;
|
|
2366
|
+
from_source = output;
|
|
2367
|
+
}
|
|
2368
|
+
}
|
|
2369
|
+
while (len > 2) {
|
|
2370
|
+
output[_out++] = from_source[from++];
|
|
2371
|
+
output[_out++] = from_source[from++];
|
|
2372
|
+
output[_out++] = from_source[from++];
|
|
2373
|
+
len -= 3;
|
|
2374
|
+
}
|
|
2375
|
+
if (len) {
|
|
2376
|
+
output[_out++] = from_source[from++];
|
|
2377
|
+
if (len > 1) {
|
|
2378
|
+
output[_out++] = from_source[from++];
|
|
2379
|
+
}
|
|
2380
|
+
}
|
|
2381
|
+
} else {
|
|
2382
|
+
from = _out - dist;
|
|
2383
|
+
do {
|
|
2384
|
+
output[_out++] = output[from++];
|
|
2385
|
+
output[_out++] = output[from++];
|
|
2386
|
+
output[_out++] = output[from++];
|
|
2387
|
+
len -= 3;
|
|
2388
|
+
} while (len > 2);
|
|
2389
|
+
if (len) {
|
|
2390
|
+
output[_out++] = output[from++];
|
|
2391
|
+
if (len > 1) {
|
|
2392
|
+
output[_out++] = output[from++];
|
|
2393
|
+
}
|
|
2394
|
+
}
|
|
2395
|
+
}
|
|
2396
|
+
} else if ((op & 64) === 0) {
|
|
2397
|
+
here = dcode[(here & 65535) + (hold & (1 << op) - 1)];
|
|
2398
|
+
continue dodist;
|
|
2399
|
+
} else {
|
|
2400
|
+
strm.msg = "invalid distance code";
|
|
2401
|
+
state.mode = BAD;
|
|
2402
|
+
break top;
|
|
2403
|
+
}
|
|
2404
|
+
break;
|
|
2405
|
+
}
|
|
2406
|
+
} else if ((op & 64) === 0) {
|
|
2407
|
+
here = lcode[(here & 65535) + (hold & (1 << op) - 1)];
|
|
2408
|
+
continue dolen;
|
|
2409
|
+
} else if (op & 32) {
|
|
2410
|
+
state.mode = TYPE;
|
|
2411
|
+
break top;
|
|
2412
|
+
} else {
|
|
2413
|
+
strm.msg = "invalid literal/length code";
|
|
2414
|
+
state.mode = BAD;
|
|
2415
|
+
break top;
|
|
2416
|
+
}
|
|
2417
|
+
break;
|
|
2418
|
+
}
|
|
2419
|
+
} while (_in < last && _out < end);
|
|
2420
|
+
len = bits >> 3;
|
|
2421
|
+
_in -= len;
|
|
2422
|
+
bits -= len << 3;
|
|
2423
|
+
hold &= (1 << bits) - 1;
|
|
2424
|
+
strm.next_in = _in;
|
|
2425
|
+
strm.next_out = _out;
|
|
2426
|
+
strm.avail_in = _in < last ? 5 + (last - _in) : 5 - (_in - last);
|
|
2427
|
+
strm.avail_out = _out < end ? 257 + (end - _out) : 257 - (_out - end);
|
|
2428
|
+
state.hold = hold;
|
|
2429
|
+
state.bits = bits;
|
|
2430
|
+
return;
|
|
2431
|
+
};
|
|
2432
|
+
}
|
|
2433
|
+
});
|
|
2434
|
+
|
|
2435
|
+
// ../../node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/inftrees.js
|
|
2436
|
+
var require_inftrees = __commonJS({
|
|
2437
|
+
"../../node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/inftrees.js"(exports, module) {
|
|
2438
|
+
var utils = require_common();
|
|
2439
|
+
var MAXBITS = 15;
|
|
2440
|
+
var ENOUGH_LENS = 852;
|
|
2441
|
+
var ENOUGH_DISTS = 592;
|
|
2442
|
+
var CODES = 0;
|
|
2443
|
+
var LENS = 1;
|
|
2444
|
+
var DISTS = 2;
|
|
2445
|
+
var lbase = [
|
|
2446
|
+
/* Length codes 257..285 base */
|
|
2447
|
+
3,
|
|
2448
|
+
4,
|
|
2449
|
+
5,
|
|
2450
|
+
6,
|
|
2451
|
+
7,
|
|
2452
|
+
8,
|
|
2453
|
+
9,
|
|
2454
|
+
10,
|
|
2455
|
+
11,
|
|
2456
|
+
13,
|
|
2457
|
+
15,
|
|
2458
|
+
17,
|
|
2459
|
+
19,
|
|
2460
|
+
23,
|
|
2461
|
+
27,
|
|
2462
|
+
31,
|
|
2463
|
+
35,
|
|
2464
|
+
43,
|
|
2465
|
+
51,
|
|
2466
|
+
59,
|
|
2467
|
+
67,
|
|
2468
|
+
83,
|
|
2469
|
+
99,
|
|
2470
|
+
115,
|
|
2471
|
+
131,
|
|
2472
|
+
163,
|
|
2473
|
+
195,
|
|
2474
|
+
227,
|
|
2475
|
+
258,
|
|
2476
|
+
0,
|
|
2477
|
+
0
|
|
2478
|
+
];
|
|
2479
|
+
var lext = [
|
|
2480
|
+
/* Length codes 257..285 extra */
|
|
2481
|
+
16,
|
|
2482
|
+
16,
|
|
2483
|
+
16,
|
|
2484
|
+
16,
|
|
2485
|
+
16,
|
|
2486
|
+
16,
|
|
2487
|
+
16,
|
|
2488
|
+
16,
|
|
2489
|
+
17,
|
|
2490
|
+
17,
|
|
2491
|
+
17,
|
|
2492
|
+
17,
|
|
2493
|
+
18,
|
|
2494
|
+
18,
|
|
2495
|
+
18,
|
|
2496
|
+
18,
|
|
2497
|
+
19,
|
|
2498
|
+
19,
|
|
2499
|
+
19,
|
|
2500
|
+
19,
|
|
2501
|
+
20,
|
|
2502
|
+
20,
|
|
2503
|
+
20,
|
|
2504
|
+
20,
|
|
2505
|
+
21,
|
|
2506
|
+
21,
|
|
2507
|
+
21,
|
|
2508
|
+
21,
|
|
2509
|
+
16,
|
|
2510
|
+
72,
|
|
2511
|
+
78
|
|
2512
|
+
];
|
|
2513
|
+
var dbase = [
|
|
2514
|
+
/* Distance codes 0..29 base */
|
|
2515
|
+
1,
|
|
2516
|
+
2,
|
|
2517
|
+
3,
|
|
2518
|
+
4,
|
|
2519
|
+
5,
|
|
2520
|
+
7,
|
|
2521
|
+
9,
|
|
2522
|
+
13,
|
|
2523
|
+
17,
|
|
2524
|
+
25,
|
|
2525
|
+
33,
|
|
2526
|
+
49,
|
|
2527
|
+
65,
|
|
2528
|
+
97,
|
|
2529
|
+
129,
|
|
2530
|
+
193,
|
|
2531
|
+
257,
|
|
2532
|
+
385,
|
|
2533
|
+
513,
|
|
2534
|
+
769,
|
|
2535
|
+
1025,
|
|
2536
|
+
1537,
|
|
2537
|
+
2049,
|
|
2538
|
+
3073,
|
|
2539
|
+
4097,
|
|
2540
|
+
6145,
|
|
2541
|
+
8193,
|
|
2542
|
+
12289,
|
|
2543
|
+
16385,
|
|
2544
|
+
24577,
|
|
2545
|
+
0,
|
|
2546
|
+
0
|
|
2547
|
+
];
|
|
2548
|
+
var dext = [
|
|
2549
|
+
/* Distance codes 0..29 extra */
|
|
2550
|
+
16,
|
|
2551
|
+
16,
|
|
2552
|
+
16,
|
|
2553
|
+
16,
|
|
2554
|
+
17,
|
|
2555
|
+
17,
|
|
2556
|
+
18,
|
|
2557
|
+
18,
|
|
2558
|
+
19,
|
|
2559
|
+
19,
|
|
2560
|
+
20,
|
|
2561
|
+
20,
|
|
2562
|
+
21,
|
|
2563
|
+
21,
|
|
2564
|
+
22,
|
|
2565
|
+
22,
|
|
2566
|
+
23,
|
|
2567
|
+
23,
|
|
2568
|
+
24,
|
|
2569
|
+
24,
|
|
2570
|
+
25,
|
|
2571
|
+
25,
|
|
2572
|
+
26,
|
|
2573
|
+
26,
|
|
2574
|
+
27,
|
|
2575
|
+
27,
|
|
2576
|
+
28,
|
|
2577
|
+
28,
|
|
2578
|
+
29,
|
|
2579
|
+
29,
|
|
2580
|
+
64,
|
|
2581
|
+
64
|
|
2582
|
+
];
|
|
2583
|
+
module.exports = function inflate_table(type, lens, lens_index, codes, table, table_index, work, opts) {
|
|
2584
|
+
var bits = opts.bits;
|
|
2585
|
+
var len = 0;
|
|
2586
|
+
var sym = 0;
|
|
2587
|
+
var min = 0, max = 0;
|
|
2588
|
+
var root = 0;
|
|
2589
|
+
var curr = 0;
|
|
2590
|
+
var drop = 0;
|
|
2591
|
+
var left = 0;
|
|
2592
|
+
var used = 0;
|
|
2593
|
+
var huff = 0;
|
|
2594
|
+
var incr;
|
|
2595
|
+
var fill;
|
|
2596
|
+
var low;
|
|
2597
|
+
var mask;
|
|
2598
|
+
var next;
|
|
2599
|
+
var base = null;
|
|
2600
|
+
var base_index = 0;
|
|
2601
|
+
var end;
|
|
2602
|
+
var count = new utils.Buf16(MAXBITS + 1);
|
|
2603
|
+
var offs = new utils.Buf16(MAXBITS + 1);
|
|
2604
|
+
var extra = null;
|
|
2605
|
+
var extra_index = 0;
|
|
2606
|
+
var here_bits, here_op, here_val;
|
|
2607
|
+
for (len = 0; len <= MAXBITS; len++) {
|
|
2608
|
+
count[len] = 0;
|
|
2609
|
+
}
|
|
2610
|
+
for (sym = 0; sym < codes; sym++) {
|
|
2611
|
+
count[lens[lens_index + sym]]++;
|
|
2612
|
+
}
|
|
2613
|
+
root = bits;
|
|
2614
|
+
for (max = MAXBITS; max >= 1; max--) {
|
|
2615
|
+
if (count[max] !== 0) {
|
|
2616
|
+
break;
|
|
2617
|
+
}
|
|
2618
|
+
}
|
|
2619
|
+
if (root > max) {
|
|
2620
|
+
root = max;
|
|
2621
|
+
}
|
|
2622
|
+
if (max === 0) {
|
|
2623
|
+
table[table_index++] = 1 << 24 | 64 << 16 | 0;
|
|
2624
|
+
table[table_index++] = 1 << 24 | 64 << 16 | 0;
|
|
2625
|
+
opts.bits = 1;
|
|
2626
|
+
return 0;
|
|
2627
|
+
}
|
|
2628
|
+
for (min = 1; min < max; min++) {
|
|
2629
|
+
if (count[min] !== 0) {
|
|
2630
|
+
break;
|
|
2631
|
+
}
|
|
2632
|
+
}
|
|
2633
|
+
if (root < min) {
|
|
2634
|
+
root = min;
|
|
2635
|
+
}
|
|
2636
|
+
left = 1;
|
|
2637
|
+
for (len = 1; len <= MAXBITS; len++) {
|
|
2638
|
+
left <<= 1;
|
|
2639
|
+
left -= count[len];
|
|
2640
|
+
if (left < 0) {
|
|
2641
|
+
return -1;
|
|
2642
|
+
}
|
|
2643
|
+
}
|
|
2644
|
+
if (left > 0 && (type === CODES || max !== 1)) {
|
|
2645
|
+
return -1;
|
|
2646
|
+
}
|
|
2647
|
+
offs[1] = 0;
|
|
2648
|
+
for (len = 1; len < MAXBITS; len++) {
|
|
2649
|
+
offs[len + 1] = offs[len] + count[len];
|
|
2650
|
+
}
|
|
2651
|
+
for (sym = 0; sym < codes; sym++) {
|
|
2652
|
+
if (lens[lens_index + sym] !== 0) {
|
|
2653
|
+
work[offs[lens[lens_index + sym]]++] = sym;
|
|
2654
|
+
}
|
|
2655
|
+
}
|
|
2656
|
+
if (type === CODES) {
|
|
2657
|
+
base = extra = work;
|
|
2658
|
+
end = 19;
|
|
2659
|
+
} else if (type === LENS) {
|
|
2660
|
+
base = lbase;
|
|
2661
|
+
base_index -= 257;
|
|
2662
|
+
extra = lext;
|
|
2663
|
+
extra_index -= 257;
|
|
2664
|
+
end = 256;
|
|
2665
|
+
} else {
|
|
2666
|
+
base = dbase;
|
|
2667
|
+
extra = dext;
|
|
2668
|
+
end = -1;
|
|
2669
|
+
}
|
|
2670
|
+
huff = 0;
|
|
2671
|
+
sym = 0;
|
|
2672
|
+
len = min;
|
|
2673
|
+
next = table_index;
|
|
2674
|
+
curr = root;
|
|
2675
|
+
drop = 0;
|
|
2676
|
+
low = -1;
|
|
2677
|
+
used = 1 << root;
|
|
2678
|
+
mask = used - 1;
|
|
2679
|
+
if (type === LENS && used > ENOUGH_LENS || type === DISTS && used > ENOUGH_DISTS) {
|
|
2680
|
+
return 1;
|
|
2681
|
+
}
|
|
2682
|
+
for (; ; ) {
|
|
2683
|
+
here_bits = len - drop;
|
|
2684
|
+
if (work[sym] < end) {
|
|
2685
|
+
here_op = 0;
|
|
2686
|
+
here_val = work[sym];
|
|
2687
|
+
} else if (work[sym] > end) {
|
|
2688
|
+
here_op = extra[extra_index + work[sym]];
|
|
2689
|
+
here_val = base[base_index + work[sym]];
|
|
2690
|
+
} else {
|
|
2691
|
+
here_op = 32 + 64;
|
|
2692
|
+
here_val = 0;
|
|
2693
|
+
}
|
|
2694
|
+
incr = 1 << len - drop;
|
|
2695
|
+
fill = 1 << curr;
|
|
2696
|
+
min = fill;
|
|
2697
|
+
do {
|
|
2698
|
+
fill -= incr;
|
|
2699
|
+
table[next + (huff >> drop) + fill] = here_bits << 24 | here_op << 16 | here_val | 0;
|
|
2700
|
+
} while (fill !== 0);
|
|
2701
|
+
incr = 1 << len - 1;
|
|
2702
|
+
while (huff & incr) {
|
|
2703
|
+
incr >>= 1;
|
|
2704
|
+
}
|
|
2705
|
+
if (incr !== 0) {
|
|
2706
|
+
huff &= incr - 1;
|
|
2707
|
+
huff += incr;
|
|
2708
|
+
} else {
|
|
2709
|
+
huff = 0;
|
|
2710
|
+
}
|
|
2711
|
+
sym++;
|
|
2712
|
+
if (--count[len] === 0) {
|
|
2713
|
+
if (len === max) {
|
|
2714
|
+
break;
|
|
2715
|
+
}
|
|
2716
|
+
len = lens[lens_index + work[sym]];
|
|
2717
|
+
}
|
|
2718
|
+
if (len > root && (huff & mask) !== low) {
|
|
2719
|
+
if (drop === 0) {
|
|
2720
|
+
drop = root;
|
|
2721
|
+
}
|
|
2722
|
+
next += min;
|
|
2723
|
+
curr = len - drop;
|
|
2724
|
+
left = 1 << curr;
|
|
2725
|
+
while (curr + drop < max) {
|
|
2726
|
+
left -= count[curr + drop];
|
|
2727
|
+
if (left <= 0) {
|
|
2728
|
+
break;
|
|
2729
|
+
}
|
|
2730
|
+
curr++;
|
|
2731
|
+
left <<= 1;
|
|
2732
|
+
}
|
|
2733
|
+
used += 1 << curr;
|
|
2734
|
+
if (type === LENS && used > ENOUGH_LENS || type === DISTS && used > ENOUGH_DISTS) {
|
|
2735
|
+
return 1;
|
|
2736
|
+
}
|
|
2737
|
+
low = huff & mask;
|
|
2738
|
+
table[low] = root << 24 | curr << 16 | next - table_index | 0;
|
|
2739
|
+
}
|
|
2740
|
+
}
|
|
2741
|
+
if (huff !== 0) {
|
|
2742
|
+
table[next + huff] = len - drop << 24 | 64 << 16 | 0;
|
|
2743
|
+
}
|
|
2744
|
+
opts.bits = root;
|
|
2745
|
+
return 0;
|
|
2746
|
+
};
|
|
2747
|
+
}
|
|
2748
|
+
});
|
|
2749
|
+
|
|
2750
|
+
// ../../node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/inflate.js
|
|
2751
|
+
var require_inflate = __commonJS({
|
|
2752
|
+
"../../node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/inflate.js"(exports) {
|
|
2753
|
+
var utils = require_common();
|
|
2754
|
+
var adler32 = require_adler32();
|
|
2755
|
+
var crc32 = require_crc32();
|
|
2756
|
+
var inflate_fast = require_inffast();
|
|
2757
|
+
var inflate_table = require_inftrees();
|
|
2758
|
+
var CODES = 0;
|
|
2759
|
+
var LENS = 1;
|
|
2760
|
+
var DISTS = 2;
|
|
2761
|
+
var Z_FINISH = 4;
|
|
2762
|
+
var Z_BLOCK = 5;
|
|
2763
|
+
var Z_TREES = 6;
|
|
2764
|
+
var Z_OK = 0;
|
|
2765
|
+
var Z_STREAM_END = 1;
|
|
2766
|
+
var Z_NEED_DICT = 2;
|
|
2767
|
+
var Z_STREAM_ERROR = -2;
|
|
2768
|
+
var Z_DATA_ERROR = -3;
|
|
2769
|
+
var Z_MEM_ERROR = -4;
|
|
2770
|
+
var Z_BUF_ERROR = -5;
|
|
2771
|
+
var Z_DEFLATED = 8;
|
|
2772
|
+
var HEAD = 1;
|
|
2773
|
+
var FLAGS = 2;
|
|
2774
|
+
var TIME = 3;
|
|
2775
|
+
var OS = 4;
|
|
2776
|
+
var EXLEN = 5;
|
|
2777
|
+
var EXTRA = 6;
|
|
2778
|
+
var NAME = 7;
|
|
2779
|
+
var COMMENT = 8;
|
|
2780
|
+
var HCRC = 9;
|
|
2781
|
+
var DICTID = 10;
|
|
2782
|
+
var DICT = 11;
|
|
2783
|
+
var TYPE = 12;
|
|
2784
|
+
var TYPEDO = 13;
|
|
2785
|
+
var STORED = 14;
|
|
2786
|
+
var COPY_ = 15;
|
|
2787
|
+
var COPY = 16;
|
|
2788
|
+
var TABLE = 17;
|
|
2789
|
+
var LENLENS = 18;
|
|
2790
|
+
var CODELENS = 19;
|
|
2791
|
+
var LEN_ = 20;
|
|
2792
|
+
var LEN = 21;
|
|
2793
|
+
var LENEXT = 22;
|
|
2794
|
+
var DIST = 23;
|
|
2795
|
+
var DISTEXT = 24;
|
|
2796
|
+
var MATCH = 25;
|
|
2797
|
+
var LIT = 26;
|
|
2798
|
+
var CHECK = 27;
|
|
2799
|
+
var LENGTH = 28;
|
|
2800
|
+
var DONE = 29;
|
|
2801
|
+
var BAD = 30;
|
|
2802
|
+
var MEM = 31;
|
|
2803
|
+
var SYNC = 32;
|
|
2804
|
+
var ENOUGH_LENS = 852;
|
|
2805
|
+
var ENOUGH_DISTS = 592;
|
|
2806
|
+
var MAX_WBITS = 15;
|
|
2807
|
+
var DEF_WBITS = MAX_WBITS;
|
|
2808
|
+
function zswap32(q) {
|
|
2809
|
+
return (q >>> 24 & 255) + (q >>> 8 & 65280) + ((q & 65280) << 8) + ((q & 255) << 24);
|
|
2810
|
+
}
|
|
2811
|
+
function InflateState() {
|
|
2812
|
+
this.mode = 0;
|
|
2813
|
+
this.last = false;
|
|
2814
|
+
this.wrap = 0;
|
|
2815
|
+
this.havedict = false;
|
|
2816
|
+
this.flags = 0;
|
|
2817
|
+
this.dmax = 0;
|
|
2818
|
+
this.check = 0;
|
|
2819
|
+
this.total = 0;
|
|
2820
|
+
this.head = null;
|
|
2821
|
+
this.wbits = 0;
|
|
2822
|
+
this.wsize = 0;
|
|
2823
|
+
this.whave = 0;
|
|
2824
|
+
this.wnext = 0;
|
|
2825
|
+
this.window = null;
|
|
2826
|
+
this.hold = 0;
|
|
2827
|
+
this.bits = 0;
|
|
2828
|
+
this.length = 0;
|
|
2829
|
+
this.offset = 0;
|
|
2830
|
+
this.extra = 0;
|
|
2831
|
+
this.lencode = null;
|
|
2832
|
+
this.distcode = null;
|
|
2833
|
+
this.lenbits = 0;
|
|
2834
|
+
this.distbits = 0;
|
|
2835
|
+
this.ncode = 0;
|
|
2836
|
+
this.nlen = 0;
|
|
2837
|
+
this.ndist = 0;
|
|
2838
|
+
this.have = 0;
|
|
2839
|
+
this.next = null;
|
|
2840
|
+
this.lens = new utils.Buf16(320);
|
|
2841
|
+
this.work = new utils.Buf16(288);
|
|
2842
|
+
this.lendyn = null;
|
|
2843
|
+
this.distdyn = null;
|
|
2844
|
+
this.sane = 0;
|
|
2845
|
+
this.back = 0;
|
|
2846
|
+
this.was = 0;
|
|
2847
|
+
}
|
|
2848
|
+
function inflateResetKeep(strm) {
|
|
2849
|
+
var state;
|
|
2850
|
+
if (!strm || !strm.state) {
|
|
2851
|
+
return Z_STREAM_ERROR;
|
|
2852
|
+
}
|
|
2853
|
+
state = strm.state;
|
|
2854
|
+
strm.total_in = strm.total_out = state.total = 0;
|
|
2855
|
+
strm.msg = "";
|
|
2856
|
+
if (state.wrap) {
|
|
2857
|
+
strm.adler = state.wrap & 1;
|
|
2858
|
+
}
|
|
2859
|
+
state.mode = HEAD;
|
|
2860
|
+
state.last = 0;
|
|
2861
|
+
state.havedict = 0;
|
|
2862
|
+
state.dmax = 32768;
|
|
2863
|
+
state.head = null;
|
|
2864
|
+
state.hold = 0;
|
|
2865
|
+
state.bits = 0;
|
|
2866
|
+
state.lencode = state.lendyn = new utils.Buf32(ENOUGH_LENS);
|
|
2867
|
+
state.distcode = state.distdyn = new utils.Buf32(ENOUGH_DISTS);
|
|
2868
|
+
state.sane = 1;
|
|
2869
|
+
state.back = -1;
|
|
2870
|
+
return Z_OK;
|
|
2871
|
+
}
|
|
2872
|
+
function inflateReset(strm) {
|
|
2873
|
+
var state;
|
|
2874
|
+
if (!strm || !strm.state) {
|
|
2875
|
+
return Z_STREAM_ERROR;
|
|
2876
|
+
}
|
|
2877
|
+
state = strm.state;
|
|
2878
|
+
state.wsize = 0;
|
|
2879
|
+
state.whave = 0;
|
|
2880
|
+
state.wnext = 0;
|
|
2881
|
+
return inflateResetKeep(strm);
|
|
2882
|
+
}
|
|
2883
|
+
function inflateReset2(strm, windowBits) {
|
|
2884
|
+
var wrap2;
|
|
2885
|
+
var state;
|
|
2886
|
+
if (!strm || !strm.state) {
|
|
2887
|
+
return Z_STREAM_ERROR;
|
|
2888
|
+
}
|
|
2889
|
+
state = strm.state;
|
|
2890
|
+
if (windowBits < 0) {
|
|
2891
|
+
wrap2 = 0;
|
|
2892
|
+
windowBits = -windowBits;
|
|
2893
|
+
} else {
|
|
2894
|
+
wrap2 = (windowBits >> 4) + 1;
|
|
2895
|
+
if (windowBits < 48) {
|
|
2896
|
+
windowBits &= 15;
|
|
2897
|
+
}
|
|
2898
|
+
}
|
|
2899
|
+
if (windowBits && (windowBits < 8 || windowBits > 15)) {
|
|
2900
|
+
return Z_STREAM_ERROR;
|
|
2901
|
+
}
|
|
2902
|
+
if (state.window !== null && state.wbits !== windowBits) {
|
|
2903
|
+
state.window = null;
|
|
2904
|
+
}
|
|
2905
|
+
state.wrap = wrap2;
|
|
2906
|
+
state.wbits = windowBits;
|
|
2907
|
+
return inflateReset(strm);
|
|
2908
|
+
}
|
|
2909
|
+
function inflateInit2(strm, windowBits) {
|
|
2910
|
+
var ret;
|
|
2911
|
+
var state;
|
|
2912
|
+
if (!strm) {
|
|
2913
|
+
return Z_STREAM_ERROR;
|
|
2914
|
+
}
|
|
2915
|
+
state = new InflateState();
|
|
2916
|
+
strm.state = state;
|
|
2917
|
+
state.window = null;
|
|
2918
|
+
ret = inflateReset2(strm, windowBits);
|
|
2919
|
+
if (ret !== Z_OK) {
|
|
2920
|
+
strm.state = null;
|
|
2921
|
+
}
|
|
2922
|
+
return ret;
|
|
2923
|
+
}
|
|
2924
|
+
function inflateInit(strm) {
|
|
2925
|
+
return inflateInit2(strm, DEF_WBITS);
|
|
2926
|
+
}
|
|
2927
|
+
var virgin = true;
|
|
2928
|
+
var lenfix;
|
|
2929
|
+
var distfix;
|
|
2930
|
+
function fixedtables(state) {
|
|
2931
|
+
if (virgin) {
|
|
2932
|
+
var sym;
|
|
2933
|
+
lenfix = new utils.Buf32(512);
|
|
2934
|
+
distfix = new utils.Buf32(32);
|
|
2935
|
+
sym = 0;
|
|
2936
|
+
while (sym < 144) {
|
|
2937
|
+
state.lens[sym++] = 8;
|
|
2938
|
+
}
|
|
2939
|
+
while (sym < 256) {
|
|
2940
|
+
state.lens[sym++] = 9;
|
|
2941
|
+
}
|
|
2942
|
+
while (sym < 280) {
|
|
2943
|
+
state.lens[sym++] = 7;
|
|
2944
|
+
}
|
|
2945
|
+
while (sym < 288) {
|
|
2946
|
+
state.lens[sym++] = 8;
|
|
2947
|
+
}
|
|
2948
|
+
inflate_table(LENS, state.lens, 0, 288, lenfix, 0, state.work, { bits: 9 });
|
|
2949
|
+
sym = 0;
|
|
2950
|
+
while (sym < 32) {
|
|
2951
|
+
state.lens[sym++] = 5;
|
|
2952
|
+
}
|
|
2953
|
+
inflate_table(DISTS, state.lens, 0, 32, distfix, 0, state.work, { bits: 5 });
|
|
2954
|
+
virgin = false;
|
|
2955
|
+
}
|
|
2956
|
+
state.lencode = lenfix;
|
|
2957
|
+
state.lenbits = 9;
|
|
2958
|
+
state.distcode = distfix;
|
|
2959
|
+
state.distbits = 5;
|
|
2960
|
+
}
|
|
2961
|
+
function updatewindow(strm, src, end, copy) {
|
|
2962
|
+
var dist;
|
|
2963
|
+
var state = strm.state;
|
|
2964
|
+
if (state.window === null) {
|
|
2965
|
+
state.wsize = 1 << state.wbits;
|
|
2966
|
+
state.wnext = 0;
|
|
2967
|
+
state.whave = 0;
|
|
2968
|
+
state.window = new utils.Buf8(state.wsize);
|
|
2969
|
+
}
|
|
2970
|
+
if (copy >= state.wsize) {
|
|
2971
|
+
utils.arraySet(state.window, src, end - state.wsize, state.wsize, 0);
|
|
2972
|
+
state.wnext = 0;
|
|
2973
|
+
state.whave = state.wsize;
|
|
2974
|
+
} else {
|
|
2975
|
+
dist = state.wsize - state.wnext;
|
|
2976
|
+
if (dist > copy) {
|
|
2977
|
+
dist = copy;
|
|
2978
|
+
}
|
|
2979
|
+
utils.arraySet(state.window, src, end - copy, dist, state.wnext);
|
|
2980
|
+
copy -= dist;
|
|
2981
|
+
if (copy) {
|
|
2982
|
+
utils.arraySet(state.window, src, end - copy, copy, 0);
|
|
2983
|
+
state.wnext = copy;
|
|
2984
|
+
state.whave = state.wsize;
|
|
2985
|
+
} else {
|
|
2986
|
+
state.wnext += dist;
|
|
2987
|
+
if (state.wnext === state.wsize) {
|
|
2988
|
+
state.wnext = 0;
|
|
2989
|
+
}
|
|
2990
|
+
if (state.whave < state.wsize) {
|
|
2991
|
+
state.whave += dist;
|
|
2992
|
+
}
|
|
2993
|
+
}
|
|
2994
|
+
}
|
|
2995
|
+
return 0;
|
|
2996
|
+
}
|
|
2997
|
+
function inflate(strm, flush) {
|
|
2998
|
+
var state;
|
|
2999
|
+
var input, output;
|
|
3000
|
+
var next;
|
|
3001
|
+
var put;
|
|
3002
|
+
var have, left;
|
|
3003
|
+
var hold;
|
|
3004
|
+
var bits;
|
|
3005
|
+
var _in, _out;
|
|
3006
|
+
var copy;
|
|
3007
|
+
var from;
|
|
3008
|
+
var from_source;
|
|
3009
|
+
var here = 0;
|
|
3010
|
+
var here_bits, here_op, here_val;
|
|
3011
|
+
var last_bits, last_op, last_val;
|
|
3012
|
+
var len;
|
|
3013
|
+
var ret;
|
|
3014
|
+
var hbuf = new utils.Buf8(4);
|
|
3015
|
+
var opts;
|
|
3016
|
+
var n;
|
|
3017
|
+
var order = (
|
|
3018
|
+
/* permutation of code lengths */
|
|
3019
|
+
[16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]
|
|
3020
|
+
);
|
|
3021
|
+
if (!strm || !strm.state || !strm.output || !strm.input && strm.avail_in !== 0) {
|
|
3022
|
+
return Z_STREAM_ERROR;
|
|
3023
|
+
}
|
|
3024
|
+
state = strm.state;
|
|
3025
|
+
if (state.mode === TYPE) {
|
|
3026
|
+
state.mode = TYPEDO;
|
|
3027
|
+
}
|
|
3028
|
+
put = strm.next_out;
|
|
3029
|
+
output = strm.output;
|
|
3030
|
+
left = strm.avail_out;
|
|
3031
|
+
next = strm.next_in;
|
|
3032
|
+
input = strm.input;
|
|
3033
|
+
have = strm.avail_in;
|
|
3034
|
+
hold = state.hold;
|
|
3035
|
+
bits = state.bits;
|
|
3036
|
+
_in = have;
|
|
3037
|
+
_out = left;
|
|
3038
|
+
ret = Z_OK;
|
|
3039
|
+
inf_leave:
|
|
3040
|
+
for (; ; ) {
|
|
3041
|
+
switch (state.mode) {
|
|
3042
|
+
case HEAD:
|
|
3043
|
+
if (state.wrap === 0) {
|
|
3044
|
+
state.mode = TYPEDO;
|
|
3045
|
+
break;
|
|
3046
|
+
}
|
|
3047
|
+
while (bits < 16) {
|
|
3048
|
+
if (have === 0) {
|
|
3049
|
+
break inf_leave;
|
|
3050
|
+
}
|
|
3051
|
+
have--;
|
|
3052
|
+
hold += input[next++] << bits;
|
|
3053
|
+
bits += 8;
|
|
3054
|
+
}
|
|
3055
|
+
if (state.wrap & 2 && hold === 35615) {
|
|
3056
|
+
state.check = 0;
|
|
3057
|
+
hbuf[0] = hold & 255;
|
|
3058
|
+
hbuf[1] = hold >>> 8 & 255;
|
|
3059
|
+
state.check = crc32(state.check, hbuf, 2, 0);
|
|
3060
|
+
hold = 0;
|
|
3061
|
+
bits = 0;
|
|
3062
|
+
state.mode = FLAGS;
|
|
3063
|
+
break;
|
|
3064
|
+
}
|
|
3065
|
+
state.flags = 0;
|
|
3066
|
+
if (state.head) {
|
|
3067
|
+
state.head.done = false;
|
|
3068
|
+
}
|
|
3069
|
+
if (!(state.wrap & 1) || /* check if zlib header allowed */
|
|
3070
|
+
(((hold & 255) << 8) + (hold >> 8)) % 31) {
|
|
3071
|
+
strm.msg = "incorrect header check";
|
|
3072
|
+
state.mode = BAD;
|
|
3073
|
+
break;
|
|
3074
|
+
}
|
|
3075
|
+
if ((hold & 15) !== Z_DEFLATED) {
|
|
3076
|
+
strm.msg = "unknown compression method";
|
|
3077
|
+
state.mode = BAD;
|
|
3078
|
+
break;
|
|
3079
|
+
}
|
|
3080
|
+
hold >>>= 4;
|
|
3081
|
+
bits -= 4;
|
|
3082
|
+
len = (hold & 15) + 8;
|
|
3083
|
+
if (state.wbits === 0) {
|
|
3084
|
+
state.wbits = len;
|
|
3085
|
+
} else if (len > state.wbits) {
|
|
3086
|
+
strm.msg = "invalid window size";
|
|
3087
|
+
state.mode = BAD;
|
|
3088
|
+
break;
|
|
3089
|
+
}
|
|
3090
|
+
state.dmax = 1 << len;
|
|
3091
|
+
strm.adler = state.check = 1;
|
|
3092
|
+
state.mode = hold & 512 ? DICTID : TYPE;
|
|
3093
|
+
hold = 0;
|
|
3094
|
+
bits = 0;
|
|
3095
|
+
break;
|
|
3096
|
+
case FLAGS:
|
|
3097
|
+
while (bits < 16) {
|
|
3098
|
+
if (have === 0) {
|
|
3099
|
+
break inf_leave;
|
|
3100
|
+
}
|
|
3101
|
+
have--;
|
|
3102
|
+
hold += input[next++] << bits;
|
|
3103
|
+
bits += 8;
|
|
3104
|
+
}
|
|
3105
|
+
state.flags = hold;
|
|
3106
|
+
if ((state.flags & 255) !== Z_DEFLATED) {
|
|
3107
|
+
strm.msg = "unknown compression method";
|
|
3108
|
+
state.mode = BAD;
|
|
3109
|
+
break;
|
|
3110
|
+
}
|
|
3111
|
+
if (state.flags & 57344) {
|
|
3112
|
+
strm.msg = "unknown header flags set";
|
|
3113
|
+
state.mode = BAD;
|
|
3114
|
+
break;
|
|
3115
|
+
}
|
|
3116
|
+
if (state.head) {
|
|
3117
|
+
state.head.text = hold >> 8 & 1;
|
|
3118
|
+
}
|
|
3119
|
+
if (state.flags & 512) {
|
|
3120
|
+
hbuf[0] = hold & 255;
|
|
3121
|
+
hbuf[1] = hold >>> 8 & 255;
|
|
3122
|
+
state.check = crc32(state.check, hbuf, 2, 0);
|
|
3123
|
+
}
|
|
3124
|
+
hold = 0;
|
|
3125
|
+
bits = 0;
|
|
3126
|
+
state.mode = TIME;
|
|
3127
|
+
/* falls through */
|
|
3128
|
+
case TIME:
|
|
3129
|
+
while (bits < 32) {
|
|
3130
|
+
if (have === 0) {
|
|
3131
|
+
break inf_leave;
|
|
3132
|
+
}
|
|
3133
|
+
have--;
|
|
3134
|
+
hold += input[next++] << bits;
|
|
3135
|
+
bits += 8;
|
|
3136
|
+
}
|
|
3137
|
+
if (state.head) {
|
|
3138
|
+
state.head.time = hold;
|
|
3139
|
+
}
|
|
3140
|
+
if (state.flags & 512) {
|
|
3141
|
+
hbuf[0] = hold & 255;
|
|
3142
|
+
hbuf[1] = hold >>> 8 & 255;
|
|
3143
|
+
hbuf[2] = hold >>> 16 & 255;
|
|
3144
|
+
hbuf[3] = hold >>> 24 & 255;
|
|
3145
|
+
state.check = crc32(state.check, hbuf, 4, 0);
|
|
3146
|
+
}
|
|
3147
|
+
hold = 0;
|
|
3148
|
+
bits = 0;
|
|
3149
|
+
state.mode = OS;
|
|
3150
|
+
/* falls through */
|
|
3151
|
+
case OS:
|
|
3152
|
+
while (bits < 16) {
|
|
3153
|
+
if (have === 0) {
|
|
3154
|
+
break inf_leave;
|
|
3155
|
+
}
|
|
3156
|
+
have--;
|
|
3157
|
+
hold += input[next++] << bits;
|
|
3158
|
+
bits += 8;
|
|
3159
|
+
}
|
|
3160
|
+
if (state.head) {
|
|
3161
|
+
state.head.xflags = hold & 255;
|
|
3162
|
+
state.head.os = hold >> 8;
|
|
3163
|
+
}
|
|
3164
|
+
if (state.flags & 512) {
|
|
3165
|
+
hbuf[0] = hold & 255;
|
|
3166
|
+
hbuf[1] = hold >>> 8 & 255;
|
|
3167
|
+
state.check = crc32(state.check, hbuf, 2, 0);
|
|
3168
|
+
}
|
|
3169
|
+
hold = 0;
|
|
3170
|
+
bits = 0;
|
|
3171
|
+
state.mode = EXLEN;
|
|
3172
|
+
/* falls through */
|
|
3173
|
+
case EXLEN:
|
|
3174
|
+
if (state.flags & 1024) {
|
|
3175
|
+
while (bits < 16) {
|
|
3176
|
+
if (have === 0) {
|
|
3177
|
+
break inf_leave;
|
|
3178
|
+
}
|
|
3179
|
+
have--;
|
|
3180
|
+
hold += input[next++] << bits;
|
|
3181
|
+
bits += 8;
|
|
3182
|
+
}
|
|
3183
|
+
state.length = hold;
|
|
3184
|
+
if (state.head) {
|
|
3185
|
+
state.head.extra_len = hold;
|
|
3186
|
+
}
|
|
3187
|
+
if (state.flags & 512) {
|
|
3188
|
+
hbuf[0] = hold & 255;
|
|
3189
|
+
hbuf[1] = hold >>> 8 & 255;
|
|
3190
|
+
state.check = crc32(state.check, hbuf, 2, 0);
|
|
3191
|
+
}
|
|
3192
|
+
hold = 0;
|
|
3193
|
+
bits = 0;
|
|
3194
|
+
} else if (state.head) {
|
|
3195
|
+
state.head.extra = null;
|
|
3196
|
+
}
|
|
3197
|
+
state.mode = EXTRA;
|
|
3198
|
+
/* falls through */
|
|
3199
|
+
case EXTRA:
|
|
3200
|
+
if (state.flags & 1024) {
|
|
3201
|
+
copy = state.length;
|
|
3202
|
+
if (copy > have) {
|
|
3203
|
+
copy = have;
|
|
3204
|
+
}
|
|
3205
|
+
if (copy) {
|
|
3206
|
+
if (state.head) {
|
|
3207
|
+
len = state.head.extra_len - state.length;
|
|
3208
|
+
if (!state.head.extra) {
|
|
3209
|
+
state.head.extra = new Array(state.head.extra_len);
|
|
3210
|
+
}
|
|
3211
|
+
utils.arraySet(
|
|
3212
|
+
state.head.extra,
|
|
3213
|
+
input,
|
|
3214
|
+
next,
|
|
3215
|
+
// extra field is limited to 65536 bytes
|
|
3216
|
+
// - no need for additional size check
|
|
3217
|
+
copy,
|
|
3218
|
+
/*len + copy > state.head.extra_max - len ? state.head.extra_max : copy,*/
|
|
3219
|
+
len
|
|
3220
|
+
);
|
|
3221
|
+
}
|
|
3222
|
+
if (state.flags & 512) {
|
|
3223
|
+
state.check = crc32(state.check, input, copy, next);
|
|
3224
|
+
}
|
|
3225
|
+
have -= copy;
|
|
3226
|
+
next += copy;
|
|
3227
|
+
state.length -= copy;
|
|
3228
|
+
}
|
|
3229
|
+
if (state.length) {
|
|
3230
|
+
break inf_leave;
|
|
3231
|
+
}
|
|
3232
|
+
}
|
|
3233
|
+
state.length = 0;
|
|
3234
|
+
state.mode = NAME;
|
|
3235
|
+
/* falls through */
|
|
3236
|
+
case NAME:
|
|
3237
|
+
if (state.flags & 2048) {
|
|
3238
|
+
if (have === 0) {
|
|
3239
|
+
break inf_leave;
|
|
3240
|
+
}
|
|
3241
|
+
copy = 0;
|
|
3242
|
+
do {
|
|
3243
|
+
len = input[next + copy++];
|
|
3244
|
+
if (state.head && len && state.length < 65536) {
|
|
3245
|
+
state.head.name += String.fromCharCode(len);
|
|
3246
|
+
}
|
|
3247
|
+
} while (len && copy < have);
|
|
3248
|
+
if (state.flags & 512) {
|
|
3249
|
+
state.check = crc32(state.check, input, copy, next);
|
|
3250
|
+
}
|
|
3251
|
+
have -= copy;
|
|
3252
|
+
next += copy;
|
|
3253
|
+
if (len) {
|
|
3254
|
+
break inf_leave;
|
|
3255
|
+
}
|
|
3256
|
+
} else if (state.head) {
|
|
3257
|
+
state.head.name = null;
|
|
3258
|
+
}
|
|
3259
|
+
state.length = 0;
|
|
3260
|
+
state.mode = COMMENT;
|
|
3261
|
+
/* falls through */
|
|
3262
|
+
case COMMENT:
|
|
3263
|
+
if (state.flags & 4096) {
|
|
3264
|
+
if (have === 0) {
|
|
3265
|
+
break inf_leave;
|
|
3266
|
+
}
|
|
3267
|
+
copy = 0;
|
|
3268
|
+
do {
|
|
3269
|
+
len = input[next + copy++];
|
|
3270
|
+
if (state.head && len && state.length < 65536) {
|
|
3271
|
+
state.head.comment += String.fromCharCode(len);
|
|
3272
|
+
}
|
|
3273
|
+
} while (len && copy < have);
|
|
3274
|
+
if (state.flags & 512) {
|
|
3275
|
+
state.check = crc32(state.check, input, copy, next);
|
|
3276
|
+
}
|
|
3277
|
+
have -= copy;
|
|
3278
|
+
next += copy;
|
|
3279
|
+
if (len) {
|
|
3280
|
+
break inf_leave;
|
|
3281
|
+
}
|
|
3282
|
+
} else if (state.head) {
|
|
3283
|
+
state.head.comment = null;
|
|
3284
|
+
}
|
|
3285
|
+
state.mode = HCRC;
|
|
3286
|
+
/* falls through */
|
|
3287
|
+
case HCRC:
|
|
3288
|
+
if (state.flags & 512) {
|
|
3289
|
+
while (bits < 16) {
|
|
3290
|
+
if (have === 0) {
|
|
3291
|
+
break inf_leave;
|
|
3292
|
+
}
|
|
3293
|
+
have--;
|
|
3294
|
+
hold += input[next++] << bits;
|
|
3295
|
+
bits += 8;
|
|
3296
|
+
}
|
|
3297
|
+
if (hold !== (state.check & 65535)) {
|
|
3298
|
+
strm.msg = "header crc mismatch";
|
|
3299
|
+
state.mode = BAD;
|
|
3300
|
+
break;
|
|
3301
|
+
}
|
|
3302
|
+
hold = 0;
|
|
3303
|
+
bits = 0;
|
|
3304
|
+
}
|
|
3305
|
+
if (state.head) {
|
|
3306
|
+
state.head.hcrc = state.flags >> 9 & 1;
|
|
3307
|
+
state.head.done = true;
|
|
3308
|
+
}
|
|
3309
|
+
strm.adler = state.check = 0;
|
|
3310
|
+
state.mode = TYPE;
|
|
3311
|
+
break;
|
|
3312
|
+
case DICTID:
|
|
3313
|
+
while (bits < 32) {
|
|
3314
|
+
if (have === 0) {
|
|
3315
|
+
break inf_leave;
|
|
3316
|
+
}
|
|
3317
|
+
have--;
|
|
3318
|
+
hold += input[next++] << bits;
|
|
3319
|
+
bits += 8;
|
|
3320
|
+
}
|
|
3321
|
+
strm.adler = state.check = zswap32(hold);
|
|
3322
|
+
hold = 0;
|
|
3323
|
+
bits = 0;
|
|
3324
|
+
state.mode = DICT;
|
|
3325
|
+
/* falls through */
|
|
3326
|
+
case DICT:
|
|
3327
|
+
if (state.havedict === 0) {
|
|
3328
|
+
strm.next_out = put;
|
|
3329
|
+
strm.avail_out = left;
|
|
3330
|
+
strm.next_in = next;
|
|
3331
|
+
strm.avail_in = have;
|
|
3332
|
+
state.hold = hold;
|
|
3333
|
+
state.bits = bits;
|
|
3334
|
+
return Z_NEED_DICT;
|
|
3335
|
+
}
|
|
3336
|
+
strm.adler = state.check = 1;
|
|
3337
|
+
state.mode = TYPE;
|
|
3338
|
+
/* falls through */
|
|
3339
|
+
case TYPE:
|
|
3340
|
+
if (flush === Z_BLOCK || flush === Z_TREES) {
|
|
3341
|
+
break inf_leave;
|
|
3342
|
+
}
|
|
3343
|
+
/* falls through */
|
|
3344
|
+
case TYPEDO:
|
|
3345
|
+
if (state.last) {
|
|
3346
|
+
hold >>>= bits & 7;
|
|
3347
|
+
bits -= bits & 7;
|
|
3348
|
+
state.mode = CHECK;
|
|
3349
|
+
break;
|
|
3350
|
+
}
|
|
3351
|
+
while (bits < 3) {
|
|
3352
|
+
if (have === 0) {
|
|
3353
|
+
break inf_leave;
|
|
3354
|
+
}
|
|
3355
|
+
have--;
|
|
3356
|
+
hold += input[next++] << bits;
|
|
3357
|
+
bits += 8;
|
|
3358
|
+
}
|
|
3359
|
+
state.last = hold & 1;
|
|
3360
|
+
hold >>>= 1;
|
|
3361
|
+
bits -= 1;
|
|
3362
|
+
switch (hold & 3) {
|
|
3363
|
+
case 0:
|
|
3364
|
+
state.mode = STORED;
|
|
3365
|
+
break;
|
|
3366
|
+
case 1:
|
|
3367
|
+
fixedtables(state);
|
|
3368
|
+
state.mode = LEN_;
|
|
3369
|
+
if (flush === Z_TREES) {
|
|
3370
|
+
hold >>>= 2;
|
|
3371
|
+
bits -= 2;
|
|
3372
|
+
break inf_leave;
|
|
3373
|
+
}
|
|
3374
|
+
break;
|
|
3375
|
+
case 2:
|
|
3376
|
+
state.mode = TABLE;
|
|
3377
|
+
break;
|
|
3378
|
+
case 3:
|
|
3379
|
+
strm.msg = "invalid block type";
|
|
3380
|
+
state.mode = BAD;
|
|
3381
|
+
}
|
|
3382
|
+
hold >>>= 2;
|
|
3383
|
+
bits -= 2;
|
|
3384
|
+
break;
|
|
3385
|
+
case STORED:
|
|
3386
|
+
hold >>>= bits & 7;
|
|
3387
|
+
bits -= bits & 7;
|
|
3388
|
+
while (bits < 32) {
|
|
3389
|
+
if (have === 0) {
|
|
3390
|
+
break inf_leave;
|
|
3391
|
+
}
|
|
3392
|
+
have--;
|
|
3393
|
+
hold += input[next++] << bits;
|
|
3394
|
+
bits += 8;
|
|
3395
|
+
}
|
|
3396
|
+
if ((hold & 65535) !== (hold >>> 16 ^ 65535)) {
|
|
3397
|
+
strm.msg = "invalid stored block lengths";
|
|
3398
|
+
state.mode = BAD;
|
|
3399
|
+
break;
|
|
3400
|
+
}
|
|
3401
|
+
state.length = hold & 65535;
|
|
3402
|
+
hold = 0;
|
|
3403
|
+
bits = 0;
|
|
3404
|
+
state.mode = COPY_;
|
|
3405
|
+
if (flush === Z_TREES) {
|
|
3406
|
+
break inf_leave;
|
|
3407
|
+
}
|
|
3408
|
+
/* falls through */
|
|
3409
|
+
case COPY_:
|
|
3410
|
+
state.mode = COPY;
|
|
3411
|
+
/* falls through */
|
|
3412
|
+
case COPY:
|
|
3413
|
+
copy = state.length;
|
|
3414
|
+
if (copy) {
|
|
3415
|
+
if (copy > have) {
|
|
3416
|
+
copy = have;
|
|
3417
|
+
}
|
|
3418
|
+
if (copy > left) {
|
|
3419
|
+
copy = left;
|
|
3420
|
+
}
|
|
3421
|
+
if (copy === 0) {
|
|
3422
|
+
break inf_leave;
|
|
3423
|
+
}
|
|
3424
|
+
utils.arraySet(output, input, next, copy, put);
|
|
3425
|
+
have -= copy;
|
|
3426
|
+
next += copy;
|
|
3427
|
+
left -= copy;
|
|
3428
|
+
put += copy;
|
|
3429
|
+
state.length -= copy;
|
|
3430
|
+
break;
|
|
3431
|
+
}
|
|
3432
|
+
state.mode = TYPE;
|
|
3433
|
+
break;
|
|
3434
|
+
case TABLE:
|
|
3435
|
+
while (bits < 14) {
|
|
3436
|
+
if (have === 0) {
|
|
3437
|
+
break inf_leave;
|
|
3438
|
+
}
|
|
3439
|
+
have--;
|
|
3440
|
+
hold += input[next++] << bits;
|
|
3441
|
+
bits += 8;
|
|
3442
|
+
}
|
|
3443
|
+
state.nlen = (hold & 31) + 257;
|
|
3444
|
+
hold >>>= 5;
|
|
3445
|
+
bits -= 5;
|
|
3446
|
+
state.ndist = (hold & 31) + 1;
|
|
3447
|
+
hold >>>= 5;
|
|
3448
|
+
bits -= 5;
|
|
3449
|
+
state.ncode = (hold & 15) + 4;
|
|
3450
|
+
hold >>>= 4;
|
|
3451
|
+
bits -= 4;
|
|
3452
|
+
if (state.nlen > 286 || state.ndist > 30) {
|
|
3453
|
+
strm.msg = "too many length or distance symbols";
|
|
3454
|
+
state.mode = BAD;
|
|
3455
|
+
break;
|
|
3456
|
+
}
|
|
3457
|
+
state.have = 0;
|
|
3458
|
+
state.mode = LENLENS;
|
|
3459
|
+
/* falls through */
|
|
3460
|
+
case LENLENS:
|
|
3461
|
+
while (state.have < state.ncode) {
|
|
3462
|
+
while (bits < 3) {
|
|
3463
|
+
if (have === 0) {
|
|
3464
|
+
break inf_leave;
|
|
3465
|
+
}
|
|
3466
|
+
have--;
|
|
3467
|
+
hold += input[next++] << bits;
|
|
3468
|
+
bits += 8;
|
|
3469
|
+
}
|
|
3470
|
+
state.lens[order[state.have++]] = hold & 7;
|
|
3471
|
+
hold >>>= 3;
|
|
3472
|
+
bits -= 3;
|
|
3473
|
+
}
|
|
3474
|
+
while (state.have < 19) {
|
|
3475
|
+
state.lens[order[state.have++]] = 0;
|
|
3476
|
+
}
|
|
3477
|
+
state.lencode = state.lendyn;
|
|
3478
|
+
state.lenbits = 7;
|
|
3479
|
+
opts = { bits: state.lenbits };
|
|
3480
|
+
ret = inflate_table(CODES, state.lens, 0, 19, state.lencode, 0, state.work, opts);
|
|
3481
|
+
state.lenbits = opts.bits;
|
|
3482
|
+
if (ret) {
|
|
3483
|
+
strm.msg = "invalid code lengths set";
|
|
3484
|
+
state.mode = BAD;
|
|
3485
|
+
break;
|
|
3486
|
+
}
|
|
3487
|
+
state.have = 0;
|
|
3488
|
+
state.mode = CODELENS;
|
|
3489
|
+
/* falls through */
|
|
3490
|
+
case CODELENS:
|
|
3491
|
+
while (state.have < state.nlen + state.ndist) {
|
|
3492
|
+
for (; ; ) {
|
|
3493
|
+
here = state.lencode[hold & (1 << state.lenbits) - 1];
|
|
3494
|
+
here_bits = here >>> 24;
|
|
3495
|
+
here_op = here >>> 16 & 255;
|
|
3496
|
+
here_val = here & 65535;
|
|
3497
|
+
if (here_bits <= bits) {
|
|
3498
|
+
break;
|
|
3499
|
+
}
|
|
3500
|
+
if (have === 0) {
|
|
3501
|
+
break inf_leave;
|
|
3502
|
+
}
|
|
3503
|
+
have--;
|
|
3504
|
+
hold += input[next++] << bits;
|
|
3505
|
+
bits += 8;
|
|
3506
|
+
}
|
|
3507
|
+
if (here_val < 16) {
|
|
3508
|
+
hold >>>= here_bits;
|
|
3509
|
+
bits -= here_bits;
|
|
3510
|
+
state.lens[state.have++] = here_val;
|
|
3511
|
+
} else {
|
|
3512
|
+
if (here_val === 16) {
|
|
3513
|
+
n = here_bits + 2;
|
|
3514
|
+
while (bits < n) {
|
|
3515
|
+
if (have === 0) {
|
|
3516
|
+
break inf_leave;
|
|
3517
|
+
}
|
|
3518
|
+
have--;
|
|
3519
|
+
hold += input[next++] << bits;
|
|
3520
|
+
bits += 8;
|
|
3521
|
+
}
|
|
3522
|
+
hold >>>= here_bits;
|
|
3523
|
+
bits -= here_bits;
|
|
3524
|
+
if (state.have === 0) {
|
|
3525
|
+
strm.msg = "invalid bit length repeat";
|
|
3526
|
+
state.mode = BAD;
|
|
3527
|
+
break;
|
|
3528
|
+
}
|
|
3529
|
+
len = state.lens[state.have - 1];
|
|
3530
|
+
copy = 3 + (hold & 3);
|
|
3531
|
+
hold >>>= 2;
|
|
3532
|
+
bits -= 2;
|
|
3533
|
+
} else if (here_val === 17) {
|
|
3534
|
+
n = here_bits + 3;
|
|
3535
|
+
while (bits < n) {
|
|
3536
|
+
if (have === 0) {
|
|
3537
|
+
break inf_leave;
|
|
3538
|
+
}
|
|
3539
|
+
have--;
|
|
3540
|
+
hold += input[next++] << bits;
|
|
3541
|
+
bits += 8;
|
|
3542
|
+
}
|
|
3543
|
+
hold >>>= here_bits;
|
|
3544
|
+
bits -= here_bits;
|
|
3545
|
+
len = 0;
|
|
3546
|
+
copy = 3 + (hold & 7);
|
|
3547
|
+
hold >>>= 3;
|
|
3548
|
+
bits -= 3;
|
|
3549
|
+
} else {
|
|
3550
|
+
n = here_bits + 7;
|
|
3551
|
+
while (bits < n) {
|
|
3552
|
+
if (have === 0) {
|
|
3553
|
+
break inf_leave;
|
|
3554
|
+
}
|
|
3555
|
+
have--;
|
|
3556
|
+
hold += input[next++] << bits;
|
|
3557
|
+
bits += 8;
|
|
3558
|
+
}
|
|
3559
|
+
hold >>>= here_bits;
|
|
3560
|
+
bits -= here_bits;
|
|
3561
|
+
len = 0;
|
|
3562
|
+
copy = 11 + (hold & 127);
|
|
3563
|
+
hold >>>= 7;
|
|
3564
|
+
bits -= 7;
|
|
3565
|
+
}
|
|
3566
|
+
if (state.have + copy > state.nlen + state.ndist) {
|
|
3567
|
+
strm.msg = "invalid bit length repeat";
|
|
3568
|
+
state.mode = BAD;
|
|
3569
|
+
break;
|
|
3570
|
+
}
|
|
3571
|
+
while (copy--) {
|
|
3572
|
+
state.lens[state.have++] = len;
|
|
3573
|
+
}
|
|
3574
|
+
}
|
|
3575
|
+
}
|
|
3576
|
+
if (state.mode === BAD) {
|
|
3577
|
+
break;
|
|
3578
|
+
}
|
|
3579
|
+
if (state.lens[256] === 0) {
|
|
3580
|
+
strm.msg = "invalid code -- missing end-of-block";
|
|
3581
|
+
state.mode = BAD;
|
|
3582
|
+
break;
|
|
3583
|
+
}
|
|
3584
|
+
state.lenbits = 9;
|
|
3585
|
+
opts = { bits: state.lenbits };
|
|
3586
|
+
ret = inflate_table(LENS, state.lens, 0, state.nlen, state.lencode, 0, state.work, opts);
|
|
3587
|
+
state.lenbits = opts.bits;
|
|
3588
|
+
if (ret) {
|
|
3589
|
+
strm.msg = "invalid literal/lengths set";
|
|
3590
|
+
state.mode = BAD;
|
|
3591
|
+
break;
|
|
3592
|
+
}
|
|
3593
|
+
state.distbits = 6;
|
|
3594
|
+
state.distcode = state.distdyn;
|
|
3595
|
+
opts = { bits: state.distbits };
|
|
3596
|
+
ret = inflate_table(DISTS, state.lens, state.nlen, state.ndist, state.distcode, 0, state.work, opts);
|
|
3597
|
+
state.distbits = opts.bits;
|
|
3598
|
+
if (ret) {
|
|
3599
|
+
strm.msg = "invalid distances set";
|
|
3600
|
+
state.mode = BAD;
|
|
3601
|
+
break;
|
|
3602
|
+
}
|
|
3603
|
+
state.mode = LEN_;
|
|
3604
|
+
if (flush === Z_TREES) {
|
|
3605
|
+
break inf_leave;
|
|
3606
|
+
}
|
|
3607
|
+
/* falls through */
|
|
3608
|
+
case LEN_:
|
|
3609
|
+
state.mode = LEN;
|
|
3610
|
+
/* falls through */
|
|
3611
|
+
case LEN:
|
|
3612
|
+
if (have >= 6 && left >= 258) {
|
|
3613
|
+
strm.next_out = put;
|
|
3614
|
+
strm.avail_out = left;
|
|
3615
|
+
strm.next_in = next;
|
|
3616
|
+
strm.avail_in = have;
|
|
3617
|
+
state.hold = hold;
|
|
3618
|
+
state.bits = bits;
|
|
3619
|
+
inflate_fast(strm, _out);
|
|
3620
|
+
put = strm.next_out;
|
|
3621
|
+
output = strm.output;
|
|
3622
|
+
left = strm.avail_out;
|
|
3623
|
+
next = strm.next_in;
|
|
3624
|
+
input = strm.input;
|
|
3625
|
+
have = strm.avail_in;
|
|
3626
|
+
hold = state.hold;
|
|
3627
|
+
bits = state.bits;
|
|
3628
|
+
if (state.mode === TYPE) {
|
|
3629
|
+
state.back = -1;
|
|
3630
|
+
}
|
|
3631
|
+
break;
|
|
3632
|
+
}
|
|
3633
|
+
state.back = 0;
|
|
3634
|
+
for (; ; ) {
|
|
3635
|
+
here = state.lencode[hold & (1 << state.lenbits) - 1];
|
|
3636
|
+
here_bits = here >>> 24;
|
|
3637
|
+
here_op = here >>> 16 & 255;
|
|
3638
|
+
here_val = here & 65535;
|
|
3639
|
+
if (here_bits <= bits) {
|
|
3640
|
+
break;
|
|
3641
|
+
}
|
|
3642
|
+
if (have === 0) {
|
|
3643
|
+
break inf_leave;
|
|
3644
|
+
}
|
|
3645
|
+
have--;
|
|
3646
|
+
hold += input[next++] << bits;
|
|
3647
|
+
bits += 8;
|
|
3648
|
+
}
|
|
3649
|
+
if (here_op && (here_op & 240) === 0) {
|
|
3650
|
+
last_bits = here_bits;
|
|
3651
|
+
last_op = here_op;
|
|
3652
|
+
last_val = here_val;
|
|
3653
|
+
for (; ; ) {
|
|
3654
|
+
here = state.lencode[last_val + ((hold & (1 << last_bits + last_op) - 1) >> last_bits)];
|
|
3655
|
+
here_bits = here >>> 24;
|
|
3656
|
+
here_op = here >>> 16 & 255;
|
|
3657
|
+
here_val = here & 65535;
|
|
3658
|
+
if (last_bits + here_bits <= bits) {
|
|
3659
|
+
break;
|
|
3660
|
+
}
|
|
3661
|
+
if (have === 0) {
|
|
3662
|
+
break inf_leave;
|
|
3663
|
+
}
|
|
3664
|
+
have--;
|
|
3665
|
+
hold += input[next++] << bits;
|
|
3666
|
+
bits += 8;
|
|
3667
|
+
}
|
|
3668
|
+
hold >>>= last_bits;
|
|
3669
|
+
bits -= last_bits;
|
|
3670
|
+
state.back += last_bits;
|
|
3671
|
+
}
|
|
3672
|
+
hold >>>= here_bits;
|
|
3673
|
+
bits -= here_bits;
|
|
3674
|
+
state.back += here_bits;
|
|
3675
|
+
state.length = here_val;
|
|
3676
|
+
if (here_op === 0) {
|
|
3677
|
+
state.mode = LIT;
|
|
3678
|
+
break;
|
|
3679
|
+
}
|
|
3680
|
+
if (here_op & 32) {
|
|
3681
|
+
state.back = -1;
|
|
3682
|
+
state.mode = TYPE;
|
|
3683
|
+
break;
|
|
3684
|
+
}
|
|
3685
|
+
if (here_op & 64) {
|
|
3686
|
+
strm.msg = "invalid literal/length code";
|
|
3687
|
+
state.mode = BAD;
|
|
3688
|
+
break;
|
|
3689
|
+
}
|
|
3690
|
+
state.extra = here_op & 15;
|
|
3691
|
+
state.mode = LENEXT;
|
|
3692
|
+
/* falls through */
|
|
3693
|
+
case LENEXT:
|
|
3694
|
+
if (state.extra) {
|
|
3695
|
+
n = state.extra;
|
|
3696
|
+
while (bits < n) {
|
|
3697
|
+
if (have === 0) {
|
|
3698
|
+
break inf_leave;
|
|
3699
|
+
}
|
|
3700
|
+
have--;
|
|
3701
|
+
hold += input[next++] << bits;
|
|
3702
|
+
bits += 8;
|
|
3703
|
+
}
|
|
3704
|
+
state.length += hold & (1 << state.extra) - 1;
|
|
3705
|
+
hold >>>= state.extra;
|
|
3706
|
+
bits -= state.extra;
|
|
3707
|
+
state.back += state.extra;
|
|
3708
|
+
}
|
|
3709
|
+
state.was = state.length;
|
|
3710
|
+
state.mode = DIST;
|
|
3711
|
+
/* falls through */
|
|
3712
|
+
case DIST:
|
|
3713
|
+
for (; ; ) {
|
|
3714
|
+
here = state.distcode[hold & (1 << state.distbits) - 1];
|
|
3715
|
+
here_bits = here >>> 24;
|
|
3716
|
+
here_op = here >>> 16 & 255;
|
|
3717
|
+
here_val = here & 65535;
|
|
3718
|
+
if (here_bits <= bits) {
|
|
3719
|
+
break;
|
|
3720
|
+
}
|
|
3721
|
+
if (have === 0) {
|
|
3722
|
+
break inf_leave;
|
|
3723
|
+
}
|
|
3724
|
+
have--;
|
|
3725
|
+
hold += input[next++] << bits;
|
|
3726
|
+
bits += 8;
|
|
3727
|
+
}
|
|
3728
|
+
if ((here_op & 240) === 0) {
|
|
3729
|
+
last_bits = here_bits;
|
|
3730
|
+
last_op = here_op;
|
|
3731
|
+
last_val = here_val;
|
|
3732
|
+
for (; ; ) {
|
|
3733
|
+
here = state.distcode[last_val + ((hold & (1 << last_bits + last_op) - 1) >> last_bits)];
|
|
3734
|
+
here_bits = here >>> 24;
|
|
3735
|
+
here_op = here >>> 16 & 255;
|
|
3736
|
+
here_val = here & 65535;
|
|
3737
|
+
if (last_bits + here_bits <= bits) {
|
|
3738
|
+
break;
|
|
3739
|
+
}
|
|
3740
|
+
if (have === 0) {
|
|
3741
|
+
break inf_leave;
|
|
3742
|
+
}
|
|
3743
|
+
have--;
|
|
3744
|
+
hold += input[next++] << bits;
|
|
3745
|
+
bits += 8;
|
|
3746
|
+
}
|
|
3747
|
+
hold >>>= last_bits;
|
|
3748
|
+
bits -= last_bits;
|
|
3749
|
+
state.back += last_bits;
|
|
3750
|
+
}
|
|
3751
|
+
hold >>>= here_bits;
|
|
3752
|
+
bits -= here_bits;
|
|
3753
|
+
state.back += here_bits;
|
|
3754
|
+
if (here_op & 64) {
|
|
3755
|
+
strm.msg = "invalid distance code";
|
|
3756
|
+
state.mode = BAD;
|
|
3757
|
+
break;
|
|
3758
|
+
}
|
|
3759
|
+
state.offset = here_val;
|
|
3760
|
+
state.extra = here_op & 15;
|
|
3761
|
+
state.mode = DISTEXT;
|
|
3762
|
+
/* falls through */
|
|
3763
|
+
case DISTEXT:
|
|
3764
|
+
if (state.extra) {
|
|
3765
|
+
n = state.extra;
|
|
3766
|
+
while (bits < n) {
|
|
3767
|
+
if (have === 0) {
|
|
3768
|
+
break inf_leave;
|
|
3769
|
+
}
|
|
3770
|
+
have--;
|
|
3771
|
+
hold += input[next++] << bits;
|
|
3772
|
+
bits += 8;
|
|
3773
|
+
}
|
|
3774
|
+
state.offset += hold & (1 << state.extra) - 1;
|
|
3775
|
+
hold >>>= state.extra;
|
|
3776
|
+
bits -= state.extra;
|
|
3777
|
+
state.back += state.extra;
|
|
3778
|
+
}
|
|
3779
|
+
if (state.offset > state.dmax) {
|
|
3780
|
+
strm.msg = "invalid distance too far back";
|
|
3781
|
+
state.mode = BAD;
|
|
3782
|
+
break;
|
|
3783
|
+
}
|
|
3784
|
+
state.mode = MATCH;
|
|
3785
|
+
/* falls through */
|
|
3786
|
+
case MATCH:
|
|
3787
|
+
if (left === 0) {
|
|
3788
|
+
break inf_leave;
|
|
3789
|
+
}
|
|
3790
|
+
copy = _out - left;
|
|
3791
|
+
if (state.offset > copy) {
|
|
3792
|
+
copy = state.offset - copy;
|
|
3793
|
+
if (copy > state.whave) {
|
|
3794
|
+
if (state.sane) {
|
|
3795
|
+
strm.msg = "invalid distance too far back";
|
|
3796
|
+
state.mode = BAD;
|
|
3797
|
+
break;
|
|
3798
|
+
}
|
|
3799
|
+
}
|
|
3800
|
+
if (copy > state.wnext) {
|
|
3801
|
+
copy -= state.wnext;
|
|
3802
|
+
from = state.wsize - copy;
|
|
3803
|
+
} else {
|
|
3804
|
+
from = state.wnext - copy;
|
|
3805
|
+
}
|
|
3806
|
+
if (copy > state.length) {
|
|
3807
|
+
copy = state.length;
|
|
3808
|
+
}
|
|
3809
|
+
from_source = state.window;
|
|
3810
|
+
} else {
|
|
3811
|
+
from_source = output;
|
|
3812
|
+
from = put - state.offset;
|
|
3813
|
+
copy = state.length;
|
|
3814
|
+
}
|
|
3815
|
+
if (copy > left) {
|
|
3816
|
+
copy = left;
|
|
3817
|
+
}
|
|
3818
|
+
left -= copy;
|
|
3819
|
+
state.length -= copy;
|
|
3820
|
+
do {
|
|
3821
|
+
output[put++] = from_source[from++];
|
|
3822
|
+
} while (--copy);
|
|
3823
|
+
if (state.length === 0) {
|
|
3824
|
+
state.mode = LEN;
|
|
3825
|
+
}
|
|
3826
|
+
break;
|
|
3827
|
+
case LIT:
|
|
3828
|
+
if (left === 0) {
|
|
3829
|
+
break inf_leave;
|
|
3830
|
+
}
|
|
3831
|
+
output[put++] = state.length;
|
|
3832
|
+
left--;
|
|
3833
|
+
state.mode = LEN;
|
|
3834
|
+
break;
|
|
3835
|
+
case CHECK:
|
|
3836
|
+
if (state.wrap) {
|
|
3837
|
+
while (bits < 32) {
|
|
3838
|
+
if (have === 0) {
|
|
3839
|
+
break inf_leave;
|
|
3840
|
+
}
|
|
3841
|
+
have--;
|
|
3842
|
+
hold |= input[next++] << bits;
|
|
3843
|
+
bits += 8;
|
|
3844
|
+
}
|
|
3845
|
+
_out -= left;
|
|
3846
|
+
strm.total_out += _out;
|
|
3847
|
+
state.total += _out;
|
|
3848
|
+
if (_out) {
|
|
3849
|
+
strm.adler = state.check = /*UPDATE(state.check, put - _out, _out);*/
|
|
3850
|
+
state.flags ? crc32(state.check, output, _out, put - _out) : adler32(state.check, output, _out, put - _out);
|
|
3851
|
+
}
|
|
3852
|
+
_out = left;
|
|
3853
|
+
if ((state.flags ? hold : zswap32(hold)) !== state.check) {
|
|
3854
|
+
strm.msg = "incorrect data check";
|
|
3855
|
+
state.mode = BAD;
|
|
3856
|
+
break;
|
|
3857
|
+
}
|
|
3858
|
+
hold = 0;
|
|
3859
|
+
bits = 0;
|
|
3860
|
+
}
|
|
3861
|
+
state.mode = LENGTH;
|
|
3862
|
+
/* falls through */
|
|
3863
|
+
case LENGTH:
|
|
3864
|
+
if (state.wrap && state.flags) {
|
|
3865
|
+
while (bits < 32) {
|
|
3866
|
+
if (have === 0) {
|
|
3867
|
+
break inf_leave;
|
|
3868
|
+
}
|
|
3869
|
+
have--;
|
|
3870
|
+
hold += input[next++] << bits;
|
|
3871
|
+
bits += 8;
|
|
3872
|
+
}
|
|
3873
|
+
if (hold !== (state.total & 4294967295)) {
|
|
3874
|
+
strm.msg = "incorrect length check";
|
|
3875
|
+
state.mode = BAD;
|
|
3876
|
+
break;
|
|
3877
|
+
}
|
|
3878
|
+
hold = 0;
|
|
3879
|
+
bits = 0;
|
|
3880
|
+
}
|
|
3881
|
+
state.mode = DONE;
|
|
3882
|
+
/* falls through */
|
|
3883
|
+
case DONE:
|
|
3884
|
+
ret = Z_STREAM_END;
|
|
3885
|
+
break inf_leave;
|
|
3886
|
+
case BAD:
|
|
3887
|
+
ret = Z_DATA_ERROR;
|
|
3888
|
+
break inf_leave;
|
|
3889
|
+
case MEM:
|
|
3890
|
+
return Z_MEM_ERROR;
|
|
3891
|
+
case SYNC:
|
|
3892
|
+
/* falls through */
|
|
3893
|
+
default:
|
|
3894
|
+
return Z_STREAM_ERROR;
|
|
3895
|
+
}
|
|
3896
|
+
}
|
|
3897
|
+
strm.next_out = put;
|
|
3898
|
+
strm.avail_out = left;
|
|
3899
|
+
strm.next_in = next;
|
|
3900
|
+
strm.avail_in = have;
|
|
3901
|
+
state.hold = hold;
|
|
3902
|
+
state.bits = bits;
|
|
3903
|
+
if (state.wsize || _out !== strm.avail_out && state.mode < BAD && (state.mode < CHECK || flush !== Z_FINISH)) {
|
|
3904
|
+
if (updatewindow(strm, strm.output, strm.next_out, _out - strm.avail_out)) ;
|
|
3905
|
+
}
|
|
3906
|
+
_in -= strm.avail_in;
|
|
3907
|
+
_out -= strm.avail_out;
|
|
3908
|
+
strm.total_in += _in;
|
|
3909
|
+
strm.total_out += _out;
|
|
3910
|
+
state.total += _out;
|
|
3911
|
+
if (state.wrap && _out) {
|
|
3912
|
+
strm.adler = state.check = /*UPDATE(state.check, strm.next_out - _out, _out);*/
|
|
3913
|
+
state.flags ? crc32(state.check, output, _out, strm.next_out - _out) : adler32(state.check, output, _out, strm.next_out - _out);
|
|
3914
|
+
}
|
|
3915
|
+
strm.data_type = state.bits + (state.last ? 64 : 0) + (state.mode === TYPE ? 128 : 0) + (state.mode === LEN_ || state.mode === COPY_ ? 256 : 0);
|
|
3916
|
+
if ((_in === 0 && _out === 0 || flush === Z_FINISH) && ret === Z_OK) {
|
|
3917
|
+
ret = Z_BUF_ERROR;
|
|
3918
|
+
}
|
|
3919
|
+
return ret;
|
|
3920
|
+
}
|
|
3921
|
+
function inflateEnd(strm) {
|
|
3922
|
+
if (!strm || !strm.state) {
|
|
3923
|
+
return Z_STREAM_ERROR;
|
|
3924
|
+
}
|
|
3925
|
+
var state = strm.state;
|
|
3926
|
+
if (state.window) {
|
|
3927
|
+
state.window = null;
|
|
3928
|
+
}
|
|
3929
|
+
strm.state = null;
|
|
3930
|
+
return Z_OK;
|
|
3931
|
+
}
|
|
3932
|
+
function inflateGetHeader(strm, head) {
|
|
3933
|
+
var state;
|
|
3934
|
+
if (!strm || !strm.state) {
|
|
3935
|
+
return Z_STREAM_ERROR;
|
|
3936
|
+
}
|
|
3937
|
+
state = strm.state;
|
|
3938
|
+
if ((state.wrap & 2) === 0) {
|
|
3939
|
+
return Z_STREAM_ERROR;
|
|
3940
|
+
}
|
|
3941
|
+
state.head = head;
|
|
3942
|
+
head.done = false;
|
|
3943
|
+
return Z_OK;
|
|
3944
|
+
}
|
|
3945
|
+
function inflateSetDictionary(strm, dictionary) {
|
|
3946
|
+
var dictLength = dictionary.length;
|
|
3947
|
+
var state;
|
|
3948
|
+
var dictid;
|
|
3949
|
+
var ret;
|
|
3950
|
+
if (!strm || !strm.state) {
|
|
3951
|
+
return Z_STREAM_ERROR;
|
|
3952
|
+
}
|
|
3953
|
+
state = strm.state;
|
|
3954
|
+
if (state.wrap !== 0 && state.mode !== DICT) {
|
|
3955
|
+
return Z_STREAM_ERROR;
|
|
3956
|
+
}
|
|
3957
|
+
if (state.mode === DICT) {
|
|
3958
|
+
dictid = 1;
|
|
3959
|
+
dictid = adler32(dictid, dictionary, dictLength, 0);
|
|
3960
|
+
if (dictid !== state.check) {
|
|
3961
|
+
return Z_DATA_ERROR;
|
|
3962
|
+
}
|
|
3963
|
+
}
|
|
3964
|
+
ret = updatewindow(strm, dictionary, dictLength, dictLength);
|
|
3965
|
+
if (ret) {
|
|
3966
|
+
state.mode = MEM;
|
|
3967
|
+
return Z_MEM_ERROR;
|
|
3968
|
+
}
|
|
3969
|
+
state.havedict = 1;
|
|
3970
|
+
return Z_OK;
|
|
3971
|
+
}
|
|
3972
|
+
exports.inflateReset = inflateReset;
|
|
3973
|
+
exports.inflateReset2 = inflateReset2;
|
|
3974
|
+
exports.inflateResetKeep = inflateResetKeep;
|
|
3975
|
+
exports.inflateInit = inflateInit;
|
|
3976
|
+
exports.inflateInit2 = inflateInit2;
|
|
3977
|
+
exports.inflate = inflate;
|
|
3978
|
+
exports.inflateEnd = inflateEnd;
|
|
3979
|
+
exports.inflateGetHeader = inflateGetHeader;
|
|
3980
|
+
exports.inflateSetDictionary = inflateSetDictionary;
|
|
3981
|
+
exports.inflateInfo = "pako inflate (from Nodeca project)";
|
|
3982
|
+
}
|
|
3983
|
+
});
|
|
3984
|
+
|
|
3985
|
+
// ../../node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/constants.js
|
|
3986
|
+
var require_constants = __commonJS({
|
|
3987
|
+
"../../node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/constants.js"(exports, module) {
|
|
3988
|
+
module.exports = {
|
|
3989
|
+
/* Allowed flush values; see deflate() and inflate() below for details */
|
|
3990
|
+
Z_NO_FLUSH: 0,
|
|
3991
|
+
Z_PARTIAL_FLUSH: 1,
|
|
3992
|
+
Z_SYNC_FLUSH: 2,
|
|
3993
|
+
Z_FULL_FLUSH: 3,
|
|
3994
|
+
Z_FINISH: 4,
|
|
3995
|
+
Z_BLOCK: 5,
|
|
3996
|
+
Z_TREES: 6,
|
|
3997
|
+
/* Return codes for the compression/decompression functions. Negative values
|
|
3998
|
+
* are errors, positive values are used for special but normal events.
|
|
3999
|
+
*/
|
|
4000
|
+
Z_OK: 0,
|
|
4001
|
+
Z_STREAM_END: 1,
|
|
4002
|
+
Z_NEED_DICT: 2,
|
|
4003
|
+
Z_ERRNO: -1,
|
|
4004
|
+
Z_STREAM_ERROR: -2,
|
|
4005
|
+
Z_DATA_ERROR: -3,
|
|
4006
|
+
//Z_MEM_ERROR: -4,
|
|
4007
|
+
Z_BUF_ERROR: -5,
|
|
4008
|
+
//Z_VERSION_ERROR: -6,
|
|
4009
|
+
/* compression levels */
|
|
4010
|
+
Z_NO_COMPRESSION: 0,
|
|
4011
|
+
Z_BEST_SPEED: 1,
|
|
4012
|
+
Z_BEST_COMPRESSION: 9,
|
|
4013
|
+
Z_DEFAULT_COMPRESSION: -1,
|
|
4014
|
+
Z_FILTERED: 1,
|
|
4015
|
+
Z_HUFFMAN_ONLY: 2,
|
|
4016
|
+
Z_RLE: 3,
|
|
4017
|
+
Z_FIXED: 4,
|
|
4018
|
+
Z_DEFAULT_STRATEGY: 0,
|
|
4019
|
+
/* Possible values of the data_type field (though see inflate()) */
|
|
4020
|
+
Z_BINARY: 0,
|
|
4021
|
+
Z_TEXT: 1,
|
|
4022
|
+
//Z_ASCII: 1, // = Z_TEXT (deprecated)
|
|
4023
|
+
Z_UNKNOWN: 2,
|
|
4024
|
+
/* The deflate compression method */
|
|
4025
|
+
Z_DEFLATED: 8
|
|
4026
|
+
//Z_NULL: null // Use -1 or null inline, depending on var type
|
|
4027
|
+
};
|
|
4028
|
+
}
|
|
4029
|
+
});
|
|
4030
|
+
|
|
4031
|
+
// ../../node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/gzheader.js
|
|
4032
|
+
var require_gzheader = __commonJS({
|
|
4033
|
+
"../../node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/zlib/gzheader.js"(exports, module) {
|
|
4034
|
+
function GZheader() {
|
|
4035
|
+
this.text = 0;
|
|
4036
|
+
this.time = 0;
|
|
4037
|
+
this.xflags = 0;
|
|
4038
|
+
this.os = 0;
|
|
4039
|
+
this.extra = null;
|
|
4040
|
+
this.extra_len = 0;
|
|
4041
|
+
this.name = "";
|
|
4042
|
+
this.comment = "";
|
|
4043
|
+
this.hcrc = 0;
|
|
4044
|
+
this.done = false;
|
|
4045
|
+
}
|
|
4046
|
+
module.exports = GZheader;
|
|
4047
|
+
}
|
|
4048
|
+
});
|
|
4049
|
+
|
|
4050
|
+
// ../../node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/inflate.js
|
|
4051
|
+
var require_inflate2 = __commonJS({
|
|
4052
|
+
"../../node_modules/.pnpm/pako@1.0.11/node_modules/pako/lib/inflate.js"(exports) {
|
|
4053
|
+
var zlib_inflate = require_inflate();
|
|
4054
|
+
var utils = require_common();
|
|
4055
|
+
var strings = require_strings();
|
|
4056
|
+
var c = require_constants();
|
|
4057
|
+
var msg = require_messages();
|
|
4058
|
+
var ZStream = require_zstream();
|
|
4059
|
+
var GZheader = require_gzheader();
|
|
4060
|
+
var toString = Object.prototype.toString;
|
|
4061
|
+
function Inflate(options) {
|
|
4062
|
+
if (!(this instanceof Inflate)) return new Inflate(options);
|
|
4063
|
+
this.options = utils.assign({
|
|
4064
|
+
chunkSize: 16384,
|
|
4065
|
+
windowBits: 0,
|
|
4066
|
+
to: ""
|
|
4067
|
+
}, options || {});
|
|
4068
|
+
var opt = this.options;
|
|
4069
|
+
if (opt.raw && opt.windowBits >= 0 && opt.windowBits < 16) {
|
|
4070
|
+
opt.windowBits = -opt.windowBits;
|
|
4071
|
+
if (opt.windowBits === 0) {
|
|
4072
|
+
opt.windowBits = -15;
|
|
4073
|
+
}
|
|
4074
|
+
}
|
|
4075
|
+
if (opt.windowBits >= 0 && opt.windowBits < 16 && !(options && options.windowBits)) {
|
|
4076
|
+
opt.windowBits += 32;
|
|
4077
|
+
}
|
|
4078
|
+
if (opt.windowBits > 15 && opt.windowBits < 48) {
|
|
4079
|
+
if ((opt.windowBits & 15) === 0) {
|
|
4080
|
+
opt.windowBits |= 15;
|
|
4081
|
+
}
|
|
4082
|
+
}
|
|
4083
|
+
this.err = 0;
|
|
4084
|
+
this.msg = "";
|
|
4085
|
+
this.ended = false;
|
|
4086
|
+
this.chunks = [];
|
|
4087
|
+
this.strm = new ZStream();
|
|
4088
|
+
this.strm.avail_out = 0;
|
|
4089
|
+
var status = zlib_inflate.inflateInit2(
|
|
4090
|
+
this.strm,
|
|
4091
|
+
opt.windowBits
|
|
4092
|
+
);
|
|
4093
|
+
if (status !== c.Z_OK) {
|
|
4094
|
+
throw new Error(msg[status]);
|
|
4095
|
+
}
|
|
4096
|
+
this.header = new GZheader();
|
|
4097
|
+
zlib_inflate.inflateGetHeader(this.strm, this.header);
|
|
4098
|
+
if (opt.dictionary) {
|
|
4099
|
+
if (typeof opt.dictionary === "string") {
|
|
4100
|
+
opt.dictionary = strings.string2buf(opt.dictionary);
|
|
4101
|
+
} else if (toString.call(opt.dictionary) === "[object ArrayBuffer]") {
|
|
4102
|
+
opt.dictionary = new Uint8Array(opt.dictionary);
|
|
4103
|
+
}
|
|
4104
|
+
if (opt.raw) {
|
|
4105
|
+
status = zlib_inflate.inflateSetDictionary(this.strm, opt.dictionary);
|
|
4106
|
+
if (status !== c.Z_OK) {
|
|
4107
|
+
throw new Error(msg[status]);
|
|
4108
|
+
}
|
|
4109
|
+
}
|
|
4110
|
+
}
|
|
4111
|
+
}
|
|
4112
|
+
Inflate.prototype.push = function(data, mode) {
|
|
4113
|
+
var strm = this.strm;
|
|
4114
|
+
var chunkSize = this.options.chunkSize;
|
|
4115
|
+
var dictionary = this.options.dictionary;
|
|
4116
|
+
var status, _mode;
|
|
4117
|
+
var next_out_utf8, tail, utf8str;
|
|
4118
|
+
var allowBufError = false;
|
|
4119
|
+
if (this.ended) {
|
|
4120
|
+
return false;
|
|
4121
|
+
}
|
|
4122
|
+
_mode = mode === ~~mode ? mode : mode === true ? c.Z_FINISH : c.Z_NO_FLUSH;
|
|
4123
|
+
if (typeof data === "string") {
|
|
4124
|
+
strm.input = strings.binstring2buf(data);
|
|
4125
|
+
} else if (toString.call(data) === "[object ArrayBuffer]") {
|
|
4126
|
+
strm.input = new Uint8Array(data);
|
|
4127
|
+
} else {
|
|
4128
|
+
strm.input = data;
|
|
4129
|
+
}
|
|
4130
|
+
strm.next_in = 0;
|
|
4131
|
+
strm.avail_in = strm.input.length;
|
|
4132
|
+
do {
|
|
4133
|
+
if (strm.avail_out === 0) {
|
|
4134
|
+
strm.output = new utils.Buf8(chunkSize);
|
|
4135
|
+
strm.next_out = 0;
|
|
4136
|
+
strm.avail_out = chunkSize;
|
|
4137
|
+
}
|
|
4138
|
+
status = zlib_inflate.inflate(strm, c.Z_NO_FLUSH);
|
|
4139
|
+
if (status === c.Z_NEED_DICT && dictionary) {
|
|
4140
|
+
status = zlib_inflate.inflateSetDictionary(this.strm, dictionary);
|
|
4141
|
+
}
|
|
4142
|
+
if (status === c.Z_BUF_ERROR && allowBufError === true) {
|
|
4143
|
+
status = c.Z_OK;
|
|
4144
|
+
allowBufError = false;
|
|
4145
|
+
}
|
|
4146
|
+
if (status !== c.Z_STREAM_END && status !== c.Z_OK) {
|
|
4147
|
+
this.onEnd(status);
|
|
4148
|
+
this.ended = true;
|
|
4149
|
+
return false;
|
|
4150
|
+
}
|
|
4151
|
+
if (strm.next_out) {
|
|
4152
|
+
if (strm.avail_out === 0 || status === c.Z_STREAM_END || strm.avail_in === 0 && (_mode === c.Z_FINISH || _mode === c.Z_SYNC_FLUSH)) {
|
|
4153
|
+
if (this.options.to === "string") {
|
|
4154
|
+
next_out_utf8 = strings.utf8border(strm.output, strm.next_out);
|
|
4155
|
+
tail = strm.next_out - next_out_utf8;
|
|
4156
|
+
utf8str = strings.buf2string(strm.output, next_out_utf8);
|
|
4157
|
+
strm.next_out = tail;
|
|
4158
|
+
strm.avail_out = chunkSize - tail;
|
|
4159
|
+
if (tail) {
|
|
4160
|
+
utils.arraySet(strm.output, strm.output, next_out_utf8, tail, 0);
|
|
4161
|
+
}
|
|
4162
|
+
this.onData(utf8str);
|
|
4163
|
+
} else {
|
|
4164
|
+
this.onData(utils.shrinkBuf(strm.output, strm.next_out));
|
|
4165
|
+
}
|
|
4166
|
+
}
|
|
4167
|
+
}
|
|
4168
|
+
if (strm.avail_in === 0 && strm.avail_out === 0) {
|
|
4169
|
+
allowBufError = true;
|
|
4170
|
+
}
|
|
4171
|
+
} while ((strm.avail_in > 0 || strm.avail_out === 0) && status !== c.Z_STREAM_END);
|
|
4172
|
+
if (status === c.Z_STREAM_END) {
|
|
4173
|
+
_mode = c.Z_FINISH;
|
|
4174
|
+
}
|
|
4175
|
+
if (_mode === c.Z_FINISH) {
|
|
4176
|
+
status = zlib_inflate.inflateEnd(this.strm);
|
|
4177
|
+
this.onEnd(status);
|
|
4178
|
+
this.ended = true;
|
|
4179
|
+
return status === c.Z_OK;
|
|
4180
|
+
}
|
|
4181
|
+
if (_mode === c.Z_SYNC_FLUSH) {
|
|
4182
|
+
this.onEnd(c.Z_OK);
|
|
4183
|
+
strm.avail_out = 0;
|
|
4184
|
+
return true;
|
|
4185
|
+
}
|
|
4186
|
+
return true;
|
|
4187
|
+
};
|
|
4188
|
+
Inflate.prototype.onData = function(chunk) {
|
|
4189
|
+
this.chunks.push(chunk);
|
|
4190
|
+
};
|
|
4191
|
+
Inflate.prototype.onEnd = function(status) {
|
|
4192
|
+
if (status === c.Z_OK) {
|
|
4193
|
+
if (this.options.to === "string") {
|
|
4194
|
+
this.result = this.chunks.join("");
|
|
4195
|
+
} else {
|
|
4196
|
+
this.result = utils.flattenChunks(this.chunks);
|
|
4197
|
+
}
|
|
4198
|
+
}
|
|
4199
|
+
this.chunks = [];
|
|
4200
|
+
this.err = status;
|
|
4201
|
+
this.msg = this.strm.msg;
|
|
4202
|
+
};
|
|
4203
|
+
function inflate(input, options) {
|
|
4204
|
+
var inflator = new Inflate(options);
|
|
4205
|
+
inflator.push(input, true);
|
|
4206
|
+
if (inflator.err) {
|
|
4207
|
+
throw inflator.msg || msg[inflator.err];
|
|
4208
|
+
}
|
|
4209
|
+
return inflator.result;
|
|
4210
|
+
}
|
|
4211
|
+
function inflateRaw(input, options) {
|
|
4212
|
+
options = options || {};
|
|
4213
|
+
options.raw = true;
|
|
4214
|
+
return inflate(input, options);
|
|
4215
|
+
}
|
|
4216
|
+
exports.Inflate = Inflate;
|
|
4217
|
+
exports.inflate = inflate;
|
|
4218
|
+
exports.inflateRaw = inflateRaw;
|
|
4219
|
+
exports.ungzip = inflate;
|
|
4220
|
+
}
|
|
4221
|
+
});
|
|
4222
|
+
|
|
4223
|
+
// ../../node_modules/.pnpm/pako@1.0.11/node_modules/pako/index.js
|
|
4224
|
+
var require_pako = __commonJS({
|
|
4225
|
+
"../../node_modules/.pnpm/pako@1.0.11/node_modules/pako/index.js"(exports, module) {
|
|
4226
|
+
var assign = require_common().assign;
|
|
4227
|
+
var deflate = require_deflate2();
|
|
4228
|
+
var inflate = require_inflate2();
|
|
4229
|
+
var constants = require_constants();
|
|
4230
|
+
var pako2 = {};
|
|
4231
|
+
assign(pako2, deflate, inflate, constants);
|
|
4232
|
+
module.exports = pako2;
|
|
4233
|
+
}
|
|
4234
|
+
});
|
|
4235
|
+
|
|
7
4236
|
// src/errors.ts
|
|
8
4237
|
var VERSION_HINT = "use the source revision/tool that produced this tape, or capture again on the current revision";
|
|
9
4238
|
function createRhiDebugError(code, detail) {
|
|
@@ -489,30 +4718,254 @@ function computeTextureLayout(format, width, height, layerCount, mipLevelCount)
|
|
|
489
4718
|
}
|
|
490
4719
|
|
|
491
4720
|
// src/frame-model.ts
|
|
4721
|
+
function jsonValue(value) {
|
|
4722
|
+
if (value === null || typeof value === "string" || typeof value === "number" || typeof value === "boolean")
|
|
4723
|
+
return value;
|
|
4724
|
+
if (value === void 0) return null;
|
|
4725
|
+
if (Array.isArray(value)) return value.map(jsonValue);
|
|
4726
|
+
if (ArrayBuffer.isView(value))
|
|
4727
|
+
return Array.from(value, jsonValue);
|
|
4728
|
+
if (typeof value === "object") {
|
|
4729
|
+
const output = {};
|
|
4730
|
+
for (const [key, child] of Object.entries(value)) {
|
|
4731
|
+
if (child !== void 0) output[key] = jsonValue(child);
|
|
4732
|
+
}
|
|
4733
|
+
return output;
|
|
4734
|
+
}
|
|
4735
|
+
return String(value);
|
|
4736
|
+
}
|
|
4737
|
+
function eventDescriptor(event) {
|
|
4738
|
+
return jsonValue(event);
|
|
4739
|
+
}
|
|
4740
|
+
function workPipeline(pipelineId, pipelineEvents, shaderEvents) {
|
|
4741
|
+
if (pipelineId === void 0)
|
|
4742
|
+
return { status: "unavailable", shaders: [], reason: "pipeline-not-bound" };
|
|
4743
|
+
const event = pipelineEvents.get(pipelineId);
|
|
4744
|
+
if (event === void 0)
|
|
4745
|
+
return { status: "unavailable", shaders: [], reason: "descriptor-unavailable" };
|
|
4746
|
+
const shaders = [];
|
|
4747
|
+
const shaderRefs = event.kind === "createRenderPipeline" ? [
|
|
4748
|
+
["vertex", event.vertexShaderModuleHandleId, event.desc.vertex?.entryPoint],
|
|
4749
|
+
["fragment", event.fragmentShaderModuleHandleId, event.desc.fragment?.entryPoint]
|
|
4750
|
+
] : event.kind === "createComputePipeline" ? [["compute", event.computeShaderModuleHandleId, event.desc.compute.entryPoint]] : [];
|
|
4751
|
+
for (const [stage, moduleId, entryPoint] of shaderRefs) {
|
|
4752
|
+
if (typeof moduleId !== "string") continue;
|
|
4753
|
+
const shader = shaderEvents.get(moduleId);
|
|
4754
|
+
shaders.push({
|
|
4755
|
+
stage,
|
|
4756
|
+
moduleHandleId: moduleId,
|
|
4757
|
+
entryPoint: typeof entryPoint === "string" ? entryPoint : null,
|
|
4758
|
+
source: shader?.kind === "createShaderModule" ? shader.wgslCode : null
|
|
4759
|
+
});
|
|
4760
|
+
}
|
|
4761
|
+
return {
|
|
4762
|
+
status: "available",
|
|
4763
|
+
pipelineHandleId: pipelineId,
|
|
4764
|
+
kind: event.kind === "createRenderPipeline" ? "render" : "compute",
|
|
4765
|
+
descriptor: eventDescriptor(event),
|
|
4766
|
+
shaders
|
|
4767
|
+
};
|
|
4768
|
+
}
|
|
492
4769
|
function buildFrameModel(tape) {
|
|
493
4770
|
const index = buildTapeIndex(tape);
|
|
494
|
-
const
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
4771
|
+
const events = tape.events;
|
|
4772
|
+
const passCommandIndices = index.passes.map(() => []);
|
|
4773
|
+
const commands = [];
|
|
4774
|
+
const groupPath = [];
|
|
4775
|
+
const currentPassByEvent = index.passIndexByEvent;
|
|
4776
|
+
const passAttachmentByIndex = /* @__PURE__ */ new Map();
|
|
4777
|
+
for (const pass of index.passes) {
|
|
4778
|
+
passAttachmentByIndex.set(pass.passIndex, {
|
|
4779
|
+
passIndex: pass.passIndex,
|
|
4780
|
+
kind: pass.kind,
|
|
4781
|
+
beginEventIndex: pass.beginEventIndex,
|
|
4782
|
+
endEventIndex: pass.endEventIndex ?? null,
|
|
4783
|
+
workIndices: pass.workIndices,
|
|
4784
|
+
commandIndices: [],
|
|
4785
|
+
colorAttachmentViewHandleIds: [],
|
|
4786
|
+
depthStencilViewHandleId: null
|
|
4787
|
+
});
|
|
4788
|
+
const begin = events[pass.beginEventIndex];
|
|
4789
|
+
if (begin?.kind === "beginRenderPass") {
|
|
4790
|
+
const attachment = passAttachmentByIndex.get(pass.passIndex);
|
|
4791
|
+
if (attachment !== void 0) {
|
|
4792
|
+
attachment.colorAttachmentViewHandleIds = begin.colorAttachmentViewHandleIds.filter(
|
|
4793
|
+
(id) => typeof id === "string"
|
|
4794
|
+
);
|
|
4795
|
+
attachment.depthStencilViewHandleId = begin.depthStencilViewHandleId ?? null;
|
|
4796
|
+
}
|
|
4797
|
+
}
|
|
4798
|
+
}
|
|
4799
|
+
for (const [eventIndex, event] of events.entries()) {
|
|
4800
|
+
const passIndex = currentPassByEvent[eventIndex] ?? -1;
|
|
4801
|
+
const isPush = event.kind === "pushDebugGroup" || event.kind === "passPushDebugGroup";
|
|
4802
|
+
const isPop = event.kind === "popDebugGroup" || event.kind === "passPopDebugGroup";
|
|
4803
|
+
const group = isPush ? [...groupPath, event.groupLabel] : [...groupPath];
|
|
4804
|
+
const marker = event.kind === "insertDebugMarker" || event.kind === "passInsertDebugMarker" ? event.markerLabel : void 0;
|
|
4805
|
+
const commandIndex = commands.length;
|
|
4806
|
+
commands.push({
|
|
4807
|
+
eventIndex,
|
|
4808
|
+
passIndex,
|
|
507
4809
|
kind: event.kind,
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
4810
|
+
category: EVENT_SEMANTICS[event.kind].category,
|
|
4811
|
+
isWork: isWorkEvent(event.kind),
|
|
4812
|
+
params: eventDescriptor(event),
|
|
4813
|
+
group,
|
|
4814
|
+
...marker === void 0 ? {} : { marker }
|
|
4815
|
+
});
|
|
4816
|
+
if (passIndex >= 0) passCommandIndices[passIndex]?.push(commandIndex);
|
|
4817
|
+
if (isPush) groupPath.push(event.groupLabel);
|
|
4818
|
+
if (isPop) groupPath.pop();
|
|
4819
|
+
}
|
|
4820
|
+
const pipelineEvents = /* @__PURE__ */ new Map();
|
|
4821
|
+
const shaderEvents = /* @__PURE__ */ new Map();
|
|
4822
|
+
const bindGroups = /* @__PURE__ */ new Map();
|
|
4823
|
+
const resourceRecords = /* @__PURE__ */ new Map();
|
|
4824
|
+
const workByEvent = /* @__PURE__ */ new Map();
|
|
4825
|
+
for (const work of index.works) workByEvent.set(work.eventIndex, work.workIndex);
|
|
4826
|
+
for (const bootstrap of tape.bootstrap) {
|
|
4827
|
+
const create = bootstrap.create;
|
|
4828
|
+
if (create.kind === "createRenderPipeline" || create.kind === "createComputePipeline")
|
|
4829
|
+
pipelineEvents.set(create.handleId, create);
|
|
4830
|
+
if (create.kind === "createShaderModule") shaderEvents.set(create.handleId, create);
|
|
4831
|
+
if (create.kind === "createBindGroup") bindGroups.set(create.handleId, create);
|
|
4832
|
+
resourceRecords.set(bootstrap.handleId, {
|
|
4833
|
+
resourceId: bootstrap.handleId,
|
|
4834
|
+
kind: bootstrap.kind,
|
|
4835
|
+
origin: "bootstrap",
|
|
4836
|
+
createEventIndex: null,
|
|
4837
|
+
destroyEventIndex: null,
|
|
4838
|
+
descriptor: jsonValue(bootstrap.create),
|
|
4839
|
+
consumers: [],
|
|
4840
|
+
lifecycle: { state: "unavailable", byteEstimate: null }
|
|
4841
|
+
});
|
|
4842
|
+
}
|
|
4843
|
+
for (const [eventIndex, event] of events.entries()) {
|
|
4844
|
+
if (event.kind === "createRenderPipeline" || event.kind === "createComputePipeline")
|
|
4845
|
+
pipelineEvents.set(event.handleId, event);
|
|
4846
|
+
if (event.kind === "createShaderModule") shaderEvents.set(event.handleId, event);
|
|
4847
|
+
if (event.kind === "createBindGroup") bindGroups.set(event.handleId, event);
|
|
4848
|
+
const kind = resourceKindForEvent(event.kind);
|
|
4849
|
+
const handleId = kind === void 0 ? void 0 : event.kind === "createTextureView" ? event.resultHandleId : event.kind === "createCommandEncoder" ? event.cmdHandleId : "handleId" in event ? event.handleId : void 0;
|
|
4850
|
+
if (kind !== void 0 && handleId !== void 0) {
|
|
4851
|
+
resourceRecords.set(handleId, {
|
|
4852
|
+
resourceId: handleId,
|
|
4853
|
+
kind,
|
|
4854
|
+
origin: "frame",
|
|
4855
|
+
createEventIndex: eventIndex,
|
|
4856
|
+
destroyEventIndex: null,
|
|
4857
|
+
descriptor: eventDescriptor(event),
|
|
4858
|
+
consumers: [],
|
|
4859
|
+
lifecycle: { state: "unavailable", byteEstimate: null }
|
|
4860
|
+
});
|
|
4861
|
+
}
|
|
4862
|
+
}
|
|
4863
|
+
const lifecycle = buildResourceLifecycle(events);
|
|
4864
|
+
for (const record of lifecycle.resources) {
|
|
4865
|
+
const resource = resourceRecords.get(record.handleId);
|
|
4866
|
+
if (resource === void 0) continue;
|
|
4867
|
+
resourceRecords.set(record.handleId, {
|
|
4868
|
+
...resource,
|
|
4869
|
+
destroyEventIndex: record.destroyedEventIndex ?? null,
|
|
4870
|
+
lifecycle: { state: record.state, byteEstimate: record.byteEstimate }
|
|
4871
|
+
});
|
|
4872
|
+
}
|
|
4873
|
+
for (const [eventIndex, event] of events.entries()) {
|
|
4874
|
+
const workIndex = workByEvent.get(eventIndex) ?? null;
|
|
4875
|
+
for (const resourceId of EVENT_SEMANTICS[event.kind].read(event)) {
|
|
4876
|
+
const resource = resourceRecords.get(resourceId);
|
|
4877
|
+
if (resource !== void 0)
|
|
4878
|
+
resource.consumers = [...resource.consumers, { eventIndex, workIndex, access: "read" }];
|
|
4879
|
+
}
|
|
4880
|
+
for (const resourceId of EVENT_SEMANTICS[event.kind].written(event)) {
|
|
4881
|
+
const resource = resourceRecords.get(resourceId);
|
|
4882
|
+
if (resource !== void 0)
|
|
4883
|
+
resource.consumers = [...resource.consumers, { eventIndex, workIndex, access: "write" }];
|
|
4884
|
+
}
|
|
4885
|
+
}
|
|
4886
|
+
const works = [];
|
|
4887
|
+
const currentPipeline = /* @__PURE__ */ new Map();
|
|
4888
|
+
const currentVertexBuffers = /* @__PURE__ */ new Map();
|
|
4889
|
+
const currentIndexBuffers = /* @__PURE__ */ new Map();
|
|
4890
|
+
const currentBindGroups = /* @__PURE__ */ new Map();
|
|
4891
|
+
const workByEventEntry = new Map(index.works.map((work) => [work.eventIndex, work]));
|
|
4892
|
+
for (const [eventIndex, event] of events.entries()) {
|
|
4893
|
+
if (event === void 0) continue;
|
|
4894
|
+
const passHandleId = "passHandleId" in event ? event.passHandleId : "";
|
|
4895
|
+
if (event.kind === "setPipeline" || event.kind === "setComputePipeline")
|
|
4896
|
+
currentPipeline.set(passHandleId, event.pipelineHandleId);
|
|
4897
|
+
if (event.kind === "setVertexBuffer") {
|
|
4898
|
+
const buffers = currentVertexBuffers.get(passHandleId) ?? /* @__PURE__ */ new Map();
|
|
4899
|
+
buffers.set(event.slot, {
|
|
4900
|
+
bufferHandleId: event.bufferHandleId,
|
|
4901
|
+
offset: event.offset ?? 0,
|
|
4902
|
+
size: event.size ?? null
|
|
4903
|
+
});
|
|
4904
|
+
currentVertexBuffers.set(passHandleId, buffers);
|
|
4905
|
+
}
|
|
4906
|
+
if (event.kind === "setIndexBuffer")
|
|
4907
|
+
currentIndexBuffers.set(passHandleId, {
|
|
4908
|
+
bufferHandleId: event.bufferHandleId,
|
|
4909
|
+
format: event.format,
|
|
4910
|
+
offset: event.offset ?? 0,
|
|
4911
|
+
size: event.size ?? null
|
|
4912
|
+
});
|
|
4913
|
+
if (event.kind === "setBindGroup") {
|
|
4914
|
+
const groups2 = currentBindGroups.get(passHandleId) ?? /* @__PURE__ */ new Map();
|
|
4915
|
+
groups2.set(event.index, event.bindGroupHandleId);
|
|
4916
|
+
currentBindGroups.set(passHandleId, groups2);
|
|
4917
|
+
}
|
|
4918
|
+
if (!isWorkEvent(event.kind)) continue;
|
|
4919
|
+
const work = workByEventEntry.get(eventIndex);
|
|
4920
|
+
if (work === void 0) continue;
|
|
4921
|
+
const pipelineId = currentPipeline.get(passHandleId);
|
|
4922
|
+
const groups = currentBindGroups.get(passHandleId) ?? /* @__PURE__ */ new Map();
|
|
4923
|
+
const bindings = [];
|
|
4924
|
+
for (const [groupIndex, bindGroupId] of groups) {
|
|
4925
|
+
const bindGroup = bindGroups.get(bindGroupId);
|
|
4926
|
+
for (const [entryIndex, resourceId] of bindGroup?.resourceHandleIds.entries() ?? []) {
|
|
4927
|
+
const entry = bindGroup?.entries[entryIndex];
|
|
4928
|
+
bindings.push({
|
|
4929
|
+
groupIndex,
|
|
4930
|
+
binding: entry?.binding ?? entryIndex,
|
|
4931
|
+
bindGroupId,
|
|
4932
|
+
resourceId: resourceId ?? null,
|
|
4933
|
+
resourceKind: entry?.resourceKind ?? null,
|
|
4934
|
+
bufferOffset: entry?.bufferOffset ?? null,
|
|
4935
|
+
bufferSize: entry?.bufferSize ?? null
|
|
4936
|
+
});
|
|
4937
|
+
}
|
|
4938
|
+
}
|
|
4939
|
+
const attachment = passAttachmentByIndex.get(work.passIndex);
|
|
4940
|
+
works.push({
|
|
4941
|
+
...work,
|
|
4942
|
+
commandIndex: commands.findIndex((command) => command.eventIndex === work.eventIndex),
|
|
4943
|
+
drawCall: eventDescriptor(event),
|
|
4944
|
+
pipeline: workPipeline(pipelineId, pipelineEvents, shaderEvents),
|
|
4945
|
+
bindings,
|
|
4946
|
+
vertexBuffers: [...currentVertexBuffers.get(passHandleId)?.entries() ?? []].map(
|
|
4947
|
+
([slot, buffer]) => ({ slot, ...buffer })
|
|
4948
|
+
),
|
|
4949
|
+
indexBuffer: currentIndexBuffers.get(passHandleId) ?? null,
|
|
4950
|
+
attachments: attachment === void 0 ? null : {
|
|
4951
|
+
colorViewHandleIds: attachment.colorAttachmentViewHandleIds,
|
|
4952
|
+
depthStencilViewHandleId: attachment.depthStencilViewHandleId
|
|
4953
|
+
}
|
|
4954
|
+
});
|
|
4955
|
+
}
|
|
4956
|
+
const passes = index.passes.map((pass) => ({
|
|
4957
|
+
...pass,
|
|
4958
|
+
endEventIndex: pass.endEventIndex ?? null,
|
|
4959
|
+
commandIndices: passCommandIndices[pass.passIndex] ?? [],
|
|
4960
|
+
colorAttachmentViewHandleIds: passAttachmentByIndex.get(pass.passIndex)?.colorAttachmentViewHandleIds ?? [],
|
|
4961
|
+
depthStencilViewHandleId: passAttachmentByIndex.get(pass.passIndex)?.depthStencilViewHandleId ?? null
|
|
4962
|
+
}));
|
|
4963
|
+
return {
|
|
4964
|
+
commands,
|
|
4965
|
+
passes,
|
|
4966
|
+
resources: [...resourceRecords.values()],
|
|
4967
|
+
resourceLifecycle: lifecycle,
|
|
4968
|
+
works
|
|
516
4969
|
};
|
|
517
4970
|
}
|
|
518
4971
|
function asPositiveInteger(value) {
|
|
@@ -710,6 +5163,9 @@ function buildResourceLifecycle(events) {
|
|
|
710
5163
|
};
|
|
711
5164
|
}
|
|
712
5165
|
|
|
5166
|
+
// src/protocol/codec.ts
|
|
5167
|
+
var import_pako = __toESM(require_pako());
|
|
5168
|
+
|
|
713
5169
|
// src/protocol/types.ts
|
|
714
5170
|
var TAPE_FORMAT_VERSION = 7;
|
|
715
5171
|
var TAPE_MAGIC = "RHITAPE";
|
|
@@ -883,7 +5339,7 @@ function encodeTape(tape, options = {}) {
|
|
|
883
5339
|
let offset = 0;
|
|
884
5340
|
for (const blob2 of tape.blobs) {
|
|
885
5341
|
const raw = new Uint8Array(blob2.bytes);
|
|
886
|
-
const payload = compression === "gzip" ?
|
|
5342
|
+
const payload = compression === "gzip" ? import_pako.default.gzip(raw) : raw;
|
|
887
5343
|
payloads.push(payload);
|
|
888
5344
|
blobs.push({
|
|
889
5345
|
hash: blob2.hash,
|
|
@@ -994,7 +5450,7 @@ function decodeTape(bytes) {
|
|
|
994
5450
|
);
|
|
995
5451
|
let raw;
|
|
996
5452
|
try {
|
|
997
|
-
raw = blob2.compression === "gzip" ? new Uint8Array(
|
|
5453
|
+
raw = blob2.compression === "gzip" ? new Uint8Array(import_pako.default.ungzip(stored)) : stored;
|
|
998
5454
|
} catch {
|
|
999
5455
|
return err(
|
|
1000
5456
|
createRhiDebugError("tape-invalid", {
|
|
@@ -2414,7 +6870,15 @@ function createCommandEncoderProxy(s, realEnc, cmdHId) {
|
|
|
2414
6870
|
kind: "beginRenderPass",
|
|
2415
6871
|
cmdHandleId: cmdHId,
|
|
2416
6872
|
passHandleId: passHId,
|
|
2417
|
-
desc
|
|
6873
|
+
desc: {
|
|
6874
|
+
colorAttachments: Array.from(desc.colorAttachments).map(
|
|
6875
|
+
(attachment) => attachment === null || attachment === void 0 ? attachment : { ...attachment }
|
|
6876
|
+
),
|
|
6877
|
+
...desc.depthStencilAttachment === void 0 ? {} : { depthStencilAttachment: { ...desc.depthStencilAttachment } },
|
|
6878
|
+
...desc.occlusionQuerySet === void 0 ? {} : { occlusionQuerySet: desc.occlusionQuerySet },
|
|
6879
|
+
...desc.timestampWrites === void 0 ? {} : { timestampWrites: desc.timestampWrites },
|
|
6880
|
+
...desc.maxDrawCount === void 0 ? {} : { maxDrawCount: desc.maxDrawCount }
|
|
6881
|
+
},
|
|
2418
6882
|
colorAttachmentViewHandleIds,
|
|
2419
6883
|
colorAttachmentResolveTargetHandleIds,
|
|
2420
6884
|
depthStencilViewHandleId
|
|
@@ -2882,15 +7346,25 @@ function createDeviceProxy(s, realDevice) {
|
|
|
2882
7346
|
"shaderModule"
|
|
2883
7347
|
);
|
|
2884
7348
|
}
|
|
7349
|
+
const { module: _vertexModule, constants: vertexConstants, ...vertexFields } = desc.vertex;
|
|
7350
|
+
const recordedVertex = vertexConstants === void 0 ? vertexFields : { ...vertexFields, constants: vertexConstants };
|
|
7351
|
+
const recordedFragment = desc.fragment === void 0 ? void 0 : (() => {
|
|
7352
|
+
const {
|
|
7353
|
+
module: _fragmentModule,
|
|
7354
|
+
constants: fragmentConstants,
|
|
7355
|
+
...fragmentFields
|
|
7356
|
+
} = desc.fragment;
|
|
7357
|
+
return fragmentConstants === void 0 ? fragmentFields : { ...fragmentFields, constants: fragmentConstants };
|
|
7358
|
+
})();
|
|
2885
7359
|
const event = {
|
|
2886
7360
|
kind: "createRenderPipeline",
|
|
2887
7361
|
handleId: "",
|
|
2888
7362
|
desc: {
|
|
2889
|
-
vertex:
|
|
7363
|
+
vertex: recordedVertex,
|
|
2890
7364
|
primitive: desc.primitive,
|
|
2891
7365
|
depthStencil: desc.depthStencil,
|
|
2892
7366
|
multisample: desc.multisample,
|
|
2893
|
-
fragment:
|
|
7367
|
+
...recordedFragment === void 0 ? {} : { fragment: recordedFragment }
|
|
2894
7368
|
},
|
|
2895
7369
|
layoutHandleId: layoutId,
|
|
2896
7370
|
vertexShaderModuleHandleId,
|
|
@@ -3878,6 +8352,31 @@ function attachRecorder(backend, options = {}) {
|
|
|
3878
8352
|
};
|
|
3879
8353
|
return ok(attachment);
|
|
3880
8354
|
}
|
|
8355
|
+
|
|
8356
|
+
// src/replay/device-request.ts
|
|
8357
|
+
var RECORDED_CAPABILITY_FEATURES = [
|
|
8358
|
+
["timestampQuery", "timestamp-query"],
|
|
8359
|
+
["textureCompressionBc", "texture-compression-bc"],
|
|
8360
|
+
["textureCompressionEtc2", "texture-compression-etc2"],
|
|
8361
|
+
["textureCompressionAstc", "texture-compression-astc"],
|
|
8362
|
+
["firstInstanceIndirect", "indirect-first-instance"],
|
|
8363
|
+
["float32Filterable", "float32-filterable"],
|
|
8364
|
+
["rg11b10ufloatRenderable", "rg11b10ufloat-renderable"]
|
|
8365
|
+
];
|
|
8366
|
+
function replayDeviceRequest(tape, adapterFeatures, adapterLimits) {
|
|
8367
|
+
const requiredFeatures = RECORDED_CAPABILITY_FEATURES.filter(
|
|
8368
|
+
([capability, feature]) => tape.header.rhiCaps[capability] === true && adapterFeatures.has(feature)
|
|
8369
|
+
).map(([, feature]) => feature);
|
|
8370
|
+
const limitEntries = Object.entries(adapterLimits).filter(
|
|
8371
|
+
([, value]) => Number.isFinite(value) && value >= 0
|
|
8372
|
+
);
|
|
8373
|
+
const request = {};
|
|
8374
|
+
if (requiredFeatures.length > 0) request.requiredFeatures = requiredFeatures;
|
|
8375
|
+
if (limitEntries.length > 0) {
|
|
8376
|
+
request.requiredLimits = Object.fromEntries(limitEntries);
|
|
8377
|
+
}
|
|
8378
|
+
return request;
|
|
8379
|
+
}
|
|
3881
8380
|
function eventRecord(event) {
|
|
3882
8381
|
return JSON.parse(JSON.stringify(event));
|
|
3883
8382
|
}
|
|
@@ -4809,18 +9308,59 @@ async function readReplayResource(device, table, resourceId, subresource, create
|
|
|
4809
9308
|
const entry = table.get(resourceId);
|
|
4810
9309
|
if (entry === void 0)
|
|
4811
9310
|
return readbackFailure(`resource ${resourceId} is not present in the current generation`);
|
|
9311
|
+
let result;
|
|
4812
9312
|
if (entry.resource.kind === "texture-view") {
|
|
4813
9313
|
const sourceId = stringField2(entry.descriptor, "sourceHandleId");
|
|
4814
9314
|
const source = sourceId === void 0 ? void 0 : table.get(sourceId);
|
|
4815
9315
|
if (source === void 0 || source.resource.kind !== "texture") {
|
|
4816
9316
|
return readbackFailure(`texture view ${resourceId} has no readable source texture`);
|
|
4817
9317
|
}
|
|
4818
|
-
|
|
9318
|
+
const sourceSubresource = resolveTextureViewSubresource(entry, source, subresource);
|
|
9319
|
+
if (!sourceSubresource.ok) return sourceSubresource;
|
|
9320
|
+
result = await readTexture(
|
|
9321
|
+
device,
|
|
9322
|
+
source,
|
|
9323
|
+
resourceId,
|
|
9324
|
+
sourceSubresource.value,
|
|
9325
|
+
createShaderModule2
|
|
9326
|
+
);
|
|
9327
|
+
} else if (entry.resource.kind === "texture") {
|
|
9328
|
+
result = await readTexture(device, entry, resourceId, subresource, createShaderModule2);
|
|
9329
|
+
} else if (entry.resource.kind === "buffer") {
|
|
9330
|
+
result = await readBuffer(device, entry, resourceId, subresource);
|
|
9331
|
+
} else {
|
|
9332
|
+
return readbackFailure(`resource ${resourceId} is not readable by the v7 core matrix`);
|
|
9333
|
+
}
|
|
9334
|
+
if (!result.ok) return result;
|
|
9335
|
+
return ok({
|
|
9336
|
+
...result.value,
|
|
9337
|
+
provenance: {
|
|
9338
|
+
generation: table.generation,
|
|
9339
|
+
resourceId,
|
|
9340
|
+
subresource: subresource ?? null
|
|
9341
|
+
}
|
|
9342
|
+
});
|
|
9343
|
+
}
|
|
9344
|
+
function resolveTextureViewSubresource(view, source, requested) {
|
|
9345
|
+
if (requested === void 0 || isBufferRange(requested)) return ok(requested);
|
|
9346
|
+
const sourceDescriptor = recordField(source.descriptor, "desc");
|
|
9347
|
+
const sourceSize = textureSize(sourceDescriptor?.size);
|
|
9348
|
+
const sourceMipCount = numberField(sourceDescriptor, "mipLevelCount") ?? 1;
|
|
9349
|
+
const viewDescriptor = recordField(view.descriptor, "desc");
|
|
9350
|
+
const baseMipLevel = numberField(viewDescriptor, "baseMipLevel") ?? 0;
|
|
9351
|
+
const baseArrayLayer = numberField(viewDescriptor, "baseArrayLayer") ?? 0;
|
|
9352
|
+
const mipLevelCount = numberField(viewDescriptor, "mipLevelCount") ?? sourceMipCount - baseMipLevel;
|
|
9353
|
+
const arrayLayerCount = numberField(viewDescriptor, "arrayLayerCount") ?? sourceSize.depthOrArrayLayers - baseArrayLayer;
|
|
9354
|
+
const localMipLevel = requested.mipLevel ?? 0;
|
|
9355
|
+
const localArrayLayer = requested.arrayLayer ?? 0;
|
|
9356
|
+
if (!validIndex(baseMipLevel, sourceMipCount + 1) || !validIndex(baseArrayLayer, sourceSize.depthOrArrayLayers + 1) || !validIndex(localMipLevel, mipLevelCount) || !validIndex(localArrayLayer, arrayLayerCount) || baseMipLevel + mipLevelCount > sourceMipCount || baseArrayLayer + arrayLayerCount > sourceSize.depthOrArrayLayers) {
|
|
9357
|
+
return readbackFailure("texture view subresource is outside the recorded view extent");
|
|
4819
9358
|
}
|
|
4820
|
-
|
|
4821
|
-
|
|
4822
|
-
|
|
4823
|
-
|
|
9359
|
+
return ok({
|
|
9360
|
+
...requested,
|
|
9361
|
+
mipLevel: baseMipLevel + localMipLevel,
|
|
9362
|
+
arrayLayer: baseArrayLayer + localArrayLayer
|
|
9363
|
+
});
|
|
4824
9364
|
}
|
|
4825
9365
|
async function readBuffer(device, entry, resourceId, subresource) {
|
|
4826
9366
|
const size = numberField(recordField(entry.descriptor, "desc"), "size");
|
|
@@ -4868,18 +9408,15 @@ async function readTexture(device, entry, resourceId, subresource, createShaderM
|
|
|
4868
9408
|
const width = Math.max(1, Math.floor(size.width / 2 ** mipLevel));
|
|
4869
9409
|
const height = Math.max(1, Math.floor(size.height / 2 ** mipLevel));
|
|
4870
9410
|
const requestedAspect = textureAspect(subresource);
|
|
4871
|
-
if (format
|
|
4872
|
-
if (
|
|
9411
|
+
if (isDepthStencilTextureFormat(format)) {
|
|
9412
|
+
if (requestedAspect === "all") {
|
|
4873
9413
|
return readbackUnsupported(
|
|
4874
9414
|
resourceId,
|
|
4875
9415
|
format,
|
|
4876
|
-
|
|
9416
|
+
`${format} requires an explicit depth-only or stencil-only aspect`
|
|
4877
9417
|
);
|
|
4878
9418
|
}
|
|
4879
9419
|
if (requestedAspect === "stencil-only") {
|
|
4880
|
-
if (format !== "depth24plus-stencil8") {
|
|
4881
|
-
return readbackUnsupported(resourceId, format, "depth24plus has no stencil aspect");
|
|
4882
|
-
}
|
|
4883
9420
|
const bytes2 = await copyTextureBytes(
|
|
4884
9421
|
device,
|
|
4885
9422
|
entry.resource.value,
|
|
@@ -4897,6 +9434,24 @@ async function readTexture(device, entry, resourceId, subresource, createShaderM
|
|
|
4897
9434
|
if (!bytes2.ok) return bytes2;
|
|
4898
9435
|
return ok({ resourceId, kind: "texture", format, width, height, bytes: bytes2.value });
|
|
4899
9436
|
}
|
|
9437
|
+
if (format === "depth24plus-stencil8") {
|
|
9438
|
+
return blitDepth24PlusTexture(
|
|
9439
|
+
device,
|
|
9440
|
+
entry.resource.value,
|
|
9441
|
+
resourceId,
|
|
9442
|
+
format,
|
|
9443
|
+
width,
|
|
9444
|
+
height,
|
|
9445
|
+
mipLevel,
|
|
9446
|
+
arrayLayer,
|
|
9447
|
+
createShaderModule2
|
|
9448
|
+
);
|
|
9449
|
+
}
|
|
9450
|
+
}
|
|
9451
|
+
if (format === "depth24plus") {
|
|
9452
|
+
if (requestedAspect === "stencil-only") {
|
|
9453
|
+
return readbackUnsupported(resourceId, format, "depth24plus has no stencil aspect");
|
|
9454
|
+
}
|
|
4900
9455
|
return blitDepth24PlusTexture(
|
|
4901
9456
|
device,
|
|
4902
9457
|
entry.resource.value,
|
|
@@ -5104,7 +9659,10 @@ async function copyBufferBytes(device, source, sourceOffset, size) {
|
|
|
5104
9659
|
let staging;
|
|
5105
9660
|
let mapped;
|
|
5106
9661
|
try {
|
|
5107
|
-
const
|
|
9662
|
+
const alignedSourceOffset = sourceOffset - sourceOffset % 4;
|
|
9663
|
+
const leadingBytes = sourceOffset - alignedSourceOffset;
|
|
9664
|
+
const copySize = align4(leadingBytes + size);
|
|
9665
|
+
const created = device.createBuffer({ size: Math.max(4, copySize), usage: COPY_DST_MAP_READ2 });
|
|
5108
9666
|
if (!created.ok)
|
|
5109
9667
|
return readbackFailure(`staging buffer creation failed: ${created.error.code}`);
|
|
5110
9668
|
staging = created.value;
|
|
@@ -5112,7 +9670,7 @@ async function copyBufferBytes(device, source, sourceOffset, size) {
|
|
|
5112
9670
|
if (!encoderResult.ok)
|
|
5113
9671
|
return readbackFailure(`readback encoder creation failed: ${encoderResult.error.code}`);
|
|
5114
9672
|
const encoder = encoderResult.value;
|
|
5115
|
-
encoder.copyBufferToBuffer(source,
|
|
9673
|
+
encoder.copyBufferToBuffer(source, alignedSourceOffset, staging, 0, copySize);
|
|
5116
9674
|
const finished = encoder.finish();
|
|
5117
9675
|
if (!finished.ok)
|
|
5118
9676
|
return readbackFailure(`readback encoder finish failed: ${finished.error.code}`);
|
|
@@ -5122,9 +9680,9 @@ async function copyBufferBytes(device, source, sourceOffset, size) {
|
|
|
5122
9680
|
const mappedResult = await staging.mapAsync(GPU_MAP_MODE_READ);
|
|
5123
9681
|
if (!mappedResult.ok) return readbackFailure(`readback map failed: ${mappedResult.error.code}`);
|
|
5124
9682
|
mapped = mappedResult.value;
|
|
5125
|
-
const range = mapped.getMappedRange(0,
|
|
9683
|
+
const range = mapped.getMappedRange(0, copySize);
|
|
5126
9684
|
if (!range.ok) return readbackFailure(`readback mapped range failed: ${range.error.code}`);
|
|
5127
|
-
return ok(new Uint8Array(range.value).slice());
|
|
9685
|
+
return ok(new Uint8Array(range.value).slice(leadingBytes, leadingBytes + size));
|
|
5128
9686
|
} catch (cause) {
|
|
5129
9687
|
return readbackFailure(`buffer readback failed: ${messageOf(cause)}`);
|
|
5130
9688
|
} finally {
|
|
@@ -5239,6 +9797,9 @@ function validIndex(value, count) {
|
|
|
5239
9797
|
function align256(value) {
|
|
5240
9798
|
return Math.max(256, Math.ceil(value / 256) * 256);
|
|
5241
9799
|
}
|
|
9800
|
+
function align4(value) {
|
|
9801
|
+
return Math.ceil(value / 4) * 4;
|
|
9802
|
+
}
|
|
5242
9803
|
function messageOf(cause) {
|
|
5243
9804
|
return cause instanceof Error ? cause.message : String(cause);
|
|
5244
9805
|
}
|
|
@@ -5334,6 +9895,7 @@ async function openReplay(tape, backend) {
|
|
|
5334
9895
|
const capabilityFailure = checkCapabilities(tape, backend.device);
|
|
5335
9896
|
if (capabilityFailure !== void 0) return err(capabilityFailure);
|
|
5336
9897
|
const index = buildTapeIndex(tape);
|
|
9898
|
+
const model = buildFrameModel(tape);
|
|
5337
9899
|
const table = new ResourceTable(backend.device, 0);
|
|
5338
9900
|
let disposed = false;
|
|
5339
9901
|
let prepared = false;
|
|
@@ -5371,7 +9933,9 @@ async function openReplay(tape, backend) {
|
|
|
5371
9933
|
if (disposed) return positionError(workIndex, index.works.length);
|
|
5372
9934
|
if (signal?.aborted) return positionError(workIndex, index.works.length);
|
|
5373
9935
|
const work = index.works[workIndex];
|
|
9936
|
+
const modelWork = model.works[workIndex];
|
|
5374
9937
|
if (work === void 0) return positionError(workIndex, index.works.length);
|
|
9938
|
+
if (modelWork === void 0) return positionError(workIndex, index.works.length);
|
|
5375
9939
|
const cleared = await reset();
|
|
5376
9940
|
if (!cleared.ok) return cleared;
|
|
5377
9941
|
const bootstrapped = await prepare();
|
|
@@ -5380,11 +9944,29 @@ async function openReplay(tape, backend) {
|
|
|
5380
9944
|
if (!replayed.ok) return replayed;
|
|
5381
9945
|
const attachment = fields?.includes("pixels") ? await readWorkAttachment(context, index, work) : void 0;
|
|
5382
9946
|
if (attachment !== void 0 && !attachment.ok) return attachment;
|
|
5383
|
-
|
|
9947
|
+
const selectedAttachment = attachment?.ok === true ? {
|
|
9948
|
+
...attachment.value,
|
|
9949
|
+
provenance: {
|
|
9950
|
+
...attachment.value.provenance,
|
|
9951
|
+
selectedWorkIndex: work.workIndex
|
|
9952
|
+
}
|
|
9953
|
+
} : void 0;
|
|
9954
|
+
const baseInspection = {
|
|
5384
9955
|
workIndex: work.workIndex,
|
|
5385
9956
|
eventIndex: work.eventIndex,
|
|
5386
9957
|
passIndex: work.passIndex,
|
|
5387
|
-
attachment:
|
|
9958
|
+
attachment: selectedAttachment
|
|
9959
|
+
};
|
|
9960
|
+
return ok({
|
|
9961
|
+
...baseInspection,
|
|
9962
|
+
...fields?.includes("pipeline") ? { pipeline: modelWork.pipeline } : {},
|
|
9963
|
+
...fields?.includes("bindings") ? {
|
|
9964
|
+
bindings: modelWork.bindings,
|
|
9965
|
+
vertexBuffers: modelWork.vertexBuffers,
|
|
9966
|
+
indexBuffer: modelWork.indexBuffer,
|
|
9967
|
+
shaders: modelWork.pipeline.shaders,
|
|
9968
|
+
resourceIds: modelWork.bindings.map((binding) => binding.resourceId).filter((resourceId) => resourceId !== null)
|
|
9969
|
+
} : {}
|
|
5388
9970
|
});
|
|
5389
9971
|
},
|
|
5390
9972
|
async readResource(resourceId, subresource, signal) {
|
|
@@ -5750,7 +10332,10 @@ function readTexel(view, off, info, channelBytes) {
|
|
|
5750
10332
|
}
|
|
5751
10333
|
return out;
|
|
5752
10334
|
}
|
|
5753
|
-
function decodeToRgba8(bytes, format, width, height) {
|
|
10335
|
+
function decodeToRgba8(bytes, format, width, height, aspect = "all") {
|
|
10336
|
+
if (format.startsWith("depth")) {
|
|
10337
|
+
return decodeDepthToRgba8(bytes, format, width, height, aspect);
|
|
10338
|
+
}
|
|
5754
10339
|
const info = formatInfo(format);
|
|
5755
10340
|
const texBytes = bytesPerTexel(format);
|
|
5756
10341
|
if (!info || texBytes === void 0) return null;
|
|
@@ -5782,6 +10367,26 @@ function decodeToRgba8(bytes, format, width, height) {
|
|
|
5782
10367
|
}
|
|
5783
10368
|
return out;
|
|
5784
10369
|
}
|
|
10370
|
+
function decodeDepthToRgba8(bytes, format, width, height, aspect) {
|
|
10371
|
+
const combined = format.endsWith("-stencil8");
|
|
10372
|
+
if (combined && aspect === "all") return null;
|
|
10373
|
+
if (!combined && aspect === "stencil-only") return null;
|
|
10374
|
+
const stencil = aspect === "stencil-only";
|
|
10375
|
+
const bytesPerValue = stencil ? 1 : 4;
|
|
10376
|
+
const texelCount = width * height;
|
|
10377
|
+
if (bytes.byteLength < texelCount * bytesPerValue) return null;
|
|
10378
|
+
const view = new DataView(bytes.buffer, bytes.byteOffset, bytes.byteLength);
|
|
10379
|
+
const out = new Uint8ClampedArray(new ArrayBuffer(texelCount * 4));
|
|
10380
|
+
for (let index = 0; index < texelCount; index++) {
|
|
10381
|
+
const value = stencil ? view.getUint8(index) : Math.round(clamp01(view.getFloat32(index * 4, true)) * 255);
|
|
10382
|
+
const target = index * 4;
|
|
10383
|
+
out[target] = value;
|
|
10384
|
+
out[target + 1] = value;
|
|
10385
|
+
out[target + 2] = value;
|
|
10386
|
+
out[target + 3] = 255;
|
|
10387
|
+
}
|
|
10388
|
+
return out;
|
|
10389
|
+
}
|
|
5785
10390
|
function decodeTexelRaw(bytes, format, width, height, texelX, texelY) {
|
|
5786
10391
|
if (texelX < 0 || texelX >= width || texelY < 0 || texelY >= height) return null;
|
|
5787
10392
|
const info = formatInfo(format);
|
|
@@ -5805,6 +10410,6 @@ function decodeTexelRaw(bytes, format, width, height, texelX, texelY) {
|
|
|
5805
10410
|
return [r, channels[1], b, a];
|
|
5806
10411
|
}
|
|
5807
10412
|
|
|
5808
|
-
export { EVENT_SEMANTICS, TAPE_MAGIC, TAPE_FORMAT_VERSION as V7_TAPE_FORMAT_VERSION, attachRecorder, buildFrameModel, buildTapeIndex, bytesPerTexel, createRhiDebugError, decodeTape, decodeTexelRaw, decodeToRgba8, encodeTape, eventKinds, formatInfo, halfToFloat, isWorkEvent, openReplay, readbackTexturePixels, resourceKindForEvent, workEventKinds };
|
|
10413
|
+
export { EVENT_SEMANTICS, TAPE_MAGIC, TAPE_FORMAT_VERSION as V7_TAPE_FORMAT_VERSION, attachRecorder, buildFrameModel, buildResourceLifecycle, buildTapeIndex, bytesPerTexel, createRhiDebugError, decodeTape, decodeTexelRaw, decodeToRgba8, encodeTape, eventKinds, formatInfo, halfToFloat, isWorkEvent, openReplay, readbackTexturePixels, replayDeviceRequest, resourceKindForEvent, workEventKinds };
|
|
5809
10414
|
//# sourceMappingURL=index.mjs.map
|
|
5810
10415
|
//# sourceMappingURL=index.mjs.map
|