@noy-db/hub 0.7.0-pre.15 → 0.7.0-pre.16

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 (225) hide show
  1. package/CHANGELOG.md +87 -0
  2. package/dist/{api-JPZT6BDD.js → api-TXFOVOXX.js} +6 -6
  3. package/dist/as/index.js +5 -5
  4. package/dist/at/index.js +4 -4
  5. package/dist/attestation/index.js +12 -12
  6. package/dist/{backup-AKWIMYWU.js → backup-IJTB4S4M.js} +6 -6
  7. package/dist/blobs/index.js +5 -5
  8. package/dist/broker/index.js +6 -6
  9. package/dist/cargo/index.js +18 -18
  10. package/dist/{chunk-5UKIZIO3.js → chunk-2577DKXB.js} +2 -2
  11. package/dist/{chunk-NJXX55QX.js → chunk-2C3AQB46.js} +4 -4
  12. package/dist/{chunk-EVKR67PQ.js → chunk-2N4GY74U.js} +4 -4
  13. package/dist/{chunk-WWNYSV7S.js → chunk-2Y4IMKA6.js} +3 -3
  14. package/dist/{chunk-3LK2XZCW.js → chunk-3RCJJBNR.js} +8 -8
  15. package/dist/{chunk-GM4IM7TC.js → chunk-453F654R.js} +2 -2
  16. package/dist/{chunk-JUBWUJY5.js → chunk-4GVM6QZA.js} +2 -2
  17. package/dist/{chunk-KCUIMITG.js → chunk-5VCRVKOZ.js} +2 -2
  18. package/dist/{chunk-NLOLF6LD.js → chunk-5WDXHNSW.js} +3 -3
  19. package/dist/{chunk-BMSOTHIA.js → chunk-6GMZ7HEE.js} +3 -3
  20. package/dist/{chunk-RDZZHYMV.js → chunk-6I2RQCET.js} +3 -3
  21. package/dist/chunk-6LMAVYOY.js +63 -0
  22. package/dist/chunk-6LMAVYOY.js.map +1 -0
  23. package/dist/{chunk-CIGAQBJR.js → chunk-77K4PG6P.js} +3 -3
  24. package/dist/{chunk-N4CHCXDL.js → chunk-7MG7SJT7.js} +1 -1
  25. package/dist/{chunk-N4CHCXDL.js.map → chunk-7MG7SJT7.js.map} +1 -1
  26. package/dist/{chunk-RGSTMLVO.js → chunk-7V4TP3AF.js} +3 -3
  27. package/dist/{chunk-WSJG5L5C.js → chunk-ANATMFIO.js} +3 -3
  28. package/dist/{chunk-DMJZBQ7F.js → chunk-AO42KJO6.js} +4 -4
  29. package/dist/{chunk-ZG4XLOKB.js → chunk-BM5TWITZ.js} +3 -3
  30. package/dist/{chunk-IPFE6MVM.js → chunk-BOET4NA4.js} +2 -2
  31. package/dist/{chunk-TGPST6FK.js → chunk-BSFNRLK2.js} +3 -3
  32. package/dist/{chunk-MGOXJIBV.js → chunk-CARABLSQ.js} +2 -2
  33. package/dist/{chunk-RJ7NN2UR.js → chunk-CHJBLCOG.js} +5 -5
  34. package/dist/{chunk-GHHUF2KL.js → chunk-CPWQB3N5.js} +4 -4
  35. package/dist/{chunk-Q4RWFV3G.js → chunk-ELNXJMGB.js} +4 -4
  36. package/dist/{chunk-MLO75SFJ.js → chunk-EQEYOJBM.js} +2 -2
  37. package/dist/{chunk-PFBL4M7E.js → chunk-EYBQEIUY.js} +2 -2
  38. package/dist/{chunk-AMODH7AU.js → chunk-FMZY5Q6L.js} +3 -3
  39. package/dist/{chunk-2HVILGVR.js → chunk-FXBIP2WD.js} +2 -2
  40. package/dist/{chunk-VNR2SNVJ.js → chunk-G56KBWFY.js} +5 -5
  41. package/dist/{chunk-QQ2YMQZU.js → chunk-GPEQUXHL.js} +3 -3
  42. package/dist/{chunk-WZW37ZHL.js → chunk-K6LHRFBL.js} +5 -5
  43. package/dist/{chunk-FYEZC4PX.js → chunk-K7NTTA6P.js} +2 -2
  44. package/dist/{chunk-YQWBEJCS.js → chunk-KG7TZKZG.js} +3 -3
  45. package/dist/{chunk-EWPRPP3M.js → chunk-KJIMGIWO.js} +4 -4
  46. package/dist/{chunk-THX6FEEC.js → chunk-KUJDV5QH.js} +3 -3
  47. package/dist/{chunk-FUJSIP4K.js → chunk-KUX3OB6D.js} +2 -2
  48. package/dist/{chunk-U7VPHXXO.js → chunk-L742JPKZ.js} +4 -4
  49. package/dist/{chunk-EKZ6VZYF.js → chunk-L7CIOOBW.js} +2 -2
  50. package/dist/{chunk-P3KOF624.js → chunk-LVS44C35.js} +6 -6
  51. package/dist/{chunk-XGDYGUEH.js → chunk-MUM7IANK.js} +2 -2
  52. package/dist/{chunk-ZXLZ62R5.js → chunk-MWAHERVR.js} +12 -3
  53. package/dist/chunk-MWAHERVR.js.map +1 -0
  54. package/dist/{chunk-FFBYRWDJ.js → chunk-NA2NIJZI.js} +2 -2
  55. package/dist/{chunk-KLPASWYY.js → chunk-NKHRDYOR.js} +3 -3
  56. package/dist/{chunk-VGXZT72I.js → chunk-PT43Y56J.js} +4 -4
  57. package/dist/{chunk-LHH6H43C.js → chunk-RRNRNANG.js} +6 -6
  58. package/dist/{chunk-BOBFL5TW.js → chunk-SPXXX5E4.js} +2 -2
  59. package/dist/{chunk-KTDGZPOZ.js → chunk-SPYWXKJN.js} +2 -2
  60. package/dist/{chunk-4RUFYGWG.js → chunk-SZJ3DLZA.js} +2 -2
  61. package/dist/{chunk-YPXNAP72.js → chunk-U4FOQDY4.js} +2 -2
  62. package/dist/{chunk-WL36WA3O.js → chunk-URDWKAQQ.js} +54 -54
  63. package/dist/{chunk-OMB2ZKIT.js → chunk-UXWB3FPF.js} +8 -8
  64. package/dist/{chunk-YINEDONN.js → chunk-VNZUVPUO.js} +10 -10
  65. package/dist/{chunk-BBWVXF57.js → chunk-VXGSWL6L.js} +6 -6
  66. package/dist/{chunk-XNIQ7DP2.js → chunk-X2DLENDQ.js} +3 -3
  67. package/dist/{chunk-B2KCRDJM.js → chunk-XTXOCYOJ.js} +4 -4
  68. package/dist/{chunk-MMOZQTXV.js → chunk-ZVO4QVPD.js} +3 -3
  69. package/dist/classified/index.js +3 -3
  70. package/dist/{classified-marker-OO65UYXN.js → classified-marker-LI2SF2E4.js} +3 -3
  71. package/dist/{collection-facade-VOWW732S.js → collection-facade-4GRREZ6C.js} +8 -8
  72. package/dist/consent/index.js +4 -4
  73. package/dist/cover/index.js +4 -4
  74. package/dist/custody/index.js +6 -6
  75. package/dist/{dead-filter-OMMVBAKZ.js → dead-filter-TSWZQRR5.js} +2 -2
  76. package/dist/{delegation-VRYMQRCF.js → delegation-OVIFFPG4.js} +4 -4
  77. package/dist/derivations/index.js +11 -11
  78. package/dist/{derive-HHBRFS2U.js → derive-6O5SWQKN.js} +4 -4
  79. package/dist/directory/index.js +5 -5
  80. package/dist/{dispatch-DC3LQJ3S.js → dispatch-SYKRVTYW.js} +45 -14
  81. package/dist/dispatch-SYKRVTYW.js.map +1 -0
  82. package/dist/{dispatch-GGFBWQU7.js → dispatch-WC6X2M6C.js} +5 -5
  83. package/dist/{enclave-VM2YQONI.js → enclave-KJOTOH7X.js} +4 -4
  84. package/dist/{executor-5XJNV5H5.js → executor-PUAO6AKJ.js} +9 -9
  85. package/dist/{export-accessible-2LOBM67T.js → export-accessible-72EQNBMR.js} +7 -7
  86. package/dist/{extract-partition-AZGSEMIF.js → extract-partition-PUYNU3UF.js} +10 -10
  87. package/dist/{fanout-sidecar-HJIVUPTD.js → fanout-sidecar-WUFXNYP4.js} +4 -4
  88. package/dist/forget/index.js +4 -4
  89. package/dist/history/index.js +7 -7
  90. package/dist/i18n/index.js +6 -6
  91. package/dist/index.js +50 -50
  92. package/dist/introspection/index.js +5 -5
  93. package/dist/{issue-RH4H733Z.js → issue-SIDORTSZ.js} +6 -6
  94. package/dist/kernel/types.d.ts +39 -0
  95. package/dist/{ledger-454SU3VE.js → ledger-F33ZVMTK.js} +6 -6
  96. package/dist/liberate-LCDPNAG2.js +24 -0
  97. package/dist/{link-set-67CAMUAL.js → link-set-FKNWAYKS.js} +5 -5
  98. package/dist/{managed-secret-NHRYG7CD.js → managed-secret-PQYKSR6T.js} +5 -5
  99. package/dist/materialized-views/index.js +9 -9
  100. package/dist/{noydb-F5CABCU4.js → noydb-RFEFYWE4.js} +29 -29
  101. package/dist/periods/index.js +6 -6
  102. package/dist/pod/index.js +32 -32
  103. package/dist/{pod-handle-S7AMCJIF.js → pod-handle-Q736KYON.js} +4 -4
  104. package/dist/policy/index.js +5 -5
  105. package/dist/port/to/index.d.ts +40 -0
  106. package/dist/portability/index.js +6 -6
  107. package/dist/{post-register-HIYY4Y5S.js → post-register-LNE2FE2A.js} +4 -4
  108. package/dist/{register-7OJWAWT5.js → register-I2DZXGAR.js} +10 -10
  109. package/dist/{registry-BOHIKFWG.js → registry-K734HBSO.js} +12 -12
  110. package/dist/{registry-5MVJGPXW.js → registry-VSSQPIGF.js} +4 -4
  111. package/dist/{request-withdrawal-P5EQATZ7.js → request-withdrawal-KFQHEZ25.js} +9 -9
  112. package/dist/{reveal-IMGQ2EE5.js → reveal-67RDQRIN.js} +3 -3
  113. package/dist/{revoke-POHP4GPB.js → revoke-DQDZAZZM.js} +6 -6
  114. package/dist/sealed-record/index.js +6 -6
  115. package/dist/search/index.js +1 -1
  116. package/dist/{seed-UYR6YG3V.js → seed-G42JYN56.js} +6 -6
  117. package/dist/sequence/index.js +4 -4
  118. package/dist/session/index.js +3 -3
  119. package/dist/{signer-5K3WDHOC.js → signer-WAMDZHEN.js} +5 -5
  120. package/dist/snapshots/index.js +5 -5
  121. package/dist/{stale-AU74OPUW.js → stale-DDL7WQEZ.js} +5 -5
  122. package/dist/{storage-AVJA5BTW.js → storage-FLR73HHF.js} +5 -5
  123. package/dist/{store-coordination-provider-RX2CGWXV.js → store-coordination-provider-MEQ2MJQG.js} +5 -5
  124. package/dist/sync/index.js +4 -4
  125. package/dist/team/index.js +8 -8
  126. package/dist/tiers/index.js +4 -4
  127. package/dist/to/index.js +1 -1
  128. package/dist/vault-head/index.js +3 -3
  129. package/dist/{walk-ERAJ5RHO.js → walk-3UQBRMDV.js} +6 -6
  130. package/dist/with-formula/derivations/trigger-match.d.ts +55 -0
  131. package/dist/with-formula/derivations/types.d.ts +33 -0
  132. package/dist/{withdraw-accessible-42D32Z7G.js → withdraw-accessible-EL5GXZBS.js} +8 -8
  133. package/package.json +3 -3
  134. package/dist/chunk-TPHAGLUH.js +0 -30
  135. package/dist/chunk-TPHAGLUH.js.map +0 -1
  136. package/dist/chunk-ZXLZ62R5.js.map +0 -1
  137. package/dist/dispatch-DC3LQJ3S.js.map +0 -1
  138. package/dist/liberate-AAZSP2BT.js +0 -24
  139. /package/dist/{api-JPZT6BDD.js.map → api-TXFOVOXX.js.map} +0 -0
  140. /package/dist/{backup-AKWIMYWU.js.map → backup-IJTB4S4M.js.map} +0 -0
  141. /package/dist/{chunk-5UKIZIO3.js.map → chunk-2577DKXB.js.map} +0 -0
  142. /package/dist/{chunk-NJXX55QX.js.map → chunk-2C3AQB46.js.map} +0 -0
  143. /package/dist/{chunk-EVKR67PQ.js.map → chunk-2N4GY74U.js.map} +0 -0
  144. /package/dist/{chunk-WWNYSV7S.js.map → chunk-2Y4IMKA6.js.map} +0 -0
  145. /package/dist/{chunk-3LK2XZCW.js.map → chunk-3RCJJBNR.js.map} +0 -0
  146. /package/dist/{chunk-GM4IM7TC.js.map → chunk-453F654R.js.map} +0 -0
  147. /package/dist/{chunk-JUBWUJY5.js.map → chunk-4GVM6QZA.js.map} +0 -0
  148. /package/dist/{chunk-KCUIMITG.js.map → chunk-5VCRVKOZ.js.map} +0 -0
  149. /package/dist/{chunk-NLOLF6LD.js.map → chunk-5WDXHNSW.js.map} +0 -0
  150. /package/dist/{chunk-BMSOTHIA.js.map → chunk-6GMZ7HEE.js.map} +0 -0
  151. /package/dist/{chunk-RDZZHYMV.js.map → chunk-6I2RQCET.js.map} +0 -0
  152. /package/dist/{chunk-CIGAQBJR.js.map → chunk-77K4PG6P.js.map} +0 -0
  153. /package/dist/{chunk-RGSTMLVO.js.map → chunk-7V4TP3AF.js.map} +0 -0
  154. /package/dist/{chunk-WSJG5L5C.js.map → chunk-ANATMFIO.js.map} +0 -0
  155. /package/dist/{chunk-DMJZBQ7F.js.map → chunk-AO42KJO6.js.map} +0 -0
  156. /package/dist/{chunk-ZG4XLOKB.js.map → chunk-BM5TWITZ.js.map} +0 -0
  157. /package/dist/{chunk-IPFE6MVM.js.map → chunk-BOET4NA4.js.map} +0 -0
  158. /package/dist/{chunk-TGPST6FK.js.map → chunk-BSFNRLK2.js.map} +0 -0
  159. /package/dist/{chunk-MGOXJIBV.js.map → chunk-CARABLSQ.js.map} +0 -0
  160. /package/dist/{chunk-RJ7NN2UR.js.map → chunk-CHJBLCOG.js.map} +0 -0
  161. /package/dist/{chunk-GHHUF2KL.js.map → chunk-CPWQB3N5.js.map} +0 -0
  162. /package/dist/{chunk-Q4RWFV3G.js.map → chunk-ELNXJMGB.js.map} +0 -0
  163. /package/dist/{chunk-MLO75SFJ.js.map → chunk-EQEYOJBM.js.map} +0 -0
  164. /package/dist/{chunk-PFBL4M7E.js.map → chunk-EYBQEIUY.js.map} +0 -0
  165. /package/dist/{chunk-AMODH7AU.js.map → chunk-FMZY5Q6L.js.map} +0 -0
  166. /package/dist/{chunk-2HVILGVR.js.map → chunk-FXBIP2WD.js.map} +0 -0
  167. /package/dist/{chunk-VNR2SNVJ.js.map → chunk-G56KBWFY.js.map} +0 -0
  168. /package/dist/{chunk-QQ2YMQZU.js.map → chunk-GPEQUXHL.js.map} +0 -0
  169. /package/dist/{chunk-WZW37ZHL.js.map → chunk-K6LHRFBL.js.map} +0 -0
  170. /package/dist/{chunk-FYEZC4PX.js.map → chunk-K7NTTA6P.js.map} +0 -0
  171. /package/dist/{chunk-YQWBEJCS.js.map → chunk-KG7TZKZG.js.map} +0 -0
  172. /package/dist/{chunk-EWPRPP3M.js.map → chunk-KJIMGIWO.js.map} +0 -0
  173. /package/dist/{chunk-THX6FEEC.js.map → chunk-KUJDV5QH.js.map} +0 -0
  174. /package/dist/{chunk-FUJSIP4K.js.map → chunk-KUX3OB6D.js.map} +0 -0
  175. /package/dist/{chunk-U7VPHXXO.js.map → chunk-L742JPKZ.js.map} +0 -0
  176. /package/dist/{chunk-EKZ6VZYF.js.map → chunk-L7CIOOBW.js.map} +0 -0
  177. /package/dist/{chunk-P3KOF624.js.map → chunk-LVS44C35.js.map} +0 -0
  178. /package/dist/{chunk-XGDYGUEH.js.map → chunk-MUM7IANK.js.map} +0 -0
  179. /package/dist/{chunk-FFBYRWDJ.js.map → chunk-NA2NIJZI.js.map} +0 -0
  180. /package/dist/{chunk-KLPASWYY.js.map → chunk-NKHRDYOR.js.map} +0 -0
  181. /package/dist/{chunk-VGXZT72I.js.map → chunk-PT43Y56J.js.map} +0 -0
  182. /package/dist/{chunk-LHH6H43C.js.map → chunk-RRNRNANG.js.map} +0 -0
  183. /package/dist/{chunk-BOBFL5TW.js.map → chunk-SPXXX5E4.js.map} +0 -0
  184. /package/dist/{chunk-KTDGZPOZ.js.map → chunk-SPYWXKJN.js.map} +0 -0
  185. /package/dist/{chunk-4RUFYGWG.js.map → chunk-SZJ3DLZA.js.map} +0 -0
  186. /package/dist/{chunk-YPXNAP72.js.map → chunk-U4FOQDY4.js.map} +0 -0
  187. /package/dist/{chunk-WL36WA3O.js.map → chunk-URDWKAQQ.js.map} +0 -0
  188. /package/dist/{chunk-OMB2ZKIT.js.map → chunk-UXWB3FPF.js.map} +0 -0
  189. /package/dist/{chunk-YINEDONN.js.map → chunk-VNZUVPUO.js.map} +0 -0
  190. /package/dist/{chunk-BBWVXF57.js.map → chunk-VXGSWL6L.js.map} +0 -0
  191. /package/dist/{chunk-XNIQ7DP2.js.map → chunk-X2DLENDQ.js.map} +0 -0
  192. /package/dist/{chunk-B2KCRDJM.js.map → chunk-XTXOCYOJ.js.map} +0 -0
  193. /package/dist/{chunk-MMOZQTXV.js.map → chunk-ZVO4QVPD.js.map} +0 -0
  194. /package/dist/{classified-marker-OO65UYXN.js.map → classified-marker-LI2SF2E4.js.map} +0 -0
  195. /package/dist/{collection-facade-VOWW732S.js.map → collection-facade-4GRREZ6C.js.map} +0 -0
  196. /package/dist/{dead-filter-OMMVBAKZ.js.map → dead-filter-TSWZQRR5.js.map} +0 -0
  197. /package/dist/{delegation-VRYMQRCF.js.map → delegation-OVIFFPG4.js.map} +0 -0
  198. /package/dist/{derive-HHBRFS2U.js.map → derive-6O5SWQKN.js.map} +0 -0
  199. /package/dist/{dispatch-GGFBWQU7.js.map → dispatch-WC6X2M6C.js.map} +0 -0
  200. /package/dist/{enclave-VM2YQONI.js.map → enclave-KJOTOH7X.js.map} +0 -0
  201. /package/dist/{executor-5XJNV5H5.js.map → executor-PUAO6AKJ.js.map} +0 -0
  202. /package/dist/{export-accessible-2LOBM67T.js.map → export-accessible-72EQNBMR.js.map} +0 -0
  203. /package/dist/{extract-partition-AZGSEMIF.js.map → extract-partition-PUYNU3UF.js.map} +0 -0
  204. /package/dist/{fanout-sidecar-HJIVUPTD.js.map → fanout-sidecar-WUFXNYP4.js.map} +0 -0
  205. /package/dist/{issue-RH4H733Z.js.map → issue-SIDORTSZ.js.map} +0 -0
  206. /package/dist/{ledger-454SU3VE.js.map → ledger-F33ZVMTK.js.map} +0 -0
  207. /package/dist/{liberate-AAZSP2BT.js.map → liberate-LCDPNAG2.js.map} +0 -0
  208. /package/dist/{link-set-67CAMUAL.js.map → link-set-FKNWAYKS.js.map} +0 -0
  209. /package/dist/{managed-secret-NHRYG7CD.js.map → managed-secret-PQYKSR6T.js.map} +0 -0
  210. /package/dist/{noydb-F5CABCU4.js.map → noydb-RFEFYWE4.js.map} +0 -0
  211. /package/dist/{pod-handle-S7AMCJIF.js.map → pod-handle-Q736KYON.js.map} +0 -0
  212. /package/dist/{post-register-HIYY4Y5S.js.map → post-register-LNE2FE2A.js.map} +0 -0
  213. /package/dist/{register-7OJWAWT5.js.map → register-I2DZXGAR.js.map} +0 -0
  214. /package/dist/{registry-5MVJGPXW.js.map → registry-K734HBSO.js.map} +0 -0
  215. /package/dist/{registry-BOHIKFWG.js.map → registry-VSSQPIGF.js.map} +0 -0
  216. /package/dist/{request-withdrawal-P5EQATZ7.js.map → request-withdrawal-KFQHEZ25.js.map} +0 -0
  217. /package/dist/{reveal-IMGQ2EE5.js.map → reveal-67RDQRIN.js.map} +0 -0
  218. /package/dist/{revoke-POHP4GPB.js.map → revoke-DQDZAZZM.js.map} +0 -0
  219. /package/dist/{seed-UYR6YG3V.js.map → seed-G42JYN56.js.map} +0 -0
  220. /package/dist/{signer-5K3WDHOC.js.map → signer-WAMDZHEN.js.map} +0 -0
  221. /package/dist/{stale-AU74OPUW.js.map → stale-DDL7WQEZ.js.map} +0 -0
  222. /package/dist/{storage-AVJA5BTW.js.map → storage-FLR73HHF.js.map} +0 -0
  223. /package/dist/{store-coordination-provider-RX2CGWXV.js.map → store-coordination-provider-MEQ2MJQG.js.map} +0 -0
  224. /package/dist/{walk-ERAJ5RHO.js.map → walk-3UQBRMDV.js.map} +0 -0
  225. /package/dist/{withdraw-accessible-42D32Z7G.js.map → withdraw-accessible-EL5GXZBS.js.map} +0 -0
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  buildRecordAad,
3
3
  openEnvelopeJson
