@manyducks.co/dolla 2.0.0-alpha.59 → 2.0.0-alpha.60
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/core/context.d.ts +2 -18
- package/dist/core/index.d.ts +3 -4
- package/dist/core/logger.d.ts +5 -2
- package/dist/core/markup.d.ts +47 -21
- package/dist/core/mount.d.ts +2 -2
- package/dist/core/nodes/dom.d.ts +4 -4
- package/dist/core/nodes/dynamic.d.ts +4 -4
- package/dist/core/nodes/html.d.ts +4 -5
- package/dist/core/nodes/portal.d.ts +3 -3
- package/dist/core/nodes/repeat.d.ts +3 -3
- package/dist/core/nodes/view.d.ts +8 -3
- package/dist/core/symbols.d.ts +2 -2
- package/dist/core/views/default-crash-view.d.ts +1 -12
- package/dist/http.js +1 -1
- package/dist/i18n.js +2 -2
- package/dist/index.js +38 -37
- package/dist/index.js.map +1 -1
- package/dist/jsx-dev-runtime.js +1 -1
- package/dist/jsx-dev-runtime.js.map +1 -1
- package/dist/jsx-runtime.js +1 -1
- package/dist/jsx-runtime.js.map +1 -1
- package/dist/{logger-Ck_9LCem.js → logger-MPwl-Xqu.js} +70 -62
- package/dist/logger-MPwl-Xqu.js.map +1 -0
- package/dist/{markup-BBa4WBj1.js → markup-BGlfQYQk.js} +302 -325
- package/dist/markup-BGlfQYQk.js.map +1 -0
- package/dist/router/router.d.ts +12 -5
- package/dist/router-BpuJQ6OA.js +516 -0
- package/dist/router-BpuJQ6OA.js.map +1 -0
- package/dist/router.js +1 -1
- package/dist/{typeChecking-BJ-ymQ2F.js → typeChecking-CbltMOUt.js} +2 -1
- package/dist/{typeChecking-BJ-ymQ2F.js.map → typeChecking-CbltMOUt.js.map} +1 -1
- package/dist/types.d.ts +11 -2
- package/dist/utils.d.ts +2 -0
- package/package.json +1 -1
- package/dist/core/app.d.ts +0 -17
- package/dist/logger-Ck_9LCem.js.map +0 -1
- package/dist/markup-BBa4WBj1.js.map +0 -1
- package/dist/router-CaR7Xd4T.js +0 -490
- package/dist/router-CaR7Xd4T.js.map +0 -1
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { t as
|
|
2
|
-
var
|
|
1
|
+
import { t as N, c as v, b as Z } from "./typeChecking-CbltMOUt.js";
|
|
2
|
+
var V;
|
|
3
3
|
(function(e) {
|
|
4
4
|
e[e.None = 0] = "None", e[e.Mutable = 1] = "Mutable", e[e.Watching = 2] = "Watching", e[e.RecursedCheck = 4] = "RecursedCheck", e[e.Recursed = 8] = "Recursed", e[e.Dirty = 16] = "Dirty", e[e.Pending = 32] = "Pending";
|
|
5
|
-
})(
|
|
5
|
+
})(V || (V = {}));
|
|
6
6
|
function R({ update: e, notify: t, unwatched: s }) {
|
|
7
7
|
return {
|
|
8
8
|
link: n,
|
|
@@ -24,7 +24,7 @@ function R({ update: e, notify: t, unwatched: s }) {
|
|
|
24
24
|
return;
|
|
25
25
|
}
|
|
26
26
|
const o = r.subsTail;
|
|
27
|
-
if (o !== void 0 && o.sub === f && (!c ||
|
|
27
|
+
if (o !== void 0 && o.sub === f && (!c || A(o, f)))
|
|
28
28
|
return;
|
|
29
29
|
const a = f.depsTail = r.subsTail = {
|
|
30
30
|
dep: r,
|
|
@@ -45,7 +45,7 @@ function R({ update: e, notify: t, unwatched: s }) {
|
|
|
45
45
|
e: do {
|
|
46
46
|
const i = r.sub;
|
|
47
47
|
let c = i.flags;
|
|
48
|
-
if (c & 3 && (c & 60 ? c & 12 ? c & 4 ? !(c & 48) &&
|
|
48
|
+
if (c & 3 && (c & 60 ? c & 12 ? c & 4 ? !(c & 48) && A(r, i) ? (i.flags = c | 40, c &= 1) : c = 0 : i.flags = c & -9 | 32 : c = 0 : i.flags = c | 32, c & 2 && t(i), c & 1)) {
|
|
49
49
|
const o = i.subs;
|
|
50
50
|
if (o !== void 0) {
|
|
51
51
|
r = o, o.nextSub !== void 0 && (l = { value: f, prev: l }, f = r.nextSub);
|
|
@@ -96,10 +96,10 @@ function R({ update: e, notify: t, unwatched: s }) {
|
|
|
96
96
|
}
|
|
97
97
|
for (; i; ) {
|
|
98
98
|
--i;
|
|
99
|
-
const b = f.subs,
|
|
100
|
-
if (
|
|
99
|
+
const b = f.subs, L = b.nextSub !== void 0;
|
|
100
|
+
if (L ? (r = l.value, l = l.prev) : r = b, a) {
|
|
101
101
|
if (e(f)) {
|
|
102
|
-
|
|
102
|
+
L && w(b), f = r.sub;
|
|
103
103
|
continue;
|
|
104
104
|
}
|
|
105
105
|
} else
|
|
@@ -119,7 +119,7 @@ function R({ update: e, notify: t, unwatched: s }) {
|
|
|
119
119
|
(i & 48) === 32 && (f.flags = i | 16, i & 2 && t(f)), r = l;
|
|
120
120
|
} while (r !== void 0);
|
|
121
121
|
}
|
|
122
|
-
function
|
|
122
|
+
function A(r, f) {
|
|
123
123
|
const l = f.depsTail;
|
|
124
124
|
if (l !== void 0) {
|
|
125
125
|
let i = f.deps;
|
|
@@ -140,13 +140,13 @@ let D = 1;
|
|
|
140
140
|
function le() {
|
|
141
141
|
return D = D % Number.MAX_SAFE_INTEGER + 1, D.toString(36) + Date.now().toString(36);
|
|
142
142
|
}
|
|
143
|
-
function
|
|
143
|
+
function z(e, t) {
|
|
144
144
|
return Object.is(e, t);
|
|
145
145
|
}
|
|
146
146
|
function ce(e, t) {
|
|
147
147
|
if (Object.is(e, t)) return !0;
|
|
148
|
-
const s =
|
|
149
|
-
if (s !==
|
|
148
|
+
const s = N(e);
|
|
149
|
+
if (s !== N(t))
|
|
150
150
|
return !1;
|
|
151
151
|
switch (s) {
|
|
152
152
|
case "object":
|
|
@@ -220,6 +220,12 @@ function oe(e, t) {
|
|
|
220
220
|
e.includes(n) || (s[n] = t[n]);
|
|
221
221
|
return s;
|
|
222
222
|
}
|
|
223
|
+
function ae(e) {
|
|
224
|
+
return Array.isArray(e) ? e : [e];
|
|
225
|
+
}
|
|
226
|
+
function de(e) {
|
|
227
|
+
return e.replace(/-./g, (t) => t[1].toUpperCase());
|
|
228
|
+
}
|
|
223
229
|
function ee(e) {
|
|
224
230
|
let t = 0;
|
|
225
231
|
for (let s = 0; s < e.length; s++)
|
|
@@ -248,11 +254,11 @@ function M(e) {
|
|
|
248
254
|
return !(d.some((p) => p(n)) || u.length > 0 && !u.some((p) => p(n)));
|
|
249
255
|
};
|
|
250
256
|
}
|
|
251
|
-
const T = [], { link:
|
|
257
|
+
const T = [], { link: E, unlink: O, propagate: te, checkDirty: $, endTracking: P, startTracking: W, shallowPropagate: I } = R({
|
|
252
258
|
update(e) {
|
|
253
|
-
return "getter" in e ? B(e) :
|
|
259
|
+
return "getter" in e ? B(e) : U(e, e.value);
|
|
254
260
|
},
|
|
255
|
-
notify:
|
|
261
|
+
notify: k,
|
|
256
262
|
unwatched(e) {
|
|
257
263
|
if ("getter" in e) {
|
|
258
264
|
let t = e.deps;
|
|
@@ -265,7 +271,7 @@ const T = [], { link: j, unlink: O, propagate: te, checkDirty: $, endTracking: P
|
|
|
265
271
|
} else "previousValue" in e || H.call(e);
|
|
266
272
|
}
|
|
267
273
|
});
|
|
268
|
-
let q = 0, S = 0,
|
|
274
|
+
let q = 0, S = 0, C = 0, g;
|
|
269
275
|
function h(e) {
|
|
270
276
|
const t = g;
|
|
271
277
|
return g = e, t;
|
|
@@ -280,18 +286,18 @@ function B(e) {
|
|
|
280
286
|
h(t), P(e);
|
|
281
287
|
}
|
|
282
288
|
}
|
|
283
|
-
function
|
|
289
|
+
function U(e, t) {
|
|
284
290
|
return e.flags = 1, !e.equals(e.previousValue, e.previousValue = t);
|
|
285
291
|
}
|
|
286
|
-
function
|
|
292
|
+
function k(e) {
|
|
287
293
|
const t = e.flags;
|
|
288
294
|
if (!(t & 64)) {
|
|
289
295
|
e.flags = t | 64;
|
|
290
296
|
const s = e.subs;
|
|
291
|
-
s !== void 0 ?
|
|
297
|
+
s !== void 0 ? k(s.sub) : T[C++] = e;
|
|
292
298
|
}
|
|
293
299
|
}
|
|
294
|
-
function
|
|
300
|
+
function G(e, t) {
|
|
295
301
|
if (t & 16 || t & 32 && $(e.deps, e)) {
|
|
296
302
|
const n = h(e);
|
|
297
303
|
W(e);
|
|
@@ -307,7 +313,7 @@ function U(e, t) {
|
|
|
307
313
|
let s = e.deps;
|
|
308
314
|
for (; s !== void 0; ) {
|
|
309
315
|
const n = s.dep, u = n.flags;
|
|
310
|
-
u & 64 &&
|
|
316
|
+
u & 64 && G(
|
|
311
317
|
n,
|
|
312
318
|
n.flags = u & -65
|
|
313
319
|
/* Queued */
|
|
@@ -315,15 +321,15 @@ function U(e, t) {
|
|
|
315
321
|
}
|
|
316
322
|
}
|
|
317
323
|
function X() {
|
|
318
|
-
for (; S <
|
|
324
|
+
for (; S < C; ) {
|
|
319
325
|
const e = T[S];
|
|
320
|
-
T[S++] = void 0,
|
|
326
|
+
T[S++] = void 0, G(
|
|
321
327
|
e,
|
|
322
328
|
e.flags &= -65
|
|
323
329
|
/* Queued */
|
|
324
330
|
);
|
|
325
331
|
}
|
|
326
|
-
S = 0,
|
|
332
|
+
S = 0, C = 0;
|
|
327
333
|
}
|
|
328
334
|
function ne() {
|
|
329
335
|
const e = this.flags;
|
|
@@ -333,23 +339,23 @@ function ne() {
|
|
|
333
339
|
t !== void 0 && I(t);
|
|
334
340
|
}
|
|
335
341
|
} else e & 32 && (this.flags = e & -33);
|
|
336
|
-
return g !== void 0 &&
|
|
342
|
+
return g !== void 0 && E(this, g), this.value;
|
|
337
343
|
}
|
|
338
344
|
function re(...e) {
|
|
339
345
|
if (e.length) {
|
|
340
346
|
let t = e[0];
|
|
341
|
-
if (v(t) && (t =
|
|
347
|
+
if (v(t) && (t = j(t(this.value))), !this.equals(this.value, t)) {
|
|
342
348
|
this.value = t, this.flags = 17;
|
|
343
349
|
const s = this.subs;
|
|
344
350
|
s !== void 0 && (te(s), q || X());
|
|
345
351
|
}
|
|
346
352
|
} else {
|
|
347
353
|
const t = this.value;
|
|
348
|
-
if (this.flags & 16 &&
|
|
354
|
+
if (this.flags & 16 && U(this, t)) {
|
|
349
355
|
const s = this.subs;
|
|
350
356
|
s !== void 0 && I(s);
|
|
351
357
|
}
|
|
352
|
-
return g !== void 0 &&
|
|
358
|
+
return g !== void 0 && E(this, g), t;
|
|
353
359
|
}
|
|
354
360
|
}
|
|
355
361
|
function H() {
|
|
@@ -359,7 +365,7 @@ function H() {
|
|
|
359
365
|
const t = this.subs;
|
|
360
366
|
t !== void 0 && O(t), this.flags = 0, "cleanup" in this && this.cleanup != null && this.cleanup();
|
|
361
367
|
}
|
|
362
|
-
function
|
|
368
|
+
function pe(e) {
|
|
363
369
|
++q, e(), --q || X();
|
|
364
370
|
}
|
|
365
371
|
function se(e) {
|
|
@@ -370,10 +376,10 @@ function se(e) {
|
|
|
370
376
|
} else
|
|
371
377
|
return e;
|
|
372
378
|
}
|
|
373
|
-
function
|
|
379
|
+
function j(e) {
|
|
374
380
|
return v(e) ? e() : e;
|
|
375
381
|
}
|
|
376
|
-
function
|
|
382
|
+
function ge(e) {
|
|
377
383
|
var n;
|
|
378
384
|
const t = {
|
|
379
385
|
fn: e,
|
|
@@ -383,7 +389,7 @@ function de(e) {
|
|
|
383
389
|
depsTail: void 0,
|
|
384
390
|
flags: 2
|
|
385
391
|
};
|
|
386
|
-
g !== void 0 &&
|
|
392
|
+
g !== void 0 && E(t, g);
|
|
387
393
|
const s = h(t);
|
|
388
394
|
try {
|
|
389
395
|
(n = t.cleanup) == null || n.call(t);
|
|
@@ -394,7 +400,7 @@ function de(e) {
|
|
|
394
400
|
}
|
|
395
401
|
return H.bind(t);
|
|
396
402
|
}
|
|
397
|
-
function
|
|
403
|
+
function he(e, t) {
|
|
398
404
|
return v(e) ? ne.bind({
|
|
399
405
|
value: void 0,
|
|
400
406
|
subs: void 0,
|
|
@@ -403,13 +409,13 @@ function pe(e, t) {
|
|
|
403
409
|
depsTail: void 0,
|
|
404
410
|
flags: 17,
|
|
405
411
|
getter: function() {
|
|
406
|
-
return
|
|
412
|
+
return j(e.call(this));
|
|
407
413
|
},
|
|
408
|
-
equals: (t == null ? void 0 : t.equals) ??
|
|
414
|
+
equals: (t == null ? void 0 : t.equals) ?? z
|
|
409
415
|
}) : re.bind({
|
|
410
416
|
previousValue: e,
|
|
411
417
|
value: e,
|
|
412
|
-
equals: (t == null ? void 0 : t.equals) ??
|
|
418
|
+
equals: (t == null ? void 0 : t.equals) ?? z,
|
|
413
419
|
subs: void 0,
|
|
414
420
|
subsTail: void 0,
|
|
415
421
|
flags: 1
|
|
@@ -419,24 +425,24 @@ let J = "production";
|
|
|
419
425
|
function ue() {
|
|
420
426
|
return J;
|
|
421
427
|
}
|
|
422
|
-
function
|
|
428
|
+
function ve(e) {
|
|
423
429
|
J = e;
|
|
424
430
|
}
|
|
425
|
-
let
|
|
431
|
+
let y = {
|
|
426
432
|
info: "development",
|
|
427
433
|
log: "development",
|
|
428
434
|
warn: "development",
|
|
429
435
|
error: !0
|
|
430
|
-
}, K = M("*,-dolla.*"),
|
|
431
|
-
function
|
|
432
|
-
return
|
|
433
|
-
|
|
436
|
+
}, K = M("*,-dolla.*"), x = [], _ = !1;
|
|
437
|
+
function be(e) {
|
|
438
|
+
return x.push(e), function() {
|
|
439
|
+
x.splice(x.indexOf(e), 1);
|
|
434
440
|
};
|
|
435
441
|
}
|
|
436
|
-
function
|
|
442
|
+
function Se(e, t) {
|
|
437
443
|
const s = (t == null ? void 0 : t.console) ?? fe(), n = (u) => {
|
|
438
444
|
let d = se(e);
|
|
439
|
-
if (
|
|
445
|
+
if (y[u] === !1 || Z(y[u]) && y[u] !== ue() || !K(d))
|
|
440
446
|
return F;
|
|
441
447
|
{
|
|
442
448
|
let p = `%c${d}`;
|
|
@@ -464,15 +470,15 @@ function ve(e, t) {
|
|
|
464
470
|
return n("error");
|
|
465
471
|
},
|
|
466
472
|
crash(u) {
|
|
467
|
-
if (!
|
|
468
|
-
|
|
473
|
+
if (!_) {
|
|
474
|
+
_ = !0;
|
|
469
475
|
const d = {
|
|
470
476
|
error: u,
|
|
471
|
-
loggerName:
|
|
477
|
+
loggerName: j(e),
|
|
472
478
|
tag: t == null ? void 0 : t.tag,
|
|
473
479
|
tagName: t == null ? void 0 : t.tagName
|
|
474
480
|
};
|
|
475
|
-
for (const p of
|
|
481
|
+
for (const p of x)
|
|
476
482
|
p(d);
|
|
477
483
|
throw u;
|
|
478
484
|
}
|
|
@@ -480,13 +486,13 @@ function ve(e, t) {
|
|
|
480
486
|
}
|
|
481
487
|
};
|
|
482
488
|
}
|
|
483
|
-
function
|
|
489
|
+
function ye(e) {
|
|
484
490
|
K = M(e);
|
|
485
491
|
}
|
|
486
|
-
function
|
|
492
|
+
function xe(e) {
|
|
487
493
|
for (const t in e) {
|
|
488
494
|
const s = e[t];
|
|
489
|
-
s && (
|
|
495
|
+
s && (y[t] = s);
|
|
490
496
|
}
|
|
491
497
|
}
|
|
492
498
|
function fe() {
|
|
@@ -496,21 +502,23 @@ function fe() {
|
|
|
496
502
|
return global.console;
|
|
497
503
|
}
|
|
498
504
|
export {
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
505
|
+
he as $,
|
|
506
|
+
z as a,
|
|
507
|
+
pe as b,
|
|
502
508
|
ue as c,
|
|
503
509
|
m as d,
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
+
ge as e,
|
|
511
|
+
ve as f,
|
|
512
|
+
j as g,
|
|
513
|
+
Se as h,
|
|
514
|
+
ye as i,
|
|
515
|
+
xe as j,
|
|
510
516
|
le as k,
|
|
511
517
|
oe as l,
|
|
512
|
-
|
|
518
|
+
de as m,
|
|
519
|
+
be as o,
|
|
513
520
|
ce as s,
|
|
521
|
+
ae as t,
|
|
514
522
|
se as u
|
|
515
523
|
};
|
|
516
|
-
//# sourceMappingURL=logger-
|
|
524
|
+
//# sourceMappingURL=logger-MPwl-Xqu.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger-MPwl-Xqu.js","sources":["../node_modules/alien-signals/esm/system.mjs","../src/utils.ts","../src/core/signals.ts","../src/core/env.ts","../src/core/logger.ts"],"sourcesContent":["export var ReactiveFlags;\n(function (ReactiveFlags) {\n ReactiveFlags[ReactiveFlags[\"None\"] = 0] = \"None\";\n ReactiveFlags[ReactiveFlags[\"Mutable\"] = 1] = \"Mutable\";\n ReactiveFlags[ReactiveFlags[\"Watching\"] = 2] = \"Watching\";\n ReactiveFlags[ReactiveFlags[\"RecursedCheck\"] = 4] = \"RecursedCheck\";\n ReactiveFlags[ReactiveFlags[\"Recursed\"] = 8] = \"Recursed\";\n ReactiveFlags[ReactiveFlags[\"Dirty\"] = 16] = \"Dirty\";\n ReactiveFlags[ReactiveFlags[\"Pending\"] = 32] = \"Pending\";\n})(ReactiveFlags || (ReactiveFlags = {}));\nexport function createReactiveSystem({ update, notify, unwatched, }) {\n return {\n link,\n unlink,\n propagate,\n checkDirty,\n endTracking,\n startTracking,\n shallowPropagate,\n };\n function link(dep, sub) {\n const prevDep = sub.depsTail;\n if (prevDep !== undefined && prevDep.dep === dep) {\n return;\n }\n let nextDep = undefined;\n const recursedCheck = sub.flags & 4;\n if (recursedCheck) {\n nextDep = prevDep !== undefined ? prevDep.nextDep : sub.deps;\n if (nextDep !== undefined && nextDep.dep === dep) {\n sub.depsTail = nextDep;\n return;\n }\n }\n const prevSub = dep.subsTail;\n if (prevSub !== undefined\n && prevSub.sub === sub\n && (!recursedCheck || isValidLink(prevSub, sub))) {\n return;\n }\n const newLink = sub.depsTail\n = dep.subsTail\n = {\n dep,\n sub,\n prevDep,\n nextDep,\n prevSub,\n nextSub: undefined,\n };\n if (nextDep !== undefined) {\n nextDep.prevDep = newLink;\n }\n if (prevDep !== undefined) {\n prevDep.nextDep = newLink;\n }\n else {\n sub.deps = newLink;\n }\n if (prevSub !== undefined) {\n prevSub.nextSub = newLink;\n }\n else {\n dep.subs = newLink;\n }\n }\n function unlink(link, sub = link.sub) {\n const dep = link.dep;\n const prevDep = link.prevDep;\n const nextDep = link.nextDep;\n const nextSub = link.nextSub;\n const prevSub = link.prevSub;\n if (nextDep !== undefined) {\n nextDep.prevDep = prevDep;\n }\n else {\n sub.depsTail = prevDep;\n }\n if (prevDep !== undefined) {\n prevDep.nextDep = nextDep;\n }\n else {\n sub.deps = nextDep;\n }\n if (nextSub !== undefined) {\n nextSub.prevSub = prevSub;\n }\n else {\n dep.subsTail = prevSub;\n }\n if (prevSub !== undefined) {\n prevSub.nextSub = nextSub;\n }\n else if ((dep.subs = nextSub) === undefined) {\n unwatched(dep);\n }\n return nextDep;\n }\n function propagate(link) {\n let next = link.nextSub;\n let stack;\n top: do {\n const sub = link.sub;\n let flags = sub.flags;\n if (flags & 3) {\n if (!(flags & 60)) {\n sub.flags = flags | 32;\n }\n else if (!(flags & 12)) {\n flags = 0;\n }\n else if (!(flags & 4)) {\n sub.flags = (flags & ~8) | 32;\n }\n else if (!(flags & 48) && isValidLink(link, sub)) {\n sub.flags = flags | 40;\n flags &= 1;\n }\n else {\n flags = 0;\n }\n if (flags & 2) {\n notify(sub);\n }\n if (flags & 1) {\n const subSubs = sub.subs;\n if (subSubs !== undefined) {\n link = subSubs;\n if (subSubs.nextSub !== undefined) {\n stack = { value: next, prev: stack };\n next = link.nextSub;\n }\n continue;\n }\n }\n }\n if ((link = next) !== undefined) {\n next = link.nextSub;\n continue;\n }\n while (stack !== undefined) {\n link = stack.value;\n stack = stack.prev;\n if (link !== undefined) {\n next = link.nextSub;\n continue top;\n }\n }\n break;\n } while (true);\n }\n function startTracking(sub) {\n sub.depsTail = undefined;\n sub.flags = (sub.flags & ~56) | 4;\n }\n function endTracking(sub) {\n const depsTail = sub.depsTail;\n let toRemove = depsTail !== undefined ? depsTail.nextDep : sub.deps;\n while (toRemove !== undefined) {\n toRemove = unlink(toRemove, sub);\n }\n sub.flags &= ~4;\n }\n function checkDirty(link, sub) {\n let stack;\n let checkDepth = 0;\n top: do {\n const dep = link.dep;\n const depFlags = dep.flags;\n let dirty = false;\n if (sub.flags & 16) {\n dirty = true;\n }\n else if ((depFlags & 17) === 17) {\n if (update(dep)) {\n const subs = dep.subs;\n if (subs.nextSub !== undefined) {\n shallowPropagate(subs);\n }\n dirty = true;\n }\n }\n else if ((depFlags & 33) === 33) {\n if (link.nextSub !== undefined || link.prevSub !== undefined) {\n stack = { value: link, prev: stack };\n }\n link = dep.deps;\n sub = dep;\n ++checkDepth;\n continue;\n }\n if (!dirty && link.nextDep !== undefined) {\n link = link.nextDep;\n continue;\n }\n while (checkDepth) {\n --checkDepth;\n const firstSub = sub.subs;\n const hasMultipleSubs = firstSub.nextSub !== undefined;\n if (hasMultipleSubs) {\n link = stack.value;\n stack = stack.prev;\n }\n else {\n link = firstSub;\n }\n if (dirty) {\n if (update(sub)) {\n if (hasMultipleSubs) {\n shallowPropagate(firstSub);\n }\n sub = link.sub;\n continue;\n }\n }\n else {\n sub.flags &= ~32;\n }\n sub = link.sub;\n if (link.nextDep !== undefined) {\n link = link.nextDep;\n continue top;\n }\n dirty = false;\n }\n return dirty;\n } while (true);\n }\n function shallowPropagate(link) {\n do {\n const sub = link.sub;\n const nextSub = link.nextSub;\n const subFlags = sub.flags;\n if ((subFlags & 48) === 32) {\n sub.flags = subFlags | 16;\n if (subFlags & 2) {\n notify(sub);\n }\n }\n link = nextSub;\n } while (link !== undefined);\n }\n function isValidLink(checkLink, sub) {\n const depsTail = sub.depsTail;\n if (depsTail !== undefined) {\n let link = sub.deps;\n do {\n if (link === checkLink) {\n return true;\n }\n if (link === depsTail) {\n break;\n }\n link = link.nextDep;\n } while (link !== undefined);\n }\n return false;\n }\n}\n","import { isFunction, isObject, typeOf } from \"./typeChecking.js\";\n\nexport const noOp = () => {};\n\n// Guarantee unique ID by incrementing a global counter.\nlet idCounter = 1;\nexport function getUniqueId(): string {\n idCounter = (idCounter % Number.MAX_SAFE_INTEGER) + 1;\n return idCounter.toString(36) + Date.now().toString(36);\n}\n\n/*=============================*\\\n|| Object Equality ||\n\\*=============================*/\n\n/**\n * Equality check that passes if both values are the same object.\n * This is the default equality check for states.\n */\nexport function strictEqual(a: any, b: any): boolean {\n return Object.is(a, b);\n}\n\n/**\n * Equality check that passes if both values are the same object, or if both are objects or arrays with equal keys and values.\n */\nexport function shallowEqual(a: any, b: any): boolean {\n if (Object.is(a, b)) return true;\n\n // Must be same type\n const t = typeOf(a);\n if (t !== typeOf(b)) {\n return false;\n }\n\n switch (t) {\n case \"object\":\n // Objects must have same number of keys with strict equal values\n let size = 0;\n for (const key in a) {\n if (a[key] !== b[key]) return false;\n size++;\n }\n return Object.keys(b).length === size;\n case \"array\":\n // Arrays must be the same length with strict equal values\n if (a.length !== b.length) return false;\n for (let i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) return false;\n }\n return true;\n case \"map\":\n if (a.size !== b.size) return false;\n for (const key of a.keys()) {\n if (a[key] !== b[key]) return false;\n }\n return true;\n case \"set\":\n if (isFunction(a.symmetricDifference)) {\n return a.symmetricDifference(b).size === 0;\n } else {\n for (const key of a.keys()) {\n if (a[key] !== b.get(key)) return false;\n }\n return true;\n }\n }\n\n return false;\n}\n\n/**\n * Equality check that passes if two objects have equal values, even if they are not the same object.\n */\n// NOTE: This code is https://github.com/epoberezkin/fast-deep-equal licensed under MIT.\n// I imported it because I couldn't get the old school module to play nice with my modern ES code as an external dependency.\nexport function deepEqual(a: any, b: any): boolean {\n if (a === b) return true;\n\n if (a && b && typeof a == \"object\" && typeof b == \"object\") {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0; ) if (!deepEqual(a[i], b[i])) return false;\n return true;\n }\n\n if (a instanceof Map && b instanceof Map) {\n if (a.size !== b.size) return false;\n for (i of a.entries()) if (!b.has(i[0])) return false;\n for (i of a.entries()) if (!deepEqual(i[1], b.get(i[0]))) return false;\n return true;\n }\n\n if (a instanceof Set && b instanceof Set) {\n if (a.size !== b.size) return false;\n for (i of a.entries()) if (!b.has(i[0])) return false;\n return true;\n }\n\n if (ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = (a as any).length;\n if (length != (b as any).length) return false;\n for (i = length; i-- !== 0; ) if ((a as any)[i] !== (b as any)[i]) return false;\n return true;\n }\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0; ) if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0; ) {\n var key = keys[i];\n\n if (!deepEqual(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n return a !== a && b !== b;\n}\n\n/*=============================*\\\n|| Object Utils ||\n\\*=============================*/\n\n/**\n * Takes an old value and a new value. Returns a merged copy if both are objects, otherwise returns the new value.\n */\nexport function merge(one: unknown, two: unknown) {\n if (isObject(one)) {\n if (!isObject(two)) {\n return two;\n }\n\n const merged = Object.assign({}, one) as any;\n\n for (const key in two) {\n merged[key] = merge(merged[key], two[key]);\n }\n\n return merged;\n } else {\n return two;\n }\n}\n\n/**\n * Returns a new object without the specified keys.\n * If called without object, returns a function that takes an object\n * and returns a version with the original keys omitted.\n *\n * @param keys - An array of keys to omit.\n * @param object - An object to clone without the omitted keys.\n */\nexport function omit<O extends Record<any, any>>(keys: (keyof O)[], object: O): Record<any, any> {\n const newObject: Record<any, any> = {};\n\n for (const key in object) {\n if (!keys.includes(key)) {\n newObject[key] = object[key];\n }\n }\n\n return newObject;\n}\n\n/*=============================*\\\n|| Misc Utils ||\n\\*=============================*/\n\nexport function toArray<T>(value: T | T[]): T[] {\n if (Array.isArray(value)) {\n return value;\n } else {\n return [value];\n }\n}\n\nexport function toCamelCase(s: string) {\n return s.replace(/-./g, (x) => x[1].toUpperCase());\n}\n\n/**\n * Takes any string and returns an OKLCH color.\n */\nexport function okhash(value: string) {\n let hue = 0;\n for (let i = 0; i < value.length; i++) {\n hue = (hue + value.charCodeAt(i) * 10) % 360;\n }\n return `oklch(0.68 0.15 ${hue}deg)`;\n}\n\nexport type MatcherFunction = (value: string) => boolean;\n\n/**\n * Parses a filter string into a matcher function.\n *\n * @param pattern - A string or regular expression that specifies a pattern for names of loggers whose messages you want to display.\n */\nexport function createMatcher(pattern: string | RegExp): MatcherFunction {\n if (pattern instanceof RegExp) {\n return (value: string) => pattern.test(value);\n }\n\n const matchers: Record<\"positive\" | \"negative\", MatcherFunction[]> = {\n positive: [],\n negative: [],\n };\n\n const parts = pattern\n .split(\",\")\n .map((p) => p.trim())\n .filter((p) => p !== \"\");\n\n for (let part of parts) {\n let section: \"positive\" | \"negative\" = \"positive\";\n\n if (part.startsWith(\"-\")) {\n section = \"negative\";\n part = part.slice(1);\n }\n\n if (part === \"*\") {\n matchers[section].push(function () {\n return true;\n });\n } else if (part.endsWith(\"*\")) {\n matchers[section].push(function (value) {\n return value.startsWith(part.slice(0, part.length - 1));\n });\n } else {\n matchers[section].push(function (value) {\n return value === part;\n });\n }\n }\n\n return function (name: string) {\n const { positive, negative } = matchers;\n\n // Matching any negative matcher disqualifies.\n if (negative.some((fn) => fn(name))) {\n return false;\n }\n\n // Matching at least one positive matcher is required if any are specified.\n if (positive.length > 0 && !positive.some((fn) => fn(name))) {\n return false;\n }\n\n return true;\n };\n}\n","import type { ReactiveFlags, ReactiveNode } from \"alien-signals\";\nimport { createReactiveSystem } from \"alien-signals/system\";\nimport { isFunction } from \"../typeChecking\";\nimport { strictEqual } from \"../utils\";\n\nconst enum EffectFlags {\n Queued = 1 << 6,\n}\n\ninterface EffectScope extends ReactiveNode {}\n\ninterface Effect extends ReactiveNode {\n fn(): void | (() => void);\n cleanup?: () => void;\n}\n\ninterface ComputedGetterState<T> {\n value?: T;\n}\n\ninterface Computed<T = any> extends ReactiveNode {\n value: T | undefined;\n getter: (this: ComputedGetterState<T>) => T;\n equals: EqualityFn<T>;\n}\n\ninterface Value<T = any> extends ReactiveNode {\n previousValue: T;\n value: T;\n equals: EqualityFn<T>;\n}\n\nconst queuedEffects: (Effect | EffectScope | undefined)[] = [];\nconst { link, unlink, propagate, checkDirty, endTracking, startTracking, shallowPropagate } = createReactiveSystem({\n update(signal: Value | Computed): boolean {\n if (\"getter\" in signal) {\n return updateComputed(signal);\n } else {\n return updateSignal(signal, signal.value);\n }\n },\n notify,\n unwatched(node: Value | Computed | Effect | EffectScope) {\n if (\"getter\" in node) {\n let toRemove = node.deps;\n if (toRemove !== undefined) {\n node.flags = 17 as ReactiveFlags.Mutable | ReactiveFlags.Dirty;\n do {\n toRemove = unlink(toRemove, node);\n } while (toRemove !== undefined);\n }\n } else if (!(\"previousValue\" in node)) {\n _effect.call(node);\n }\n },\n});\n\nlet batchDepth = 0;\n\nlet notifyIndex = 0;\nlet queuedEffectsLength = 0;\nlet activeSub: ReactiveNode | undefined;\nlet activeScope: EffectScope | undefined;\n\nfunction getCurrentSub(): ReactiveNode | undefined {\n return activeSub;\n}\n\nfunction setCurrentSub(sub: ReactiveNode | undefined) {\n const prevSub = activeSub;\n activeSub = sub;\n return prevSub;\n}\n\n// function getCurrentScope(): EffectScope | undefined {\n// return activeScope;\n// }\n\n// function setCurrentScope(scope: EffectScope | undefined) {\n// const prevScope = activeScope;\n// activeScope = scope;\n// return prevScope;\n// }\n\n// export function effectScope(fn: () => void): () => void {\n// const e: EffectScope = {\n// deps: undefined,\n// depsTail: undefined,\n// subs: undefined,\n// subsTail: undefined,\n// flags: 0 satisfies ReactiveFlags.None,\n// };\n// if (activeScope !== undefined) {\n// link(e, activeScope);\n// }\n// const prevSub = setCurrentSub(undefined);\n// const prevScope = setCurrentScope(e);\n// try {\n// fn();\n// } finally {\n// setCurrentScope(prevScope);\n// setCurrentSub(prevSub);\n// }\n// return effectOper.bind(e);\n// }\n\nfunction updateComputed(c: Computed): boolean {\n const prevSub = setCurrentSub(c);\n startTracking(c);\n try {\n const oldValue = c.value;\n const state: ComputedGetterState<any> = { value: c.value };\n // return oldValue !== (c.value = c.getter.call(state));\n return !c.equals(oldValue, (c.value = c.getter.call(state)));\n } finally {\n setCurrentSub(prevSub);\n endTracking(c);\n }\n}\n\nfunction updateSignal(s: Value, value: any): boolean {\n s.flags = 1 satisfies ReactiveFlags.Mutable;\n // return s.previousValue !== (s.previousValue = value);\n return !s.equals(s.previousValue, (s.previousValue = value));\n}\n\nfunction notify(e: Effect | EffectScope) {\n const flags = e.flags;\n if (!(flags & EffectFlags.Queued)) {\n e.flags = flags | EffectFlags.Queued;\n const subs = e.subs;\n if (subs !== undefined) {\n notify(subs.sub as Effect | EffectScope);\n } else {\n queuedEffects[queuedEffectsLength++] = e;\n }\n }\n}\n\nfunction run(e: Effect | EffectScope, flags: ReactiveFlags): void {\n if (\n flags & (16 satisfies ReactiveFlags.Dirty) ||\n (flags & (32 satisfies ReactiveFlags.Pending) && checkDirty(e.deps!, e))\n ) {\n const prev = setCurrentSub(e);\n startTracking(e);\n try {\n if (\"cleanup\" in e && e.cleanup !== undefined) {\n e.cleanup();\n }\n const result = (e as Effect).fn();\n if (\"cleanup\" in e && isFunction(result)) {\n e.cleanup = result;\n }\n } finally {\n setCurrentSub(prev);\n endTracking(e);\n }\n return;\n } else if (flags & (32 satisfies ReactiveFlags.Pending)) {\n e.flags = flags & ~(32 satisfies ReactiveFlags.Pending);\n }\n let link = e.deps;\n while (link !== undefined) {\n const dep = link.dep;\n const depFlags = dep.flags;\n if (depFlags & EffectFlags.Queued) {\n run(dep, (dep.flags = depFlags & ~EffectFlags.Queued));\n }\n link = link.nextDep;\n }\n}\n\nfunction flush(): void {\n while (notifyIndex < queuedEffectsLength) {\n const effect = queuedEffects[notifyIndex]!;\n queuedEffects[notifyIndex++] = undefined;\n run(effect, (effect.flags &= ~EffectFlags.Queued));\n }\n notifyIndex = 0;\n queuedEffectsLength = 0;\n}\n\nfunction _computed<T>(this: Computed<T>): T {\n const flags = this.flags;\n if (\n flags & (16 satisfies ReactiveFlags.Dirty) ||\n (flags & (32 satisfies ReactiveFlags.Pending) && checkDirty(this.deps!, this))\n ) {\n if (updateComputed(this)) {\n const subs = this.subs;\n if (subs !== undefined) {\n shallowPropagate(subs);\n }\n }\n } else if (flags & (32 satisfies ReactiveFlags.Pending)) {\n this.flags = flags & ~(32 satisfies ReactiveFlags.Pending);\n }\n if (activeSub !== undefined) {\n link(this, activeSub);\n } else if (activeScope !== undefined) {\n link(this, activeScope);\n }\n return this.value!;\n}\n\nfunction _source<T>(this: Value<T>, ...value: [T]): T | void {\n if (value.length) {\n let newValue = value[0];\n if (isFunction(newValue)) {\n newValue = get(newValue(this.value)) as T;\n }\n if (!this.equals(this.value, newValue)) {\n this.value = newValue;\n this.flags = 17 as ReactiveFlags.Mutable | ReactiveFlags.Dirty;\n const subs = this.subs;\n if (subs !== undefined) {\n propagate(subs);\n if (!batchDepth) {\n flush();\n }\n }\n }\n } else {\n const value = this.value;\n if (this.flags & (16 satisfies ReactiveFlags.Dirty)) {\n if (updateSignal(this, value)) {\n const subs = this.subs;\n if (subs !== undefined) {\n shallowPropagate(subs);\n }\n }\n }\n if (activeSub !== undefined) {\n link(this, activeSub);\n }\n return value;\n }\n}\n\nfunction _effect(this: Effect | EffectScope): void {\n let dep = this.deps;\n while (dep !== undefined) {\n dep = unlink(dep, this);\n }\n const sub = this.subs;\n if (sub !== undefined) {\n unlink(sub);\n }\n this.flags = 0 satisfies ReactiveFlags.None;\n\n if (\"cleanup\" in this && this.cleanup != null) {\n this.cleanup();\n }\n}\n\n/*===================================*\\\n|| API ||\n\\*===================================*/\n\n/* -------------- TYPES --------------- */\n\nconst SIGNAL = Symbol(\"SIGNAL\");\nconst SOURCE = Symbol(\"SOURCE\");\n\n/**\n * A getter that returns the current value held within the signal.\n * If called inside a trackable scope this signal will be tracked as a dependency.\n */\nexport interface Signal<T> {\n (): T;\n}\n\n/**\n * Extends Signal with the ability to pass a value or an updater function to change the Signal's value.\n */\nexport interface Source<T> extends Signal<T> {\n (value: T): void;\n (updater: (value: T) => T): void;\n}\n\nexport type MaybeSignal<T> = Signal<T> | T;\n\nexport type EqualityFn<T> = (current: T, next: T) => boolean;\nexport interface SignalOptions<T> {\n /**\n * A function to compare the current and next values. Returning `true` means the value has changed.\n */\n equals?: EqualityFn<T>;\n}\n\n/* -------------- PUBLIC API --------------- */\n\nexport function isSource<T>(value: MaybeSignal<T>): value is Source<T> {\n return isFunction(value) && (value as any)._type === SOURCE;\n}\n\nexport function batch(fn: () => void) {\n ++batchDepth;\n fn();\n if (!--batchDepth) flush();\n}\n\nexport function untracked<T>(value: MaybeSignal<T>): T {\n if (isFunction(value)) {\n let result: T;\n const pausedSub = setCurrentSub(undefined);\n result = value();\n setCurrentSub(pausedSub);\n return result;\n } else {\n return value;\n }\n}\n\nexport function get<T>(value: MaybeSignal<T>) {\n if (isFunction(value)) {\n return (value as () => T)();\n } else {\n return value;\n }\n}\n\n/**\n * Function to be invoked for the effect. Can return an optional cleanup function to be called between invocations.\n */\nexport type EffectFn = () => void | (() => void);\n\nexport type UnsubscribeFn = () => void;\n\n/**\n * Creates a tracked scope that re-runs whenever the values of any tracked reactives changes.\n * Reactives are tracked by accessing their `value` within the body of the function.\n *\n * NOTE: You must call the unsubscribe function to stop watching for changes.\n * If you are using an effect inside a View or Store, use `ctx.effect` instead, which cleans up automatically when the component unmounts.\n */\nexport function effect(fn: EffectFn): UnsubscribeFn {\n const e: Effect = {\n fn,\n subs: undefined,\n subsTail: undefined,\n deps: undefined,\n depsTail: undefined,\n flags: 2 satisfies ReactiveFlags.Watching,\n };\n if (activeSub !== undefined) {\n link(e, activeSub);\n } else if (activeScope !== undefined) {\n link(e, activeScope);\n }\n const prev = setCurrentSub(e);\n try {\n e.cleanup?.();\n const result = e.fn();\n e.cleanup = isFunction(result) ? result : undefined;\n } finally {\n setCurrentSub(prev);\n }\n return _effect.bind(e);\n}\n\nexport function $<T>(compute: (previousValue: T) => MaybeSignal<T>, options?: SignalOptions<T>): Signal<T>;\nexport function $<T>(value: T, options?: SignalOptions<T>): Source<T>;\nexport function $<T>(value: undefined, options?: SignalOptions<T>): Source<T | undefined>;\nexport function $<T>(): Source<T | undefined>;\n\nexport function $<T>(init?: ((previousValue: T) => MaybeSignal<T>) | T, options?: SignalOptions<T>) {\n if (isFunction(init)) {\n return _computed.bind({\n value: undefined,\n subs: undefined,\n subsTail: undefined,\n deps: undefined,\n depsTail: undefined,\n flags: 17 as ReactiveFlags.Mutable | ReactiveFlags.Dirty,\n getter: function (this: ComputedGetterState<any>) {\n return get(init.call(this));\n },\n equals: (options?.equals as EqualityFn<unknown>) ?? strictEqual,\n }) as () => T;\n } else {\n return _source.bind({\n previousValue: init,\n value: init,\n equals: (options?.equals as EqualityFn<unknown>) ?? strictEqual,\n subs: undefined,\n subsTail: undefined,\n flags: 1 satisfies ReactiveFlags.Mutable,\n }) as () => T | undefined;\n }\n}\n","import type { Env } from \"../types\";\n\nlet currentEnv = \"production\";\n\nexport function getEnv() {\n return currentEnv;\n}\n\nexport function setEnv(value: Env) {\n currentEnv = value;\n}\n","import { isString } from \"../typeChecking.js\";\nimport type { Env } from \"../types.js\";\nimport { createMatcher, noOp, okhash, type MatcherFunction } from \"../utils.js\";\nimport { getEnv } from \"./env.js\";\nimport { get, untracked, type MaybeSignal } from \"./signals.js\";\n\nexport interface LogLevels {\n info: boolean | Env;\n log: boolean | Env;\n warn: boolean | Env;\n error: boolean | Env;\n}\n\nexport interface Logger {\n info(...args: any[]): void;\n log(...args: any[]): void;\n warn(...args: any[]): void;\n error(...args: any[]): void;\n crash(error: Error): Error;\n}\n\nexport interface LoggerOptions {\n /**\n * Tag value to print with logs.\n */\n tag?: string;\n\n /**\n * Label for tag value. Will be printed without a label if not specified.\n */\n tagName?: string;\n\n /**\n * Console object to use for logging (mostly for testing). Uses window.console by default.\n */\n console?: any;\n}\n\nexport interface LoggerCrashProps {\n error: Error;\n loggerName: string;\n tag?: string;\n tagName?: string;\n}\n\nlet levels: LogLevels = {\n info: \"development\",\n log: \"development\",\n warn: \"development\",\n error: true,\n};\nlet match: MatcherFunction = createMatcher(\"*,-dolla.*\");\nlet crashListeners: ((context: LoggerCrashProps) => void)[] = [];\nlet isCrashed = false;\n\n/**\n * Listen for logged crashes.\n */\nexport function onLoggerCrash(listener: (context: LoggerCrashProps) => void) {\n crashListeners.push(listener);\n\n return function cancel() {\n crashListeners.splice(crashListeners.indexOf(listener), 1);\n };\n}\n\nexport function createLogger(name: MaybeSignal<string>, options?: LoggerOptions): Logger {\n const _console = options?.console ?? _getDefaultConsole();\n\n const bind = (method: keyof LogLevels) => {\n let _name = untracked(name);\n if (levels[method] === false || (isString(levels[method]) && levels[method] !== getEnv()) || !match(_name)) {\n return noOp;\n } else {\n let label = `%c${_name}`;\n if (options?.tag) {\n if (options.tagName) {\n label += ` %c[${options.tagName}: %c${options.tag}%c]`;\n } else {\n label += ` %c[%c${options.tag}%c]`;\n }\n } else {\n label += `%c%c%c`;\n }\n return _console[method].bind(\n _console,\n label,\n `color:${okhash(label)};font-weight:bold`,\n `color:#777`,\n `color:#aaa`,\n `color:#777`,\n );\n }\n };\n\n return {\n get info() {\n return bind(\"info\");\n },\n get log() {\n return bind(\"log\");\n },\n get warn() {\n return bind(\"warn\");\n },\n get error() {\n return bind(\"error\");\n },\n crash(error: Error) {\n if (!isCrashed) {\n isCrashed = true;\n const ctx: LoggerCrashProps = {\n error,\n loggerName: get(name),\n tag: options?.tag,\n tagName: options?.tagName,\n };\n\n for (const listener of crashListeners) {\n listener(ctx);\n }\n\n throw error;\n }\n\n return error;\n },\n };\n}\n\nexport function setLogFilter(filter: string | RegExp) {\n match = createMatcher(filter);\n}\n\nexport function setLogLevels(options: Partial<LogLevels>) {\n for (const key in options) {\n const value = options[key as keyof LogLevels];\n if (value) {\n levels[key as keyof LogLevels] = value;\n }\n }\n}\n\nfunction _getDefaultConsole() {\n if (typeof window !== \"undefined\" && window.console) {\n return window.console;\n }\n if (typeof global !== \"undefined\" && global.console) {\n return global.console;\n }\n}\n"],"names":["ReactiveFlags","createReactiveSystem","update","notify","unwatched","link","unlink","propagate","checkDirty","endTracking","startTracking","shallowPropagate","dep","sub","prevDep","nextDep","recursedCheck","prevSub","isValidLink","newLink","nextSub","next","stack","top","flags","subSubs","depsTail","toRemove","checkDepth","depFlags","dirty","subs","firstSub","hasMultipleSubs","subFlags","checkLink","noOp","idCounter","getUniqueId","strictEqual","a","b","shallowEqual","t","typeOf","size","key","i","isFunction","deepEqual","length","keys","omit","object","newObject","toArray","value","toCamelCase","s","x","okhash","hue","createMatcher","pattern","matchers","parts","p","part","section","name","positive","negative","fn","queuedEffects","signal","updateComputed","updateSignal","node","_effect","batchDepth","notifyIndex","queuedEffectsLength","activeSub","setCurrentSub","c","oldValue","state","run","prev","result","flush","effect","_computed","_source","newValue","get","batch","untracked","pausedSub","e","_a","$","init","options","currentEnv","getEnv","setEnv","levels","match","crashListeners","isCrashed","onLoggerCrash","listener","createLogger","_console","_getDefaultConsole","bind","method","_name","isString","label","error","ctx","setLogFilter","filter","setLogLevels"],"mappings":"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","x_google_ignoreList":[0]}
|