@thyn/core 0.0.261 → 0.0.272

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/router.d.ts CHANGED
@@ -1,12 +1,5 @@
1
1
  export declare const router: {
2
- path: {
3
- subs: Set<any>;
4
- value: string;
5
- get(): string;
6
- delete(ef: any): void;
7
- set(value: string): void;
8
- update(action: (prev: string) => string): void;
9
- };
2
+ path: import("./signals.js").Signal<string>;
10
3
  param: (name: string) => string | undefined;
11
4
  };
12
5
  interface Route {
package/dist/signals.d.ts CHANGED
@@ -3,17 +3,16 @@ export type Signal<T> = {
3
3
  set(value: T): void;
4
4
  update(updater: (prev: T) => T): void;
5
5
  };
6
- declare class SignalImpl<T> {
7
- value: T;
8
- subs: Set<any>;
9
- constructor(value: T);
10
- get(): T;
11
- delete(ef: any): void;
12
- set(value: T): void;
13
- update(action: (prev: T) => T): void;
14
- }
15
- export declare function $signal<T>(value: T): SignalImpl<T>;
6
+ export declare function $signal<T>(value: T): Signal<T>;
7
+ type EffectTeardown = (() => void) | {
8
+ delete: (v: any) => void;
9
+ };
10
+ type EffectFn = (() => (() => void) | void) & {
11
+ mv?: boolean;
12
+ dyn?: boolean;
13
+ td?: EffectTeardown | EffectTeardown[];
14
+ };
16
15
  export declare function $effect(fn: (() => (() => void) | void) & any): any;
17
16
  export declare function staticEffect(fn: (() => (() => void) | void) & any): any;
18
- export declare function cleanup(ef: any): void;
17
+ export declare function cleanup(ef: EffectFn): void;
19
18
  export {};
package/dist/signals.js CHANGED
@@ -25,46 +25,127 @@ function scheduleEffect(effectFn) {
25
25
  }
26
26
  }