4
- } from "./chunk-CIGAQBJR.js";
4
+ } from "./chunk-77K4PG6P.js";
5
5
  import {
6
6
  buildRecordEnvelope
7
- } from "./chunk-4RUFYGWG.js";
7
+ } from "./chunk-SZJ3DLZA.js";
8
8
  import {
9
9
  encrypt,
10
10
  hmacSha256Hex,
@@ -149,4 +149,4 @@ export {
149
149
  coerceSubjectId,
150
150
  readDottedPath
151
151
  };
152
- //# sourceMappingURL=chunk-RGSTMLVO.js.map
152
+ //# sourceMappingURL=chunk-7V4TP3AF.js.map
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  buildRecordAad,
3
3
  openEnvelopeJson
4
- } from "./chunk-CIGAQBJR.js";
4
+ } from "./chunk-77K4PG6P.js";
5
5
  import {
6
6
  buildRecordEnvelope
7
- } from "./chunk-4RUFYGWG.js";
7
+ } from "./chunk-SZJ3DLZA.js";
8
8
  import {
9
9
  encrypt
10
10
  } from "./chunk-SL3JAAKN.js";
@@ -55,4 +55,4 @@ export {
55
55
  loadSigner,
56
56
  loadOrCreateSigner
57
57
  };
58
- //# sourceMappingURL=chunk-WSJG5L5C.js.map
58
+ //# sourceMappingURL=chunk-ANATMFIO.js.map
@@ -1,16 +1,16 @@
1
1
  import {
2
2
  BLOB_CHUNKS_COLLECTION,
3
3
  BLOB_INDEX_COLLECTION
4
- } from "./chunk-ZG4XLOKB.js";
4
+ } from "./chunk-BM5TWITZ.js";
5
5
  import {
6
6
  installViaBinder
7
7
  } from "./chunk-UXVWEX5L.js";
