@ersbeth/picoflow 1.1.1 → 2.0.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 (383) hide show
  1. package/.vscode/settings.json +3 -3
  2. package/CHANGELOG.md +43 -0
  3. package/README.md +2 -18
  4. package/biome.json +45 -35
  5. package/dist/picoflow.js +857 -1528
  6. package/dist/types/api/base/flowDisposable.d.ts +41 -0
  7. package/dist/types/api/base/flowDisposable.d.ts.map +1 -0
  8. package/dist/types/api/base/flowObservable.d.ts +27 -0
  9. package/dist/types/api/base/flowObservable.d.ts.map +1 -0
  10. package/dist/types/api/base/flowSubscribable.d.ts +79 -0
  11. package/dist/types/api/base/flowSubscribable.d.ts.map +1 -0
  12. package/dist/types/api/base/flowTracker.d.ts +8 -0
  13. package/dist/types/api/base/flowTracker.d.ts.map +1 -0
  14. package/dist/types/api/base/index.d.ts +5 -0
  15. package/dist/types/api/base/index.d.ts.map +1 -0
  16. package/dist/types/api/index.d.ts +3 -0
  17. package/dist/types/api/index.d.ts.map +1 -0
  18. package/dist/types/api/nodes/async/flowConstantAsync.d.ts +31 -0
  19. package/dist/types/api/nodes/async/flowConstantAsync.d.ts.map +1 -0
  20. package/dist/types/api/nodes/async/flowDerivationAsync.d.ts +37 -0
  21. package/dist/types/api/nodes/async/flowDerivationAsync.d.ts.map +1 -0
  22. package/dist/types/api/nodes/async/flowStateAsync.d.ts +41 -0
  23. package/dist/types/api/nodes/async/flowStateAsync.d.ts.map +1 -0
  24. package/dist/types/api/nodes/async/flowWritableDerivationAsync.d.ts +30 -0
  25. package/dist/types/api/nodes/async/flowWritableDerivationAsync.d.ts.map +1 -0
  26. package/dist/types/{flow → api}/nodes/async/index.d.ts +1 -2
  27. package/dist/types/api/nodes/async/index.d.ts.map +1 -0
  28. package/dist/types/api/nodes/collections/flowArray.d.ts +134 -0
  29. package/dist/types/api/nodes/collections/flowArray.d.ts.map +1 -0
  30. package/dist/types/api/nodes/collections/flowMap.d.ts +98 -0
  31. package/dist/types/api/nodes/collections/flowMap.d.ts.map +1 -0
  32. package/dist/types/api/nodes/collections/index.d.ts.map +1 -0
  33. package/dist/types/api/nodes/flowEffect.d.ts +28 -0
  34. package/dist/types/api/nodes/flowEffect.d.ts.map +1 -0
  35. package/dist/types/api/nodes/flowSignal.d.ts +25 -0
  36. package/dist/types/api/nodes/flowSignal.d.ts.map +1 -0
  37. package/dist/types/api/nodes/flowValue.d.ts +35 -0
  38. package/dist/types/api/nodes/flowValue.d.ts.map +1 -0
  39. package/dist/types/api/nodes/index.d.ts +8 -0
  40. package/dist/types/api/nodes/index.d.ts.map +1 -0
  41. package/dist/types/api/nodes/sync/flowConstant.d.ts +29 -0
  42. package/dist/types/api/nodes/sync/flowConstant.d.ts.map +1 -0
  43. package/dist/types/api/nodes/sync/flowDerivation.d.ts +36 -0
  44. package/dist/types/api/nodes/sync/flowDerivation.d.ts.map +1 -0
  45. package/dist/types/api/nodes/sync/flowState.d.ts +39 -0
  46. package/dist/types/api/nodes/sync/flowState.d.ts.map +1 -0
  47. package/dist/types/api/nodes/sync/flowWritableDerivation.d.ts +28 -0
  48. package/dist/types/api/nodes/sync/flowWritableDerivation.d.ts.map +1 -0
  49. package/dist/types/{flow → api}/nodes/sync/index.d.ts +1 -2
  50. package/dist/types/api/nodes/sync/index.d.ts.map +1 -0
  51. package/dist/types/api/nodes/utils.d.ts +22 -0
  52. package/dist/types/api/nodes/utils.d.ts.map +1 -0
  53. package/dist/types/base/disposable.d.ts +11 -0
  54. package/dist/types/base/disposable.d.ts.map +1 -0
  55. package/dist/types/base/executionStack.d.ts +14 -0
  56. package/dist/types/base/executionStack.d.ts.map +1 -0
  57. package/dist/types/base/index.d.ts +6 -0
  58. package/dist/types/base/index.d.ts.map +1 -0
  59. package/dist/types/base/node.d.ts +27 -0
  60. package/dist/types/base/node.d.ts.map +1 -0
  61. package/dist/types/base/observable.d.ts +37 -0
  62. package/dist/types/base/observable.d.ts.map +1 -0
  63. package/dist/types/base/observer.d.ts +25 -0
  64. package/dist/types/base/observer.d.ts.map +1 -0
  65. package/dist/types/converters/index.d.ts +2 -0
  66. package/dist/types/converters/index.d.ts.map +1 -0
  67. package/dist/types/converters/solid.d.ts +46 -0
  68. package/dist/types/converters/solid.d.ts.map +1 -0
  69. package/dist/types/index.d.ts +2 -63
  70. package/dist/types/index.d.ts.map +1 -1
  71. package/dist/types/nodes/arrayNode.d.ts +2 -0
  72. package/dist/types/nodes/arrayNode.d.ts.map +1 -0
  73. package/dist/types/nodes/effectNode.d.ts +2 -0
  74. package/dist/types/nodes/effectNode.d.ts.map +1 -0
  75. package/dist/types/nodes/index.d.ts +9 -0
  76. package/dist/types/nodes/index.d.ts.map +1 -0
  77. package/dist/types/nodes/mapNode.d.ts +2 -0
  78. package/dist/types/nodes/mapNode.d.ts.map +1 -0
  79. package/dist/types/nodes/signalNode.d.ts +2 -0
  80. package/dist/types/nodes/signalNode.d.ts.map +1 -0
  81. package/dist/types/nodes/valueAsyncNode.d.ts +2 -0
  82. package/dist/types/nodes/valueAsyncNode.d.ts.map +1 -0
  83. package/dist/types/nodes/valueNode.d.ts +2 -0
  84. package/dist/types/nodes/valueNode.d.ts.map +1 -0
  85. package/dist/types/nodes/valueSyncNode.d.ts +2 -0
  86. package/dist/types/nodes/valueSyncNode.d.ts.map +1 -0
  87. package/dist/types/schedulers/asyncResolver.d.ts +2 -0
  88. package/dist/types/schedulers/asyncResolver.d.ts.map +1 -0
  89. package/dist/types/schedulers/asyncScheduler.d.ts +2 -0
  90. package/dist/types/schedulers/asyncScheduler.d.ts.map +1 -0
  91. package/dist/types/schedulers/index.d.ts +5 -0
  92. package/dist/types/schedulers/index.d.ts.map +1 -0
  93. package/dist/types/schedulers/pendingError.d.ts +2 -0
  94. package/dist/types/schedulers/pendingError.d.ts.map +1 -0
  95. package/dist/types/schedulers/scheduler.d.ts +2 -0
  96. package/dist/types/schedulers/scheduler.d.ts.map +1 -0
  97. package/dist/types/schedulers/syncResolver.d.ts +2 -0
  98. package/dist/types/schedulers/syncResolver.d.ts.map +1 -0
  99. package/dist/types/schedulers/syncScheduler.d.ts +2 -0
  100. package/dist/types/schedulers/syncScheduler.d.ts.map +1 -0
  101. package/docs/.vitepress/config.mts +128 -93
  102. package/docs/api/functions/array.md +14 -37
  103. package/docs/api/functions/constant.md +13 -25
  104. package/docs/api/functions/constantAsync.md +69 -0
  105. package/docs/api/functions/derivation.md +14 -33
  106. package/docs/api/functions/derivationAsync.md +34 -0
  107. package/docs/api/functions/from.md +62 -153
  108. package/docs/api/functions/isDisposable.md +8 -30
  109. package/docs/api/functions/map.md +15 -36
  110. package/docs/api/functions/signal.md +8 -23
  111. package/docs/api/functions/state.md +43 -23
  112. package/docs/api/functions/stateAsync.md +69 -0
  113. package/docs/api/functions/subscribe.md +40 -0
  114. package/docs/api/functions/writableDerivation.md +33 -0
  115. package/docs/api/functions/writableDerivationAsync.md +34 -0
  116. package/docs/api/index.md +45 -102
  117. package/docs/api/interfaces/FlowArray.md +439 -0
  118. package/docs/api/interfaces/FlowConstant.md +220 -0
  119. package/docs/api/interfaces/FlowConstantAsync.md +221 -0
  120. package/docs/api/interfaces/FlowDerivation.md +241 -0
  121. package/docs/api/interfaces/FlowDerivationAsync.md +242 -0
  122. package/docs/api/interfaces/FlowDisposable.md +32 -38
  123. package/docs/api/interfaces/FlowEffect.md +64 -0
  124. package/docs/api/interfaces/FlowMap.md +374 -0
  125. package/docs/api/interfaces/FlowObservable.md +155 -0
  126. package/docs/api/interfaces/FlowSignal.md +156 -0
  127. package/docs/api/interfaces/FlowState.md +269 -0
  128. package/docs/api/interfaces/FlowStateAsync.md +268 -0
  129. package/docs/api/interfaces/FlowSubscribable.md +55 -0
  130. package/docs/api/interfaces/FlowTracker.md +61 -0
  131. package/docs/api/interfaces/FlowValue.md +222 -0
  132. package/docs/api/interfaces/FlowWritableDerivation.md +292 -0
  133. package/docs/api/interfaces/FlowWritableDerivationAsync.md +293 -0
  134. package/docs/api/type-aliases/DerivationFunction.md +28 -0
  135. package/docs/api/type-aliases/DerivationFunctionAsync.md +28 -0
  136. package/docs/api/type-aliases/FlowArrayAction.md +19 -8
  137. package/docs/api/type-aliases/FlowDataTracker.md +33 -0
  138. package/docs/api/type-aliases/FlowMapAction.md +48 -0
  139. package/docs/api/type-aliases/FlowOnDataListener.md +33 -0
  140. package/docs/api/type-aliases/FlowOnErrorListener.md +27 -0
  141. package/docs/api/type-aliases/FlowOnPendingListener.md +21 -0
  142. package/docs/api/type-aliases/FlowReadonly.md +22 -0
  143. package/docs/api/type-aliases/InitFunction.md +21 -0
  144. package/docs/api/type-aliases/InitFunctionAsync.md +21 -0
  145. package/docs/api/type-aliases/NotPromise.md +6 -3
  146. package/docs/api/type-aliases/UpdateFunction.md +27 -0
  147. package/docs/api/type-aliases/UpdateFunctionAsync.md +27 -0
  148. package/docs/api/typedoc-sidebar.json +1 -81
  149. package/docs/examples/examples.md +0 -2
  150. package/docs/guide/advanced/architecture.md +1234 -0
  151. package/docs/guide/advanced/migration-v2.md +204 -0
  152. package/docs/guide/advanced/solidjs.md +2 -88
  153. package/docs/guide/introduction/concepts.md +4 -3
  154. package/docs/guide/introduction/conventions.md +2 -33
  155. package/docs/guide/introduction/getting-started.md +28 -23
  156. package/docs/guide/introduction/lifecycle.md +16 -19
  157. package/docs/guide/primitives/array.md +102 -216
  158. package/docs/guide/primitives/constant.md +39 -212
  159. package/docs/guide/primitives/derivations.md +55 -122
  160. package/docs/guide/primitives/effects.md +155 -241
  161. package/docs/guide/primitives/map.md +64 -186
  162. package/docs/guide/primitives/overview.md +45 -128
  163. package/docs/guide/primitives/signal.md +51 -88
  164. package/docs/guide/primitives/state.md +34 -130
  165. package/package.json +56 -60
  166. package/src/api/base/flowDisposable.ts +44 -0
  167. package/src/api/base/flowObservable.ts +28 -0
  168. package/src/api/base/flowSubscribable.ts +87 -0
  169. package/src/api/base/flowTracker.ts +7 -0
  170. package/src/api/base/index.ts +4 -0
  171. package/src/{flow → api}/index.ts +0 -1
  172. package/src/api/nodes/async/flowConstantAsync.ts +36 -0
  173. package/src/api/nodes/async/flowDerivationAsync.ts +42 -0
  174. package/src/api/nodes/async/flowStateAsync.ts +47 -0
  175. package/src/api/nodes/async/flowWritableDerivationAsync.ts +33 -0
  176. package/src/{flow → api}/nodes/async/index.ts +1 -2
  177. package/src/api/nodes/collections/flowArray.ts +155 -0
  178. package/src/api/nodes/collections/flowMap.ts +115 -0
  179. package/src/api/nodes/flowEffect.ts +42 -0
  180. package/src/api/nodes/flowSignal.ts +28 -0
  181. package/src/api/nodes/flowValue.ts +36 -0
  182. package/src/api/nodes/index.ts +7 -0
  183. package/src/api/nodes/sync/flowConstant.ts +33 -0
  184. package/src/api/nodes/sync/flowDerivation.ts +41 -0
  185. package/src/api/nodes/sync/flowState.ts +45 -0
  186. package/src/api/nodes/sync/flowWritableDerivation.ts +31 -0
  187. package/src/{flow → api}/nodes/sync/index.ts +1 -2
  188. package/src/api/nodes/utils.ts +22 -0
  189. package/src/base/disposable.ts +18 -0
  190. package/src/base/executionStack.ts +42 -0
  191. package/src/base/index.ts +5 -0
  192. package/src/base/node.ts +98 -0
  193. package/src/base/observable.ts +87 -0
  194. package/src/base/observer.ts +51 -0
  195. package/src/converters/index.ts +1 -0
  196. package/src/converters/solid.ts +109 -0
  197. package/src/index.ts +2 -64
  198. package/src/nodes/arrayNode.ts +172 -0
  199. package/src/nodes/effectNode.ts +59 -0
  200. package/src/nodes/index.ts +8 -0
  201. package/src/nodes/mapNode.ts +127 -0
  202. package/src/nodes/signalNode.ts +21 -0
  203. package/src/nodes/valueAsyncNode.ts +88 -0
  204. package/src/nodes/valueNode.ts +144 -0
  205. package/src/nodes/valueSyncNode.ts +128 -0
  206. package/src/schedulers/asyncResolver.ts +78 -0
  207. package/src/schedulers/asyncScheduler.ts +66 -0
  208. package/src/schedulers/index.ts +4 -0
  209. package/src/schedulers/pendingError.ts +13 -0
  210. package/src/schedulers/scheduler.ts +9 -0
  211. package/src/schedulers/syncResolver.ts +69 -0
  212. package/src/schedulers/syncScheduler.ts +55 -0
  213. package/test/base/pendingError.test.ts +67 -0
  214. package/test/converters/solid.derivation.browser.test.tsx +69 -0
  215. package/test/converters/solid.node.test.ts +654 -0
  216. package/test/converters/solid.state.browser.test.tsx +1592 -0
  217. package/test/reactivity/flowSignal.test.ts +226 -0
  218. package/test/reactivity/nodes/async/asyncScheduler/asyncResolver.test.ts +593 -0
  219. package/test/reactivity/nodes/async/asyncScheduler/asyncScheduler.test.ts +317 -0
  220. package/test/reactivity/nodes/async/flowConstantAsync.test.ts +652 -0
  221. package/test/reactivity/nodes/async/flowDerivation.test.ts +898 -0
  222. package/test/reactivity/nodes/async/flowDerivationAsync.test.ts +1716 -0
  223. package/test/reactivity/nodes/async/flowStateAsync.test.ts +708 -0
  224. package/test/reactivity/nodes/async/flowWritableDerivationAsync.test.ts +614 -0
  225. package/test/reactivity/nodes/collections/flowArray.asyncStates.test.ts +1289 -0
  226. package/test/reactivity/nodes/collections/flowArray.scalars.test.ts +961 -0
  227. package/test/reactivity/nodes/collections/flowArray.states.test.ts +1035 -0
  228. package/test/reactivity/nodes/collections/flowMap.asyncStates.test.ts +960 -0
  229. package/test/reactivity/nodes/collections/flowMap.scalars.test.ts +775 -0
  230. package/test/reactivity/nodes/collections/flowMap.states.test.ts +958 -0
  231. package/test/reactivity/nodes/sync/flowConstant.test.ts +377 -0
  232. package/test/reactivity/nodes/sync/flowDerivation.test.ts +896 -0
  233. package/test/reactivity/nodes/sync/flowState.test.ts +341 -0
  234. package/test/reactivity/nodes/sync/flowWritableDerivation.test.ts +603 -0
  235. package/test/vitest.d.ts +10 -0
  236. package/tsconfig.json +31 -20
  237. package/typedoc.json +35 -35
  238. package/vite.config.ts +25 -23
  239. package/vitest.browser.config.ts +21 -0
  240. package/vitest.config.ts +12 -12
  241. package/.cursor/plans/unifier-flowresource-avec-flowderivation-c9506e24.plan.md +0 -372
  242. package/.cursor/plans/update-js-e795d61b.plan.md +0 -567
  243. package/dist/types/flow/base/flowDisposable.d.ts +0 -67
  244. package/dist/types/flow/base/flowDisposable.d.ts.map +0 -1
  245. package/dist/types/flow/base/flowEffect.d.ts +0 -127
  246. package/dist/types/flow/base/flowEffect.d.ts.map +0 -1
  247. package/dist/types/flow/base/flowGraph.d.ts +0 -97
  248. package/dist/types/flow/base/flowGraph.d.ts.map +0 -1
  249. package/dist/types/flow/base/flowSignal.d.ts +0 -134
  250. package/dist/types/flow/base/flowSignal.d.ts.map +0 -1
  251. package/dist/types/flow/base/flowTracker.d.ts +0 -15
  252. package/dist/types/flow/base/flowTracker.d.ts.map +0 -1
  253. package/dist/types/flow/base/index.d.ts +0 -7
  254. package/dist/types/flow/base/index.d.ts.map +0 -1
  255. package/dist/types/flow/base/utils.d.ts +0 -20
  256. package/dist/types/flow/base/utils.d.ts.map +0 -1
  257. package/dist/types/flow/collections/flowArray.d.ts +0 -148
  258. package/dist/types/flow/collections/flowArray.d.ts.map +0 -1
  259. package/dist/types/flow/collections/flowMap.d.ts +0 -224
  260. package/dist/types/flow/collections/flowMap.d.ts.map +0 -1
  261. package/dist/types/flow/collections/index.d.ts.map +0 -1
  262. package/dist/types/flow/index.d.ts +0 -4
  263. package/dist/types/flow/index.d.ts.map +0 -1
  264. package/dist/types/flow/nodes/async/flowConstantAsync.d.ts +0 -137
  265. package/dist/types/flow/nodes/async/flowConstantAsync.d.ts.map +0 -1
  266. package/dist/types/flow/nodes/async/flowDerivationAsync.d.ts +0 -137
  267. package/dist/types/flow/nodes/async/flowDerivationAsync.d.ts.map +0 -1
  268. package/dist/types/flow/nodes/async/flowNodeAsync.d.ts +0 -343
  269. package/dist/types/flow/nodes/async/flowNodeAsync.d.ts.map +0 -1
  270. package/dist/types/flow/nodes/async/flowReadonlyAsync.d.ts +0 -81
  271. package/dist/types/flow/nodes/async/flowReadonlyAsync.d.ts.map +0 -1
  272. package/dist/types/flow/nodes/async/flowStateAsync.d.ts +0 -111
  273. package/dist/types/flow/nodes/async/flowStateAsync.d.ts.map +0 -1
  274. package/dist/types/flow/nodes/async/index.d.ts.map +0 -1
  275. package/dist/types/flow/nodes/index.d.ts +0 -3
  276. package/dist/types/flow/nodes/index.d.ts.map +0 -1
  277. package/dist/types/flow/nodes/sync/flowConstant.d.ts +0 -108
  278. package/dist/types/flow/nodes/sync/flowConstant.d.ts.map +0 -1
  279. package/dist/types/flow/nodes/sync/flowDerivation.d.ts +0 -100
  280. package/dist/types/flow/nodes/sync/flowDerivation.d.ts.map +0 -1
  281. package/dist/types/flow/nodes/sync/flowNode.d.ts +0 -314
  282. package/dist/types/flow/nodes/sync/flowNode.d.ts.map +0 -1
  283. package/dist/types/flow/nodes/sync/flowReadonly.d.ts +0 -57
  284. package/dist/types/flow/nodes/sync/flowReadonly.d.ts.map +0 -1
  285. package/dist/types/flow/nodes/sync/flowState.d.ts +0 -96
  286. package/dist/types/flow/nodes/sync/flowState.d.ts.map +0 -1
  287. package/dist/types/flow/nodes/sync/index.d.ts.map +0 -1
  288. package/dist/types/solid/converters.d.ts +0 -53
  289. package/dist/types/solid/converters.d.ts.map +0 -1
  290. package/dist/types/solid/index.d.ts +0 -3
  291. package/dist/types/solid/index.d.ts.map +0 -1
  292. package/dist/types/solid/primitives.d.ts +0 -181
  293. package/dist/types/solid/primitives.d.ts.map +0 -1
  294. package/docs/api/classes/FlowArray.md +0 -489
  295. package/docs/api/classes/FlowConstant.md +0 -350
  296. package/docs/api/classes/FlowDerivation.md +0 -334
  297. package/docs/api/classes/FlowEffect.md +0 -100
  298. package/docs/api/classes/FlowMap.md +0 -512
  299. package/docs/api/classes/FlowObservable.md +0 -306
  300. package/docs/api/classes/FlowResource.md +0 -380
  301. package/docs/api/classes/FlowResourceAsync.md +0 -362
  302. package/docs/api/classes/FlowSignal.md +0 -160
  303. package/docs/api/classes/FlowState.md +0 -368
  304. package/docs/api/classes/FlowStream.md +0 -367
  305. package/docs/api/classes/FlowStreamAsync.md +0 -364
  306. package/docs/api/classes/SolidDerivation.md +0 -75
  307. package/docs/api/classes/SolidResource.md +0 -91
  308. package/docs/api/classes/SolidState.md +0 -71
  309. package/docs/api/classes/TrackingContext.md +0 -33
  310. package/docs/api/functions/effect.md +0 -49
  311. package/docs/api/functions/resource.md +0 -52
  312. package/docs/api/functions/resourceAsync.md +0 -50
  313. package/docs/api/functions/stream.md +0 -53
  314. package/docs/api/functions/streamAsync.md +0 -50
  315. package/docs/api/interfaces/SolidObservable.md +0 -19
  316. package/docs/api/type-aliases/FlowStreamDisposer.md +0 -15
  317. package/docs/api/type-aliases/FlowStreamSetter.md +0 -27
  318. package/docs/api/type-aliases/FlowStreamUpdater.md +0 -32
  319. package/docs/api/type-aliases/SolidGetter.md +0 -17
  320. package/docs/guide/primitives/resources.md +0 -858
  321. package/docs/guide/primitives/streams.md +0 -931
  322. package/src/flow/base/flowDisposable.ts +0 -71
  323. package/src/flow/base/flowEffect.ts +0 -171
  324. package/src/flow/base/flowGraph.ts +0 -288
  325. package/src/flow/base/flowSignal.ts +0 -207
  326. package/src/flow/base/flowTracker.ts +0 -17
  327. package/src/flow/base/index.ts +0 -6
  328. package/src/flow/base/utils.ts +0 -19
  329. package/src/flow/collections/flowArray.ts +0 -409
  330. package/src/flow/collections/flowMap.ts +0 -398
  331. package/src/flow/nodes/async/flowConstantAsync.ts +0 -142
  332. package/src/flow/nodes/async/flowDerivationAsync.ts +0 -143
  333. package/src/flow/nodes/async/flowNodeAsync.ts +0 -474
  334. package/src/flow/nodes/async/flowReadonlyAsync.ts +0 -81
  335. package/src/flow/nodes/async/flowStateAsync.ts +0 -116
  336. package/src/flow/nodes/await/advanced/index.ts +0 -5
  337. package/src/flow/nodes/await/advanced/resource.ts +0 -134
  338. package/src/flow/nodes/await/advanced/resourceAsync.ts +0 -109
  339. package/src/flow/nodes/await/advanced/stream.ts +0 -188
  340. package/src/flow/nodes/await/advanced/streamAsync.ts +0 -176
  341. package/src/flow/nodes/await/flowConstantAwait.ts +0 -154
  342. package/src/flow/nodes/await/flowDerivationAwait.ts +0 -154
  343. package/src/flow/nodes/await/flowNodeAwait.ts +0 -508
  344. package/src/flow/nodes/await/flowReadonlyAwait.ts +0 -89
  345. package/src/flow/nodes/await/flowStateAwait.ts +0 -130
  346. package/src/flow/nodes/await/index.ts +0 -5
  347. package/src/flow/nodes/index.ts +0 -3
  348. package/src/flow/nodes/sync/flowConstant.ts +0 -111
  349. package/src/flow/nodes/sync/flowDerivation.ts +0 -105
  350. package/src/flow/nodes/sync/flowNode.ts +0 -439
  351. package/src/flow/nodes/sync/flowReadonly.ts +0 -57
  352. package/src/flow/nodes/sync/flowState.ts +0 -101
  353. package/src/solid/converters.ts +0 -139
  354. package/src/solid/index.ts +0 -2
  355. package/src/solid/primitives.ts +0 -215
  356. package/test/base/flowEffect.test.ts +0 -108
  357. package/test/base/flowGraph.test.ts +0 -485
  358. package/test/base/flowSignal.test.ts +0 -372
  359. package/test/collections/flowArray.asyncStates.test.ts +0 -1553
  360. package/test/collections/flowArray.scalars.test.ts +0 -1129
  361. package/test/collections/flowArray.states.test.ts +0 -1365
  362. package/test/collections/flowMap.asyncStates.test.ts +0 -1105
  363. package/test/collections/flowMap.scalars.test.ts +0 -877
  364. package/test/collections/flowMap.states.test.ts +0 -1097
  365. package/test/nodes/async/flowConstantAsync.test.ts +0 -860
  366. package/test/nodes/async/flowDerivationAsync.test.ts +0 -1517
  367. package/test/nodes/async/flowStateAsync.test.ts +0 -1387
  368. package/test/nodes/await/advanced/resource.test.ts +0 -129
  369. package/test/nodes/await/advanced/resourceAsync.test.ts +0 -108
  370. package/test/nodes/await/advanced/stream.test.ts +0 -198
  371. package/test/nodes/await/advanced/streamAsync.test.ts +0 -196
  372. package/test/nodes/await/flowConstantAwait.test.ts +0 -643
  373. package/test/nodes/await/flowDerivationAwait.test.ts +0 -1583
  374. package/test/nodes/await/flowStateAwait.test.ts +0 -999
  375. package/test/nodes/mixed/derivation.test.ts +0 -1527
  376. package/test/nodes/sync/flowConstant.test.ts +0 -620
  377. package/test/nodes/sync/flowDerivation.test.ts +0 -1373
  378. package/test/nodes/sync/flowState.test.ts +0 -945
  379. package/test/solid/converters.test.ts +0 -721
  380. package/test/solid/primitives.test.ts +0 -1031
  381. /package/dist/types/{flow → api/nodes}/collections/index.d.ts +0 -0
  382. /package/docs/guide/advanced/{upgrading.md → migration-v1.md} +0 -0
  383. /package/src/{flow → api/nodes}/collections/index.ts +0 -0