27
27
  class SignalImpl {
28
- constructor(value) {
29
- this.value = value;
30
- this.subs = new Set();
28
+ constructor(initial) {
29
+ this.subscribers = null; // null | single EffectFn | head of linked list
30
+ this.value = initial;
31
31
  }
32
32
  get() {
33
33
  if (currentEffect) {
34
- this.subs.add(currentEffect);
35
- currentEffect.td.push(this);
34
+ const node = { effect: currentEffect, next: null };
35
+ if (!this.subscribers) {
36
+ this.subscribers = currentEffect; // single case - direct reference (fast)
37
+ }
38
+ else if (typeof this.subscribers === "function") {
39
+ // 2nd subscriber → upgrade to linked list
40
+ if (this.subscribers !== currentEffect) {
41
+ this.subscribers = {
42
+ effect: this.subscribers,
43
+ next: node,
44
+ };
45
+ }
46
+ // else: already tracked → no-op
47
+ }
48
+ else {
49
+ // already a linked list → push front (fastest allocation pattern)
50
+ node.next = this.subscribers;
51
+ this.subscribers = node;
52
+ }
53
+ // Track dependencies for cleanup
54
+ if (!currentEffect.td) {
55
+ currentEffect.td = this;
56
+ }
57
+ else if (Array.isArray(currentEffect.td)) {
58
+ currentEffect.td.push(this);
59
+ }
60
+ else {
61
+ currentEffect.td = [currentEffect.td, this];
62
+ }
36
63
  }
37
64
  return this.value;
38
65
  }
39
- delete(ef) {
40
- this.subs.delete(ef);
66
+ notify() {
67
+ if (!this.subscribers)
68
+ return;
69
+ if (typeof this.subscribers === "function") {
70
+ scheduleEffect(this.subscribers);
71
+ }
72
+ else {
73
+ // Walk the linked list
74
+ let current = this.subscribers;
75
+ while (current) {
76
+ scheduleEffect(current.effect);
77
+ current = current.next;
78
+ }
79
+ }
41
80
  }
42
81
  set(value) {
43
- if (value !== this.value) {
44
- this.value = value;
45
- for (const ef of this.subs) {
46
- scheduleEffect(ef);
82
+ if (Object.is(value, this.value))
83
+ return; // === is not enough for NaN/Object.is is better
84
+ this.value = value;
85
+ this.notify();
86
+ }
87
+ update(updater) {
88
+ this.set(updater(this.value));
89
+ }
90
+ // For cleanup - O(n) worst case, but usually rare compared to updates
91
+ delete(effect) {
92
+ if (!this.subscribers)
93
+ return;
94
+ if (typeof this.subscribers === "function") {
95
+ if (this.subscribers === effect) {
96
+ this.subscribers = null;
47
97
  }
98
+ return;
99
+ }
100
+ // Linked list removal
101
+ let current = this.subscribers;
102
+ let prev = null;
103
+ while (current) {
104
+ if (current.effect === effect) {
105
+ if (prev) {
106
+ prev.next = current.next;
107
+ }
108
+ else {
109
+ // removing head
110
+ this.subscribers = current.next;
111
+ if (typeof this.subscribers === "function") {
112
+ // downgrade to single
113
+ }
114
+ else if (!this.subscribers) {
115
+ this.subscribers = null;
116
+ }
117
+ }
118
+ return;
119
+ }
120
+ prev = current;
121
+ current = current.next;
48
122
  }
49
- }
50
- update(action) {
51
- this.set(action(this.value));
52
123
  }
53
124
  }
54
125
  export function $signal(value) {
55
126
  return new SignalImpl(value);
56
127
  }
128
+ // ──────────────────────────────────────────────────────────────────────────────
57
129
  function runEffectFn(ef) {
58
130
  const td = ef();
59
131
  if (td) {
60
- ef.td.push(td);
132
+ if (ef.td) {
133
+ if (Array.isArray(ef.td)) {
134
+ ef.td.push(td);
135
+ }
136
+ else {
137
+ ef.td = [ef.td, td];
138
+ }
139
+ }
140
+ else {
141
+ ef.td = td;
142
+ }
61
143
  }
62
144
  }
63
145
  export function $effect(fn) {
64
146
  const prev = currentEffect;
65
147
  currentEffect = fn;
66
148
  fn.dyn = true;
67
- fn.td = [];
68
149
  runEffectFn(fn);
69
150
  currentEffect = prev;
70
151
  collectEffect(fn);
@@ -73,15 +154,27 @@ export function $effect(fn) {
73
154
  export function staticEffect(fn) {
74
155
  const prev = currentEffect;
75
156
  currentEffect = fn;
76
- fn.td = [];
77
157
  fn();
78
158
  currentEffect = prev;
79
- collectEffect(fn);
159
+ // collectEffect(fn); ← Consider removing if most staticEffects don't need cleanup
80
160
  return fn;
81
161
  }
82
162
  export function cleanup(ef) {
83
- for (const f of ef.td) {
84
- typeof f === "function" ? f() : f.delete(ef);
163
+ if (!ef.td)
164
+ return;
165
+ if (typeof ef.td === "function") {
166
+ ef.td();
167
+ }
168
+ else if ("delete" in ef.td) {
169
+ ef.td.delete(ef);
170
+ }
171
+ else {
172
+ for (const t of ef.td) {
173
+ if (typeof t === "function")
174
+ t();
175
+ else
176
+ t.delete(ef);
177
+ }
85
178
  }
86
- ef.td.length = 0;
179
+ ef.td = undefined;
87
180
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thyn/core",
3
- "version": "0.0.261",
3
+ "version": "0.0.272",
4
4
  "scripts": {
5
5
  "build": "tsc",
6
6
  "pub": "tsc && npm version patch -f && npm -f publish --access=public",
package/src/signals.ts CHANGED
@@ -3,7 +3,7 @@ import { collectEffect } from "./element.js";
3
3
  let currentEffect: any;
4
4
 
5
5
  let isBatching: boolean | undefined;
6
- const pendingEffects = [];
6
+ const pendingEffects: EffectFn[] = [];
7
7
 
8
8
  function scheduleEffect(effectFn: EffectFn) {
9
9
  pendingEffects.push(effectFn);
@@ -27,51 +27,143 @@ function scheduleEffect(effectFn: EffectFn) {
27
27
  }
28
28
  }
29
29
 
30
+ // ──────────────────────────────────────────────────────────────────────────────
31
+
30
32
  export type Signal<T> = {
31
33
  get(): T;
32
34
  set(value: T): void;
33
35
  update(updater: (prev: T) => T): void;
34
36
  };
35
37
 
38
+ type SubscriberNode = {
39
+ effect: EffectFn;
40
+ next: SubscriberNode | null;
41
+ };
42
+
36
43
  class SignalImpl<T> {
37
- subs: Set<any> = new Set();
44
+ private value: T;
45
+ private subscribers: SubscriberNode | EffectFn | null = null; // null | single EffectFn | head of linked list
38
46
 
39
- constructor(public value: T) { }
47
+ constructor(initial: T) {
48
+ this.value = initial;
49
+ }
40
50
 
41
51
  get(): T {
42
52
  if (currentEffect) {
43
- this.subs.add(currentEffect);
44
- currentEffect.td.push(this);
53
+ const node: SubscriberNode = { effect: currentEffect, next: null };
54
+
55
+ if (!this.subscribers) {
56
+ this.subscribers = currentEffect; // single case - direct reference (fast)
57
+ }
58
+ else if (typeof this.subscribers === "function") {
59
+ // 2nd subscriber → upgrade to linked list
60
+ if (this.subscribers !== currentEffect) {
61
+ this.subscribers = {
62
+ effect: this.subscribers,
63
+ next: node,
64
+ };
65
+ }
66
+ // else: already tracked → no-op
67
+ }
68
+ else {
69
+ // already a linked list → push front (fastest allocation pattern)
70
+ node.next = this.subscribers;
71
+ this.subscribers = node;
72
+ }
73
+
74
+ // Track dependencies for cleanup
75
+ if (!currentEffect.td) {
76
+ currentEffect.td = this;
77
+ } else if (Array.isArray(currentEffect.td)) {
78
+ currentEffect.td.push(this);
79
+ } else {
80
+ currentEffect.td = [currentEffect.td, this];
81
+ }
45
82
  }
83
+
46
84
  return this.value;
47
85
  }
48
86
 
49
- delete(ef: any): void {
50
- this.subs.delete(ef);
87
+ private notify() {
88
+ if (!this.subscribers) return;
89
+
90
+ if (typeof this.subscribers === "function") {
91
+ scheduleEffect(this.subscribers);
92
+ } else {
93
+ // Walk the linked list
94
+ let current: SubscriberNode | null = this.subscribers;
95
+ while (current) {
96
+ scheduleEffect(current.effect);
97
+ current = current.next;
98
+ }
99
+ }
51
100
  }
52
101
 
53
102
  set(value: T): void {
54
- if (value !== this.value) {
55
- this.value = value;
56
- for (const ef of this.subs) {
57
- scheduleEffect(ef);
103
+ if (Object.is(value, this.value)) return; // === is not enough for NaN/Object.is is better
104
+
105
+ this.value = value;
106
+ this.notify();
107
+ }
108
+
109
+ update(updater: (prev: T) => T): void {
110
+ this.set(updater(this.value));
111
+ }
112
+
113
+ // For cleanup - O(n) worst case, but usually rare compared to updates
114
+ delete(effect: EffectFn): void {
115
+ if (!this.subscribers) return;
116
+
117
+ if (typeof this.subscribers === "function") {
118
+ if (this.subscribers === effect) {
119
+ this.subscribers = null;
58
120
  }
121
+ return;
59
122
  }
60
- }
61
123
 
62
- update(action: (prev: T) => T): void {
63
- this.set(action(this.value));
124
+ // Linked list removal
125
+ let current: SubscriberNode | null = this.subscribers;
126
+ let prev: SubscriberNode | null = null;
127
+
128
+ while (current) {
129
+ if (current.effect === effect) {
130
+ if (prev) {
131
+ prev.next = current.next;
132
+ } else {
133
+ // removing head
134
+ this.subscribers = current.next;
135
+ if (typeof this.subscribers === "function") {
136
+ // downgrade to single
137
+ } else if (!this.subscribers) {
138
+ this.subscribers = null;
139
+ }
140
+ }
141
+ return;
142
+ }
143
+ prev = current;
144
+ current = current.next;
145
+ }
64
146
  }
65
147
  }
66
148
 
67
- export function $signal<T>(value: T): SignalImpl<T> {
149
+ export function $signal<T>(value: T): Signal<T> {
68
150
  return new SignalImpl(value);
69
151
  }
70
152
 
153
+ // ──────────────────────────────────────────────────────────────────────────────
154
+
71
155
  function runEffectFn(ef: EffectFn) {
72
156
  const td = ef();
73
157
  if (td) {
74
- ef.td.push(td);
158
+ if (ef.td) {
159
+ if (Array.isArray(ef.td)) {
160
+ ef.td.push(td);
161
+ } else {
162
+ ef.td = [ef.td, td];
163
+ }
164
+ } else {
165
+ ef.td = td;
166
+ }
75
167
  }
76
168
  }
77
169
 
@@ -79,14 +171,13 @@ type EffectTeardown = (() => void) | { delete: (v: any) => void };
79
171
  type EffectFn = (() => (() => void) | void) & {
80
172
  mv?: boolean;
81
173
  dyn?: boolean;
82
- td: EffectTeardown[];
174
+ td?: EffectTeardown | EffectTeardown[];
83
175
  }
84
176
 
85
177
  export function $effect(fn: (() => (() => void) | void) & any) {
86
178
  const prev = currentEffect;
87
179
  currentEffect = fn;
88
180
  fn.dyn = true;
89
- fn.td = [];
90
181
  runEffectFn(fn);
91
182
  currentEffect = prev;
92
183
  collectEffect(fn);
@@ -96,16 +187,24 @@ export function $effect(fn: (() => (() => void) | void) & any) {
96
187
  export function staticEffect(fn: (() => (() => void) | void) & any) {
97
188
  const prev = currentEffect;
98
189
  currentEffect = fn;
99
- fn.td = [];
100
190
  fn();
101
191
  currentEffect = prev;
102
- collectEffect(fn);
192
+ // collectEffect(fn); ← Consider removing if most staticEffects don't need cleanup
103
193
  return fn;
104
194
  }
105
195
 
106
- export function cleanup(ef) {
107
- for (const f of ef.td) {
108
- typeof f === "function" ? f() : f.delete(ef);
196
+ export function cleanup(ef: EffectFn) {
197
+ if (!ef.td) return;
198
+
199
+ if (typeof ef.td === "function") {
200
+ ef.td();
201
+ } else if ("delete" in ef.td) {
202
+ ef.td.delete(ef);
203
+ } else {
204
+ for (const t of ef.td) {
205
+ if (typeof t === "function") t();
206
+ else t.delete(ef);
207
+ }
109
208
  }
110
- ef.td.length = 0;
111
- }
209
+ ef.td = undefined;
210
+ }
@@ -1 +1 @@
1
- {"fileNames":["./node_modules/typescript/lib/lib.es5.d.ts","./node_modules/typescript/lib/lib.es2015.d.ts","./node_modules/typescript/lib/lib.es2016.d.ts","./node_modules/typescript/lib/lib.es2017.d.ts","./node_modules/typescript/lib/lib.es2018.d.ts","./node_modules/typescript/lib/lib.es2019.d.ts","./node_modules/typescript/lib/lib.es2020.d.ts","./node_modules/typescript/lib/lib.dom.d.ts","./node_modules/typescript/lib/lib.dom.iterable.d.ts","./node_modules/typescript/lib/lib.dom.asynciterable.d.ts","./node_modules/typescript/lib/lib.webworker.importscripts.d.ts","./node_modules/typescript/lib/lib.scripthost.d.ts","./node_modules/typescript/lib/lib.es2015.core.d.ts","./node_modules/typescript/lib/lib.es2015.collection.d.ts","./node_modules/typescript/lib/lib.es2015.generator.d.ts","./node_modules/typescript/lib/lib.es2015.iterable.d.ts","./node_modules/typescript/lib/lib.es2015.promise.d.ts","./node_modules/typescript/lib/lib.es2015.proxy.d.ts","./node_modules/typescript/lib/lib.es2015.reflect.d.ts","./node_modules/typescript/lib/lib.es2015.symbol.d.ts","./node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","./node_modules/typescript/lib/lib.es2016.array.include.d.ts","./node_modules/typescript/lib/lib.es2016.intl.d.ts","./node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","./node_modules/typescript/lib/lib.es2017.date.d.ts","./node_modules/typescript/lib/lib.es2017.object.d.ts","./node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","./node_modules/typescript/lib/lib.es2017.string.d.ts","./node_modules/typescript/lib/lib.es2017.intl.d.ts","./node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","./node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","./node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","./node_modules/typescript/lib/lib.es2018.intl.d.ts","./node_modules/typescript/lib/lib.es2018.promise.d.ts","./node_modules/typescript/lib/lib.es2018.regexp.d.ts","./node_modules/typescript/lib/lib.es2019.array.d.ts","./node_modules/typescript/lib/lib.es2019.object.d.ts","./node_modules/typescript/lib/lib.es2019.string.d.ts","./node_modules/typescript/lib/lib.es2019.symbol.d.ts","./node_modules/typescript/lib/lib.es2019.intl.d.ts","./node_modules/typescript/lib/lib.es2020.bigint.d.ts","./node_modules/typescript/lib/lib.es2020.date.d.ts","./node_modules/typescript/lib/lib.es2020.promise.d.ts","./node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","./node_modules/typescript/lib/lib.es2020.string.d.ts","./node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","./node_modules/typescript/lib/lib.es2020.intl.d.ts","./node_modules/typescript/lib/lib.es2020.number.d.ts","./node_modules/typescript/lib/lib.decorators.d.ts","./node_modules/typescript/lib/lib.decorators.legacy.d.ts","./node_modules/typescript/lib/lib.es2020.full.d.ts","./src/signals.ts","./src/element.ts","./src/index.ts","./src/router.ts","./node_modules/@types/deep-eql/index.d.ts","./node_modules/assertion-error/index.d.ts","./node_modules/@types/chai/index.d.ts","./node_modules/@types/estree/index.d.ts"],"fileIdsList":[[56,57],[52],[52,53],[53]],"fileInfos":[{"version":"c430d44666289dae81f30fa7b2edebf186ecc91a2d4c71266ea6ae76388792e1","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"080941d9f9ff9307f7e27a83bcd888b7c8270716c39af943532438932ec1d0b9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2e80ee7a49e8ac312cc11b77f1475804bee36b3b2bc896bead8b6e1266befb43","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7a3c8b952931daebdfc7a2897c53c0a1c73624593fa070e46bd537e64dcd20a","affectsGlobalScope":true,"impliedFormat":1},{"version":"80e18897e5884b6723488d4f5652167e7bb5024f946743134ecc4aa4ee731f89","affectsGlobalScope":true,"impliedFormat":1},{"version":"cd034f499c6cdca722b60c04b5b1b78e058487a7085a8e0d6fb50809947ee573","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"fb0f136d372979348d59b3f5020b4cdb81b5504192b1cacff5d1fbba29378aa1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"a680117f487a4d2f30ea46f1b4b7f58bef1480456e18ba53ee85c2746eeca012","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"1305d1e76ca44e30fb8b2b8075fa522b83f60c0bcf5d4326a9d2cf79b53724f8","impliedFormat":1},{"version":"41a5b75b5eff52b8bec075695c1ba003ee85aaa9446fabf04d597da5adb00499","signature":"1be327160929196e5586e7c6578dba0d4c30de5fc33d34e9fd878205da3e8d97"},{"version":"ea2816684ad892b056facb0b021ac7eb438b34f0582987d5e47afc408d578be4","signature":"f3ddd3670c33381859688f604378a0028cafa5b52cc936da9a225933eb464387"},{"version":"17c210e47841877c5c6e6d64cf41277596f65faa6cf3ec35c482c3c2231bb21b","signature":"12fd8be483df752ac04ae85347f9c397954ac2390e0de50612bf8b9899d7767d"},{"version":"a155e9ebe821846c43103394346639a6a19a7f844be4892bbe4352aa20ee6707","signature":"32fb84e2d891488f581a83fbbf9ad6a39f4f0f28d6c86a1614f3e128d59d24aa"},{"version":"427fe2004642504828c1476d0af4270e6ad4db6de78c0b5da3e4c5ca95052a99","impliedFormat":1},{"version":"2eeffcee5c1661ddca53353929558037b8cf305ffb86a803512982f99bcab50d","impliedFormat":99},{"version":"9afb4cb864d297e4092a79ee2871b5d3143ea14153f62ef0bb04ede25f432030","affectsGlobalScope":true,"impliedFormat":99},{"version":"151ff381ef9ff8da2da9b9663ebf657eac35c4c9a19183420c05728f31a6761d","impliedFormat":1}],"root":[[52,55]],"options":{"allowJs":true,"checkJs":false,"composite":true,"esModuleInterop":true,"module":99,"outDir":"./dist","rootDir":"./src","skipLibCheck":true,"target":7},"referencedMap":[[58,1],[53,2],[54,3],[55,3],[52,4]],"latestChangedDtsFile":"./dist/router.d.ts","version":"5.9.3"}
1
+ {"fileNames":["./node_modules/typescript/lib/lib.es5.d.ts","./node_modules/typescript/lib/lib.es2015.d.ts","./node_modules/typescript/lib/lib.es2016.d.ts","./node_modules/typescript/lib/lib.es2017.d.ts","./node_modules/typescript/lib/lib.es2018.d.ts","./node_modules/typescript/lib/lib.es2019.d.ts","./node_modules/typescript/lib/lib.es2020.d.ts","./node_modules/typescript/lib/lib.dom.d.ts","./node_modules/typescript/lib/lib.dom.iterable.d.ts","./node_modules/typescript/lib/lib.dom.asynciterable.d.ts","./node_modules/typescript/lib/lib.webworker.importscripts.d.ts","./node_modules/typescript/lib/lib.scripthost.d.ts","./node_modules/typescript/lib/lib.es2015.core.d.ts","./node_modules/typescript/lib/lib.es2015.collection.d.ts","./node_modules/typescript/lib/lib.es2015.generator.d.ts","./node_modules/typescript/lib/lib.es2015.iterable.d.ts","./node_modules/typescript/lib/lib.es2015.promise.d.ts","./node_modules/typescript/lib/lib.es2015.proxy.d.ts","./node_modules/typescript/lib/lib.es2015.reflect.d.ts","./node_modules/typescript/lib/lib.es2015.symbol.d.ts","./node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","./node_modules/typescript/lib/lib.es2016.array.include.d.ts","./node_modules/typescript/lib/lib.es2016.intl.d.ts","./node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","./node_modules/typescript/lib/lib.es2017.date.d.ts","./node_modules/typescript/lib/lib.es2017.object.d.ts","./node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","./node_modules/typescript/lib/lib.es2017.string.d.ts","./node_modules/typescript/lib/lib.es2017.intl.d.ts","./node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","./node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","./node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","./node_modules/typescript/lib/lib.es2018.intl.d.ts","./node_modules/typescript/lib/lib.es2018.promise.d.ts","./node_modules/typescript/lib/lib.es2018.regexp.d.ts","./node_modules/typescript/lib/lib.es2019.array.d.ts","./node_modules/typescript/lib/lib.es2019.object.d.ts","./node_modules/typescript/lib/lib.es2019.string.d.ts","./node_modules/typescript/lib/lib.es2019.symbol.d.ts","./node_modules/typescript/lib/lib.es2019.intl.d.ts","./node_modules/typescript/lib/lib.es2020.bigint.d.ts","./node_modules/typescript/lib/lib.es2020.date.d.ts","./node_modules/typescript/lib/lib.es2020.promise.d.ts","./node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","./node_modules/typescript/lib/lib.es2020.string.d.ts","./node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","./node_modules/typescript/lib/lib.es2020.intl.d.ts","./node_modules/typescript/lib/lib.es2020.number.d.ts","./node_modules/typescript/lib/lib.decorators.d.ts","./node_modules/typescript/lib/lib.decorators.legacy.d.ts","./node_modules/typescript/lib/lib.es2020.full.d.ts","./src/signals.ts","./src/element.ts","./src/index.ts","./src/router.ts","./node_modules/@types/deep-eql/index.d.ts","./node_modules/assertion-error/index.d.ts","./node_modules/@types/chai/index.d.ts","./node_modules/@types/estree/index.d.ts"],"fileIdsList":[[56,57],[52],[52,53],[53]],"fileInfos":[{"version":"c430d44666289dae81f30fa7b2edebf186ecc91a2d4c71266ea6ae76388792e1","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"080941d9f9ff9307f7e27a83bcd888b7c8270716c39af943532438932ec1d0b9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2e80ee7a49e8ac312cc11b77f1475804bee36b3b2bc896bead8b6e1266befb43","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7a3c8b952931daebdfc7a2897c53c0a1c73624593fa070e46bd537e64dcd20a","affectsGlobalScope":true,"impliedFormat":1},{"version":"80e18897e5884b6723488d4f5652167e7bb5024f946743134ecc4aa4ee731f89","affectsGlobalScope":true,"impliedFormat":1},{"version":"cd034f499c6cdca722b60c04b5b1b78e058487a7085a8e0d6fb50809947ee573","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"fb0f136d372979348d59b3f5020b4cdb81b5504192b1cacff5d1fbba29378aa1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"a680117f487a4d2f30ea46f1b4b7f58bef1480456e18ba53ee85c2746eeca012","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"1305d1e76ca44e30fb8b2b8075fa522b83f60c0bcf5d4326a9d2cf79b53724f8","impliedFormat":1},{"version":"589b03ae7f263fff1f36b72909045b0deeed895643a62f9eca66edffa9dcce90","signature":"7a7ae1ab8bd1e314d617534642247a6db0e7df00a17d844437a1e61e7f042470"},{"version":"ea2816684ad892b056facb0b021ac7eb438b34f0582987d5e47afc408d578be4","signature":"f3ddd3670c33381859688f604378a0028cafa5b52cc936da9a225933eb464387"},{"version":"17c210e47841877c5c6e6d64cf41277596f65faa6cf3ec35c482c3c2231bb21b","signature":"12fd8be483df752ac04ae85347f9c397954ac2390e0de50612bf8b9899d7767d"},{"version":"a155e9ebe821846c43103394346639a6a19a7f844be4892bbe4352aa20ee6707","signature":"a32c52a25b47067dac589266e7667623ea1ef2b0c1f9c4fd41adbc7b67a59eee"},{"version":"427fe2004642504828c1476d0af4270e6ad4db6de78c0b5da3e4c5ca95052a99","impliedFormat":1},{"version":"2eeffcee5c1661ddca53353929558037b8cf305ffb86a803512982f99bcab50d","impliedFormat":99},{"version":"9afb4cb864d297e4092a79ee2871b5d3143ea14153f62ef0bb04ede25f432030","affectsGlobalScope":true,"impliedFormat":99},{"version":"151ff381ef9ff8da2da9b9663ebf657eac35c4c9a19183420c05728f31a6761d","impliedFormat":1}],"root":[[52,55]],"options":{"allowJs":true,"checkJs":false,"composite":true,"esModuleInterop":true,"module":99,"outDir":"./dist","rootDir":"./src","skipLibCheck":true,"target":7},"referencedMap":[[58,1],[53,2],[54,3],[55,3],[52,4]],"latestChangedDtsFile":"./dist/router.d.ts","version":"5.9.3"}