@thyn/core 0.0.272 → 0.0.274

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/element.js CHANGED
@@ -11,7 +11,7 @@ export function createReactiveTextNode(v) {
11
11
  let n;
12
12
  staticEffect(() => {
13
13
  if (n)
14
- n.nodeValue = v();
14
+ n.data = v();
15
15
  else
16
16
  n = document.createTextNode(v());
17
17
  });
package/dist/index.d.ts CHANGED
@@ -1,2 +1,2 @@
1
1
  export { addChildren, addEffect, component, createReactiveTextNode, fixedComponent, isolatedTerminalList, list, markAsReactive, mount, setAttribute, setProperty, setReactiveAttribute, setReactiveProperty, show, terminalList } from "./element.js";
2
- export { $effect, $signal, staticEffect } from "./signals.js";
2
+ export { $effect, $signal, staticEffect, staticTextNodeEffect } from "./signals.js";
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
1
  export { addChildren, addEffect, component, createReactiveTextNode, fixedComponent, isolatedTerminalList, list, markAsReactive, mount, setAttribute, setProperty, setReactiveAttribute, setReactiveProperty, show, terminalList } from "./element.js";
2
- export { $effect, $signal, staticEffect } from "./signals.js";
2
+ export { $effect, $signal, staticEffect, staticTextNodeEffect } from "./signals.js";
package/dist/router.d.ts CHANGED
@@ -1,5 +1,12 @@
1
1
  export declare const router: {
2
- path: import("./signals.js").Signal<string>;
2
+ path: {
3
+ subs: 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
+ };
3
10
  param: (name: string) => string | undefined;
4
11
  };
5
12
  interface Route {
package/dist/signals.d.ts CHANGED
@@ -3,16 +3,26 @@ export type Signal<T> = {
3
3
  set(value: T): void;
4
4
  update(updater: (prev: T) => T): void;
5
5
  };
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
- };
6
+ declare class SignalImpl<T> {
7
+ value: T;
8
+ subs: 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>;
15
16
  export declare function $effect(fn: (() => (() => void) | void) & any): any;
16
17
  export declare function staticEffect(fn: (() => (() => void) | void) & any): any;
17
- export declare function cleanup(ef: EffectFn): void;
18
+ export declare function cleanup(ef: any): void;
19
+ declare class TextNodeEffect {
20
+ node: Text;
21
+ signal: Signal<any>;
22
+ next: any;
23
+ td: any;
24
+ constructor(node: Text, signal: Signal<any>);
25
+ run(): void;
26
+ }
27
+ export declare function staticTextNodeEffect(node: Text, signal: Signal<any>): TextNodeEffect;
18
28
  export {};
package/dist/signals.js CHANGED
@@ -16,7 +16,7 @@ function scheduleEffect(effectFn) {
16
16
  currentEffect = prev;
17
17
  }
18
18
  else {
19
- ef();
19
+ typeof ef === "function" ? ef() : ef.run();
20
20
  }
21
21
  }
22
22
  pendingEffects.length = 0;
@@ -25,32 +25,26 @@ function scheduleEffect(effectFn) {
25
25
  }
26
26
  }
