jsx-repl 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,954 @@
1
+ import { ref, computed } from 'vue';
2
+
3
+ const injectKeyProps = Symbol("props");
4
+ const injectKeyPreviewRef = Symbol("preview-ref");
5
+
6
+ // DEFLATE is a complex format; to read this code, you should probably check the RFC first:
7
+ // https://tools.ietf.org/html/rfc1951
8
+ // You may also wish to take a look at the guide I made about this program:
9
+ // https://gist.github.com/101arrowz/253f31eb5abc3d9275ab943003ffecad
10
+ // Some of the following code is similar to that of UZIP.js:
11
+ // https://github.com/photopea/UZIP.js
12
+ // However, the vast majority of the codebase has diverged from UZIP.js to increase performance and reduce bundle size.
13
+ // Sometimes 0 will appear where -1 would be more appropriate. This is because using a uint
14
+ // is better for memory in most engines (I *think*).
15
+
16
+ // aliases for shorter compressed code (most minifers don't do this)
17
+ var u8 = Uint8Array, u16 = Uint16Array, i32 = Int32Array;
18
+ // fixed length extra bits
19
+ var fleb = new u8([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, /* unused */ 0, 0, /* impossible */ 0]);
20
+ // fixed distance extra bits
21
+ var fdeb = new u8([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, /* unused */ 0, 0]);
22
+ // code length index map
23
+ var clim = new u8([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]);
24
+ // get base, reverse index map from extra bits
25
+ var freb = function (eb, start) {
26
+ var b = new u16(31);
27
+ for (var i = 0; i < 31; ++i) {
28
+ b[i] = start += 1 << eb[i - 1];
29
+ }
30
+ // numbers here are at max 18 bits
31
+ var r = new i32(b[30]);
32
+ for (var i = 1; i < 30; ++i) {
33
+ for (var j = b[i]; j < b[i + 1]; ++j) {
34
+ r[j] = ((j - b[i]) << 5) | i;
35
+ }
36
+ }
37
+ return { b: b, r: r };
38
+ };
39
+ var _a = freb(fleb, 2), fl = _a.b, revfl = _a.r;
40
+ // we can ignore the fact that the other numbers are wrong; they never happen anyway
41
+ fl[28] = 258, revfl[258] = 28;
42
+ var _b = freb(fdeb, 0), fd = _b.b, revfd = _b.r;
43
+ // map of value to reverse (assuming 16 bits)
44
+ var rev = new u16(32768);
45
+ for (var i = 0; i < 32768; ++i) {
46
+ // reverse table algorithm from SO
47
+ var x = ((i & 0xAAAA) >> 1) | ((i & 0x5555) << 1);
48
+ x = ((x & 0xCCCC) >> 2) | ((x & 0x3333) << 2);
49
+ x = ((x & 0xF0F0) >> 4) | ((x & 0x0F0F) << 4);
50
+ rev[i] = (((x & 0xFF00) >> 8) | ((x & 0x00FF) << 8)) >> 1;
51
+ }
52
+ // create huffman tree from u8 "map": index -> code length for code index
53
+ // mb (max bits) must be at most 15
54
+ // TODO: optimize/split up?
55
+ var hMap = (function (cd, mb, r) {
56
+ var s = cd.length;
57
+ // index
58
+ var i = 0;
59
+ // u16 "map": index -> # of codes with bit length = index
60
+ var l = new u16(mb);
61
+ // length of cd must be 288 (total # of codes)
62
+ for (; i < s; ++i) {
63
+ if (cd[i])
64
+ ++l[cd[i] - 1];
65
+ }
66
+ // u16 "map": index -> minimum code for bit length = index
67
+ var le = new u16(mb);
68
+ for (i = 1; i < mb; ++i) {
69
+ le[i] = (le[i - 1] + l[i - 1]) << 1;
70
+ }
71
+ var co;
72
+ if (r) {
73
+ // u16 "map": index -> number of actual bits, symbol for code
74
+ co = new u16(1 << mb);
75
+ // bits to remove for reverser
76
+ var rvb = 15 - mb;
77
+ for (i = 0; i < s; ++i) {
78
+ // ignore 0 lengths
79
+ if (cd[i]) {
80
+ // num encoding both symbol and bits read
81
+ var sv = (i << 4) | cd[i];
82
+ // free bits
83
+ var r_1 = mb - cd[i];
84
+ // start value
85
+ var v = le[cd[i] - 1]++ << r_1;
86
+ // m is end value
87
+ for (var m = v | ((1 << r_1) - 1); v <= m; ++v) {
88
+ // every 16 bit value starting with the code yields the same result
89
+ co[rev[v] >> rvb] = sv;
90
+ }
91
+ }
92
+ }
93
+ }
94
+ else {
95
+ co = new u16(s);
96
+ for (i = 0; i < s; ++i) {
97
+ if (cd[i]) {
98
+ co[i] = rev[le[cd[i] - 1]++] >> (15 - cd[i]);
99
+ }
100
+ }
101
+ }
102
+ return co;
103
+ });
104
+ // fixed length tree
105
+ var flt = new u8(288);
106
+ for (var i = 0; i < 144; ++i)
107
+ flt[i] = 8;
108
+ for (var i = 144; i < 256; ++i)
109
+ flt[i] = 9;
110
+ for (var i = 256; i < 280; ++i)
111
+ flt[i] = 7;
112
+ for (var i = 280; i < 288; ++i)
113
+ flt[i] = 8;
114
+ // fixed distance tree
115
+ var fdt = new u8(32);
116
+ for (var i = 0; i < 32; ++i)
117
+ fdt[i] = 5;
118
+ // fixed length map
119
+ var flm = /*#__PURE__*/ hMap(flt, 9, 0), flrm = /*#__PURE__*/ hMap(flt, 9, 1);
120
+ // fixed distance map
121
+ var fdm = /*#__PURE__*/ hMap(fdt, 5, 0), fdrm = /*#__PURE__*/ hMap(fdt, 5, 1);
122
+ // find max of array
123
+ var max = function (a) {
124
+ var m = a[0];
125
+ for (var i = 1; i < a.length; ++i) {
126
+ if (a[i] > m)
127
+ m = a[i];
128
+ }
129
+ return m;
130
+ };
131
+ // read d, starting at bit p and mask with m
132
+ var bits = function (d, p, m) {
133
+ var o = (p / 8) | 0;
134
+ return ((d[o] | (d[o + 1] << 8)) >> (p & 7)) & m;
135
+ };
136
+ // read d, starting at bit p continuing for at least 16 bits
137
+ var bits16 = function (d, p) {
138
+ var o = (p / 8) | 0;
139
+ return ((d[o] | (d[o + 1] << 8) | (d[o + 2] << 16)) >> (p & 7));
140
+ };
141
+ // get end of byte
142
+ var shft = function (p) { return ((p + 7) / 8) | 0; };
143
+ // typed array slice - allows garbage collector to free original reference,
144
+ // while being more compatible than .slice
145
+ var slc = function (v, s, e) {
146
+ if (s == null || s < 0)
147
+ s = 0;
148
+ if (e == null || e > v.length)
149
+ e = v.length;
150
+ // can't use .constructor in case user-supplied
151
+ return new u8(v.subarray(s, e));
152
+ };
153
+ // error codes
154
+ var ec = [
155
+ 'unexpected EOF',
156
+ 'invalid block type',
157
+ 'invalid length/literal',
158
+ 'invalid distance',
159
+ 'stream finished',
160
+ 'no stream handler',
161
+ ,
162
+ 'no callback',
163
+ 'invalid UTF-8 data',
164
+ 'extra field too long',
165
+ 'date not in range 1980-2099',
166
+ 'filename too long',
167
+ 'stream finishing',
168
+ 'invalid zip data'
169
+ // determined by unknown compression method
170
+ ];
171
+ var err = function (ind, msg, nt) {
172
+ var e = new Error(msg || ec[ind]);
173
+ e.code = ind;
174
+ if (Error.captureStackTrace)
175
+ Error.captureStackTrace(e, err);
176
+ if (!nt)
177
+ throw e;
178
+ return e;
179
+ };
180
+ // expands raw DEFLATE data
181
+ var inflt = function (dat, st, buf, dict) {
182
+ // source length dict length
183
+ var sl = dat.length, dl = 0;
184
+ if (!sl || st.f && !st.l)
185
+ return buf || new u8(0);
186
+ var noBuf = !buf;
187
+ // have to estimate size
188
+ var resize = noBuf || st.i != 2;
189
+ // no state
190
+ var noSt = st.i;
191
+ // Assumes roughly 33% compression ratio average
192
+ if (noBuf)
193
+ buf = new u8(sl * 3);
194
+ // ensure buffer can fit at least l elements
195
+ var cbuf = function (l) {
196
+ var bl = buf.length;
197
+ // need to increase size to fit
198
+ if (l > bl) {
199
+ // Double or set to necessary, whichever is greater
200
+ var nbuf = new u8(Math.max(bl * 2, l));
201
+ nbuf.set(buf);
202
+ buf = nbuf;
203
+ }
204
+ };
205
+ // last chunk bitpos bytes
206
+ var final = st.f || 0, pos = st.p || 0, bt = st.b || 0, lm = st.l, dm = st.d, lbt = st.m, dbt = st.n;
207
+ // total bits
208
+ var tbts = sl * 8;
209
+ do {
210
+ if (!lm) {
211
+ // BFINAL - this is only 1 when last chunk is next
212
+ final = bits(dat, pos, 1);
213
+ // type: 0 = no compression, 1 = fixed huffman, 2 = dynamic huffman
214
+ var type = bits(dat, pos + 1, 3);
215
+ pos += 3;
216
+ if (!type) {
217
+ // go to end of byte boundary
218
+ var s = shft(pos) + 4, l = dat[s - 4] | (dat[s - 3] << 8), t = s + l;
219
+ if (t > sl) {
220
+ if (noSt)
221
+ err(0);
222
+ break;
223
+ }
224
+ // ensure size
225
+ if (resize)
226
+ cbuf(bt + l);
227
+ // Copy over uncompressed data
228
+ buf.set(dat.subarray(s, t), bt);
229
+ // Get new bitpos, update byte count
230
+ st.b = bt += l, st.p = pos = t * 8, st.f = final;
231
+ continue;
232
+ }
233
+ else if (type == 1)
234
+ lm = flrm, dm = fdrm, lbt = 9, dbt = 5;
235
+ else if (type == 2) {
236
+ // literal lengths
237
+ var hLit = bits(dat, pos, 31) + 257, hcLen = bits(dat, pos + 10, 15) + 4;
238
+ var tl = hLit + bits(dat, pos + 5, 31) + 1;
239
+ pos += 14;
240
+ // length+distance tree
241
+ var ldt = new u8(tl);
242
+ // code length tree
243
+ var clt = new u8(19);
244
+ for (var i = 0; i < hcLen; ++i) {
245
+ // use index map to get real code
246
+ clt[clim[i]] = bits(dat, pos + i * 3, 7);
247
+ }
248
+ pos += hcLen * 3;
249
+ // code lengths bits
250
+ var clb = max(clt), clbmsk = (1 << clb) - 1;
251
+ // code lengths map
252
+ var clm = hMap(clt, clb, 1);
253
+ for (var i = 0; i < tl;) {
254
+ var r = clm[bits(dat, pos, clbmsk)];
255
+ // bits read
256
+ pos += r & 15;
257
+ // symbol
258
+ var s = r >> 4;
259
+ // code length to copy
260
+ if (s < 16) {
261
+ ldt[i++] = s;
262
+ }
263
+ else {
264
+ // copy count
265
+ var c = 0, n = 0;
266
+ if (s == 16)
267
+ n = 3 + bits(dat, pos, 3), pos += 2, c = ldt[i - 1];
268
+ else if (s == 17)
269
+ n = 3 + bits(dat, pos, 7), pos += 3;
270
+ else if (s == 18)
271
+ n = 11 + bits(dat, pos, 127), pos += 7;
272
+ while (n--)
273
+ ldt[i++] = c;
274
+ }
275
+ }
276
+ // length tree distance tree
277
+ var lt = ldt.subarray(0, hLit), dt = ldt.subarray(hLit);
278
+ // max length bits
279
+ lbt = max(lt);
280
+ // max dist bits
281
+ dbt = max(dt);
282
+ lm = hMap(lt, lbt, 1);
283
+ dm = hMap(dt, dbt, 1);
284
+ }
285
+ else
286
+ err(1);
287
+ if (pos > tbts) {
288
+ if (noSt)
289
+ err(0);
290
+ break;
291
+ }
292
+ }
293
+ // Make sure the buffer can hold this + the largest possible addition
294
+ // Maximum chunk size (practically, theoretically infinite) is 2^17
295
+ if (resize)
296
+ cbuf(bt + 131072);
297
+ var lms = (1 << lbt) - 1, dms = (1 << dbt) - 1;
298
+ var lpos = pos;
299
+ for (;; lpos = pos) {
300
+ // bits read, code
301
+ var c = lm[bits16(dat, pos) & lms], sym = c >> 4;
302
+ pos += c & 15;
303
+ if (pos > tbts) {
304
+ if (noSt)
305
+ err(0);
306
+ break;
307
+ }
308
+ if (!c)
309
+ err(2);
310
+ if (sym < 256)
311
+ buf[bt++] = sym;
312
+ else if (sym == 256) {
313
+ lpos = pos, lm = null;
314
+ break;
315
+ }
316
+ else {
317
+ var add = sym - 254;
318
+ // no extra bits needed if less
319
+ if (sym > 264) {
320
+ // index
321
+ var i = sym - 257, b = fleb[i];
322
+ add = bits(dat, pos, (1 << b) - 1) + fl[i];
323
+ pos += b;
324
+ }
325
+ // dist
326
+ var d = dm[bits16(dat, pos) & dms], dsym = d >> 4;
327
+ if (!d)
328
+ err(3);
329
+ pos += d & 15;
330
+ var dt = fd[dsym];
331
+ if (dsym > 3) {
332
+ var b = fdeb[dsym];
333
+ dt += bits16(dat, pos) & (1 << b) - 1, pos += b;
334
+ }
335
+ if (pos > tbts) {
336
+ if (noSt)
337
+ err(0);
338
+ break;
339
+ }
340
+ if (resize)
341
+ cbuf(bt + 131072);
342
+ var end = bt + add;
343
+ if (bt < dt) {
344
+ var shift = dl - dt, dend = Math.min(dt, end);
345
+ if (shift + bt < 0)
346
+ err(3);
347
+ for (; bt < dend; ++bt)
348
+ buf[bt] = dict[shift + bt];
349
+ }
350
+ for (; bt < end; ++bt)
351
+ buf[bt] = buf[bt - dt];
352
+ }
353
+ }
354
+ st.l = lm, st.p = lpos, st.b = bt, st.f = final;
355
+ if (lm)
356
+ final = 1, st.m = lbt, st.d = dm, st.n = dbt;
357
+ } while (!final);
358
+ // don't reallocate for streams or user buffers
359
+ return bt != buf.length && noBuf ? slc(buf, 0, bt) : buf.subarray(0, bt);
360
+ };
361
+ // starting at p, write the minimum number of bits that can hold v to d
362
+ var wbits = function (d, p, v) {
363
+ v <<= p & 7;
364
+ var o = (p / 8) | 0;
365
+ d[o] |= v;
366
+ d[o + 1] |= v >> 8;
367
+ };
368
+ // starting at p, write the minimum number of bits (>8) that can hold v to d
369
+ var wbits16 = function (d, p, v) {
370
+ v <<= p & 7;
371
+ var o = (p / 8) | 0;
372
+ d[o] |= v;
373
+ d[o + 1] |= v >> 8;
374
+ d[o + 2] |= v >> 16;
375
+ };
376
+ // creates code lengths from a frequency table
377
+ var hTree = function (d, mb) {
378
+ // Need extra info to make a tree
379
+ var t = [];
380
+ for (var i = 0; i < d.length; ++i) {
381
+ if (d[i])
382
+ t.push({ s: i, f: d[i] });
383
+ }
384
+ var s = t.length;
385
+ var t2 = t.slice();
386
+ if (!s)
387
+ return { t: et, l: 0 };
388
+ if (s == 1) {
389
+ var v = new u8(t[0].s + 1);
390
+ v[t[0].s] = 1;
391
+ return { t: v, l: 1 };
392
+ }
393
+ t.sort(function (a, b) { return a.f - b.f; });
394
+ // after i2 reaches last ind, will be stopped
395
+ // freq must be greater than largest possible number of symbols
396
+ t.push({ s: -1, f: 25001 });
397
+ var l = t[0], r = t[1], i0 = 0, i1 = 1, i2 = 2;
398
+ t[0] = { s: -1, f: l.f + r.f, l: l, r: r };
399
+ // efficient algorithm from UZIP.js
400
+ // i0 is lookbehind, i2 is lookahead - after processing two low-freq
401
+ // symbols that combined have high freq, will start processing i2 (high-freq,
402
+ // non-composite) symbols instead
403
+ // see https://reddit.com/r/photopea/comments/ikekht/uzipjs_questions/
404
+ while (i1 != s - 1) {
405
+ l = t[t[i0].f < t[i2].f ? i0++ : i2++];
406
+ r = t[i0 != i1 && t[i0].f < t[i2].f ? i0++ : i2++];
407
+ t[i1++] = { s: -1, f: l.f + r.f, l: l, r: r };
408
+ }
409
+ var maxSym = t2[0].s;
410
+ for (var i = 1; i < s; ++i) {
411
+ if (t2[i].s > maxSym)
412
+ maxSym = t2[i].s;
413
+ }
414
+ // code lengths
415
+ var tr = new u16(maxSym + 1);
416
+ // max bits in tree
417
+ var mbt = ln(t[i1 - 1], tr, 0);
418
+ if (mbt > mb) {
419
+ // more algorithms from UZIP.js
420
+ // TODO: find out how this code works (debt)
421
+ // ind debt
422
+ var i = 0, dt = 0;
423
+ // left cost
424
+ var lft = mbt - mb, cst = 1 << lft;
425
+ t2.sort(function (a, b) { return tr[b.s] - tr[a.s] || a.f - b.f; });
426
+ for (; i < s; ++i) {
427
+ var i2_1 = t2[i].s;
428
+ if (tr[i2_1] > mb) {
429
+ dt += cst - (1 << (mbt - tr[i2_1]));
430
+ tr[i2_1] = mb;
431
+ }
432
+ else
433
+ break;
434
+ }
435
+ dt >>= lft;
436
+ while (dt > 0) {
437
+ var i2_2 = t2[i].s;
438
+ if (tr[i2_2] < mb)
439
+ dt -= 1 << (mb - tr[i2_2]++ - 1);
440
+ else
441
+ ++i;
442
+ }
443
+ for (; i >= 0 && dt; --i) {
444
+ var i2_3 = t2[i].s;
445
+ if (tr[i2_3] == mb) {
446
+ --tr[i2_3];
447
+ ++dt;
448
+ }
449
+ }
450
+ mbt = mb;
451
+ }
452
+ return { t: new u8(tr), l: mbt };
453
+ };
454
+ // get the max length and assign length codes
455
+ var ln = function (n, l, d) {
456
+ return n.s == -1
457
+ ? Math.max(ln(n.l, l, d + 1), ln(n.r, l, d + 1))
458
+ : (l[n.s] = d);
459
+ };
460
+ // length codes generation
461
+ var lc = function (c) {
462
+ var s = c.length;
463
+ // Note that the semicolon was intentional
464
+ while (s && !c[--s])
465
+ ;
466
+ var cl = new u16(++s);
467
+ // ind num streak
468
+ var cli = 0, cln = c[0], cls = 1;
469
+ var w = function (v) { cl[cli++] = v; };
470
+ for (var i = 1; i <= s; ++i) {
471
+ if (c[i] == cln && i != s)
472
+ ++cls;
473
+ else {
474
+ if (!cln && cls > 2) {
475
+ for (; cls > 138; cls -= 138)
476
+ w(32754);
477
+ if (cls > 2) {
478
+ w(cls > 10 ? ((cls - 11) << 5) | 28690 : ((cls - 3) << 5) | 12305);
479
+ cls = 0;
480
+ }
481
+ }
482
+ else if (cls > 3) {
483
+ w(cln), --cls;
484
+ for (; cls > 6; cls -= 6)
485
+ w(8304);
486
+ if (cls > 2)
487
+ w(((cls - 3) << 5) | 8208), cls = 0;
488
+ }
489
+ while (cls--)
490
+ w(cln);
491
+ cls = 1;
492
+ cln = c[i];
493
+ }
494
+ }
495
+ return { c: cl.subarray(0, cli), n: s };
496
+ };
497
+ // calculate the length of output from tree, code lengths
498
+ var clen = function (cf, cl) {
499
+ var l = 0;
500
+ for (var i = 0; i < cl.length; ++i)
501
+ l += cf[i] * cl[i];
502
+ return l;
503
+ };
504
+ // writes a fixed block
505
+ // returns the new bit pos
506
+ var wfblk = function (out, pos, dat) {
507
+ // no need to write 00 as type: TypedArray defaults to 0
508
+ var s = dat.length;
509
+ var o = shft(pos + 2);
510
+ out[o] = s & 255;
511
+ out[o + 1] = s >> 8;
512
+ out[o + 2] = out[o] ^ 255;
513
+ out[o + 3] = out[o + 1] ^ 255;
514
+ for (var i = 0; i < s; ++i)
515
+ out[o + i + 4] = dat[i];
516
+ return (o + 4 + s) * 8;
517
+ };
518
+ // writes a block
519
+ var wblk = function (dat, out, final, syms, lf, df, eb, li, bs, bl, p) {
520
+ wbits(out, p++, final);
521
+ ++lf[256];
522
+ var _a = hTree(lf, 15), dlt = _a.t, mlb = _a.l;
523
+ var _b = hTree(df, 15), ddt = _b.t, mdb = _b.l;
524
+ var _c = lc(dlt), lclt = _c.c, nlc = _c.n;
525
+ var _d = lc(ddt), lcdt = _d.c, ndc = _d.n;
526
+ var lcfreq = new u16(19);
527
+ for (var i = 0; i < lclt.length; ++i)
528
+ ++lcfreq[lclt[i] & 31];
529
+ for (var i = 0; i < lcdt.length; ++i)
530
+ ++lcfreq[lcdt[i] & 31];
531
+ var _e = hTree(lcfreq, 7), lct = _e.t, mlcb = _e.l;
532
+ var nlcc = 19;
533
+ for (; nlcc > 4 && !lct[clim[nlcc - 1]]; --nlcc)
534
+ ;
535
+ var flen = (bl + 5) << 3;
536
+ var ftlen = clen(lf, flt) + clen(df, fdt) + eb;
537
+ var dtlen = clen(lf, dlt) + clen(df, ddt) + eb + 14 + 3 * nlcc + clen(lcfreq, lct) + 2 * lcfreq[16] + 3 * lcfreq[17] + 7 * lcfreq[18];
538
+ if (bs >= 0 && flen <= ftlen && flen <= dtlen)
539
+ return wfblk(out, p, dat.subarray(bs, bs + bl));
540
+ var lm, ll, dm, dl;
541
+ wbits(out, p, 1 + (dtlen < ftlen)), p += 2;
542
+ if (dtlen < ftlen) {
543
+ lm = hMap(dlt, mlb, 0), ll = dlt, dm = hMap(ddt, mdb, 0), dl = ddt;
544
+ var llm = hMap(lct, mlcb, 0);
545
+ wbits(out, p, nlc - 257);
546
+ wbits(out, p + 5, ndc - 1);
547
+ wbits(out, p + 10, nlcc - 4);
548
+ p += 14;
549
+ for (var i = 0; i < nlcc; ++i)
550
+ wbits(out, p + 3 * i, lct[clim[i]]);
551
+ p += 3 * nlcc;
552
+ var lcts = [lclt, lcdt];
553
+ for (var it = 0; it < 2; ++it) {
554
+ var clct = lcts[it];
555
+ for (var i = 0; i < clct.length; ++i) {
556
+ var len = clct[i] & 31;
557
+ wbits(out, p, llm[len]), p += lct[len];
558
+ if (len > 15)
559
+ wbits(out, p, (clct[i] >> 5) & 127), p += clct[i] >> 12;
560
+ }
561
+ }
562
+ }
563
+ else {
564
+ lm = flm, ll = flt, dm = fdm, dl = fdt;
565
+ }
566
+ for (var i = 0; i < li; ++i) {
567
+ var sym = syms[i];
568
+ if (sym > 255) {
569
+ var len = (sym >> 18) & 31;
570
+ wbits16(out, p, lm[len + 257]), p += ll[len + 257];
571
+ if (len > 7)
572
+ wbits(out, p, (sym >> 23) & 31), p += fleb[len];
573
+ var dst = sym & 31;
574
+ wbits16(out, p, dm[dst]), p += dl[dst];
575
+ if (dst > 3)
576
+ wbits16(out, p, (sym >> 5) & 8191), p += fdeb[dst];
577
+ }
578
+ else {
579
+ wbits16(out, p, lm[sym]), p += ll[sym];
580
+ }
581
+ }
582
+ wbits16(out, p, lm[256]);
583
+ return p + ll[256];
584
+ };
585
+ // deflate options (nice << 13) | chain
586
+ var deo = /*#__PURE__*/ new i32([65540, 131080, 131088, 131104, 262176, 1048704, 1048832, 2114560, 2117632]);
587
+ // empty
588
+ var et = /*#__PURE__*/ new u8(0);
589
+ // compresses data into a raw DEFLATE buffer
590
+ var dflt = function (dat, lvl, plvl, pre, post, st) {
591
+ var s = st.z || dat.length;
592
+ var o = new u8(pre + s + 5 * (1 + Math.ceil(s / 7000)) + post);
593
+ // writing to this writes to the output buffer
594
+ var w = o.subarray(pre, o.length - post);
595
+ var lst = st.l;
596
+ var pos = (st.r || 0) & 7;
597
+ if (lvl) {
598
+ if (pos)
599
+ w[0] = st.r >> 3;
600
+ var opt = deo[lvl - 1];
601
+ var n = opt >> 13, c = opt & 8191;
602
+ var msk_1 = (1 << plvl) - 1;
603
+ // prev 2-byte val map curr 2-byte val map
604
+ var prev = st.p || new u16(32768), head = st.h || new u16(msk_1 + 1);
605
+ var bs1_1 = Math.ceil(plvl / 3), bs2_1 = 2 * bs1_1;
606
+ var hsh = function (i) { return (dat[i] ^ (dat[i + 1] << bs1_1) ^ (dat[i + 2] << bs2_1)) & msk_1; };
607
+ // 24576 is an arbitrary number of maximum symbols per block
608
+ // 424 buffer for last block
609
+ var syms = new i32(25000);
610
+ // length/literal freq distance freq
611
+ var lf = new u16(288), df = new u16(32);
612
+ // l/lcnt exbits index l/lind waitdx blkpos
613
+ var lc_1 = 0, eb = 0, i = st.i || 0, li = 0, wi = st.w || 0, bs = 0;
614
+ for (; i + 2 < s; ++i) {
615
+ // hash value
616
+ var hv = hsh(i);
617
+ // index mod 32768 previous index mod
618
+ var imod = i & 32767, pimod = head[hv];
619
+ prev[imod] = pimod;
620
+ head[hv] = imod;
621
+ // We always should modify head and prev, but only add symbols if
622
+ // this data is not yet processed ("wait" for wait index)
623
+ if (wi <= i) {
624
+ // bytes remaining
625
+ var rem = s - i;
626
+ if ((lc_1 > 7000 || li > 24576) && (rem > 423 || !lst)) {
627
+ pos = wblk(dat, w, 0, syms, lf, df, eb, li, bs, i - bs, pos);
628
+ li = lc_1 = eb = 0, bs = i;
629
+ for (var j = 0; j < 286; ++j)
630
+ lf[j] = 0;
631
+ for (var j = 0; j < 30; ++j)
632
+ df[j] = 0;
633
+ }
634
+ // len dist chain
635
+ var l = 2, d = 0, ch_1 = c, dif = imod - pimod & 32767;
636
+ if (rem > 2 && hv == hsh(i - dif)) {
637
+ var maxn = Math.min(n, rem) - 1;
638
+ var maxd = Math.min(32767, i);
639
+ // max possible length
640
+ // not capped at dif because decompressors implement "rolling" index population
641
+ var ml = Math.min(258, rem);
642
+ while (dif <= maxd && --ch_1 && imod != pimod) {
643
+ if (dat[i + l] == dat[i + l - dif]) {
644
+ var nl = 0;
645
+ for (; nl < ml && dat[i + nl] == dat[i + nl - dif]; ++nl)
646
+ ;
647
+ if (nl > l) {
648
+ l = nl, d = dif;
649
+ // break out early when we reach "nice" (we are satisfied enough)
650
+ if (nl > maxn)
651
+ break;
652
+ // now, find the rarest 2-byte sequence within this
653
+ // length of literals and search for that instead.
654
+ // Much faster than just using the start
655
+ var mmd = Math.min(dif, nl - 2);
656
+ var md = 0;
657
+ for (var j = 0; j < mmd; ++j) {
658
+ var ti = i - dif + j & 32767;
659
+ var pti = prev[ti];
660
+ var cd = ti - pti & 32767;
661
+ if (cd > md)
662
+ md = cd, pimod = ti;
663
+ }
664
+ }
665
+ }
666
+ // check the previous match
667
+ imod = pimod, pimod = prev[imod];
668
+ dif += imod - pimod & 32767;
669
+ }
670
+ }
671
+ // d will be nonzero only when a match was found
672
+ if (d) {
673
+ // store both dist and len data in one int32
674
+ // Make sure this is recognized as a len/dist with 28th bit (2^28)
675
+ syms[li++] = 268435456 | (revfl[l] << 18) | revfd[d];
676
+ var lin = revfl[l] & 31, din = revfd[d] & 31;
677
+ eb += fleb[lin] + fdeb[din];
678
+ ++lf[257 + lin];
679
+ ++df[din];
680
+ wi = i + l;
681
+ ++lc_1;
682
+ }
683
+ else {
684
+ syms[li++] = dat[i];
685
+ ++lf[dat[i]];
686
+ }
687
+ }
688
+ }
689
+ for (i = Math.max(i, wi); i < s; ++i) {
690
+ syms[li++] = dat[i];
691
+ ++lf[dat[i]];
692
+ }
693
+ pos = wblk(dat, w, lst, syms, lf, df, eb, li, bs, i - bs, pos);
694
+ if (!lst) {
695
+ st.r = (pos & 7) | w[(pos / 8) | 0] << 3;
696
+ // shft(pos) now 1 less if pos & 7 != 0
697
+ pos -= 7;
698
+ st.h = head, st.p = prev, st.i = i, st.w = wi;
699
+ }
700
+ }
701
+ else {
702
+ for (var i = st.w || 0; i < s + lst; i += 65535) {
703
+ // end
704
+ var e = i + 65535;
705
+ if (e >= s) {
706
+ // write final block
707
+ w[(pos / 8) | 0] = lst;
708
+ e = s;
709
+ }
710
+ pos = wfblk(w, pos + 1, dat.subarray(i, e));
711
+ }
712
+ st.i = s;
713
+ }
714
+ return slc(o, 0, pre + shft(pos) + post);
715
+ };
716
+ // Adler32
717
+ var adler = function () {
718
+ var a = 1, b = 0;
719
+ return {
720
+ p: function (d) {
721
+ // closures have awful performance
722
+ var n = a, m = b;
723
+ var l = d.length | 0;
724
+ for (var i = 0; i != l;) {
725
+ var e = Math.min(i + 2655, l);
726
+ for (; i < e; ++i)
727
+ m += n += d[i];
728
+ n = (n & 65535) + 15 * (n >> 16), m = (m & 65535) + 15 * (m >> 16);
729
+ }
730
+ a = n, b = m;
731
+ },
732
+ d: function () {
733
+ a %= 65521, b %= 65521;
734
+ return (a & 255) << 24 | (a & 0xFF00) << 8 | (b & 255) << 8 | (b >> 8);
735
+ }
736
+ };
737
+ };
738
+ // deflate with opts
739
+ var dopt = function (dat, opt, pre, post, st) {
740
+ if (!st) {
741
+ st = { l: 1 };
742
+ if (opt.dictionary) {
743
+ var dict = opt.dictionary.subarray(-32768);
744
+ var newDat = new u8(dict.length + dat.length);
745
+ newDat.set(dict);
746
+ newDat.set(dat, dict.length);
747
+ dat = newDat;
748
+ st.w = dict.length;
749
+ }
750
+ }
751
+ return dflt(dat, opt.level == null ? 6 : opt.level, opt.mem == null ? (st.l ? Math.ceil(Math.max(8, Math.min(13, Math.log(dat.length))) * 1.5) : 20) : (12 + opt.mem), pre, post, st);
752
+ };
753
+ // write bytes
754
+ var wbytes = function (d, b, v) {
755
+ for (; v; ++b)
756
+ d[b] = v, v >>>= 8;
757
+ };
758
+ // zlib header
759
+ var zlh = function (c, o) {
760
+ var lv = o.level, fl = lv == 0 ? 0 : lv < 6 ? 1 : lv == 9 ? 3 : 2;
761
+ c[0] = 120, c[1] = (fl << 6) | (o.dictionary && 32);
762
+ c[1] |= 31 - ((c[0] << 8) | c[1]) % 31;
763
+ if (o.dictionary) {
764
+ var h = adler();
765
+ h.p(o.dictionary);
766
+ wbytes(c, 2, h.d());
767
+ }
768
+ };
769
+ // zlib start
770
+ var zls = function (d, dict) {
771
+ if ((d[0] & 15) != 8 || (d[0] >> 4) > 7 || ((d[0] << 8 | d[1]) % 31))
772
+ err(6, 'invalid zlib data');
773
+ if ((d[1] >> 5 & 1) == +!dict)
774
+ err(6, 'invalid zlib data: ' + (d[1] & 32 ? 'need' : 'unexpected') + ' dictionary');
775
+ return (d[1] >> 3 & 4) + 2;
776
+ };
777
+ /**
778
+ * Compress data with Zlib
779
+ * @param data The data to compress
780
+ * @param opts The compression options
781
+ * @returns The zlib-compressed version of the data
782
+ */
783
+ function zlibSync(data, opts) {
784
+ if (!opts)
785
+ opts = {};
786
+ var a = adler();
787
+ a.p(data);
788
+ var d = dopt(data, opts, opts.dictionary ? 6 : 2, 4);
789
+ return zlh(d, opts), wbytes(d, d.length - 4, a.d()), d;
790
+ }
791
+ /**
792
+ * Expands Zlib data
793
+ * @param data The data to decompress
794
+ * @param opts The decompression options
795
+ * @returns The decompressed version of the data
796
+ */
797
+ function unzlibSync(data, opts) {
798
+ return inflt(data.subarray(zls(data, opts), -4), { i: 2 }, opts, opts);
799
+ }
800
+ // text encoder
801
+ var te = typeof TextEncoder != 'undefined' && /*#__PURE__*/ new TextEncoder();
802
+ // text decoder
803
+ var td = typeof TextDecoder != 'undefined' && /*#__PURE__*/ new TextDecoder();
804
+ // text decoder stream
805
+ var tds = 0;
806
+ try {
807
+ td.decode(et, { stream: true });
808
+ tds = 1;
809
+ }
810
+ catch (e) { }
811
+ // decode UTF8
812
+ var dutf8 = function (d) {
813
+ for (var r = '', i = 0;;) {
814
+ var c = d[i++];
815
+ var eb = (c > 127) + (c > 223) + (c > 239);
816
+ if (i + eb > d.length)
817
+ return { s: r, r: slc(d, i - 1) };
818
+ if (!eb)
819
+ r += String.fromCharCode(c);
820
+ else if (eb == 3) {
821
+ c = ((c & 15) << 18 | (d[i++] & 63) << 12 | (d[i++] & 63) << 6 | (d[i++] & 63)) - 65536,
822
+ r += String.fromCharCode(55296 | (c >> 10), 56320 | (c & 1023));
823
+ }
824
+ else if (eb & 1)
825
+ r += String.fromCharCode((c & 31) << 6 | (d[i++] & 63));
826
+ else
827
+ r += String.fromCharCode((c & 15) << 12 | (d[i++] & 63) << 6 | (d[i++] & 63));
828
+ }
829
+ };
830
+ /**
831
+ * Converts a string into a Uint8Array for use with compression/decompression methods
832
+ * @param str The string to encode
833
+ * @param latin1 Whether or not to interpret the data as Latin-1. This should
834
+ * not need to be true unless decoding a binary string.
835
+ * @returns The string encoded in UTF-8/Latin-1 binary
836
+ */
837
+ function strToU8(str, latin1) {
838
+ if (latin1) {
839
+ var ar_1 = new u8(str.length);
840
+ for (var i = 0; i < str.length; ++i)
841
+ ar_1[i] = str.charCodeAt(i);
842
+ return ar_1;
843
+ }
844
+ if (te)
845
+ return te.encode(str);
846
+ var l = str.length;
847
+ var ar = new u8(str.length + (str.length >> 1));
848
+ var ai = 0;
849
+ var w = function (v) { ar[ai++] = v; };
850
+ for (var i = 0; i < l; ++i) {
851
+ if (ai + 5 > ar.length) {
852
+ var n = new u8(ai + 8 + ((l - i) << 1));
853
+ n.set(ar);
854
+ ar = n;
855
+ }
856
+ var c = str.charCodeAt(i);
857
+ if (c < 128 || latin1)
858
+ w(c);
859
+ else if (c < 2048)
860
+ w(192 | (c >> 6)), w(128 | (c & 63));
861
+ else if (c > 55295 && c < 57344)
862
+ c = 65536 + (c & 1023 << 10) | (str.charCodeAt(++i) & 1023),
863
+ w(240 | (c >> 18)), w(128 | ((c >> 12) & 63)), w(128 | ((c >> 6) & 63)), w(128 | (c & 63));
864
+ else
865
+ w(224 | (c >> 12)), w(128 | ((c >> 6) & 63)), w(128 | (c & 63));
866
+ }
867
+ return slc(ar, 0, ai);
868
+ }
869
+ /**
870
+ * Converts a Uint8Array to a string
871
+ * @param dat The data to decode to string
872
+ * @param latin1 Whether or not to interpret the data as Latin-1. This should
873
+ * not need to be true unless encoding to binary string.
874
+ * @returns The original UTF-8/Latin-1 string
875
+ */
876
+ function strFromU8(dat, latin1) {
877
+ if (latin1) {
878
+ var r = '';
879
+ for (var i = 0; i < dat.length; i += 16384)
880
+ r += String.fromCharCode.apply(null, dat.subarray(i, i + 16384));
881
+ return r;
882
+ }
883
+ else if (td) {
884
+ return td.decode(dat);
885
+ }
886
+ else {
887
+ var _a = dutf8(dat), s = _a.s, r = _a.r;
888
+ if (r.length)
889
+ err(8);
890
+ return s;
891
+ }
892
+ }
893
+
894
+ function debounce(fn, n = 100) {
895
+ let handle;
896
+ return (...args) => {
897
+ if (handle) clearTimeout(handle);
898
+ handle = setTimeout(() => {
899
+ fn(...args);
900
+ }, n);
901
+ };
902
+ }
903
+ function utoa(data) {
904
+ const buffer = strToU8(data);
905
+ const zipped = zlibSync(buffer, { level: 9 });
906
+ const binary = strFromU8(zipped, true);
907
+ return btoa(binary);
908
+ }
909
+ function atou(base64) {
910
+ const binary = atob(base64);
911
+ if (binary.startsWith("xÚ")) {
912
+ const buffer = strToU8(binary, true);
913
+ const unzipped = unzlibSync(buffer);
914
+ return strFromU8(unzipped);
915
+ }
916
+ return decodeURIComponent(escape(binary));
917
+ }
918
+ function useRouteQuery(name, defaultValue, reload = false) {
919
+ const searchParams = new URLSearchParams(location.search);
920
+ const data = searchParams.get(name);
921
+ const value = ref(data || defaultValue);
922
+ return computed({
923
+ get() {
924
+ return value.value === "true" ? true : value.value === "false" ? false : value.value;
925
+ },
926
+ set(v) {
927
+ const searchParams2 = new URLSearchParams(location.search);
928
+ if (v === defaultValue) {
929
+ searchParams2.delete(name);
930
+ } else {
931
+ searchParams2.set(name + "", v);
932
+ }
933
+ const url = `${location.pathname}${searchParams2.size ? "?" : ""}${searchParams2.toString()}`;
934
+ if (reload) location.replace(url);
935
+ else history.replaceState({}, "", url + location.hash);
936
+ value.value = v;
937
+ }
938
+ });
939
+ }
940
+ const esmRE = /(?<=from\s+['"])(?!http|\.|\/)[^'"]+(?=['"])/;
941
+ function addEsmPrefix(code, importMap) {
942
+ const match = code.match(esmRE);
943
+ if (match) {
944
+ if (importMap?.imports?.[match[0]]) {
945
+ code = code.slice(0, match.index) + importMap.imports[match[0]] + code.slice(match.index + match[0].length);
946
+ } else {
947
+ code = code.slice(0, match.index) + "https://esm.sh/" + code.slice(match.index);
948
+ }
949
+ return addEsmPrefix(code, importMap);
950
+ }
951
+ return code;
952
+ }
953
+
954
+ export { injectKeyProps as a, addEsmPrefix as b, utoa as c, atou as d, debounce as e, injectKeyPreviewRef as i, useRouteQuery as u };