8
8
  import {
9
9
  buildRecordAad
10
- } from "./chunk-CIGAQBJR.js";
10
+ } from "./chunk-77K4PG6P.js";
11
11
  import {
12
12
  buildRecordEnvelope
13
- } from "./chunk-4RUFYGWG.js";
13
+ } from "./chunk-SZJ3DLZA.js";
14
14
  import {
15
15
  encrypt
16
16
  } from "./chunk-SL3JAAKN.js";
@@ -438,4 +438,4 @@ export {
438
438
  BLOB_EVICTION_AUDIT_COLLECTION,
439
439
  runCompaction
440
440
  };
441
- //# sourceMappingURL=chunk-DMJZBQ7F.js.map
441
+ //# sourceMappingURL=chunk-AO42KJO6.js.map
@@ -10,11 +10,11 @@ import {
10
10
  buildRecordAad,
11
11
  openEnvelopeJson,
12
12
  writeEnvelopeBody
13
- } from "./chunk-CIGAQBJR.js";
13
+ } from "./chunk-77K4PG6P.js";
14
14
  import {
15
15
  buildRecordEnvelope,
16
16
  buildSealedRecordEnvelope
17
- } from "./chunk-4RUFYGWG.js";
17
+ } from "./chunk-SZJ3DLZA.js";
18
18
  import {
19
19
  base64ToBuffer,
20
20
  bufferToBase64,
@@ -3137,4 +3137,4 @@ export {
3137
3137
  DEFAULT_CHUNK_SIZE,
3138
3138
  BlobSet
3139
3139
  };
3140
- //# sourceMappingURL=chunk-ZG4XLOKB.js.map
3140
+ //# sourceMappingURL=chunk-BM5TWITZ.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  envelopeBodyForHash
3
- } from "./chunk-CIGAQBJR.js";
3
+ } from "./chunk-77K4PG6P.js";
4
4
  import {
5
5
  sha256Hex
6
6
  } from "./chunk-SL3JAAKN.js";
