mutts 1.0.8 → 1.0.10
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/README.md +77 -35
- package/dist/browser.cjs +2144 -5355
- package/dist/browser.cjs.map +1 -1
- package/dist/browser.d.ts +2 -1655
- package/dist/browser.dev.cjs +110 -0
- package/dist/browser.dev.cjs.map +1 -0
- package/dist/browser.dev.d.ts +2 -0
- package/dist/browser.dev.esm.js +5 -0
- package/dist/browser.dev.esm.js.map +1 -0
- package/dist/browser.esm.js +20 -107
- package/dist/browser.esm.js.map +1 -1
- package/dist/chunks/{async-browser-CA0jPWIi.cjs → async-browser-BU_IfxYD.cjs} +19 -107
- package/dist/chunks/async-browser-BU_IfxYD.cjs.map +1 -0
- package/dist/chunks/{async-core-UqHzvJ-S.cjs → async-core-CRLKP3l-.cjs} +8 -4
- package/dist/chunks/async-core-CRLKP3l-.cjs.map +1 -0
- package/dist/chunks/{async-node-BYHuGTni.cjs → async-node-3PrbVAbB.cjs} +7 -12
- package/dist/chunks/async-node-3PrbVAbB.cjs.map +1 -0
- package/dist/chunks/index-CaaQQlPJ.esm.js +3174 -0
- package/dist/chunks/index-CaaQQlPJ.esm.js.map +1 -0
- package/dist/chunks/node-nKJBk8iJ.esm.js +96 -0
- package/dist/chunks/node-nKJBk8iJ.esm.js.map +1 -0
- package/dist/chunks/proxy-Dtg-bJ3T.cjs +3763 -0
- package/dist/chunks/proxy-Dtg-bJ3T.cjs.map +1 -0
- package/dist/chunks/proxy-r7lARftl.esm.js +3701 -0
- package/dist/chunks/proxy-r7lARftl.esm.js.map +1 -0
- package/dist/debug.cjs +980 -0
- package/dist/debug.cjs.map +1 -0
- package/dist/debug.d.ts +208 -0
- package/dist/debug.esm.js +950 -0
- package/dist/debug.esm.js.map +1 -0
- package/dist/devtools/manifest.json +1 -1
- package/dist/devtools/panel.html +1 -1
- package/dist/devtools/panel.js +107 -94
- package/dist/devtools/panel.js.map +1 -1
- package/dist/index.d.ts +1447 -13
- package/dist/mutts.umd.js +7167 -1
- package/dist/mutts.umd.js.map +1 -1
- package/dist/mutts.umd.min.js +1 -1
- package/dist/mutts.umd.min.js.map +1 -1
- package/dist/node.cjs +70 -66
- package/dist/node.cjs.map +1 -1
- package/dist/node.d.ts +2 -1
- package/dist/node.dev.cjs +110 -0
- package/dist/node.dev.cjs.map +1 -0
- package/dist/node.dev.d.ts +2 -0
- package/dist/node.dev.esm.js +6 -0
- package/dist/node.dev.esm.js.map +1 -0
- package/dist/node.esm.js +4 -103
- package/dist/node.esm.js.map +1 -1
- package/dist/{reactive/types.d.ts → types-W5vD6m2n.d.ts} +186 -93
- package/docs/ai/api-reference.md +12 -19
- package/docs/ai/manual.md +521 -17
- package/docs/events.md +57 -2
- package/docs/flavored.md +210 -0
- package/docs/reactive/advanced.md +314 -5
- package/docs/reactive/attend.md +142 -0
- package/docs/reactive/collections.md +76 -39
- package/docs/reactive/core.md +100 -14
- package/docs/reactive/debugging.md +123 -18
- package/docs/reactive/error-handling.md +121 -0
- package/docs/reactive/resource.md +125 -0
- package/docs/reactive/scan.md +247 -1
- package/docs/reactive.md +4 -1
- package/docs/std-decorators.md +102 -51
- package/docs/utils.md +70 -0
- package/docs/zone.md +3 -7
- package/package.json +64 -30
- package/dist/async/browser.d.ts +0 -2
- package/dist/async/browser.d.ts.map +0 -1
- package/dist/async/index.d.ts +0 -18
- package/dist/async/index.d.ts.map +0 -1
- package/dist/async/node.d.ts +0 -2
- package/dist/async/node.d.ts.map +0 -1
- package/dist/chunks/async-browser-CA0jPWIi.cjs.map +0 -1
- package/dist/chunks/async-core-UqHzvJ-S.cjs.map +0 -1
- package/dist/chunks/async-node-BYHuGTni.cjs.map +0 -1
- package/dist/chunks/index-DhaOVusv.esm.js +0 -6411
- package/dist/chunks/index-DhaOVusv.esm.js.map +0 -1
- package/dist/decorator.d.ts +0 -106
- package/dist/decorator.d.ts.map +0 -1
- package/dist/destroyable.d.ts +0 -87
- package/dist/destroyable.d.ts.map +0 -1
- package/dist/entry-browser.d.ts +0 -3
- package/dist/entry-browser.d.ts.map +0 -1
- package/dist/entry-node.d.ts +0 -3
- package/dist/entry-node.d.ts.map +0 -1
- package/dist/eventful.d.ts +0 -18
- package/dist/eventful.d.ts.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/indexable.d.ts +0 -243
- package/dist/indexable.d.ts.map +0 -1
- package/dist/introspection.d.ts +0 -27
- package/dist/introspection.d.ts.map +0 -1
- package/dist/iterableWeak.d.ts +0 -53
- package/dist/iterableWeak.d.ts.map +0 -1
- package/dist/mixins.d.ts +0 -25
- package/dist/mixins.d.ts.map +0 -1
- package/dist/promiseChain.d.ts +0 -20
- package/dist/promiseChain.d.ts.map +0 -1
- package/dist/reactive/array.d.ts +0 -49
- package/dist/reactive/array.d.ts.map +0 -1
- package/dist/reactive/buffer.d.ts +0 -44
- package/dist/reactive/buffer.d.ts.map +0 -1
- package/dist/reactive/change.d.ts +0 -29
- package/dist/reactive/change.d.ts.map +0 -1
- package/dist/reactive/debug.d.ts +0 -111
- package/dist/reactive/debug.d.ts.map +0 -1
- package/dist/reactive/deep-touch.d.ts +0 -28
- package/dist/reactive/deep-touch.d.ts.map +0 -1
- package/dist/reactive/deep-watch-state.d.ts +0 -25
- package/dist/reactive/deep-watch-state.d.ts.map +0 -1
- package/dist/reactive/deep-watch.d.ts +0 -19
- package/dist/reactive/deep-watch.d.ts.map +0 -1
- package/dist/reactive/effect-context.d.ts +0 -7
- package/dist/reactive/effect-context.d.ts.map +0 -1
- package/dist/reactive/effects.d.ts +0 -151
- package/dist/reactive/effects.d.ts.map +0 -1
- package/dist/reactive/index.d.ts +0 -20
- package/dist/reactive/index.d.ts.map +0 -1
- package/dist/reactive/interface.d.ts +0 -64
- package/dist/reactive/interface.d.ts.map +0 -1
- package/dist/reactive/map.d.ts +0 -30
- package/dist/reactive/map.d.ts.map +0 -1
- package/dist/reactive/memoize.d.ts +0 -5
- package/dist/reactive/memoize.d.ts.map +0 -1
- package/dist/reactive/non-reactive-state.d.ts +0 -9
- package/dist/reactive/non-reactive-state.d.ts.map +0 -1
- package/dist/reactive/non-reactive.d.ts +0 -11
- package/dist/reactive/non-reactive.d.ts.map +0 -1
- package/dist/reactive/project.d.ts +0 -41
- package/dist/reactive/project.d.ts.map +0 -1
- package/dist/reactive/proxy-state.d.ts +0 -8
- package/dist/reactive/proxy-state.d.ts.map +0 -1
- package/dist/reactive/proxy.d.ts +0 -23
- package/dist/reactive/proxy.d.ts.map +0 -1
- package/dist/reactive/record.d.ts +0 -116
- package/dist/reactive/record.d.ts.map +0 -1
- package/dist/reactive/register.d.ts +0 -64
- package/dist/reactive/register.d.ts.map +0 -1
- package/dist/reactive/registry.d.ts +0 -20
- package/dist/reactive/registry.d.ts.map +0 -1
- package/dist/reactive/set.d.ts +0 -28
- package/dist/reactive/set.d.ts.map +0 -1
- package/dist/reactive/tracking.d.ts +0 -7
- package/dist/reactive/tracking.d.ts.map +0 -1
- package/dist/reactive/types.d.ts.map +0 -1
- package/dist/std-decorators.d.ts +0 -50
- package/dist/std-decorators.d.ts.map +0 -1
- package/dist/utils.d.ts +0 -49
- package/dist/utils.d.ts.map +0 -1
- package/dist/zone.d.ts +0 -40
- package/dist/zone.d.ts.map +0 -1
- package/docs/reactive/project.md +0 -93
- package/src/async/browser.ts +0 -319
- package/src/async/index.ts +0 -23
- package/src/async/node.ts +0 -104
- package/src/decorator.ts +0 -272
- package/src/destroyable.ts +0 -199
- package/src/entry-browser.ts +0 -5
- package/src/entry-node.ts +0 -5
- package/src/eventful.ts +0 -77
- package/src/index.d.ts +0 -12
- package/src/index.ts +0 -64
- package/src/indexable.ts +0 -526
- package/src/introspection.ts +0 -59
- package/src/iterableWeak.ts +0 -233
- package/src/mixins.ts +0 -123
- package/src/promiseChain.ts +0 -110
- package/src/reactive/array.ts +0 -507
- package/src/reactive/buffer.ts +0 -168
- package/src/reactive/change.ts +0 -138
- package/src/reactive/debug.ts +0 -517
- package/src/reactive/deep-touch.ts +0 -268
- package/src/reactive/deep-watch-state.ts +0 -82
- package/src/reactive/deep-watch.ts +0 -168
- package/src/reactive/effect-context.ts +0 -18
- package/src/reactive/effects.ts +0 -1382
- package/src/reactive/index.ts +0 -75
- package/src/reactive/interface.ts +0 -210
- package/src/reactive/map.ts +0 -158
- package/src/reactive/memoize.ts +0 -163
- package/src/reactive/non-reactive-state.ts +0 -49
- package/src/reactive/non-reactive.ts +0 -43
- package/src/reactive/project.ts +0 -453
- package/src/reactive/proxy-state.ts +0 -27
- package/src/reactive/proxy.ts +0 -264
- package/src/reactive/record.ts +0 -196
- package/src/reactive/register.ts +0 -419
- package/src/reactive/registry.ts +0 -59
- package/src/reactive/set.ts +0 -130
- package/src/reactive/tracking.ts +0 -44
- package/src/reactive/types.ts +0 -440
- package/src/std-decorators.ts +0 -217
- package/src/utils.ts +0 -301
- package/src/zone.ts +0 -138
package/dist/promiseChain.d.ts
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
type Resolved<T> = T extends Promise<infer U> ? Resolved<U> : T extends (...args: infer Args) => infer R ? (...args: Args) => Resolved<R> : T extends object ? {
|
|
2
|
-
[k in keyof T]: k extends 'then' | 'catch' | 'finally' ? T[k] : Resolved<T[k]>;
|
|
3
|
-
} : T;
|
|
4
|
-
type PromiseAnd<T> = Resolved<T> & Promise<Resolved<T>>;
|
|
5
|
-
/**
|
|
6
|
-
* Type that transforms promises into chainable objects
|
|
7
|
-
* Allows calling methods directly on promise results without awaiting them first
|
|
8
|
-
*/
|
|
9
|
-
export type PromiseChain<T> = T extends (...args: infer Args) => infer R ? PromiseAnd<(...args: Args) => PromiseChain<Resolved<R>>> : T extends object ? PromiseAnd<{
|
|
10
|
-
[k in keyof T]: k extends 'then' | 'catch' | 'finally' ? T[k] : PromiseChain<Resolved<T[k]>>;
|
|
11
|
-
}> : Promise<Resolved<T>>;
|
|
12
|
-
/**
|
|
13
|
-
* Transforms a promise or value into a chainable object
|
|
14
|
-
* Allows calling methods directly on promise results without awaiting them first
|
|
15
|
-
* @param given - The promise or value to make chainable
|
|
16
|
-
* @returns A chainable version of the input
|
|
17
|
-
*/
|
|
18
|
-
export declare function chainPromise<T>(given: Promise<T> | T): PromiseChain<T>;
|
|
19
|
-
export {};
|
|
20
|
-
//# sourceMappingURL=promiseChain.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"promiseChain.d.ts","sourceRoot":"","sources":["../src/promiseChain.ts"],"names":[],"mappings":"AAAA,KAAK,QAAQ,CAAC,CAAC,IACd,CAAC,SAAS,OAAO,CAAC,MAAM,CAAC,CAAC,GACvB,QAAQ,CAAC,CAAC,CAAC,GACX,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,MAAM,IAAI,KAAK,MAAM,CAAC,GACzC,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,GAC9B,CAAC,SAAS,MAAM,GACf;KACC,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,SAAS,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAC9E,GACA,CAAC,CAAA;AACP,KAAK,UAAU,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;AACvD;;;GAGG;AACH,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,MAAM,IAAI,KAAK,MAAM,CAAC,GACrE,UAAU,CAAC,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,GACxD,CAAC,SAAS,MAAM,GACf,UAAU,CAAC;KACV,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,SAAS,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAC5F,CAAC,GACD,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;AA6DxB;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAqBtE"}
|
package/dist/reactive/array.d.ts
DELETED
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
export declare abstract class Indexer extends Array {
|
|
2
|
-
get(i: number): any;
|
|
3
|
-
set(i: number, value: any): void;
|
|
4
|
-
getLength(): number;
|
|
5
|
-
setLength(value: number): void;
|
|
6
|
-
}
|
|
7
|
-
export declare abstract class ReactiveArray extends Array {
|
|
8
|
-
toJSON(): this;
|
|
9
|
-
get [Symbol.toStringTag](): string;
|
|
10
|
-
at(index: number): any;
|
|
11
|
-
toReversed(): any[];
|
|
12
|
-
toSorted(compareFn?: (a: any, b: any) => number): any[];
|
|
13
|
-
toSpliced(start: number, deleteCount?: number, ...items: any[]): any[];
|
|
14
|
-
with(index: number, value: any): any[];
|
|
15
|
-
entries(): any;
|
|
16
|
-
keys(): any;
|
|
17
|
-
values(): any;
|
|
18
|
-
[Symbol.iterator](): ArrayIterator<any>;
|
|
19
|
-
indexOf(searchElement: any, fromIndex?: number): number;
|
|
20
|
-
lastIndexOf(searchElement: any, fromIndex?: number): number;
|
|
21
|
-
includes(searchElement: any, fromIndex?: number): boolean;
|
|
22
|
-
find(predicate: (this: any, value: any, index: number, obj: any[]) => boolean, thisArg?: any): any;
|
|
23
|
-
find(searchElement: any, fromIndex?: number): any;
|
|
24
|
-
findIndex(predicate: (this: any, value: any, index: number, obj: any[]) => boolean, thisArg?: any): number;
|
|
25
|
-
findIndex(searchElement: any, fromIndex?: number): number;
|
|
26
|
-
flat(depth?: number): any[];
|
|
27
|
-
flatMap(callbackfn: (this: any, value: any, index: number, array: any[]) => any[], thisArg?: any): any[];
|
|
28
|
-
filter(callbackfn: (value: any, index: number, array: any[]) => boolean, thisArg?: any): any[];
|
|
29
|
-
map(callbackfn: (value: any, index: number, array: any[]) => any, thisArg?: any): any[];
|
|
30
|
-
reduce(callbackfn: (previousValue: any, currentValue: any, currentIndex: number, array: any[]) => any, initialValue?: any): any;
|
|
31
|
-
reduceRight(callbackfn: (previousValue: any, currentValue: any, currentIndex: number, array: any[]) => any, initialValue?: any): any;
|
|
32
|
-
slice(start?: number, end?: number): any[];
|
|
33
|
-
concat(...items: any[]): any[];
|
|
34
|
-
join(separator?: string): string;
|
|
35
|
-
forEach(callbackfn: (value: any, index: number, array: any[]) => void, thisArg?: any): void;
|
|
36
|
-
every<S>(predicate: (value: any, index: number, array: any[]) => value is S, thisArg?: any): this is S[];
|
|
37
|
-
every(callbackfn: (value: any, index: number, array: any[]) => boolean, thisArg?: any): boolean;
|
|
38
|
-
some(callbackfn: (value: any, index: number, array: any[]) => boolean, thisArg?: any): boolean;
|
|
39
|
-
push(...items: any[]): any;
|
|
40
|
-
pop(): any;
|
|
41
|
-
shift(): any;
|
|
42
|
-
unshift(...items: any[]): any;
|
|
43
|
-
splice(start: number, deleteCount?: number, ...items: any[]): any;
|
|
44
|
-
reverse(): any;
|
|
45
|
-
sort(compareFn?: (a: any, b: any) => number): any;
|
|
46
|
-
fill(value: any, start?: number, end?: number): any;
|
|
47
|
-
copyWithin(target: number, start: number, end?: number): any;
|
|
48
|
-
}
|
|
49
|
-
//# sourceMappingURL=array.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"array.d.ts","sourceRoot":"","sources":["../../src/reactive/array.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import { cleanup } from './interface';
|
|
2
|
-
import type { ScopedCallback } from './types';
|
|
3
|
-
/**
|
|
4
|
-
* Result of a reactive scan, which is a reactive array of accumulated values
|
|
5
|
-
* with an attached cleanup function.
|
|
6
|
-
*/
|
|
7
|
-
export type ScanResult<Output> = readonly Output[] & {
|
|
8
|
-
[cleanup]: ScopedCallback;
|
|
9
|
-
};
|
|
10
|
-
/**
|
|
11
|
-
* Perform a reactive scan over an array of items.
|
|
12
|
-
*
|
|
13
|
-
* This implementation is highly optimized for performance and fine-grained reactivity:
|
|
14
|
-
* - **Incremental Updates**: Changes to an item only trigger re-computation from that
|
|
15
|
-
* point onwards in the result chain.
|
|
16
|
-
* - **Move Optimization**: If items are moved within the array, their accumulated
|
|
17
|
-
* values are reused as long as their predecessor remains the same.
|
|
18
|
-
* - **Duplicate Support**: Correctly handles multiple occurrences of the same object
|
|
19
|
-
* instance using an internal occurrence tracking mechanism.
|
|
20
|
-
* - **Memory Efficient**: Uses `WeakMap` for caching intermediates, which are
|
|
21
|
-
* automatically cleared when source items are garbage collected.
|
|
22
|
-
*
|
|
23
|
-
* @example
|
|
24
|
-
* ```typescript
|
|
25
|
-
* const source = reactive([{ val: 1 }, { val: 2 }, { val: 3 }])
|
|
26
|
-
* const sum = scan(source, (acc, item) => acc + item.val, 0)
|
|
27
|
-
*
|
|
28
|
-
* expect([...sum]).toEqual([1, 3, 6])
|
|
29
|
-
*
|
|
30
|
-
* // Modifying an item only re-computes subsequent sums
|
|
31
|
-
* source[1].val = 10
|
|
32
|
-
* expect([...sum]).toEqual([1, 11, 14])
|
|
33
|
-
* ```
|
|
34
|
-
*
|
|
35
|
-
* @param source The source array of objects (will be made reactive)
|
|
36
|
-
* @param callback The accumulator function called with (accumulator, currentItem)
|
|
37
|
-
* @param initialValue The starting value for the accumulation
|
|
38
|
-
* @returns A reactive array of accumulated values, with a [cleanup] property to stop the tracking
|
|
39
|
-
*/
|
|
40
|
-
export declare function scan<Input extends object, Output>(source: readonly Input[], callback: (acc: Output, val: Input) => Output, initialValue: Output): ScanResult<Output>;
|
|
41
|
-
export declare function resolve<Output>(cb: () => Output[]): Output[] & {
|
|
42
|
-
[cleanup]: ScopedCallback;
|
|
43
|
-
};
|
|
44
|
-
//# sourceMappingURL=buffer.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"buffer.d.ts","sourceRoot":"","sources":["../../src/reactive/buffer.ts"],"names":[],"mappings":"AAEA,OAAO,EAAa,OAAO,EAAE,MAAM,aAAa,CAAA;AAGhD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAE7C;;;GAGG;AACH,MAAM,MAAM,UAAU,CAAC,MAAM,IAAI,SAAS,MAAM,EAAE,GAAG;IAAE,CAAC,OAAO,CAAC,EAAE,cAAc,CAAA;CAAE,CAAA;AAElF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,IAAI,CAAC,KAAK,SAAS,MAAM,EAAE,MAAM,EAChD,MAAM,EAAE,SAAS,KAAK,EAAE,EACxB,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,KAAK,MAAM,EAC7C,YAAY,EAAE,MAAM,GAClB,UAAU,CAAC,MAAM,CAAC,CA8GpB;AAED,wBAAgB,OAAO,CAAC,MAAM,EAAE,EAAE,EAAE,MAAM,MAAM,EAAE,GAAG,MAAM,EAAE,GAAG;IAAE,CAAC,OAAO,CAAC,EAAE,cAAc,CAAA;CAAE,CAQ5F"}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { type Evolution, type ScopedCallback, type State } from './types';
|
|
2
|
-
export declare function addState(obj: any, evolution: Evolution): void;
|
|
3
|
-
/**
|
|
4
|
-
* Gets the current state of a reactive object for evolution tracking
|
|
5
|
-
* @param obj - The reactive object
|
|
6
|
-
* @returns The current state object
|
|
7
|
-
*/
|
|
8
|
-
export declare function getState(obj: any): State;
|
|
9
|
-
export declare function collectEffects(obj: any, evolution: Evolution, effects: Set<ScopedCallback>, objectWatchers: Map<any, Set<ScopedCallback>>, ...keyChains: Iterable<any>[]): void;
|
|
10
|
-
/**
|
|
11
|
-
* Triggers effects for a single property change
|
|
12
|
-
* @param obj - The object that changed
|
|
13
|
-
* @param evolution - The type of change
|
|
14
|
-
* @param prop - The property that changed
|
|
15
|
-
*/
|
|
16
|
-
export declare function touched1(obj: any, evolution: Evolution, prop: any): void;
|
|
17
|
-
/**
|
|
18
|
-
* Triggers effects for property changes
|
|
19
|
-
* @param obj - The object that changed
|
|
20
|
-
* @param evolution - The type of change
|
|
21
|
-
* @param props - The properties that changed
|
|
22
|
-
*/
|
|
23
|
-
export declare function touched(obj: any, evolution: Evolution, props?: Iterable<any>): void;
|
|
24
|
-
/**
|
|
25
|
-
* Triggers only opaque effects for property changes
|
|
26
|
-
* Used by deep-touch to ensure opaque listeners are notified even when deep optimization is active
|
|
27
|
-
*/
|
|
28
|
-
export declare function touchedOpaque(obj: any, evolution: Evolution, prop: any): void;
|
|
29
|
-
//# sourceMappingURL=change.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"change.d.ts","sourceRoot":"","sources":["../../src/reactive/change.ts"],"names":[],"mappings":"AAMA,OAAO,EAAY,KAAK,SAAS,EAAW,KAAK,cAAc,EAAE,KAAK,KAAK,EAAE,MAAM,SAAS,CAAA;AAI5F,wBAAgB,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,QAMtD;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,GAAG,SAQhC;AAED,wBAAgB,cAAc,CAC7B,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,GAAG,CAAC,cAAc,CAAC,EAC5B,cAAc,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC,EAC7C,GAAG,SAAS,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,QAyB7B;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,QAEjE;AAED;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,QAiB5E;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,QAiCtE"}
|
package/dist/reactive/debug.d.ts
DELETED
|
@@ -1,111 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Debug utilities for the reactivity system
|
|
3
|
-
* - Captures effect metadata (names, parent relationships)
|
|
4
|
-
* - Records cause → consequence edges with object/prop labels
|
|
5
|
-
* - Provides graph data for tooling (DevTools panel, etc.)
|
|
6
|
-
*/
|
|
7
|
-
import { type Evolution, type ScopedCallback } from './types';
|
|
8
|
-
export type NodeKind = 'effect' | 'external' | 'state';
|
|
9
|
-
export type EdgeKind = 'cause' | 'dependency' | 'trigger';
|
|
10
|
-
export interface EffectNode {
|
|
11
|
-
id: string;
|
|
12
|
-
label: string;
|
|
13
|
-
type: NodeKind;
|
|
14
|
-
depth: number;
|
|
15
|
-
parentId?: string;
|
|
16
|
-
debugName?: string;
|
|
17
|
-
}
|
|
18
|
-
export interface ObjectNode {
|
|
19
|
-
id: string;
|
|
20
|
-
label: string;
|
|
21
|
-
type: NodeKind;
|
|
22
|
-
debugName?: string;
|
|
23
|
-
}
|
|
24
|
-
export interface GraphEdge {
|
|
25
|
-
id: string;
|
|
26
|
-
source: string;
|
|
27
|
-
target: string;
|
|
28
|
-
type: EdgeKind;
|
|
29
|
-
label: string;
|
|
30
|
-
count?: number;
|
|
31
|
-
}
|
|
32
|
-
export interface ReactivityGraph {
|
|
33
|
-
nodes: Array<EffectNode | ObjectNode>;
|
|
34
|
-
edges: GraphEdge[];
|
|
35
|
-
meta: {
|
|
36
|
-
generatedAt: number;
|
|
37
|
-
devtoolsEnabled: boolean;
|
|
38
|
-
};
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
* Assign a debug-friendly name to an effect (shown in DevTools)
|
|
42
|
-
*/
|
|
43
|
-
export declare function setEffectName(effect: ScopedCallback, name: string): void;
|
|
44
|
-
/**
|
|
45
|
-
* Assign a debug-friendly name to a reactive object
|
|
46
|
-
*/
|
|
47
|
-
export declare function setObjectName(obj: object, name: string): void;
|
|
48
|
-
/**
|
|
49
|
-
* Register an effect so it appears in the DevTools graph
|
|
50
|
-
*/
|
|
51
|
-
export declare function registerEffectForDebug(effect: ScopedCallback): void;
|
|
52
|
-
/**
|
|
53
|
-
* Register a reactive object so it appears in the DevTools graph
|
|
54
|
-
*/
|
|
55
|
-
export declare function registerObjectForDebug(obj: object): void;
|
|
56
|
-
/**
|
|
57
|
-
* Records a cause → consequence relationship between effects.
|
|
58
|
-
* @param source - The effect performing the write (undefined if external/user input)
|
|
59
|
-
* @param target - The effect that re-ran because of the write
|
|
60
|
-
* @param obj - The reactive object that changed
|
|
61
|
-
* @param prop - The property that changed
|
|
62
|
-
* @param evolution - The type of change (set/add/del/bunch)
|
|
63
|
-
*/
|
|
64
|
-
export declare function recordTriggerLink(source: ScopedCallback | undefined, target: ScopedCallback, obj: object, prop: any, evolution: Evolution): void;
|
|
65
|
-
/**
|
|
66
|
-
* Traces back the chain of triggers that led to a specific effect
|
|
67
|
-
* @param effect The effect to trace back
|
|
68
|
-
* @param limit Max depth
|
|
69
|
-
*/
|
|
70
|
-
export declare function getTriggerChain(effect: ScopedCallback, limit?: number): string[];
|
|
71
|
-
/**
|
|
72
|
-
* Builds a graph representing current reactive state (effects, objects, and trigger edges)
|
|
73
|
-
*/
|
|
74
|
-
export declare function buildReactivityGraph(): ReactivityGraph;
|
|
75
|
-
/**
|
|
76
|
-
* Enables the DevTools bridge and exposes the debug API on window.
|
|
77
|
-
* Call as early as possible in development builds.
|
|
78
|
-
*/
|
|
79
|
-
export declare function enableDevTools(): void;
|
|
80
|
-
export declare function forceEnableGraphTracking(): void;
|
|
81
|
-
export declare function isDevtoolsEnabled(): boolean;
|
|
82
|
-
/**
|
|
83
|
-
* Returns the raw dependency graph data structure.
|
|
84
|
-
* This is useful for programmatic analysis of the reactive system.
|
|
85
|
-
*/
|
|
86
|
-
export declare function getDependencyGraph(): {
|
|
87
|
-
nodes: (EffectNode | ObjectNode)[];
|
|
88
|
-
edges: GraphEdge[];
|
|
89
|
-
};
|
|
90
|
-
/**
|
|
91
|
-
* Returns a list of effects that depend on the given object.
|
|
92
|
-
*/
|
|
93
|
-
export declare function getDependents(obj: object): ScopedCallback[];
|
|
94
|
-
/**
|
|
95
|
-
* Returns a list of objects that the given effect depends on.
|
|
96
|
-
*/
|
|
97
|
-
export declare function getDependencies(effect: ScopedCallback): object[];
|
|
98
|
-
export interface MutationRecord {
|
|
99
|
-
id: number;
|
|
100
|
-
timestamp: number;
|
|
101
|
-
source: string;
|
|
102
|
-
target: string;
|
|
103
|
-
objectName: string;
|
|
104
|
-
prop: string;
|
|
105
|
-
type: string;
|
|
106
|
-
}
|
|
107
|
-
/**
|
|
108
|
-
* Get the recent mutation history
|
|
109
|
-
*/
|
|
110
|
-
export declare function getMutationHistory(): MutationRecord[];
|
|
111
|
-
//# sourceMappingURL=debug.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"debug.d.ts","sourceRoot":"","sources":["../../src/reactive/debug.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAY,KAAK,SAAS,EAAW,KAAK,cAAc,EAAE,MAAM,SAAS,CAAA;AA6BhF,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,UAAU,GAAG,OAAO,CAAA;AACtD,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,YAAY,GAAG,SAAS,CAAA;AAEzD,MAAM,WAAW,UAAU;IAC1B,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,QAAQ,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,UAAU;IAC1B,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,QAAQ,CAAA;IACd,SAAS,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,SAAS;IACzB,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,QAAQ,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,eAAe;IAC/B,KAAK,EAAE,KAAK,CAAC,UAAU,GAAG,UAAU,CAAC,CAAA;IACrC,KAAK,EAAE,SAAS,EAAE,CAAA;IAClB,IAAI,EAAE;QACL,WAAW,EAAE,MAAM,CAAA;QACnB,eAAe,EAAE,OAAO,CAAA;KACxB,CAAA;CACD;AA+FD;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,QAEjE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,QAGtD;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,cAAc,QAG5D;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,QAGjD;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAChC,MAAM,EAAE,cAAc,GAAG,SAAS,EAClC,MAAM,EAAE,cAAc,EACtB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,GAAG,EACT,SAAS,EAAE,SAAS,QAoBpB;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,cAAc,EAAE,KAAK,SAAI,GAAG,MAAM,EAAE,CAwC3E;AA6CD;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,eAAe,CA0EtD;AAED;;;GAGG;AACH,wBAAgB,cAAc,SAa7B;AAED,wBAAgB,wBAAwB,SAEvC;AAED,wBAAgB,iBAAiB,YAEhC;AAID;;;GAGG;AACH,wBAAgB,kBAAkB;;;EAKjC;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,EAAE,CAkB3D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,EAAE,CAGhE;AAID,MAAM,WAAW,cAAc;IAC9B,EAAE,EAAE,MAAM,CAAA;IACV,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;CACZ;AA4BD;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,cAAc,EAAE,CAErD"}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { type Evolution } from './types';
|
|
2
|
-
export declare function shouldRecurseTouch(oldValue: any, newValue: any): boolean;
|
|
3
|
-
/**
|
|
4
|
-
* Centralized function to handle property change notifications with optional recursive touch
|
|
5
|
-
* @param targetObj - The object whose property changed
|
|
6
|
-
* @param prop - The property that changed
|
|
7
|
-
* @param oldValue - The old value (before change)
|
|
8
|
-
* @param newValue - The new value (after change)
|
|
9
|
-
* @param hadProperty - Whether the property existed before (for add vs set)
|
|
10
|
-
*/
|
|
11
|
-
export declare function notifyPropertyChange(targetObj: any, prop: any, oldValue: any, newValue: any, hadProperty: boolean): void;
|
|
12
|
-
type VisitedPairs = WeakMap<object, WeakSet<object>>;
|
|
13
|
-
type PendingNotification = {
|
|
14
|
-
target: any;
|
|
15
|
-
evolution: Evolution;
|
|
16
|
-
prop: any;
|
|
17
|
-
origin?: {
|
|
18
|
-
obj: object;
|
|
19
|
-
prop: PropertyKey;
|
|
20
|
-
};
|
|
21
|
-
};
|
|
22
|
-
export declare function recursiveTouch(oldValue: any, newValue: any, visited?: VisitedPairs, notifications?: PendingNotification[], origin?: {
|
|
23
|
-
obj: object;
|
|
24
|
-
prop: PropertyKey;
|
|
25
|
-
}): PendingNotification[];
|
|
26
|
-
export declare function dispatchNotifications(notifications: PendingNotification[]): void;
|
|
27
|
-
export {};
|
|
28
|
-
//# sourceMappingURL=deep-touch.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"deep-touch.d.ts","sourceRoot":"","sources":["../../src/reactive/deep-touch.ts"],"names":[],"mappings":"AAMA,OAAO,EAAY,KAAK,SAAS,EAAgC,MAAM,SAAS,CAAA;AAoBhF,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,GAAG,OAAO,CAKxE;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CACnC,SAAS,EAAE,GAAG,EACd,IAAI,EAAE,GAAG,EACT,QAAQ,EAAE,GAAG,EACb,QAAQ,EAAE,GAAG,EACb,WAAW,EAAE,OAAO,QAoBpB;AAED,KAAK,YAAY,GAAG,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAA;AACpD,KAAK,mBAAmB,GAAG;IAC1B,MAAM,EAAE,GAAG,CAAA;IACX,SAAS,EAAE,SAAS,CAAA;IACpB,IAAI,EAAE,GAAG,CAAA;IACT,MAAM,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,WAAW,CAAA;KAAE,CAAA;CAC3C,CAAA;AA0BD,wBAAgB,cAAc,CAC7B,QAAQ,EAAE,GAAG,EACb,QAAQ,EAAE,GAAG,EACb,OAAO,GAAE,YAA4B,EACrC,aAAa,GAAE,mBAAmB,EAAO,EACzC,MAAM,CAAC,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,WAAW,CAAA;CAAE,GACzC,mBAAmB,EAAE,CAYvB;AA2FD,wBAAgB,qBAAqB,CAAC,aAAa,EAAE,mBAAmB,EAAE,QA0DzE"}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import type { Evolution, ScopedCallback } from './types';
|
|
2
|
-
export declare const objectParents: WeakMap<object, Set<{
|
|
3
|
-
parent: object;
|
|
4
|
-
prop: PropertyKey;
|
|
5
|
-
}>>;
|
|
6
|
-
export declare const objectsWithDeepWatchers: WeakSet<object>;
|
|
7
|
-
export declare const deepWatchers: WeakMap<object, Set<ScopedCallback>>;
|
|
8
|
-
export declare const effectToDeepWatchedObjects: WeakMap<ScopedCallback, Set<object>>;
|
|
9
|
-
/**
|
|
10
|
-
* Add a back-reference from child to parent
|
|
11
|
-
*/
|
|
12
|
-
export declare function addBackReference(child: object, parent: object, prop: any): void;
|
|
13
|
-
/**
|
|
14
|
-
* Remove a back-reference from child to parent
|
|
15
|
-
*/
|
|
16
|
-
export declare function removeBackReference(child: object, parent: object, prop: any): void;
|
|
17
|
-
/**
|
|
18
|
-
* Check if an object needs back-references (has deep watchers or parents with deep watchers)
|
|
19
|
-
*/
|
|
20
|
-
export declare function needsBackReferences(obj: object): boolean;
|
|
21
|
-
/**
|
|
22
|
-
* Bubble up changes through the back-reference chain
|
|
23
|
-
*/
|
|
24
|
-
export declare function bubbleUpChange(changedObject: object, evolution: Evolution): void;
|
|
25
|
-
//# sourceMappingURL=deep-watch-state.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"deep-watch-state.d.ts","sourceRoot":"","sources":["../../src/reactive/deep-watch-state.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAGxD,eAAO,MAAM,aAAa;YAAqC,MAAM;UAAQ,WAAW;GAAM,CAAA;AAG9F,eAAO,MAAM,uBAAuB,iBAAwB,CAAA;AAG5D,eAAO,MAAM,YAAY,sCAA6C,CAAA;AAGtE,eAAO,MAAM,0BAA0B,sCAA6C,CAAA;AAEpF;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,QAOxE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,QAa3E;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAKxD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,QAYzE"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
export { addBackReference, bubbleUpChange, deepWatchers, effectToDeepWatchedObjects, needsBackReferences, objectParents, objectsWithDeepWatchers, removeBackReference, } from './deep-watch-state';
|
|
2
|
-
/**
|
|
3
|
-
* Deep watch an object and all its nested properties
|
|
4
|
-
* @param target - The object to watch deeply
|
|
5
|
-
* @param callback - The callback to call when any nested property changes
|
|
6
|
-
* @param options - Options for the deep watch
|
|
7
|
-
* @returns A cleanup function to stop watching
|
|
8
|
-
*/
|
|
9
|
-
/**
|
|
10
|
-
* Sets up deep watching for an object, tracking all nested property changes
|
|
11
|
-
* @param target - The object to watch
|
|
12
|
-
* @param callback - The callback to call when changes occur
|
|
13
|
-
* @param options - Options for deep watching
|
|
14
|
-
* @returns A cleanup function to stop deep watching
|
|
15
|
-
*/
|
|
16
|
-
export declare function deepWatch<T extends object>(target: T, callback: (value: T) => void, { immediate }?: {
|
|
17
|
-
immediate?: boolean;
|
|
18
|
-
}): (() => void) | undefined;
|
|
19
|
-
//# sourceMappingURL=deep-watch.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"deep-watch.d.ts","sourceRoot":"","sources":["../../src/reactive/deep-watch.ts"],"names":[],"mappings":"AAeA,OAAO,EACN,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,0BAA0B,EAC1B,mBAAmB,EACnB,aAAa,EACb,uBAAuB,EACvB,mBAAmB,GACnB,MAAM,oBAAoB,CAAA;AAE3B;;;;;;GAMG;AACH;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,CAAC,SAAS,MAAM,EACzC,MAAM,EAAE,CAAC,EACT,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,EAC5B,EAAE,SAAiB,EAAE;;CAAK,GACxB,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CA2H1B"}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { ZoneAggregator, ZoneHistory } from '../zone';
|
|
2
|
-
import { type ScopedCallback } from './types';
|
|
3
|
-
export declare const effectHistory: ZoneHistory<ScopedCallback>;
|
|
4
|
-
export declare const effectAggregator: ZoneAggregator;
|
|
5
|
-
export declare function isRunning(effect: ScopedCallback): boolean;
|
|
6
|
-
export declare function getActiveEffect(): ScopedCallback;
|
|
7
|
-
//# sourceMappingURL=effect-context.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"effect-context.d.ts","sourceRoot":"","sources":["../../src/reactive/effect-context.ts"],"names":[],"mappings":"AACA,OAAO,EAAa,cAAc,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAEhE,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,SAAS,CAAA;AAE7C,eAAO,MAAM,aAAa,6BAA0D,CAAA;AAGpF,eAAO,MAAM,gBAAgB,gBAAqE,CAAA;AAElG,wBAAgB,SAAS,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAGzD;AAED,wBAAgB,eAAe,mBAE9B"}
|
|
@@ -1,151 +0,0 @@
|
|
|
1
|
-
import { cleanup as cleanupSymbol, type DependencyAccess, type EffectOptions, type Evolution, type ScopedCallback, stopped } from './types';
|
|
2
|
-
type EffectTracking = (obj: any, evolution: Evolution, prop: any) => void;
|
|
3
|
-
export interface ActivationRecord {
|
|
4
|
-
effect: ScopedCallback;
|
|
5
|
-
obj: any;
|
|
6
|
-
evolution: Evolution;
|
|
7
|
-
prop: any;
|
|
8
|
-
batchId: number;
|
|
9
|
-
}
|
|
10
|
-
export declare const activationLog: Omit<ActivationRecord, 'batchId'>[];
|
|
11
|
-
export declare function getActivationLog(): Omit<ActivationRecord, "batchId">[];
|
|
12
|
-
export declare function recordActivation(effect: ScopedCallback, obj: any, evolution: Evolution, prop: any): void;
|
|
13
|
-
/**
|
|
14
|
-
* Registers a debug callback that is called when the current effect is triggered by a dependency change
|
|
15
|
-
*
|
|
16
|
-
* This function is useful for debugging purposes as it pin-points exactly which reactive property
|
|
17
|
-
* change triggered the effect. The callback receives information about:
|
|
18
|
-
* - The object that changed
|
|
19
|
-
* - The type of change (evolution)
|
|
20
|
-
* - The specific property that changed
|
|
21
|
-
*
|
|
22
|
-
* **Note:** The tracker callback is automatically removed after being called once. If you need
|
|
23
|
-
* to track multiple triggers, call `trackEffect` again within the effect.
|
|
24
|
-
*
|
|
25
|
-
* @param onTouch - Callback function that receives (obj, evolution, prop) when the effect is triggered
|
|
26
|
-
* @throws {Error} If called outside of an effect context
|
|
27
|
-
*
|
|
28
|
-
* @example
|
|
29
|
-
* ```typescript
|
|
30
|
-
* const state = reactive({ count: 0, name: 'John' })
|
|
31
|
-
*
|
|
32
|
-
* effect(() => {
|
|
33
|
-
* // Register a tracker to see what triggers this effect
|
|
34
|
-
* trackEffect((obj, evolution, prop) => {
|
|
35
|
-
* console.log(`Effect triggered by:`, {
|
|
36
|
-
* object: obj,
|
|
37
|
-
* change: evolution.type,
|
|
38
|
-
* property: prop
|
|
39
|
-
* })
|
|
40
|
-
* })
|
|
41
|
-
*
|
|
42
|
-
* // Access reactive properties
|
|
43
|
-
* console.log(state.count, state.name)
|
|
44
|
-
* })
|
|
45
|
-
*
|
|
46
|
-
* state.count = 5
|
|
47
|
-
* // Logs: Effect triggered by: { object: state, change: 'set', property: 'count' }
|
|
48
|
-
* ```
|
|
49
|
-
*/
|
|
50
|
-
export declare function trackEffect(onTouch: EffectTracking): void;
|
|
51
|
-
declare const effectTrackers: WeakMap<ScopedCallback, Set<EffectTracking>>;
|
|
52
|
-
export declare const opaqueEffects: WeakSet<ScopedCallback>;
|
|
53
|
-
export declare const effectCreationStacks: WeakMap<Function, string>;
|
|
54
|
-
export declare function hasBatched(effect: ScopedCallback): boolean;
|
|
55
|
-
/**
|
|
56
|
-
* Adds a cleanup function to be called when the current batch of effects completes
|
|
57
|
-
* @param cleanup - The cleanup function to add
|
|
58
|
-
*/
|
|
59
|
-
export declare function addBatchCleanup(cleanup: ScopedCallback): void;
|
|
60
|
-
/**
|
|
61
|
-
* Semantic alias for `addBatchCleanup` - defers work to the end of the current reactive batch.
|
|
62
|
-
*
|
|
63
|
-
* Use this when an effect needs to perform an action that would modify state the effect depends on,
|
|
64
|
-
* which would create a reactive cycle. The deferred callback runs after all effects complete.
|
|
65
|
-
*
|
|
66
|
-
* @param callback - The callback to defer until after the current batch completes
|
|
67
|
-
*
|
|
68
|
-
* @example
|
|
69
|
-
* ```typescript
|
|
70
|
-
* effect(() => {
|
|
71
|
-
* processData()
|
|
72
|
-
*
|
|
73
|
-
* // Defer to avoid cycle (createMovement modifies state this effect reads)
|
|
74
|
-
* defer(() => {
|
|
75
|
-
* createMovement(data)
|
|
76
|
-
* })
|
|
77
|
-
* })
|
|
78
|
-
* ```
|
|
79
|
-
*/
|
|
80
|
-
export declare const defer: typeof addBatchCleanup;
|
|
81
|
-
export declare function batch(effect: ScopedCallback | ScopedCallback[], immediate?: 'immediate'): any;
|
|
82
|
-
/**
|
|
83
|
-
* Decorator that makes methods atomic - batches all effects triggered within the method
|
|
84
|
-
*/
|
|
85
|
-
export declare const atomic: import("../decorator").LegacyPropertyDecorator<any> & import("../decorator").ModernMethodDecorator<any> & (<Args extends any[], Return>(original: (...args: Args) => Return) => (...args: Args) => Return);
|
|
86
|
-
/**
|
|
87
|
-
* @param fn - The effect function to run - provides the cleaner
|
|
88
|
-
* @returns The cleanup function
|
|
89
|
-
*/
|
|
90
|
-
/**
|
|
91
|
-
* Creates a reactive effect that automatically re-runs when dependencies change
|
|
92
|
-
* @param fn - The effect function that provides dependencies and may return a cleanup function or Promise
|
|
93
|
-
* @param options - Options for effect execution
|
|
94
|
-
* @returns A cleanup function to stop the effect
|
|
95
|
-
*/
|
|
96
|
-
export declare function effect(fn: (access: DependencyAccess) => ScopedCallback | undefined | void | Promise<any>, effectOptions?: EffectOptions): ScopedCallback & {
|
|
97
|
-
[stopped]: boolean;
|
|
98
|
-
[cleanupSymbol]: () => void;
|
|
99
|
-
};
|
|
100
|
-
/**
|
|
101
|
-
* Executes a function without tracking dependencies but maintains parent cleanup relationship
|
|
102
|
-
* Effects created inside will still be cleaned up when the parent effect is destroyed
|
|
103
|
-
* @param fn - The function to execute
|
|
104
|
-
*/
|
|
105
|
-
export declare function untracked<T>(fn: () => T): T;
|
|
106
|
-
/**
|
|
107
|
-
* Executes a function from a virgin/root context - no parent effect, no tracking
|
|
108
|
-
* Creates completely independent effects that won't be cleaned up by any parent
|
|
109
|
-
* @param fn - The function to execute
|
|
110
|
-
*/
|
|
111
|
-
export declare function root<T>(fn: () => T): T;
|
|
112
|
-
export { effectTrackers };
|
|
113
|
-
/**
|
|
114
|
-
* Creates a bidirectional binding between a reactive value and a non-reactive external value
|
|
115
|
-
* Prevents infinite loops by automatically suppressing circular notifications
|
|
116
|
-
*
|
|
117
|
-
* @param received - Function called when the reactive value changes (external setter)
|
|
118
|
-
* @param get - Getter for the reactive value OR an object with `{ get, set }` properties
|
|
119
|
-
* @param set - Setter for the reactive value (required if `get` is a function)
|
|
120
|
-
* @returns A function to manually provide updates from the external side
|
|
121
|
-
*
|
|
122
|
-
* @example
|
|
123
|
-
* ```typescript
|
|
124
|
-
* const model = reactive({ value: '' })
|
|
125
|
-
* const input = { value: '' }
|
|
126
|
-
*
|
|
127
|
-
* // Bidirectional binding
|
|
128
|
-
* const provide = biDi(
|
|
129
|
-
* (v) => input.value = v, // external setter
|
|
130
|
-
* () => model.value, // reactive getter
|
|
131
|
-
* (v) => model.value = v // reactive setter
|
|
132
|
-
* )
|
|
133
|
-
*
|
|
134
|
-
* // External notification (e.g., from input event)
|
|
135
|
-
* provide('new value') // Updates model.value, doesn't trigger circular loop
|
|
136
|
-
* ```
|
|
137
|
-
*
|
|
138
|
-
* @example Using object syntax
|
|
139
|
-
* ```typescript
|
|
140
|
-
* const provide = biDi(
|
|
141
|
-
* (v) => setHTMLValue(v),
|
|
142
|
-
* { get: () => reactiveObj.value, set: (v) => reactiveObj.value = v }
|
|
143
|
-
* )
|
|
144
|
-
* ```
|
|
145
|
-
*/
|
|
146
|
-
export declare function biDi<T>(received: (value: T) => void, value: {
|
|
147
|
-
get: () => T;
|
|
148
|
-
set: (value: T) => void;
|
|
149
|
-
}): (value: T) => void;
|
|
150
|
-
export declare function biDi<T>(received: (value: T) => void, get: () => T, set: (value: T) => void): (value: T) => void;
|
|
151
|
-
//# sourceMappingURL=effects.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"effects.d.ts","sourceRoot":"","sources":["../../src/reactive/effects.ts"],"names":[],"mappings":"AAgBA,OAAO,EACN,OAAO,IAAI,aAAa,EACxB,KAAK,gBAAgB,EACrB,KAAK,aAAa,EAClB,KAAK,SAAS,EAKd,KAAK,cAAc,EACnB,OAAO,EACP,MAAM,SAAS,CAAA;AA8BhB,KAAK,cAAc,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,KAAK,IAAI,CAAA;AAEzE,MAAM,WAAW,gBAAgB;IAChC,MAAM,EAAE,cAAc,CAAA;IACtB,GAAG,EAAE,GAAG,CAAA;IACR,SAAS,EAAE,SAAS,CAAA;IACpB,IAAI,EAAE,GAAG,CAAA;IACT,OAAO,EAAE,MAAM,CAAA;CACf;AAMD,eAAO,MAAM,aAAa,EAAE,IAAI,CAAC,gBAAgB,EAAE,SAAS,CAAC,EAAmB,CAAA;AAEhF,wBAAgB,gBAAgB,wCAE/B;AAED,wBAAgB,gBAAgB,CAC/B,MAAM,EAAE,cAAc,EACtB,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,GAAG,QAuCT;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,cAAc,QAKlD;AAED,QAAA,MAAM,cAAc,8CAAqD,CAAA;AAEzE,eAAO,MAAM,aAAa,yBAAgC,CAAA;AAc1D,eAAO,MAAM,oBAAoB,2BAAkC,CAAA;AAuQnE,wBAAgB,UAAU,CAAC,MAAM,EAAE,cAAc,WAEhD;AAqQD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,cAAc,QAGtD;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,KAAK,wBAAkB,CAAA;AAgLpC,wBAAgB,KAAK,CAAC,MAAM,EAAE,cAAc,GAAG,cAAc,EAAE,EAAE,SAAS,CAAC,EAAE,WAAW,OAyHvF;AAMD;;GAEG;AACH,eAAO,MAAM,MAAM,8GASV,IAAI,SAAS,GAAG,EAAE,EAAE,MAAM,YACvB,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,MAAM,KACjC,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,MAAM,CAQ3B,CAAA;AAIF;;;GAGG;AACH;;;;;GAKG;AACH,wBAAgB,MAAM,CAErB,EAAE,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,cAAc,GAAG,SAAS,GAAG,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,EAClF,aAAa,CAAC,EAAE,aAAa,GAC3B,cAAc,GAAG;IACnB,CAAC,OAAO,CAAC,EAAE,OAAO,CAAA;IAClB,CAAC,aAAa,CAAC,EAAE,MAAM,IAAI,CAAA;CAC3B,CAoNA;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAE3C;AAED;;;;GAIG;AACH,wBAAgB,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,CAEtC;AAED,OAAO,EAAE,cAAc,EAAE,CAAA;AAEzB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,wBAAgB,IAAI,CAAC,CAAC,EACrB,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,EAC5B,KAAK,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC,CAAC;IAAC,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAA;CAAE,GAC9C,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAA;AACrB,wBAAgB,IAAI,CAAC,CAAC,EACrB,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,EAC5B,GAAG,EAAE,MAAM,CAAC,EACZ,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,GACrB,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAA"}
|
package/dist/reactive/index.d.ts
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
export { getState, touched, touched1 } from './change';
|
|
2
|
-
export type { ReactivityGraph } from './debug';
|
|
3
|
-
export { buildReactivityGraph, enableDevTools, isDevtoolsEnabled, registerEffectForDebug, registerObjectForDebug, setEffectName, setObjectName, } from './debug';
|
|
4
|
-
export { deepWatch } from './deep-watch';
|
|
5
|
-
export { addBatchCleanup, atomic, biDi, defer, effect, getActivationLog, root, trackEffect, untracked, } from './effects';
|
|
6
|
-
export { cleanedBy, cleanup, derived, unreactive, watch } from './interface';
|
|
7
|
-
export { type Memoizable, memoize } from './memoize';
|
|
8
|
-
export { immutables, isNonReactive, registerNativeReactivity } from './non-reactive';
|
|
9
|
-
export { getActiveProjection, project } from './project';
|
|
10
|
-
export { isReactive, ReactiveBase, reactive, unwrap } from './proxy';
|
|
11
|
-
export { organize, organized } from './record';
|
|
12
|
-
export { scan, type ScanResult, resolve } from './buffer';
|
|
13
|
-
export { Register, register } from './register';
|
|
14
|
-
export { getActiveEffect, effectAggregator } from './effect-context';
|
|
15
|
-
export { type DependencyAccess, type Evolution, options as reactiveOptions, ReactiveError, ReactiveErrorCode, type ScopedCallback, } from './types';
|
|
16
|
-
/**
|
|
17
|
-
* Object containing internal reactive system state for debugging and profiling
|
|
18
|
-
*/
|
|
19
|
-
export declare const profileInfo: any;
|
|
20
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/reactive/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AACtD,YAAY,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAC9C,OAAO,EACN,oBAAoB,EACpB,cAAc,EACd,iBAAiB,EACjB,sBAAsB,EACtB,sBAAsB,EACtB,aAAa,EACb,aAAa,GACb,MAAM,SAAS,CAAA;AAChB,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,OAAO,EACN,eAAe,EACf,MAAM,EACN,IAAI,EACJ,KAAK,EACL,MAAM,EACN,gBAAgB,EAChB,IAAI,EACJ,WAAW,EACX,SAAS,GACT,MAAM,WAAW,CAAA;AAClB,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAC5E,OAAO,EAAE,KAAK,UAAU,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACpD,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAA;AACpF,OAAO,EAAE,mBAAmB,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACxD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AACpE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAC9C,OAAO,EAAE,IAAI,EAAE,KAAK,UAAU,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AACzD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAC/C,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AACpE,OAAO,EACN,KAAK,gBAAgB,EACrB,KAAK,SAAS,EACd,OAAO,IAAI,eAAe,EAC1B,aAAa,EACb,iBAAiB,EACjB,KAAK,cAAc,GACnB,MAAM,SAAS,CAAA;AAsBhB;;GAEG;AACH,eAAO,MAAM,WAAW,EAAE,GAUzB,CAAA"}
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
import { type GenericClassDecorator } from '../decorator';
|
|
2
|
-
import { type DependencyAccess, type ScopedCallback } from './types';
|
|
3
|
-
/**
|
|
4
|
-
* Symbol for accessing the cleanup function on cleaned objects
|
|
5
|
-
*/
|
|
6
|
-
export declare const cleanup: unique symbol;
|
|
7
|
-
/**
|
|
8
|
-
* Options for the watch function
|
|
9
|
-
*/
|
|
10
|
-
export interface WatchOptions {
|
|
11
|
-
/** Whether to call the callback immediately */
|
|
12
|
-
immediate?: boolean;
|
|
13
|
-
/** Whether to watch nested properties */
|
|
14
|
-
deep?: boolean;
|
|
15
|
-
}
|
|
16
|
-
/**
|
|
17
|
-
* Watches a reactive value and calls a callback when it changes
|
|
18
|
-
* @param value - Function that returns the value to watch
|
|
19
|
-
* @param changed - Callback to call when the value changes
|
|
20
|
-
* @param options - Watch options
|
|
21
|
-
* @returns Cleanup function to stop watching
|
|
22
|
-
*/
|
|
23
|
-
export declare function watch<T>(value: (dep: DependencyAccess) => T, changed: (value: T, oldValue?: T) => void, options?: Omit<WatchOptions, 'deep'> & {
|
|
24
|
-
deep?: false;
|
|
25
|
-
}): ScopedCallback;
|
|
26
|
-
/**
|
|
27
|
-
* Watches a reactive value with deep watching enabled
|
|
28
|
-
* @param value - Function that returns the value to watch
|
|
29
|
-
* @param changed - Callback to call when the value changes
|
|
30
|
-
* @param options - Watch options with deep watching enabled
|
|
31
|
-
* @returns Cleanup function to stop watching
|
|
32
|
-
*/
|
|
33
|
-
export declare function watch<T extends object | any[]>(value: (dep: DependencyAccess) => T, changed: (value: T, oldValue?: T) => void, options?: Omit<WatchOptions, 'deep'> & {
|
|
34
|
-
deep: true;
|
|
35
|
-
}): ScopedCallback;
|
|
36
|
-
/**
|
|
37
|
-
* Watches a reactive object directly
|
|
38
|
-
* @param value - The reactive object to watch
|
|
39
|
-
* @param changed - Callback to call when the object changes
|
|
40
|
-
* @param options - Watch options
|
|
41
|
-
* @returns Cleanup function to stop watching
|
|
42
|
-
*/
|
|
43
|
-
export declare function watch<T extends object | any[]>(value: T, changed: (value: T) => void, options?: WatchOptions): ScopedCallback;
|
|
44
|
-
declare function unreactiveApplication<T extends object>(...args: (keyof T)[]): GenericClassDecorator<T>;
|
|
45
|
-
declare function unreactiveApplication<T extends object>(obj: T): T;
|
|
46
|
-
/**
|
|
47
|
-
* Decorator that marks classes or properties as non-reactive
|
|
48
|
-
* Prevents objects from being made reactive
|
|
49
|
-
*/
|
|
50
|
-
export declare const unreactive: import("../decorator").LegacyClassDecorator<new (...args: any[]) => any> & import("../decorator").ModernClassDecorator<new (...args: any[]) => any> & typeof unreactiveApplication;
|
|
51
|
-
export declare function cleanedBy<T extends object>(obj: T, cleanupFn: ScopedCallback): T & {
|
|
52
|
-
[cleanup]: ScopedCallback;
|
|
53
|
-
};
|
|
54
|
-
/**
|
|
55
|
-
* Creates a derived value that automatically recomputes when dependencies change
|
|
56
|
-
* @param compute - Function that computes the derived value
|
|
57
|
-
* @returns Object with value and cleanup function
|
|
58
|
-
*/
|
|
59
|
-
export declare function derived<T>(compute: (dep: DependencyAccess) => T): {
|
|
60
|
-
value: T;
|
|
61
|
-
[cleanup]: ScopedCallback;
|
|
62
|
-
};
|
|
63
|
-
export {};
|
|
64
|
-
//# sourceMappingURL=interface.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../src/reactive/interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,qBAAqB,EAAE,MAAM,cAAc,CAAA;AAOpE,OAAO,EACN,KAAK,gBAAgB,EAErB,KAAK,cAAc,EAEnB,MAAM,SAAS,CAAA;AAEhB;;GAEG;AACH,eAAO,MAAM,OAAO,eAAoB,CAAA;AAKxC;;GAEG;AACH,MAAM,WAAW,YAAY;IAC5B,+CAA+C;IAC/C,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,yCAAyC;IACzC,IAAI,CAAC,EAAE,OAAO,CAAA;CACd;AAED;;;;;;GAMG;AACH,wBAAgB,KAAK,CAAC,CAAC,EACtB,KAAK,EAAE,CAAC,GAAG,EAAE,gBAAgB,KAAK,CAAC,EACnC,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,KAAK,IAAI,EACzC,OAAO,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,GAAG;IAAE,IAAI,CAAC,EAAE,KAAK,CAAA;CAAE,GACrD,cAAc,CAAA;AACjB;;;;;;GAMG;AACH,wBAAgB,KAAK,CAAC,CAAC,SAAS,MAAM,GAAG,GAAG,EAAE,EAC7C,KAAK,EAAE,CAAC,GAAG,EAAE,gBAAgB,KAAK,CAAC,EACnC,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,KAAK,IAAI,EACzC,OAAO,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,GAAG;IAAE,IAAI,EAAE,IAAI,CAAA;CAAE,GACnD,cAAc,CAAA;AACjB;;;;;;GAMG;AACH,wBAAgB,KAAK,CAAC,CAAC,SAAS,MAAM,GAAG,GAAG,EAAE,EAC7C,KAAK,EAAE,CAAC,EACR,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,EAC3B,OAAO,CAAC,EAAE,YAAY,GACpB,cAAc,CAAA;AAgFjB,iBAAS,qBAAqB,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAAA;AAChG,iBAAS,qBAAqB,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAA;AAkB3D;;;GAGG;AACH,eAAO,MAAM,UAAU,oLAMrB,CAAA;AAIF,wBAAgB,SAAS,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,SAAS,EAAE,cAAc,GAMtE,CAAC,GAAG;IAAE,CAAC,OAAO,CAAC,EAAE,cAAc,CAAA;CAAE,CACvC;AAID;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,EAAE,gBAAgB,KAAK,CAAC,GAAG;IAClE,KAAK,EAAE,CAAC,CAAA;IACR,CAAC,OAAO,CAAC,EAAE,cAAc,CAAA;CACzB,CAUA"}
|