@thyn/core 0.0.118 → 0.0.120

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/signals.d.ts CHANGED
@@ -1,3 +1,16 @@
1
+ declare class EffectBitSet {
2
+ private bitSet;
3
+ private effects;
4
+ private ids;
5
+ constructor(capacity?: number);
6
+ add(effect: any): boolean;
7
+ has(effect: any): boolean;
8
+ delete(effect: any): boolean;
9
+ clear(): void;
10
+ get size(): number;
11
+ [Symbol.iterator](): Iterator<any>;
12
+ forEach(callback: (effect: any) => void): void;
13
+ }
1
14
  export type Signal<T> = {
2
15
  (): T;
3
16
  (value: T): void;
@@ -7,20 +20,12 @@ export declare function $signal<T>(value: T): Signal<T>;
7
20
  export declare function $compare<T>(fn: () => T): (value: T) => boolean;
8
21
  interface EffectFn {
9
22
  run: () => (() => void) | void;
10
- deps: Set<any>;
23
+ deps: EffectBitSet;
11
24
  mv?: boolean;
12
25
  dyn?: boolean;
13
26
  td?: (() => void)[];
27
+ _id?: number;
14
28
  }
15
- declare class Effect {
16
- constructor(fn: EffectFn["run"], stat?: boolean, mv?: boolean);
17
- _run: () => (() => void) | void;
18
- deps: Set<any>;
19
- mv: boolean;
20
- dyn: boolean;
21
- td?: (() => void)[];
22
- run(): void;
23
- }
24
- export declare function $effect(fn: EffectFn["run"], stat?: boolean, mv?: boolean): Effect;
29
+ export declare function $effect(fn: EffectFn["run"], stat?: boolean, mv?: boolean): EffectFn;
25
30
  export declare function cleanup(effectFn: EffectFn): void;
26
31
  export {};
package/dist/signals.js CHANGED
@@ -2,6 +2,124 @@ import { collectEffect } from "./element.js";
2
2
  let currentEffect;
3
3
  let isBatching;
4
4
  const pendingEffects = [];
5
+ // Global effect ID counter and registry
6
+ let nextEffectId = 0;
7
+ const effectRegistry = new Map();
8
+ class BitSet {
9
+ constructor(capacity = 1024) {
10
+ this._size = 0;
11
+ this.maxCapacity = capacity;
12
+ this.bits = new Uint32Array(Math.ceil(capacity / 32));
13
+ }
14
+ add(id) {
15
+ if (id >= this.maxCapacity)
16
+ return false;
17
+ const wordIndex = Math.floor(id / 32);
18
+ const bitIndex = id % 32;
19
+ const mask = 1 << bitIndex;
20
+ if (!(this.bits[wordIndex] & mask)) {
21
+ this.bits[wordIndex] |= mask;
22
+ this._size++;
23
+ return true;
24
+ }
25
+ return false;
26
+ }
27
+ has(id) {
28
+ if (id >= this.maxCapacity)
29
+ return false;
30
+ const wordIndex = Math.floor(id / 32);
31
+ const bitIndex = id % 32;
32
+ return !!(this.bits[wordIndex] & (1 << bitIndex));
33
+ }
34
+ delete(id) {
35
+ if (id >= this.maxCapacity)
36
+ return false;
37
+ const wordIndex = Math.floor(id / 32);
38
+ const bitIndex = id % 32;
39
+ const mask = 1 << bitIndex;
40
+ if (this.bits[wordIndex] & mask) {
41
+ this.bits[wordIndex] &= ~mask;
42
+ this._size--;
43
+ return true;
44
+ }
45
+ return false;
46
+ }
47
+ clear() {
48
+ this.bits.fill(0);
49
+ this._size = 0;
50
+ }
51
+ get size() {
52
+ return this._size;
53
+ }
54
+ *[Symbol.iterator]() {
55
+ for (let wordIndex = 0; wordIndex < this.bits.length; wordIndex++) {
56
+ const word = this.bits[wordIndex];
57
+ if (word === 0)
58
+ continue;
59
+ for (let bitIndex = 0; bitIndex < 32; bitIndex++) {
60
+ if (word & (1 << bitIndex)) {
61
+ yield wordIndex * 32 + bitIndex;
62
+ }
63
+ }
64
+ }
65
+ }
66
+ forEach(callback) {
67
+ for (const id of this) {
68
+ callback(id);
69
+ }
70
+ }
71
+ }
72
+ // Wrapper to make BitSet work with effect objects
73
+ class EffectBitSet {
74
+ constructor(capacity = 1024) {
75
+ this.effects = new Map();
76
+ this.ids = new Map();
77
+ this.bitSet = new BitSet(capacity);
78
+ }
79
+ add(effect) {
80
+ if (this.effects.has(effect))
81
+ return false;
82
+ // Assign ID to effect if it doesn't have one
83
+ if (!effect._id) {
84
+ effect._id = nextEffectId++;
85
+ effectRegistry.set(effect._id, effect);
86
+ }
87
+ this.effects.set(effect, effect._id);
88
+ this.ids.set(effect._id, effect);
89
+ return this.bitSet.add(effect._id);
90
+ }
91
+ has(effect) {
92
+ return this.effects.has(effect);
93
+ }
94
+ delete(effect) {
95
+ if (!this.effects.has(effect))
96
+ return false;
97
+ const id = this.effects.get(effect);
98
+ this.effects.delete(effect);
99
+ this.ids.delete(id);
100
+ return this.bitSet.delete(id);
101
+ }
102
+ clear() {
103
+ this.effects.clear();
104
+ this.ids.clear();
105
+ this.bitSet.clear();
106
+ }
107
+ get size() {
108
+ return this.bitSet.size;
109
+ }
110
+ *[Symbol.iterator]() {
111
+ for (const id of this.bitSet) {
112
+ const effect = this.ids.get(id);
113
+ if (effect)
114
+ yield effect;
115
+ }
116
+ }
117
+ forEach(callback) {
118
+ for (const effect of this) {
119
+ callback(effect);
120
+ }
121
+ }
122
+ }
5
123
  function scheduleEffect(effectFn) {
6
124
  pendingEffects.push(effectFn);
7
125
  if (!isBatching) {
@@ -12,11 +130,11 @@ function scheduleEffect(effectFn) {
12
130
  cleanup(ef);
13
131
  const prev = currentEffect;
14
132
  currentEffect = ef;
15
- ef.run();
133
+ runEffectFn(ef);
16
134
  currentEffect = prev;
17
135
  }
18
136
  else {
19
- ef.run();
137
+ runEffectFn(ef);
20
138
  }
21
139
  }
22
140
  pendingEffects.length = 0;
@@ -25,7 +143,7 @@ function scheduleEffect(effectFn) {
25
143
  }
26
144
  }
27
145
  export function $signal(value) {
28
- const subscribers = new Set();
146
+ const subscribers = new EffectBitSet();
29
147
  return (...args) => {
30
148
  if (!args.length) {
31
149
  if (currentEffect) {
@@ -40,9 +158,7 @@ export function $signal(value) {
40
158
  : action;
41
159
  if (newValue !== value) {
42
160
  value = newValue;
43
- for (const sub of subscribers) {
44
- scheduleEffect(sub);
45
- }
161
+ subscribers.forEach(sub => scheduleEffect(sub));
46
162
  }
47
163
  };
48
164
  }
@@ -58,19 +174,19 @@ export function $compare(fn) {
58
174
  current = newValue;
59
175
  // Only notify subscribers for new and old values
60
176
  if (prevSubs) {
61
- for (const sub of prevSubs)
62
- scheduleEffect(sub);
177
+ prevSubs.forEach(sub => scheduleEffect(sub));
63
178
  }
64
179
  if (nextSubs) {
65
- for (const sub of nextSubs)
66
- scheduleEffect(sub);
180
+ nextSubs.forEach(sub => scheduleEffect(sub));
67
181
  }
68
182
  }, true);
69
183
  return (value) => {
70
184
  if (currentEffect) {
71
185
  let subs = map.get(value);
72
- if (!subs)
73
- map.set(value, subs = new Set());
186
+ if (!subs) {
187
+ subs = new EffectBitSet();
188
+ map.set(value, subs);
189
+ }
74
190
  subs.add(currentEffect);
75
191
  currentEffect.deps.add(subs);
76
192
  const teardownFn = () => {
@@ -89,46 +205,40 @@ export function $compare(fn) {
89
205
  return current === value;
90
206
  };
91
207
  }
92
- class Effect {
93
- constructor(fn, stat, mv) {
94
- this._run = fn;
95
- this.deps = new Set();
96
- this.dyn = !stat;
97
- this.mv = !!mv;
98
- }
99
- run() {
100
- const td = this._run();
101
- if (td) {
102
- if (this.td) {
103
- this.td.push(td);
104
- }
105
- else {
106
- this.td = [td];
107
- }
208
+ function runEffectFn(effectFn) {
209
+ const td = effectFn.run();
210
+ if (td) {
211
+ if (effectFn.td) {
212
+ effectFn.td.push(td);
213
+ }
214
+ else {
215
+ effectFn.td = [td];
108
216
  }
109
217
  }
110
218
  }
111
219
  export function $effect(fn, stat, mv) {
112
- // const effectFn: EffectFn = {
113
- // run: fn,
114
- // deps: new Set(),
115
- // };
116
- // if (!stat) effectFn.dyn = true;
117
- // if (mv) effectFn.mv = true;
118
- const effectFn = new Effect(fn, stat, mv);
220
+ const effectFn = {
221
+ run: fn,
222
+ deps: new EffectBitSet(),
223
+ };
224
+ if (!stat)
225
+ effectFn.dyn = true;
226
+ if (mv)
227
+ effectFn.mv = true;
119
228
  const prev = currentEffect;
120
229
  currentEffect = effectFn;
121
- effectFn.run();
230
+ runEffectFn(effectFn);
122
231
  currentEffect = prev;
123
232
  collectEffect(effectFn);
124
233
  return effectFn;
125
234
  }
126
235
  export function cleanup(effectFn) {
127
- for (const subs of effectFn.deps) {
236
+ effectFn.deps.forEach(subs => {
128
237
  subs.delete(effectFn);
129
- }
238
+ });
130
239
  effectFn.deps.clear();
131
- if (effectFn.td)
240
+ if (effectFn.td) {
132
241
  for (const f of effectFn.td)
133
242
  f();
243
+ }
134
244
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thyn/core",
3
- "version": "0.0.118",
3
+ "version": "0.0.120",
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
@@ -1,10 +1,151 @@
1
1
  import { collectEffect } from "./element.js";
2
2
 
3
3
  let currentEffect: any;
4
-
5
4
  let isBatching: boolean | undefined;
6
5
  const pendingEffects = [];
7
6
 
7
+ // Global effect ID counter and registry
8
+ let nextEffectId = 0;
9
+ const effectRegistry = new Map<number, any>();
10
+
11
+ class BitSet {
12
+ private bits: Uint32Array;
13
+ private _size: number = 0;
14
+ private maxCapacity: number;
15
+
16
+ constructor(capacity: number = 1024) {
17
+ this.maxCapacity = capacity;
18
+ this.bits = new Uint32Array(Math.ceil(capacity / 32));
19
+ }
20
+
21
+ add(id: number): boolean {
22
+ if (id >= this.maxCapacity) return false;
23
+
24
+ const wordIndex = Math.floor(id / 32);
25
+ const bitIndex = id % 32;
26
+ const mask = 1 << bitIndex;
27
+
28
+ if (!(this.bits[wordIndex] & mask)) {
29
+ this.bits[wordIndex] |= mask;
30
+ this._size++;
31
+ return true;
32
+ }
33
+ return false;
34
+ }
35
+
36
+ has(id: number): boolean {
37
+ if (id >= this.maxCapacity) return false;
38
+
39
+ const wordIndex = Math.floor(id / 32);
40
+ const bitIndex = id % 32;
41
+ return !!(this.bits[wordIndex] & (1 << bitIndex));
42
+ }
43
+
44
+ delete(id: number): boolean {
45
+ if (id >= this.maxCapacity) return false;
46
+
47
+ const wordIndex = Math.floor(id / 32);
48
+ const bitIndex = id % 32;
49
+ const mask = 1 << bitIndex;
50
+
51
+ if (this.bits[wordIndex] & mask) {
52
+ this.bits[wordIndex] &= ~mask;
53
+ this._size--;
54
+ return true;
55
+ }
56
+ return false;
57
+ }
58
+
59
+ clear(): void {
60
+ this.bits.fill(0);
61
+ this._size = 0;
62
+ }
63
+
64
+ get size(): number {
65
+ return this._size;
66
+ }
67
+
68
+ *[Symbol.iterator](): Iterator<number> {
69
+ for (let wordIndex = 0; wordIndex < this.bits.length; wordIndex++) {
70
+ const word = this.bits[wordIndex];
71
+ if (word === 0) continue;
72
+
73
+ for (let bitIndex = 0; bitIndex < 32; bitIndex++) {
74
+ if (word & (1 << bitIndex)) {
75
+ yield wordIndex * 32 + bitIndex;
76
+ }
77
+ }
78
+ }
79
+ }
80
+
81
+ forEach(callback: (id: number) => void): void {
82
+ for (const id of this) {
83
+ callback(id);
84
+ }
85
+ }
86
+ }
87
+
88
+ // Wrapper to make BitSet work with effect objects
89
+ class EffectBitSet {
90
+ private bitSet: BitSet;
91
+ private effects: Map<any, number> = new Map();
92
+ private ids: Map<number, any> = new Map();
93
+
94
+ constructor(capacity: number = 1024) {
95
+ this.bitSet = new BitSet(capacity);
96
+ }
97
+
98
+ add(effect: any): boolean {
99
+ if (this.effects.has(effect)) return false;
100
+
101
+ // Assign ID to effect if it doesn't have one
102
+ if (!effect._id) {
103
+ effect._id = nextEffectId++;
104
+ effectRegistry.set(effect._id, effect);
105
+ }
106
+
107
+ this.effects.set(effect, effect._id);
108
+ this.ids.set(effect._id, effect);
109
+ return this.bitSet.add(effect._id);
110
+ }
111
+
112
+ has(effect: any): boolean {
113
+ return this.effects.has(effect);
114
+ }
115
+
116
+ delete(effect: any): boolean {
117
+ if (!this.effects.has(effect)) return false;
118
+
119
+ const id = this.effects.get(effect);
120
+ this.effects.delete(effect);
121
+ this.ids.delete(id);
122
+ return this.bitSet.delete(id);
123
+ }
124
+
125
+ clear(): void {
126
+ this.effects.clear();
127
+ this.ids.clear();
128
+ this.bitSet.clear();
129
+ }
130
+
131
+ get size(): number {
132
+ return this.bitSet.size;
133
+ }
134
+
135
+ *[Symbol.iterator](): Iterator<any> {
136
+ for (const id of this.bitSet) {
137
+ const effect = this.ids.get(id);
138
+ if (effect) yield effect;
139
+ }
140
+ }
141
+
142
+ forEach(callback: (effect: any) => void): void {
143
+ for (const effect of this) {
144
+ callback(effect);
145
+ }
146
+ }
147
+ }
148
+
8
149
  function scheduleEffect(effectFn: EffectFn) {
9
150
  pendingEffects.push(effectFn);
10
151
  if (!isBatching) {
@@ -15,10 +156,10 @@ function scheduleEffect(effectFn: EffectFn) {
15
156
  cleanup(ef);
16
157
  const prev = currentEffect;
17
158
  currentEffect = ef;
18
- ef.run();
159
+ runEffectFn(ef);
19
160
  currentEffect = prev;
20
161
  } else {
21
- ef.run();
162
+ runEffectFn(ef);
22
163
  }
23
164
  }
24
165
  pendingEffects.length = 0;
@@ -34,8 +175,8 @@ export type Signal<T> = {
34
175
  };
35
176
 
36
177
  export function $signal<T>(value: T): Signal<T> {
37
- const subscribers = new Set<any>();
38
-
178
+ const subscribers = new EffectBitSet();
179
+
39
180
  return (...args: [T] | [(prev: T) => T] | []) => {
40
181
  if (!args.length) {
41
182
  if (currentEffect) {
@@ -44,57 +185,58 @@ export function $signal<T>(value: T): Signal<T> {
44
185
  }
45
186
  return value;
46
187
  }
47
-
188
+
48
189
  const action = args[0];
49
190
  const newValue = typeof action === "function"
50
191
  ? (action as (prev: T) => T)(value)
51
192
  : action;
52
-
193
+
53
194
  if (newValue !== value) {
54
195
  value = newValue;
55
- for (const sub of subscribers) {
56
- scheduleEffect(sub);
57
- }
196
+ subscribers.forEach(sub => scheduleEffect(sub));
58
197
  }
59
198
  };
60
199
  }
61
200
 
62
201
  export function $compare<T>(fn: () => T): (value: T) => boolean {
63
- const map = new Map<T, Set<any>>();
202
+ const map = new Map<T, EffectBitSet>();
64
203
  let current: T = fn();
65
-
204
+
66
205
  $effect(() => {
67
206
  const newValue = fn();
68
207
  if (newValue === current) return;
69
-
208
+
70
209
  const prevSubs = map.get(current);
71
210
  const nextSubs = map.get(newValue);
72
-
73
211
  current = newValue;
74
-
212
+
75
213
  // Only notify subscribers for new and old values
76
214
  if (prevSubs) {
77
- for (const sub of prevSubs) scheduleEffect(sub);
215
+ prevSubs.forEach(sub => scheduleEffect(sub));
78
216
  }
79
217
  if (nextSubs) {
80
- for (const sub of nextSubs) scheduleEffect(sub);
218
+ nextSubs.forEach(sub => scheduleEffect(sub));
81
219
  }
82
220
  }, true);
83
-
221
+
84
222
  return (value: T) => {
85
223
  if (currentEffect) {
86
224
  let subs = map.get(value);
87
- if (!subs) map.set(value, subs = new Set());
225
+ if (!subs) {
226
+ subs = new EffectBitSet();
227
+ map.set(value, subs);
228
+ }
229
+
88
230
  subs.add(currentEffect);
89
231
  currentEffect.deps.add(subs);
90
-
232
+
91
233
  const teardownFn = () => {
92
234
  subs.delete(currentEffect);
93
235
  if (subs.size === 0) {
94
236
  map.delete(value);
95
237
  }
96
238
  };
97
-
239
+
98
240
  if (currentEffect.td) {
99
241
  currentEffect.td.push(teardownFn);
100
242
  } else {
@@ -105,60 +247,50 @@ export function $compare<T>(fn: () => T): (value: T) => boolean {
105
247
  };
106
248
  }
107
249
 
250
+ function runEffectFn(effectFn: EffectFn) {
251
+ const td = effectFn.run();
252
+ if (td) {
253
+ if (effectFn.td) {
254
+ effectFn.td.push(td);
255
+ } else {
256
+ effectFn.td = [td];
257
+ }
258
+ }
259
+ }
260
+
108
261
  interface EffectFn {
109
262
  run: () => (() => void) | void;
110
- deps: Set<any>;
263
+ deps: EffectBitSet;
111
264
  mv?: boolean;
112
265
  dyn?: boolean;
113
266
  td?: (() => void)[];
114
- }
115
-
116
- class Effect {
117
- constructor(fn: EffectFn["run"], stat?: boolean, mv?: boolean) {
118
- this._run = fn;
119
- this.deps = new Set();
120
- this.dyn = !stat;
121
- this.mv = !!mv;
122
- }
123
-
124
- _run: () => (() => void) | void;
125
- deps: Set<any>;
126
- mv: boolean;
127
- dyn: boolean;
128
- td?: (() => void)[];
129
-
130
- run() {
131
- const td = this._run();
132
- if (td) {
133
- if (this.td) {
134
- this.td.push(td);
135
- } else {
136
- this.td = [td];
137
- }
138
- }
139
- }
267
+ _id?: number; // Added for BitSet tracking
140
268
  }
141
269
 
142
270
  export function $effect(fn: EffectFn["run"], stat?: boolean, mv?: boolean) {
143
- // const effectFn: EffectFn = {
144
- // run: fn,
145
- // deps: new Set(),
146
- // };
147
- // if (!stat) effectFn.dyn = true;
148
- // if (mv) effectFn.mv = true;
149
- const effectFn = new Effect(fn, stat, mv);
271
+ const effectFn: EffectFn = {
272
+ run: fn,
273
+ deps: new EffectBitSet(),
274
+ };
275
+
276
+ if (!stat) effectFn.dyn = true;
277
+ if (mv) effectFn.mv = true;
278
+
150
279
  const prev = currentEffect;
151
280
  currentEffect = effectFn;
152
- effectFn.run();
281
+ runEffectFn(effectFn);
153
282
  currentEffect = prev;
154
283
  collectEffect(effectFn);
155
284
  return effectFn;
156
285
  }
157
286
 
158
287
  export function cleanup(effectFn: EffectFn) {
159
- for (const subs of effectFn.deps) {
288
+ effectFn.deps.forEach(subs => {
160
289
  subs.delete(effectFn);
161
- }
290
+ });
162
291
  effectFn.deps.clear();
163
- if (effectFn.td) for (const f of effectFn.td) f();
292
+
293
+ if (effectFn.td) {
294
+ for (const f of effectFn.td) f();
295
+ }
164
296
  }
@@ -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/@types/chai/index.d.ts","./node_modules/@types/estree/index.d.ts"],"fileIdsList":[[56],[52],[52,53],[53]],"fileInfos":[{"version":"69684132aeb9b5642cbcd9e22dff7818ff0ee1aa831728af0ecf97d3364d5546","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":"092c2bfe125ce69dbb1223c85d68d4d2397d7d8411867b5cc03cec902c233763","affectsGlobalScope":true,"impliedFormat":1},{"version":"07f073f19d67f74d732b1adea08e1dc66b1b58d77cb5b43931dee3d798a2fd53","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":"936e80ad36a2ee83fc3caf008e7c4c5afe45b3cf3d5c24408f039c1d47bdc1df","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":"fef8cfad2e2dc5f5b3d97a6f4f2e92848eb1b88e897bb7318cef0e2820bceaab","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":"1926e43f26ab4e2a452cc2a24c60f9bdb1d2b19d1325464a5f0d49b7f9357d6f","signature":"023d4a65a2edcc72ec807844eb922506c390d824622f6068a8322d9bc0d27d65"},{"version":"2d74bedd9c9890d22ac6126ef0a9c1fe9e612079831527d12405551b12bedc86","signature":"b7c09f81a2aff4251294010c6aae497cdc6d993b4b93d01689ac00f1ba75fbc0"},{"version":"f078bb1ffe7613336b4ba1e113f2efeb1807af583ac83d705f01a9cd868bfdd0","signature":"b1a9d2029bc09d94260873e1f48c13f05dda2176e23821d0b194812fcc9c3ccc"},{"version":"5af6ec6879f94e91634dd1c33e9665da6a3c248580114b44d16d5ff5dcf4e9f4","signature":"a32c52a25b47067dac589266e7667623ea1ef2b0c1f9c4fd41adbc7b67a59eee"},{"version":"427fe2004642504828c1476d0af4270e6ad4db6de78c0b5da3e4c5ca95052a99","impliedFormat":1},{"version":"c8905dbea83f3220676a669366cd8c1acef56af4d9d72a8b2241b1d044bb4302","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":[[57,1],[53,2],[54,3],[55,3],[52,4]],"latestChangedDtsFile":"./dist/signals.d.ts","version":"5.8.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/@types/chai/index.d.ts","./node_modules/@types/estree/index.d.ts"],"fileIdsList":[[56],[52],[52,53],[53]],"fileInfos":[{"version":"69684132aeb9b5642cbcd9e22dff7818ff0ee1aa831728af0ecf97d3364d5546","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":"092c2bfe125ce69dbb1223c85d68d4d2397d7d8411867b5cc03cec902c233763","affectsGlobalScope":true,"impliedFormat":1},{"version":"07f073f19d67f74d732b1adea08e1dc66b1b58d77cb5b43931dee3d798a2fd53","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":"936e80ad36a2ee83fc3caf008e7c4c5afe45b3cf3d5c24408f039c1d47bdc1df","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":"fef8cfad2e2dc5f5b3d97a6f4f2e92848eb1b88e897bb7318cef0e2820bceaab","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":"b7cd5d40ac927a3271492b629feba8d8dca0f3d7ead9e70214fd9fa8526ffc74","signature":"4fe26d754ec66034539f62e1606bc14548daa33da25d935836da22e3f474e456"},{"version":"2d74bedd9c9890d22ac6126ef0a9c1fe9e612079831527d12405551b12bedc86","signature":"b7c09f81a2aff4251294010c6aae497cdc6d993b4b93d01689ac00f1ba75fbc0"},{"version":"f078bb1ffe7613336b4ba1e113f2efeb1807af583ac83d705f01a9cd868bfdd0","signature":"b1a9d2029bc09d94260873e1f48c13f05dda2176e23821d0b194812fcc9c3ccc"},{"version":"5af6ec6879f94e91634dd1c33e9665da6a3c248580114b44d16d5ff5dcf4e9f4","signature":"a32c52a25b47067dac589266e7667623ea1ef2b0c1f9c4fd41adbc7b67a59eee"},{"version":"427fe2004642504828c1476d0af4270e6ad4db6de78c0b5da3e4c5ca95052a99","impliedFormat":1},{"version":"c8905dbea83f3220676a669366cd8c1acef56af4d9d72a8b2241b1d044bb4302","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":[[57,1],[53,2],[54,3],[55,3],[52,4]],"latestChangedDtsFile":"./dist/signals.d.ts","version":"5.8.3"}