@ersbeth/picoflow 2.0.3 → 2.2.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/SKILL.md +6 -1
- package/dist/picoflow.js +414 -241
- package/dist/types/api/base/flowConfig.d.ts +18 -0
- package/dist/types/api/base/flowConfig.d.ts.map +1 -0
- 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 +5 -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 +4 -4
- package/dist/types/base/disposable.d.ts.map +1 -1
- package/dist/types/base/executionStack.d.ts +26 -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 +6 -5
- 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 +11 -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 +10 -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 +22 -2
|
@@ -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
|
*/
|
|
@@ -9,12 +9,21 @@ export interface IObserver {
|
|
|
9
9
|
clearDependencies(): void;
|
|
10
10
|
notify(): void;
|
|
11
11
|
execute(): void;
|
|
12
|
+
/**
|
|
13
|
+
* Called by a dependency's `dispose()` on each of its remaining dependents, so an
|
|
14
|
+
* observer already queued for the next flush can skip that run instead of reading
|
|
15
|
+
* through the now-disposed dependency and throwing (A2-SEM-1).
|
|
16
|
+
*/
|
|
17
|
+
markDependencyDisposed(): void;
|
|
12
18
|
}
|
|
13
19
|
/**
|
|
14
20
|
* Base implementation managing dependency tracking for reactive observers.
|
|
15
21
|
*/
|
|
16
22
|
export declare abstract class Observer extends Disposable implements IObserver {
|
|
17
23
|
private _dependencies;
|
|
24
|
+
/** Set when a dependency disposed while this observer was queued; consumed by the next execute(). */
|
|
25
|
+
protected _dependencyDisposed: boolean;
|
|
26
|
+
markDependencyDisposed(): void;
|
|
18
27
|
registerDependency(dependency: IObservable<unknown>): void;
|
|
19
28
|
unregisterDependency(dependency: IObservable<unknown>): void;
|
|
20
29
|
clearDependencies(): void;
|
|
@@ -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;IAChB;;;;OAIG;IACH,sBAAsB,IAAI,IAAI,CAAC;CAClC;AAED;;GAEG;AACH,8BAAsB,QAAS,SAAQ,UAAW,YAAW,SAAS;IAClE,OAAO,CAAC,aAAa,CAAmC;IACxD,qGAAqG;IACrG,SAAS,CAAC,mBAAmB,UAAS;IAEtC,sBAAsB,IAAI,IAAI;IAI9B,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;AA8EhH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;CA6ClB"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
export * from './
|
|
2
|
-
export * from './
|
|
3
|
-
export * from './
|
|
4
|
-
export * from './
|
|
5
|
-
export * from './
|
|
6
|
-
export * from './
|
|
7
|
-
export * from './
|
|
1
|
+
export * from './actionNode.js';
|
|
2
|
+
export * from './arrayNode.js';
|
|
3
|
+
export * from './effectNode.js';
|
|
4
|
+
export * from './mapNode.js';
|
|
5
|
+
export * from './signalNode.js';
|
|
6
|
+
export * from './valueAsyncNode.js';
|
|
7
|
+
export * from './valueNode.js';
|
|
8
|
+
export * from './valueSyncNode.js';
|
|
8
9
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/nodes/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/nodes/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
import { FlowMap, FlowMapAction, NotPromise, UpdateFunction } from '../api';
|
|
2
|
-
import {
|
|
1
|
+
import { FlowMap, FlowMapAction, 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 map with mutation tracking.
|
|
5
6
|
* @internal
|
|
6
7
|
*/
|
|
7
8
|
export declare class MapNode<K, V> extends ValueSyncNode<Map<K, V>> implements FlowMap<K, V> {
|
|
8
|
-
$lastAction:
|
|
9
|
+
$lastAction: ActionNode<FlowMapAction<K, V>>;
|
|
9
10
|
protected _value: Map<K, V>;
|
|
10
11
|
constructor(value?: Map<K, V>);
|
|
11
12
|
add(key: K, value: V): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mapNode.d.ts","sourceRoot":"","sources":["../../../src/nodes/mapNode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"mapNode.d.ts","sourceRoot":"","sources":["../../../src/nodes/mapNode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAC1F,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD;;;GAGG;AACH,qBAAa,OAAO,CAAC,CAAC,EAAE,CAAC,CAAE,SAAQ,aAAa,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAE,YAAW,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;IACzE,WAAW,EAAE,UAAU,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACpD,UAAkB,MAAM,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAExB,KAAK,GAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAa;IASxC,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC;IAepB,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC;IAuB3B,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC;IAkBR,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;IAC1C,GAAG,CAAC,OAAO,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;IAoB3D,KAAK,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;IAiBT,OAAO,IAAI,IAAI;CAO3B"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { FlowEffect, FlowOnDataListener, FlowOnErrorListener, FlowOnPendingListener, FlowSignal } from '../api';
|
|
2
|
-
import { Observable } from '../base';
|
|
1
|
+
import { FlowEffect, FlowOnDataListener, FlowOnErrorListener, FlowOnPendingListener, FlowSignal } from '../api/index.js';
|
|
2
|
+
import { Observable } from '../base/index.js';
|
|
3
3
|
/**
|
|
4
4
|
* Manual trigger that notifies subscribers without carrying data.
|
|
5
5
|
* @internal
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signalNode.d.ts","sourceRoot":"","sources":["../../../src/nodes/signalNode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"signalNode.d.ts","sourceRoot":"","sources":["../../../src/nodes/signalNode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,UAAU,EACV,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,UAAU,EACb,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,UAAU,EAAiB,MAAM,kBAAkB,CAAC;AAG7D;;;GAGG;AACH,qBAAa,UAAW,SAAQ,UAAU,CAAC,IAAI,CAAE,YAAW,UAAU;IAClE,SAAS,CACL,SAAS,EAAE,kBAAkB,CAAC,IAAI,CAAC,EACnC,OAAO,CAAC,EAAE,mBAAmB,EAC7B,SAAS,CAAC,EAAE,qBAAqB,GAClC,UAAU;CAKhB"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { DerivationFunctionAsync, InitFunctionAsync, NotPromise, UpdateFunctionAsync } from '../api';
|
|
2
|
-
import { AsyncScheduler } from '../schedulers';
|
|
3
|
-
import { ValueNode } from './valueNode';
|
|
1
|
+
import { DerivationFunctionAsync, InitFunctionAsync, NotPromise, UpdateFunctionAsync } from '../api/index.js';
|
|
2
|
+
import { AsyncScheduler } from '../schedulers/index.js';
|
|
3
|
+
import { ValueNode } from './valueNode.js';
|
|
4
4
|
/**
|
|
5
5
|
* Function that computes a value asynchronously (either initialization or derivation).
|
|
6
6
|
* @internal
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"valueAsyncNode.d.ts","sourceRoot":"","sources":["../../../src/nodes/valueAsyncNode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"valueAsyncNode.d.ts","sourceRoot":"","sources":["../../../src/nodes/valueAsyncNode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACnH,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C;;;GAGG;AACH,MAAM,MAAM,oBAAoB,CAAC,CAAC,IAAI,iBAAiB,CAAC,CAAC,CAAC,GAAG,uBAAuB,CAAC,CAAC,CAAC,CAAC;AACxF;;;GAGG;AACH,qBAAa,cAAc,CAAC,CAAC,SAAS,UAAU,CAAC,OAAO,CAAC,CAAE,SAAQ,SAAS,CAAC,CAAC,CAAC;IAC3E,SAAS,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC;IACxC,OAAO,CAAC,QAAQ,CAAmB;gBAEvB,gBAAgB,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,oBAAoB,CAAC,CAAC,CAAC;IAiBlE,OAAO,CAAC,UAAU;IASlB,OAAO,CAAC,SAAS;IAOjB,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI;IAC9B,GAAG,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG,IAAI;IA+B1C,OAAO,IAAI,IAAI;CAIlB"}
|
|
@@ -1,11 +1,18 @@
|
|
|
1
|
-
import { FlowEffect, FlowOnDataListener, FlowOnErrorListener, FlowOnPendingListener, FlowTracker, NotPromise } from '../api';
|
|
2
|
-
import { Node } from '../base';
|
|
3
|
-
import { Scheduler } from '../schedulers';
|
|
1
|
+
import { FlowEffect, FlowOnDataListener, FlowOnErrorListener, FlowOnPendingListener, FlowTracker, NotPromise } from '../api/index.js';
|
|
2
|
+
import { Node } from '../base/index.js';
|
|
3
|
+
import { Scheduler } from '../schedulers/index.js';
|
|
4
|
+
/**
|
|
5
|
+
* Global-registry symbol branding a {@link ValueNode} instance, so `from()` can recognize a node
|
|
6
|
+
* built by a different copy of the library — where its class objects, and thus `instanceof`, differ.
|
|
7
|
+
* @internal
|
|
8
|
+
*/
|
|
9
|
+
export declare const PICOFLOW_VALUE_NODE: unique symbol;
|
|
4
10
|
/**
|
|
5
11
|
* Base class for reactive values that compute, cache, and propagate changes through the dependency graph.
|
|
6
12
|
* @internal
|
|
7
13
|
*/
|
|
8
14
|
export declare abstract class ValueNode<T> extends Node<T> {
|
|
15
|
+
readonly [PICOFLOW_VALUE_NODE] = true;
|
|
9
16
|
protected abstract _scheduler: Scheduler;
|
|
10
17
|
protected _value?: NotPromise<T>;
|
|
11
18
|
protected _error?: unknown;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"valueNode.d.ts","sourceRoot":"","sources":["../../../src/nodes/valueNode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,UAAU,EACV,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,WAAW,EACX,UAAU,EACb,MAAM,
|
|
1
|
+
{"version":3,"file":"valueNode.d.ts","sourceRoot":"","sources":["../../../src/nodes/valueNode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,UAAU,EACV,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,WAAW,EACX,UAAU,EACb,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAkB,IAAI,EAAwC,MAAM,kBAAkB,CAAC;AAC9F,OAAO,EAAgB,KAAK,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAGtE;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,eAA8B,CAAC;AAE/D;;;GAGG;AACH,8BAAsB,SAAS,CAAC,CAAC,CAAE,SAAQ,IAAI,CAAC,CAAC,CAAC;IAC9C,QAAQ,CAAC,CAAC,mBAAmB,CAAC,QAAQ;IACtC,SAAS,CAAC,QAAQ,CAAC,UAAU,EAAE,SAAS,CAAC;IACzC,SAAS,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;IACjC,SAAS,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAElB,KAAK,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IA6BjC,MAAM,IAAI,IAAI;IAUd,OAAO,IAAI,IAAI;IAKxB,GAAG,CAAC,OAAO,EAAE,WAAW,GAAG,CAAC;IA8BtB,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC;IAkCxB,OAAO,IAAI,IAAI;IAUf,SAAS,CACL,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAC9B,OAAO,CAAC,EAAE,mBAAmB,EAC7B,SAAS,CAAC,EAAE,qBAAqB,GAClC,UAAU;CAKhB"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { DerivationFunction, InitFunction, NotPromise, UpdateFunction } from '../api';
|
|
2
|
-
import { SyncScheduler } from '../schedulers';
|
|
3
|
-
import { ValueNode } from './valueNode';
|
|
1
|
+
import { DerivationFunction, InitFunction, NotPromise, UpdateFunction } from '../api/index.js';
|
|
2
|
+
import { SyncScheduler } from '../schedulers/index.js';
|
|
3
|
+
import { ValueNode } from './valueNode.js';
|
|
4
4
|
/**
|
|
5
5
|
* Function that computes a value (either initialization or derivation).
|
|
6
6
|
* @internal
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"valueSyncNode.d.ts","sourceRoot":"","sources":["../../../src/nodes/valueSyncNode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"valueSyncNode.d.ts","sourceRoot":"","sources":["../../../src/nodes/valueSyncNode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACpG,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C;;;GAGG;AACH,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC;AAEzE;;;GAGG;AACH,qBAAa,aAAa,CAAC,CAAC,SAAS,UAAU,CAAC,OAAO,CAAC,CAAE,SAAQ,SAAS,CAAC,CAAC,CAAC;IAC1E,SAAS,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;IACvC,OAAO,CAAC,QAAQ,CAAU;gBAEd,cAAc,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC;IAuB9D,OAAO,CAAC,UAAU;IAMlB,OAAO,CAAC,SAAS;IAKjB,GAAG,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI;IAC/B,GAAG,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,IAAI;IAgDrC,OAAO,IAAI,IAAI;CAsBlB"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Scheduler } from './scheduler';
|
|
1
|
+
import { Scheduler } from './scheduler.js';
|
|
2
2
|
/**
|
|
3
3
|
* Scheduler that manages asynchronous computation lifecycle with resolver instances.
|
|
4
4
|
* @internal
|
|
@@ -15,6 +15,7 @@ export declare class AsyncScheduler<T> implements Scheduler {
|
|
|
15
15
|
get disposed(): boolean;
|
|
16
16
|
overwrite(promise: Promise<T>): void;
|
|
17
17
|
compute(): void;
|
|
18
|
+
private _attachHandlers;
|
|
18
19
|
dispose(): void;
|
|
19
20
|
}
|
|
20
21
|
//# sourceMappingURL=asyncScheduler.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"asyncScheduler.d.ts","sourceRoot":"","sources":["../../../src/schedulers/asyncScheduler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"asyncScheduler.d.ts","sourceRoot":"","sources":["../../../src/schedulers/asyncScheduler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD;;;GAGG;AACH,qBAAa,cAAc,CAAC,CAAC,CAAE,YAAW,SAAS;IAC/C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAmB;IAC5C,OAAO,CAAC,SAAS,CAAmB;IACpC,OAAO,CAAC,UAAU,CAAqB;IACvC,OAAO,CAAC,SAAS,CAA2B;IAC5C,OAAO,CAAC,QAAQ,CAAiC;IACjD,OAAO,CAAC,SAAS,CAAS;gBAEd,OAAO,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI;IAQxG,IAAI,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAG3B;IAED,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI;IAUpC,OAAO,IAAI,IAAI;IAUf,OAAO,CAAC,eAAe;IAavB,OAAO,IAAI,IAAI;CAIlB"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export * from './asyncScheduler';
|
|
2
|
-
export * from './pendingError';
|
|
3
|
-
export * from './scheduler';
|
|
4
|
-
export * from './syncScheduler';
|
|
1
|
+
export * from './asyncScheduler.js';
|
|
2
|
+
export * from './pendingError.js';
|
|
3
|
+
export * from './scheduler.js';
|
|
4
|
+
export * from './syncScheduler.js';
|
|
5
5
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/schedulers/index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/schedulers/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC"}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Manages synchronous computation lifecycle with
|
|
2
|
+
* Manages synchronous computation lifecycle with abort and settled-state guards.
|
|
3
3
|
* @internal
|
|
4
4
|
*/
|
|
5
5
|
export declare class SyncResolver<T> {
|
|
6
6
|
private readonly _compute;
|
|
7
|
-
private _iteration;
|
|
8
7
|
private _aborted;
|
|
9
8
|
private _finished;
|
|
10
9
|
private _onValue;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"syncResolver.d.ts","sourceRoot":"","sources":["../../../src/schedulers/syncResolver.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,qBAAa,YAAY,CAAC,CAAC;IACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAU;IACnC,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"syncResolver.d.ts","sourceRoot":"","sources":["../../../src/schedulers/syncResolver.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,qBAAa,YAAY,CAAC,CAAC;IACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAU;IACnC,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,SAAS,CAAS;IAE1B,OAAO,CAAC,QAAQ,CAAqB;IACrC,OAAO,CAAC,QAAQ,CAA2B;gBAE/B,OAAO,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI;IAM5F,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,OAAO,IAAI,IAAI;IAoBf,SAAS,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI;IAQzB,KAAK,IAAI,IAAI;CAGhB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"syncScheduler.d.ts","sourceRoot":"","sources":["../../../src/schedulers/syncScheduler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"syncScheduler.d.ts","sourceRoot":"","sources":["../../../src/schedulers/syncScheduler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAGhD;;;GAGG;AACH,qBAAa,aAAa,CAAC,CAAC,CAAE,YAAW,SAAS;IAC9C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAU;IACnC,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,UAAU,CAAqB;IACvC,OAAO,CAAC,SAAS,CAA2B;IAC5C,OAAO,CAAC,QAAQ,CAAiC;IACjD,OAAO,CAAC,SAAS,CAAS;gBAEd,OAAO,EAAE,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI;IAa/F,IAAI,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAE3B;IAED,SAAS,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI;IASzB,OAAO,IAAI,IAAI;IASf,OAAO,IAAI,IAAI;CAIlB"}
|
package/package.json
CHANGED
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ersbeth/picoflow",
|
|
3
|
-
"version": "2.0
|
|
3
|
+
"version": "2.2.0",
|
|
4
4
|
"description": "Minimal Dataflow library for TypeScript",
|
|
5
5
|
"type": "module",
|
|
6
|
+
"packageManager": "pnpm@11.9.0",
|
|
7
|
+
"engines": {
|
|
8
|
+
"node": ">=22"
|
|
9
|
+
},
|
|
6
10
|
"files": [
|
|
7
11
|
"dist",
|
|
8
12
|
"SKILL.md"
|
|
@@ -16,7 +20,21 @@
|
|
|
16
20
|
"lint": "pnpm exec biome check --fix",
|
|
17
21
|
"build": "pnpm exec vite build --config vite.config.ts",
|
|
18
22
|
"test": "pnpm exec vitest",
|
|
23
|
+
"test:coverage": "pnpm exec vitest run --coverage",
|
|
19
24
|
"test:browser": "pnpm exec vitest --config=vitest.browser.config.ts",
|
|
25
|
+
"test:browser:coverage": "pnpm exec vitest run --config=vitest.browser.config.ts --coverage",
|
|
26
|
+
"test:coverage:merge": "rm -rf .vitest-reports && pnpm exec vitest run --coverage --reporter=blob --outputFile=.vitest-reports/node.json && pnpm exec vitest run --config=vitest.browser.config.ts --coverage --reporter=blob --outputFile=.vitest-reports/browser.json && pnpm exec vitest --mergeReports=.vitest-reports --coverage",
|
|
27
|
+
"ci:check": "pnpm exec tsc --noEmit",
|
|
28
|
+
"ci:lint": "pnpm exec biome check .",
|
|
29
|
+
"ci:test": "pnpm exec vitest run --coverage",
|
|
30
|
+
"ci:test:browser": "pnpm exec vitest run --config=vitest.browser.config.ts --coverage",
|
|
31
|
+
"ci:pack:smoke": "node tools/release/smoke-tarball.mjs",
|
|
32
|
+
"ci:release:check": "node tools/release/check-release.mjs",
|
|
33
|
+
"playwright:install": "playwright install --with-deps chromium",
|
|
34
|
+
"quality:diff": "node tools/quality/differential-graph.mjs 400",
|
|
35
|
+
"quality:bench": "node tools/quality/bench-core.mjs",
|
|
36
|
+
"quality:snippets": "node tools/quality/check-doc-snippets.mjs",
|
|
37
|
+
"quality:mutation": "bash tools/quality/mutation-test.sh",
|
|
20
38
|
"docs:dev": "pnpm exec vitepress dev docs",
|
|
21
39
|
"docs:build": "pnpm docs:generate && pnpm exec vitepress build docs",
|
|
22
40
|
"docs:preview": "pnpm exec vitepress preview docs",
|
|
@@ -30,12 +48,14 @@
|
|
|
30
48
|
"@braintree/sanitize-url": "^7.1.1",
|
|
31
49
|
"@solidjs/testing-library": "^0.8.10",
|
|
32
50
|
"@vitest/browser-playwright": "^4.0.16",
|
|
51
|
+
"@vitest/coverage-v8": "4.0.16",
|
|
33
52
|
"cytoscape": "^3.33.1",
|
|
34
53
|
"cytoscape-cose-bilkent": "^4.1.0",
|
|
35
54
|
"dayjs": "^1.11.19",
|
|
36
55
|
"dompurify": "^3.3.0",
|
|
37
56
|
"jsdom": "^27.3.0",
|
|
38
57
|
"mermaid": "^11.12.1",
|
|
58
|
+
"playwright": "1.57.0",
|
|
39
59
|
"typedoc": "^0.28.15",
|
|
40
60
|
"typedoc-plugin-markdown": "^4.9.0",
|
|
41
61
|
"typedoc-vitepress-theme": "^1.1.2",
|
|
@@ -50,7 +70,7 @@
|
|
|
50
70
|
},
|
|
51
71
|
"repository": {
|
|
52
72
|
"type": "git",
|
|
53
|
-
"url": "git+
|
|
73
|
+
"url": "git+https://gitlab.com/ersbeth-web/picoflow.git"
|
|
54
74
|
},
|
|
55
75
|
"author": "Elisabeth Rousset",
|
|
56
76
|
"license": "MIT",
|