@graphrefly/graphrefly 0.47.2 → 0.48.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 (266) hide show
  1. package/dist/base/composition/index.cjs +4 -3
  2. package/dist/base/composition/index.cjs.map +1 -1
  3. package/dist/base/composition/index.d.cts +14 -5
  4. package/dist/base/composition/index.d.ts +14 -5
  5. package/dist/base/composition/index.js +8 -8
  6. package/dist/base/index.cjs +152 -78
  7. package/dist/base/index.cjs.map +1 -1
  8. package/dist/base/index.d.cts +2 -2
  9. package/dist/base/index.d.ts +2 -2
  10. package/dist/base/index.js +75 -70
  11. package/dist/base/io/index.cjs +31 -17
  12. package/dist/base/io/index.cjs.map +1 -1
  13. package/dist/base/io/index.d.cts +32 -5
  14. package/dist/base/io/index.d.ts +32 -5
  15. package/dist/base/io/index.js +1 -1
  16. package/dist/base/mutation/index.cjs +21 -0
  17. package/dist/base/mutation/index.cjs.map +1 -1
  18. package/dist/base/mutation/index.d.cts +23 -1
  19. package/dist/base/mutation/index.d.ts +23 -1
  20. package/dist/base/mutation/index.js +3 -1
  21. package/dist/base/sources/browser/index.cjs +5 -3
  22. package/dist/base/sources/browser/index.cjs.map +1 -1
  23. package/dist/base/sources/browser/index.d.cts +20 -2
  24. package/dist/base/sources/browser/index.d.ts +20 -2
  25. package/dist/base/sources/browser/index.js +5 -3
  26. package/dist/base/sources/browser/index.js.map +1 -1
  27. package/dist/base/sources/event/index.cjs +28 -0
  28. package/dist/base/sources/event/index.cjs.map +1 -1
  29. package/dist/base/sources/event/index.d.cts +67 -3
  30. package/dist/base/sources/event/index.d.ts +67 -3
  31. package/dist/base/sources/event/index.js +4 -1
  32. package/dist/base/sources/index.cjs +75 -37
  33. package/dist/base/sources/index.cjs.map +1 -1
  34. package/dist/base/sources/index.d.cts +1 -1
  35. package/dist/base/sources/index.d.ts +1 -1
  36. package/dist/base/sources/index.js +5 -2
  37. package/dist/{chunk-R6ZCSXKX.js → chunk-23MAWVOJ.js} +3 -3
  38. package/dist/{chunk-MS3WPRJR.js → chunk-3REMCHSS.js} +6 -6
  39. package/dist/chunk-3REMCHSS.js.map +1 -0
  40. package/dist/{chunk-CEVNQ74M.js → chunk-3YGXPUHW.js} +2 -2
  41. package/dist/{chunk-CEVNQ74M.js.map → chunk-3YGXPUHW.js.map} +1 -1
  42. package/dist/{chunk-6ZLCPUXS.js → chunk-46X2EFQH.js} +15 -4
  43. package/dist/chunk-46X2EFQH.js.map +1 -0
  44. package/dist/{chunk-NY2PYHNC.js → chunk-5UY3PNFY.js} +12 -5
  45. package/dist/chunk-5UY3PNFY.js.map +1 -0
  46. package/dist/{chunk-FQSQONOU.js → chunk-65OM4XLQ.js} +49 -3
  47. package/dist/chunk-65OM4XLQ.js.map +1 -0
  48. package/dist/{chunk-3PSLNJDU.js → chunk-6DQYBIHW.js} +314 -49
  49. package/dist/chunk-6DQYBIHW.js.map +1 -0
  50. package/dist/{chunk-LDCSZ72P.js → chunk-6YBER5UP.js} +3 -3
  51. package/dist/{chunk-LDCSZ72P.js.map → chunk-6YBER5UP.js.map} +1 -1
  52. package/dist/{chunk-3O3NKZJW.js → chunk-7T7WLEPM.js} +24 -3
  53. package/dist/chunk-7T7WLEPM.js.map +1 -0
  54. package/dist/{chunk-PKPO3JTZ.js → chunk-AQAKDE7F.js} +29 -11
  55. package/dist/chunk-AQAKDE7F.js.map +1 -0
  56. package/dist/{chunk-6MRSX3YK.js → chunk-B5Y5GPD5.js} +2 -2
  57. package/dist/{chunk-BXGZFGZ4.js → chunk-C5QD5DQX.js} +22 -1
  58. package/dist/chunk-C5QD5DQX.js.map +1 -0
  59. package/dist/{chunk-4XCHZRUJ.js → chunk-D5YGR4TP.js} +58 -7
  60. package/dist/chunk-D5YGR4TP.js.map +1 -0
  61. package/dist/{chunk-NPRP3MCV.js → chunk-DHDCOOJU.js} +2 -2
  62. package/dist/chunk-DHDCOOJU.js.map +1 -0
  63. package/dist/{chunk-VP3TIUDF.js → chunk-DVTDF5OI.js} +2 -2
  64. package/dist/{chunk-OXD5LFQP.js → chunk-G7H6PN7P.js} +2 -2
  65. package/dist/{chunk-EL5VHUGK.js → chunk-GGKHHG5Y.js} +32 -18
  66. package/dist/chunk-GGKHHG5Y.js.map +1 -0
  67. package/dist/{chunk-446I4EGD.js → chunk-J5TBZFBD.js} +2 -2
  68. package/dist/{chunk-7AVQIGF6.js → chunk-K4ZYJ4EM.js} +554 -460
  69. package/dist/chunk-K4ZYJ4EM.js.map +1 -0
  70. package/dist/{chunk-QFE5BQH7.js → chunk-LTSI7ULC.js} +2 -2
  71. package/dist/{chunk-5GVURVIG.js → chunk-MMHGYX44.js} +12 -2
  72. package/dist/{chunk-5GVURVIG.js.map → chunk-MMHGYX44.js.map} +1 -1
  73. package/dist/{chunk-KRFGO5QH.js → chunk-MQMTRKY3.js} +118 -43
  74. package/dist/chunk-MQMTRKY3.js.map +1 -0
  75. package/dist/{chunk-42FQ27MQ.js → chunk-MTODGQBR.js} +44 -179
  76. package/dist/chunk-MTODGQBR.js.map +1 -0
  77. package/dist/{chunk-FVINAAKA.js → chunk-NBK6QQMG.js} +14 -13
  78. package/dist/{chunk-FVINAAKA.js.map → chunk-NBK6QQMG.js.map} +1 -1
  79. package/dist/{chunk-KNU73RZW.js → chunk-NSA5K5G2.js} +2 -2
  80. package/dist/{chunk-MLTPJMH6.js → chunk-QQYULEZL.js} +2 -2
  81. package/dist/chunk-QSW4DFKE.js +31 -0
  82. package/dist/chunk-QSW4DFKE.js.map +1 -0
  83. package/dist/{chunk-VAZXUK6G.js → chunk-SUNCHMML.js} +2 -2
  84. package/dist/{chunk-EP4WVQLX.js → chunk-T2U6N3FV.js} +6 -6
  85. package/dist/{chunk-T7SP3EYR.js → chunk-T5URUIIY.js} +33 -24
  86. package/dist/chunk-T5URUIIY.js.map +1 -0
  87. package/dist/{chunk-VNXAF2KE.js → chunk-TPTZZV25.js} +6 -6
  88. package/dist/chunk-TPTZZV25.js.map +1 -0
  89. package/dist/{chunk-IOJDYUA7.js → chunk-V46JWFGV.js} +6 -5
  90. package/dist/chunk-V46JWFGV.js.map +1 -0
  91. package/dist/{chunk-WGDEBIP4.js → chunk-X6ESZDR6.js} +5 -6
  92. package/dist/chunk-X6ESZDR6.js.map +1 -0
  93. package/dist/{chunk-N65E26UL.js → chunk-XEWV254I.js} +2 -2
  94. package/dist/{chunk-N65E26UL.js.map → chunk-XEWV254I.js.map} +1 -1
  95. package/dist/{chunk-PTWADEH3.js → chunk-YBJVKMTM.js} +34 -14
  96. package/dist/chunk-YBJVKMTM.js.map +1 -0
  97. package/dist/{chunk-DDTS7F5O.js → chunk-ZW32BPXV.js} +12 -3
  98. package/dist/chunk-ZW32BPXV.js.map +1 -0
  99. package/dist/compat/index.cjs +51 -4
  100. package/dist/compat/index.cjs.map +1 -1
  101. package/dist/compat/index.d.cts +1 -1
  102. package/dist/compat/index.d.ts +1 -1
  103. package/dist/compat/index.js +6 -6
  104. package/dist/compat/nestjs/index.cjs +51 -4
  105. package/dist/compat/nestjs/index.cjs.map +1 -1
  106. package/dist/compat/nestjs/index.d.cts +1 -1
  107. package/dist/compat/nestjs/index.d.ts +1 -1
  108. package/dist/compat/nestjs/index.js +3 -3
  109. package/dist/{fallback-Bx46zqky.d.cts → fallback-BROR6ZhO.d.cts} +1 -1
  110. package/dist/{fallback-pIWW8A2d.d.ts → fallback-DO80aM_3.d.ts} +1 -1
  111. package/dist/{index-B_p8tnvf.d.cts → index-D1z3XcF9.d.cts} +1 -0
  112. package/dist/{index-_HDSmPyp.d.ts → index-DZ6yua0Q.d.ts} +1 -0
  113. package/dist/index.cjs +2215 -1676
  114. package/dist/index.cjs.map +1 -1
  115. package/dist/index.d.cts +10 -10
  116. package/dist/index.d.ts +10 -10
  117. package/dist/index.js +169 -146
  118. package/dist/index.js.map +1 -1
  119. package/dist/presets/ai/index.cjs +46 -0
  120. package/dist/presets/ai/index.cjs.map +1 -1
  121. package/dist/presets/ai/index.js +12 -12
  122. package/dist/presets/harness/index.cjs +130 -18
  123. package/dist/presets/harness/index.cjs.map +1 -1
  124. package/dist/presets/harness/index.d.cts +15 -5
  125. package/dist/presets/harness/index.d.ts +15 -5
  126. package/dist/presets/harness/index.js +22 -22
  127. package/dist/presets/index.cjs +222 -53
  128. package/dist/presets/index.cjs.map +1 -1
  129. package/dist/presets/index.d.cts +2 -2
  130. package/dist/presets/index.d.ts +2 -2
  131. package/dist/presets/index.js +45 -45
  132. package/dist/presets/inspect/index.cjs +63 -14
  133. package/dist/presets/inspect/index.cjs.map +1 -1
  134. package/dist/presets/inspect/index.d.cts +1 -1
  135. package/dist/presets/inspect/index.d.ts +1 -1
  136. package/dist/presets/inspect/index.js +6 -6
  137. package/dist/presets/resilience/index.cjs +29 -21
  138. package/dist/presets/resilience/index.cjs.map +1 -1
  139. package/dist/presets/resilience/index.d.cts +12 -8
  140. package/dist/presets/resilience/index.d.ts +12 -8
  141. package/dist/presets/resilience/index.js +3 -3
  142. package/dist/{rate-limiter-DpVbSYdH.d.cts → rate-limiter-DC26FM8J.d.cts} +10 -1
  143. package/dist/{rate-limiter-CEALq4N1.d.ts → rate-limiter-DyWpwpQP.d.ts} +10 -1
  144. package/dist/{reactive-layout-fswlBUvX.d.ts → reactive-layout-BBBWH0V_.d.cts} +85 -4
  145. package/dist/{reactive-layout-fswlBUvX.d.cts → reactive-layout-BBBWH0V_.d.ts} +85 -4
  146. package/dist/solutions/index.cjs +168 -47
  147. package/dist/solutions/index.cjs.map +1 -1
  148. package/dist/solutions/index.d.cts +2 -2
  149. package/dist/solutions/index.d.ts +2 -2
  150. package/dist/solutions/index.js +28 -28
  151. package/dist/{spawnable-5mDY501F.d.cts → spawnable-B2IlW60f.d.cts} +23 -2
  152. package/dist/{spawnable-D3lR0oQu.d.ts → spawnable-tttFz2Nh.d.ts} +23 -2
  153. package/dist/testing/index.cjs +94 -0
  154. package/dist/testing/index.cjs.map +1 -0
  155. package/dist/testing/index.d.cts +59 -0
  156. package/dist/testing/index.d.ts +59 -0
  157. package/dist/testing/index.js +73 -0
  158. package/dist/testing/index.js.map +1 -0
  159. package/dist/utils/ai/browser.cjs.map +1 -1
  160. package/dist/utils/ai/browser.d.cts +2 -2
  161. package/dist/utils/ai/browser.d.ts +2 -2
  162. package/dist/utils/ai/browser.js +6 -6
  163. package/dist/utils/ai/browser.js.map +1 -1
  164. package/dist/utils/ai/index.cjs +250 -166
  165. package/dist/utils/ai/index.cjs.map +1 -1
  166. package/dist/utils/ai/index.d.cts +108 -12
  167. package/dist/utils/ai/index.d.ts +108 -12
  168. package/dist/utils/ai/index.js +21 -19
  169. package/dist/utils/ai/node.cjs.map +1 -1
  170. package/dist/utils/ai/node.d.cts +5 -5
  171. package/dist/utils/ai/node.d.ts +5 -5
  172. package/dist/utils/ai/node.js +2 -2
  173. package/dist/utils/ai/node.js.map +1 -1
  174. package/dist/utils/cqrs/index.cjs +29 -3
  175. package/dist/utils/cqrs/index.cjs.map +1 -1
  176. package/dist/utils/cqrs/index.d.cts +12 -7
  177. package/dist/utils/cqrs/index.d.ts +12 -7
  178. package/dist/utils/cqrs/index.js +2 -2
  179. package/dist/utils/demo-shell/index.cjs +45 -19
  180. package/dist/utils/demo-shell/index.cjs.map +1 -1
  181. package/dist/utils/demo-shell/index.d.cts +1 -1
  182. package/dist/utils/demo-shell/index.d.ts +1 -1
  183. package/dist/utils/demo-shell/index.js +2 -2
  184. package/dist/utils/domain-templates/index.cjs.map +1 -1
  185. package/dist/utils/domain-templates/index.js +3 -3
  186. package/dist/utils/graphspec/index.cjs.map +1 -1
  187. package/dist/utils/graphspec/index.js +3 -3
  188. package/dist/utils/index.cjs +1642 -1225
  189. package/dist/utils/index.cjs.map +1 -1
  190. package/dist/utils/index.d.cts +7 -7
  191. package/dist/utils/index.d.ts +7 -7
  192. package/dist/utils/index.js +72 -54
  193. package/dist/utils/inspect/index.cjs +52 -4
  194. package/dist/utils/inspect/index.cjs.map +1 -1
  195. package/dist/utils/inspect/index.d.cts +32 -3
  196. package/dist/utils/inspect/index.d.ts +32 -3
  197. package/dist/utils/inspect/index.js +4 -4
  198. package/dist/utils/job-queue/index.cjs +46 -9
  199. package/dist/utils/job-queue/index.cjs.map +1 -1
  200. package/dist/utils/job-queue/index.d.cts +33 -3
  201. package/dist/utils/job-queue/index.d.ts +33 -3
  202. package/dist/utils/job-queue/index.js +2 -2
  203. package/dist/utils/memory/index.cjs +556 -462
  204. package/dist/utils/memory/index.cjs.map +1 -1
  205. package/dist/utils/memory/index.d.cts +203 -24
  206. package/dist/utils/memory/index.d.ts +203 -24
  207. package/dist/utils/memory/index.js +10 -2
  208. package/dist/utils/messaging/index.cjs.map +1 -1
  209. package/dist/utils/messaging/index.d.cts +4 -3
  210. package/dist/utils/messaging/index.d.ts +4 -3
  211. package/dist/utils/messaging/index.js +2 -2
  212. package/dist/utils/orchestration/index.cjs +9 -0
  213. package/dist/utils/orchestration/index.cjs.map +1 -1
  214. package/dist/utils/orchestration/index.js +3 -3
  215. package/dist/utils/process/index.cjs +32 -2
  216. package/dist/utils/process/index.cjs.map +1 -1
  217. package/dist/utils/process/index.d.cts +4 -3
  218. package/dist/utils/process/index.d.ts +4 -3
  219. package/dist/utils/process/index.js +2 -2
  220. package/dist/utils/reactive-layout/index.cjs +184 -55
  221. package/dist/utils/reactive-layout/index.cjs.map +1 -1
  222. package/dist/utils/reactive-layout/index.d.cts +128 -3
  223. package/dist/utils/reactive-layout/index.d.ts +128 -3
  224. package/dist/utils/reactive-layout/index.js +16 -8
  225. package/dist/utils/reduction/index.cjs.map +1 -1
  226. package/dist/utils/reduction/index.js +2 -2
  227. package/dist/utils/resilience/index.cjs +29 -20
  228. package/dist/utils/resilience/index.cjs.map +1 -1
  229. package/dist/utils/resilience/index.d.cts +1 -1
  230. package/dist/utils/resilience/index.d.ts +1 -1
  231. package/dist/utils/resilience/index.js +2 -2
  232. package/dist/utils/surface/index.cjs.map +1 -1
  233. package/dist/utils/surface/index.js +4 -4
  234. package/package.json +15 -3
  235. package/dist/chunk-3O3NKZJW.js.map +0 -1
  236. package/dist/chunk-3PSLNJDU.js.map +0 -1
  237. package/dist/chunk-42FQ27MQ.js.map +0 -1
  238. package/dist/chunk-4XCHZRUJ.js.map +0 -1
  239. package/dist/chunk-6ZLCPUXS.js.map +0 -1
  240. package/dist/chunk-7AVQIGF6.js.map +0 -1
  241. package/dist/chunk-BXGZFGZ4.js.map +0 -1
  242. package/dist/chunk-DDTS7F5O.js.map +0 -1
  243. package/dist/chunk-EL5VHUGK.js.map +0 -1
  244. package/dist/chunk-FQSQONOU.js.map +0 -1
  245. package/dist/chunk-IOJDYUA7.js.map +0 -1
  246. package/dist/chunk-KRFGO5QH.js.map +0 -1
  247. package/dist/chunk-MS3WPRJR.js.map +0 -1
  248. package/dist/chunk-NPRP3MCV.js.map +0 -1
  249. package/dist/chunk-NY2PYHNC.js.map +0 -1
  250. package/dist/chunk-PKPO3JTZ.js.map +0 -1
  251. package/dist/chunk-PTWADEH3.js.map +0 -1
  252. package/dist/chunk-T7SP3EYR.js.map +0 -1
  253. package/dist/chunk-VNXAF2KE.js.map +0 -1
  254. package/dist/chunk-W2BOPXTI.js +0 -1
  255. package/dist/chunk-W2BOPXTI.js.map +0 -1
  256. package/dist/chunk-WGDEBIP4.js.map +0 -1
  257. /package/dist/{chunk-R6ZCSXKX.js.map → chunk-23MAWVOJ.js.map} +0 -0
  258. /package/dist/{chunk-6MRSX3YK.js.map → chunk-B5Y5GPD5.js.map} +0 -0
  259. /package/dist/{chunk-VP3TIUDF.js.map → chunk-DVTDF5OI.js.map} +0 -0
  260. /package/dist/{chunk-OXD5LFQP.js.map → chunk-G7H6PN7P.js.map} +0 -0
  261. /package/dist/{chunk-446I4EGD.js.map → chunk-J5TBZFBD.js.map} +0 -0
  262. /package/dist/{chunk-QFE5BQH7.js.map → chunk-LTSI7ULC.js.map} +0 -0
  263. /package/dist/{chunk-KNU73RZW.js.map → chunk-NSA5K5G2.js.map} +0 -0
  264. /package/dist/{chunk-MLTPJMH6.js.map → chunk-QQYULEZL.js.map} +0 -0
  265. /package/dist/{chunk-VAZXUK6G.js.map → chunk-SUNCHMML.js.map} +0 -0
  266. /package/dist/{chunk-EP4WVQLX.js.map → chunk-T2U6N3FV.js.map} +0 -0