27
27
  class SignalImpl {
28
- constructor(initial) {
29
- this.subscribers = null; // null | single EffectFn | head of linked list
30
- this.value = initial;
28
+ constructor(value) {
29
+ this.value = value;
30
+ this.subs = undefined;
31
31
  }
32
32
  get() {
33
33
  if (currentEffect) {
34
- const node = { effect: currentEffect, next: null };
35
- if (!this.subscribers) {
36
- this.subscribers = currentEffect; // single case - direct reference (fast)
34
+ if (!this.subs) {
35
+ this.subs = currentEffect;
37
36
  }
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
- };
37
+ else if (typeof this.subs === "function" || !this.subs.add) {
38
+ if (this.subs !== currentEffect) {
39
+ const oldEffect = this.subs;
40
+ this.subs = new Set();
41
+ this.subs.add(oldEffect);
42
+ this.subs.add(currentEffect);
45
43
  }
46
- // else: already tracked → no-op
47
44
  }
48
45
  else {
49
- // already a linked list → push front (fastest allocation pattern)
50
- node.next = this.subscribers;
51
- this.subscribers = node;
46
+ this.subs.add(currentEffect);
52
47
  }
53
- // Track dependencies for cleanup
54
48
  if (!currentEffect.td) {
55
49
  currentEffect.td = this;
56
50
  }
@@ -63,71 +57,44 @@ class SignalImpl {
63
57
  }
64
58
  return this.value;
65
59
  }
66
- notify() {
67
- if (!this.subscribers)
68
- return;
69
- if (typeof this.subscribers === "function") {
70
- scheduleEffect(this.subscribers);
60
+ delete(ef) {
61
+ if (this.subs === ef) {
62
+ this.subs = undefined;
71
63
  }
72
- else {
73
- // Walk the linked list
74
- let current = this.subscribers;
75
- while (current) {
76
- scheduleEffect(current.effect);
77
- current = current.next;
64
+ else if (typeof this.subs === "object" && this.subs.delete) {
65
+ this.subs.delete(ef);
66
+ if (this.subs.size === 0) {
67
+ this.subs = undefined;
68
+ }
69
+ else if (this.subs.size === 1) {
70
+ this.subs = this.subs.values().next().value;
78
71
  }
79
72
  }
80
73
  }
81
74
  set(value) {
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;
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;
75
+ if (value !== this.value) {
76
+ this.value = value;
77
+ if (this.subs) {
78
+ if (typeof this.subs === "function" || !this.subs.add) {
79
+ scheduleEffect(this.subs);
107
80
  }
108
81
  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;
82
+ for (const ef of this.subs) {
83
+ scheduleEffect(ef);
116
84
  }
117
85
  }
118
- return;
119
86
  }
120
- prev = current;
121
- current = current.next;
122
87
  }
123
88
  }
89
+ update(action) {
90
+ this.set(action(this.value));
91
+ }
124
92
  }
125
93
  export function $signal(value) {
126
94
  return new SignalImpl(value);
127
95
  }
128
- // ──────────────────────────────────────────────────────────────────────────────
129
96
  function runEffectFn(ef) {
130
- const td = ef();
97
+ const td = typeof ef === "function" ? ef() : ef.run();
131
98
  if (td) {
132
99
  if (ef.td) {
133
100
  if (Array.isArray(ef.td)) {
@@ -156,25 +123,38 @@ export function staticEffect(fn) {
156
123
  currentEffect = fn;
157
124
  fn();
158
125
  currentEffect = prev;
159
- // collectEffect(fn); ← Consider removing if most staticEffects don't need cleanup
126
+ collectEffect(fn);
160
127
  return fn;
161
128
  }
162
129
  export function cleanup(ef) {
163
- if (!ef.td)
164
- return;
165
130
  if (typeof ef.td === "function") {
166
131
  ef.td();
167
132
  }
168
- else if ("delete" in ef.td) {
133
+ else if (ef.td.delete) {
169
134
  ef.td.delete(ef);
170
135
  }
171
136
  else {
172
- for (const t of ef.td) {
173
- if (typeof t === "function")
174
- t();
175
- else
176
- t.delete(ef);
177
- }
137
+ for (const f of ef.td)
138
+ typeof f === "function" ? f() : f.delete(ef);
139
+ }
140
+ }
141
+ class TextNodeEffect {
142
+ constructor(node, signal) {
143
+ this.node = node;
144
+ this.signal = signal;
145
+ this.next = undefined;
146
+ this.td = undefined;
178
147
  }
179
- ef.td = undefined;
148
+ run() {
149
+ this.node.data = this.signal.get();
150
+ }
151
+ }
152
+ export function staticTextNodeEffect(node, signal) {
153
+ const ef = new TextNodeEffect(node, signal);
154
+ const prev = currentEffect;
155
+ currentEffect = ef;
156
+ ef.run();
157
+ currentEffect = prev;
158
+ collectEffect(ef);
159
+ return ef;
180
160
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thyn/core",
3
- "version": "0.0.272",
3
+ "version": "0.0.274",
4
4
  "scripts": {
5
5
  "build": "tsc",
6
6
  "pub": "tsc && npm version patch -f && npm -f publish --access=public",
package/src/element.ts CHANGED
@@ -13,7 +13,7 @@ export function collectEffect(effectFn) {
13
13
  export function createReactiveTextNode(v) {
14
14
  let n;
15
15
  staticEffect(() => {
16
- if (n) n.nodeValue = v();
16
+ if (n) n.data = v();
17
17
  else n = document.createTextNode(v());
18
18
  });
19
19
  return n;
package/src/index.ts CHANGED
@@ -15,5 +15,5 @@ export {
15
15
  show,
16
16
  terminalList
17
17
  } from "./element.js";
18
- export { $effect, $signal, staticEffect } from "./signals.js";
18
+ export { $effect, $signal, staticEffect, staticTextNodeEffect } from "./signals.js";
19
19
 
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: EffectFn[] = [];
6
+ const pendingEffects = [];
7
7
 
8
8
  function scheduleEffect(effectFn: EffectFn) {
9
9
  pendingEffects.push(effectFn);
@@ -18,7 +18,7 @@ function scheduleEffect(effectFn: EffectFn) {
18
18
  runEffectFn(ef);
19
19
  currentEffect = prev;
20
20
  } else {
21
- ef();
21
+ typeof ef === "function" ? ef() : ef.run();
22
22
  }
23
23
  }
24
24
  pendingEffects.length = 0;
@@ -27,51 +27,31 @@ function scheduleEffect(effectFn: EffectFn) {
27
27
  }
28
28
  }
29
29
 
30
- // ──────────────────────────────────────────────────────────────────────────────
31
-
32
30
  export type Signal<T> = {
33
31
  get(): T;
34
32
  set(value: T): void;
35
33
  update(updater: (prev: T) => T): void;
36
34
  };
37
35
 
38
- type SubscriberNode = {
39
- effect: EffectFn;
40
- next: SubscriberNode | null;
41
- };
42
-
43
36
  class SignalImpl<T> {
44
- private value: T;
45
- private subscribers: SubscriberNode | EffectFn | null = null; // null | single EffectFn | head of linked list
37
+ subs: any = undefined;
46
38
 
47
- constructor(initial: T) {
48
- this.value = initial;
49
- }
39
+ constructor(public value: T) { }
50
40
 
51
41
  get(): T {
52
42
  if (currentEffect) {
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
- };
43
+ if (!this.subs) {
44
+ this.subs = currentEffect;
45
+ } else if (typeof this.subs === "function" || !this.subs.add) {
46
+ if (this.subs !== currentEffect) {
47
+ const oldEffect = this.subs;
48
+ this.subs = new Set();
49
+ this.subs.add(oldEffect);
50
+ this.subs.add(currentEffect);
65
51
  }
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;
52
+ } else {
53
+ this.subs.add(currentEffect);
72
54
  }
73
-
74
- // Track dependencies for cleanup
75
55
  if (!currentEffect.td) {
76
56
  currentEffect.td = this;
77
57
  } else if (Array.isArray(currentEffect.td)) {
@@ -80,84 +60,52 @@ class SignalImpl<T> {
80
60
  currentEffect.td = [currentEffect.td, this];
81
61
  }
82
62
  }
83
-
84
63
  return this.value;
85
64
  }
86
65
 
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;
66
+ delete(ef: any): void {
67
+ if (this.subs === ef) {
68
+ this.subs = undefined;
69
+ } else if (typeof this.subs === "object" && this.subs.delete) {
70
+ this.subs.delete(ef);
71
+ if (this.subs.size === 0) {
72
+ this.subs = undefined;
73
+ } else if (this.subs.size === 1) {
74
+ this.subs = this.subs.values().next().value;
98
75
  }
99
76
  }
100
77
  }
101
78
 
102
79
  set(value: T): void {
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;
120
- }
121
- return;
122
- }
123
-
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;
80
+ if (value !== this.value) {
81
+ this.value = value;
82
+ if (this.subs) {
83
+ if (typeof this.subs === "function" || !this.subs.add) {
84
+ scheduleEffect(this.subs);
132
85
  } 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;
86
+ for (const ef of this.subs) {
87
+ scheduleEffect(ef);
139
88
  }
140
89
  }
141
- return;
142
90
  }
143
- prev = current;
144
- current = current.next;
145
91
  }
146
92
  }
93
+
94
+ update(action: (prev: T) => T): void {
95
+ this.set(action(this.value));
96
+ }
147
97
  }
148
98
 
149
- export function $signal<T>(value: T): Signal<T> {
99
+ export function $signal<T>(value: T): SignalImpl<T> {
150
100
  return new SignalImpl(value);
151
101
  }
152
102
 
153
- // ──────────────────────────────────────────────────────────────────────────────
154
-
155
103
  function runEffectFn(ef: EffectFn) {
156
- const td = ef();
104
+ const td = typeof ef === "function" ? ef() : ef.run();
157
105
  if (td) {
158
106
  if (ef.td) {
159
107
  if (Array.isArray(ef.td)) {
160
- ef.td.push(td);
108
+ ef.td.push(td)
161
109
  } else {
162
110
  ef.td = [ef.td, td];
163
111
  }
@@ -168,11 +116,11 @@ function runEffectFn(ef: EffectFn) {
168
116
  }
169
117
 
170
118
  type EffectTeardown = (() => void) | { delete: (v: any) => void };
171
- type EffectFn = (() => (() => void) | void) & {
119
+ type EffectFn = ((() => (() => void) | void) & {
172
120
  mv?: boolean;
173
121
  dyn?: boolean;
174
- td?: EffectTeardown | EffectTeardown[];
175
- }
122
+ td: EffectTeardown | EffectTeardown[];
123
+ }) | any;
176
124
 
177
125
  export function $effect(fn: (() => (() => void) | void) & any) {
178
126
  const prev = currentEffect;
@@ -189,22 +137,35 @@ export function staticEffect(fn: (() => (() => void) | void) & any) {
189
137
  currentEffect = fn;
190
138
  fn();
191
139
  currentEffect = prev;
192
- // collectEffect(fn); ← Consider removing if most staticEffects don't need cleanup
140
+ collectEffect(fn);
193
141
  return fn;
194
142
  }
195
143
 
196
- export function cleanup(ef: EffectFn) {
197
- if (!ef.td) return;
198
-
144
+ export function cleanup(ef) {
199
145
  if (typeof ef.td === "function") {
200
146
  ef.td();
201
- } else if ("delete" in ef.td) {
147
+ } else if (ef.td.delete) {
202
148
  ef.td.delete(ef);
203
149
  } else {
204
- for (const t of ef.td) {
205
- if (typeof t === "function") t();
206
- else t.delete(ef);
207
- }
150
+ for (const f of ef.td) typeof f === "function" ? f() : f.delete(ef);
208
151
  }
209
- ef.td = undefined;
210
- }
152
+ }
153
+
154
+ class TextNodeEffect {
155
+ next: any = undefined;
156
+ td: any = undefined;
157
+ constructor(public node: Text, public signal: Signal<any>) { }
158
+ run() {
159
+ this.node.data = this.signal.get();
160
+ }
161
+ }
162
+
163
+ export function staticTextNodeEffect(node: Text, signal: Signal<any>) {
164
+ const ef = new TextNodeEffect(node, signal);
165
+ const prev = currentEffect;
166
+ currentEffect = ef;
167
+ ef.run();
168
+ currentEffect = prev;
169
+ collectEffect(ef);
170
+ return ef;
171
+ }
@@ -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":"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"}
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":"da6bbb589a24c878053b7beefd8a4bc8d495f4ef74c997352ed1fcecff10bc6f","signature":"8ac4d9babe8281389bf23517f2318bb7a0a65ffcfa7b58c9394198e0288f4a94"},{"version":"d7da8f79ad96a031b21785ec0fb8545c9364067c7825f2d95cbfae19bb7f45da","signature":"f3ddd3670c33381859688f604378a0028cafa5b52cc936da9a225933eb464387"},{"version":"3b08b0d35aa0cf2bdddf8cc47bdbd483ef9ceea3efedfd2e43abd1adc978ff3b","signature":"d95a6bb2d3c7794648e8733fdec0b0c027bd1f12615c5c7ac9d2140e2b090651"},{"version":"a155e9ebe821846c43103394346639a6a19a7f844be4892bbe4352aa20ee6707","signature":"58b2b60f8aae88fb4b926c3f9700b21a56e0b0f4016e56ab9fa879550cbdb294"},{"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"}