@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 +15 -1
- package/dist/signals.js +136 -40
- package/package.json +1 -1
- package/src/signals.ts +172 -40
- package/tsconfig.tsbuildinfo +1 -1
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:
|
|
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
|
-
|
|
33
|
-
|
|
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
|
-
|
|
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
|
-
|
|
69
|
-
scheduleEffect(sub);
|
|
177
|
+
prevSubs.forEach(sub => scheduleEffect(sub));
|
|
70
178
|
}
|
|
71
179
|
if (nextSubs) {
|
|
72
|
-
|
|
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
|
-
|
|
84
|
-
|
|
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
|
-
|
|
93
|
-
if (
|
|
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:
|
|
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
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
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
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
|
|
178
|
+
const subscribers = new EffectBitSet();
|
|
179
|
+
|
|
36
180
|
return (...args: [T] | [(prev: T) => T] | []) => {
|
|
37
181
|
if (!args.length) {
|
|
38
182
|
if (currentEffect) {
|
|
39
|
-
|
|
40
|
-
|
|
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
|
-
|
|
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,
|
|
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
|
-
|
|
215
|
+
prevSubs.forEach(sub => scheduleEffect(sub));
|
|
77
216
|
}
|
|
78
217
|
if (nextSubs) {
|
|
79
|
-
|
|
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
|
-
|
|
92
|
-
|
|
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
|
-
|
|
103
|
-
if (
|
|
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:
|
|
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:
|
|
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
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
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
|
}
|
package/tsconfig.tsbuildinfo
CHANGED
|
@@ -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"}
|