@graphrefly/graphrefly 0.43.0 → 0.45.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 (422) hide show
  1. package/README.md +21 -17
  2. package/dist/compat/index.cjs +20 -10
  3. package/dist/compat/index.cjs.map +1 -0
  4. package/dist/compat/index.d.cts +1 -22
  5. package/dist/compat/index.d.ts +1 -22
  6. package/dist/compat/index.js +3 -1
  7. package/dist/compat/index.js.map +1 -0
  8. package/dist/compat/jotai/index.cjs +21 -1
  9. package/dist/compat/jotai/index.cjs.map +1 -0
  10. package/dist/compat/jotai/index.d.cts +1 -2
  11. package/dist/compat/jotai/index.d.ts +1 -2
  12. package/dist/compat/jotai/index.js +3 -1
  13. package/dist/compat/jotai/index.js.map +1 -0
  14. package/dist/compat/nanostores/index.cjs +21 -1
  15. package/dist/compat/nanostores/index.cjs.map +1 -0
  16. package/dist/compat/nanostores/index.d.cts +1 -2
  17. package/dist/compat/nanostores/index.d.ts +1 -2
  18. package/dist/compat/nanostores/index.js +3 -1
  19. package/dist/compat/nanostores/index.js.map +1 -0
  20. package/dist/compat/nestjs/index.cjs +20 -10
  21. package/dist/compat/nestjs/index.cjs.map +1 -0
  22. package/dist/compat/nestjs/index.d.cts +1 -13
  23. package/dist/compat/nestjs/index.d.ts +1 -13
  24. package/dist/compat/nestjs/index.js +3 -1
  25. package/dist/compat/nestjs/index.js.map +1 -0
  26. package/dist/compat/react/index.cjs +21 -1
  27. package/dist/compat/react/index.cjs.map +1 -0
  28. package/dist/compat/react/index.d.cts +1 -2
  29. package/dist/compat/react/index.d.ts +1 -2
  30. package/dist/compat/react/index.js +3 -1
  31. package/dist/compat/react/index.js.map +1 -0
  32. package/dist/compat/solid/index.cjs +21 -1
  33. package/dist/compat/solid/index.cjs.map +1 -0
  34. package/dist/compat/solid/index.d.cts +1 -2
  35. package/dist/compat/solid/index.d.ts +1 -2
  36. package/dist/compat/solid/index.js +3 -1
  37. package/dist/compat/solid/index.js.map +1 -0
  38. package/dist/compat/svelte/index.cjs +21 -1
  39. package/dist/compat/svelte/index.cjs.map +1 -0
  40. package/dist/compat/svelte/index.d.cts +1 -2
  41. package/dist/compat/svelte/index.d.ts +1 -2
  42. package/dist/compat/svelte/index.js +3 -1
  43. package/dist/compat/svelte/index.js.map +1 -0
  44. package/dist/compat/vue/index.cjs +21 -1
  45. package/dist/compat/vue/index.cjs.map +1 -0
  46. package/dist/compat/vue/index.d.cts +1 -3
  47. package/dist/compat/vue/index.d.ts +1 -3
  48. package/dist/compat/vue/index.js +3 -1
  49. package/dist/compat/vue/index.js.map +1 -0
  50. package/dist/compat/zustand/index.cjs +21 -3
  51. package/dist/compat/zustand/index.cjs.map +1 -0
  52. package/dist/compat/zustand/index.d.cts +1 -6
  53. package/dist/compat/zustand/index.d.ts +1 -6
  54. package/dist/compat/zustand/index.js +3 -1
  55. package/dist/compat/zustand/index.js.map +1 -0
  56. package/dist/core/index.cjs +21 -1
  57. package/dist/core/index.cjs.map +1 -0
  58. package/dist/core/index.d.cts +1 -4
  59. package/dist/core/index.d.ts +1 -4
  60. package/dist/core/index.js +3 -1
  61. package/dist/core/index.js.map +1 -0
  62. package/dist/extra/browser.cjs +21 -1
  63. package/dist/extra/browser.cjs.map +1 -0
  64. package/dist/extra/browser.d.cts +1 -4
  65. package/dist/extra/browser.d.ts +1 -4
  66. package/dist/extra/browser.js +3 -1
  67. package/dist/extra/browser.js.map +1 -0
  68. package/dist/extra/index.cjs +20 -19
  69. package/dist/extra/index.cjs.map +1 -0
  70. package/dist/extra/index.d.cts +1 -17
  71. package/dist/extra/index.d.ts +1 -17
  72. package/dist/extra/index.js +3 -1
  73. package/dist/extra/index.js.map +1 -0
  74. package/dist/extra/node.cjs +21 -2
  75. package/dist/extra/node.cjs.map +1 -0
  76. package/dist/extra/node.d.cts +1 -187
  77. package/dist/extra/node.d.ts +1 -187
  78. package/dist/extra/node.js +3 -2
  79. package/dist/extra/node.js.map +1 -0
  80. package/dist/extra/operators.cjs +21 -1
  81. package/dist/extra/operators.cjs.map +1 -0
  82. package/dist/extra/operators.d.cts +1 -950
  83. package/dist/extra/operators.d.ts +1 -950
  84. package/dist/extra/operators.js +3 -1
  85. package/dist/extra/operators.js.map +1 -0
  86. package/dist/extra/reactive.cjs +21 -1
  87. package/dist/extra/reactive.cjs.map +1 -0
  88. package/dist/extra/reactive.d.cts +1 -353
  89. package/dist/extra/reactive.d.ts +1 -353
  90. package/dist/extra/reactive.js +3 -1
  91. package/dist/extra/reactive.js.map +1 -0
  92. package/dist/extra/render/index.cjs +21 -5
  93. package/dist/extra/render/index.cjs.map +1 -0
  94. package/dist/extra/render/index.d.cts +1 -183
  95. package/dist/extra/render/index.d.ts +1 -183
  96. package/dist/extra/render/index.js +3 -1
  97. package/dist/extra/render/index.js.map +1 -0
  98. package/dist/extra/sources.cjs +21 -3
  99. package/dist/extra/sources.cjs.map +1 -0
  100. package/dist/extra/sources.d.cts +1 -584
  101. package/dist/extra/sources.d.ts +1 -584
  102. package/dist/extra/sources.js +3 -1
  103. package/dist/extra/sources.js.map +1 -0
  104. package/dist/extra/storage-browser.cjs +21 -1
  105. package/dist/extra/storage-browser.cjs.map +1 -0
  106. package/dist/extra/storage-browser.d.cts +1 -37
  107. package/dist/extra/storage-browser.d.ts +1 -37
  108. package/dist/extra/storage-browser.js +3 -1
  109. package/dist/extra/storage-browser.js.map +1 -0
  110. package/dist/extra/storage-core.cjs +21 -1
  111. package/dist/extra/storage-core.cjs.map +1 -0
  112. package/dist/extra/storage-core.d.cts +1 -28
  113. package/dist/extra/storage-core.d.ts +1 -28
  114. package/dist/extra/storage-core.js +3 -1
  115. package/dist/extra/storage-core.js.map +1 -0
  116. package/dist/extra/storage-node.cjs +20 -0
  117. package/dist/extra/storage-node.cjs.map +1 -0
  118. package/dist/extra/storage-node.d.cts +1 -2
  119. package/dist/extra/storage-node.d.ts +1 -2
  120. package/dist/extra/storage-node.js +3 -0
  121. package/dist/extra/storage-node.js.map +1 -0
  122. package/dist/extra/storage-tiers-browser.cjs +21 -1
  123. package/dist/extra/storage-tiers-browser.cjs.map +1 -0
  124. package/dist/extra/storage-tiers-browser.d.cts +1 -120
  125. package/dist/extra/storage-tiers-browser.d.ts +1 -120
  126. package/dist/extra/storage-tiers-browser.js +3 -1
  127. package/dist/extra/storage-tiers-browser.js.map +1 -0
  128. package/dist/extra/storage-tiers-node.cjs +21 -1
  129. package/dist/extra/storage-tiers-node.cjs.map +1 -0
  130. package/dist/extra/storage-tiers-node.d.cts +1 -210
  131. package/dist/extra/storage-tiers-node.d.ts +1 -210
  132. package/dist/extra/storage-tiers-node.js +3 -1
  133. package/dist/extra/storage-tiers-node.js.map +1 -0
  134. package/dist/extra/storage-tiers.cjs +21 -1
  135. package/dist/extra/storage-tiers.cjs.map +1 -0
  136. package/dist/extra/storage-tiers.d.cts +1 -412
  137. package/dist/extra/storage-tiers.d.ts +1 -412
  138. package/dist/extra/storage-tiers.js +3 -1
  139. package/dist/extra/storage-tiers.js.map +1 -0
  140. package/dist/extra/storage-wal.cjs +21 -0
  141. package/dist/extra/storage-wal.cjs.map +1 -0
  142. package/dist/extra/storage-wal.d.cts +1 -0
  143. package/dist/extra/storage-wal.d.ts +1 -0
  144. package/dist/extra/storage-wal.js +3 -0
  145. package/dist/extra/storage-wal.js.map +1 -0
  146. package/dist/graph/index.cjs +21 -7
  147. package/dist/graph/index.cjs.map +1 -0
  148. package/dist/graph/index.d.cts +1 -7
  149. package/dist/graph/index.d.ts +1 -7
  150. package/dist/graph/index.js +3 -1
  151. package/dist/graph/index.js.map +1 -0
  152. package/dist/index.cjs +20 -227
  153. package/dist/index.cjs.map +1 -0
  154. package/dist/index.d.cts +45 -96
  155. package/dist/index.d.ts +45 -96
  156. package/dist/index.js +3 -1
  157. package/dist/index.js.map +1 -0
  158. package/dist/patterns/ai/browser.cjs +20 -7
  159. package/dist/patterns/ai/browser.cjs.map +1 -0
  160. package/dist/patterns/ai/browser.d.cts +1 -127
  161. package/dist/patterns/ai/browser.d.ts +1 -127
  162. package/dist/patterns/ai/browser.js +3 -3
  163. package/dist/patterns/ai/browser.js.map +1 -0
  164. package/dist/patterns/ai/index.cjs +20 -73
  165. package/dist/patterns/ai/index.cjs.map +1 -0
  166. package/dist/patterns/ai/index.d.cts +1 -21
  167. package/dist/patterns/ai/index.d.ts +1 -21
  168. package/dist/patterns/ai/index.js +3 -1
  169. package/dist/patterns/ai/index.js.map +1 -0
  170. package/dist/patterns/ai/node.cjs +21 -1
  171. package/dist/patterns/ai/node.cjs.map +1 -0
  172. package/dist/patterns/ai/node.d.cts +1 -59
  173. package/dist/patterns/ai/node.d.ts +1 -59
  174. package/dist/patterns/ai/node.js +3 -1
  175. package/dist/patterns/ai/node.js.map +1 -0
  176. package/dist/patterns/cqrs/index.cjs +21 -3
  177. package/dist/patterns/cqrs/index.cjs.map +1 -0
  178. package/dist/patterns/cqrs/index.d.cts +1 -8
  179. package/dist/patterns/cqrs/index.d.ts +1 -8
  180. package/dist/patterns/cqrs/index.js +3 -1
  181. package/dist/patterns/cqrs/index.js.map +1 -0
  182. package/dist/patterns/demo-shell/index.cjs +21 -5
  183. package/dist/patterns/demo-shell/index.cjs.map +1 -0
  184. package/dist/patterns/demo-shell/index.d.cts +1 -7
  185. package/dist/patterns/demo-shell/index.d.ts +1 -7
  186. package/dist/patterns/demo-shell/index.js +3 -1
  187. package/dist/patterns/demo-shell/index.js.map +1 -0
  188. package/dist/patterns/domain-templates/index.cjs +21 -3
  189. package/dist/patterns/domain-templates/index.cjs.map +1 -0
  190. package/dist/patterns/domain-templates/index.d.cts +1 -6
  191. package/dist/patterns/domain-templates/index.d.ts +1 -6
  192. package/dist/patterns/domain-templates/index.js +3 -1
  193. package/dist/patterns/domain-templates/index.js.map +1 -0
  194. package/dist/patterns/graphspec/index.cjs +21 -86
  195. package/dist/patterns/graphspec/index.cjs.map +1 -0
  196. package/dist/patterns/graphspec/index.d.cts +1 -8
  197. package/dist/patterns/graphspec/index.d.ts +1 -8
  198. package/dist/patterns/graphspec/index.js +3 -1
  199. package/dist/patterns/graphspec/index.js.map +1 -0
  200. package/dist/patterns/harness/index.cjs +21 -48
  201. package/dist/patterns/harness/index.cjs.map +1 -0
  202. package/dist/patterns/harness/index.d.cts +1 -14
  203. package/dist/patterns/harness/index.d.ts +1 -14
  204. package/dist/patterns/harness/index.js +3 -1
  205. package/dist/patterns/harness/index.js.map +1 -0
  206. package/dist/patterns/inspect/index.cjs +21 -3
  207. package/dist/patterns/inspect/index.cjs.map +1 -0
  208. package/dist/patterns/inspect/index.d.cts +1 -9
  209. package/dist/patterns/inspect/index.d.ts +1 -9
  210. package/dist/patterns/inspect/index.js +3 -1
  211. package/dist/patterns/inspect/index.js.map +1 -0
  212. package/dist/patterns/job-queue/index.cjs +21 -3
  213. package/dist/patterns/job-queue/index.cjs.map +1 -0
  214. package/dist/patterns/job-queue/index.d.cts +1 -9
  215. package/dist/patterns/job-queue/index.d.ts +1 -9
  216. package/dist/patterns/job-queue/index.js +3 -1
  217. package/dist/patterns/job-queue/index.js.map +1 -0
  218. package/dist/patterns/memory/index.cjs +21 -3
  219. package/dist/patterns/memory/index.cjs.map +1 -0
  220. package/dist/patterns/memory/index.d.cts +1 -8
  221. package/dist/patterns/memory/index.d.ts +1 -8
  222. package/dist/patterns/memory/index.js +3 -1
  223. package/dist/patterns/memory/index.js.map +1 -0
  224. package/dist/patterns/messaging/index.cjs +21 -3
  225. package/dist/patterns/messaging/index.cjs.map +1 -0
  226. package/dist/patterns/messaging/index.d.cts +1 -7
  227. package/dist/patterns/messaging/index.d.ts +1 -7
  228. package/dist/patterns/messaging/index.js +3 -1
  229. package/dist/patterns/messaging/index.js.map +1 -0
  230. package/dist/patterns/orchestration/index.cjs +21 -3
  231. package/dist/patterns/orchestration/index.cjs.map +1 -0
  232. package/dist/patterns/orchestration/index.d.cts +1 -9
  233. package/dist/patterns/orchestration/index.d.ts +1 -9
  234. package/dist/patterns/orchestration/index.js +3 -1
  235. package/dist/patterns/orchestration/index.js.map +1 -0
  236. package/dist/patterns/process/index.cjs +21 -1
  237. package/dist/patterns/process/index.cjs.map +1 -0
  238. package/dist/patterns/process/index.d.cts +1 -10
  239. package/dist/patterns/process/index.d.ts +1 -10
  240. package/dist/patterns/process/index.js +3 -1
  241. package/dist/patterns/process/index.js.map +1 -0
  242. package/dist/patterns/reactive-layout/index.cjs +21 -4
  243. package/dist/patterns/reactive-layout/index.cjs.map +1 -0
  244. package/dist/patterns/reactive-layout/index.d.cts +1 -7
  245. package/dist/patterns/reactive-layout/index.d.ts +1 -7
  246. package/dist/patterns/reactive-layout/index.js +3 -1
  247. package/dist/patterns/reactive-layout/index.js.map +1 -0
  248. package/dist/patterns/reduction/index.cjs +21 -3
  249. package/dist/patterns/reduction/index.cjs.map +1 -0
  250. package/dist/patterns/reduction/index.d.cts +1 -6
  251. package/dist/patterns/reduction/index.d.ts +1 -6
  252. package/dist/patterns/reduction/index.js +3 -1
  253. package/dist/patterns/reduction/index.js.map +1 -0
  254. package/dist/patterns/surface/index.cjs +21 -13
  255. package/dist/patterns/surface/index.cjs.map +1 -0
  256. package/dist/patterns/surface/index.d.cts +1 -9
  257. package/dist/patterns/surface/index.d.ts +1 -9
  258. package/dist/patterns/surface/index.js +3 -1
  259. package/dist/patterns/surface/index.js.map +1 -0
  260. package/dist/patterns/topology-view/index.cjs +21 -0
  261. package/dist/patterns/topology-view/index.cjs.map +1 -0
  262. package/dist/patterns/topology-view/index.d.cts +1 -0
  263. package/dist/patterns/topology-view/index.d.ts +1 -0
  264. package/dist/patterns/topology-view/index.js +3 -0
  265. package/dist/patterns/topology-view/index.js.map +1 -0
  266. package/dist/testing/index.cjs +21 -0
  267. package/dist/testing/index.cjs.map +1 -0
  268. package/dist/testing/index.d.cts +1 -0
  269. package/dist/testing/index.d.ts +1 -0
  270. package/dist/testing/index.js +3 -0
  271. package/dist/testing/index.js.map +1 -0
  272. package/package.json +608 -584
  273. package/dist/backoff-HPZMEZNF.js +0 -1
  274. package/dist/cascading-CH-_VwG9.d.cts +0 -199
  275. package/dist/cascading-OgKQZjsa.d.ts +0 -199
  276. package/dist/chunk-35JTVPOX.js +0 -1
  277. package/dist/chunk-3G5U5QNE.js +0 -5
  278. package/dist/chunk-3XDYJRYU.js +0 -1
  279. package/dist/chunk-4I45FVQS.js +0 -1
  280. package/dist/chunk-4VVTGLXJ.js +0 -1
  281. package/dist/chunk-4YAN45KM.js +0 -1
  282. package/dist/chunk-5QDBSZBV.js +0 -1
  283. package/dist/chunk-626TESAC.js +0 -3
  284. package/dist/chunk-6HOSXQKF.js +0 -1
  285. package/dist/chunk-6QZNQS5B.js +0 -1
  286. package/dist/chunk-C72GO4IZ.js +0 -1
  287. package/dist/chunk-CE72X3WO.js +0 -1
  288. package/dist/chunk-CK2E7BTU.js +0 -1
  289. package/dist/chunk-CLD3F4R5.js +0 -1
  290. package/dist/chunk-CUNIRONA.js +0 -1
  291. package/dist/chunk-D27JNOLZ.js +0 -1
  292. package/dist/chunk-D5RFJOZ2.js +0 -1
  293. package/dist/chunk-EBW4V6JN.js +0 -1
  294. package/dist/chunk-ESMPEKEV.js +0 -1
  295. package/dist/chunk-F3IGTWCQ.js +0 -1
  296. package/dist/chunk-F672GV32.js +0 -1
  297. package/dist/chunk-FDQGFWLF.js +0 -1
  298. package/dist/chunk-FG4TKHMC.js +0 -1
  299. package/dist/chunk-GPW2V3RE.js +0 -1
  300. package/dist/chunk-I7IGYPSL.js +0 -1
  301. package/dist/chunk-INQD2KRQ.js +0 -1
  302. package/dist/chunk-JNWRYDJN.js +0 -1
  303. package/dist/chunk-JQFH2DV6.js +0 -1
  304. package/dist/chunk-K2Q24F5T.js +0 -1
  305. package/dist/chunk-KGKJCHEK.js +0 -1
  306. package/dist/chunk-KRH66M4O.js +0 -1
  307. package/dist/chunk-KVV66NN2.js +0 -1
  308. package/dist/chunk-L6NSJVJZ.js +0 -1
  309. package/dist/chunk-LYCLF26R.js +0 -1
  310. package/dist/chunk-NNKJUORL.js +0 -1
  311. package/dist/chunk-NON4NLIC.js +0 -45
  312. package/dist/chunk-O2BLLH7M.js +0 -18
  313. package/dist/chunk-OCKEEPRJ.js +0 -2
  314. package/dist/chunk-OFZG3TB3.js +0 -9
  315. package/dist/chunk-OYJKFY7V.js +0 -1
  316. package/dist/chunk-P6C4WHZO.js +0 -5
  317. package/dist/chunk-PT7W5FCD.js +0 -5
  318. package/dist/chunk-Q4U3A3L5.js +0 -1
  319. package/dist/chunk-QE4IGY7I.js +0 -61
  320. package/dist/chunk-QYADASLV.js +0 -1
  321. package/dist/chunk-QYVXF7GW.js +0 -1
  322. package/dist/chunk-S3EEIPO7.js +0 -1
  323. package/dist/chunk-SUWT3ZON.js +0 -1
  324. package/dist/chunk-TPKQW72B.js +0 -1
  325. package/dist/chunk-TSOYJ743.js +0 -1
  326. package/dist/chunk-TZQPPQEQ.js +0 -1
  327. package/dist/chunk-V5A7M7RJ.js +0 -1
  328. package/dist/chunk-VIMF6LGM.js +0 -1
  329. package/dist/chunk-VJLMUKOI.js +0 -1
  330. package/dist/chunk-VN6RDSK2.js +0 -1
  331. package/dist/chunk-VNC3TMVY.js +0 -1
  332. package/dist/chunk-VOPGGIL7.js +0 -1
  333. package/dist/chunk-VQ4A6T2A.js +0 -1
  334. package/dist/chunk-XG62INFA.js +0 -1
  335. package/dist/chunk-Y4NI3X7O.js +0 -84
  336. package/dist/content-addressed-storage-4-ST1tYk.d.cts +0 -124
  337. package/dist/content-addressed-storage-DuYMjV7o.d.ts +0 -124
  338. package/dist/decay-2ZukgQ4o.d.cts +0 -112
  339. package/dist/decay-CdEBmDIs.d.ts +0 -112
  340. package/dist/fallback-CqYVLL6X.d.ts +0 -250
  341. package/dist/fallback-Ctlj2tMY.d.cts +0 -250
  342. package/dist/graph-7VguS7a4.d.ts +0 -1668
  343. package/dist/graph-C4SHb3Ly.d.cts +0 -1668
  344. package/dist/index-0rKFCVFp.d.cts +0 -557
  345. package/dist/index-B-i4_g3k.d.ts +0 -651
  346. package/dist/index-B5iz82A3.d.cts +0 -2655
  347. package/dist/index-BAOD98JD.d.cts +0 -754
  348. package/dist/index-BG0BN3PB.d.ts +0 -44
  349. package/dist/index-BJX94aud.d.cts +0 -34
  350. package/dist/index-BP8a88zx.d.ts +0 -385
  351. package/dist/index-BTQtTb_H.d.cts +0 -301
  352. package/dist/index-BVpm6noz.d.cts +0 -36
  353. package/dist/index-Bc41FuHp.d.cts +0 -291
  354. package/dist/index-BdGtBX-X.d.cts +0 -515
  355. package/dist/index-Bf7eqeSF.d.ts +0 -113
  356. package/dist/index-BiX1Nkgx.d.cts +0 -1844
  357. package/dist/index-BoLv_OfD.d.cts +0 -651
  358. package/dist/index-BojK2fwH.d.cts +0 -299
  359. package/dist/index-BsT7F2et.d.ts +0 -291
  360. package/dist/index-BwLvVVsy.d.cts +0 -189
  361. package/dist/index-C59mYFKp.d.ts +0 -121
  362. package/dist/index-C7O6r5fV.d.ts +0 -37
  363. package/dist/index-C9kSENB4.d.cts +0 -127
  364. package/dist/index-C9pjcz3l.d.cts +0 -209
  365. package/dist/index-CAC_rNzm.d.ts +0 -189
  366. package/dist/index-CCq87F7t.d.ts +0 -127
  367. package/dist/index-CDXc9zKM.d.cts +0 -26
  368. package/dist/index-CJK1JkYy.d.ts +0 -36
  369. package/dist/index-CLon-IWF.d.cts +0 -374
  370. package/dist/index-COD1kVoS.d.cts +0 -468
  371. package/dist/index-CPT7C_f1.d.ts +0 -374
  372. package/dist/index-CQG3D1cp.d.ts +0 -468
  373. package/dist/index-CZQXo5tH.d.ts +0 -209
  374. package/dist/index-CZjOhcBy.d.cts +0 -113
  375. package/dist/index-ChOyVLKm.d.cts +0 -86
  376. package/dist/index-CvrqGfNS.d.ts +0 -34
  377. package/dist/index-D-AEQVLo.d.ts +0 -2655
  378. package/dist/index-D4Y1cMG0.d.ts +0 -26
  379. package/dist/index-DBHK8O6H.d.ts +0 -301
  380. package/dist/index-DBevwHj_.d.ts +0 -515
  381. package/dist/index-DIOoAZUX.d.ts +0 -45
  382. package/dist/index-DSZ3ZCHF.d.ts +0 -3402
  383. package/dist/index-Dgs8zcj7.d.ts +0 -102
  384. package/dist/index-Dh_HJ82K.d.ts +0 -299
  385. package/dist/index-Dhc7a7Xo.d.cts +0 -102
  386. package/dist/index-Dmqp7KjD.d.ts +0 -86
  387. package/dist/index-Dn-wI9g4.d.ts +0 -231
  388. package/dist/index-Du7u1lSf.d.cts +0 -385
  389. package/dist/index-DwigL4lY.d.ts +0 -1844
  390. package/dist/index-DyR7eU5S.d.cts +0 -779
  391. package/dist/index-JZUPJIJy.d.ts +0 -779
  392. package/dist/index-K0_0eR8g.d.ts +0 -557
  393. package/dist/index-O16yXPK4.d.cts +0 -3402
  394. package/dist/index-O7fucFrU.d.cts +0 -121
  395. package/dist/index-RV_yDjOX.d.cts +0 -198
  396. package/dist/index-cm1GNcWE.d.ts +0 -754
  397. package/dist/index-f5IivDUX.d.cts +0 -37
  398. package/dist/index-hHcaFlJX.d.cts +0 -45
  399. package/dist/index-tJoTcnHh.d.cts +0 -231
  400. package/dist/index-wAzD9yVj.d.ts +0 -198
  401. package/dist/index-z96luz5O.d.cts +0 -44
  402. package/dist/meta-BgVAsg9j.d.ts +0 -102
  403. package/dist/meta-vE8bxW1E.d.cts +0 -102
  404. package/dist/node-ClS5yC-B.d.cts +0 -1347
  405. package/dist/node-ClS5yC-B.d.ts +0 -1347
  406. package/dist/observable-BsBzUrcI.d.ts +0 -36
  407. package/dist/observable-DLGPPtb8.d.cts +0 -36
  408. package/dist/pipeline-graph-DPqKDk59.d.cts +0 -137
  409. package/dist/pipeline-graph-loP57TBA.d.ts +0 -137
  410. package/dist/reactive-layout-Dsvob4zD.d.cts +0 -183
  411. package/dist/reactive-layout-v7KPvxoc.d.ts +0 -183
  412. package/dist/reactive-log-B00laMSQ.d.cts +0 -223
  413. package/dist/reactive-log-BezYsbA_.d.ts +0 -223
  414. package/dist/reactive-map-48mnZ-nu.d.cts +0 -296
  415. package/dist/reactive-map-BVVPdvmi.d.ts +0 -296
  416. package/dist/resilience-YIWPK4YC.js +0 -1
  417. package/dist/sugar-DLwvMr3F.d.ts +0 -223
  418. package/dist/sugar-DyVGtczU.d.cts +0 -223
  419. package/dist/topology-tree-BNGvuG82.d.ts +0 -25
  420. package/dist/topology-tree-BSdfSwMi.d.cts +0 -25
  421. package/dist/types-B1jDWVsM.d.cts +0 -442
  422. package/dist/types-DkzUUs0H.d.ts +0 -442
