@thyn/core 0.0.119 → 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,10 +20,11 @@ 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: any[];
23
+ deps: EffectBitSet;
11
24
  mv?: boolean;
12
25
  dyn?: boolean;
13
26
  td?: (() => void)[];
27
+ _id?: number;
14
28
  }
15
29
  export declare function $effect(fn: EffectFn["run"], stat?: boolean, mv?: boolean): EffectFn;
16
30
  export declare function cleanup(effectFn: EffectFn): void;
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) {
@@ -25,18 +143,12 @@ function scheduleEffect(effectFn) {
25
143
  }
26
144
  }
27
145
  export function $signal(value) {
28
- const subscribers = [];
146
+ const subscribers = new EffectBitSet();
29
147
  return (...args) => {
30
148
  if (!args.length) {
31
149
  if (currentEffect) {
32
- // Add subscriber if not already present
33
- if (!subscribers.includes(currentEffect)) {
34
- subscribers.push(currentEffect);
35
- }
36
- // Add to current effect's dependencies
37
- if (!currentEffect.deps.includes(subscribers)) {
38
- currentEffect.deps.push(subscribers);
39
- }
150
+ subscribers.add(currentEffect);
151
+ currentEffect.deps.add(subscribers);
40
152
  }
41
153
  return value;
42
154
  }
@@ -46,10 +158,7 @@ export function $signal(value) {
46
158
  : action;
47
159
  if (newValue !== value) {
48
160
  value = newValue;
49
- // Iterate through subscribers array
50
- for (const sub of subscribers) {
51
- scheduleEffect(sub);
52
- }
161
+ subscribers.forEach(sub => scheduleEffect(sub));
53
162
  }
54
163
  };
55
164
  }
@@ -65,35 +174,24 @@ export function $compare(fn) {
65
174
  current = newValue;
66
175
  // Only notify subscribers for new and old values
67
176
  if (prevSubs) {
68
- for (const sub of prevSubs)
69
- scheduleEffect(sub);
177
+ prevSubs.forEach(sub => scheduleEffect(sub));
70
178
  }
71
179
  if (nextSubs) {
72
- for (const sub of nextSubs)
73
- scheduleEffect(sub);
180
+ nextSubs.forEach(sub => scheduleEffect(sub));
74
181
  }
75
182
  }, true);
