@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.
Files changed (94) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +15 -0
  3. package/dist/picoflow.js +204 -60
  4. package/dist/types/api/base/flowObservable.d.ts +3 -3
  5. package/dist/types/api/base/flowObservable.d.ts.map +1 -1
  6. package/dist/types/api/base/flowSubscribable.d.ts +2 -2
  7. package/dist/types/api/base/flowSubscribable.d.ts.map +1 -1
  8. package/dist/types/api/base/flowTracker.d.ts +1 -1
  9. package/dist/types/api/base/flowTracker.d.ts.map +1 -1
  10. package/dist/types/api/base/index.d.ts +4 -4
  11. package/dist/types/api/base/index.d.ts.map +1 -1
  12. package/dist/types/api/index.d.ts +2 -2
  13. package/dist/types/api/index.d.ts.map +1 -1
  14. package/dist/types/api/nodes/async/flowConstantAsync.d.ts +1 -1
  15. package/dist/types/api/nodes/async/flowConstantAsync.d.ts.map +1 -1
  16. package/dist/types/api/nodes/async/flowDerivationAsync.d.ts +3 -3
  17. package/dist/types/api/nodes/async/flowDerivationAsync.d.ts.map +1 -1
  18. package/dist/types/api/nodes/async/flowStateAsync.d.ts +3 -3
  19. package/dist/types/api/nodes/async/flowStateAsync.d.ts.map +1 -1
  20. package/dist/types/api/nodes/async/flowWritableDerivationAsync.d.ts +2 -2
  21. package/dist/types/api/nodes/async/flowWritableDerivationAsync.d.ts.map +1 -1
  22. package/dist/types/api/nodes/async/index.d.ts +4 -4
  23. package/dist/types/api/nodes/async/index.d.ts.map +1 -1
  24. package/dist/types/api/nodes/collections/flowArray.d.ts +7 -4
  25. package/dist/types/api/nodes/collections/flowArray.d.ts.map +1 -1
  26. package/dist/types/api/nodes/collections/flowMap.d.ts +3 -2
  27. package/dist/types/api/nodes/collections/flowMap.d.ts.map +1 -1
  28. package/dist/types/api/nodes/collections/index.d.ts +2 -2
  29. package/dist/types/api/nodes/collections/index.d.ts.map +1 -1
  30. package/dist/types/api/nodes/flowEffect.d.ts +2 -2
  31. package/dist/types/api/nodes/flowEffect.d.ts.map +1 -1
  32. package/dist/types/api/nodes/flowSignal.d.ts +1 -1
  33. package/dist/types/api/nodes/flowSignal.d.ts.map +1 -1
  34. package/dist/types/api/nodes/flowValue.d.ts +2 -2
  35. package/dist/types/api/nodes/flowValue.d.ts.map +1 -1
  36. package/dist/types/api/nodes/index.d.ts +7 -7
  37. package/dist/types/api/nodes/index.d.ts.map +1 -1
  38. package/dist/types/api/nodes/sync/flowConstant.d.ts +2 -2
  39. package/dist/types/api/nodes/sync/flowConstant.d.ts.map +1 -1
  40. package/dist/types/api/nodes/sync/flowDerivation.d.ts +3 -3
  41. package/dist/types/api/nodes/sync/flowDerivation.d.ts.map +1 -1
  42. package/dist/types/api/nodes/sync/flowState.d.ts +3 -3
  43. package/dist/types/api/nodes/sync/flowState.d.ts.map +1 -1
  44. package/dist/types/api/nodes/sync/flowWritableDerivation.d.ts +2 -2
  45. package/dist/types/api/nodes/sync/flowWritableDerivation.d.ts.map +1 -1
  46. package/dist/types/api/nodes/sync/index.d.ts +4 -4
  47. package/dist/types/api/nodes/sync/index.d.ts.map +1 -1
  48. package/dist/types/api/nodes/utils.d.ts +1 -1
  49. package/dist/types/api/nodes/utils.d.ts.map +1 -1
  50. package/dist/types/base/disposable.d.ts +1 -1
  51. package/dist/types/base/disposable.d.ts.map +1 -1
  52. package/dist/types/base/executionStack.d.ts +22 -1
  53. package/dist/types/base/executionStack.d.ts.map +1 -1
  54. package/dist/types/base/index.d.ts +5 -5
  55. package/dist/types/base/index.d.ts.map +1 -1
  56. package/dist/types/base/node.d.ts +4 -4
  57. package/dist/types/base/node.d.ts.map +1 -1
  58. package/dist/types/base/observable.d.ts +3 -3
  59. package/dist/types/base/observable.d.ts.map +1 -1
  60. package/dist/types/base/observer.d.ts +2 -2
  61. package/dist/types/base/observer.d.ts.map +1 -1
  62. package/dist/types/converters/index.d.ts +1 -1
  63. package/dist/types/converters/index.d.ts.map +1 -1
  64. package/dist/types/converters/solid.d.ts +12 -8
  65. package/dist/types/converters/solid.d.ts.map +1 -1
  66. package/dist/types/index.d.ts +2 -2
  67. package/dist/types/index.d.ts.map +1 -1
  68. package/dist/types/nodes/actionNode.d.ts +23 -0
  69. package/dist/types/nodes/actionNode.d.ts.map +1 -0
  70. package/dist/types/nodes/arrayNode.d.ts +4 -3
  71. package/dist/types/nodes/arrayNode.d.ts.map +1 -1
  72. package/dist/types/nodes/effectNode.d.ts +18 -2
  73. package/dist/types/nodes/effectNode.d.ts.map +1 -1
  74. package/dist/types/nodes/index.d.ts +8 -7
  75. package/dist/types/nodes/index.d.ts.map +1 -1
  76. package/dist/types/nodes/mapNode.d.ts +4 -3
  77. package/dist/types/nodes/mapNode.d.ts.map +1 -1
  78. package/dist/types/nodes/signalNode.d.ts +2 -2
  79. package/dist/types/nodes/signalNode.d.ts.map +1 -1
  80. package/dist/types/nodes/valueAsyncNode.d.ts +3 -3
  81. package/dist/types/nodes/valueAsyncNode.d.ts.map +1 -1
  82. package/dist/types/nodes/valueNode.d.ts +3 -3
  83. package/dist/types/nodes/valueNode.d.ts.map +1 -1
  84. package/dist/types/nodes/valueSyncNode.d.ts +3 -3
  85. package/dist/types/nodes/valueSyncNode.d.ts.map +1 -1
  86. package/dist/types/schedulers/asyncScheduler.d.ts +2 -1
  87. package/dist/types/schedulers/asyncScheduler.d.ts.map +1 -1
  88. package/dist/types/schedulers/index.d.ts +4 -4
  89. package/dist/types/schedulers/index.d.ts.map +1 -1
  90. package/dist/types/schedulers/syncResolver.d.ts +1 -2
  91. package/dist/types/schedulers/syncResolver.d.ts.map +1 -1
  92. package/dist/types/schedulers/syncScheduler.d.ts +1 -1
  93. package/dist/types/schedulers/syncScheduler.d.ts.map +1 -1
  94. package/package.json +20 -1