@@ -67,4 +67,4 @@ export {
67
67
  parseIndex,
68
68
  envelopePayloadHash
69
69
  };
70
- //# sourceMappingURL=chunk-IPFE6MVM.js.map
70
+ //# sourceMappingURL=chunk-BOET4NA4.js.map
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  buildAccessibleBundle,
3
3
  resolveAccessibleCollections
4
- } from "./chunk-EKZ6VZYF.js";
4
+ } from "./chunk-L7CIOOBW.js";
5
5
  import {
6
6
  buildRecordEnvelope
7
- } from "./chunk-4RUFYGWG.js";
7
+ } from "./chunk-SZJ3DLZA.js";
8
8
  import {
9
9
  sha256Hex
10
10
  } from "./chunk-SL3JAAKN.js";
@@ -117,4 +117,4 @@ export {
117
117
  freezeAndDeleteClosure,
118
118
  withdrawAccessibleData
119
119
  };
120
- //# sourceMappingURL=chunk-TGPST6FK.js.map
120
+ //# sourceMappingURL=chunk-BSFNRLK2.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  matchesReferencingValue
3
- } from "./chunk-YPXNAP72.js";
3
+ } from "./chunk-U4FOQDY4.js";
4
4
  import {
5
5
  PeriodClosedError
6
6
  } from "./chunk-7O3Y4PPD.js";
@@ -173,4 +173,4 @@ export {
173
173
  forgetDerivedFanout,
174
174
  selfWriteFieldEqual
175
175
  };
176
- //# sourceMappingURL=chunk-MGOXJIBV.js.map
176
+ //# sourceMappingURL=chunk-CARABLSQ.js.map
@@ -1,19 +1,19 @@
1
1
  import {
2
2
  freezeSnapshotOnly
3
- } from "./chunk-TGPST6FK.js";
3
+ } from "./chunk-BSFNRLK2.js";
4
4
  import {
5
5
  resolveManagedSecret
6
- } from "./chunk-JUBWUJY5.js";
6
+ } from "./chunk-4GVM6QZA.js";
7
7
  import {
8
8
  assertRosterTagValid,
9
9
  createOwnerKeyring,
10
10
  mintRosterTag,
11
11
  nextRosterEpoch,
12
12
  requireRosterKey
13
- } from "./chunk-VNR2SNVJ.js";
13
+ } from "./chunk-G56KBWFY.js";
14
14
  import {
15
15
  buildRecordEnvelope
16
- } from "./chunk-4RUFYGWG.js";
16
+ } from "./chunk-SZJ3DLZA.js";
17
17
  import {
18
18
  wrapKey
19
19
  } from "./chunk-SL3JAAKN.js";
@@ -137,4 +137,4 @@ export {
137
137
  isDeedVault,
138
138
  liberateVault
139
139
  };
140
- //# sourceMappingURL=chunk-RJ7NN2UR.js.map
140
+ //# sourceMappingURL=chunk-CHJBLCOG.js.map
@@ -10,12 +10,12 @@ import {
10
10
  } from "./chunk-FAHMLERK.js";
11
11
  import {
12
12
  envelopeBodySize
13
- } from "./chunk-CIGAQBJR.js";
13
+ } from "./chunk-77K4PG6P.js";
14
14
  import {
15
15
  buildRecordEnvelope,
16
16
  isDeleteMarker,
17
17
  isTombstoneShape
18
- } from "./chunk-4RUFYGWG.js";
18
+ } from "./chunk-SZJ3DLZA.js";
19
19
  import {
20
20
  decrypt,
21
21
  derivePresenceKey,
@@ -23,7 +23,7 @@ import {
23
23
  } from "./chunk-SL3JAAKN.js";
24
24
  import {
25
25
  NOYDB_SYNC_VERSION
26
- } from "./chunk-N4CHCXDL.js";
26
+ } from "./chunk-7MG7SJT7.js";
27
27
  import {
28
28
  ValidationError,
29
29
  isConflictError
@@ -1213,4 +1213,4 @@ export {
1213
1213
  SyncEngine,
1214
1214
  SyncTransaction
1215
1215
  };
1216
- //# sourceMappingURL=chunk-GHHUF2KL.js.map
1216
+ //# sourceMappingURL=chunk-CPWQB3N5.js.map
@@ -2,14 +2,14 @@ import {
2
2
  ATTESTATIONS_COLLECTION,
3
3
  REVOKED_RECORD_ID,
4
4
  loadOrCreateSigner
5
- } from "./chunk-WSJG5L5C.js";
5
+ } from "./chunk-ANATMFIO.js";
6
6
  import {
7
7
  buildRecordAad,
8
8
  openEnvelopeJson
9
- } from "./chunk-CIGAQBJR.js";
9
+ } from "./chunk-77K4PG6P.js";
10
10
  import {
11
11
  buildRecordEnvelope
12
- } from "./chunk-4RUFYGWG.js";
12
+ } from "./chunk-SZJ3DLZA.js";
13
13
  import {
14
14
  encrypt
15
15
  } from "./chunk-SL3JAAKN.js";
