@graphrefly/graphrefly 0.44.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 (420) 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 -3
  59. package/dist/core/index.d.ts +1 -3
  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 -958
  83. package/dist/extra/operators.d.ts +1 -958
  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 -95
  155. package/dist/index.d.ts +45 -95
  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 -20
  167. package/dist/patterns/ai/index.d.ts +1 -20
  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 -13
  203. package/dist/patterns/harness/index.d.ts +1 -13
  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 -8
  233. package/dist/patterns/orchestration/index.d.ts +1 -8
  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 -3
  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-BglDkMdX.d.cts +0 -199
  275. package/dist/cascading-MFgxu7Yo.d.ts +0 -199
  276. package/dist/chunk-2T7U5EU6.js +0 -1
  277. package/dist/chunk-3G5U5QNE.js +0 -5
  278. package/dist/chunk-4VVTGLXJ.js +0 -1
  279. package/dist/chunk-5M4CCMMD.js +0 -45
  280. package/dist/chunk-5QDBSZBV.js +0 -1
  281. package/dist/chunk-5XJ6B66J.js +0 -1
  282. package/dist/chunk-6QZNQS5B.js +0 -1
  283. package/dist/chunk-6X7AFUJV.js +0 -9
  284. package/dist/chunk-7K6PWTDQ.js +0 -1
  285. package/dist/chunk-7LIAPXJB.js +0 -1
  286. package/dist/chunk-7WPU3UHQ.js +0 -1
  287. package/dist/chunk-A5WCQ5NO.js +0 -1
  288. package/dist/chunk-APPIWSGD.js +0 -84
  289. package/dist/chunk-BEZWM2SY.js +0 -1
  290. package/dist/chunk-C72GO4IZ.js +0 -1
  291. package/dist/chunk-CB676TKJ.js +0 -1
  292. package/dist/chunk-CE6TI2TL.js +0 -1
  293. package/dist/chunk-CE72X3WO.js +0 -1
  294. package/dist/chunk-CK2E7BTU.js +0 -1
  295. package/dist/chunk-CLVB32RD.js +0 -1
  296. package/dist/chunk-CRVT7D2P.js +0 -1
  297. package/dist/chunk-D5RFJOZ2.js +0 -1
  298. package/dist/chunk-D7GPHKFH.js +0 -1
  299. package/dist/chunk-DHRX7JX4.js +0 -2
  300. package/dist/chunk-ESMPEKEV.js +0 -1
  301. package/dist/chunk-F672GV32.js +0 -1
  302. package/dist/chunk-FZMYDOWV.js +0 -1
  303. package/dist/chunk-GHBWHMRZ.js +0 -1
  304. package/dist/chunk-GLERH466.js +0 -1
  305. package/dist/chunk-GPW2V3RE.js +0 -1
  306. package/dist/chunk-HIDYF36O.js +0 -1
  307. package/dist/chunk-HITNVN6B.js +0 -3
  308. package/dist/chunk-HY4DJBA7.js +0 -5
  309. package/dist/chunk-KZIEYVXN.js +0 -1
  310. package/dist/chunk-L6NSJVJZ.js +0 -1
  311. package/dist/chunk-N4MQX6JU.js +0 -18
  312. package/dist/chunk-N7FHEL4D.js +0 -1
  313. package/dist/chunk-NTEURFZH.js +0 -1
  314. package/dist/chunk-OIVP6KFV.js +0 -1
  315. package/dist/chunk-OPHBU3LG.js +0 -1
  316. package/dist/chunk-OYQOZP2F.js +0 -5
  317. package/dist/chunk-PTZK576G.js +0 -1
  318. package/dist/chunk-QYADASLV.js +0 -1
  319. package/dist/chunk-ST7UXLWR.js +0 -1
  320. package/dist/chunk-SVY7VUYU.js +0 -1
  321. package/dist/chunk-TK3NWWD4.js +0 -1
  322. package/dist/chunk-TSOYJ743.js +0 -1
  323. package/dist/chunk-UNGSTR4X.js +0 -61
  324. package/dist/chunk-VIMF6LGM.js +0 -1
  325. package/dist/chunk-VJLMUKOI.js +0 -1
  326. package/dist/chunk-VN6RDSK2.js +0 -1
  327. package/dist/chunk-VV4N5P64.js +0 -1
  328. package/dist/chunk-W3I423PS.js +0 -1
  329. package/dist/chunk-WJR24TAG.js +0 -1
  330. package/dist/chunk-XTGKMHSW.js +0 -1
  331. package/dist/chunk-YBB7ZGTY.js +0 -1
  332. package/dist/chunk-Z4NPUARF.js +0 -1
  333. package/dist/chunk-ZGNQRPDT.js +0 -1
  334. package/dist/chunk-ZKPSFFKU.js +0 -1
  335. package/dist/chunk-ZLV5SQSX.js +0 -1
  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-BvOWTZ00.d.ts +0 -112
  339. package/dist/decay-CFlLvXUT.d.cts +0 -112
  340. package/dist/fallback-74oxi34l.d.cts +0 -250
  341. package/dist/fallback-DUyyBTBK.d.ts +0 -250
  342. package/dist/graph-CWvEUQAq.d.cts +0 -1861
  343. package/dist/graph-D9LFnda9.d.ts +0 -1861
  344. package/dist/index-5k1T6jl0.d.cts +0 -121
  345. package/dist/index-9770hRuQ.d.cts +0 -779
  346. package/dist/index-B-_tFaqV.d.cts +0 -468
  347. package/dist/index-B17QddL1.d.cts +0 -374
  348. package/dist/index-B1F8Enjf.d.ts +0 -704
  349. package/dist/index-B5S8ULbU.d.ts +0 -515
  350. package/dist/index-B8YnZpIR.d.ts +0 -102
  351. package/dist/index-BHskSB8v.d.ts +0 -3413
  352. package/dist/index-BIYAkbAi.d.cts +0 -26
  353. package/dist/index-BQSKmbuG.d.cts +0 -127
  354. package/dist/index-BaQaY_IQ.d.cts +0 -231
  355. package/dist/index-BmZXHqkE.d.ts +0 -36
  356. package/dist/index-BoJ5JHxI.d.ts +0 -557
  357. package/dist/index-BocU7pqs.d.ts +0 -779
  358. package/dist/index-BrPrLl4e.d.cts +0 -86
  359. package/dist/index-BxNs2HB9.d.cts +0 -1858
  360. package/dist/index-Byu-OpX_.d.ts +0 -113
  361. package/dist/index-C1T3d7V-.d.cts +0 -704
  362. package/dist/index-C5ri2Axc.d.cts +0 -301
  363. package/dist/index-C5stwKcw.d.cts +0 -44
  364. package/dist/index-C9l6OEBL.d.ts +0 -26
  365. package/dist/index-CBBLl_rc.d.ts +0 -127
  366. package/dist/index-CBGUK09R.d.ts +0 -754
  367. package/dist/index-CC-AvFTy.d.cts +0 -557
  368. package/dist/index-CJF1URuX.d.ts +0 -121
  369. package/dist/index-CK29LV56.d.cts +0 -34
  370. package/dist/index-CMh5Rz1y.d.ts +0 -385
  371. package/dist/index-CPQlGA29.d.ts +0 -34
  372. package/dist/index-CR8QpwX8.d.ts +0 -2680
  373. package/dist/index-CS0LTlB8.d.cts +0 -385
  374. package/dist/index-CSOmP7xT.d.cts +0 -291
  375. package/dist/index-CYq8vAyV.d.ts +0 -291
  376. package/dist/index-CZ3r5Rxp.d.ts +0 -374
  377. package/dist/index-CasX6Pfq.d.cts +0 -358
  378. package/dist/index-CdAlHFEt.d.ts +0 -44
  379. package/dist/index-CdTelp1M.d.ts +0 -202
  380. package/dist/index-CeFiHtAg.d.ts +0 -468
  381. package/dist/index-Cj3WohTd.d.cts +0 -202
  382. package/dist/index-Climxqsu.d.cts +0 -754
  383. package/dist/index-Co7uli2l.d.cts +0 -3413
  384. package/dist/index-CviRnE4K.d.ts +0 -45
  385. package/dist/index-Cwv0KWcU.d.cts +0 -102
  386. package/dist/index-CzLVrjxn.d.ts +0 -231
  387. package/dist/index-D0aciIex.d.cts +0 -209
  388. package/dist/index-DHen9Klo.d.ts +0 -1858
  389. package/dist/index-DV_1YuVk.d.cts +0 -221
  390. package/dist/index-Dc4AYqrJ.d.cts +0 -515
  391. package/dist/index-Dgl1HpPn.d.ts +0 -86
  392. package/dist/index-DisjX8a-.d.ts +0 -221
  393. package/dist/index-UPSiS-X7.d.cts +0 -2680
  394. package/dist/index-Yq60JP3s.d.ts +0 -209
  395. package/dist/index-ZVQhLa2i.d.cts +0 -37
  396. package/dist/index-_6ODbuOu.d.cts +0 -45
  397. package/dist/index-hcDJ8PSI.d.cts +0 -36
  398. package/dist/index-nozs3fFC.d.ts +0 -301
  399. package/dist/index-p09KSrTN.d.ts +0 -358
  400. package/dist/index-sqkqlb1p.d.ts +0 -37
  401. package/dist/index-tRCxuAXF.d.cts +0 -113
  402. package/dist/node-kK3CvTrR.d.cts +0 -1347
  403. package/dist/node-kK3CvTrR.d.ts +0 -1347
  404. package/dist/observable-DWjNfLvC.d.ts +0 -36
  405. package/dist/observable-e3eiPPFy.d.cts +0 -36
  406. package/dist/pipeline-graph-CIKhynsF.d.cts +0 -142
  407. package/dist/pipeline-graph-Sgj0gCwn.d.ts +0 -142
  408. package/dist/reactive-layout-DOTs9P3X.d.ts +0 -183
  409. package/dist/reactive-layout-DgctbqZo.d.cts +0 -183
  410. package/dist/reactive-log-BKALbfal.d.ts +0 -223
  411. package/dist/reactive-log-DIGdYqQ6.d.cts +0 -223
  412. package/dist/reactive-map-CEFGp8TK.d.cts +0 -296
  413. package/dist/reactive-map-DS_SIAxv.d.ts +0 -296
  414. package/dist/resilience-6LYQJAC5.js +0 -1
  415. package/dist/sugar-DQjFmVqb.d.cts +0 -399
  416. package/dist/sugar-fhLIE7TT.d.ts +0 -399
  417. package/dist/topology-tree-Bcz27hpF.d.cts +0 -25
  418. package/dist/topology-tree-xvaD0fOX.d.ts +0 -25
  419. package/dist/types-C0_yquda.d.cts +0 -442
  420. package/dist/types-CWFysE9E.d.ts +0 -442
