@ersbeth/picoflow 1.1.2 → 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 +856 -1530
  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 -57
  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 -148
  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
@@ -1,127 +0,0 @@
1
- import { FlowTracker } from './flowTracker';
2
- /**
3
- * Runs side-effect code in response to reactive state changes.
4
- *
5
- * @remarks
6
- * A `FlowEffect` is the bridge between reactive data and the outside world
7
- * (UI updates, logging, network calls, timers, etc.). It executes a callback
8
- * with a tracking context so you can choose which observables/signals should
9
- * re-trigger the effect:
10
- *
11
- * - Use `observable.get(t)` or `signal.watch(t)` to create dependencies.
12
- * - Use `observable.pick()` for untracked reads that should not re-run the effect.
13
- *
14
- * The callback runs immediately when the effect is created and re-runs whenever
15
- * any tracked dependency changes. The effect itself is the tracking context
16
- * (it implements `FlowTracker`), so `t` in your callback is the effect instance.
17
- *
18
- * Async callbacks are supported: if the callback returns a promise, the effect
19
- * awaits it before finishing the current run. A later change can re-run the
20
- * effect even if a previous async run is still pending, so write idempotent
21
- * side effects when working with async flows.
22
- *
23
- * @example
24
- * ```typescript
25
- * // Mixed tracked/untracked reads
26
- * const fx = effect((t) => {
27
- * const tracked = $stateA.get(t); // tracked -> re-runs when $stateA changes
28
- * const snapshot = $config.pick(); // untracked -> does not re-run on changes
29
- * console.log(tracked, snapshot);
30
- * });
31
- *
32
- * // Async work
33
- * const fxAsync = effect(async (t) => {
34
- * const userId = $userId.get(t);
35
- * const profile = await fetchProfile(userId);
36
- * renderProfile(profile);
37
- * });
38
- * ```
39
- *
40
- * @public
41
- */
42
- export declare class FlowEffect {
43
- private _disposed;
44
- private _dependencies;
45
- private _apply;
46
- settled: Promise<void>;
47
- /**
48
- * Creates a new effect and runs it once immediately.
49
- *
50
- * @param apply - Side-effect function receiving the tracking context (`t`).
51
- * It can be sync or async (returning `Promise<void>`).
52
- *
53
- * @remarks
54
- * Use `t` to opt-in to reactive tracking:
55
- * - `observable.get(t)` / `signal.watch(t)` to re-run when they change
56
- * - `observable.pick()` for reads that should not re-run the effect
57
- *
58
- * The effect schedules its first run during construction. Each subsequent
59
- * change to a tracked dependency queues another run.
60
- *
61
- * @public
62
- */
63
- constructor(apply: (t: FlowTracker) => void | Promise<void>);
64
- /**
65
- * Stops the effect and detaches it from all tracked dependencies.
66
- *
67
- * @remarks
68
- * Call this when the effect's work is no longer needed (e.g., component
69
- * unmount, teardown of a feature). After disposal:
70
- * - The effect will not re-run.
71
- * - All dependency links are removed.
72
- * - Calling `dispose()` again throws an error.
73
- *
74
- * @example
75
- * ```typescript
76
- * const fx = effect((t) => $signal.watch(t));
77
- * // ... later
78
- * fx.dispose();
79
- * ```
80
- *
81
- * @public
82
- */
83
- dispose(): void;
84
- /**
85
- * Whether the effect has been disposed.
86
- *
87
- * @returns `true` once disposal has run; `false` while the effect is active.
88
- *
89
- * @public
90
- */
91
- get disposed(): boolean;
92
- private _exec;
93
- }
94
- /**
95
- * Creates a reactive effect that runs now and re-runs when its tracked
96
- * dependencies change.
97
- *
98
- * @param fn - Side-effect function that receives the tracking context (`t`).
99
- * @returns A new {@link FlowEffect}.
100
- *
101
- * @remarks
102
- * Use an effect when you need to react to state changes with side effects
103
- * (UI updates, logging, network calls, timers). For computing derived values,
104
- * prefer derivations; for one-off work, use a normal function.
105
- *
106
- * - Track dependencies with `observable.get(t)` or `signal.watch(t)`.
107
- * - Read without tracking using `observable.pick()`.
108
- * - Async callbacks are supported; return a promise if you `await` inside.
109
- *
110
- * @example
111
- * ```typescript
112
- * const $count = state(0);
113
- *
114
- * const fx = effect((t) => {
115
- * console.log("Count is:", $count.get(t));
116
- * });
117
- *
118
- * $count.set(1); // Logs "Count is: 1"
119
- * $count.set(2); // Logs "Count is: 2"
120
- *
121
- * fx.dispose(); // Stop reacting
122
- * ```
123
- *
124
- * @public
125
- */
126
- export declare function effect(fn: (t: FlowTracker) => void): FlowEffect;
127
- //# sourceMappingURL=flowEffect.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"flowEffect.d.ts","sourceRoot":"","sources":["../../../../src/flow/base/flowEffect.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,qBAAa,UAAU;IACtB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,aAAa,CAAyB;IAC9C,OAAO,CAAC,MAAM,CAA2C;IACzD,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvB;;;;;;;;;;;;;;;OAeG;gBACS,KAAK,EAAE,CAAC,CAAC,EAAE,WAAW,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAK3D;;;;;;;;;;;;;;;;;;OAkBG;IACI,OAAO,IAAI,IAAI;IAQtB;;;;;;OAMG;IACH,IAAW,QAAQ,IAAI,OAAO,CAE7B;YAiBa,KAAK;CAUnB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,WAAW,KAAK,IAAI,GAAG,UAAU,CAE/D"}
@@ -1,97 +0,0 @@
1
- import { FlowEffect } from './flowEffect';
2
- /**
3
- * Coordinates reactive operations (reads, writes, triggers, effects).
4
- *
5
- * @remarks
6
- * FlowGraph manages the execution order of reactive operations to ensure
7
- * consistent state updates. It queues operations and processes them in a
8
- * controlled sequence, executing effects after state changes complete.
9
- *
10
- * Most users will not interact with FlowGraph directly; reactive primitives
11
- * use it internally. The `clear()` method may be useful for testing scenarios
12
- * where you need to reset the internal state between tests.
13
- *
14
- * @public
15
- */
16
- export declare class FlowGraph {
17
- private static _effectsQueue;
18
- private static _actionQueue;
19
- private static _processingActionQueue;
20
- /**
21
- * Resets all internal queues and processing state.
22
- *
23
- * @remarks
24
- * Use this method primarily for testing scenarios where you need to ensure
25
- * a clean state between test runs. It clears pending effects and queued
26
- * operations.
27
- *
28
- * @example
29
- * ```typescript
30
- * beforeEach(() => {
31
- * FlowGraph.clear();
32
- * });
33
- * ```
34
- *
35
- * @public
36
- */
37
- static clear(): void;
38
- /**
39
- * Queues a trigger notification for processing.
40
- *
41
- * @param notify - Function to call when the trigger is processed.
42
- * @returns A promise that resolves after the trigger is processed.
43
- *
44
- * @remarks
45
- * This method is used internally by reactive primitives to coordinate
46
- * signal triggers. The promise resolves after all associated effects
47
- * have been executed.
48
- *
49
- * @public
50
- */
51
- static requestTrigger(notify: () => void): Promise<void>;
52
- /**
53
- * Queues a read operation for processing.
54
- *
55
- * @param read - Function that performs the read operation.
56
- * @returns A promise that resolves with the read value.
57
- *
58
- * @remarks
59
- * This method is used internally by reactive primitives to coordinate
60
- * read operations. The read function is executed and its result (or promise)
61
- * is returned.
62
- *
63
- * @public
64
- */
65
- static requestRead<T>(read: () => T | Promise<T>): Promise<T>;
66
- /**
67
- * Queues a write operation with update logic for processing.
68
- *
69
- * @param notify - Function to call if the update succeeds.
70
- * @param update - Function that performs the update and returns whether
71
- * it changed the value.
72
- * @returns A promise that resolves after the write is processed.
73
- *
74
- * @remarks
75
- * This method is used internally by reactive primitives to coordinate
76
- * write operations. The update function is executed, and if it returns true
77
- * (or a promise resolving to true), the notify function is called to
78
- * trigger dependent effects.
79
- *
80
- * @public
81
- */
82
- static requestWrite(notify: () => void, update: () => boolean | Promise<boolean>): Promise<void>;
83
- /**
84
- * Queues effects for execution after the current operation completes.
85
- *
86
- * @param effects - Array of effects to queue for execution.
87
- *
88
- * @remarks
89
- * This method is used internally by reactive primitives to schedule effect
90
- * execution. Effects are executed after the current read/write/trigger
91
- * operation completes, ensuring proper ordering of reactive updates.
92
- *
93
- * @public
94
- */
95
- static pushEffects(effects: FlowEffect[]): void;
96
- }
97
- //# sourceMappingURL=flowGraph.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"flowGraph.d.ts","sourceRoot":"","sources":["../../../../src/flow/base/flowGraph.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAmE/C;;;;;;;;;;;;;GAaG;AACH,qBAAa,SAAS;IACrB,OAAO,CAAC,MAAM,CAAC,aAAa,CAAoB;IAChD,OAAO,CAAC,MAAM,CAAC,YAAY,CAAuB;IAClD,OAAO,CAAC,MAAM,CAAC,sBAAsB,CAAS;IAE9C;;;;;;;;;;;;;;;;OAgBG;IACH,MAAM,CAAC,KAAK,IAAI,IAAI;IAMpB;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAWxD;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAW7D;;;;;;;;;;;;;;;OAeG;IACH,MAAM,CAAC,YAAY,CAClB,MAAM,EAAE,MAAM,IAAI,EAClB,MAAM,EAAE,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,GACtC,OAAO,CAAC,IAAI,CAAC;IAYhB;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,IAAI;CAuF/C"}
@@ -1,134 +0,0 @@
1
- import { FlowDisposable } from './flowDisposable';
2
- import { FlowEffect } from './flowEffect';
3
- import { FlowTracker } from './flowTracker';
4
- /**
5
- * Event-like reactive primitive with no payload.
6
- *
7
- * @remarks
8
- * A signal is used to broadcast that “something happened” (refresh, invalidate,
9
- * notify). It does not carry data; it only notifies dependents that they should
10
- * react. Track it with `watch(t)` inside an effect or derivation to re-run when
11
- * the signal is triggered.
12
- *
13
- * Signals can be triggered and disposed. Once disposed, further interaction
14
- * throws an error.
15
- *
16
- * @public
17
- */
18
- export declare class FlowSignal implements FlowDisposable, FlowTracker {
19
- /**
20
- * Triggers the signal and notifies all dependents.
21
- *
22
- * @remarks
23
- * Any effect/derivation that called `watch(t)` on this signal will re-run.
24
- * Returns a promise that settles after notifications complete.
25
- *
26
- * @throws Error if the signal is disposed.
27
- *
28
- * @example
29
- * ```typescript
30
- * const $tick = signal();
31
- *
32
- * effect((t) => {
33
- * $tick.watch(t);
34
- * console.log("tick");
35
- * });
36
- *
37
- * $tick.trigger(); // logs "tick"
38
- * ```
39
- *
40
- * @public
41
- */
42
- trigger(): Promise<void>;
43
- /**
44
- * Registers this signal as a dependency in the current tracking context.
45
- *
46
- * @param context - The tracking context (`t`) provided to effects/derivations.
47
- *
48
- * @remarks
49
- * Signals have no value to read; calling `watch(t)` simply means “re-run me
50
- * when this signal is triggered.” Call this inside an effect/derivation
51
- * callback where a tracking context is available.
52
- *
53
- * @throws Error if the signal has been disposed.
54
- *
55
- * @example
56
- * ```typescript
57
- * const $refresh = signal();
58
- *
59
- * effect((t) => {
60
- * $refresh.watch(t);
61
- * console.log("refresh triggered");
62
- * });
63
- *
64
- * $refresh.trigger(); // logs "refresh triggered"
65
- * ```
66
- *
67
- * @public
68
- */
69
- watch(caller: FlowTracker): void;
70
- /**
71
- * Disposes the signal and cleans up its dependencies/listeners.
72
- *
73
- * @remarks
74
- * After disposal the signal must not be used; calling `trigger` or `watch`
75
- * will throw. If `options?.self` is true, only this signal is disposed; when
76
- * false or omitted, dependents may also be disposed depending on the
77
- * implementation.
78
- *
79
- * @throws Error if the signal is already disposed.
80
- *
81
- * @example
82
- * ```typescript
83
- * const $refresh = signal();
84
- * // ... use it
85
- * $refresh.dispose();
86
- * ```
87
- *
88
- * @public
89
- */
90
- dispose(options?: {
91
- self: boolean;
92
- }): void;
93
- /**
94
- * Whether the signal has been disposed.
95
- *
96
- * @returns `true` if disposed; `false` while active.
97
- *
98
- * @remarks Use to guard operations or avoid double disposal.
99
- *
100
- * @public
101
- */
102
- get disposed(): boolean;
103
- protected _disposed: boolean;
104
- protected _dependencies: Set<FlowSignal>;
105
- protected _listeners: Set<FlowSignal>;
106
- protected _effects: Set<FlowEffect>;
107
- protected _notify(): void;
108
- }
109
- /**
110
- * Creates a new signal for event-like notifications.
111
- *
112
- * @returns A new instance of {@link FlowSignal}.
113
- *
114
- * @remarks
115
- * Use signals to announce “something happened” when no payload is needed. Track
116
- * them with `watch(t)` inside effects/derivations and trigger them to re-run
117
- * dependents.
118
- *
119
- * @example
120
- * ```typescript
121
- * const $ready = signal();
122
- *
123
- * effect((t) => {
124
- * $ready.watch(t);
125
- * console.log("ready!");
126
- * });
127
- *
128
- * $ready.trigger(); // logs "ready!"
129
- * ```
130
- *
131
- * @public
132
- */
133
- export declare function signal(): FlowSignal;
134
- //# sourceMappingURL=flowSignal.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"flowSignal.d.ts","sourceRoot":"","sources":["../../../../src/flow/base/flowSignal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjD;;;;;;;;;;;;;GAaG;AACH,qBAAa,UAAW,YAAW,cAAc,EAAE,WAAW;IAC7D;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACU,OAAO;IAKpB;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACI,KAAK,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI;IAKvC;;;;;;;;;;;;;;;;;;;OAmBG;IACI,OAAO,CAAC,OAAO,CAAC,EAAE;QAAE,IAAI,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI;IAuBjD;;;;;;;;OAQG;IACH,IAAW,QAAQ,IAAI,OAAO,CAE7B;IAID,SAAS,CAAC,SAAS,UAAS;IAE5B,SAAS,CAAC,aAAa,kBAAyB;IAEhD,SAAS,CAAC,UAAU,kBAAyB;IAE7C,SAAS,CAAC,QAAQ,kBAAyB;IAE3C,SAAS,CAAC,OAAO,IAAI,IAAI;CAiCzB;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,MAAM,IAAI,UAAU,CAEnC"}
@@ -1,15 +0,0 @@
1
- /**
2
- * Tracking context passed to reactive callbacks.
3
- *
4
- * @remarks
5
- * Effects and derivations receive an instance of `FlowTracker` as the `t`
6
- * parameter. Use it inside your callback to register dependencies (for example
7
- * via APIs that accept `t`) so the callback can re-run when those dependencies
8
- * change. Typical users do not implement this interface directly; it is
9
- * implemented by the reactive primitives themselves.
10
- *
11
- * @public
12
- */
13
- export interface FlowTracker {
14
- }
15
- //# sourceMappingURL=flowTracker.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"flowTracker.d.ts","sourceRoot":"","sources":["../../../../src/flow/base/flowTracker.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,WAAW;CAE3B"}
@@ -1,7 +0,0 @@
1
- export * from './flowDisposable';
2
- export * from './flowEffect';
3
- export * from './flowGraph';
4
- export * from './flowSignal';
5
- export * from './flowTracker';
6
- export * from './utils';
7
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/flow/base/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC"}
@@ -1,20 +0,0 @@
1
- /**
2
- * Excludes `Promise` types from `T`, returning `never` if `T` is a promise.
3
- *
4
- * @remarks
5
- * Use `NotPromise<T>` to constrain generics to synchronous values. It is helpful
6
- * when an API must reject promise inputs while accepting other types unchanged.
7
- *
8
- * @example
9
- * ```typescript
10
- * function useSync<T>(value: NotPromise<T>) {
11
- * // value cannot be a Promise
12
- * return value;
13
- * }
14
- *
15
- * useSync(123); // ok
16
- * // useSync(Promise.resolve(1)); // type error
17
- * ```
18
- */
19
- export type NotPromise<T> = T extends Promise<unknown> ? never : T;
20
- //# sourceMappingURL=utils.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/flow/base/utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI,CAAC,SAAS,OAAO,CAAC,OAAO,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC"}
@@ -1,148 +0,0 @@
1
- import { FlowNode, FlowState } from '../nodes';
2
- /**
3
- * Represents the actions that can be performed on a FlowArray.
4
- * @public
5
- */
6
- export type FlowArrayAction<T> = {
7
- type: "set";
8
- items: T[];
9
- } | {
10
- type: "update";
11
- index: number;
12
- item: T;
13
- } | {
14
- type: "push";
15
- item: T;
16
- } | {
17
- type: "pop";
18
- } | {
19
- type: "unshift";
20
- item: T;
21
- } | {
22
- type: "shift";
23
- } | {
24
- type: "splice";
25
- start: number;
26
- deleteCount: number;
27
- items: T[];
28
- } | {
29
- type: "clear";
30
- };
31
- /**
32
- * Represents a reactive array.
33
- * @public
34
- */
35
- export declare class FlowArray<T> extends FlowNode<T[]> {
36
- /**
37
- * Last action performed on the FlowArray.
38
- * @public
39
- */
40
- $lastAction: FlowState<FlowArrayAction<T>>;
41
- protected _value: T[];
42
- /**
43
- * Creates an instance of FlowArray.
44
- * @param value - Initial array value.
45
- * @public
46
- */
47
- constructor(value?: T[]);
48
- /**
49
- * Gets the current length of the array.
50
- * @returns The length of the array.
51
- * @public
52
- */
53
- get length(): number;
54
- /**
55
- * Replaces the entire array with new items.
56
- * @param items - The new array of items.
57
- * @public
58
- */
59
- set(items: T[]): Promise<void>;
60
- /**
61
- * Replaces an item at a specific index.
62
- * @param index - The index of the item to replace.
63
- * @param item - The new item.
64
- * @public
65
- */
66
- update(index: number, item: T): Promise<void>;
67
- /**
68
- * Appends an item to the end of the array.
69
- * @param item - The item to append.
70
- * @public
71
- */
72
- push(item: T): Promise<void>;
73
- /**
74
- * Removes the last item from the array.
75
- * @public
76
- */
77
- pop(): Promise<void>;
78
- /**
79
- * Inserts an item at the beginning of the array.
80
- * @param item - The item to insert.
81
- * @public
82
- */
83
- unshift(item: T): Promise<void>;
84
- /**
85
- * Removes the first item from the array.
86
- * @public
87
- */
88
- shift(): Promise<void>;
89
- /**
90
- * Changes the content of the array.
91
- * @param start - The starting index.
92
- * @param deleteCount - Number of items to remove.
93
- * @param newItems - New items to add.
94
- * @public
95
- */
96
- splice(start: number, deleteCount: number, ...newItems: T[]): Promise<void>;
97
- /**
98
- * Clears all items from the array.
99
- * @public
100
- */
101
- clear(): Promise<void>;
102
- /**
103
- * Disposes the FlowArray and its items.
104
- * @param options - Disposal options.
105
- * @public
106
- */
107
- dispose(options?: {
108
- self: boolean;
109
- }): void;
110
- }
111
- /**
112
- * Creates a new reactive array with mutation methods and fine-grained action tracking.
113
- *
114
- * @typeParam T - The type of the array elements.
115
- * @param initial - An optional array of initial values.
116
- * @returns A new instance of {@link FlowArray}.
117
- *
118
- * @remarks
119
- * A reactive array provides array-like mutation methods (push, pop, shift, unshift, splice)
120
- * and tracks the last operation performed via `$lastAction`. This enables both whole-array
121
- * reactivity and fine-grained tracking of specific mutations.
122
- *
123
- * The array automatically disposes disposable items when they are removed (if they implement
124
- * the FlowDisposable interface).
125
- *
126
- * @example
127
- * ```typescript
128
- * const $items = array([1, 2, 3]);
129
- *
130
- * // Track the whole array
131
- * effect((t) => {
132
- * console.log('Items:', $items.get(t));
133
- * });
134
- *
135
- * // Track the last action
136
- * effect((t) => {
137
- * const action = $items.$lastAction.get(t);
138
- * console.log('Action:', action.type);
139
- * });
140
- *
141
- * $items.push(4); // Logs action: "push"
142
- * $items.pop(); // Logs action: "pop"
143
- * ```
144
- *
145
- * @public
146
- */
147
- export declare function array<T>(initial?: T[]): FlowArray<T>;
148
- //# sourceMappingURL=flowArray.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"flowArray.d.ts","sourceRoot":"","sources":["../../../../src/flow/collections/flowArray.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,KAAK,SAAS,EAAS,MAAM,UAAU,CAAC;AAE3D;;;GAGG;AACH,MAAM,MAAM,eAAe,CAAC,CAAC,IAC1B;IACA,IAAI,EAAE,KAAK,CAAC;IACZ,KAAK,EAAE,CAAC,EAAE,CAAC;CACV,GACD;IACA,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,CAAC,CAAC;CACP,GACD;IACA,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,CAAC,CAAC;CACP,GACD;IACA,IAAI,EAAE,KAAK,CAAC;CACX,GACD;IACA,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,EAAE,CAAC,CAAC;CACP,GACD;IACA,IAAI,EAAE,OAAO,CAAC;CACb,GACD;IACA,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,CAAC,EAAE,CAAC;CACV,GACD;IACA,IAAI,EAAE,OAAO,CAAC;CACb,CAAC;AAEL;;;GAGG;AACH,qBAAa,SAAS,CAAC,CAAC,CAAE,SAAQ,QAAQ,CAAC,CAAC,EAAE,CAAC;IAC9C;;;OAGG;IACH,WAAW,EAAE,SAAS,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3C,UAAkB,MAAM,EAAE,CAAC,EAAE,CAAC;IAE9B;;;;OAIG;gBACS,KAAK,GAAE,CAAC,EAAO;IAQ3B;;;;OAIG;IACH,IAAI,MAAM,IAAI,MAAM,CAGnB;IAWD;;;;OAIG;IACY,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA+B7C;;;;;OAKG;IACG,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAmCnD;;;;OAIG;IACG,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBlC;;;OAGG;IACG,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IA8B1B;;;;OAIG;IACG,OAAO,CAAC,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBrC;;;OAGG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA6B5B;;;;;;OAMG;IACG,MAAM,CACX,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,GAAG,QAAQ,EAAE,CAAC,EAAE,GACd,OAAO,CAAC,IAAI,CAAC;IA+BhB;;;OAGG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA2B5B;;;;OAIG;IACM,OAAO,CAAC,OAAO,CAAC,EAAE;QAAE,IAAI,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI;CASnD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,CAEpD"}