@@ -81,4 +81,4 @@ export {
81
81
  getRevokedDocIdsCore,
82
82
  publishRevocationListCore
83
83
  };
84
- //# sourceMappingURL=chunk-Q4RWFV3G.js.map
84
+ //# sourceMappingURL=chunk-ELNXJMGB.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  buildRecordEnvelope
3
- } from "./chunk-4RUFYGWG.js";
3
+ } from "./chunk-SZJ3DLZA.js";
4
4
  import {
5
5
  ValidationError
6
6
  } from "./chunk-7O3Y4PPD.js";
@@ -230,4 +230,4 @@ export {
230
230
  resolveLocale,
231
231
  pickLocale
232
232
  };
233
- //# sourceMappingURL=chunk-MLO75SFJ.js.map
233
+ //# sourceMappingURL=chunk-EQEYOJBM.js.map
@@ -10,7 +10,7 @@ import {
10
10
  verifyPrompt,
11
11
  verifyRoster,
12
12
  verifyTypedEcho
13
- } from "./chunk-VNR2SNVJ.js";
13
+ } from "./chunk-G56KBWFY.js";
14
14
  import {
15
15
  NoAccessError,
16
16
  NoydbError,
@@ -122,4 +122,4 @@ export {
122
122
  MemoryDeviceSeal,
123
123
  withTeam
124
124
  };
125
- //# sourceMappingURL=chunk-PFBL4M7E.js.map
125
+ //# sourceMappingURL=chunk-EYBQEIUY.js.map
@@ -3,10 +3,10 @@ import {
3
3
  } from "./chunk-5D2ALSM5.js";
4
4
  import {
5
5
  RecordCodec
6
- } from "./chunk-CIGAQBJR.js";
6
+ } from "./chunk-77K4PG6P.js";
7
7
 
8
8
  // src/with-formula/materialized-views/stale.ts
9
- var loadMVExecutor = lazy(() => import("./executor-5XJNV5H5.js"));
9
+ var loadMVExecutor = lazy(() => import("./executor-PUAO6AKJ.js"));
10
10
  var _staleByRegistry = /* @__PURE__ */ new WeakMap();
11
11
  function markMVStale(registry, mvName) {
12
12
  let set = _staleByRegistry.get(registry);
@@ -134,4 +134,4 @@ export {
134
134
  clearMVStale,
135
135
  clearMVStaleFully
136
136
  };
137
- //# sourceMappingURL=chunk-AMODH7AU.js.map
137
+ //# sourceMappingURL=chunk-FMZY5Q6L.js.map
@@ -201,7 +201,7 @@ var engineCtx = (ctx) => ({
201
201
  function withClassified() {
202
202
  return {
203
203
  async reveal(ctx, id, field) {
204
- const { revealSealedField } = await import("./reveal-IMGQ2EE5.js");
204
+ const { revealSealedField } = await import("./reveal-67RDQRIN.js");
205
205
  const value = await revealSealedField({
206
206
  collection: ctx.collection,
207
207
  encrypted: ctx.encrypted,
@@ -244,4 +244,4 @@ export {
244
244
  classified,
245
245
  withClassified
246
246
  };
247
- //# sourceMappingURL=chunk-2HVILGVR.js.map
247
+ //# sourceMappingURL=chunk-FXBIP2WD.js.map
@@ -5,7 +5,7 @@ import {
5
5
  readDirectoryConfig,
6
6
  readUserVisibility,
7
7
  saveUserEnvelope
8
- } from "./chunk-YQWBEJCS.js";
8
+ } from "./chunk-KG7TZKZG.js";
9
9
  import {
10
10
  parseDekKey
11
11
  } from "./chunk-JMGDHKQF.js";
@@ -13,10 +13,10 @@ import {
13
13
  envelopeOpensUnderAny,
14
14
  rekeyBlobSet,
15
15
  rekeyEnvelopeIfNeeded
16
- } from "./chunk-CIGAQBJR.js";
16
+ } from "./chunk-77K4PG6P.js";
17
17
  import {
18
18
  buildRecordEnvelope
19
- } from "./chunk-4RUFYGWG.js";
19
+ } from "./chunk-SZJ3DLZA.js";
20
20
  import {
21
21
  base64ToBuffer,
22
22
  bufferToBase64,
@@ -34,7 +34,7 @@ import {
34
34
  } from "./chunk-SL3JAAKN.js";
35
35
  import {
36
36
  NOYDB_KEYRING_VERSION
37
- } from "./chunk-N4CHCXDL.js";
37
+ } from "./chunk-7MG7SJT7.js";
38
38
  import {
39
39
  BLOB_ADDRESS_KEY_ID,
40
40
  DirectoryDisabledError,
@@ -1440,4 +1440,4 @@ export {
1440
1440
  hasImportCapability,
1441
1441
  evaluateImportCapability
1442
1442
  };
1443
- //# sourceMappingURL=chunk-VNR2SNVJ.js.map
1443
+ //# sourceMappingURL=chunk-G56KBWFY.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  grant,
3
3
  revoke
4
- } from "./chunk-VNR2SNVJ.js";
4
+ } from "./chunk-G56KBWFY.js";
5
5
  import {
6
6
  CustodyNotEnabledError
7
7
  } from "./chunk-7O3Y4PPD.js";
@@ -16,7 +16,7 @@ function withCustody() {
16
16
  return host._revokeCustodianImpl(revoke, vault, options, factors);
17
17
  },
18
18
  async liberate(vault, opts) {
19
- const { liberateVault } = await import("./liberate-AAZSP2BT.js");
19
+ const { liberateVault } = await import("./liberate-LCDPNAG2.js");
20
20
  return liberateVault(vault, opts);
21
21
  }
22
22
  };
@@ -74,4 +74,4 @@ export {
74
74
  withCustody,
75
75
  CustodyApi
76
76
  };
77
- //# sourceMappingURL=chunk-QQ2YMQZU.js.map
77
+ //# sourceMappingURL=chunk-GPEQUXHL.js.map
@@ -7,24 +7,24 @@ import {
7
7
  deriveSchemaManifest,
8
8
  loadSchemaManifestEntry,
9
9
  saveSchemaManifest
10
- } from "./chunk-BBWVXF57.js";
10
+ } from "./chunk-VXGSWL6L.js";
11
11
  import {
12
12
  MANIFEST_COLLECTION
13
13
  } from "./chunk-EPFF7LOX.js";
14
14
  import {
15
15
  loadFence,
16
16
  saveFence
17
- } from "./chunk-GM4IM7TC.js";
17
+ } from "./chunk-453F654R.js";
18
18
  import {
19
19
  derivePersistedSchema
20
20
  } from "./chunk-REDOOY2Q.js";
21
21
  import {
22
22
  loadPersistedSchemaEntry,
23
23
  savePersistedSchema
24
- } from "./chunk-WWNYSV7S.js";
24
+ } from "./chunk-2Y4IMKA6.js";
25
25
  import {
26
26
  envelopePayloadHash
27
- } from "./chunk-IPFE6MVM.js";
27
+ } from "./chunk-BOET4NA4.js";
28
28
  import {
29
29
  ManifestConflictError,
30
30
  isConflictError
@@ -257,4 +257,4 @@ export {
257
257
  persistClassifiedMarker,
258
258
  persistSatelliteMarker
259
259
  };
260
- //# sourceMappingURL=chunk-WZW37ZHL.js.map
260
+ //# sourceMappingURL=chunk-K6LHRFBL.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  LookupHandle
3
- } from "./chunk-RDZZHYMV.js";
3
+ } from "./chunk-6I2RQCET.js";
4
4
 
5
5
  // src/via/lookup/active.ts
6
6
  function withLookup() {
@@ -33,4 +33,4 @@ function withLookup() {
33
33
  export {
34
34
  withLookup
35
35
  };
36
- //# sourceMappingURL=chunk-FYEZC4PX.js.map
36
+ //# sourceMappingURL=chunk-K7NTTA6P.js.map
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  buildRecordAad,
3
3
  openEnvelopeJson
4
- } from "./chunk-CIGAQBJR.js";
4
+ } from "./chunk-77K4PG6P.js";
5
5
  import {
6
6
  buildRecordEnvelope
7
- } from "./chunk-4RUFYGWG.js";
7
+ } from "./chunk-SZJ3DLZA.js";
8
8
  import {
9
9
  encrypt
10
10
  } from "./chunk-SL3JAAKN.js";
