@ersbeth/picoflow 2.0.3 → 2.1.0
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/LICENSE +21 -0
- package/README.md +15 -0
- package/dist/picoflow.js +204 -60
- package/dist/types/api/base/flowObservable.d.ts +3 -3
- package/dist/types/api/base/flowObservable.d.ts.map +1 -1
- package/dist/types/api/base/flowSubscribable.d.ts +2 -2
- package/dist/types/api/base/flowSubscribable.d.ts.map +1 -1
- package/dist/types/api/base/flowTracker.d.ts +1 -1
- package/dist/types/api/base/flowTracker.d.ts.map +1 -1
- package/dist/types/api/base/index.d.ts +4 -4
- package/dist/types/api/base/index.d.ts.map +1 -1
- package/dist/types/api/index.d.ts +2 -2
- package/dist/types/api/index.d.ts.map +1 -1
- package/dist/types/api/nodes/async/flowConstantAsync.d.ts +1 -1
- package/dist/types/api/nodes/async/flowConstantAsync.d.ts.map +1 -1
- package/dist/types/api/nodes/async/flowDerivationAsync.d.ts +3 -3
- package/dist/types/api/nodes/async/flowDerivationAsync.d.ts.map +1 -1
- package/dist/types/api/nodes/async/flowStateAsync.d.ts +3 -3
- package/dist/types/api/nodes/async/flowStateAsync.d.ts.map +1 -1
- package/dist/types/api/nodes/async/flowWritableDerivationAsync.d.ts +2 -2
- package/dist/types/api/nodes/async/flowWritableDerivationAsync.d.ts.map +1 -1
- package/dist/types/api/nodes/async/index.d.ts +4 -4
- package/dist/types/api/nodes/async/index.d.ts.map +1 -1
- package/dist/types/api/nodes/collections/flowArray.d.ts +7 -4
- package/dist/types/api/nodes/collections/flowArray.d.ts.map +1 -1
- package/dist/types/api/nodes/collections/flowMap.d.ts +3 -2
- package/dist/types/api/nodes/collections/flowMap.d.ts.map +1 -1
- package/dist/types/api/nodes/collections/index.d.ts +2 -2
- package/dist/types/api/nodes/collections/index.d.ts.map +1 -1
- package/dist/types/api/nodes/flowEffect.d.ts +2 -2
- package/dist/types/api/nodes/flowEffect.d.ts.map +1 -1
- package/dist/types/api/nodes/flowSignal.d.ts +1 -1
- package/dist/types/api/nodes/flowSignal.d.ts.map +1 -1
- package/dist/types/api/nodes/flowValue.d.ts +2 -2
- package/dist/types/api/nodes/flowValue.d.ts.map +1 -1
- package/dist/types/api/nodes/index.d.ts +7 -7
- package/dist/types/api/nodes/index.d.ts.map +1 -1
- package/dist/types/api/nodes/sync/flowConstant.d.ts +2 -2
- package/dist/types/api/nodes/sync/flowConstant.d.ts.map +1 -1
- package/dist/types/api/nodes/sync/flowDerivation.d.ts +3 -3
- package/dist/types/api/nodes/sync/flowDerivation.d.ts.map +1 -1
- package/dist/types/api/nodes/sync/flowState.d.ts +3 -3
- package/dist/types/api/nodes/sync/flowState.d.ts.map +1 -1
- package/dist/types/api/nodes/sync/flowWritableDerivation.d.ts +2 -2
- package/dist/types/api/nodes/sync/flowWritableDerivation.d.ts.map +1 -1
- package/dist/types/api/nodes/sync/index.d.ts +4 -4
- package/dist/types/api/nodes/sync/index.d.ts.map +1 -1
- package/dist/types/api/nodes/utils.d.ts +1 -1
- package/dist/types/api/nodes/utils.d.ts.map +1 -1
- package/dist/types/base/disposable.d.ts +1 -1
- package/dist/types/base/disposable.d.ts.map +1 -1
- package/dist/types/base/executionStack.d.ts +22 -1
- package/dist/types/base/executionStack.d.ts.map +1 -1
- package/dist/types/base/index.d.ts +5 -5
- package/dist/types/base/index.d.ts.map +1 -1
- package/dist/types/base/node.d.ts +4 -4
- package/dist/types/base/node.d.ts.map +1 -1
- package/dist/types/base/observable.d.ts +3 -3
- package/dist/types/base/observable.d.ts.map +1 -1
- package/dist/types/base/observer.d.ts +2 -2
- package/dist/types/base/observer.d.ts.map +1 -1
- package/dist/types/converters/index.d.ts +1 -1
- package/dist/types/converters/index.d.ts.map +1 -1
- package/dist/types/converters/solid.d.ts +12 -8
- package/dist/types/converters/solid.d.ts.map +1 -1
- package/dist/types/index.d.ts +2 -2
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/nodes/actionNode.d.ts +23 -0
- package/dist/types/nodes/actionNode.d.ts.map +1 -0
- package/dist/types/nodes/arrayNode.d.ts +4 -3
- package/dist/types/nodes/arrayNode.d.ts.map +1 -1
- package/dist/types/nodes/effectNode.d.ts +18 -2
- package/dist/types/nodes/effectNode.d.ts.map +1 -1
- package/dist/types/nodes/index.d.ts +8 -7
- package/dist/types/nodes/index.d.ts.map +1 -1
- package/dist/types/nodes/mapNode.d.ts +4 -3
- package/dist/types/nodes/mapNode.d.ts.map +1 -1
- package/dist/types/nodes/signalNode.d.ts +2 -2
- package/dist/types/nodes/signalNode.d.ts.map +1 -1
- package/dist/types/nodes/valueAsyncNode.d.ts +3 -3
- package/dist/types/nodes/valueAsyncNode.d.ts.map +1 -1
- package/dist/types/nodes/valueNode.d.ts +3 -3
- package/dist/types/nodes/valueNode.d.ts.map +1 -1
- package/dist/types/nodes/valueSyncNode.d.ts +3 -3
- package/dist/types/nodes/valueSyncNode.d.ts.map +1 -1
- package/dist/types/schedulers/asyncScheduler.d.ts +2 -1
- package/dist/types/schedulers/asyncScheduler.d.ts.map +1 -1
- package/dist/types/schedulers/index.d.ts +4 -4
- package/dist/types/schedulers/index.d.ts.map +1 -1
- package/dist/types/schedulers/syncResolver.d.ts +1 -2
- package/dist/types/schedulers/syncResolver.d.ts.map +1 -1
- package/dist/types/schedulers/syncScheduler.d.ts +1 -1
- package/dist/types/schedulers/syncScheduler.d.ts.map +1 -1
- package/package.json +20 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { DerivationFunctionAsync, FlowDerivationAsync } from './flowDerivationAsync';
|
|
2
|
-
import { FlowStateAsync } from './flowStateAsync';
|
|
1
|
+
import { DerivationFunctionAsync, FlowDerivationAsync } from './flowDerivationAsync.js';
|
|
2
|
+
import { FlowStateAsync } from './flowStateAsync.js';
|
|
3
3
|
/**
|
|
4
4
|
* Writable reactive value that recomputes asynchronously when dependencies change, but can be manually overridden.
|
|
5
5
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flowWritableDerivationAsync.d.ts","sourceRoot":"","sources":["../../../../../src/api/nodes/async/flowWritableDerivationAsync.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"flowWritableDerivationAsync.d.ts","sourceRoot":"","sources":["../../../../../src/api/nodes/async/flowWritableDerivationAsync.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC7F,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D;;;;;;;;;;GAUG;AACH,MAAM,WAAW,2BAA2B,CAAC,CAAC,CAAE,SAAQ,cAAc,CAAC,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC;CAAG;AAEpG;;;;;;;;;;;;GAYG;AACH,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,OAAO,EAAE,uBAAuB,CAAC,CAAC,CAAC,GAAG,2BAA2B,CAAC,CAAC,CAAC,CAE9G"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export * from './flowConstantAsync';
|
|
2
|
-
export * from './flowDerivationAsync';
|
|
3
|
-
export * from './flowStateAsync';
|
|
4
|
-
export * from './flowWritableDerivationAsync';
|
|
1
|
+
export * from './flowConstantAsync.js';
|
|
2
|
+
export * from './flowDerivationAsync.js';
|
|
3
|
+
export * from './flowStateAsync.js';
|
|
4
|
+
export * from './flowWritableDerivationAsync.js';
|
|
5
5
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/api/nodes/async/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/api/nodes/async/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kCAAkC,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { FlowState } from '../sync/flowState';
|
|
1
|
+
import { FlowState } from '../sync/flowState.js';
|
|
2
2
|
/**
|
|
3
3
|
* Discriminated union representing all possible array mutation operations.
|
|
4
4
|
*
|
|
@@ -70,7 +70,8 @@ export interface FlowArray<T> extends FlowState<T[]> {
|
|
|
70
70
|
push(item: T): void;
|
|
71
71
|
/**
|
|
72
72
|
* Removes and returns the last item from the array.
|
|
73
|
-
* Emits a "pop" action to $lastAction.
|
|
73
|
+
* Emits a "pop" action to $lastAction when an item is removed.
|
|
74
|
+
* If the array is already empty, returns undefined without notifying dependents or updating $lastAction.
|
|
74
75
|
*
|
|
75
76
|
* @returns The removed item, or undefined if the array was empty
|
|
76
77
|
*/
|
|
@@ -84,7 +85,8 @@ export interface FlowArray<T> extends FlowState<T[]> {
|
|
|
84
85
|
unshift(item: T): void;
|
|
85
86
|
/**
|
|
86
87
|
* Removes and returns the first item from the array.
|
|
87
|
-
* Emits a "shift" action to $lastAction.
|
|
88
|
+
* Emits a "shift" action to $lastAction when an item is removed.
|
|
89
|
+
* If the array is already empty, returns undefined without notifying dependents or updating $lastAction.
|
|
88
90
|
*
|
|
89
91
|
* @returns The removed item, or undefined if the array was empty
|
|
90
92
|
*/
|
|
@@ -112,7 +114,8 @@ export interface FlowArray<T> extends FlowState<T[]> {
|
|
|
112
114
|
length: number;
|
|
113
115
|
/**
|
|
114
116
|
* Reactive state containing the last mutation operation performed on the array.
|
|
115
|
-
*
|
|
117
|
+
* `.subscribe()` invokes its callback once per mutation (including several in the same tick).
|
|
118
|
+
* `get()` / `pick()` expose only the latest action snapshot.
|
|
116
119
|
*/
|
|
117
120
|
$lastAction: FlowState<FlowArrayAction<T>>;
|
|
118
121
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flowArray.d.ts","sourceRoot":"","sources":["../../../../../src/api/nodes/collections/flowArray.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"flowArray.d.ts","sourceRoot":"","sources":["../../../../../src/api/nodes/collections/flowArray.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEtD;;;;;;;;;GASG;AACH,MAAM,MAAM,eAAe,CAAC,CAAC,IACvB;IACI,IAAI,EAAE,KAAK,CAAC;IACZ,QAAQ,EAAE,CAAC,EAAE,CAAC;IACd,YAAY,EAAE,CAAC,EAAE,CAAC;CACrB,GACD;IACI,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,CAAC,CAAC;IACX,WAAW,EAAE,CAAC,GAAG,SAAS,CAAC;CAC9B,GACD;IACI,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,CAAC,CAAC;CAChB,GACD;IACI,IAAI,EAAE,KAAK,CAAC;IACZ,WAAW,EAAE,CAAC,GAAG,SAAS,CAAC;CAC9B,GACD;IACI,IAAI,EAAE,SAAS,CAAC;IAChB,SAAS,EAAE,CAAC,CAAC;CAChB,GACD;IACI,IAAI,EAAE,OAAO,CAAC;IACd,WAAW,EAAE,CAAC,GAAG,SAAS,CAAC;CAC9B,GACD;IACI,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,CAAC,EAAE,CAAC;IAChB,YAAY,EAAE,CAAC,EAAE,CAAC;CACrB,GACD;IACI,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,EAAE,CAAC,EAAE,CAAC;CACrB,CAAC;AAER;;;;;;;;;;GAUG;AACH,MAAM,WAAW,SAAS,CAAC,CAAC,CAAE,SAAQ,SAAS,CAAC,CAAC,EAAE,CAAC;IAChD;;;;;;;OAOG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;IAE9C;;;;;OAKG;IACH,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;IAEpB;;;;;;OAMG;IACH,GAAG,IAAI,CAAC,GAAG,SAAS,CAAC;IAErB;;;;;OAKG;IACH,OAAO,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;IAEvB;;;;;;OAMG;IACH,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAEvB;;;;;;;;OAQG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,QAAQ,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;IAElE;;;;;OAKG;IACH,KAAK,IAAI,CAAC,EAAE,CAAC;IAEb;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;;;OAIG;IACH,WAAW,EAAE,SAAS,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;CAC9C;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,CAEpD"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { FlowState } from '../sync/flowState';
|
|
1
|
+
import { FlowState } from '../sync/flowState.js';
|
|
2
2
|
/**
|
|
3
3
|
* Discriminated union representing all possible map mutation operations.
|
|
4
4
|
*
|
|
@@ -76,7 +76,8 @@ export interface FlowMap<K, V> extends FlowState<Map<K, V>> {
|
|
|
76
76
|
clear(): Map<K, V>;
|
|
77
77
|
/**
|
|
78
78
|
* Reactive state containing the last mutation operation performed on the map.
|
|
79
|
-
*
|
|
79
|
+
* `.subscribe()` invokes its callback once per mutation (including several in the same tick).
|
|
80
|
+
* `get()` / `pick()` expose only the latest action snapshot.
|
|
80
81
|
*/
|
|
81
82
|
$lastAction: FlowState<FlowMapAction<K, V>>;
|
|
82
83
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flowMap.d.ts","sourceRoot":"","sources":["../../../../../src/api/nodes/collections/flowMap.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"flowMap.d.ts","sourceRoot":"","sources":["../../../../../src/api/nodes/collections/flowMap.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEtD;;;;;;;;;GASG;AACH,MAAM,MAAM,aAAa,CAAC,CAAC,EAAE,CAAC,IACxB;IACI,IAAI,EAAE,KAAK,CAAC;IACZ,MAAM,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAClB,UAAU,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;CACzB,GACD;IACI,IAAI,EAAE,KAAK,CAAC;IACZ,GAAG,EAAE,CAAC,CAAC;IACP,UAAU,EAAE,CAAC,CAAC;CACjB,GACD;IACI,IAAI,EAAE,QAAQ,CAAC;IACf,GAAG,EAAE,CAAC,CAAC;IACP,QAAQ,EAAE,CAAC,CAAC;IACZ,YAAY,EAAE,CAAC,CAAC;CACnB,GACD;IACI,IAAI,EAAE,QAAQ,CAAC;IACf,GAAG,EAAE,CAAC,CAAC;IACP,YAAY,EAAE,CAAC,CAAC;CACnB,GACD;IACI,IAAI,EAAE,OAAO,CAAC;IACd,UAAU,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;CACzB,CAAC;AAER;;;;;;;;;;GAUG;AACH,MAAM,WAAW,OAAO,CAAC,CAAC,EAAE,CAAC,CAAE,SAAQ,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACvD;;;;;;OAMG;IACH,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;IAElB;;;;;;;OAOG;IACH,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;IAExC;;;;;;OAMG;IACH,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IAE5B;;;;;OAKG;IACH,KAAK,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAEnB;;;;OAIG;IACH,WAAW,EAAE,SAAS,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;CAC/C;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,GAAG,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAK5G"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export * from './flowArray';
|
|
2
|
-
export * from './flowMap';
|
|
1
|
+
export * from './flowArray.js';
|
|
2
|
+
export * from './flowMap.js';
|
|
3
3
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/api/nodes/collections/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/api/nodes/collections/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { FlowDisposable } from '../base/flowDisposable';
|
|
2
|
-
import { FlowDataTracker, FlowOnDataListener, FlowOnErrorListener, FlowOnPendingListener } from '../base/flowSubscribable';
|
|
1
|
+
import { FlowDisposable } from '../base/flowDisposable.js';
|
|
2
|
+
import { FlowDataTracker, FlowOnDataListener, FlowOnErrorListener, FlowOnPendingListener } from '../base/flowSubscribable.js';
|
|
3
3
|
/**
|
|
4
4
|
* Handle to a reactive effect that automatically tracks dependencies and re-executes when they change.
|
|
5
5
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flowEffect.d.ts","sourceRoot":"","sources":["../../../../src/api/nodes/flowEffect.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"flowEffect.d.ts","sourceRoot":"","sources":["../../../../src/api/nodes/flowEffect.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EACR,eAAe,EACf,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACxB,MAAM,6BAA6B,CAAC;AAErC;;;;;;;GAOG;AACH,MAAM,WAAW,UAAW,SAAQ,cAAc;CAAG;AAErD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,SAAS,CAAC,CAAC,EACvB,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC,EACxB,MAAM,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAC7B,OAAO,CAAC,EAAE,mBAAmB,EAC7B,SAAS,CAAC,EAAE,qBAAqB,GAClC,UAAU,CAEZ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flowSignal.d.ts","sourceRoot":"","sources":["../../../../src/api/nodes/flowSignal.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"flowSignal.d.ts","sourceRoot":"","sources":["../../../../src/api/nodes/flowSignal.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAEhE;;;;;;;;GAQG;AACH,MAAM,WAAW,UAAW,SAAQ,cAAc,CAAC,IAAI,CAAC;CAAG;AAE3D;;;;;;;;;;GAUG;AACH,wBAAgB,MAAM,IAAI,UAAU,CAEnC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { FlowObservable } from '../base/flowObservable';
|
|
2
|
-
import { FlowTracker } from '../base/flowTracker';
|
|
1
|
+
import { FlowObservable } from '../base/flowObservable.js';
|
|
2
|
+
import { FlowTracker } from '../base/flowTracker.js';
|
|
3
3
|
/**
|
|
4
4
|
* Base interface for reactive values that can be read synchronously or asynchronously.
|
|
5
5
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flowValue.d.ts","sourceRoot":"","sources":["../../../../src/api/nodes/flowValue.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"flowValue.d.ts","sourceRoot":"","sources":["../../../../src/api/nodes/flowValue.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAE1D;;;;;;;;;GASG;AACH,MAAM,WAAW,SAAS,CAAC,CAAC,CAAE,SAAQ,cAAc,CAAC,CAAC,CAAC;IACnD;;;;;;;;;OASG;IACH,GAAG,CAAC,OAAO,EAAE,WAAW,GAAG,CAAC,CAAC;IAE7B;;;;;;;;OAQG;IACH,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;CACtB"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
export * from './async';
|
|
2
|
-
export * from './collections';
|
|
3
|
-
export * from './flowEffect';
|
|
4
|
-
export * from './flowSignal';
|
|
5
|
-
export * from './flowValue';
|
|
6
|
-
export * from './sync';
|
|
7
|
-
export * from './utils';
|
|
1
|
+
export * from './async/index.js';
|
|
2
|
+
export * from './collections/index.js';
|
|
3
|
+
export * from './flowEffect.js';
|
|
4
|
+
export * from './flowSignal.js';
|
|
5
|
+
export * from './flowValue.js';
|
|
6
|
+
export * from './sync/index.js';
|
|
7
|
+
export * from './utils.js';
|
|
8
8
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/api/nodes/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/api/nodes/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { FlowValue } from '../flowValue';
|
|
2
|
-
import { NotPromise } from '../utils';
|
|
1
|
+
import { FlowValue } from '../flowValue.js';
|
|
2
|
+
import { NotPromise } from '../utils.js';
|
|
3
3
|
/** Function that initializes a value. */
|
|
4
4
|
export type InitFunction<T> = () => NotPromise<T>;
|
|
5
5
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flowConstant.d.ts","sourceRoot":"","sources":["../../../../../src/api/nodes/sync/flowConstant.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"flowConstant.d.ts","sourceRoot":"","sources":["../../../../../src/api/nodes/sync/flowConstant.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,yCAAyC;AACzC,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,MAAM,UAAU,CAAC,CAAC,CAAC,CAAC;AAElD;;;;;;;;GAQG;AACH,MAAM,WAAW,YAAY,CAAC,CAAC,CAAE,SAAQ,SAAS,CAAC,CAAC,CAAC;CAAG;AAExD;;;;;;;;;;;GAWG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAEzE"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { FlowTracker } from '../../base/flowTracker';
|
|
2
|
-
import { FlowValue } from '../flowValue';
|
|
3
|
-
import { NotPromise } from '../utils';
|
|
1
|
+
import { FlowTracker } from '../../base/flowTracker.js';
|
|
2
|
+
import { FlowValue } from '../flowValue.js';
|
|
3
|
+
import { NotPromise } from '../utils.js';
|
|
4
4
|
/** Function that derives a value from dependencies and optionally the previous value. */
|
|
5
5
|
export type DerivationFunction<T> = (tracker: FlowTracker, previous?: NotPromise<T> | undefined) => NotPromise<T>;
|
|
6
6
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flowDerivation.d.ts","sourceRoot":"","sources":["../../../../../src/api/nodes/sync/flowDerivation.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"flowDerivation.d.ts","sourceRoot":"","sources":["../../../../../src/api/nodes/sync/flowDerivation.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,yFAAyF;AACzF,MAAM,MAAM,kBAAkB,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,SAAS,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC;AAElH;;;;;;;;;GASG;AACH,MAAM,WAAW,cAAc,CAAC,CAAC,CAAE,SAAQ,SAAS,CAAC,CAAC,CAAC;IACnD;;OAEG;IACH,OAAO,IAAI,IAAI,CAAC;CACnB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAE/E"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { FlowValue } from '../flowValue';
|
|
2
|
-
import { NotPromise } from '../utils';
|
|
3
|
-
import { InitFunction } from './flowConstant';
|
|
1
|
+
import { FlowValue } from '../flowValue.js';
|
|
2
|
+
import { NotPromise } from '../utils.js';
|
|
3
|
+
import { InitFunction } from './flowConstant.js';
|
|
4
4
|
/** Function that updates a value based on the previous value. */
|
|
5
5
|
export type UpdateFunction<T> = (previous: NotPromise<T> | undefined) => NotPromise<T>;
|
|
6
6
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flowState.d.ts","sourceRoot":"","sources":["../../../../../src/api/nodes/sync/flowState.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"flowState.d.ts","sourceRoot":"","sources":["../../../../../src/api/nodes/sync/flowState.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,iEAAiE;AACjE,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,SAAS,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC;AAEvF;;;;;;;;GAQG;AACH,MAAM,WAAW,SAAS,CAAC,CAAC,CAAE,SAAQ,SAAS,CAAC,CAAC,CAAC;IAC9C;;;;;OAKG;IACH,GAAG,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAChC,GAAG,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;CACzC;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;AAC7D,wBAAgB,KAAK,CAAC,CAAC,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { DerivationFunction, FlowDerivation } from './flowDerivation';
|
|
2
|
-
import { FlowState } from './flowState';
|
|
1
|
+
import { DerivationFunction, FlowDerivation } from './flowDerivation.js';
|
|
2
|
+
import { FlowState } from './flowState.js';
|
|
3
3
|
/**
|
|
4
4
|
* Writable reactive value that recomputes automatically when dependencies change, but can be manually overridden.
|
|
5
5
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flowWritableDerivation.d.ts","sourceRoot":"","sources":["../../../../../src/api/nodes/sync/flowWritableDerivation.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"flowWritableDerivation.d.ts","sourceRoot":"","sources":["../../../../../src/api/nodes/sync/flowWritableDerivation.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC9E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD;;;;;;;;;GASG;AACH,MAAM,WAAW,sBAAsB,CAAC,CAAC,CAAE,SAAQ,SAAS,CAAC,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC;CAAG;AAErF;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAAG,sBAAsB,CAAC,CAAC,CAAC,CAE/F"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export * from './flowConstant';
|
|
2
|
-
export * from './flowDerivation';
|
|
3
|
-
export * from './flowState';
|
|
4
|
-
export * from './flowWritableDerivation';
|
|
1
|
+
export * from './flowConstant.js';
|
|
2
|
+
export * from './flowDerivation.js';
|
|
3
|
+
export * from './flowState.js';
|
|
4
|
+
export * from './flowWritableDerivation.js';
|
|
5
5
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/api/nodes/sync/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/api/nodes/sync/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,6BAA6B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/api/nodes/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/api/nodes/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD;;;;;;;;GAQG;AACH,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI,CAAC,SAAS,OAAO,CAAC,OAAO,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;AAEnE;;;;;;;;;GASG;AACH,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,SAAS,GAAG,SAAS,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"disposable.d.ts","sourceRoot":"","sources":["../../../src/base/disposable.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"disposable.d.ts","sourceRoot":"","sources":["../../../src/base/disposable.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEtD;;;GAGG;AACH,qBAAa,UAAW,YAAW,cAAc;IAC7C,SAAS,CAAC,SAAS,UAAS;IAE5B,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,OAAO,IAAI,IAAI;CAIlB"}
|
|
@@ -1,14 +1,35 @@
|
|
|
1
|
-
import { IObserver } from './observer';
|
|
1
|
+
import { IObserver } from './observer.js';
|
|
2
2
|
/**
|
|
3
3
|
* Global scheduler that batches and executes reactive computations asynchronously.
|
|
4
|
+
*
|
|
5
|
+
* Flush order: pending value nodes first, then effects (setTimeout(0)).
|
|
6
|
+
* Queues are index-drained so items appended mid-flush are not lost (see _drain).
|
|
4
7
|
*/
|
|
5
8
|
export declare class ExecutionStack {
|
|
9
|
+
private static readonly _MAX_FLUSH_STEPS;
|
|
6
10
|
private static readonly _pendingQueue;
|
|
7
11
|
private static readonly _effectQueue;
|
|
8
12
|
private static _executionScheduled?;
|
|
13
|
+
private static _coalesceResetScheduled;
|
|
14
|
+
/**
|
|
15
|
+
* True once the current synchronous call stack has finished and microtasks have started.
|
|
16
|
+
* EffectNode uses this to treat microtask notifications (e.g. async resolve) differently
|
|
17
|
+
* from coalesced sync-batch notifications.
|
|
18
|
+
*/
|
|
19
|
+
private static _pastSyncTurn;
|
|
20
|
+
/** @internal Used by EffectNode to distinguish sync-batch from microtask notifications. */
|
|
21
|
+
static get pastSyncTurn(): boolean;
|
|
22
|
+
/**
|
|
23
|
+
* @internal Runs after the current sync turn ends (queueMicrotask).
|
|
24
|
+
* Marks pastSyncTurn so the next coalesced effect notify can bump its epoch,
|
|
25
|
+
* and resets per-effect coalesce flags via onReset.
|
|
26
|
+
*/
|
|
27
|
+
static scheduleCoalesceReset(onReset: () => void): void;
|
|
9
28
|
static pushPending(node: IObserver): void;
|
|
10
29
|
static pushEffect(effect: IObserver): void;
|
|
30
|
+
private static _beginSyncTurn;
|
|
11
31
|
private static _scheduleExecution;
|
|
32
|
+
private static _drain;
|
|
12
33
|
private static _execute;
|
|
13
34
|
}
|
|
14
35
|
//# sourceMappingURL=executionStack.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executionStack.d.ts","sourceRoot":"","sources":["../../../src/base/executionStack.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"executionStack.d.ts","sourceRoot":"","sources":["../../../src/base/executionStack.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE/C;;;;;GAKG;AACH,qBAAa,cAAc;IACvB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAU;IAClD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAmB;IACxD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAmB;IACvD,OAAO,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAgB;IACnD,OAAO,CAAC,MAAM,CAAC,uBAAuB,CAAS;IAC/C;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,aAAa,CAAS;IAErC,2FAA2F;IAC3F,MAAM,KAAK,YAAY,IAAI,OAAO,CAEjC;IAED;;;;OAIG;IACH,MAAM,CAAC,qBAAqB,CAAC,OAAO,EAAE,MAAM,IAAI,GAAG,IAAI;IAUvD,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI;IAMzC,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI;IAM1C,OAAO,CAAC,MAAM,CAAC,cAAc;IAK7B,OAAO,CAAC,MAAM,CAAC,kBAAkB;IAWjC,OAAO,CAAC,MAAM,CAAC,MAAM;IAerB,OAAO,CAAC,MAAM,CAAC,QAAQ;CAI1B"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export * from './disposable';
|
|
2
|
-
export * from './executionStack';
|
|
3
|
-
export * from './node';
|
|
4
|
-
export * from './observable';
|
|
5
|
-
export * from './observer';
|
|
1
|
+
export * from './disposable.js';
|
|
2
|
+
export * from './executionStack.js';
|
|
3
|
+
export * from './node.js';
|
|
4
|
+
export * from './observable.js';
|
|
5
|
+
export * from './observer.js';
|
|
6
6
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/base/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/base/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,WAAW,CAAC;AAC1B,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { FlowEffect, FlowOnDataListener, FlowOnErrorListener, FlowOnPendingListener, FlowTracker } from '../api';
|
|
2
|
-
import { Disposable } from './disposable';
|
|
3
|
-
import { IObservable, ObservableStatus } from './observable';
|
|
4
|
-
import { IObserver } from './observer';
|
|
1
|
+
import { FlowEffect, FlowOnDataListener, FlowOnErrorListener, FlowOnPendingListener, FlowTracker } from '../api/index.js';
|
|
2
|
+
import { Disposable } from './disposable.js';
|
|
3
|
+
import { IObservable, ObservableStatus } from './observable.js';
|
|
4
|
+
import { IObserver } from './observer.js';
|
|
5
5
|
/**
|
|
6
6
|
* Base implementation for reactive nodes that propagate changes through the dependency graph.
|
|
7
7
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../../src/base/node.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../../src/base/node.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,UAAU,EACV,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,WAAW,EACd,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACrE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE/C;;GAEG;AACH,8BAAsB,IAAI,CAAC,CAAC,CAAE,SAAQ,UAAW,YAAW,WAAW,CAAC,CAAC,CAAC,EAAE,SAAS;IACjF,OAAO,CAAC,aAAa,CAAmC;IACxD,OAAO,CAAC,WAAW,CAAwB;IAC3C,SAAS,CAAC,OAAO,EAAE,gBAAgB,CAAc;IAEjD,IAAI,MAAM,IAAI,gBAAgB,CAG7B;IAED,IAAI,MAAM,CAAC,MAAM,EAAE,gBAAgB,EAGlC;IAED,kBAAkB,CAAC,UAAU,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,IAAI;IAM1D,oBAAoB,CAAC,UAAU,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,IAAI;IAM5D,iBAAiB,IAAI,IAAI;IAQzB,iBAAiB,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;IAK7C,mBAAmB,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;IAK/C,gBAAgB,IAAI,IAAI;IAOxB,KAAK,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IAKjC,OAAO,IAAI,IAAI;IAKf,MAAM,IAAI,IAAI;IAOL,OAAO,IAAI,IAAI;IAaxB,QAAQ,CAAC,OAAO,IAAI,IAAI;IAExB,QAAQ,CAAC,SAAS,CACd,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAC9B,OAAO,CAAC,EAAE,mBAAmB,EAC7B,SAAS,CAAC,EAAE,qBAAqB,GAClC,UAAU;CAChB"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { FlowEffect, FlowObservable, FlowOnDataListener, FlowOnErrorListener, FlowOnPendingListener, FlowTracker } from '../api';
|
|
2
|
-
import { Disposable } from './disposable';
|
|
3
|
-
import { IObserver } from './observer';
|
|
1
|
+
import { FlowEffect, FlowObservable, FlowOnDataListener, FlowOnErrorListener, FlowOnPendingListener, FlowTracker } from '../api/index.js';
|
|
2
|
+
import { Disposable } from './disposable.js';
|
|
3
|
+
import { IObserver } from './observer.js';
|
|
4
4
|
/**
|
|
5
5
|
* Status of an observable: resolved (has value), pending (async in progress), error (failed), or dirty (needs recomputation).
|
|
6
6
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"observable.d.ts","sourceRoot":"","sources":["../../../src/base/observable.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,UAAU,EACV,cAAc,EACd,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,WAAW,EACd,MAAM,
|
|
1
|
+
{"version":3,"file":"observable.d.ts","sourceRoot":"","sources":["../../../src/base/observable.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,UAAU,EACV,cAAc,EACd,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,WAAW,EACd,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE/C;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,UAAU,GAAG,SAAS,GAAG,OAAO,GAAG,OAAO,CAAC;AAE1E;;GAEG;AACH,MAAM,WAAW,WAAW,CAAC,CAAC,CAAE,SAAQ,cAAc,CAAC,CAAC,CAAC;IACrD,IAAI,MAAM,IAAI,gBAAgB,CAAC;IAC/B,IAAI,MAAM,CAAC,MAAM,EAAE,gBAAgB,EAAE;IACrC,iBAAiB,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;IAC9C,mBAAmB,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;IAChD,gBAAgB,IAAI,IAAI,CAAC;IACzB,SAAS,CACL,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAC9B,OAAO,CAAC,EAAE,mBAAmB,EAC7B,SAAS,CAAC,EAAE,qBAAqB,GAClC,UAAU,CAAC;CACjB;AAED;;GAEG;AACH,8BAAsB,UAAU,CAAC,CAAC,CAAE,SAAQ,UAAW,YAAW,WAAW,CAAC,CAAC,CAAC;IAC5E,OAAO,CAAC,WAAW,CAAwB;IAC3C,SAAS,CAAC,OAAO,EAAE,gBAAgB,CAAc;IAEjD,IAAI,MAAM,IAAI,gBAAgB,CAG7B;IAED,IAAI,MAAM,CAAC,MAAM,EAAE,gBAAgB,EAGlC;IAED,iBAAiB,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;IAK7C,mBAAmB,CAAC,SAAS,EAAE,SAAS,GAAG,IAAI;IAK/C,gBAAgB,IAAI,IAAI;IAOxB,KAAK,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IAKjC,OAAO,IAAI,IAAI;IAKN,OAAO,IAAI,IAAI;IAUxB,QAAQ,CAAC,SAAS,CACd,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAC9B,OAAO,CAAC,EAAE,mBAAmB,EAC7B,SAAS,CAAC,EAAE,qBAAqB,GAClC,UAAU;CAChB"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Disposable } from './disposable';
|
|
2
|
-
import { IObservable } from './observable';
|
|
1
|
+
import { Disposable } from './disposable.js';
|
|
2
|
+
import { IObservable } from './observable.js';
|
|
3
3
|
/**
|
|
4
4
|
* Internal interface for reactive computations that track dependencies and respond to changes.
|
|
5
5
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"observer.d.ts","sourceRoot":"","sources":["../../../src/base/observer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"observer.d.ts","sourceRoot":"","sources":["../../../src/base/observer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEnD;;GAEG;AACH,MAAM,WAAW,SAAS;IACtB,kBAAkB,CAAC,UAAU,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;IAC3D,oBAAoB,CAAC,UAAU,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;IAC7D,iBAAiB,IAAI,IAAI,CAAC;IAC1B,MAAM,IAAI,IAAI,CAAC;IACf,OAAO,IAAI,IAAI,CAAC;CACnB;AAED;;GAEG;AACH,8BAAsB,QAAS,SAAQ,UAAW,YAAW,SAAS;IAClE,OAAO,CAAC,aAAa,CAAmC;IAExD,kBAAkB,CAAC,UAAU,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,IAAI;IAM1D,oBAAoB,CAAC,UAAU,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,IAAI;IAM5D,iBAAiB,IAAI,IAAI;IAQhB,OAAO,IAAI,IAAI;IAQxB,QAAQ,CAAC,MAAM,IAAI,IAAI;IACvB,QAAQ,CAAC,OAAO,IAAI,IAAI;CAC3B"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from './solid';
|
|
1
|
+
export * from './solid.js';
|
|
2
2
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/converters/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/converters/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { Resource } from 'solid-js';
|
|
2
|
-
import {
|
|
2
|
+
import { FlowTracker, FlowValue, NotPromise } from '../api/index.js';
|
|
3
3
|
/**
|
|
4
|
-
* Converts a PicoFlow
|
|
4
|
+
* Converts a PicoFlow value or getter function into a SolidJS resource.
|
|
5
5
|
*
|
|
6
|
-
* @param flow - The
|
|
6
|
+
* @param flow - The FlowValue or getter function to convert.
|
|
7
7
|
* @returns A SolidJS Resource that wraps the value or computation.
|
|
8
8
|
*
|
|
9
9
|
* @remarks
|
|
@@ -12,12 +12,16 @@ import { FlowObservable, FlowTracker, NotPromise } from '../api';
|
|
|
12
12
|
* SolidJS Resource, which can handle both synchronous and asynchronous values seamlessly.
|
|
13
13
|
*
|
|
14
14
|
* The conversion works with:
|
|
15
|
-
* - **
|
|
15
|
+
* - **FlowValue**: PicoFlow primitives that expose a readable value (e.g. from `state()`, `derivation()`, `stateAsync()`, `derivationAsync()`, `array()`, `map()`)
|
|
16
16
|
* - **Getter functions**: Computation functions that use a FlowTracker to access reactive values
|
|
17
17
|
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
18
|
+
* Signals are not supported: they carry no value to expose through a Resource. Use a getter that reads the reactive values you need instead.
|
|
19
|
+
*
|
|
20
|
+
* The created Resource automatically subscribes to the PicoFlow value and updates
|
|
21
|
+
* when it changes. The subscription is properly cleaned up when the Solid
|
|
22
|
+
* component unmounts. When converting a getter function, the internal derivation
|
|
23
|
+
* node is also disposed on unmount. User-owned FlowValue instances passed directly
|
|
24
|
+
* to `from()` are not disposed.
|
|
21
25
|
*
|
|
22
26
|
* @example
|
|
23
27
|
* ```typescript
|
|
@@ -41,6 +45,6 @@ import { FlowObservable, FlowTracker, NotPromise } from '../api';
|
|
|
41
45
|
*
|
|
42
46
|
* @public
|
|
43
47
|
*/
|
|
44
|
-
export declare function from<T>(flow:
|
|
48
|
+
export declare function from<T>(flow: FlowValue<T>): Resource<T>;
|
|
45
49
|
export declare function from<T>(flow: (t: FlowTracker) => NotPromise<T>): Resource<T>;
|
|
46
50
|
//# sourceMappingURL=solid.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"solid.d.ts","sourceRoot":"","sources":["../../../src/converters/solid.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoD,KAAK,QAAQ,EAAwB,MAAM,UAAU,CAAC;AACjH,OAAO,EAAmB,KAAK,
|
|
1
|
+
{"version":3,"file":"solid.d.ts","sourceRoot":"","sources":["../../../src/converters/solid.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoD,KAAK,QAAQ,EAAwB,MAAM,UAAU,CAAC;AACjH,OAAO,EAAmB,KAAK,WAAW,EAAE,KAAK,SAAS,EAAE,KAAK,UAAU,EAAa,MAAM,iBAAiB,CAAC;AAoEhH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,wBAAgB,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;AACzD,wBAAgB,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,WAAW,KAAK,UAAU,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export * from './api';
|
|
2
|
-
export * from './converters';
|
|
1
|
+
export * from './api/index.js';
|
|
2
|
+
export * from './converters/index.js';
|
|
3
3
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { FlowEffect, FlowOnDataListener, FlowOnErrorListener, FlowOnPendingListener, NotPromise, UpdateFunction } from '../api/index.js';
|
|
2
|
+
import { ValueSyncNode } from './valueSyncNode.js';
|
|
3
|
+
/**
|
|
4
|
+
* Reactive state that tracks the latest action while delivering every emitted action
|
|
5
|
+
* to `.subscribe()` callbacks, including multiple mutations within the same batch.
|
|
6
|
+
*
|
|
7
|
+
* Two read models:
|
|
8
|
+
* - get() / pick(): last-write-wins snapshot (current action value).
|
|
9
|
+
* - subscribe(): event stream — one onData call per emitted action, even when several
|
|
10
|
+
* mutations happen before the next flush. Each subscriber owns its own queue so
|
|
11
|
+
* delivery is not shared or stolen between subscribers.
|
|
12
|
+
*
|
|
13
|
+
* @internal
|
|
14
|
+
*/
|
|
15
|
+
export declare class ActionNode<T extends NotPromise<unknown>> extends ValueSyncNode<T> {
|
|
16
|
+
private _slots;
|
|
17
|
+
private _enqueueForSubscribers;
|
|
18
|
+
set(value: NotPromise<T>): void;
|
|
19
|
+
set(updater: UpdateFunction<T>): void;
|
|
20
|
+
subscribe(onValue: FlowOnDataListener<T>, onError?: FlowOnErrorListener, onPending?: FlowOnPendingListener): FlowEffect;
|
|
21
|
+
dispose(): void;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=actionNode.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"actionNode.d.ts","sourceRoot":"","sources":["../../../src/nodes/actionNode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,UAAU,EACV,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,UAAU,EACV,cAAc,EACjB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAOnD;;;;;;;;;;;GAWG;AACH,qBAAa,UAAU,CAAC,CAAC,SAAS,UAAU,CAAC,OAAO,CAAC,CAAE,SAAQ,aAAa,CAAC,CAAC,CAAC;IAC3E,OAAO,CAAC,MAAM,CAAsC;IAEpD,OAAO,CAAC,sBAAsB;IAMrB,GAAG,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI;IAC/B,GAAG,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,IAAI;IAoBrC,SAAS,CACd,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAC9B,OAAO,CAAC,EAAE,mBAAmB,EAC7B,SAAS,CAAC,EAAE,qBAAqB,GAClC,UAAU;IAoCJ,OAAO,IAAI,IAAI;CAI3B"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
import { FlowArray, FlowArrayAction, FlowTracker, NotPromise, UpdateFunction } from '../api';
|
|
2
|
-
import {
|
|
1
|
+
import { FlowArray, FlowArrayAction, FlowTracker, NotPromise, UpdateFunction } from '../api/index.js';
|
|
2
|
+
import { ActionNode } from './actionNode.js';
|
|
3
|
+
import { ValueSyncNode } from './valueSyncNode.js';
|
|
3
4
|
/**
|
|
4
5
|
* Internal implementation of reactive array with mutation tracking.
|
|
5
6
|
* @internal
|
|
6
7
|
*/
|
|
7
8
|
export declare class ArrayNode<T> extends ValueSyncNode<T[]> implements FlowArray<T> {
|
|
8
|
-
$lastAction:
|
|
9
|
+
$lastAction: ActionNode<FlowArrayAction<T>>;
|
|
9
10
|
protected _value: T[];
|
|
10
11
|
constructor(value?: T[]);
|
|
11
12
|
get(tracker: FlowTracker): T[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"arrayNode.d.ts","sourceRoot":"","sources":["../../../src/nodes/arrayNode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"arrayNode.d.ts","sourceRoot":"","sources":["../../../src/nodes/arrayNode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAC3G,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD;;;GAGG;AACH,qBAAa,SAAS,CAAC,CAAC,CAAE,SAAQ,aAAa,CAAC,CAAC,EAAE,CAAE,YAAW,SAAS,CAAC,CAAC,CAAC;IACxE,WAAW,EAAE,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5C,UAAkB,MAAM,EAAE,CAAC,EAAE,CAAC;gBAElB,KAAK,GAAE,CAAC,EAAO;IASlB,GAAG,CAAC,OAAO,EAAE,WAAW,GAAG,CAAC,EAAE;IAKxB,IAAI,IAAI,OAAO,CAAC,CAAC,EAAE,CAAC;IAKnC,IAAI,MAAM,IAAI,MAAM,CAGnB;IAEQ,GAAG,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE;IAChC,GAAG,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE;IAsB/C,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,GAAG,SAAS;IA0B7C,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI;IAWnB,GAAG,IAAI,CAAC,GAAG,SAAS;IAepB,OAAO,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI;IAWtB,KAAK,IAAI,CAAC,GAAG,SAAS;IAetB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,QAAQ,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE;IAoBjE,KAAK,IAAI,CAAC,EAAE;IAiBH,OAAO,IAAI,IAAI;CAO3B"}
|
|
@@ -1,7 +1,15 @@
|
|
|
1
|
-
import { FlowDataTracker, FlowEffect, FlowOnDataListener, FlowOnErrorListener, FlowOnPendingListener } from '../api';
|
|
2
|
-
import { Observer } from '../base';
|
|
1
|
+
import { FlowDataTracker, FlowEffect, FlowOnDataListener, FlowOnErrorListener, FlowOnPendingListener } from '../api/index.js';
|
|
2
|
+
import { Observer } from '../base/index.js';
|
|
3
3
|
/**
|
|
4
4
|
* Reactive effect that automatically re-executes when its dependencies change.
|
|
5
|
+
*
|
|
6
|
+
* Scheduling uses epoch-based coalescing:
|
|
7
|
+
* - Multiple dependency changes in the same synchronous turn produce one queue entry
|
|
8
|
+
* but may still require multiple runs when notifications arrive in later microtasks
|
|
9
|
+
* (e.g. async pending → resolved).
|
|
10
|
+
* - Re-notifications during execute() (cascading effects) enqueue a fresh run because
|
|
11
|
+
* _queued is cleared at the start of execute().
|
|
12
|
+
*
|
|
5
13
|
* @internal
|
|
6
14
|
*/
|
|
7
15
|
export declare class EffectNode<T> extends Observer implements FlowEffect {
|
|
@@ -9,6 +17,14 @@ export declare class EffectNode<T> extends Observer implements FlowEffect {
|
|
|
9
17
|
private _onData;
|
|
10
18
|
private _onError?;
|
|
11
19
|
private _onPending?;
|
|
20
|
+
/** True while this effect is already waiting in the effect queue for the next flush. */
|
|
21
|
+
private _queued;
|
|
22
|
+
/** Guards the single coalesced bump of _notifyEpoch while _queued during one sync turn. */
|
|
23
|
+
private _coalescedWhileQueued;
|
|
24
|
+
/** Monotonic count of notifications that must eventually be executed. */
|
|
25
|
+
private _notifyEpoch;
|
|
26
|
+
/** How many notification epochs have been executed so far. */
|
|
27
|
+
private _executedEpoch;
|
|
12
28
|
constructor(data: FlowDataTracker<T>, onData: FlowOnDataListener<T>, onError?: FlowOnErrorListener, onPending?: FlowOnPendingListener);
|
|
13
29
|
notify(): void;
|
|
14
30
|
execute(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"effectNode.d.ts","sourceRoot":"","sources":["../../../src/nodes/effectNode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,eAAe,EACf,UAAU,EACV,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACxB,MAAM,
|
|
1
|
+
{"version":3,"file":"effectNode.d.ts","sourceRoot":"","sources":["../../../src/nodes/effectNode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,eAAe,EACf,UAAU,EACV,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACxB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAkB,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAG5D;;;;;;;;;;;GAWG;AACH,qBAAa,UAAU,CAAC,CAAC,CAAE,SAAQ,QAAS,YAAW,UAAU;IAC7D,OAAO,CAAC,KAAK,CAAqB;IAClC,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,QAAQ,CAAC,CAAsB;IACvC,OAAO,CAAC,UAAU,CAAC,CAAwB;IAC3C,wFAAwF;IACxF,OAAO,CAAC,OAAO,CAAS;IACxB,2FAA2F;IAC3F,OAAO,CAAC,qBAAqB,CAAS;IACtC,yEAAyE;IACzE,OAAO,CAAC,YAAY,CAAK;IACzB,8DAA8D;IAC9D,OAAO,CAAC,cAAc,CAAK;gBAGvB,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC,EACxB,MAAM,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAC7B,OAAO,CAAC,EAAE,mBAAmB,EAC7B,SAAS,CAAC,EAAE,qBAAqB;IAYrC,MAAM,IAAI,IAAI;IAsBd,OAAO,IAAI,IAAI;CAgClB"}
|