@@ -0,0 +1,293 @@
1
+ [@ersbeth/picoflow](/api/index.md) / FlowWritableDerivationAsync
2
+
3
+ # Interface: FlowWritableDerivationAsync\<T\>
4
+
5
+ Defined in: [api/nodes/async/flowWritableDerivationAsync.ts:16](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/nodes/async/flowWritableDerivationAsync.ts#L16)
6
+
7
+ Writable reactive value that recomputes asynchronously when dependencies change, but can be manually overridden.
8
+
9
+ Async writable derivations combine reactive async computation with manual control. They track dependencies and
10
+ recompute asynchronously like regular async derivations, but you can also call `set()` to override the computed
11
+ value with a new promise. While recomputing or pending, accessing the value throws PendingError. Use for computed
12
+ async values that users can edit, such as formatted async fields, calculated async totals that can be adjusted,
13
+ or any async value that is usually derived but sometimes needs manual correction.
14
+
15
+ ## Extends
16
+
17
+ - [`FlowStateAsync`](/api/interfaces/FlowStateAsync.md)\<`T`\>.[`FlowDerivationAsync`](/api/interfaces/FlowDerivationAsync.md)\<`T`\>
18
+
19
+ ## Type Parameters
20
+
21
+ | Type Parameter |
22
+ | ------ |
23
+ | `T` |
24
+
25
+ ## Accessors
26
+
27
+ ### disposed
28
+
29
+ #### Get Signature
30
+
31
+ ```ts
32
+ get disposed(): boolean;
33
+ ```
34
+
35
+ Defined in: [api/base/flowDisposable.ts:17](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/base/flowDisposable.ts#L17)
36
+
37
+ Indicates whether this resource has been disposed.
38
+
39
+ Returns `true` if `dispose()` has been called, `false` otherwise. Once disposed,
40
+ the resource is no longer usable and any operations on it will throw errors.
41
+
42
+ ##### Returns
43
+
44
+ `boolean`
45
+
46
+ #### Inherited from
47
+
48
+ [`FlowStateAsync`](/api/interfaces/FlowStateAsync.md).[`disposed`](/api/interfaces/FlowStateAsync.md#disposed)
49
+
50
+ ## Methods
51
+
52
+ ### dispose()
53
+
54
+ ```ts
55
+ dispose(): void;
56
+ ```
57
+
58
+ Defined in: [api/base/flowDisposable.ts:27](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/base/flowDisposable.ts#L27)
59
+
60
+ Releases all resources held by this disposable object.
61
+
62
+ Cleans up all subscriptions, dependencies, and internal state. After calling this method,
63
+ the resource enters a disposed state and cannot be reused. Any subsequent operations will
64
+ throw errors. This method should be called when you no longer need the reactive primitive
65
+ to prevent memory leaks.
66
+
67
+ #### Returns
68
+
69
+ `void`
70
+
71
+ #### Inherited from
72
+
73
+ [`FlowStateAsync`](/api/interfaces/FlowStateAsync.md).[`dispose`](/api/interfaces/FlowStateAsync.md#dispose)
74
+
75
+ ***
76
+
77
+ ### get()
78
+
79
+ ```ts
80
+ get(tracker): T;
81
+ ```
82
+
83
+ Defined in: [api/nodes/flowValue.ts:24](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/nodes/flowValue.ts#L24)
84
+
85
+ Gets the current value and establishes a reactive dependency.
86
+
87
+ When called from within a reactive computation, this method registers the value as a dependency,
88
+ ensuring the computation re-executes when the value changes. The value is computed on first access
89
+ (if lazy) and then cached. For async values, throws PendingError while the value is resolving.
90
+
91
+ #### Parameters
92
+
93
+ | Parameter | Type | Description |
94
+ | ------ | ------ | ------ |
95
+ | `tracker` | [`FlowTracker`](/api/interfaces/FlowTracker.md) | Tracker that records this value as a dependency |
96
+
97
+ #### Returns
98
+
99
+ `T`
100
+
101
+ The current value
102
+
103
+ #### Inherited from
104
+
105
+ [`FlowStateAsync`](/api/interfaces/FlowStateAsync.md).[`get`](/api/interfaces/FlowStateAsync.md#get)
106
+
107
+ ***
108
+
109
+ ### pick()
110
+
111
+ ```ts
112
+ pick(): Promise<T>;
113
+ ```
114
+
115
+ Defined in: [api/nodes/flowValue.ts:35](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/nodes/flowValue.ts#L35)
116
+
117
+ Asynchronously gets the current value without establishing a reactive dependency.
118
+
119
+ This method reads the value non-reactively, meaning it won't trigger re-execution of the calling
120
+ computation when the value changes. The value is computed on first access (if lazy) and then cached.
121
+ For async values, the promise resolves once the value is available.
122
+
123
+ #### Returns
124
+
125
+ `Promise`\<`T`\>
126
+
127
+ Promise that resolves with the current value
128
+
129
+ #### Inherited from
130
+
131
+ [`FlowStateAsync`](/api/interfaces/FlowStateAsync.md).[`pick`](/api/interfaces/FlowStateAsync.md#pick)
132
+
133
+ ***
134
+
135
+ ### refresh()
136
+
137
+ ```ts
138
+ refresh(): void;
139
+ ```
140
+
141
+ Defined in: [api/nodes/async/flowDerivationAsync.ts:24](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/nodes/async/flowDerivationAsync.ts#L24)
142
+
143
+ Forces the derivation to recompute even if dependencies haven't changed.
144
+
145
+ #### Returns
146
+
147
+ `void`
148
+
149
+ #### Inherited from
150
+
151
+ [`FlowDerivationAsync`](/api/interfaces/FlowDerivationAsync.md).[`refresh`](/api/interfaces/FlowDerivationAsync.md#refresh)
152
+
153
+ ***
154
+
155
+ ### set()
156
+
157
+ #### Call Signature
158
+
159
+ ```ts
160
+ set(promise): void;
161
+ ```
162
+
163
+ Defined in: [api/nodes/async/flowStateAsync.ts:26](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/nodes/async/flowStateAsync.ts#L26)
164
+
165
+ Updates the state with a new promise or via an async updater function.
166
+ Notifies all dependents immediately (they will receive PendingError until resolved).
167
+
168
+ ##### Parameters
169
+
170
+ | Parameter | Type | Description |
171
+ | ------ | ------ | ------ |
172
+ | `promise` | `Promise`\<`T`\> | New promise to resolve, or async function that receives current value and returns a promise |
173
+
174
+ ##### Returns
175
+
176
+ `void`
177
+
178
+ ##### Inherited from
179
+
180
+ [`FlowStateAsync`](/api/interfaces/FlowStateAsync.md).[`set`](/api/interfaces/FlowStateAsync.md#set)
181
+
182
+ #### Call Signature
183
+
184
+ ```ts
185
+ set(updater): void;
186
+ ```
187
+
188
+ Defined in: [api/nodes/async/flowStateAsync.ts:27](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/nodes/async/flowStateAsync.ts#L27)
189
+
190
+ ##### Parameters
191
+
192
+ | Parameter | Type |
193
+ | ------ | ------ |
194
+ | `updater` | [`UpdateFunctionAsync`](/api/type-aliases/UpdateFunctionAsync.md)\<`T`\> |
195
+
196
+ ##### Returns
197
+
198
+ `void`
199
+
200
+ ##### Inherited from
201
+
202
+ [`FlowStateAsync`](/api/interfaces/FlowStateAsync.md).[`set`](/api/interfaces/FlowStateAsync.md#set)
203
+
204
+ ***
205
+
206
+ ### subscribe()
207
+
208
+ ```ts
209
+ subscribe(
210
+ onData,
211
+ onError?,
212
+ onPending?): FlowEffect;
213
+ ```
214
+
215
+ Defined in: [api/base/flowSubscribable.ts:82](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/base/flowSubscribable.ts#L82)
216
+
217
+ Subscribes to this observable with lifecycle callbacks.
218
+
219
+ Creates an active subscription that executes immediately and then re-executes whenever
220
+ the observable's dependencies change. The subscription remains active until the returned
221
+ disposal function is called. The `onData` callback receives the computed value, while
222
+ `onError` handles errors and `onPending` signals async operations in progress.
223
+
224
+ #### Parameters
225
+
226
+ | Parameter | Type | Description |
227
+ | ------ | ------ | ------ |
228
+ | `onData` | [`FlowOnDataListener`](/api/type-aliases/FlowOnDataListener.md)\<`T`\> | Callback invoked with the computed data on each execution |
229
+ | `onError?` | [`FlowOnErrorListener`](/api/type-aliases/FlowOnErrorListener.md) | Optional callback for handling errors during execution |
230
+ | `onPending?` | [`FlowOnPendingListener`](/api/type-aliases/FlowOnPendingListener.md) | Optional callback invoked when async dependencies are pending |
231
+
232
+ #### Returns
233
+
234
+ [`FlowEffect`](/api/interfaces/FlowEffect.md)
235
+
236
+ A function to dispose the subscription and stop receiving updates
237
+
238
+ #### Inherited from
239
+
240
+ [`FlowStateAsync`](/api/interfaces/FlowStateAsync.md).[`subscribe`](/api/interfaces/FlowStateAsync.md#subscribe)
241
+
242
+ ***
243
+
244
+ ### trigger()
245
+
246
+ ```ts
247
+ trigger(): void;
248
+ ```
249
+
250
+ Defined in: [api/base/flowObservable.ts:27](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/base/flowObservable.ts#L27)
251
+
252
+ Manually triggers notifications to all dependents.
253
+
254
+ Forces all dependents of this observable to be notified and re-executed, even if the
255
+ value hasn't actually changed. Useful for imperatively triggering updates when the
256
+ reactive system cannot detect changes automatically.
257
+
258
+ #### Returns
259
+
260
+ `void`
261
+
262
+ #### Inherited from
263
+
264
+ [`FlowStateAsync`](/api/interfaces/FlowStateAsync.md).[`trigger`](/api/interfaces/FlowStateAsync.md#trigger)
265
+
266
+ ***
267
+
268
+ ### watch()
269
+
270
+ ```ts
271
+ watch(tracker): void;
272
+ ```
273
+
274
+ Defined in: [api/base/flowObservable.ts:18](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/base/flowObservable.ts#L18)
275
+
276
+ Establishes a reactive dependency without reading the value.
277
+
278
+ Registers this observable as a dependency of the given tracker, allowing it to be notified
279
+ when changes occur. This enables dependency tracking without accessing the actual value.
280
+
281
+ #### Parameters
282
+
283
+ | Parameter | Type | Description |
284
+ | ------ | ------ | ------ |
285
+ | `tracker` | [`FlowTracker`](/api/interfaces/FlowTracker.md) | Tracker that records this observable as a dependency |
286
+
287
+ #### Returns
288
+
289
+ `void`
290
+
291
+ #### Inherited from
292
+
293
+ [`FlowStateAsync`](/api/interfaces/FlowStateAsync.md).[`watch`](/api/interfaces/FlowStateAsync.md#watch)
@@ -0,0 +1,28 @@
1
+ [@ersbeth/picoflow](/api/index.md) / DerivationFunction
2
+
3
+ # Type Alias: DerivationFunction()\<T\>
4
+
5
+ ```ts
6
+ type DerivationFunction<T> = (tracker, previous?) => NotPromise<T>;
7
+ ```
8
+
9
+ Defined in: [api/nodes/sync/flowDerivation.ts:7](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/nodes/sync/flowDerivation.ts#L7)
10
+
11
+ Function that derives a value from dependencies and optionally the previous value.
12
+
13
+ ## Type Parameters
14
+
15
+ | Type Parameter |
16
+ | ------ |
17
+ | `T` |
18
+
19
+ ## Parameters
20
+
21
+ | Parameter | Type |
22
+ | ------ | ------ |
23
+ | `tracker` | [`FlowTracker`](/api/interfaces/FlowTracker.md) |
24
+ | `previous?` | [`NotPromise`](/api/type-aliases/NotPromise.md)\<`T`\> |
25
+
26
+ ## Returns
27
+
28
+ [`NotPromise`](/api/type-aliases/NotPromise.md)\<`T`\>
@@ -0,0 +1,28 @@
1
+ [@ersbeth/picoflow](/api/index.md) / DerivationFunctionAsync
2
+
3
+ # Type Alias: DerivationFunctionAsync()\<T\>
4
+
5
+ ```ts
6
+ type DerivationFunctionAsync<T> = (tracker, previous?) => Promise<T>;
7
+ ```
8
+
9
+ Defined in: [api/nodes/async/flowDerivationAsync.ts:7](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/nodes/async/flowDerivationAsync.ts#L7)
10
+
11
+ Function that derives a value asynchronously from dependencies and optionally the previous value.
12
+
13
+ ## Type Parameters
14
+
15
+ | Type Parameter |
16
+ | ------ |
17
+ | `T` |
18
+
19
+ ## Parameters
20
+
21
+ | Parameter | Type |
22
+ | ------ | ------ |
23
+ | `tracker` | [`FlowTracker`](/api/interfaces/FlowTracker.md) |
24
+ | `previous?` | [`NotPromise`](/api/type-aliases/NotPromise.md)\<`T`\> |
25
+
26
+ ## Returns
27
+
28
+ `Promise`\<`T`\>
@@ -5,42 +5,53 @@
5
5
  ```ts
6
6
  type FlowArrayAction<T> =
7
7
  | {
8
- items: T[];
8
+ clearedItems: T[];
9
+ setItems: T[];
9
10
  type: "set";
10
11
  }
11
12
  | {
13
+ clearedItem: T | undefined;
12
14
  index: number;
13
- item: T;
14
- type: "setItem";
15
+ setItem: T;
16
+ type: "update";
15
17
  }
16
18
  | {
17
- item: T;
19
+ addedItem: T;
18
20
  type: "push";
19
21
  }
20
22
  | {
23
+ removedItem: T | undefined;
21
24
  type: "pop";
22
25
  }
23
26
  | {
24
- item: T;
27
+ addedItem: T;
25
28
  type: "unshift";
26
29
  }
27
30
  | {
31
+ removedItem: T | undefined;
28
32
  type: "shift";
29
33
  }
30
34
  | {
35
+ addedItems: T[];
31
36
  deleteCount: number;
32
- items: T[];
37
+ removedItems: T[];
33
38
  start: number;
34
39
  type: "splice";
35
40
  }
36
41
  | {
42
+ clearedItems: T[];
37
43
  type: "clear";
38
44
  };
39
45
  ```
40
46
 
41
- Defined in: [advanced/array.ts:8](https://gitlab.com/ersbeth-web/picoflow/-/blob/a6cd2e5702b60b87a8efe22e2fe7d2ce3b0ccca4/src/advanced/array.ts#L8)
47
+ Defined in: [api/nodes/collections/flowArray.ts:14](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/nodes/collections/flowArray.ts#L14)
42
48
 
43
- Represents the actions that can be performed on a FlowArray.
49
+ Discriminated union representing all possible array mutation operations.
50
+
51
+ Each mutation on a FlowArray emits an action describing what changed. This enables fine-grained
52
+ reactive tracking - you can observe the array itself or subscribe to `$lastAction` to react only
53
+ to specific mutations. Use this for optimized rendering, undo/redo systems, or any scenario where
54
+ you need to know exactly what changed rather than just that something changed.
44
55
 
45
56
  ## Type Parameters
46
57
 
@@ -0,0 +1,33 @@
1
+ [@ersbeth/picoflow](/api/index.md) / FlowDataTracker
2
+
3
+ # Type Alias: FlowDataTracker()\<T\>
4
+
5
+ ```ts
6
+ type FlowDataTracker<T> = (t) => T;
7
+ ```
8
+
9
+ Defined in: [api/base/flowSubscribable.ts:16](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/base/flowSubscribable.ts#L16)
10
+
11
+ Function that tracks reactive dependencies and returns data.
12
+
13
+ This function is called during effect execution with a tracker parameter that automatically
14
+ records any reactive values accessed. The tracker enables automatic dependency tracking without
15
+ explicit subscriptions. The returned data is passed to the `onData` callback.
16
+
17
+ ## Type Parameters
18
+
19
+ | Type Parameter |
20
+ | ------ |
21
+ | `T` |
22
+
23
+ ## Parameters
24
+
25
+ | Parameter | Type | Description |
26
+ | ------ | ------ | ------ |
27
+ | `t` | [`FlowTracker`](/api/interfaces/FlowTracker.md) | Tracker object that records dependencies when reactive values are accessed |
28
+
29
+ ## Returns
30
+
31
+ `T`
32
+
33
+ The computed data of type T
@@ -0,0 +1,48 @@
1
+ [@ersbeth/picoflow](/api/index.md) / FlowMapAction
2
+
3
+ # Type Alias: FlowMapAction\<K, V\>
4
+
5
+ ```ts
6
+ type FlowMapAction<K, V> =
7
+ | {
8
+ clearedMap: Map<K, V>;
9
+ setMap: Map<K, V>;
10
+ type: "set";
11
+ }
12
+ | {
13
+ addedValue: V;
14
+ key: K;
15
+ type: "add";
16
+ }
17
+ | {
18
+ clearedValue: V;
19
+ key: K;
20
+ setValue: V;
21
+ type: "update";
22
+ }
23
+ | {
24
+ key: K;
25
+ removedValue: V;
26
+ type: "delete";
27
+ }
28
+ | {
29
+ clearedMap: Map<K, V>;
30
+ type: "clear";
31
+ };
32
+ ```
33
+
34
+ Defined in: [api/nodes/collections/flowMap.ts:14](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/nodes/collections/flowMap.ts#L14)
35
+
36
+ Discriminated union representing all possible map mutation operations.
37
+
38
+ Each mutation on a FlowMap emits an action describing what changed. This enables fine-grained
39
+ reactive tracking - you can observe the map itself or subscribe to `$lastAction` to react only
40
+ to specific mutations. Use this for optimized updates, undo/redo systems, or any scenario where
41
+ you need to know exactly what changed rather than just that something changed.
42
+
43
+ ## Type Parameters
44
+
45
+ | Type Parameter |
46
+ | ------ |
47
+ | `K` |
48
+ | `V` |
@@ -0,0 +1,33 @@
1
+ [@ersbeth/picoflow](/api/index.md) / FlowOnDataListener
2
+
3
+ # Type Alias: FlowOnDataListener()\<T\>
4
+
5
+ ```ts
6
+ type FlowOnDataListener<T> = (data) => undefined;
7
+ ```
8
+
9
+ Defined in: [api/base/flowSubscribable.ts:30](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/base/flowSubscribable.ts#L30)
10
+
11
+ Callback invoked when new data is available.
12
+
13
+ This callback runs each time the effect executes successfully, receiving the data returned
14
+ by the tracker function. It's called immediately on effect creation and then on every reactive
15
+ re-execution. Use this callback to perform side effects with the computed data.
16
+
17
+ ## Type Parameters
18
+
19
+ | Type Parameter |
20
+ | ------ |
21
+ | `T` |
22
+
23
+ ## Parameters
24
+
25
+ | Parameter | Type | Description |
26
+ | ------ | ------ | ------ |
27
+ | `data` | `T` | The computed data from the tracker function |
28
+
29
+ ## Returns
30
+
31
+ `undefined`
32
+
33
+ Always returns undefined (callbacks are for side effects)
@@ -0,0 +1,27 @@
1
+ [@ersbeth/picoflow](/api/index.md) / FlowOnErrorListener
2
+
3
+ # Type Alias: FlowOnErrorListener()
4
+
5
+ ```ts
6
+ type FlowOnErrorListener = (error) => undefined;
7
+ ```
8
+
9
+ Defined in: [api/base/flowSubscribable.ts:44](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/base/flowSubscribable.ts#L44)
10
+
11
+ Callback invoked when an error occurs during effect execution.
12
+
13
+ If provided, this callback handles any errors thrown by the tracker function (except PendingError).
14
+ Without this callback, errors propagate and may crash the application. Use this for error logging,
15
+ recovery, or user feedback. The effect remains active and will retry on the next reactive trigger.
16
+
17
+ ## Parameters
18
+
19
+ | Parameter | Type | Description |
20
+ | ------ | ------ | ------ |
21
+ | `error` | `Error` | The error that occurred, always normalized to an Error instance |
22
+
23
+ ## Returns
24
+
25
+ `undefined`
26
+
27
+ Always returns undefined (callbacks are for side effects)
@@ -0,0 +1,21 @@
1
+ [@ersbeth/picoflow](/api/index.md) / FlowOnPendingListener
2
+
3
+ # Type Alias: FlowOnPendingListener()
4
+
5
+ ```ts
6
+ type FlowOnPendingListener = () => undefined;
7
+ ```
8
+
9
+ Defined in: [api/base/flowSubscribable.ts:57](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/base/flowSubscribable.ts#L57)
10
+
11
+ Callback invoked when an async computation is pending.
12
+
13
+ This callback is triggered when the tracker function throws a PendingError, indicating that
14
+ async dependencies are still resolving. Use this to show loading states or pending indicators.
15
+ The effect will automatically re-execute once the async values settle.
16
+
17
+ ## Returns
18
+
19
+ `undefined`
20
+
21
+ Always returns undefined (callbacks are for side effects)
@@ -0,0 +1,22 @@
1
+ [@ersbeth/picoflow](/api/index.md) / FlowReadonly
2
+
3
+ # Type Alias: FlowReadonly\<T\>
4
+
5
+ ```ts
6
+ type FlowReadonly<T> = Omit<T, "set" | "refresh" | "trigger">;
7
+ ```
8
+
9
+ Defined in: [api/nodes/utils.ts:22](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/nodes/utils.ts#L22)
10
+
11
+ Type that restricts mutation methods to create read-only versions of reactive primitives.
12
+
13
+ This utility type removes mutation methods (`set`, `refresh`, `trigger`) from a reactive primitive,
14
+ creating a read-only interface. Use this when you want to expose reactive values to consumers who
15
+ should observe but not modify them, such as passing state to child components or external modules
16
+ while maintaining encapsulation of write access.
17
+
18
+ ## Type Parameters
19
+
20
+ | Type Parameter |
21
+ | ------ |
22
+ | `T` |
@@ -0,0 +1,21 @@
1
+ [@ersbeth/picoflow](/api/index.md) / InitFunction
2
+
3
+ # Type Alias: InitFunction()\<T\>
4
+
5
+ ```ts
6
+ type InitFunction<T> = () => NotPromise<T>;
7
+ ```
8
+
9
+ Defined in: [api/nodes/sync/flowConstant.ts:6](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/nodes/sync/flowConstant.ts#L6)
10
+
11
+ Function that initializes a value.
12
+
13
+ ## Type Parameters
14
+
15
+ | Type Parameter |
16
+ | ------ |
17
+ | `T` |
18
+
19
+ ## Returns
20
+
21
+ [`NotPromise`](/api/type-aliases/NotPromise.md)\<`T`\>
@@ -0,0 +1,21 @@
1
+ [@ersbeth/picoflow](/api/index.md) / InitFunctionAsync
2
+
3
+ # Type Alias: InitFunctionAsync()\<T\>
4
+
5
+ ```ts
6
+ type InitFunctionAsync<T> = () => Promise<T>;
7
+ ```
8
+
9
+ Defined in: [api/nodes/async/flowConstantAsync.ts:5](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/nodes/async/flowConstantAsync.ts#L5)
10
+
11
+ Function that initializes a value asynchronously.
12
+
13
+ ## Type Parameters
14
+
15
+ | Type Parameter |
16
+ | ------ |
17
+ | `T` |
18
+
19
+ ## Returns
20
+
21
+ `Promise`\<`T`\>
@@ -6,10 +6,13 @@
6
6
  type NotPromise<T> = T extends Promise<unknown> ? never : T;
7
7
  ```
8
8
 
9
- Defined in: [solid/converters.ts:149](https://gitlab.com/ersbeth-web/picoflow/-/blob/a6cd2e5702b60b87a8efe22e2fe7d2ce3b0ccca4/src/solid/converters.ts#L149)
9
+ Defined in: [api/nodes/utils.ts:10](https://gitlab.com/ersbeth-web/picoflow/-/blob/4e864254f0eac72524c3be40b9e41d799a16e020/src/api/nodes/utils.ts#L10)
10
10
 
11
- Utility type that excludes Promise types from T.
12
- Used to ensure type safety for synchronous derivations/resources.
11
+ Type that excludes Promise values from a type union.
12
+
13
+ This utility type ensures that synchronous reactive primitives (like `state`, `constant`, `derivation`)
14
+ only accept non-Promise values. Use this to prevent accidental mixing of sync and async values, which
15
+ would cause runtime errors. For async values, use the async variants (like `stateAsync`, `constantAsync`).
13
16
 
14
17
  ## Type Parameters
15
18