@@ -142,4 +142,4 @@ export {
142
142
  deleteUserEnvelope,
143
143
  listUserEnvelopeIds
144
144
  };
145
- //# sourceMappingURL=chunk-YQWBEJCS.js.map
145
+ //# sourceMappingURL=chunk-KG7TZKZG.js.map
@@ -9,12 +9,12 @@ import {
9
9
  buildRecordAad,
10
10
  recordAadFor,
11
11
  rewrapBodyToDek
12
- } from "./chunk-CIGAQBJR.js";
12
+ } from "./chunk-77K4PG6P.js";
13
13
  import {
14
14
  buildRecordEnvelope,
15
15
  isDeleteMarker,
16
16
  isTombstoneShape
17
- } from "./chunk-4RUFYGWG.js";
17
+ } from "./chunk-SZJ3DLZA.js";
18
18
  import {
19
19
  decrypt,
20
20
  encrypt,
@@ -22,7 +22,7 @@ import {
22
22
  } from "./chunk-SL3JAAKN.js";
23
23
  import {
24
24
  NOYDB_FORMAT_VERSION
25
- } from "./chunk-N4CHCXDL.js";
25
+ } from "./chunk-7MG7SJT7.js";
26
26
  import {
27
27
  PersistedIndexCompensationError,
28
28
  TierDemoteDeniedError,
@@ -435,4 +435,4 @@ export {
435
435
  demote,
436
436
  classifySealedShred
437
437
  };
438
- //# sourceMappingURL=chunk-EWPRPP3M.js.map
438
+ //# sourceMappingURL=chunk-KJIMGIWO.js.map
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  getHistory,
3
3
  historyIdentity
4
- } from "./chunk-XNIQ7DP2.js";
4
+ } from "./chunk-X2DLENDQ.js";
5
5
  import {
6
6
  liveRecordIsElevated
7
7
  } from "./chunk-JMGDHKQF.js";
8
8
  import {
9
9
  openEnvelopeJson
10
- } from "./chunk-CIGAQBJR.js";
10
+ } from "./chunk-77K4PG6P.js";
11
11
  import {
12
12
  ReadOnlyAtInstantError
13
13
  } from "./chunk-7O3Y4PPD.js";
@@ -208,4 +208,4 @@ export {
208
208
  VaultInstant,
209
209
  CollectionInstant
210
210
  };
211
- //# sourceMappingURL=chunk-THX6FEEC.js.map
211
+ //# sourceMappingURL=chunk-KUJDV5QH.js.map
@@ -9,7 +9,7 @@ import {
9
9
  } from "./chunk-REDOOY2Q.js";
10
10
  import {
11
11
  loadPersistedSchema
12
- } from "./chunk-WWNYSV7S.js";
12
+ } from "./chunk-2Y4IMKA6.js";
13
13
 
14
14
  // src/with-shape/introspection/walk.ts
15
15
  var INTERNAL_PREFIX = "_";
@@ -240,4 +240,4 @@ function summariseAggregateOp(value) {
240
240
  export {
241
241
  dumpVaultSchema
242
242
  };
243
- //# sourceMappingURL=chunk-FUJSIP4K.js.map
243
+ //# sourceMappingURL=chunk-KUX3OB6D.js.map
@@ -7,14 +7,14 @@ import {
7
7
  hashEntry,
8
8
  paddedIndex,
9
9
  sha256Hex
10
- } from "./chunk-IPFE6MVM.js";
10
+ } from "./chunk-BOET4NA4.js";
11
11
  import {
12
12
  buildRecordAad,
13
13
  openEnvelopeJson
14
- } from "./chunk-CIGAQBJR.js";
14
+ } from "./chunk-77K4PG6P.js";
15
15
  import {
16
16
  buildRecordEnvelope
17
- } from "./chunk-4RUFYGWG.js";
17
+ } from "./chunk-SZJ3DLZA.js";
18
18
  import {
19
19
  encrypt
20
20
  } from "./chunk-SL3JAAKN.js";
@@ -699,4 +699,4 @@ export {
699
699
  applyPatch,
700
700
  LedgerStore
701
701
  };
702
- //# sourceMappingURL=chunk-U7VPHXXO.js.map
702
+ //# sourceMappingURL=chunk-L742JPKZ.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  writePod
3
- } from "./chunk-NLOLF6LD.js";
3
+ } from "./chunk-5WDXHNSW.js";
4
4
 
5
5
  // src/with-audit/portability/export-accessible.ts
6
6
  function resolveAccessibleCollections(keyring, scope, writableOnly = false) {
@@ -42,4 +42,4 @@ export {
42
42
  buildAccessibleBundle,
43
43
  exportAccessibleData
44
44
  };
45
- //# sourceMappingURL=chunk-EKZ6VZYF.js.map
45
+ //# sourceMappingURL=chunk-L7CIOOBW.js.map
@@ -1,22 +1,22 @@
1
1
  import {
2
2
  createNoydb
3
- } from "./chunk-WL36WA3O.js";
3
+ } from "./chunk-URDWKAQQ.js";
4
4
  import {
5
5
  deriveSchemaManifest
6
- } from "./chunk-BBWVXF57.js";
6
+ } from "./chunk-VXGSWL6L.js";
7
7
  import {
8
8
  loadFence
9
- } from "./chunk-GM4IM7TC.js";
9
+ } from "./chunk-453F654R.js";
10
10
  import {
11
11
  readPod,
12
12
  readPodRedirect,
13
13
  signRecord,
14
14
  verifyPodHeader,
15
15
  verifyRecord
16
- } from "./chunk-NLOLF6LD.js";
16
+ } from "./chunk-5WDXHNSW.js";
17
17
  import {
18
18
  loadKeyring
19
- } from "./chunk-VNR2SNVJ.js";
19
+ } from "./chunk-G56KBWFY.js";
20
20
  import {
21
21
  ConflictError,
22
22
  MigrationRequiredError,
@@ -286,4 +286,4 @@ export {
286
286
  followRedirects,
287
287
  open
288
288
  };
289
- //# sourceMappingURL=chunk-P3KOF624.js.map
289
+ //# sourceMappingURL=chunk-LVS44C35.js.map
@@ -4,7 +4,7 @@ import {
4
4
  persistUserVisibility,
5
5
  readUserVisibility,
6
6
  saveUserEnvelope
7
- } from "./chunk-YQWBEJCS.js";
7
+ } from "./chunk-KG7TZKZG.js";
8
8
  import {
9
9
  PolicyDeniedError
10
10
  } from "./chunk-7O3Y4PPD.js";
@@ -379,4 +379,4 @@ export {
379
379
  UserApi,
380
380
  createUserApi
381
381
  };
382
- //# sourceMappingURL=chunk-XGDYGUEH.js.map
382
+ //# sourceMappingURL=chunk-MUM7IANK.js.map
@@ -1,11 +1,12 @@
1
1
  import {
2
+ hopCollections,
2
3
  normalizeTriggerBy
3
- } from "./chunk-TPHAGLUH.js";
4
+ } from "./chunk-6LMAVYOY.js";
4
5
  import {
5
6
  ViaGraph,
6
7
  matchTargetFieldNames,
7
8
  schemaFieldKeys
8
- } from "./chunk-NJXX55QX.js";
9
+ } from "./chunk-2C3AQB46.js";
9
10
  import {
10
11
  sha256Hex
11
12
  } from "./chunk-SL3JAAKN.js";
@@ -63,6 +64,14 @@ var DerivationRegistry = class {
63
64
  if (fromExtra) fromExtra.push(reg);
64
65
  else this._bySource.set(extra, [reg]);
65
66
  }