76
183
  return (value) => {
77
184
  if (currentEffect) {
78
185
  let subs = map.get(value);
79
186
  if (!subs) {
80
- subs = [];
187
+ subs = new EffectBitSet();
81
188
  map.set(value, subs);
82
189
  }
83
- // Add subscriber if not already present
84
- if (!subs.includes(currentEffect)) {
85
- subs.push(currentEffect);
86
- }
87
- // Add to current effect's dependencies
88
- if (!currentEffect.deps.includes(subs)) {
89
- currentEffect.deps.push(subs);
90
- }
190
+ subs.add(currentEffect);
191
+ currentEffect.deps.add(subs);
91
192
  const teardownFn = () => {
92
- const idx = subs.indexOf(currentEffect);
93
- if (idx !== -1) {
94
- subs.splice(idx, 1);
95
- }
96
- if (subs.length === 0) {
193
+ subs.delete(currentEffect);
194
+ if (subs.size === 0) {
97
195
  map.delete(value);
98
196
  }
99
197
  };
@@ -121,7 +219,7 @@ function runEffectFn(effectFn) {
121
219
  export function $effect(fn, stat, mv) {
122
220
  const effectFn = {
123
221
  run: fn,
124
- deps: [], // Changed from new Set() to []
222
+ deps: new EffectBitSet(),
125
223
  };
126
224
  if (!stat)
127
225
  effectFn.dyn = true;
@@ -135,14 +233,12 @@ export function $effect(fn, stat, mv) {
135
233
  return effectFn;
136
234
  }
137
235
  export function cleanup(effectFn) {
138
- for (const subs of effectFn.deps) {
139
- const idx = subs.indexOf(effectFn);
140
- if (idx !== -1) {
141
- subs.splice(idx, 1);
142
- }
143
- }
144
- effectFn.deps.length = 0; // Changed from .clear() to .length = 0
145
- if (effectFn.td)
236
+ effectFn.deps.forEach(subs => {
237
+ subs.delete(effectFn);
238
+ });
239
+ effectFn.deps.clear();
240
+ if (effectFn.td) {
146
241
  for (const f of effectFn.td)
147
242
  f();
243
+ }
148
244
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thyn/core",
3
- "version": "0.0.119",
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,8 +1,151 @@
1
1
  import { collectEffect } from "./element.js";
2
+
2
3
  let currentEffect: any;
3
4
  let isBatching: boolean | undefined;
4
5
  const pendingEffects = [];
5
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
+
6
149
  function scheduleEffect(effectFn: EffectFn) {
7
150
  pendingEffects.push(effectFn);
8
151
  if (!isBatching) {
@@ -32,51 +175,47 @@ export type Signal<T> = {
32
175
  };
33
176
 
34
177
  export function $signal<T>(value: T): Signal<T> {
35
- const subscribers: any[] = [];
178
+ const subscribers = new EffectBitSet();
179
+
36
180
  return (...args: [T] | [(prev: T) => T] | []) => {
37
181
  if (!args.length) {
38
182
  if (currentEffect) {
39
- // Add subscriber if not already present
40
- if (!subscribers.includes(currentEffect)) {
41
- subscribers.push(currentEffect);
42
- }
43
- // Add to current effect's dependencies
44
- if (!currentEffect.deps.includes(subscribers)) {
45
- currentEffect.deps.push(subscribers);
46
- }
183
+ subscribers.add(currentEffect);
184
+ currentEffect.deps.add(subscribers);
47
185
  }
48
186
  return value;
49
187
  }
188
+
50
189
  const action = args[0];
51
190
  const newValue = typeof action === "function"
52
191
  ? (action as (prev: T) => T)(value)
53
192
  : action;
193
+
54
194
  if (newValue !== value) {
55
195
  value = newValue;
56
- // Iterate through subscribers array
57
- for (const sub of subscribers) {
58
- scheduleEffect(sub);
59
- }
196
+ subscribers.forEach(sub => scheduleEffect(sub));
60
197
  }
61
198
  };
62
199
  }
63
200
 
64
201
  export function $compare<T>(fn: () => T): (value: T) => boolean {
65
- const map = new Map<T, any[]>();
202
+ const map = new Map<T, EffectBitSet>();
66
203
  let current: T = fn();
67
204
 
68
205
  $effect(() => {
69
206
  const newValue = fn();
70
207
  if (newValue === current) return;
208
+
71
209
  const prevSubs = map.get(current);
72
210
  const nextSubs = map.get(newValue);
73
211
  current = newValue;
212
+
74
213
  // Only notify subscribers for new and old values
75
214
  if (prevSubs) {
76
- for (const sub of prevSubs) scheduleEffect(sub);
215
+ prevSubs.forEach(sub => scheduleEffect(sub));
77
216
  }
78
217
  if (nextSubs) {
79
- for (const sub of nextSubs) scheduleEffect(sub);
218
+ nextSubs.forEach(sub => scheduleEffect(sub));
80
219
  }
81
220
  }, true);
82
221
 
@@ -84,26 +223,16 @@ export function $compare<T>(fn: () => T): (value: T) => boolean {
84
223
  if (currentEffect) {
85
224
  let subs = map.get(value);
86
225
  if (!subs) {
87
- subs = [];
226
+ subs = new EffectBitSet();
88
227
  map.set(value, subs);
89
228
  }
90
229
 
91
- // Add subscriber if not already present
92
- if (!subs.includes(currentEffect)) {
93
- subs.push(currentEffect);
94
- }
95
-
96
- // Add to current effect's dependencies
97
- if (!currentEffect.deps.includes(subs)) {
98
- currentEffect.deps.push(subs);
99
- }
230
+ subs.add(currentEffect);
231
+ currentEffect.deps.add(subs);
100
232
 
101
233
  const teardownFn = () => {
102
- const idx = subs.indexOf(currentEffect);
103
- if (idx !== -1) {
104
- subs.splice(idx, 1);
105
- }
106
- if (subs.length === 0) {
234
+ subs.delete(currentEffect);
235
+ if (subs.size === 0) {
107
236
  map.delete(value);
108
237
  }
109
238
  };
@@ -131,19 +260,22 @@ function runEffectFn(effectFn: EffectFn) {
131
260
 
132
261
  interface EffectFn {
133
262
  run: () => (() => void) | void;
134
- deps: any[]; // Changed from Set<any> to any[]
263
+ deps: EffectBitSet;
135
264
  mv?: boolean;
136
265
  dyn?: boolean;
137
266
  td?: (() => void)[];
267
+ _id?: number; // Added for BitSet tracking
138
268
  }
139
269
 
140
270
  export function $effect(fn: EffectFn["run"], stat?: boolean, mv?: boolean) {
141
271
  const effectFn: EffectFn = {
142
272
  run: fn,
143
- deps: [], // Changed from new Set() to []
273
+ deps: new EffectBitSet(),
144
274
  };
275
+
145
276
  if (!stat) effectFn.dyn = true;
146
277
  if (mv) effectFn.mv = true;
278
+
147
279
  const prev = currentEffect;
148
280
  currentEffect = effectFn;
149
281
  runEffectFn(effectFn);
@@ -153,12 +285,12 @@ export function $effect(fn: EffectFn["run"], stat?: boolean, mv?: boolean) {
153
285
  }
154
286
 
155
287
  export function cleanup(effectFn: EffectFn) {
156
- for (const subs of effectFn.deps) {
157
- const idx = subs.indexOf(effectFn);
158
- if (idx !== -1) {
159
- subs.splice(idx, 1);
160
- }
288
+ effectFn.deps.forEach(subs => {
289
+ subs.delete(effectFn);
290
+ });
291
+ effectFn.deps.clear();
292
+
293
+ if (effectFn.td) {
294
+ for (const f of effectFn.td) f();
161
295
  }
162
- effectFn.deps.length = 0; // Changed from .clear() to .length = 0
163
- if (effectFn.td) for (const f of effectFn.td) f();
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":"fb0d7b67c83061b4a565a4599fb35a676b06debcfa533e49f750dcfc4b400252","signature":"ef5bfa2f4ead30a2092efa7a1f2ed077f49ffa52262dff32060368986c2c5347"},{"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"}