@@ -1,209 +0,0 @@
1
- import { b as NodeGuard, N as Node } from './node-kK3CvTrR.js';
2
- import { G as Graph } from './graph-D9LFnda9.js';
3
- import { R as ReactiveLogOptions, a as ReactiveLogBundle } from './reactive-log-BKALbfal.js';
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 };
@@ -1,37 +0,0 @@
1
- import { G as Graph } from './graph-CWvEUQAq.cjs';
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,45 +0,0 @@
1
- import { N as Node } from './node-kK3CvTrR.cjs';
2
-
3
- /** Svelte store contract — implements the minimal `subscribe` method. */
4
- interface SvelteReadable<T> {
5
- subscribe(run: (value: T) => void): () => void;
6
- }
7
- /** Svelte writable store contract. */
8
- interface SvelteWritable<T> extends SvelteReadable<T> {
9
- set(value: T): void;
10
- update(updater: (value: T) => T): void;
11
- }
12
- /**
13
- * Subscribe to a `Node<T>` as a Svelte readable store (implements Svelte store contract).
14
- * Subscription lifecycle is tied to Svelte store unsubscription (not node terminal messages).
15
- */
16
- declare function useSubscribe<T>(node: Node<T>): SvelteReadable<T | undefined | null>;
17
- /**
18
- * Bind a writable `Node<T>` as a Svelte writable store.
19
- * Reads and writes adapt seamlessly.
20
- * Setter/update always forward `[[DIRTY], [DATA, value]]`, including `value === undefined`.
21
- * Subscription lifecycle is tied to Svelte store unsubscription (not node terminal messages).
22
- */
23
- declare function useStore<T>(node: Node<T>): SvelteWritable<T | undefined | null>;
24
- /** Maps a key to an object of nodes. Used by `useSubscribeRecord`. */
25
- type NodeFactory<K, R extends Record<string, any>> = (key: K) => {
26
- [P in keyof R]: Node<R[P]>;
27
- };
28
- /**
29
- * Subscribe to a dynamic keyed record of nodes as a Svelte readable store.
30
- * Re-subscribes all per-key fields whenever `keysNode` changes.
31
- * Key re-sync is gated to settled batches (`messageTier >= 3`) to avoid DIRTY-phase churn.
32
- */
33
- declare function useSubscribeRecord<K extends string, R extends Record<string, any>>(keysNode: Node<K[]>, factory: NodeFactory<K, R>): SvelteReadable<Record<K, R>>;
34
-
35
- type index_NodeFactory<K, R extends Record<string, any>> = NodeFactory<K, R>;
36
- type index_SvelteReadable<T> = SvelteReadable<T>;
37
- type index_SvelteWritable<T> = SvelteWritable<T>;
38
- declare const index_useStore: typeof useStore;
39
- declare const index_useSubscribe: typeof useSubscribe;
40
- declare const index_useSubscribeRecord: typeof useSubscribeRecord;
41
- declare namespace index {
42
- export { type index_NodeFactory as NodeFactory, type index_SvelteReadable as SvelteReadable, type index_SvelteWritable as SvelteWritable, index_useStore as useStore, index_useSubscribe as useSubscribe, index_useSubscribeRecord as useSubscribeRecord };
43
- }
44
-
45
- export { type NodeFactory as N, type SvelteReadable as S, type SvelteWritable as a, useSubscribe as b, useSubscribeRecord as c, index as i, useStore as u };
@@ -1,36 +0,0 @@
1
- import { N as Node } from './node-kK3CvTrR.cjs';
2
-
3
- /** Solid accessor function — returns current value when called. */
4
- type Accessor<T> = () => T;
5
- /**
6
- * Subscribe to a `Node<T>` as a Solid signal. Auto-cleans up with the owning scope.
7
- * Subscription lifecycle is tied to Solid scope cleanup (not node terminal messages).
8
- */
9
- declare function useSubscribe<T>(node: Node<T>): Accessor<T | undefined | null>;
10
- /**
11
- * Bind a writable `Node<T>` as a Solid resource tuple `[accessor, setter]`.
12
- * Setter always forwards `[[DIRTY], [DATA, value]]`, including `value === undefined`.
13
- * Subscription lifecycle is tied to Solid scope cleanup (not node terminal messages).
14
- */
15
- declare function useStore<T>(node: Node<T>): [Accessor<T | undefined | null>, (v: T) => void];
16
- /** Maps a key to an object of nodes. Used by `useSubscribeRecord`. */
17
- type NodeFactory<K, R extends Record<string, any>> = (key: K) => {
18
- [P in keyof R]: Node<R[P]>;
19
- };
20
- /**
21
- * Subscribe to a dynamic set of keyed node records as a Solid accessor.
22
- * Re-subscribes all per-key fields whenever `keys` changes.
23
- * Key re-sync is gated to settled batches (`messageTier >= 3`) to avoid DIRTY-phase churn.
24
- */
25
- declare function useSubscribeRecord<K extends string, R extends Record<string, any>>(keysNode: Node<K[]>, factory: NodeFactory<K, R>): Accessor<Record<K, R>>;
26
-
27
- type index_Accessor<T> = Accessor<T>;
28
- type index_NodeFactory<K, R extends Record<string, any>> = NodeFactory<K, R>;
29
- declare const index_useStore: typeof useStore;
30
- declare const index_useSubscribe: typeof useSubscribe;
31
- declare const index_useSubscribeRecord: typeof useSubscribeRecord;
32
- declare namespace index {
33
- export { type index_Accessor as Accessor, type index_NodeFactory as NodeFactory, index_useStore as useStore, index_useSubscribe as useSubscribe, index_useSubscribeRecord as useSubscribeRecord };
34
- }
35
-
36
- export { type Accessor as A, type NodeFactory as N, useSubscribe as a, useSubscribeRecord as b, index as i, useStore as u };
@@ -1,301 +0,0 @@
1
- import { N as Node } from './node-kK3CvTrR.js';
2
- import { G as Graph, a as GraphOptions } from './graph-D9LFnda9.js';
3
- import { a as ReactiveLogBundle } from './reactive-log-BKALbfal.js';
4
- import { AppendLogStorageTier } from './extra/storage-tiers.js';
5
-
6
- type TopicOptions = {
7
- graph?: GraphOptions;
8
- /** Bounded retention; default 1024 per cross-cutting policy (Audit 2/4). */
9
- retainedLimit?: number;
10
- };
11
- declare class TopicGraph<T> extends Graph {
12
- private readonly _log;
13
- private readonly _publishImpl;
14
- readonly events: Node<readonly T[]>;
15
- /**
16
- * Most recently published value, or `null` when the topic has no entries
17
- * yet. Spec §5.12 reserves `undefined` as the protocol-internal "never
18
- * sent DATA" sentinel — `null` is the idiomatic "empty / no value" signal
19
- * for domain nodes. F7.
20
- *
21
- * **Caveat when `T` itself includes `null`** (e.g., `topic<number | null>`):
22
- * `latest === null` is ambiguous — it could mean "no publish yet" OR "a
23
- * `null` value was published". Use {@link hasLatest} to disambiguate, or
24
- * observe {@link events} directly and track length yourself.
25
- */
26
- readonly latest: Node<T | null>;
27
- /**
28
- * Reactive `true` once the topic has at least one published entry.
29
- * Disambiguates "`null` never published" from "`null` was published" when
30
- * `T` includes `null`.
31
- */
32
- readonly hasLatest: Node<boolean>;
33
- constructor(name: string, opts?: TopicOptions);
34
- publish(value: T): void;
35
- /**
36
- * Wire one or more append-log storage tiers (Audit 4). Each tier receives
37
- * appended events per wave; rollback honors the wave-as-transaction model.
38
- *
39
- * Named `attachEventStorage` (not `attachStorage`) to avoid colliding with
40
- * the inherited {@link Graph.attachSnapshotStorage} which takes the
41
- * snapshot-based `StorageTier[]` shape.
42
- *
43
- * @returns Disposer.
44
- */
45
- attachEventStorage(tiers: readonly AppendLogStorageTier<T>[]): () => void;
46
- retained(): readonly T[];
47
- /** Internal log bundle — used by TopicBridgeGraph for `attach`. */
48
- get _logBundle(): ReactiveLogBundle<T>;
49
- }
50
- type SubscriptionOptions = {
51
- graph?: GraphOptions;
52
- /**
53
- * Starting cursor position.
54
- * @deprecated Use `from` instead.
55
- */
56
- cursor?: number;
57
- /**
58
- * Starting position for the subscription.
59
- * - `"retained"` (default) — cursor starts at 0; consumer sees all retained history.
60
- * - `"now"` — cursor starts at current topic length; consumer ignores history.
61
- * - `number` — explicit cursor position.
62
- */
63
- from?: "now" | "retained" | number;
64
- /**
65
- * When this signal node emits DATA, the subscription auto-advances cursor
66
- * to current `available.length`. Useful for "ack everything when X happens"
67
- * patterns. The reactive edge `advanceOn → cursor` is visible in `explain()`.
68
- */
69
- advanceOn?: Node<unknown>;
70
- };
71
- /** Result of {@link SubscriptionGraph.pullAndAck}. */
72
- type PullAndAckResult<T> = {
73
- items: readonly T[];
74
- cursor: number;
75
- };
76
- declare class SubscriptionGraph<T> extends Graph {
77
- readonly cursor: Node<number>;
78
- readonly available: Node<readonly T[]>;
79
- /**
80
- * Reference to the upstream topic graph. Intentionally NOT mounted
81
- * under this subscription: a subscription is a VIEW over an
82
- * externally-owned topic. Double-mounting (e.g. hub-owned topic +
83
- * sub-mount here) would make either-side teardown leave the other
84
- * holding a dead reference. Node-level `derived([topicEvents], …)`
85
- * still wires the data dependency across graph boundaries. D1(e).
86
- */
87
- readonly topic: TopicGraph<T>;
88
- private _disposed;
89
- private readonly _ackImpl;
90
- private readonly _pullAndAckImpl;
91
- constructor(name: string, topicGraph: TopicGraph<T>, opts?: SubscriptionOptions);
92
- ack(count?: number): number;
93
- pull(limit?: number): readonly T[];
94
- /**
95
- * Atomic pull-and-acknowledge. Returns `{ items, cursor }` where `cursor`
96
- * is the new cursor position after advancing. Under single-threaded JS the
97
- * snapshot and advance are atomic; PY callers use a per-subscription Lock.
98
- *
99
- * Replaces `pull(limit, { ack: true })`.
100
- */
101
- pullAndAck(limit?: number): PullAndAckResult<T>;
102
- /**
103
- * Release internal subscriptions and mark the subscription torn-down.
104
- * Subsequent `pull`, `pullAndAck`, `ack` return empty / current cursor.
105
- * Emits COMPLETE on `cursor` so derived consumers (e.g. `available`) see
106
- * the termination signal. Also drains `addDisposer` callbacks (including
107
- * the `keepalive(advancePump)` subscription) so no keepalive leak occurs.
108
- */
109
- dispose(): void;
110
- }
111
- type TopicBridgeOptions<TIn, TOut> = {
112
- graph?: GraphOptions;
113
- cursor?: number;
114
- maxPerPump?: number;
115
- /**
116
- * Optional transform/filter applied to each item before republishing.
117
- *
118
- * **At-most-once with silent drop:** when `map` returns `undefined`, the
119
- * input is consumed from the source cursor but NOT republished. Filtered
120
- * items are not retained for retry. If you need filter-with-retry
121
- * semantics, do the filtering in a downstream subscription on the bridged
122
- * output rather than in the `map` function.
123
- */
124
- map?: (value: TIn) => TOut | undefined;
125
- };
126
- declare class TopicBridgeGraph<TIn, TOut = TIn> extends Graph {
127
- private readonly _sourceSub;
128
- readonly bridgedCount: Node<number>;
129
- /**
130
- * Emits each mapped batch as DATA — gives downstream observers a reactive
131
- * stream of bridged values. Also the link target for `target._log.attach`.
132
- */
133
- readonly output: Node<readonly TOut[]>;
134
- constructor(name: string, sourceTopic: TopicGraph<TIn>, targetTopic: TopicGraph<TOut>, opts?: TopicBridgeOptions<TIn, TOut>);
135
- }
136
- /**
137
- * Private pure data structure managing a named set of {@link TopicGraph}
138
- * instances. Extracted from {@link MessagingHubGraph} for separation of
139
- * concerns (B.2 Unit 14 lock: D — split into TopicRegistry + facade).
140
- *
141
- * Reusable if other domain consumers (e.g. cqrs.eventLogs) want a shared
142
- * topic registry later.
143
- *
144
- * @internal
145
- */
146
- declare class TopicRegistry {
147
- private readonly _map;
148
- /** Reactive monotonic version counter. Advances on topic create/remove. */
149
- readonly version: Node<number>;
150
- constructor(versionNode: Node<number>);
151
- get size(): number;
152
- has(name: string): boolean;
153
- get<T>(name: string): TopicGraph<T> | undefined;
154
- set<T>(name: string, t: TopicGraph<T>): void;
155
- delete(name: string): boolean;
156
- keys(): IterableIterator<string>;
157
- }
158
- type MessagingHubOptions = {
159
- graph?: GraphOptions;
160
- /**
161
- * Default `TopicOptions` applied to every topic created via `topic(name)`
162
- * without explicit options. Per-call opts override. Default: `{}`
163
- * (unbounded retention per topic unless `retainedLimit` is set per call).
164
- */
165
- defaultTopicOptions?: TopicOptions;
166
- };
167
- /**
168
- * Lazy Pulsar-inspired topic registry. Manages a named set of {@link TopicGraph}
169
- * instances with retention + cursor semantics. Topics are created on first
170
- * access; `removeTopic(name)` unmounts and tears down via {@link Graph.remove}.
171
- *
172
- * Internally delegates to {@link TopicRegistry} for topic map management
173
- * (B.2 Unit 14 lock: D facade split).
174
- *
175
- * **Relationship to `pubsub()` in `src/extra/pubsub.ts`:** `pubsub` is a
176
- * lightweight last-value state hub (no retention, no cursors). `MessagingHubGraph`
177
- * is the full messaging hub — retained message logs, cursor-based subscriptions,
178
- * and pattern-layer lifecycle management.
179
- *
180
- * @category patterns
181
- */
182
- declare class MessagingHubGraph extends Graph {
183
- private readonly _registry;
184
- /** Reactive monotonic version counter — advances on topic create/remove. */
185
- readonly version: Node<number>;
186
- private readonly _defaultTopicOptions;
187
- private readonly _removeTopicImpl;
188
- constructor(name: string, opts?: MessagingHubOptions);
189
- /** Number of topics currently in the hub. */
190
- get size(): number;
191
- /** Checks topic existence without creating. */
192
- has(name: string): boolean;
193
- /** Iterator over topic names. */
194
- topicNames(): IterableIterator<string>;
195
- /**
196
- * Returns the {@link TopicGraph} for `name`, creating lazily on first call.
197
- * Subsequent calls with the same name return the same instance (options on
198
- * repeat calls are ignored — the topic is already configured).
199
- */
200
- topic<T = unknown>(name: string, opts?: TopicOptions): TopicGraph<T>;
201
- /**
202
- * Publishes a value to the topic, lazily creating it on first publish.
203
- *
204
- * **Late-subscriber caveat:** the topic is created lazily, so subscribers
205
- * that attach AFTER a publish only see the retained window (governed by
206
- * `retainedLimit` on `TopicOptions` / `defaultTopicOptions`). If
207
- * `retainedLimit === 0` is set explicitly, early publishes are
208
- * effectively dropped — prefer an unset `retainedLimit` (unbounded
209
- * retention) or subscribe before publishing when late-subscribers matter.
210
- */
211
- publish<T = unknown>(name: string, value: T): void;
212
- /**
213
- * Bulk publish — issues all publishes inside one outer batch. New topics
214
- * are created on demand. No-op if `entries` yields nothing.
215
- *
216
- * **Iterable consumption (F6):** `entries` is consumed once (single-pass)
217
- * INSIDE the batch frame. If the iterator throws mid-way, the batch is
218
- * discarded and NO publishes are visible to subscribers (all-or-nothing).
219
- * Pass an array or `Set` for multi-shot callers.
220
- */
221
- publishMany(entries: Iterable<[string, unknown]>): void;
222
- /**
223
- * Creates a {@link SubscriptionGraph} over a named topic. The topic is
224
- * lazily created if missing. Subscription lifecycle is owned by the caller —
225
- * the hub does NOT mount the subscription.
226
- *
227
- * @param subName - Local name for the subscription graph.
228
- * @param topicName - Hub topic to subscribe to.
229
- * @param opts - `SubscriptionOptions` (initial cursor, etc.).
230
- */
231
- subscribe<T = unknown>(subName: string, topicName: string, opts?: SubscriptionOptions): SubscriptionGraph<T>;
232
- /**
233
- * Unmounts and tears down the topic's graph. Returns `true` if the topic
234
- * existed. Subscribers receive `TEARDOWN` via {@link Graph.remove}.
235
- *
236
- * **Closure-state caveat:** the registry mutation (`_registry.delete`) and
237
- * version bump happen in a `try/finally`, so registry/version converge to
238
- * a consistent state even when {@link Graph.remove} throws. `lightMutation`
239
- * does not roll back this mutation on throw — `Map.delete` on closure
240
- * state is invisible to any batch frame. The pre-existing try/finally is
241
- * load-bearing for that invariant.
242
- */
243
- removeTopic(name: string): boolean;
244
- }
245
- /**
246
- * Creates a Pulsar-inspired topic graph (append-only retained stream + latest value).
247
- */
248
- declare function topic<T>(name: string, opts?: TopicOptions): TopicGraph<T>;
249
- /**
250
- * Creates a lazy Pulsar-inspired messaging hub. Topics are created on first access
251
- * via `hub.topic(name)`; `hub.publish(name, value)` shortcuts through the registry.
252
- *
253
- * @example
254
- * ```ts
255
- * import { messagingHub } from "@graphrefly/graphrefly/patterns/messaging";
256
- *
257
- * const hub = messagingHub("main", { defaultTopicOptions: { retainedLimit: 256 } });
258
- * hub.publish("orders", { id: 1 });
259
- * hub.publishMany([["shipments", { id: 1 }], ["orders", { id: 2 }]]);
260
- * const sub = hub.subscribe("orders-worker", "orders", { cursor: 0 });
261
- * ```
262
- */
263
- declare function messagingHub(name: string, opts?: MessagingHubOptions): MessagingHubGraph;
264
- /**
265
- * Creates a cursor-based subscription graph over a topic.
266
- */
267
- declare function subscription<T>(name: string, topicGraph: TopicGraph<T>, opts?: SubscriptionOptions): SubscriptionGraph<T>;
268
- /**
269
- * Creates an autonomous cursor-based topic relay graph.
270
- *
271
- * When `opts.map` is provided, items where `map` returns `undefined` are
272
- * consumed from the source cursor but NOT republished (at-most-once with
273
- * silent drop). For filter-with-retry semantics, apply the filter in a
274
- * downstream subscription on the bridge's `output` node instead.
275
- */
276
- declare function topicBridge<TIn, TOut = TIn>(name: string, sourceTopic: TopicGraph<TIn>, targetTopic: TopicGraph<TOut>, opts?: TopicBridgeOptions<TIn, TOut>): TopicBridgeGraph<TIn, TOut>;
277
-
278
- type index_MessagingHubGraph = MessagingHubGraph;
279
- declare const index_MessagingHubGraph: typeof MessagingHubGraph;
280
- type index_MessagingHubOptions = MessagingHubOptions;
281
- type index_PullAndAckResult<T> = PullAndAckResult<T>;
282
- type index_SubscriptionGraph<T> = SubscriptionGraph<T>;
283
- declare const index_SubscriptionGraph: typeof SubscriptionGraph;
284
- type index_SubscriptionOptions = SubscriptionOptions;
285
- type index_TopicBridgeGraph<TIn, TOut = TIn> = TopicBridgeGraph<TIn, TOut>;
286
- declare const index_TopicBridgeGraph: typeof TopicBridgeGraph;
287
- type index_TopicBridgeOptions<TIn, TOut> = TopicBridgeOptions<TIn, TOut>;
288
- type index_TopicGraph<T> = TopicGraph<T>;
289
- declare const index_TopicGraph: typeof TopicGraph;
290
- type index_TopicOptions = TopicOptions;
291
- type index_TopicRegistry = TopicRegistry;
292
- declare const index_TopicRegistry: typeof TopicRegistry;
293
- declare const index_messagingHub: typeof messagingHub;
294
- declare const index_subscription: typeof subscription;
295
- declare const index_topic: typeof topic;
296
- declare const index_topicBridge: typeof topicBridge;
297
- declare namespace index {
298
- export { index_MessagingHubGraph as MessagingHubGraph, type index_MessagingHubOptions as MessagingHubOptions, type index_PullAndAckResult as PullAndAckResult, index_SubscriptionGraph as SubscriptionGraph, type index_SubscriptionOptions as SubscriptionOptions, index_TopicBridgeGraph as TopicBridgeGraph, type index_TopicBridgeOptions as TopicBridgeOptions, index_TopicGraph as TopicGraph, type index_TopicOptions as TopicOptions, index_TopicRegistry as TopicRegistry, index_messagingHub as messagingHub, index_subscription as subscription, index_topic as topic, index_topicBridge as topicBridge };
299
- }
300
-
301
- export { MessagingHubGraph as M, type PullAndAckResult as P, SubscriptionGraph as S, TopicGraph as T, type MessagingHubOptions as a, type SubscriptionOptions as b, TopicBridgeGraph as c, type TopicBridgeOptions as d, type TopicOptions as e, TopicRegistry as f, topicBridge as g, index as i, messagingHub as m, subscription as s, topic as t };