67
+ for (const t of triggers) {
68
+ for (const hop of hopCollections(t.match)) {
69
+ const fromHop = this._bySource.get(hop);
70
+ if (fromHop) {
71
+ if (!fromHop.includes(reg)) fromHop.push(reg);
72
+ } else this._bySource.set(hop, [reg]);
73
+ }
74
+ }
66
75
  for (const t of triggers) {
67
76
  const fromTrigger = this._bySource.get(t.collection);
68
77
  if (fromTrigger) fromTrigger.push(reg);
@@ -235,4 +244,4 @@ var DerivationRegistry = class {
235
244
  export {
236
245
  DerivationRegistry
237
246
  };
238
- //# sourceMappingURL=chunk-ZXLZ62R5.js.map
247
+ //# sourceMappingURL=chunk-MWAHERVR.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/with-formula/derivations/strategy-hash.ts","../src/with-formula/derivations/registry.ts"],"sourcesContent":["/**\n * Deterministic hash of a derivation strategy's \"shape\": source\n * collection, declared sibling sources, output keys, derive function\n * source. Used to detect\n * strategy drift: a record whose `_derivedFrom.strategyHash` doesn't\n * match the current strategy is considered stale.\n *\n * Web Crypto SHA-256 — no extra deps.\n */\nimport { sha256Hex } from '../../kernel/enclave/index.js'\n\nexport async function computeStrategyHash(\n source: string,\n outputKeys: readonly string[],\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n derive: (...args: any[]) => any,\n sources?: ReadonlyArray<string>,\n): Promise<string> {\n const canonical = JSON.stringify({\n source,\n outputs: [...outputKeys].sort(),\n derive: derive.toString(),\n // Declared sibling sources — adding/removing a trigger\n // collection invalidates cached derived records. Omitted when empty\n // so strategies without siblings keep their existing hash.\n ...(sources?.length ? { sources: [...sources].sort() } : {}),\n })\n const bytes = new TextEncoder().encode(canonical)\n return sha256Hex(bytes)\n}\n","import { matchTargetFieldNames } from '../../kernel/collection-config.js'\nimport { DerivationCycleError, DuplicateBehaviorNameError, ValidationError } from '../../kernel/errors.js'\nimport { ViaGraph, type FieldRef, type EdgeKind, type Grain } from '../../kernel/via/graph.js'\nimport { schemaFieldKeys } from '../../with-shape/introspection/describe.js'\nimport { computeStrategyHash } from './strategy-hash.js'\nimport { hopCollections, normalizeTriggerBy, type NormalizedTrigger } from './trigger-match.js'\nimport type { DerivationSpec } from './types.js'\n\n/**\n * Whole-record artifact-grain field marker (#638 Task 2). A derivation's\n * `derive()`/a rollup's `compute()` reads the WHOLE source record — there is\n * no single declared field to point at — so a trigger/output collection is\n * modelled as one artifact node per collection (`kernel/via/graph.ts`'s\n * \"Artifact-grain targets... modelled as a field node whose field is the\n * artifact key\" convention). MUST match `materialized-views/registry.ts`'s\n * and `vault.ts`'s overlay-edge marker so cross-registry edges (a derivation\n * feeding into / out of an MV or overlay collection) resolve to the SAME\n * graph node.\n */\nconst WHOLE_RECORD = '*'\n\n/** Strip this registry's `.${WHOLE_RECORD}` artifact suffix off a graph cycle\n * path entry, recovering the bare collection name — preserves the exact\n * pre-#638 `DerivationCycleError` message shape (behavior lock) for a pure\n * record-shape derivation cycle. A rollup's real-field target (not suffixed\n * `.${WHOLE_RECORD}`) is left untouched. */\nfunction stripArtifactSuffix(displayId: string): string {\n const suffix = `.${WHOLE_RECORD}`\n return displayId.endsWith(suffix) ? displayId.slice(0, -suffix.length) : displayId\n}\n\ninterface RegisteredStrategy {\n // Type-erased to allow the registry to hold heterogeneous strategies.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n spec: DerivationSpec<any, any>\n strategyHash: string\n readonly triggers: ReadonlyArray<NormalizedTrigger>\n}\n\n/**\n * Vault-internal registry of derivation strategies. Owned by `Vault`;\n * not exported.\n *\n * @internal\n */\nexport class DerivationRegistry {\n private readonly _bySource = new Map<string, RegisteredStrategy[]>()\n private readonly _byOutput = new Map<string, RegisteredStrategy[]>()\n private readonly _byName = new Map<string, RegisteredStrategy>()\n\n /**\n * Register a derivation strategy. If `spec.name` is given and already\n * registered by another derivation in this vault, throws\n * {@link DuplicateBehaviorNameError} before indexing.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n async register(spec: DerivationSpec<any, any>): Promise<void> {\n if (spec.name !== undefined && this._byName.has(spec.name)) {\n throw new DuplicateBehaviorNameError(spec.name, 'derivation')\n }\n\n const outputKeys = Object.keys(spec.outputs)\n const strategyHash = await computeStrategyHash(spec.source, outputKeys, spec.derive, spec.sources)\n const triggers = normalizeTriggerBy(spec.triggerBy)\n const reg: RegisteredStrategy = { spec, strategyHash, triggers }\n\n if (spec.name !== undefined) this._byName.set(spec.name, reg)\n\n const fromSource = this._bySource.get(spec.source)\n if (fromSource) fromSource.push(reg)\n else this._bySource.set(spec.source, [reg])\n\n // Declared sibling sources index the SAME `reg` under each\n // extra collection so `strategiesForSource(extra)` returns it and a\n // sibling write re-fires the derivation. Sibling keys also enter\n // `_bySource`, so `validate()`'s cycle DFS walks them automatically.\n for (const extra of spec.sources ?? []) {\n const fromExtra = this._bySource.get(extra)\n if (fromExtra) fromExtra.push(reg)\n else this._bySource.set(extra, [reg])\n }\n\n // FK triggers index the SAME `reg` under each parent collection so\n // a parent write re-fires the derivation (fanned out to matching source\n // records in `dispatchDerivations`). Like sources[], these keys enter\n // `_bySource` so the cycle DFS walks the trigger→output edge.\n // #1277 — the INTERMEDIATE of a declared hop is indexed too, so a write\n // that re-points it re-fires the derivation. Without this the hop's whole\n // correctness argument fails: nothing is written to the trigger or source\n // collection when an intermediate moves, so no other path can notice, and\n // every source it used to address is stranded silently. Entering `_bySource`\n // also puts the hop edge into `validate()`'s cycle DFS, which would\n // otherwise be blind to it.\n for (const t of triggers) {\n for (const hop of hopCollections(t.match)) {\n const fromHop = this._bySource.get(hop)\n if (fromHop) { if (!fromHop.includes(reg)) fromHop.push(reg) }\n else this._bySource.set(hop, [reg])\n }\n }\n for (const t of triggers) {\n const fromTrigger = this._bySource.get(t.collection)\n if (fromTrigger) fromTrigger.push(reg)\n else this._bySource.set(t.collection, [reg])\n }\n\n // Rollup: a write to the child `from` collection recomputes\n // the parent (= spec.source = into) at id child[key]. Index under `from`\n // so a child write fires it; spec.source (into) is already indexed above,\n // so a parent write also recomputes its own aggregate (covers the\n // parent-created-after-children case). The from→into edge enters the cycle\n // DFS automatically.\n if (spec.rollup) {\n const fromRollup = this._bySource.get(spec.rollup.from)\n if (fromRollup) fromRollup.push(reg)\n else this._bySource.set(spec.rollup.from, [reg])\n }\n\n for (const key of outputKeys) {\n const output = spec.outputs[key]\n if (!output) continue\n const outputCollection = output.collection\n const arr = this._byOutput.get(outputCollection)\n if (arr) arr.push(reg)\n else this._byOutput.set(outputCollection, [reg])\n }\n }\n\n strategiesForSource(source: string): ReadonlyArray<RegisteredStrategy> {\n return this._bySource.get(source) ?? []\n }\n\n strategiesProducingOutput(collection: string): ReadonlyArray<RegisteredStrategy> {\n return this._byOutput.get(collection) ?? []\n }\n\n /**\n * The #1253-pattern typo guard for match fields (#1249): a misspelt\n * `to`/`from` silently matches nothing forever, so validate against the\n * collection's enumerable field set at the earliest point it exists.\n * `schemaFieldKeys(schema) === undefined` (TS-generic collection,\n * unreadable validator) is DELIBERATELY silent — those fields are real\n * and unenumerable. `configKeys` folds in the collection's other\n * non-schema field declarations (fieldMeta/moneyFields/dictKeyFields/\n * refs/computed); `denormExempt` is derived here from this registry's\n * own strategies rather than taken as a parameter — a field this\n * collection's own derivations write via `denorm` is never a typo.\n */\n validateFieldsFor(\n collectionName: string,\n schema: unknown,\n configKeys: ReadonlyArray<string>,\n viaSources: {\n readonly computed?: Readonly<Record<string, unknown>> | undefined\n readonly viaFields?: Readonly<Record<string, unknown>> | undefined\n } | undefined = undefined,\n ): void {\n const targets = matchTargetFieldNames(viaSources ?? {})\n const virtual = new Set(targets.virtual)\n const shapeKeys = schemaFieldKeys(schema)\n // The two checks have DIFFERENT preconditions, which is why one loop runs\n // both rather than an early return covering both. The typo check needs a\n // readable field list and must stay silent without one — a false \"unknown\n // field\" on a TS-generic collection would be worse than no check. The\n // virtual check needs nothing but the declaration in hand: \"declared, and\n // never stored\" is provable from the declaration alone (#1266).\n if (shapeKeys === undefined && virtual.size === 0) return\n const keys = shapeKeys === undefined ? undefined\n : new Set([...shapeKeys, ...configKeys, ...targets.declared])\n const denormExempt = new Set<string>()\n const regs = new Set([...this._bySource.values()].flat())\n for (const reg of regs) {\n if (reg.spec.source !== collectionName) continue\n for (const out of Object.values(reg.spec.outputs) as Array<{ collection?: string; denorm?: readonly string[] }>) {\n if (out.collection === collectionName) for (const d of out.denorm ?? []) denormExempt.add(d)\n }\n }\n const unknown = (f: string): boolean =>\n keys !== undefined && !keys.has(f) && !denormExempt.has(f)\n for (const reg of regs) {\n const name = reg.spec.name ?? reg.spec.source\n for (const t of reg.triggers) {\n for (const p of t.match) {\n // `to` reads the SOURCE record; `from` reads the WRITTEN record.\n // Both are the stored shape, so both refuse a virtual target.\n if (reg.spec.source === collectionName) {\n if (virtual.has(p.to)) throw new ValidationError(this._virtualMatchMessage(name, collectionName, p.to, 'to'))\n if (unknown(p.to)) {\n throw new ValidationError(\n `derivation \"${name}\": triggerBy match names source field \"${p.to}\", which \"${collectionName}\" does not declare — a typo here silently matches nothing forever`)\n }\n }\n if (t.collection === collectionName && p.from !== 'id') {\n if (virtual.has(p.from)) throw new ValidationError(this._virtualMatchMessage(name, collectionName, p.from, 'from'))\n if (unknown(p.from)) {\n throw new ValidationError(\n `derivation \"${name}\": triggerBy match reads \"${p.from}\" from written \"${collectionName}\" records, which that collection does not declare — a typo here silently matches nothing forever`)\n }\n }\n }\n }\n }\n }\n\n /** #1266 — one message shape for both match sides; see {@link matchTargetFieldNames}. */\n private _virtualMatchMessage(name: string, collectionName: string, field: string, side: 'to' | 'from'): string {\n const where = side === 'to'\n ? `names source field \"${field}\", which \"${collectionName}\"`\n : `reads \"${field}\" from written \"${collectionName}\" records, which that collection`\n return `derivation \"${name}\": triggerBy match ${where} declares as a VIRTUAL computed field — virtual fields are evaluated on read and never stored, so the matcher would read every candidate record and match nothing, forever. Declare it as \\`mode: 'materialized'\\` (stored, indexable) or match on a stored field.`\n }\n\n /**\n * All registered strategies as a flat, deduplicated array.\n * Each strategy is indexed once per source (not once per output key),\n * so iterating `_bySource.values()` naturally yields each strategy\n * exactly once per source — deduplication is handled by flattening\n * the per-source arrays and collecting into a Set by identity.\n *\n * Used by `dumpSchema()` / `describeDerivations()` in the introspection\n * walker to populate the derivations map.\n */\n all(): ReadonlyArray<RegisteredStrategy> {\n const seen = new Set<RegisteredStrategy>()\n for (const strategies of this._bySource.values()) {\n for (const s of strategies) seen.add(s)\n }\n return [...seen]\n }\n\n /**\n * Graph edges for #638 Task 2: one `'derivation'`/`'record'` edge per\n * (non-self-write) output key — target = the output collection (a\n * `WHOLE_RECORD` artifact node), sources = every collection that can\n * trigger this strategy (`source`, `sources[]`, `triggerBy[].collection`,\n * and — for a rollup — `rollup.from`), mirroring EXACTLY the trigger keys\n * `register()` indexes under `_bySource`. The self-write reverse-denorm\n * output (`output.collection === source` with `denorm` declared) is\n * skipped — the SAME condition the old local DFS used; it is not a cycle\n * (see the comment `validate()` used to carry, now on this skip).\n * Rollups ADDITIONALLY get a dedicated `'rollup'`/`'aggregate'` edge\n * targeting the real `rollup.field` on the parent (`source`) — the\n * self-write output above only covers the cycle-DFS skip, not\n * dispatch/taint (Tasks 3/4/6), which need the real field.\n */\n edges(): ReadonlyArray<{ readonly target: FieldRef; readonly sources: readonly FieldRef[]; readonly kind: EdgeKind; readonly grain: Grain }> {\n const out: Array<{ target: FieldRef; sources: FieldRef[]; kind: EdgeKind; grain: Grain }> = []\n for (const reg of this.all()) {\n const spec = reg.spec\n const triggerCollections = [\n spec.source,\n ...(spec.sources ?? []),\n ...(spec.triggerBy ?? []).map((t) => t.collection),\n ...(spec.rollup ? [spec.rollup.from] : []),\n ]\n const sources: FieldRef[] = triggerCollections.map((c) => ({ collection: c, field: WHOLE_RECORD }))\n for (const key of Object.keys(spec.outputs)) {\n const output = spec.outputs[key]\n if (!output) continue\n if (output.shape === 'record' && output.collection === spec.source && output.denorm !== undefined) continue\n out.push({ target: { collection: output.collection, field: WHOLE_RECORD }, sources, kind: 'derivation', grain: 'record' })\n }\n if (spec.rollup) {\n out.push({\n target: { collection: spec.source, field: spec.rollup.field },\n sources: [{ collection: spec.rollup.from, field: WHOLE_RECORD }],\n kind: 'rollup',\n grain: 'aggregate',\n })\n }\n }\n return out\n }\n\n /**\n * Cycle detection, delegated to `ViaGraph.assertAcyclic()` (#638 Task 2 —\n * retires the local DFS). Call after all `register()` calls complete (i.e.\n * at vault open). Throws `DerivationCycleError` on the first cycle found —\n * SAME class/timing as before; the message/path is byte-identical to the\n * pre-#638 shape for a pure record-shape derivation cycle (the\n * `WHOLE_RECORD` artifact suffix is stripped back to a bare collection\n * name before re-throwing).\n *\n * `graph` is the caller's shared per-vault graph, ALREADY carrying this\n * registry's `edges()` (the caller registers them — see `Vault._initDerivations`)\n * — omit it (e.g. this registry's own unit tests) to validate this\n * registry's edges in isolation against a throwaway graph.\n */\n validate(graph?: ViaGraph): void {\n const g = graph ?? new ViaGraph()\n if (!graph) {\n for (const edge of this.edges()) g.registerDerived(edge.target, edge.sources, edge.kind, edge.grain)\n }\n try {\n g.assertAcyclic()\n } catch (e) {\n if (e instanceof DerivationCycleError) throw new DerivationCycleError(e.path.map(stripArtifactSuffix))\n throw e\n }\n }\n}\n"],"mappings":"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","names":[]}