@@ -1,8 +1,9 @@
1
- export * from './arrayNode';
2
- export * from './effectNode';
3
- export * from './mapNode';
4
- export * from './signalNode';
5
- export * from './valueAsyncNode';
6
- export * from './valueNode';
7
- export * from './valueSyncNode';
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,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,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 { ValueSyncNode } from './valueSyncNode';
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: ValueSyncNode<FlowMapAction<K, V>>;
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,QAAQ,CAAC;AAEjF,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD;;;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,aAAa,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACvD,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;IAiBpB,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
+ {"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,EAAE,UAAU,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACrH,OAAO,EAAE,UAAU,EAAiB,MAAM,SAAS,CAAC;AAGpD;;;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
+ {"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,QAAQ,CAAC;AAC1G,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC;;;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;IAOlB,OAAO,CAAC,SAAS;IAMjB,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI;IAC9B,GAAG,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG,IAAI;IAgC1C,OAAO,IAAI,IAAI;CAIlB"}
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,6 +1,6 @@
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
4
  /**
5
5
  * Base class for reactive values that compute, cache, and propagate changes through the dependency graph.
6
6
  * @internal
@@ -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,QAAQ,CAAC;AAChB,OAAO,EAAkB,IAAI,EAAwC,MAAM,SAAS,CAAC;AACrF,OAAO,EAAgB,KAAK,SAAS,EAAE,MAAM,eAAe,CAAC;AAG7D;;;GAGG;AACH,8BAAsB,SAAS,CAAC,CAAC,CAAE,SAAQ,IAAI,CAAC,CAAC,CAAC;IAC9C,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;IASf,SAAS,CACL,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAC9B,OAAO,CAAC,EAAE,mBAAmB,EAC7B,SAAS,CAAC,EAAE,qBAAqB,GAClC,UAAU;CAKhB"}
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;;;GAGG;AACH,8BAAsB,SAAS,CAAC,CAAC,CAAE,SAAQ,IAAI,CAAC,CAAC,CAAC;IAC9C,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,QAAQ,CAAC;AAC3F,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC;;;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;IAiDrC,OAAO,IAAI,IAAI;CAsBlB"}
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,aAAa,CAAC;AAE7C;;;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;IAWxG,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;IAapC,OAAO,IAAI,IAAI;IAaf,OAAO,IAAI,IAAI;CAIlB"}
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,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,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 iteration tracking to prevent race conditions.
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,UAAU,CAAK;IACvB,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;IAsBf,SAAS,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI;IAazB,KAAK,IAAI,IAAI;CAIhB"}
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,4 +1,4 @@
1
- import { Scheduler } from './scheduler';
1
+ import { Scheduler } from './scheduler.js';
2
2
  /**
3
3
  * Scheduler that manages synchronous computation lifecycle with resolver instances.
4
4
  * @internal
@@ -1 +1 @@
1
- {"version":3,"file":"syncScheduler.d.ts","sourceRoot":"","sources":["../../../src/schedulers/syncScheduler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAG7C;;;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"}
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",
3
+ "version": "2.1.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,20 @@
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
+ "ci:check": "pnpm exec tsc --noEmit",
27
+ "ci:lint": "pnpm exec biome check .",
28
+ "ci:test": "pnpm exec vitest run",
29
+ "ci:test:browser": "pnpm exec vitest run --config=vitest.browser.config.ts",
30
+ "ci:pack:smoke": "node tools/release/smoke-tarball.mjs",
31
+ "ci:release:check": "node tools/release/check-release.mjs",
32
+ "playwright:install": "playwright install --with-deps chromium",
33
+ "quality:diff": "node tools/quality/differential-graph.mjs 400",
34
+ "quality:bench": "node tools/quality/bench-core.mjs",
35
+ "quality:snippets": "node tools/quality/check-doc-snippets.mjs",
36
+ "quality:mutation": "bash tools/quality/mutation-test.sh",
20
37
  "docs:dev": "pnpm exec vitepress dev docs",
21
38
  "docs:build": "pnpm docs:generate && pnpm exec vitepress build docs",
22
39
  "docs:preview": "pnpm exec vitepress preview docs",
@@ -30,12 +47,14 @@
30
47
  "@braintree/sanitize-url": "^7.1.1",
31
48
  "@solidjs/testing-library": "^0.8.10",
32
49
  "@vitest/browser-playwright": "^4.0.16",
50
+ "@vitest/coverage-v8": "4.0.16",
33
51
  "cytoscape": "^3.33.1",
34
52
  "cytoscape-cose-bilkent": "^4.1.0",
35
53
  "dayjs": "^1.11.19",
36
54
  "dompurify": "^3.3.0",
37
55
  "jsdom": "^27.3.0",
38
56
  "mermaid": "^11.12.1",
57
+ "playwright": "1.57.0",
39
58
  "typedoc": "^0.28.15",
40
59
  "typedoc-plugin-markdown": "^4.9.0",
41
60
  "typedoc-vitepress-theme": "^1.1.2",