@@ -1,189 +0,0 @@
1
- import { N as Node } from './node-ClS5yC-B.cjs';
2
- import { B as BaseAuditRecord } from './index-C9pjcz3l.cjs';
3
- import { a as ReactiveLogBundle } from './reactive-log-B00laMSQ.cjs';
4
- import { NodeInput } from './extra/sources.cjs';
5
- import { AppendLogStorageTier } from './extra/storage-tiers.cjs';
6
- import { G as Graph, a as GraphOptions } from './graph-C4SHb3Ly.cjs';
7
-
8
- /**
9
- * Job queue patterns (roadmap §4.2).
10
- *
11
- * Queue / flow primitives modeled as graph factories:
12
- * - `jobQueue()` — claim/ack/nack workflow with reactive depth.
13
- * - `jobFlow()` — multi-stage queue chain.
14
- *
15
- * Topic / subscription / hub primitives live in `patterns/messaging`.
16
- */
17
-
18
- type JobState = "queued" | "inflight";
19
- type JobEnvelope<T> = {
20
- id: string;
21
- payload: T;
22
- attempts: number;
23
- metadata: Readonly<Record<string, unknown>>;
24
- state: JobState;
25
- };
26
- /** Audit record for a job-queue mutation (Audit 2 cross-cutting). */
27
- type JobEventAction = "enqueue" | "claim" | "ack" | "nack" | "remove";
28
- interface JobEvent<T = unknown> extends BaseAuditRecord {
29
- readonly action: JobEventAction;
30
- readonly id: string;
31
- readonly attempts?: number;
32
- readonly payload?: T;
33
- }
34
- /** Recommended `keyOf` for keyed-storage adapters (Audit 2 #7). */
35
- declare const jobEventKeyOf: <T>(e: JobEvent<T>) => string;
36
- type JobQueueOptions = {
37
- graph?: GraphOptions;
38
- };
39
- declare class JobQueueGraph<T> extends Graph {
40
- private readonly _pending;
41
- private readonly _jobs;
42
- private readonly _seqCursor;
43
- readonly pending: Node<readonly string[]>;
44
- readonly jobs: Node<ReadonlyMap<string, JobEnvelope<T>>>;
45
- readonly depth: Node<number>;
46
- /** Audit log of every queue mutation (Audit 2). */
47
- readonly events: ReactiveLogBundle<JobEvent<T>>;
48
- /** Alias for {@link JobQueueGraph.events} — Audit 2 `.audit` duplication. */
49
- readonly audit: ReactiveLogBundle<JobEvent<T>>;
50
- private readonly _enqueueImpl;
51
- private readonly _ackImpl;
52
- private readonly _nackImpl;
53
- private readonly _removeByIdImpl;
54
- constructor(name: string, opts?: JobQueueOptions);
55
- /**
56
- * Wire append-log storage tiers (Audit 4). Returns a disposer.
57
- *
58
- * Named `attachEventStorage` to avoid colliding with {@link Graph.attachSnapshotStorage}.
59
- */
60
- attachEventStorage(tiers: readonly AppendLogStorageTier<JobEvent<T>>[]): () => void;
61
- enqueue(payload: T, opts?: {
62
- id?: string;
63
- metadata?: Record<string, unknown>;
64
- }): string;
65
- claim(limit?: number): readonly JobEnvelope<T>[];
66
- ack(id: string): boolean;
67
- nack(id: string, opts?: {
68
- requeue?: boolean;
69
- }): boolean;
70
- /**
71
- * Remove a job by id regardless of its current state. Returns `true` if
72
- * the job existed and was removed, `false` if no job has this id.
73
- *
74
- * `ack` only works on inflight; `nack` only works on inflight.
75
- * `removeById` is the state-agnostic escape hatch — useful for
76
- * audit/observability layers that enqueue but never claim, and need to
77
- * finalize a job when an external decision (e.g. harness verify
78
- * outcome) resolves it. Distinct name from the inherited
79
- * {@link Graph.remove}, which removes a mounted child subgraph by path.
80
- *
81
- * When the job is in `queued` state, its id is also pulled from the
82
- * `pending` list — depth + pending snapshot stay consistent.
83
- */
84
- removeById(id: string): boolean;
85
- /**
86
- * Subscribe to a Node and enqueue each DATA payload into this queue.
87
- * Returns a disposer that stops consuming when called.
88
- *
89
- * Used internally by {@link JobFlowGraph} for stage-to-stage wiring but
90
- * also useful for users wiring an external source into a job queue.
91
- *
92
- * @param source - Node whose DATA values are enqueued.
93
- * @param opts - Optional enqueue options (id generator, metadata prefix).
94
- */
95
- consumeFrom(source: Node<T>, opts?: {
96
- metadata?: Record<string, unknown>;
97
- }): () => void;
98
- }
99
- /**
100
- * Work function for a job flow stage. Receives the full job envelope,
101
- * returns a `NodeInput<T>` — raw value (sync), Promise (async), or Node
102
- * (composed pipeline). `fromAny` coerces any of these shapes.
103
- *
104
- * On error / rejection: the stage nacks the job (no requeue by default).
105
- */
106
- type WorkFn<T> = (job: JobEnvelope<T>) => NodeInput<T>;
107
- /**
108
- * Stage definition for {@link JobFlowGraph}. Either a bare name string
109
- * (no work hook, pure pass-through) or a full definition object.
110
- */
111
- type StageDef<T> = string | {
112
- name: string;
113
- work?: WorkFn<T>;
114
- handlerVersion?: {
115
- id: string;
116
- version: string | number;
117
- };
118
- /**
119
- * Per-stage cap on `claim → work → ack` cycles per pump tick.
120
- * Overrides {@link JobFlowOptions.maxPerPump} for this stage. Useful
121
- * when stages have asymmetric cost (e.g. an LLM-execute stage capped
122
- * at 4 concurrent calls while a cheap verify stage runs unbounded).
123
- *
124
- * Falls back to the top-level `JobFlowOptions.maxPerPump`, which in
125
- * turn falls back to `DEFAULT_MAX_PER_PUMP` (256).
126
- */
127
- maxPerPump?: number;
128
- };
129
- type JobFlowOptions<T = unknown> = {
130
- graph?: GraphOptions;
131
- /**
132
- * Stage definitions. Each stage is either a bare name string (pure
133
- * pass-through) or a `{ name, work?, handlerVersion?, maxPerPump? }` object.
134
- *
135
- * For back-compat, `string[]` values behave as stages with no work hook.
136
- */
137
- stages?: readonly StageDef<T>[];
138
- /**
139
- * Default cap on claims per pump tick across all stages. Per-stage
140
- * overrides can be set on each {@link StageDef.maxPerPump}; if neither is
141
- * set, falls back to `DEFAULT_MAX_PER_PUMP` (256).
142
- */
143
- maxPerPump?: number;
144
- };
145
- declare class JobFlowGraph<T> extends Graph {
146
- private readonly _stageNames;
147
- private readonly _stageWorkFns;
148
- private readonly _queues;
149
- private readonly _completed;
150
- readonly completed: Node<readonly JobEnvelope<T>[]>;
151
- readonly completedCount: Node<number>;
152
- constructor(name: string, opts?: JobFlowOptions<T>);
153
- stages(): readonly string[];
154
- queue(stage: string): JobQueueGraph<T>;
155
- enqueue(payload: T, opts?: {
156
- id?: string;
157
- metadata?: Record<string, unknown>;
158
- }): string;
159
- retainedCompleted(): readonly JobEnvelope<T>[];
160
- }
161
- /**
162
- * Creates a Pulsar-inspired job queue graph with claim/ack/nack workflow.
163
- */
164
- declare function jobQueue<T>(name: string, opts?: JobQueueOptions): JobQueueGraph<T>;
165
- /**
166
- * Creates an autonomous multi-stage queue chain graph.
167
- */
168
- declare function jobFlow<T>(name: string, opts?: JobFlowOptions<T>): JobFlowGraph<T>;
169
-
170
- type index_JobEnvelope<T> = JobEnvelope<T>;
171
- type index_JobEvent<T = unknown> = JobEvent<T>;
172
- type index_JobEventAction = JobEventAction;
173
- type index_JobFlowGraph<T> = JobFlowGraph<T>;
174
- declare const index_JobFlowGraph: typeof JobFlowGraph;
175
- type index_JobFlowOptions<T = unknown> = JobFlowOptions<T>;
176
- type index_JobQueueGraph<T> = JobQueueGraph<T>;
177
- declare const index_JobQueueGraph: typeof JobQueueGraph;
178
- type index_JobQueueOptions = JobQueueOptions;
179
- type index_JobState = JobState;
180
- type index_StageDef<T> = StageDef<T>;
181
- type index_WorkFn<T> = WorkFn<T>;
182
- declare const index_jobEventKeyOf: typeof jobEventKeyOf;
183
- declare const index_jobFlow: typeof jobFlow;
184
- declare const index_jobQueue: typeof jobQueue;
185
- declare namespace index {
186
- export { type index_JobEnvelope as JobEnvelope, type index_JobEvent as JobEvent, type index_JobEventAction as JobEventAction, index_JobFlowGraph as JobFlowGraph, type index_JobFlowOptions as JobFlowOptions, index_JobQueueGraph as JobQueueGraph, type index_JobQueueOptions as JobQueueOptions, type index_JobState as JobState, type index_StageDef as StageDef, type index_WorkFn as WorkFn, index_jobEventKeyOf as jobEventKeyOf, index_jobFlow as jobFlow, index_jobQueue as jobQueue };
187
- }
188
-
189
- export { type JobEnvelope as J, type StageDef as S, type WorkFn as W, JobFlowGraph as a, JobQueueGraph as b, type JobEvent as c, type JobEventAction as d, type JobFlowOptions as e, type JobQueueOptions as f, type JobState as g, jobFlow as h, index as i, jobEventKeyOf as j, jobQueue as k };
@@ -1,121 +0,0 @@
1
- import { i as index$2 } from './index-Dmqp7KjD.js';
2
- import { i as index$3 } from './index-CCq87F7t.js';
3
- import { i as index$4 } from './index-cm1GNcWE.js';
4
- import { i as index$5 } from './index-BG0BN3PB.js';
5
- import { N as Node } from './node-ClS5yC-B.js';
6
- import { i as index$6 } from './index-CJK1JkYy.js';
7
- import { i as index$7 } from './index-DIOoAZUX.js';
8
- import { i as index$8 } from './index-CvrqGfNS.js';
9
- import { i as index$9 } from './index-C7O6r5fV.js';
10
-
11
- /**
12
- * Options for creating signals.
13
- *
14
- * @category compat
15
- */
16
- interface SignalOptions {
17
- /** Optional identifier for the underlying node. */
18
- name?: string;
19
- /** Custom equality function for change detection. */
20
- equals?: (a: any, b: any) => boolean;
21
- }
22
- /**
23
- * Common interface for all reactive signals.
24
- *
25
- * @category compat
26
- */
27
- interface AnySignal<T> {
28
- /** Returns the current value of the signal. */
29
- get(): T;
30
- /** @internal The underlying GraphReFly node. */
31
- _node: Node<T>;
32
- }
33
- /**
34
- * TC39 `Signal.State` — a writable signal backed by a GraphReFly `state` node.
35
- * Automatically registers itself as a dependency if read inside a `Computed`.
36
- *
37
- * @example
38
- * ```ts
39
- * const count = new Signal.State(0);
40
- * count.get(); // 0
41
- * count.set(1);
42
- * count.get(); // 1
43
- * ```
44
- */
45
- declare class SignalState<T> implements AnySignal<T> {
46
- /** @internal */
47
- _node: Node<T>;
48
- private readonly _equals;
49
- constructor(initial: T, opts?: SignalOptions);
50
- get(): T;
51
- set(value: T): void;
52
- }
53
- /**
54
- * TC39 `Signal.Computed` — a read-only signal backed by `dynamicNode`.
55
- * Automatically tracks dependencies when `get()` is called on other signals
56
- * during its computation.
57
- *
58
- * @example
59
- * ```ts
60
- * const count = new Signal.State(0);
61
- * const doubled = new Signal.Computed(() => count.get() * 2);
62
- * ```
63
- */
64
- declare class SignalComputed<T> implements AnySignal<T> {
65
- /** @internal */
66
- _node: Node<T>;
67
- constructor(computation: () => T, opts?: SignalOptions);
68
- get(): T;
69
- }
70
- /**
71
- * TC39 Signals-compatible namespace. Wraps GraphReFly primitives.
72
- * Provides auto-tracking conforming to the TS39 signals proposal.
73
- *
74
- * @category compat
75
- */
76
- declare const Signal: {
77
- readonly State: typeof SignalState;
78
- readonly Computed: typeof SignalComputed;
79
- /**
80
- * Subscribes to changes on a signal.
81
- * Returns an unsubscribe callback.
82
- *
83
- * @example
84
- * ```ts
85
- * const count = new Signal.State(0);
86
- * const unsub = Signal.sub(count, v => console.log(v));
87
- * ```
88
- */
89
- readonly sub: <T>(signal: AnySignal<T>, callback: ((value: T) => void) | {
90
- data?: (value: T) => void;
91
- error?: (err: unknown) => void;
92
- complete?: () => void;
93
- }) => (() => void);
94
- };
95
-
96
- type index$1_AnySignal<T> = AnySignal<T>;
97
- declare const index$1_Signal: typeof Signal;
98
- type index$1_SignalComputed<T> = SignalComputed<T>;
99
- declare const index$1_SignalComputed: typeof SignalComputed;
100
- type index$1_SignalOptions = SignalOptions;
101
- type index$1_SignalState<T> = SignalState<T>;
102
- declare const index$1_SignalState: typeof SignalState;
103
- declare namespace index$1 {
104
- export { type index$1_AnySignal as AnySignal, index$1_Signal as Signal, index$1_SignalComputed as SignalComputed, type index$1_SignalOptions as SignalOptions, index$1_SignalState as SignalState };
105
- }
106
-
107
- /**
108
- * Compat layer: compatibility wrappers for other state management libraries (Phase 5.1b).
109
- *
110
- * Framework adapters are optional peers. Install only what you use:
111
- * - `@graphrefly/graphrefly-ts/compat/react` -> `react`, `react-dom`
112
- * - `@graphrefly/graphrefly-ts/compat/vue` -> `vue`
113
- * - `@graphrefly/graphrefly-ts/compat/svelte` -> `svelte`
114
- * - `@graphrefly/graphrefly-ts/compat/solid` -> `solid-js`
115
- */
116
-
117
- declare namespace index {
118
- export { index$2 as jotai, index$3 as nanostores, index$4 as nestjs, index$5 as react, index$1 as signals, index$6 as solid, index$7 as svelte, index$8 as vue, index$9 as zustand };
119
- }
120
-
121
- export { index$1 as a, index as i };
@@ -1,37 +0,0 @@
1
- import { G as Graph } from './graph-7VguS7a4.js';
2
-
3
- /** Zustand-compatible Store API. */
4
- interface StoreApi<T> {
5
- getState: () => T;
6
- setState: (partial: T | Partial<T> | ((state: T) => T | Partial<T>), replace?: boolean) => void;
7
- getInitialState: () => T;
8
- subscribe: (listener: (state: T, prevState: T) => void) => () => void;
9
- destroy: () => void;
10
- }
11
- /** Function type for initializing the store. */
12
- type StateCreator<T> = (set: StoreApi<T>["setState"], get: StoreApi<T>["getState"], api: StoreApi<T>) => T;
13
- /**
14
- * Creates a Zustand-compatible store backed by a GraphReFly state node.
15
- * returns an object that is both a Graph and a StoreApi.
16
- *
17
- * @example
18
- * ```ts
19
- * const store = create((set) => ({
20
- * count: 0,
21
- * inc: () => set((s) => ({ count: s.count + 1 }))
22
- * }));
23
- * store.getState().inc();
24
- * ```
25
- *
26
- * @category compat
27
- */
28
- declare function create<T extends object>(initializer: StateCreator<T>): Graph & StoreApi<T>;
29
-
30
- type index_StateCreator<T> = StateCreator<T>;
31
- type index_StoreApi<T> = StoreApi<T>;
32
- declare const index_create: typeof create;
33
- declare namespace index {
34
- export { type index_StateCreator as StateCreator, type index_StoreApi as StoreApi, index_create as create };
35
- }
36
-
37
- export { type StateCreator as S, type StoreApi as a, create as c, index as i };
@@ -1,127 +0,0 @@
1
- import { N as Node } from './node-ClS5yC-B.cjs';
2
-
3
- /**
4
- * A Nanostores-compatible atom.
5
- *
6
- * @category compat
7
- */
8
- interface NanoAtom<T> {
9
- /** Get current value. */
10
- get(): T;
11
- /** Set a new value (writable atoms only). */
12
- set(value: T): void;
13
- /** Subscribe to value changes. Callback receives the new value.
14
- * Returns unsubscribe function. Called immediately with current value. */
15
- subscribe(cb: (value: T) => void): () => void;
16
- /** Listen to value changes (no immediate call). Returns unsubscribe. */
17
- listen(cb: (value: T) => void): () => void;
18
- /** The underlying GraphReFly node. */
19
- readonly _node: Node<T>;
20
- }
21
- /**
22
- * A Nanostores-compatible computed store.
23
- *
24
- * @category compat
25
- */
26
- interface NanoComputed<T> {
27
- /** Get current value. */
28
- get(): T;
29
- /** Subscribe to value changes. Called immediately with current value.
30
- * Returns unsubscribe function. */
31
- subscribe(cb: (value: T) => void): () => void;
32
- /** Listen to value changes (no immediate call). Returns unsubscribe. */
33
- listen(cb: (value: T) => void): () => void;
34
- /** The underlying GraphReFly node. */
35
- readonly _node: Node<T>;
36
- }
37
- /**
38
- * A Nanostores-compatible map.
39
- *
40
- * @category compat
41
- */
42
- interface NanoMap<T extends Record<string, unknown>> extends NanoAtom<T> {
43
- /** Set a single key. */
44
- setKey<K extends keyof T>(key: K, value: T[K]): void;
45
- }
46
- /**
47
- * Creates a nanostores-compatible atom.
48
- *
49
- * @param initial - Initial value.
50
- * @returns `NanoAtom<T>`
51
- *
52
- * @category compat
53
- */
54
- declare function atom<T>(initial: T): NanoAtom<T>;
55
- /**
56
- * Creates a nanostores-compatible computed store.
57
- *
58
- * @param stores - One or more atoms/computed stores.
59
- * @param fn - Compute function.
60
- * @returns `NanoComputed<T>`
61
- *
62
- * @category compat
63
- */
64
- declare function computed<T, A>(storeA: NanoAtom<A> | NanoComputed<A>, fn: (a: A) => T): NanoComputed<T>;
65
- declare function computed<T, A, B>(stores: [NanoAtom<A> | NanoComputed<A>, NanoAtom<B> | NanoComputed<B>], fn: (a: A, b: B) => T): NanoComputed<T>;
66
- declare function computed<T, A, B, C>(stores: [
67
- NanoAtom<A> | NanoComputed<A>,
68
- NanoAtom<B> | NanoComputed<B>,
69
- NanoAtom<C> | NanoComputed<C>
70
- ], fn: (a: A, b: B, c: C) => T): NanoComputed<T>;
71
- /**
72
- * Creates a nanostores-compatible map.
73
- *
74
- * @param initial - Initial object value.
75
- * @returns `NanoMap<T>`
76
- *
77
- * @category compat
78
- */
79
- declare function map<T extends Record<string, unknown>>(initial: T): NanoMap<T>;
80
- /**
81
- * Returns the current value of the store.
82
- *
83
- * @category compat
84
- */
85
- declare function getValue<T>(store: NanoAtom<T> | NanoComputed<T>): T;
86
- /**
87
- * Adds a listener for the store start (first listener connected).
88
- *
89
- * @category compat
90
- */
91
- declare function onStart(store: NanoAtom<any> | NanoComputed<any>, cb: () => void): void;
92
- /**
93
- * Adds a listener for the store stop (last listener disconnected).
94
- *
95
- * @category compat
96
- */
97
- declare function onStop(store: NanoAtom<any> | NanoComputed<any>, cb: () => void): void;
98
- /**
99
- * Adds a listener for the store mount (first listener connected).
100
- *
101
- * @returns A cleanup function called when the last listener is removed.
102
- * @category compat
103
- */
104
- declare function onMount(store: NanoAtom<any> | NanoComputed<any>, cb: () => (() => void) | undefined): void;
105
- /**
106
- * Batches multiple store updates.
107
- *
108
- * @category compat
109
- */
110
- declare function action<Args extends any[], Return>(_store: NanoAtom<any> | NanoComputed<any>, _name: string, fn: (...args: Args) => Return): (...args: Args) => Return;
111
-
112
- type index_NanoAtom<T> = NanoAtom<T>;
113
- type index_NanoComputed<T> = NanoComputed<T>;
114
- type index_NanoMap<T extends Record<string, unknown>> = NanoMap<T>;
115
- declare const index_action: typeof action;
116
- declare const index_atom: typeof atom;
117
- declare const index_computed: typeof computed;
118
- declare const index_getValue: typeof getValue;
119
- declare const index_map: typeof map;
120
- declare const index_onMount: typeof onMount;
121
- declare const index_onStart: typeof onStart;
122
- declare const index_onStop: typeof onStop;
123
- declare namespace index {
124
- export { type index_NanoAtom as NanoAtom, type index_NanoComputed as NanoComputed, type index_NanoMap as NanoMap, index_action as action, index_atom as atom, index_computed as computed, index_getValue as getValue, index_map as map, index_onMount as onMount, index_onStart as onStart, index_onStop as onStop };
125
- }
126
-
127
- export { type NanoAtom as N, type NanoComputed as a, type NanoMap as b, action as c, atom as d, computed as e, onStart as f, getValue as g, onStop as h, index as i, map as m, onMount as o };
@@ -1,209 +0,0 @@
1
- import { b as NodeGuard, N as Node } from './node-ClS5yC-B.cjs';
2
- import { G as Graph } from './graph-C4SHb3Ly.cjs';
3
- import { R as ReactiveLogOptions, a as ReactiveLogBundle } from './reactive-log-B00laMSQ.cjs';
4
-
5
- /**
6
- * Audited-mutation framework (Audit 2 — locked 2026-04-24; promoted to
7
- * `extra/mutation/` per consolidation plan §1, Tier 2.2).
8
- *
9
- * Phase-4 primitives share the same shape: imperative mutation methods +
10
- * closure state + reactive audit log + freeze-at-entry + rollback-on-throw.
11
- * This module factors out the common machinery so each primitive becomes
12
- * declarative wiring over typed audit records:
13
- * - `approvalGate`, `pipeline.approvalGate` (Wave A.2 Unit 8)
14
- * - `JobQueueGraph` (Wave B.3 Unit 15)
15
- * - `CqrsGraph.dispatch` (Wave C.2 Unit 20)
16
- * - `CqrsGraph.saga` (Wave C.3 Unit 22)
17
- * - `processManager` (Wave 7)
18
- */
19
-
20
- /**
21
- * Bounded increment for a self-owned counter state node.
22
- *
23
- * Reads `counter.cache`, bumps by 1 if under `cap`, writes back. Returns
24
- * `false` when the cap is reached. Documented P3 exception: the counter is
25
- * not a declared dep of the caller — it's a private budget read+written from
26
- * a single call site. This helper keeps the `.cache` access in one named
27
- * place.
28
- *
29
- * **Safety today:**
30
- * 1. Single-threaded JS runner never invokes the caller concurrently.
31
- * 2. `counter.down` writes the cache synchronously before returning, so
32
- * synchronous re-entry through a downstream publish reads the
33
- * freshly-incremented value — no double-count.
34
- *
35
- * **Future risk:** under a free-threaded runner (PY no-GIL or hypothetical
36
- * concurrent TS runner), two concurrent firings could still race. Revisit
37
- * when that surfaces.
38
- */
39
- declare function tryIncrementBounded(counter: Node<number>, cap: number): boolean;
40
- /** Shared base shape for every audit record. Per-primitive types extend this. */
41
- interface BaseAuditRecord {
42
- readonly t_ns: number;
43
- readonly seq?: number;
44
- readonly handlerVersion?: {
45
- id: string;
46
- version: string | number;
47
- };
48
- }
49
- /**
50
- * Allow `observe` and `signal`; deny external `write` on the audit log so
51
- * consumers can subscribe + signal-bridge but cannot inject fake records.
52
- */
53
- declare const DEFAULT_AUDIT_GUARD: NodeGuard;
54
- type AuditLogOpts<R extends BaseAuditRecord> = {
55
- name: string;
56
- /** Bounded retention; default 1024 per Audit 2 / cross-cutting bounded-default policy. */
57
- retainedLimit?: number;
58
- /** Override the default audit guard. */
59
- guard?: NodeGuard;
60
- /** Mount the audit `entries` Node under this graph (and activate withLatest). */
61
- graph?: Graph;
62
- /** Pass-through to {@link reactiveLog}. */
63
- versioning?: ReactiveLogOptions<R>["versioning"];
64
- };
65
- /**
66
- * Build a reactive audit log with sane defaults: bounded retention, deny-write
67
- * guard, `withLatest()` companions activated. Returns the {@link ReactiveLogBundle}
68
- * directly — primitives expose this as `<primitive>.events` / `.decisions` /
69
- * `.dispatches` / `.invocations` and alias it as `.audit`.
70
- *
71
- * @category internal
72
- */
73
- declare function createAuditLog<R extends BaseAuditRecord>(opts: AuditLogOpts<R>): ReactiveLogBundle<R>;
74
- type FailureMeta = {
75
- t_ns: number;
76
- seq?: number;
77
- errorType: string;
78
- };
79
- type SuccessMeta = {
80
- t_ns: number;
81
- seq?: number;
82
- };
83
- /** Common opts shared by both tiers. */
84
- type MutationOpts<TArgs extends readonly unknown[], TResult, R extends BaseAuditRecord> = {
85
- /**
86
- * Optional audit log. When omitted, the wrapper still provides freeze /
87
- * seq-advance / rollback-on-throw (`wrapMutation`) but skips audit-record
88
- * emission entirely — useful for primitives that want centralized mutation
89
- * semantics without a dedicated audit log surface (e.g. `Topic.publish`).
90
- * Pair with `onSuccess` / `onFailure` to emit records.
91
- */
92
- audit?: ReactiveLogBundle<R>;
93
- /** Build the success record from the action's args + result + meta. */
94
- onSuccess?: (args: TArgs, result: TResult, meta: SuccessMeta) => R | undefined;
95
- /** Build the failure record from the args + error + meta. */
96
- onFailure?: (args: TArgs, error: unknown, meta: FailureMeta) => R | undefined;
97
- /** Freeze inputs at entry (default `true`). Pass `false` for hot paths. */
98
- freeze?: boolean;
99
- /** Optional sequence cursor — auto-advanced and stamped onto records. */
100
- seq?: Node<number>;
101
- /** Optional handler version — stamped into the record (Audit 5). */
102
- handlerVersion?: {
103
- id: string;
104
- version: string | number;
105
- };
106
- };
107
- type WrapMutationOpts<TArgs extends readonly unknown[], TResult, R extends BaseAuditRecord> = MutationOpts<TArgs, TResult, R>;
108
- type LightMutationOpts<TArgs extends readonly unknown[], TResult, R extends BaseAuditRecord> = MutationOpts<TArgs, TResult, R>;
109
- declare function bumpCursor(seq: Node<number>): number;
110
- /**
111
- * Build a record via the supplied builder, stamp `handlerVersion` if present,
112
- * and append it to the audit log. `undefined` records are skipped (callers
113
- * pass an `onSuccess` / `onFailure` that returns `undefined` to opt out per
114
- * call).
115
- *
116
- * @category internal
117
- */
118
- declare function appendAudit<TArgs extends readonly unknown[], TValue, R extends BaseAuditRecord, M extends SuccessMeta | FailureMeta>(audit: ReactiveLogBundle<R>, builder: (args: TArgs, value: TValue, meta: M) => R | undefined, args: TArgs, value: TValue, meta: M, handlerVersion?: {
119
- id: string;
120
- version: string | number;
121
- }): void;
122
- /**
123
- * Substrate-tier wrapper: run `action`, optionally append a typed audit record
124
- * on success or failure, advance an optional `seq` cursor. No batch frame —
125
- * this is the hot-path-friendly variant for atomic single-write mutations.
126
- *
127
- * Behavior contract:
128
- * 1. Freeze args at entry (default `true`; opt out with `freeze: false` for
129
- * hot paths — e.g. wrapping `vectorIndex.upsert(id, vector[768], meta)`
130
- * where the deep-freeze of a 768-dim vector is a measurable tax).
131
- * 2. Bump `seq` (if provided) BEFORE the action runs. There is no batch frame,
132
- * so the bump persists even on throw — the failure-audit record stamps the
133
- * same `seq` so audit consumers see a contiguous sequence.
134
- * 3. Run `action(args)`. On success, if `audit` is provided AND `onSuccess`
135
- * is set, `appendAudit(onSuccess, ...)`.
136
- * 4. On throw, if `audit` is provided AND `onFailure` is set,
137
- * `appendAudit(onFailure, ...)` then re-throw. When `audit` is omitted the
138
- * wrapper still provides freeze + seq + re-throw semantics — useful for
139
- * primitives that want centralized mutation contracts without an audit log
140
- * surface (e.g. `Topic.publish`).
141
- *
142
- * **Distinguish from {@link wrapMutation}:** `wrapMutation` opens a `batch()`
143
- * frame (rollback-on-throw, seq advance discarded on rollback) and is the
144
- * right choice when the action runs a user-supplied handler or a multi-step
145
- * sequence that could leave inconsistent state mid-throw.
146
- *
147
- * **Cursor / log alignment caveat (substrate-tier):** `seq` is bumped BEFORE
148
- * `action()` runs, and the audit-log append happens AFTER. There is no batch
149
- * frame, so a synchronous subscriber to `seq` that fires between the two —
150
- * including a subscriber on `audit.entries` itself if the substrate causes
151
- * it to fire transitively — observes `seq=N` while the corresponding record
152
- * is not yet in the log. Audit consumers that join `seq` and `audit.entries`
153
- * reactively must tolerate this one-tick lag, or use {@link wrapMutation}
154
- * (whose `batch()` frame defers downstream delivery until commit, so cursor
155
- * and log appear together to subscribers). The same caveat applies to
156
- * **re-entrant** invocation: if an `audit.entries` / `seq` subscriber
157
- * triggers another `lightMutation`, the inner record can land on the log
158
- * before the outer call's success/failure record.
159
- *
160
- * @category internal
161
- */
162
- declare function lightMutation<TArgs extends readonly unknown[], TResult, R extends BaseAuditRecord>(action: (...args: TArgs) => TResult, opts: LightMutationOpts<TArgs, TResult, R>): (...args: TArgs) => TResult;
163
- /**
164
- * Orchestration-tier wrapper: like {@link lightMutation} but adds a `batch()`
165
- * frame around the action so an in-flight throw rolls back partial state.
166
- *
167
- * Behavior contract:
168
- * 1. Freeze args at entry (default `true`).
169
- * 2. Open a batch frame (rollback-on-throw via core batch — Audit 2 #6).
170
- * 3. Bump `seq` INSIDE the batch so a framework-level rollback discards the
171
- * cursor advance (cursor stays in sync with audit log). M5.
172
- * 4. Run `action(args)` and capture result.
173
- * 5. On success: if `audit` is provided AND `onSuccess` is set,
174
- * `appendAudit(onSuccess, ...)` inside the batch.
175
- * 6. On throw: catch OUTSIDE the batch so the failure record (if any) emits
176
- * in a fresh transaction after rollback — it persists. Re-throw so callers
177
- * see the failure. When `audit` is omitted the wrapper still provides
178
- * batch + freeze + rollback + re-throw semantics — useful for primitives
179
- * that want orchestration-tier mutation contracts without an audit log
180
- * surface.
181
- *
182
- * **Distinguish from the file-private `wrapMutation` in
183
- * `src/extra/reactive-map.ts:540`:** that helper is a transactional wrapper
184
- * for the reactiveMap version counter (`pre/post-version` snapshot diffing,
185
- * read vs. mutation gating). Different concern, file-private, not exported.
186
- * This `wrapMutation` is the public Phase-4 audit framework.
187
- *
188
- * @category internal
189
- */
190
- declare function wrapMutation<TArgs extends readonly unknown[], TResult, R extends BaseAuditRecord>(action: (...args: TArgs) => TResult, opts: WrapMutationOpts<TArgs, TResult, R>): (...args: TArgs) => TResult;
191
- /**
192
- * Promote a closure counter to a state node mounted under `graph`.
193
- * Replaces ad-hoc `let _seq = 0` patterns with a node observable in
194
- * `describe()` and persistable via storage tiers.
195
- *
196
- * @category internal
197
- */
198
- declare function registerCursor(graph: Graph, name: string, initial?: number): Node<number>;
199
- /**
200
- * Promote a closure `Map<K, number>` to N state nodes (one per key) mounted
201
- * under `<graph>::<name>::<key>`. Used by saga (per-event-type cursor).
202
- *
203
- * @category internal
204
- */
205
- declare function registerCursorMap<K extends string>(graph: Graph, name: string, keys: readonly K[], initial?: number): {
206
- readonly [P in K]: Node<number>;
207
- };
208
-
209
- export { type AuditLogOpts as A, type BaseAuditRecord as B, DEFAULT_AUDIT_GUARD as D, type FailureMeta as F, type LightMutationOpts as L, type MutationOpts as M, type SuccessMeta as S, type WrapMutationOpts as W, appendAudit as a, bumpCursor as b, createAuditLog as c, registerCursorMap as d, lightMutation as l, registerCursor as r, tryIncrementBounded as t, wrapMutation as w };