@@ -419,11 +419,20 @@ declare function singleFromAny<K, T>(factory: (key: K) => NodeInput<T>, opts?: S
419
419
  /**
420
420
  * Reactive variant: returns a bound callable that hands out `Node<T>` values.
421
421
  * All concurrent callers with the same key during an in-flight source share
422
- * the same Node. When the underlying source **terminally** settles (ERROR
423
- * or COMPLETE), the Node is removed from the cache so the next call
424
- * re-invokes `factory`. DATA is NOT terminal — callers subscribing after
425
- * the first DATA still receive the shared Node (and push-on-subscribe per
426
- * the spec's cached-DATA contract).
422
+ * the same Node. The cache entry is evicted (so the next call re-invokes
423
+ * `factory`) when the underlying source either:
424
+ *
425
+ * - **terminally settles** `ERROR` or `COMPLETE`; or
426
+ * - **tears down** — `TEARDOWN` (M8 fix). A DATA-only source (e.g. a
427
+ * long-lived `state(...)`) never emits `ERROR`/`COMPLETE`, so without
428
+ * the TEARDOWN arm a destroyed shared Node — plus this watcher
429
+ * subscription — would be pinned in the `inFlight` Map forever. Evicting
430
+ * on TEARDOWN bounds the entry's lifetime to the Node's own lifetime.
431
+ *
432
+ * DATA is NOT an eviction trigger — callers subscribing after the first
433
+ * DATA still receive the shared Node (and push-on-subscribe per the spec's
434
+ * cached-DATA contract). The Node stays shared while alive (the dedup
435
+ * contract); only its death (terminal or teardown) releases the entry.
427
436
  *
428
437
  * Use when downstream wants reactive subscription (not a one-shot Promise).
429
438
  *
@@ -419,11 +419,20 @@ declare function singleFromAny<K, T>(factory: (key: K) => NodeInput<T>, opts?: S
419
419
  /**
420
420
  * Reactive variant: returns a bound callable that hands out `Node<T>` values.
421
421
  * All concurrent callers with the same key during an in-flight source share
422
- * the same Node. When the underlying source **terminally** settles (ERROR
423
- * or COMPLETE), the Node is removed from the cache so the next call
424
- * re-invokes `factory`. DATA is NOT terminal — callers subscribing after
425
- * the first DATA still receive the shared Node (and push-on-subscribe per
426
- * the spec's cached-DATA contract).
422
+ * the same Node. The cache entry is evicted (so the next call re-invokes
423
+ * `factory`) when the underlying source either:
424
+ *
425
+ * - **terminally settles** `ERROR` or `COMPLETE`; or
426
+ * - **tears down** — `TEARDOWN` (M8 fix). A DATA-only source (e.g. a
427
+ * long-lived `state(...)`) never emits `ERROR`/`COMPLETE`, so without
428
+ * the TEARDOWN arm a destroyed shared Node — plus this watcher
429
+ * subscription — would be pinned in the `inFlight` Map forever. Evicting
430
+ * on TEARDOWN bounds the entry's lifetime to the Node's own lifetime.
431
+ *
432
+ * DATA is NOT an eviction trigger — callers subscribing after the first
433
+ * DATA still receive the shared Node (and push-on-subscribe per the spec's
434
+ * cached-DATA contract). The Node stays shared while alive (the dedup
435
+ * contract); only its death (terminal or teardown) releases the entry.
427
436
  *
428
437
  * Use when downstream wants reactive subscription (not a one-shot Promise).
429
438
  *
@@ -4,7 +4,11 @@ import {
4
4
  pubsub,
5
5
  selector,
6
6
  verifiable
7
- } from "../../chunk-446I4EGD.js";
7
+ } from "../../chunk-J5TBZFBD.js";
8
+ import {
9
+ externalBundle,
10
+ externalProducer
11
+ } from "../../chunk-VLDRAMP7.js";
8
12
  import {
9
13
  createWatermarkController,
10
14
  toObservable
@@ -12,16 +16,12 @@ import {
12
16
  import {
13
17
  singleFromAny,
14
18
  singleNodeFromAny
15
- } from "../../chunk-IOJDYUA7.js";
19
+ } from "../../chunk-V46JWFGV.js";
16
20
  import {
17
21
  distill
18
- } from "../../chunk-OXD5LFQP.js";
19
- import "../../chunk-5GVURVIG.js";
22
+ } from "../../chunk-G7H6PN7P.js";
23
+ import "../../chunk-MMHGYX44.js";
20
24
  import "../../chunk-N6MNJNHB.js";
21
- import {
22
- externalBundle,
23
- externalProducer
24
- } from "../../chunk-VLDRAMP7.js";
25
25
  import "../../chunk-AZDQPQ3V.js";
26
26
  export {
27
27
  NativePubSubBackend,
@@ -389,6 +389,7 @@ __export(base_exports, {
389
389
  fromPrisma: () => fromPrisma,
390
390
  fromPrometheus: () => fromPrometheus,
391
391
  fromPulsar: () => fromPulsar,
392
+ fromPushNotification: () => fromPushNotification,
392
393
  fromRabbitMQ: () => fromRabbitMQ,
393
394
  fromRedisStream: () => fromRedisStream,
394
395
  fromSSE: () => fromSSE,
@@ -420,6 +421,7 @@ __export(base_exports, {
420
421
  parseSyslog: () => parseSyslog,
421
422
  pubsub: () => pubsub,
422
423
  reactiveCounter: () => reactiveCounter,
424
+ readonlyAuditLog: () => readonlyAuditLog,
423
425
  registerCursor: () => registerCursor,
424
426
  registerCursorMap: () => registerCursorMap,
425
427
  replay: () => replay,
@@ -598,8 +600,18 @@ function toArray(source, opts) {
598
600
  },
599
601
  {
600
602
  describeKind: "derived",
603
+ ...opts,
604
+ // Operator-required flags spread AFTER user `opts` so a caller
605
+ // cannot accidentally override them (QA F2 spread-order fix,
606
+ // DS-2.7.A `/qa` 2026-05-20 — matches the
607
+ // `reduce`/`scan`/`take`/`last` substrate pattern). Spec §2.7
608
+ // R2.7.1 (DS-2.7.A): Reduce-class shape — fn must fire on
609
+ // upstream COMPLETE to emit the accumulated array (or `[]` for an
610
+ // empty source) followed by its own `[[COMPLETE]]`. Required
611
+ // because `completeWhenDepsComplete: false` means auto-COMPLETE
612
+ // is OFF; without the opt-in `toArray(empty())` never completes.
601
613
  completeWhenDepsComplete: false,
602
- ...opts
614
+ terminalAsRealInput: true
603
615
  }
604
616
  );
605
617
  }
@@ -633,8 +645,8 @@ var shareReplay = replay;
633
645
  function isNodeLike(value) {
634
646
  return typeof value === "object" && value !== null && "cache" in value && typeof value.subscribe === "function";
635
647
  }
636
- function keepalive(node32) {
637
- node32.subscribe(() => void 0);
648
+ function keepalive(node33) {
649
+ node33.subscribe(() => void 0);
638
650
  }
639
651
  function mapFromSnapshot(snapshot) {
640
652
  if (snapshot instanceof Map) return snapshot;
@@ -1078,10 +1090,10 @@ function makeInterop(onSubscribe) {
1078
1090
  };
1079
1091
  return obs;
1080
1092
  }
1081
- function toObservable(node32, options) {
1093
+ function toObservable(node33, options) {
1082
1094
  if (options?.raw) {
1083
1095
  return makeInterop((observer) => {
1084
- return node32.subscribe((msgs) => {
1096
+ return node33.subscribe((msgs) => {
1085
1097
  if (observer.closed) return;
1086
1098
  observer.next?.(msgs);
1087
1099
  for (const m of msgs) {
@@ -1098,7 +1110,7 @@ function toObservable(node32, options) {
1098
1110
  });
1099
1111
  }
1100
1112
  return makeInterop((observer) => {
1101
- return node32.subscribe((msgs) => {
1113
+ return node33.subscribe((msgs) => {
1102
1114
  for (const m of msgs) {
1103
1115
  if (observer.closed) return;
1104
1116
  if (m[0] === import_core6.DATA) {
@@ -1502,18 +1514,19 @@ function singleNodeFromAny(factory, opts = {}) {
1502
1514
  const k = keyFn(key);
1503
1515
  const existing = inFlight.get(k);
1504
1516
  if (existing) return existing;
1505
- const node32 = (0, import_extra5.fromAny)(factory(key));
1506
- inFlight.set(k, node32);
1507
- const unsub = node32.subscribe((msgs) => {
1517
+ const node33 = (0, import_extra5.fromAny)(factory(key));
1518
+ inFlight.set(k, node33);
1519
+ let unsub;
1520
+ unsub = node33.subscribe((msgs) => {
1508
1521
  for (const m of msgs) {
1509
- if (m[0] === import_core11.ERROR || m[0] === import_core11.COMPLETE) {
1510
- if (inFlight.get(k) === node32) inFlight.delete(k);
1511
- unsub();
1522
+ if (m[0] === import_core11.ERROR || m[0] === import_core11.COMPLETE || m[0] === import_core11.TEARDOWN) {
1523
+ if (inFlight.get(k) === node33) inFlight.delete(k);
1524
+ unsub?.();
1512
1525
  return;
1513
1526
  }
1514
1527
  }
1515
1528
  });
1516
- return node32;
1529
+ return node33;
1517
1530
  };
1518
1531
  }
1519
1532
 
@@ -1565,7 +1578,12 @@ function verifiable(source, verifyFn, opts) {
1565
1578
  // src/base/io/checkpoint.ts
1566
1579
  var import_core13 = require("@graphrefly/pure-ts/core");
1567
1580
  function checkpointToS3(graph, client, bucket, opts) {
1568
- const { prefix = "checkpoints/", debounceMs = 500, compactEvery = 10, onError } = opts ?? {};
1581
+ const {
1582
+ prefix = "checkpoints/",
1583
+ debounceMs = 500,
1584
+ compactEvery = 10,
1585
+ onError = (err) => console.error(`checkpointToS3(${bucket}): checkpoint persistence failed`, err)
1586
+ } = opts ?? {};
1569
1587
  const tier = {
1570
1588
  name: `s3:${bucket}`,
1571
1589
  debounceMs,
@@ -1577,7 +1595,7 @@ function checkpointToS3(graph, client, bucket, opts) {
1577
1595
  try {
1578
1596
  body = JSON.stringify(record);
1579
1597
  } catch (err) {
1580
- onError?.(err);
1598
+ onError(err);
1581
1599
  return;
1582
1600
  }
1583
1601
  void client.putObject({
@@ -1585,13 +1603,13 @@ function checkpointToS3(graph, client, bucket, opts) {
1585
1603
  Key: s3Key,
1586
1604
  Body: body,
1587
1605
  ContentType: "application/json"
1588
- }).catch((err) => onError?.(err));
1606
+ }).catch((err) => onError(err));
1589
1607
  }
1590
1608
  // S3 tier is write-only here — one object per checkpoint timestamp,
1591
1609
  // no canonical "latest" key for load.
1592
1610
  };
1593
1611
  return graph.attachSnapshotStorage([{ snapshot: tier }], {
1594
- onError: (err) => onError?.(err)
1612
+ onError: (err) => onError(err)
1595
1613
  });
1596
1614
  }
1597
1615
  function checkpointToRedis(graph, client, opts) {
@@ -1599,7 +1617,7 @@ function checkpointToRedis(graph, client, opts) {
1599
1617
  prefix = "graphrefly:checkpoint:",
1600
1618
  debounceMs = 500,
1601
1619
  compactEvery = 10,
1602
- onError
1620
+ onError = (err) => console.error(`checkpointToRedis(${graph.name}): checkpoint persistence failed`, err)
1603
1621
  } = opts ?? {};
1604
1622
  const redisKey = `${prefix}${graph.name}`;
1605
1623
  const tier = {
@@ -1611,23 +1629,24 @@ function checkpointToRedis(graph, client, opts) {
1611
1629
  try {
1612
1630
  body = JSON.stringify(record);
1613
1631
  } catch (err) {
1614
- onError?.(err);
1632
+ onError(err);
1615
1633
  return;
1616
1634
  }
1617
- void client.set(redisKey, body).catch((err) => onError?.(err));
1635
+ void client.set(redisKey, body).catch((err) => onError(err));
1618
1636
  },
1619
1637
  async load() {
1620
1638
  const raw = await client.get(redisKey);
1621
1639
  if (raw == null) return void 0;
1622
1640
  try {
1623
1641
  return JSON.parse(raw);
1624
- } catch {
1642
+ } catch (err) {
1643
+ onError(err);
1625
1644
  return void 0;
1626
1645
  }
1627
1646
  }
1628
1647
  };
1629
1648
  return graph.attachSnapshotStorage([{ snapshot: tier }], {
1630
- onError: (err) => onError?.(err)
1649
+ onError: (err) => onError(err)
1631
1650
  });
1632
1651
  }
1633
1652
 
@@ -2093,7 +2112,21 @@ function reactiveSink(source, config) {
2093
2112
  }
2094
2113
  return run();
2095
2114
  };
2096
- const maxBuf = backpressure?.maxBuffer ?? Number.POSITIVE_INFINITY;
2115
+ let maxBuf = Number.POSITIVE_INFINITY;
2116
+ if (backpressure) {
2117
+ const mb = backpressure.maxBuffer;
2118
+ if (mb === void 0) {
2119
+ throw new RangeError(
2120
+ "reactiveSink: backpressure requires explicit maxBuffer (use Infinity to opt in to unbounded)"
2121
+ );
2122
+ }
2123
+ if (mb !== Number.POSITIVE_INFINITY && (!Number.isInteger(mb) || mb < 1)) {
2124
+ throw new RangeError(
2125
+ "reactiveSink: backpressure.maxBuffer must be a positive integer (or Infinity for unbounded)"
2126
+ );
2127
+ }
2128
+ maxBuf = mb;
2129
+ }
2097
2130
  const buffer = new BackpressureBuffer(maxBuf);
2098
2131
  let flushTimer;
2099
2132
  let disposed = false;
@@ -4559,13 +4592,7 @@ function toWebSocket(source, socket, opts) {
4559
4592
  return handle;
4560
4593
  }
4561
4594
  function fromWebSocketReconnect(factory, opts) {
4562
- const {
4563
- parse,
4564
- maxRetries,
4565
- backoff = "exponential",
4566
- closeOnTeardown = true,
4567
- ...rest
4568
- } = opts ?? {};
4595
+ const { parse, maxRetries, backoff = "exponential", closeOnTeardown = true, ...rest } = opts;
4569
4596
  return retry(
4570
4597
  () => fromWebSocket(factory(), {
4571
4598
  parse,
@@ -4620,6 +4647,26 @@ function createAuditLog(opts) {
4620
4647
  }
4621
4648
  return log;
4622
4649
  }
4650
+ function readonlyAuditLog(log) {
4651
+ return Object.freeze({
4652
+ get entries() {
4653
+ return log.entries;
4654
+ },
4655
+ get size() {
4656
+ return log.size;
4657
+ },
4658
+ get lastValue() {
4659
+ return log.lastValue;
4660
+ },
4661
+ get mutationLog() {
4662
+ return log.mutationLog;
4663
+ },
4664
+ at: log.at.bind(log),
4665
+ withLatest: log.withLatest.bind(log),
4666
+ view: log.view.bind(log),
4667
+ scan: log.scan.bind(log)
4668
+ });
4669
+ }
4623
4670
  function deepFreeze(value) {
4624
4671
  if (value === null || typeof value !== "object" || Object.isFrozen(value)) return value;
4625
4672
  for (const k of Object.keys(value)) {
@@ -5918,6 +5965,33 @@ function fromCron(expr, opts) {
5918
5965
  );
5919
5966
  }
5920
5967
 
5968
+ // src/base/sources/event/push.ts
5969
+ var import_core41 = require("@graphrefly/pure-ts/core");
5970
+ function sourceOpts5(opts) {
5971
+ return { describeKind: "producer", ...opts };
5972
+ }
5973
+ function fromPushNotification(register, opts) {
5974
+ if (typeof register !== "function") {
5975
+ throw new TypeError(
5976
+ "fromPushNotification: a (deliver) => unsubscribe registration function is required"
5977
+ );
5978
+ }
5979
+ return (0, import_core41.node)((_data, a) => {
5980
+ let done = false;
5981
+ const deliver = (payload) => {
5982
+ if (done) return;
5983
+ a.emit(payload);
5984
+ };
5985
+ const unsubscribe = register(deliver);
5986
+ return {
5987
+ onDeactivation: () => {
5988
+ done = true;
5989
+ if (typeof unsubscribe === "function") unsubscribe();
5990
+ }
5991
+ };
5992
+ }, sourceOpts5(opts));
5993
+ }
5994
+
5921
5995
  // src/base/utils/decay.ts
5922
5996
  var DEFAULT_DECAY_RATE = Math.LN2 / (7 * 86400);
5923
5997
  function decay(baseScore, ageSeconds, ratePerSecond, minScore = 0) {
@@ -5929,26 +6003,26 @@ function decay(baseScore, ageSeconds, ratePerSecond, minScore = 0) {
5929
6003
  }
5930
6004
 
5931
6005
  // src/base/worker/bridge.ts
5932
- var import_core42 = require("@graphrefly/pure-ts/core");
6006
+ var import_core43 = require("@graphrefly/pure-ts/core");
5933
6007
  var import_extra11 = require("@graphrefly/pure-ts/extra");
5934
6008
 
5935
6009
  // src/base/worker/protocol.ts
5936
- var import_core41 = require("@graphrefly/pure-ts/core");
6010
+ var import_core42 = require("@graphrefly/pure-ts/core");
5937
6011
  var signalToNameMap = /* @__PURE__ */ new Map([
5938
- [import_core41.INVALIDATE, "INVALIDATE"],
5939
- [import_core41.PAUSE, "PAUSE"],
5940
- [import_core41.RESUME, "RESUME"],
5941
- [import_core41.TEARDOWN, "TEARDOWN"],
5942
- [import_core41.COMPLETE, "COMPLETE"],
5943
- [import_core41.ERROR, "ERROR"]
6012
+ [import_core42.INVALIDATE, "INVALIDATE"],
6013
+ [import_core42.PAUSE, "PAUSE"],
6014
+ [import_core42.RESUME, "RESUME"],
6015
+ [import_core42.TEARDOWN, "TEARDOWN"],
6016
+ [import_core42.COMPLETE, "COMPLETE"],
6017
+ [import_core42.ERROR, "ERROR"]
5944
6018
  ]);
5945
6019
  var nameToSignalMap = /* @__PURE__ */ new Map([
5946
- ["INVALIDATE", import_core41.INVALIDATE],
5947
- ["PAUSE", import_core41.PAUSE],
5948
- ["RESUME", import_core41.RESUME],
5949
- ["TEARDOWN", import_core41.TEARDOWN],
5950
- ["COMPLETE", import_core41.COMPLETE],
5951
- ["ERROR", import_core41.ERROR]
6020
+ ["INVALIDATE", import_core42.INVALIDATE],
6021
+ ["PAUSE", import_core42.PAUSE],
6022
+ ["RESUME", import_core42.RESUME],
6023
+ ["TEARDOWN", import_core42.TEARDOWN],
6024
+ ["COMPLETE", import_core42.COMPLETE],
6025
+ ["ERROR", import_core42.ERROR]
5952
6026
  ]);
5953
6027
  function signalToName(s) {
5954
6028
  const known = signalToNameMap.get(s);
@@ -6060,24 +6134,24 @@ function workerBridge(target, opts) {
6060
6134
  const exposeEntries = Object.entries(opts.expose ?? {});
6061
6135
  const importNames = opts.import ?? [];
6062
6136
  const transferFns = opts.transfer ?? {};
6063
- const statusNode = (0, import_core42.node)([], {
6137
+ const statusNode = (0, import_core43.node)([], {
6064
6138
  initial: "connecting",
6065
6139
  name: `${bridgeName}::meta::status`
6066
6140
  });
6067
- const errorNode = (0, import_core42.node)([], {
6141
+ const errorNode = (0, import_core43.node)([], {
6068
6142
  initial: null,
6069
6143
  name: `${bridgeName}::meta::error`
6070
6144
  });
6071
6145
  const proxyNodes = /* @__PURE__ */ new Map();
6072
6146
  const lastSeenImportVersions = /* @__PURE__ */ new Map();
6073
6147
  for (const name of importNames) {
6074
- const proxy = (0, import_core42.node)([], { initial: void 0, name: `${bridgeName}::${name}` });
6148
+ const proxy = (0, import_core43.node)([], { initial: void 0, name: `${bridgeName}::${name}` });
6075
6149
  proxyNodes.set(name, proxy);
6076
6150
  }
6077
6151
  let effectUnsub;
6078
6152
  if (exposeEntries.length > 0) {
6079
6153
  const exposedNodes = exposeEntries.map(([, n]) => n);
6080
- const aggregated = (0, import_core42.node)(
6154
+ const aggregated = (0, import_core43.node)(
6081
6155
  exposedNodes,
6082
6156
  (data, a) => {
6083
6157
  const updates = {};
@@ -6099,7 +6173,7 @@ function workerBridge(target, opts) {
6099
6173
  // the same time).
6100
6174
  { name: `${bridgeName}::aggregated`, partial: true }
6101
6175
  );
6102
- const effectNode = (0, import_core42.node)(
6176
+ const effectNode = (0, import_core43.node)(
6103
6177
  [aggregated],
6104
6178
  (batchData, _actions, ctx) => {
6105
6179
  const batch0 = batchData[0];
@@ -6122,7 +6196,7 @@ function workerBridge(target, opts) {
6122
6196
  try {
6123
6197
  transport.post(msg, transferList.length > 0 ? transferList : void 0);
6124
6198
  } catch (err) {
6125
- errorNode.down([[import_core42.DATA, err instanceof Error ? err : new Error(String(err))]]);
6199
+ errorNode.down([[import_core43.DATA, err instanceof Error ? err : new Error(String(err))]]);
6126
6200
  }
6127
6201
  return void 0;
6128
6202
  },
@@ -6140,13 +6214,13 @@ function workerBridge(target, opts) {
6140
6214
  // The handshake deadline auto-cancels via the reactive race
6141
6215
  // (`statusNode → "connected"` wins) — no explicit clearTimeout.
6142
6216
  case "r": {
6143
- (0, import_core42.batch)(() => {
6217
+ (0, import_core43.batch)(() => {
6144
6218
  for (const [name, value] of Object.entries(msg.stores)) {
6145
6219
  const proxy = proxyNodes.get(name);
6146
- if (proxy) proxy.down([[import_core42.DATA, value]]);
6220
+ if (proxy) proxy.down([[import_core43.DATA, value]]);
6147
6221
  }
6148
6222
  });
6149
- statusNode.down([[import_core42.DATA, "connected"]]);
6223
+ statusNode.down([[import_core43.DATA, "connected"]]);
6150
6224
  const initValues = {};
6151
6225
  for (const [name, n] of exposeEntries) {
6152
6226
  initValues[name] = n.cache;
@@ -6157,12 +6231,12 @@ function workerBridge(target, opts) {
6157
6231
  // Single value update from worker
6158
6232
  case "v": {
6159
6233
  const proxy = proxyNodes.get(msg.s);
6160
- if (proxy) proxy.down([[import_core42.DATA, msg.d]]);
6234
+ if (proxy) proxy.down([[import_core43.DATA, msg.d]]);
6161
6235
  break;
6162
6236
  }
6163
6237
  // Batch value update from worker
6164
6238
  case "b": {
6165
- (0, import_core42.batch)(() => {
6239
+ (0, import_core43.batch)(() => {
6166
6240
  for (const [name, value] of Object.entries(msg.u)) {
6167
6241
  const incomingVersion = msg.v?.[name];
6168
6242
  if (incomingVersion != null) {
@@ -6171,7 +6245,7 @@ function workerBridge(target, opts) {
6171
6245
  lastSeenImportVersions.set(name, incomingVersion);
6172
6246
  }
6173
6247
  const proxy = proxyNodes.get(name);
6174
- if (proxy) proxy.down([[import_core42.DATA, value]]);
6248
+ if (proxy) proxy.down([[import_core43.DATA, value]]);
6175
6249
  }
6176
6250
  });
6177
6251
  break;
@@ -6179,7 +6253,7 @@ function workerBridge(target, opts) {
6179
6253
  // Error from worker node
6180
6254
  case "e": {
6181
6255
  const proxy = proxyNodes.get(msg.s);
6182
- if (proxy) proxy.down([[import_core42.ERROR, deserializeError(msg.err)]]);
6256
+ if (proxy) proxy.down([[import_core43.ERROR, deserializeError(msg.err)]]);
6183
6257
  break;
6184
6258
  }
6185
6259
  // Lifecycle signal from worker
@@ -6200,9 +6274,9 @@ function workerBridge(target, opts) {
6200
6274
  if (destroyed) return;
6201
6275
  for (const m of msgs) {
6202
6276
  const type = m[0];
6203
- if (type === import_core42.DATA) continue;
6204
- if (import_core42.defaultConfig.isLocalOnly(type)) continue;
6205
- if (type === import_core42.ERROR) {
6277
+ if (type === import_core43.DATA) continue;
6278
+ if (import_core43.defaultConfig.isLocalOnly(type)) continue;
6279
+ if (type === import_core43.ERROR) {
6206
6280
  transport.post({
6207
6281
  t: "e",
6208
6282
  s: name,
@@ -6232,8 +6306,8 @@ function workerBridge(target, opts) {
6232
6306
  );
6233
6307
  handshakeUnsub = race$.subscribe((msgs) => {
6234
6308
  for (const m of msgs) {
6235
- if (m[0] === import_core42.DATA && m[1] === "timeout") {
6236
- errorNode.down([[import_core42.DATA, new Error("Worker bridge handshake timeout")]]);
6309
+ if (m[0] === import_core43.DATA && m[1] === "timeout") {
6310
+ errorNode.down([[import_core43.DATA, new Error("Worker bridge handshake timeout")]]);
6237
6311
  destroy();
6238
6312
  }
6239
6313
  }
@@ -6246,13 +6320,13 @@ function workerBridge(target, opts) {
6246
6320
  transport.post({
6247
6321
  t: "s",
6248
6322
  s: "*",
6249
- sig: signalToName(import_core42.TEARDOWN)
6323
+ sig: signalToName(import_core43.TEARDOWN)
6250
6324
  });
6251
6325
  if (effectUnsub) effectUnsub();
6252
6326
  for (const unsub of exposeUnsubs) unsub();
6253
6327
  exposeUnsubs.length = 0;
6254
6328
  unlisten();
6255
- statusNode.down([[import_core42.DATA, "closed"]]);
6329
+ statusNode.down([[import_core43.DATA, "closed"]]);
6256
6330
  lastSeenImportVersions.clear();
6257
6331
  proxyNodes.clear();
6258
6332
  }
@@ -6267,7 +6341,7 @@ function workerBridge(target, opts) {
6267
6341
  }
6268
6342
 
6269
6343
  // src/base/worker/self.ts
6270
- var import_core43 = require("@graphrefly/pure-ts/core");
6344
+ var import_core44 = require("@graphrefly/pure-ts/core");
6271
6345
  function isTransport2(t) {
6272
6346
  return typeof t === "object" && t !== null && typeof t.post === "function" && typeof t.listen === "function";
6273
6347
  }
@@ -6279,7 +6353,7 @@ function workerSelf(target, opts) {
6279
6353
  const lastSeenImportVersions = /* @__PURE__ */ new Map();
6280
6354
  const importedObj = {};
6281
6355
  for (const name of importNames) {
6282
- const s = (0, import_core43.node)([], { initial: void 0, name: `worker::${name}` });
6356
+ const s = (0, import_core44.node)([], { initial: void 0, name: `worker::${name}` });
6283
6357
  proxyNodes.set(name, s);
6284
6358
  importedObj[name] = s;
6285
6359
  }
@@ -6289,7 +6363,7 @@ function workerSelf(target, opts) {
6289
6363
  let destroyed = false;
6290
6364
  if (exposeEntries.length > 0) {
6291
6365
  const nodes = exposeEntries.map(([, n]) => n);
6292
- const aggregated = (0, import_core43.node)(
6366
+ const aggregated = (0, import_core44.node)(
6293
6367
  nodes,
6294
6368
  (data, a) => {
6295
6369
  const updates = {};
@@ -6309,7 +6383,7 @@ function workerSelf(target, opts) {
6309
6383
  // any-dep-settles waves (deps deliver asynchronously).
6310
6384
  { name: "workerSelf::aggregated", partial: true }
6311
6385
  );
6312
- const effectNode = (0, import_core43.node)(
6386
+ const effectNode = (0, import_core44.node)(
6313
6387
  [aggregated],
6314
6388
  (batchData, _actions, ctx) => {
6315
6389
  const batch0 = batchData[0];
@@ -6347,9 +6421,9 @@ function workerSelf(target, opts) {
6347
6421
  if (destroyed) return;
6348
6422
  for (const m of msgs) {
6349
6423
  const type = m[0];
6350
- if (type === import_core43.DATA) continue;
6351
- if (import_core43.defaultConfig.isLocalOnly(type)) continue;
6352
- if (type === import_core43.ERROR) {
6424
+ if (type === import_core44.DATA) continue;
6425
+ if (import_core44.defaultConfig.isLocalOnly(type)) continue;
6426
+ if (type === import_core44.ERROR) {
6353
6427
  transport.post({
6354
6428
  t: "e",
6355
6429
  s: name,
@@ -6373,10 +6447,10 @@ function workerSelf(target, opts) {
6373
6447
  switch (msg.t) {
6374
6448
  // Init from main — set proxy node values
6375
6449
  case "i": {
6376
- (0, import_core43.batch)(() => {
6450
+ (0, import_core44.batch)(() => {
6377
6451
  for (const [name, value] of Object.entries(msg.stores)) {
6378
6452
  const proxy = proxyNodes.get(name);
6379
- if (proxy) proxy.down([[import_core43.DATA, value]]);
6453
+ if (proxy) proxy.down([[import_core44.DATA, value]]);
6380
6454
  }
6381
6455
  });
6382
6456
  break;
@@ -6384,12 +6458,12 @@ function workerSelf(target, opts) {
6384
6458
  // Single value update from main
6385
6459
  case "v": {
6386
6460
  const proxy = proxyNodes.get(msg.s);
6387
- if (proxy) proxy.down([[import_core43.DATA, msg.d]]);
6461
+ if (proxy) proxy.down([[import_core44.DATA, msg.d]]);
6388
6462
  break;
6389
6463
  }
6390
6464
  // Batch value update from main
6391
6465
  case "b": {
6392
- (0, import_core43.batch)(() => {
6466
+ (0, import_core44.batch)(() => {
6393
6467
  for (const [name, value] of Object.entries(msg.u)) {
6394
6468
  const incomingVersion = msg.v?.[name];
6395
6469
  if (incomingVersion != null) {
@@ -6398,7 +6472,7 @@ function workerSelf(target, opts) {
6398
6472
  lastSeenImportVersions.set(name, incomingVersion);
6399
6473
  }
6400
6474
  const proxy = proxyNodes.get(name);
6401
- if (proxy) proxy.down([[import_core43.DATA, value]]);
6475
+ if (proxy) proxy.down([[import_core44.DATA, value]]);
6402
6476
  }
6403
6477
  });
6404
6478
  break;
@@ -6406,14 +6480,14 @@ function workerSelf(target, opts) {
6406
6480
  // Error from main node
6407
6481
  case "e": {
6408
6482
  const proxy = proxyNodes.get(msg.s);
6409
- if (proxy) proxy.down([[import_core43.ERROR, deserializeError(msg.err)]]);
6483
+ if (proxy) proxy.down([[import_core44.ERROR, deserializeError(msg.err)]]);
6410
6484
  break;
6411
6485
  }
6412
6486
  // Lifecycle signal from main
6413
6487
  case "s": {
6414
6488
  const sig = nameToSignal(msg.sig);
6415
6489
  if (!sig) break;
6416
- if (sig === import_core43.TEARDOWN && msg.s === "*") {
6490
+ if (sig === import_core44.TEARDOWN && msg.s === "*") {
6417
6491
  destroy();
6418
6492
  return;
6419
6493
  }