@noy-db/hub 0.7.0-pre.10 → 0.7.0-pre.12

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 (360) hide show
  1. package/CHANGELOG.md +89 -0
  2. package/README.md +3 -3
  3. package/dist/api-UE2XQKDN.js +20 -0
  4. package/dist/as/index.js +11 -10
  5. package/dist/as/index.js.map +1 -1
  6. package/dist/at/index.js +6 -6
  7. package/dist/attestation/index.js +16 -16
  8. package/dist/{backup-QZQEP5RO.js → backup-R6A4VZRX.js} +12 -12
  9. package/dist/blobs/index.js +11 -11
  10. package/dist/broker/index.js +10 -10
  11. package/dist/by/index.js +2 -2
  12. package/dist/cargo/index.js +27 -27
  13. package/dist/{chunk-AHIIBDNH.js → chunk-2Z47NMFK.js} +6 -6
  14. package/dist/{chunk-2DGBRE4K.js → chunk-4OZNXTO4.js} +2 -2
  15. package/dist/{chunk-FZWAGG5T.js → chunk-5FUULQ6F.js} +6 -6
  16. package/dist/{chunk-P7KJME6C.js → chunk-6YXCPL4T.js} +2 -2
  17. package/dist/{chunk-XJP66QEN.js → chunk-7BE7ZDVQ.js} +380 -2
  18. package/dist/chunk-7BE7ZDVQ.js.map +1 -0
  19. package/dist/{chunk-LAI7ENPW.js → chunk-7MG2LHO5.js} +3 -3
  20. package/dist/{chunk-NUXTUGAD.js → chunk-7NTBVFGD.js} +10 -10
  21. package/dist/{chunk-SW4TOSJL.js → chunk-7O3Y4PPD.js} +1 -1
  22. package/dist/chunk-7O3Y4PPD.js.map +1 -0
  23. package/dist/{chunk-MU74BYOD.js → chunk-ANSIZYEG.js} +3 -3
  24. package/dist/{chunk-2MQ2D5OZ.js → chunk-B2ZSGYSF.js} +4 -4
  25. package/dist/{chunk-5W5CEHLA.js → chunk-BBWVXF57.js} +4 -4
  26. package/dist/{chunk-SWFIXQF5.js → chunk-BERJ4AWW.js} +5 -5
  27. package/dist/{chunk-Q2OAAREU.js → chunk-BMSOTHIA.js} +5 -5
  28. package/dist/{chunk-XGXVPCYW.js → chunk-BOWNCWZT.js} +3 -3
  29. package/dist/{chunk-65ZYRK7O.js → chunk-BUE2D7PX.js} +26 -3
  30. package/dist/chunk-BUE2D7PX.js.map +1 -0
  31. package/dist/{chunk-UTFY6W6X.js → chunk-BZ3534YM.js} +2 -2
  32. package/dist/{chunk-DOPZWTMJ.js → chunk-CIGAQBJR.js} +6 -6
  33. package/dist/{chunk-3GIA3HJ2.js → chunk-DGOZ4UZD.js} +2 -2
  34. package/dist/{chunk-7XT7KZTN.js → chunk-DJ3LNNZQ.js} +8 -8
  35. package/dist/{chunk-IS5LFHV2.js → chunk-DMJZBQ7F.js} +6 -6
  36. package/dist/{chunk-MENI33ZV.js → chunk-E3EBMC4G.js} +3 -3
  37. package/dist/{chunk-T66OY2U5.js → chunk-E5OHKSBD.js} +6 -6
  38. package/dist/{chunk-LUVGSKXE.js → chunk-EVKR67PQ.js} +5 -5
  39. package/dist/{chunk-Q2ZN5DWZ.js → chunk-FAHMLERK.js} +2 -2
  40. package/dist/{chunk-FN26SFGH.js → chunk-FYEZC4PX.js} +2 -2
  41. package/dist/{chunk-OLUTCM23.js → chunk-GHHUF2KL.js} +5 -5
  42. package/dist/{chunk-DNMTN46H.js → chunk-GY4WYNNG.js} +2 -2
  43. package/dist/{chunk-OQDHIAR2.js → chunk-H7XCIM3Z.js} +61 -8
  44. package/dist/chunk-H7XCIM3Z.js.map +1 -0
  45. package/dist/{chunk-IAHDSFFA.js → chunk-HN4FNA4X.js} +10 -10
  46. package/dist/{chunk-JRWLUWDM.js → chunk-IPFE6MVM.js} +3 -3
  47. package/dist/{chunk-PV7XXAXK.js → chunk-JBDFMYKQ.js} +2 -2
  48. package/dist/{chunk-3SWP2FYA.js → chunk-JJR2JIN4.js} +8 -8
  49. package/dist/{chunk-IZTU6RKH.js → chunk-JMGDHKQF.js} +2 -2
  50. package/dist/{chunk-P2RJAVMR.js → chunk-KCUIMITG.js} +3 -3
  51. package/dist/chunk-KL7AS3HV.js +84 -0
  52. package/dist/chunk-KL7AS3HV.js.map +1 -0
  53. package/dist/{chunk-MOQ6OGKS.js → chunk-KLPASWYY.js} +3 -3
  54. package/dist/{chunk-JILOSL4O.js → chunk-KTDGZPOZ.js} +2 -2
  55. package/dist/{chunk-ZB2K3FV7.js → chunk-KTFRCC5C.js} +2 -2
  56. package/dist/{chunk-7PC3DRG7.js → chunk-LHH6H43C.js} +6 -6
  57. package/dist/{chunk-QOHGWFAW.js → chunk-LWBCUYZW.js} +2 -2
  58. package/dist/{chunk-NMDMSHBF.js → chunk-MLO75SFJ.js} +2 -2
  59. package/dist/{chunk-H5GVPOB4.js → chunk-MMOZQTXV.js} +4 -4
  60. package/dist/{chunk-JFSUYGNE.js → chunk-MVMXZYXT.js} +2 -2
  61. package/dist/{chunk-FKQCC4C5.js → chunk-NQKIUNW5.js} +2 -2
  62. package/dist/{chunk-IRHIA3AL.js → chunk-PFBL4M7E.js} +3 -3
  63. package/dist/{chunk-RCONOOVF.js → chunk-PKJ43CMD.js} +5 -5
  64. package/dist/{chunk-UL7TLJ54.js → chunk-PQKG5AHH.js} +3 -3
  65. package/dist/{chunk-MTTPHBIE.js → chunk-Q2PU57HC.js} +2 -2
  66. package/dist/{chunk-FPN5D4JX.js → chunk-Q4RWFV3G.js} +5 -5
  67. package/dist/{chunk-FLRLZ4XZ.js → chunk-Q7HZX3IF.js} +2 -2
  68. package/dist/{chunk-5EC7X5QA.js → chunk-QHW35ZON.js} +4 -4
  69. package/dist/{chunk-75WNTBZL.js → chunk-QIBVIOXO.js} +3 -3
  70. package/dist/{chunk-KQIDBIZL.js → chunk-QIZPZMUI.js} +2 -2
  71. package/dist/{chunk-TQGT5BZE.js → chunk-RDZZHYMV.js} +3 -3
  72. package/dist/{chunk-HOIWW2LV.js → chunk-RGSTMLVO.js} +3 -3
  73. package/dist/{chunk-KZTPL7NL.js → chunk-RMF67KCG.js} +2 -2
  74. package/dist/{chunk-OEJ4R52I.js → chunk-RMS3NEA3.js} +2 -2
  75. package/dist/{chunk-5NKHCJU5.js → chunk-RTYJRFQO.js} +6 -6
  76. package/dist/chunk-RXLYKVTF.js +17 -0
  77. package/dist/chunk-RXLYKVTF.js.map +1 -0
  78. package/dist/{chunk-XKA6UH5V.js → chunk-SFAWCTEM.js} +2 -2
  79. package/dist/{chunk-FYT3DXPN.js → chunk-SKGMN35F.js} +2 -2
  80. package/dist/{chunk-USKHHOIV.js → chunk-SL3JAAKN.js} +2 -2
  81. package/dist/{chunk-FRIVOR5N.js → chunk-SWVNZQVR.js} +4 -4
  82. package/dist/chunk-TFMM5DBB.js +20 -0
  83. package/dist/chunk-TFMM5DBB.js.map +1 -0
  84. package/dist/{chunk-O3SNM66K.js → chunk-TFR7DSOV.js} +2 -2
  85. package/dist/{chunk-X6YRP5EC.js → chunk-THX6FEEC.js} +5 -5
  86. package/dist/{chunk-RPX2H2OL.js → chunk-TO3EQ7HF.js} +3 -3
  87. package/dist/chunk-TPHAGLUH.js +30 -0
  88. package/dist/chunk-TPHAGLUH.js.map +1 -0
  89. package/dist/{chunk-DIVY2CJZ.js → chunk-TRGTKX5E.js} +3 -3
  90. package/dist/{chunk-JY4U6CYV.js → chunk-TUFM4UZP.js} +2 -2
  91. package/dist/{chunk-OKCQNMO6.js → chunk-U7VPHXXO.js} +5 -5
  92. package/dist/{chunk-DZPMKY3J.js → chunk-UGTBXF5U.js} +3 -3
  93. package/dist/{chunk-VT4DTCK5.js → chunk-URHRIAV6.js} +2 -2
  94. package/dist/{chunk-YHIAWECL.js → chunk-UXVWEX5L.js} +2 -2
  95. package/dist/{chunk-PCIBCL26.js → chunk-VGICZPVE.js} +7 -5
  96. package/dist/{chunk-PCIBCL26.js.map → chunk-VGICZPVE.js.map} +1 -1
  97. package/dist/{chunk-XJTGBHK6.js → chunk-VNR2SNVJ.js} +6 -6
  98. package/dist/{chunk-GHADG5QZ.js → chunk-VTFVLCUH.js} +2 -2
  99. package/dist/{chunk-U3RMWOXY.js → chunk-VXANTWBJ.js} +3 -3
  100. package/dist/{chunk-KHKKD62N.js → chunk-VYYM3MEN.js} +2 -16
  101. package/dist/chunk-VYYM3MEN.js.map +1 -0
  102. package/dist/{chunk-QJLOWGOU.js → chunk-WQF3QABE.js} +5 -5
  103. package/dist/{chunk-GKOJR53Y.js → chunk-WSJG5L5C.js} +4 -4
  104. package/dist/{chunk-I5LSKXT6.js → chunk-WWNYSV7S.js} +3 -3
  105. package/dist/{chunk-357ECVLE.js → chunk-XGDYGUEH.js} +3 -3
  106. package/dist/{chunk-2E2LT37H.js → chunk-XLMEZIAJ.js} +2 -2
  107. package/dist/{chunk-KKZPQLDH.js → chunk-XMF3GKUR.js} +125 -465
  108. package/dist/chunk-XMF3GKUR.js.map +1 -0
  109. package/dist/{chunk-TAJZ7GXO.js → chunk-XNIQ7DP2.js} +2 -2
  110. package/dist/{chunk-Z277MC2O.js → chunk-Y4MJQ2UG.js} +4 -4
  111. package/dist/{chunk-OXZSMX2H.js → chunk-YCXICMOY.js} +5 -5
  112. package/dist/{chunk-MV2OEK3K.js → chunk-YQWBEJCS.js} +4 -4
  113. package/dist/{chunk-CWFH36SI.js → chunk-YSRUYAVU.js} +2 -2
  114. package/dist/{chunk-ZQGRZN5L.js → chunk-YYP7WSEB.js} +2 -2
  115. package/dist/{chunk-HS3LEVT4.js → chunk-ZG4XLOKB.js} +6 -6
  116. package/dist/{chunk-4U52PMEL.js → chunk-ZN4FD4PE.js} +4 -4
  117. package/dist/{chunk-AW4KTQA4.js → chunk-ZORTV6NH.js} +2 -2
  118. package/dist/{chunk-P22XPNFW.js → chunk-ZR2YMODS.js} +2 -2
  119. package/dist/classified/index.js +4 -4
  120. package/dist/{classified-marker-R37XW5PC.js → classified-marker-67HBIJMZ.js} +3 -3
  121. package/dist/{collection-facade-OPJ3EC4L.js → collection-facade-MGGHQ3HU.js} +15 -15
  122. package/dist/{computed-HW6IG5UH.js → computed-LSEZYRJS.js} +3 -3
  123. package/dist/consent/index.js +7 -7
  124. package/dist/cover/index.js +7 -7
  125. package/dist/custody/index.js +10 -10
  126. package/dist/{dead-filter-GRT6RAML.js → dead-filter-M3NZUWBZ.js} +2 -2
  127. package/dist/debug/index.js +1 -1
  128. package/dist/{delegation-6QRAYSK6.js → delegation-OLJUWTVA.js} +9 -9
  129. package/dist/derivations/index.js +24 -13
  130. package/dist/{derive-AAIXSQIE.js → derive-LY47HG7Q.js} +8 -8
  131. package/dist/directory/index.js +8 -8
  132. package/dist/{dispatch-QCF7KPIP.js → dispatch-44J4TL72.js} +5 -5
  133. package/dist/dispatch-XEBHUGBV.js +250 -0
  134. package/dist/dispatch-XEBHUGBV.js.map +1 -0
  135. package/dist/{enclave-OXZY3NOP.js → enclave-4YBQK77G.js} +7 -7
  136. package/dist/executor-KSPGNVDO.js +29 -0
  137. package/dist/executor-MZJXBWNM.js +9 -0
  138. package/dist/executor-TOLPBHOC.js +9 -0
  139. package/dist/export-accessible-LGV6IAFX.js +23 -0
  140. package/dist/extract-partition-RYJZIKQZ.js +38 -0
  141. package/dist/{fanout-sidecar-KGQCUJ7P.js → fanout-sidecar-TSFPXY5C.js} +7 -7
  142. package/dist/find-LC7P63MX.js +11 -0
  143. package/dist/forget/index.js +7 -7
  144. package/dist/guards/index.js +4 -4
  145. package/dist/history/index.js +11 -11
  146. package/dist/i18n/index.js +12 -12
  147. package/dist/index.d.ts +8 -4
  148. package/dist/index.js +96 -96
  149. package/dist/indexing/index.js +2 -2
  150. package/dist/introspection/index.js +11 -10
  151. package/dist/issue-IOXM3RSJ.js +19 -0
  152. package/dist/kernel/collection.d.ts +11 -6
  153. package/dist/kernel/errors.d.ts +28 -0
  154. package/dist/kernel/match-pairs.d.ts +30 -0
  155. package/dist/{ledger-ZAFULLAF.js → ledger-HXHIOD36.js} +9 -9
  156. package/dist/liberate-4APIV7FR.js +25 -0
  157. package/dist/{link-set-LQI2IJX6.js → link-set-6RAHEKZN.js} +9 -9
  158. package/dist/{managed-secret-7OH7HKXV.js → managed-secret-P3JQ7ZG4.js} +7 -7
  159. package/dist/materialized-views/index.js +18 -18
  160. package/dist/{migrate-cek-QHZ75E6E.js → migrate-cek-25KNTS5U.js} +2 -2
  161. package/dist/money/index.js +4 -4
  162. package/dist/noydb-JJXPICIC.js +88 -0
  163. package/dist/overlay-views/index.js +4 -4
  164. package/dist/periods/index.js +10 -10
  165. package/dist/pod/index.js +55 -53
  166. package/dist/{pod-handle-BLOI4IFY.js → pod-handle-6II7KFBR.js} +7 -7
  167. package/dist/policy/index.js +7 -7
  168. package/dist/portability/index.js +8 -8
  169. package/dist/{post-register-R33EKJQR.js → post-register-BPJ36A6D.js} +6 -6
  170. package/dist/query/index.js +3 -3
  171. package/dist/reduce/index.js +4 -4
  172. package/dist/{register-AYBQNTM3.js → register-AEOOGKNO.js} +13 -13
  173. package/dist/registry-BZQIVNNO.js +29 -0
  174. package/dist/registry-I6FP4677.js +19 -0
  175. package/dist/registry-SHMGHEK4.js +9 -0
  176. package/dist/registry-SKSOUXNF.js +9 -0
  177. package/dist/{request-withdrawal-7IKUIAEB.js → request-withdrawal-6HJT4ODF.js} +12 -12
  178. package/dist/{reveal-PI6ADRQU.js → reveal-DDQBDWPM.js} +4 -4
  179. package/dist/{revoke-PUJKRYJF.js → revoke-U7U3FMXU.js} +9 -9
  180. package/dist/satellites/index.js +1 -1
  181. package/dist/schema-update/index.js +2 -2
  182. package/dist/sealed-record/index.js +10 -10
  183. package/dist/search/index.js +4 -4
  184. package/dist/{seed-MCCGVPRI.js → seed-3RXT4VGN.js} +10 -10
  185. package/dist/sequence/index.js +7 -7
  186. package/dist/session/index.js +7 -7
  187. package/dist/shadow/index.js +2 -2
  188. package/dist/{signer-5TA7FUC3.js → signer-7NK7TMWU.js} +8 -8
  189. package/dist/snapshots/index.js +8 -8
  190. package/dist/{stale-HZR7745Y.js → stale-KSPG6LFX.js} +8 -8
  191. package/dist/{storage-J2QHNJCB.js → storage-WP4M7IFO.js} +8 -8
  192. package/dist/{store-coordination-provider-MYIHSZXT.js → store-coordination-provider-O2VUEMJH.js} +7 -7
  193. package/dist/sync/index.js +8 -8
  194. package/dist/team/index.js +12 -12
  195. package/dist/tiers/index.js +9 -9
  196. package/dist/to/index.js +1 -1
  197. package/dist/transactions/index.js +3 -3
  198. package/dist/util/index.js +1 -1
  199. package/dist/vault-head/index.js +6 -6
  200. package/dist/{verify-R6CCBUA3.js → verify-JBXCAGDL.js} +5 -5
  201. package/dist/walk-P3E6QSNC.js +22 -0
  202. package/dist/with-formula/derivations/dispatch.d.ts +16 -1
  203. package/dist/with-formula/derivations/registry.d.ts +15 -0
  204. package/dist/with-formula/derivations/trigger-match.d.ts +52 -0
  205. package/dist/with-formula/derivations/types.d.ts +23 -0
  206. package/dist/with-shape/introspection/behaviors.d.ts +7 -0
  207. package/dist/with-shape/introspection/describe.d.ts +40 -0
  208. package/dist/{withdraw-accessible-62VI4W7D.js → withdraw-accessible-6Q7NE4EY.js} +11 -11
  209. package/package.json +3 -3
  210. package/dist/api-GJQF7OAJ.js +0 -20
  211. package/dist/chunk-65ZYRK7O.js.map +0 -1
  212. package/dist/chunk-J6FXVDKC.js +0 -81
  213. package/dist/chunk-J6FXVDKC.js.map +0 -1
  214. package/dist/chunk-KHKKD62N.js.map +0 -1
  215. package/dist/chunk-KKZPQLDH.js.map +0 -1
  216. package/dist/chunk-OQDHIAR2.js.map +0 -1
  217. package/dist/chunk-SW4TOSJL.js.map +0 -1
  218. package/dist/chunk-XJP66QEN.js.map +0 -1
  219. package/dist/dispatch-DR3XITEC.js +0 -194
  220. package/dist/dispatch-DR3XITEC.js.map +0 -1
  221. package/dist/executor-67NA4KPO.js +0 -29
  222. package/dist/executor-7JDP7UBK.js +0 -9
  223. package/dist/executor-CRH5OB4V.js +0 -9
  224. package/dist/export-accessible-K4GJAU7U.js +0 -23
  225. package/dist/extract-partition-YJFL5OKK.js +0 -38
  226. package/dist/find-SVZHMEQI.js +0 -11
  227. package/dist/issue-64N6OG7U.js +0 -19
  228. package/dist/liberate-QAUKHU6W.js +0 -25
  229. package/dist/noydb-ZUS5XAFT.js +0 -86
  230. package/dist/registry-CQWWOBO4.js +0 -9
  231. package/dist/registry-JCZ4BNLV.js +0 -18
  232. package/dist/registry-JFFENZ44.js +0 -9
  233. package/dist/registry-ZA4HACYR.js +0 -19
  234. package/dist/walk-3PA4ZOKS.js +0 -21
  235. /package/dist/{api-GJQF7OAJ.js.map → api-UE2XQKDN.js.map} +0 -0
  236. /package/dist/{backup-QZQEP5RO.js.map → backup-R6A4VZRX.js.map} +0 -0
  237. /package/dist/{chunk-AHIIBDNH.js.map → chunk-2Z47NMFK.js.map} +0 -0
  238. /package/dist/{chunk-2DGBRE4K.js.map → chunk-4OZNXTO4.js.map} +0 -0
  239. /package/dist/{chunk-FZWAGG5T.js.map → chunk-5FUULQ6F.js.map} +0 -0
  240. /package/dist/{chunk-P7KJME6C.js.map → chunk-6YXCPL4T.js.map} +0 -0
  241. /package/dist/{chunk-LAI7ENPW.js.map → chunk-7MG2LHO5.js.map} +0 -0
  242. /package/dist/{chunk-NUXTUGAD.js.map → chunk-7NTBVFGD.js.map} +0 -0
  243. /package/dist/{chunk-MU74BYOD.js.map → chunk-ANSIZYEG.js.map} +0 -0
  244. /package/dist/{chunk-2MQ2D5OZ.js.map → chunk-B2ZSGYSF.js.map} +0 -0
  245. /package/dist/{chunk-5W5CEHLA.js.map → chunk-BBWVXF57.js.map} +0 -0
  246. /package/dist/{chunk-SWFIXQF5.js.map → chunk-BERJ4AWW.js.map} +0 -0
  247. /package/dist/{chunk-Q2OAAREU.js.map → chunk-BMSOTHIA.js.map} +0 -0
  248. /package/dist/{chunk-XGXVPCYW.js.map → chunk-BOWNCWZT.js.map} +0 -0
  249. /package/dist/{chunk-UTFY6W6X.js.map → chunk-BZ3534YM.js.map} +0 -0
  250. /package/dist/{chunk-DOPZWTMJ.js.map → chunk-CIGAQBJR.js.map} +0 -0
  251. /package/dist/{chunk-3GIA3HJ2.js.map → chunk-DGOZ4UZD.js.map} +0 -0
  252. /package/dist/{chunk-7XT7KZTN.js.map → chunk-DJ3LNNZQ.js.map} +0 -0
  253. /package/dist/{chunk-IS5LFHV2.js.map → chunk-DMJZBQ7F.js.map} +0 -0
  254. /package/dist/{chunk-MENI33ZV.js.map → chunk-E3EBMC4G.js.map} +0 -0
  255. /package/dist/{chunk-T66OY2U5.js.map → chunk-E5OHKSBD.js.map} +0 -0
  256. /package/dist/{chunk-LUVGSKXE.js.map → chunk-EVKR67PQ.js.map} +0 -0
  257. /package/dist/{chunk-Q2ZN5DWZ.js.map → chunk-FAHMLERK.js.map} +0 -0
  258. /package/dist/{chunk-FN26SFGH.js.map → chunk-FYEZC4PX.js.map} +0 -0
  259. /package/dist/{chunk-OLUTCM23.js.map → chunk-GHHUF2KL.js.map} +0 -0
  260. /package/dist/{chunk-DNMTN46H.js.map → chunk-GY4WYNNG.js.map} +0 -0
  261. /package/dist/{chunk-IAHDSFFA.js.map → chunk-HN4FNA4X.js.map} +0 -0
  262. /package/dist/{chunk-JRWLUWDM.js.map → chunk-IPFE6MVM.js.map} +0 -0
  263. /package/dist/{chunk-PV7XXAXK.js.map → chunk-JBDFMYKQ.js.map} +0 -0
  264. /package/dist/{chunk-3SWP2FYA.js.map → chunk-JJR2JIN4.js.map} +0 -0
  265. /package/dist/{chunk-IZTU6RKH.js.map → chunk-JMGDHKQF.js.map} +0 -0
  266. /package/dist/{chunk-P2RJAVMR.js.map → chunk-KCUIMITG.js.map} +0 -0
  267. /package/dist/{chunk-MOQ6OGKS.js.map → chunk-KLPASWYY.js.map} +0 -0
  268. /package/dist/{chunk-JILOSL4O.js.map → chunk-KTDGZPOZ.js.map} +0 -0
  269. /package/dist/{chunk-ZB2K3FV7.js.map → chunk-KTFRCC5C.js.map} +0 -0
  270. /package/dist/{chunk-7PC3DRG7.js.map → chunk-LHH6H43C.js.map} +0 -0
  271. /package/dist/{chunk-QOHGWFAW.js.map → chunk-LWBCUYZW.js.map} +0 -0
  272. /package/dist/{chunk-NMDMSHBF.js.map → chunk-MLO75SFJ.js.map} +0 -0
  273. /package/dist/{chunk-H5GVPOB4.js.map → chunk-MMOZQTXV.js.map} +0 -0
  274. /package/dist/{chunk-JFSUYGNE.js.map → chunk-MVMXZYXT.js.map} +0 -0
  275. /package/dist/{chunk-FKQCC4C5.js.map → chunk-NQKIUNW5.js.map} +0 -0
  276. /package/dist/{chunk-IRHIA3AL.js.map → chunk-PFBL4M7E.js.map} +0 -0
  277. /package/dist/{chunk-RCONOOVF.js.map → chunk-PKJ43CMD.js.map} +0 -0
  278. /package/dist/{chunk-UL7TLJ54.js.map → chunk-PQKG5AHH.js.map} +0 -0
  279. /package/dist/{chunk-MTTPHBIE.js.map → chunk-Q2PU57HC.js.map} +0 -0
  280. /package/dist/{chunk-FPN5D4JX.js.map → chunk-Q4RWFV3G.js.map} +0 -0
  281. /package/dist/{chunk-FLRLZ4XZ.js.map → chunk-Q7HZX3IF.js.map} +0 -0
  282. /package/dist/{chunk-5EC7X5QA.js.map → chunk-QHW35ZON.js.map} +0 -0
  283. /package/dist/{chunk-75WNTBZL.js.map → chunk-QIBVIOXO.js.map} +0 -0
  284. /package/dist/{chunk-KQIDBIZL.js.map → chunk-QIZPZMUI.js.map} +0 -0
  285. /package/dist/{chunk-TQGT5BZE.js.map → chunk-RDZZHYMV.js.map} +0 -0
  286. /package/dist/{chunk-HOIWW2LV.js.map → chunk-RGSTMLVO.js.map} +0 -0
  287. /package/dist/{chunk-KZTPL7NL.js.map → chunk-RMF67KCG.js.map} +0 -0
  288. /package/dist/{chunk-OEJ4R52I.js.map → chunk-RMS3NEA3.js.map} +0 -0
  289. /package/dist/{chunk-5NKHCJU5.js.map → chunk-RTYJRFQO.js.map} +0 -0
  290. /package/dist/{chunk-XKA6UH5V.js.map → chunk-SFAWCTEM.js.map} +0 -0
  291. /package/dist/{chunk-FYT3DXPN.js.map → chunk-SKGMN35F.js.map} +0 -0
  292. /package/dist/{chunk-USKHHOIV.js.map → chunk-SL3JAAKN.js.map} +0 -0
  293. /package/dist/{chunk-FRIVOR5N.js.map → chunk-SWVNZQVR.js.map} +0 -0
  294. /package/dist/{chunk-O3SNM66K.js.map → chunk-TFR7DSOV.js.map} +0 -0
  295. /package/dist/{chunk-X6YRP5EC.js.map → chunk-THX6FEEC.js.map} +0 -0
  296. /package/dist/{chunk-RPX2H2OL.js.map → chunk-TO3EQ7HF.js.map} +0 -0
  297. /package/dist/{chunk-DIVY2CJZ.js.map → chunk-TRGTKX5E.js.map} +0 -0
  298. /package/dist/{chunk-JY4U6CYV.js.map → chunk-TUFM4UZP.js.map} +0 -0
  299. /package/dist/{chunk-OKCQNMO6.js.map → chunk-U7VPHXXO.js.map} +0 -0
  300. /package/dist/{chunk-DZPMKY3J.js.map → chunk-UGTBXF5U.js.map} +0 -0
  301. /package/dist/{chunk-VT4DTCK5.js.map → chunk-URHRIAV6.js.map} +0 -0
  302. /package/dist/{chunk-YHIAWECL.js.map → chunk-UXVWEX5L.js.map} +0 -0
  303. /package/dist/{chunk-XJTGBHK6.js.map → chunk-VNR2SNVJ.js.map} +0 -0
  304. /package/dist/{chunk-GHADG5QZ.js.map → chunk-VTFVLCUH.js.map} +0 -0
  305. /package/dist/{chunk-U3RMWOXY.js.map → chunk-VXANTWBJ.js.map} +0 -0
  306. /package/dist/{chunk-QJLOWGOU.js.map → chunk-WQF3QABE.js.map} +0 -0
  307. /package/dist/{chunk-GKOJR53Y.js.map → chunk-WSJG5L5C.js.map} +0 -0
  308. /package/dist/{chunk-I5LSKXT6.js.map → chunk-WWNYSV7S.js.map} +0 -0
  309. /package/dist/{chunk-357ECVLE.js.map → chunk-XGDYGUEH.js.map} +0 -0
  310. /package/dist/{chunk-2E2LT37H.js.map → chunk-XLMEZIAJ.js.map} +0 -0
  311. /package/dist/{chunk-TAJZ7GXO.js.map → chunk-XNIQ7DP2.js.map} +0 -0
  312. /package/dist/{chunk-Z277MC2O.js.map → chunk-Y4MJQ2UG.js.map} +0 -0
  313. /package/dist/{chunk-OXZSMX2H.js.map → chunk-YCXICMOY.js.map} +0 -0
  314. /package/dist/{chunk-MV2OEK3K.js.map → chunk-YQWBEJCS.js.map} +0 -0
  315. /package/dist/{chunk-CWFH36SI.js.map → chunk-YSRUYAVU.js.map} +0 -0
  316. /package/dist/{chunk-ZQGRZN5L.js.map → chunk-YYP7WSEB.js.map} +0 -0
  317. /package/dist/{chunk-HS3LEVT4.js.map → chunk-ZG4XLOKB.js.map} +0 -0
  318. /package/dist/{chunk-4U52PMEL.js.map → chunk-ZN4FD4PE.js.map} +0 -0
  319. /package/dist/{chunk-AW4KTQA4.js.map → chunk-ZORTV6NH.js.map} +0 -0
  320. /package/dist/{chunk-P22XPNFW.js.map → chunk-ZR2YMODS.js.map} +0 -0
  321. /package/dist/{classified-marker-R37XW5PC.js.map → classified-marker-67HBIJMZ.js.map} +0 -0
  322. /package/dist/{collection-facade-OPJ3EC4L.js.map → collection-facade-MGGHQ3HU.js.map} +0 -0
  323. /package/dist/{computed-HW6IG5UH.js.map → computed-LSEZYRJS.js.map} +0 -0
  324. /package/dist/{dead-filter-GRT6RAML.js.map → dead-filter-M3NZUWBZ.js.map} +0 -0
  325. /package/dist/{delegation-6QRAYSK6.js.map → delegation-OLJUWTVA.js.map} +0 -0
  326. /package/dist/{derive-AAIXSQIE.js.map → derive-LY47HG7Q.js.map} +0 -0
  327. /package/dist/{dispatch-QCF7KPIP.js.map → dispatch-44J4TL72.js.map} +0 -0
  328. /package/dist/{enclave-OXZY3NOP.js.map → enclave-4YBQK77G.js.map} +0 -0
  329. /package/dist/{executor-67NA4KPO.js.map → executor-KSPGNVDO.js.map} +0 -0
  330. /package/dist/{executor-7JDP7UBK.js.map → executor-MZJXBWNM.js.map} +0 -0
  331. /package/dist/{executor-CRH5OB4V.js.map → executor-TOLPBHOC.js.map} +0 -0
  332. /package/dist/{export-accessible-K4GJAU7U.js.map → export-accessible-LGV6IAFX.js.map} +0 -0
  333. /package/dist/{extract-partition-YJFL5OKK.js.map → extract-partition-RYJZIKQZ.js.map} +0 -0
  334. /package/dist/{fanout-sidecar-KGQCUJ7P.js.map → fanout-sidecar-TSFPXY5C.js.map} +0 -0
  335. /package/dist/{find-SVZHMEQI.js.map → find-LC7P63MX.js.map} +0 -0
  336. /package/dist/{issue-64N6OG7U.js.map → issue-IOXM3RSJ.js.map} +0 -0
  337. /package/dist/{ledger-ZAFULLAF.js.map → ledger-HXHIOD36.js.map} +0 -0
  338. /package/dist/{liberate-QAUKHU6W.js.map → liberate-4APIV7FR.js.map} +0 -0
  339. /package/dist/{link-set-LQI2IJX6.js.map → link-set-6RAHEKZN.js.map} +0 -0
  340. /package/dist/{managed-secret-7OH7HKXV.js.map → managed-secret-P3JQ7ZG4.js.map} +0 -0
  341. /package/dist/{migrate-cek-QHZ75E6E.js.map → migrate-cek-25KNTS5U.js.map} +0 -0
  342. /package/dist/{noydb-ZUS5XAFT.js.map → noydb-JJXPICIC.js.map} +0 -0
  343. /package/dist/{pod-handle-BLOI4IFY.js.map → pod-handle-6II7KFBR.js.map} +0 -0
  344. /package/dist/{post-register-R33EKJQR.js.map → post-register-BPJ36A6D.js.map} +0 -0
  345. /package/dist/{register-AYBQNTM3.js.map → register-AEOOGKNO.js.map} +0 -0
  346. /package/dist/{registry-CQWWOBO4.js.map → registry-BZQIVNNO.js.map} +0 -0
  347. /package/dist/{registry-JCZ4BNLV.js.map → registry-I6FP4677.js.map} +0 -0
  348. /package/dist/{registry-JFFENZ44.js.map → registry-SHMGHEK4.js.map} +0 -0
  349. /package/dist/{registry-ZA4HACYR.js.map → registry-SKSOUXNF.js.map} +0 -0
  350. /package/dist/{request-withdrawal-7IKUIAEB.js.map → request-withdrawal-6HJT4ODF.js.map} +0 -0
  351. /package/dist/{reveal-PI6ADRQU.js.map → reveal-DDQBDWPM.js.map} +0 -0
  352. /package/dist/{revoke-PUJKRYJF.js.map → revoke-U7U3FMXU.js.map} +0 -0
  353. /package/dist/{seed-MCCGVPRI.js.map → seed-3RXT4VGN.js.map} +0 -0
  354. /package/dist/{signer-5TA7FUC3.js.map → signer-7NK7TMWU.js.map} +0 -0
  355. /package/dist/{stale-HZR7745Y.js.map → stale-KSPG6LFX.js.map} +0 -0
  356. /package/dist/{storage-J2QHNJCB.js.map → storage-WP4M7IFO.js.map} +0 -0
  357. /package/dist/{store-coordination-provider-MYIHSZXT.js.map → store-coordination-provider-O2VUEMJH.js.map} +0 -0
  358. /package/dist/{verify-R6CCBUA3.js.map → verify-JBXCAGDL.js.map} +0 -0
  359. /package/dist/{walk-3PA4ZOKS.js.map → walk-P3E6QSNC.js.map} +0 -0
  360. /package/dist/{withdraw-accessible-62VI4W7D.js.map → withdraw-accessible-6Q7NE4EY.js.map} +0 -0
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  ValidationError
3
- } from "./chunk-SW4TOSJL.js";
3
+ } from "./chunk-7O3Y4PPD.js";
4
4
 
5
5
  // src/with-formula/derivations/with-derivation.ts
6
6
  function withDerivation(spec) {
@@ -38,11 +38,34 @@ function withDerivation(spec) {
38
38
  `withDerivation: triggerBy.collection must not equal the source "${spec.source}" (use sources[] for same-id triggers)`
39
39
  );
40
40
  }
41
- if (typeof t.on !== "string" || t.on.length === 0) {
41
+ const hasOn = typeof t.on === "string";
42
+ const hasMatch = Array.isArray(t.match);
43
+ if (hasOn === hasMatch) {
44
+ throw new ValidationError(
45
+ `withDerivation: triggerBy on "${t.collection}" needs exactly one of \`on\` or \`match\``
46
+ );
47
+ }
48
+ if (hasOn && t.on.length === 0) {
42
49
  throw new ValidationError(
43
50
  `withDerivation: triggerBy on "${t.collection}" needs a non-empty \`on\` (the FK field on the source)`
44
51
  );
45
52
  }
53
+ if (hasMatch) {
54
+ const match = t.match;
55
+ if (match.length === 0) {
56
+ throw new ValidationError(`withDerivation: triggerBy match on "${t.collection}" must be non-empty`);
57
+ }
58
+ const seen = /* @__PURE__ */ new Set();
59
+ for (const p of match) {
60
+ if (typeof p?.from !== "string" || p.from.length === 0 || typeof p?.to !== "string" || p.to.length === 0) {
61
+ throw new ValidationError(`withDerivation: triggerBy match on "${t.collection}" needs non-empty \`from\` and \`to\` in every pair`);
62
+ }
63
+ if (seen.has(p.to)) {
64
+ throw new ValidationError(`withDerivation: triggerBy match on "${t.collection}" repeats \`to: "${p.to}"\` \u2014 two pairs constraining one source field is a contradiction, not a wider match`);
65
+ }
66
+ seen.add(p.to);
67
+ }
68
+ }
46
69
  if (t.maxFanout !== void 0 && (!Number.isInteger(t.maxFanout) || t.maxFanout < 1)) {
47
70
  throw new ValidationError(
48
71
  `withDerivation: triggerBy maxFanout on "${t.collection}" must be a positive integer (got ${String(t.maxFanout)}).`
@@ -126,4 +149,4 @@ export {
126
149
  withDerivation,
127
150
  withRollup
128
151
  };
129
- //# sourceMappingURL=chunk-65ZYRK7O.js.map
152
+ //# sourceMappingURL=chunk-BUE2D7PX.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/with-formula/derivations/with-derivation.ts","../src/with-formula/derivations/with-rollup.ts"],"sourcesContent":["import { ValidationError } from '../../kernel/errors.js'\nimport type { DerivationSpec, DerivationStrategy } from './types.js'\n\n/**\n * Register a deterministic derivation: one source collection → one or\n * more typed outputs, computed by the user's `derive` function on\n * plaintext after DEK unwrap. Outputs are encrypted with the same DEK\n * as the source and written via the standard `Collection.put` path.\n *\n * See design-history/2026-05-01-dim14-derivation-v1-design.md.\n */\nexport function withDerivation<\n TSource extends Record<string, unknown>,\n TOutputs extends Record<string, Record<string, unknown> | ReadonlyArray<Record<string, unknown>>>,\n>(spec: DerivationSpec<TSource, TOutputs>): DerivationStrategy {\n if (!spec.source || spec.source.length === 0) {\n throw new ValidationError('withDerivation: source collection name is required')\n }\n if (!spec.outputs || Object.keys(spec.outputs).length === 0) {\n throw new ValidationError('withDerivation: outputs map must declare at least one output')\n }\n if (spec.deterministic !== true) {\n throw new ValidationError('withDerivation: v1 only supports deterministic derivations')\n }\n if (typeof spec.derive !== 'function') {\n throw new ValidationError('withDerivation: derive must be a function')\n }\n\n // Validate declared sibling sources. Each must be a non-empty\n // string and must differ from the primary source — a self-reference\n // would double-register the strategy under the same `_bySource` key.\n if (spec.sources !== undefined) {\n for (const extra of spec.sources) {\n if (typeof extra !== 'string' || extra.length === 0) {\n throw new ValidationError('withDerivation: each entry in sources[] must be a non-empty string')\n }\n if (extra === spec.source) {\n throw new ValidationError(\n `withDerivation: sources[] must not contain the primary source \"${spec.source}\"`,\n )\n }\n }\n }\n\n // Validate FK triggers. Each `collection` must be a non-empty\n // string differing from the primary source, and `on` a non-empty field.\n if (spec.triggerBy !== undefined) {\n for (const t of spec.triggerBy) {\n if (typeof t?.collection !== 'string' || t.collection.length === 0) {\n throw new ValidationError('withDerivation: each triggerBy entry needs a non-empty `collection`')\n }\n if (t.collection === spec.source) {\n throw new ValidationError(\n `withDerivation: triggerBy.collection must not equal the source \"${spec.source}\" (use sources[] for same-id triggers)`,\n )\n }\n const hasOn = typeof (t as { on?: unknown }).on === 'string'\n const hasMatch = Array.isArray((t as { match?: unknown }).match)\n if (hasOn === hasMatch) {\n throw new ValidationError(\n `withDerivation: triggerBy on \"${t.collection}\" needs exactly one of \\`on\\` or \\`match\\``,\n )\n }\n if (hasOn && (t as { on: string }).on.length === 0) {\n throw new ValidationError(\n `withDerivation: triggerBy on \"${t.collection}\" needs a non-empty \\`on\\` (the FK field on the source)`,\n )\n }\n if (hasMatch) {\n const match = (t as { match: ReadonlyArray<{ from: string; to: string }> }).match\n if (match.length === 0) {\n throw new ValidationError(`withDerivation: triggerBy match on \"${t.collection}\" must be non-empty`)\n }\n const seen = new Set<string>()\n for (const p of match) {\n if (typeof p?.from !== 'string' || p.from.length === 0 || typeof p?.to !== 'string' || p.to.length === 0) {\n throw new ValidationError(`withDerivation: triggerBy match on \"${t.collection}\" needs non-empty \\`from\\` and \\`to\\` in every pair`)\n }\n if (seen.has(p.to)) {\n throw new ValidationError(`withDerivation: triggerBy match on \"${t.collection}\" repeats \\`to: \"${p.to}\"\\` — two pairs constraining one source field is a contradiction, not a wider match`)\n }\n seen.add(p.to)\n }\n }\n if (t.maxFanout !== undefined && (!Number.isInteger(t.maxFanout) || t.maxFanout < 1)) {\n throw new ValidationError(\n `withDerivation: triggerBy maxFanout on \"${t.collection}\" must be a positive integer (got ${String(t.maxFanout)}).`,\n )\n }\n }\n }\n\n // Validate array-shape outputs.\n const lifecycleMode = typeof spec.lifecycle === 'string' ? spec.lifecycle : spec.lifecycle.mode\n for (const [outputKey, outputSpec] of Object.entries(spec.outputs)) {\n // Self-write output (collection === source): reverse-denorm must declare\n // `denorm` (the fields it owns) — field-level provenance.\n if (outputSpec.shape === 'record' && outputSpec.collection === spec.source) {\n if (!outputSpec.denorm || outputSpec.denorm.length === 0) {\n throw new ValidationError(\n `withDerivation: self-write output \"${outputKey}\" (collection === source \"${spec.source}\") `\n + 'must declare `denorm: [...]` naming the fields it maintains.',\n )\n }\n }\n if (outputSpec.shape === 'array') {\n if (lifecycleMode !== 'eager') {\n throw new ValidationError(\n `withDerivation: shape 'array' supports lifecycle 'eager' only in this release `\n + `Output \"${outputKey}\" declared lifecycle '${lifecycleMode}'. `\n + 'Switch to `lifecycle: \"eager\"` or use shape: \"record\".',\n )\n }\n if (typeof outputSpec.key !== 'function') {\n throw new ValidationError(\n `withDerivation: shape 'array' output \"${outputKey}\" requires \\`key: (out) => string\\`.`,\n )\n }\n if (outputSpec.maxFanout !== undefined) {\n if (!Number.isInteger(outputSpec.maxFanout) || outputSpec.maxFanout < 1) {\n throw new ValidationError(\n `withDerivation: maxFanout for output \"${outputKey}\" must be a positive integer `\n + `(got ${String(outputSpec.maxFanout)}).`,\n )\n }\n }\n }\n }\n\n return {\n __noydb_strategy: 'derivation',\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n spec: spec as DerivationSpec<any, any>,\n }\n}\n","import { ValidationError } from '../../kernel/errors.js'\nimport type { DerivationSpec, DerivationStrategy } from './types.js'\n\n/** Options for {@link withRollup} (#844b — was an inline literal, so unnameable). */\nexport interface WithRollupOptions<\n TChild extends Record<string, unknown> = Record<string, unknown>,\n TParent extends Record<string, unknown> = Record<string, unknown>,\n> {\n /** Child collection — the trigger. */\n readonly from: string\n /** FK field on the child pointing at the parent id. */\n readonly key: keyof TChild & string\n /** Parent collection carrying the maintained summary. */\n readonly into: string\n /** Field on the parent to maintain. */\n readonly field: keyof TParent & string\n /** Reduces the matching children to the value written at `field`. */\n readonly compute: (children: TChild[]) => unknown\n}\n\n/**\n * `withRollup` — aggregate many child records onto a single field of their\n * parent. The reverse of a join: instead of reading children\n * on demand, the parent carries a maintained summary.\n *\n * ```ts\n * withRollup<Sale, Buyer>({\n * from: 'sales', // child collection (the trigger)\n * key: 'buyerId', // FK on the child → parent id\n * into: 'buyers', // parent collection\n * field: 'revenueByYear', // field on the parent to maintain\n * compute: (sales) => groupSumByYear(sales, 'total'),\n * })\n * ```\n *\n * On every write OR delete of a `from` record, the parent at id `child[key]`\n * is recomputed: `compute(allChildren where child[key] === parentId)` is\n * patched onto `parent[field]`. A parent write also recomputes its own\n * aggregate (so a parent created after its children still fills in). Only the\n * `field` is touched — the rest of the parent record is never clobbered — and\n * a value-equality guard suppresses no-op writes. The aggregate is gap-free\n * with respect to child inserts, updates, and deletes.\n *\n * Desugars to a `withDerivation` strategy carrying a `rollup` marker; dispatch\n * handles it without invoking the executor. Eager-only in this slice.\n */\nexport function withRollup<\n TChild extends Record<string, unknown> = Record<string, unknown>,\n TParent extends Record<string, unknown> = Record<string, unknown>,\n>(opts: WithRollupOptions<TChild, TParent>): DerivationStrategy {\n const { from, key, into, field, compute } = opts\n if (!from || from.length === 0) {\n throw new ValidationError('withRollup: `from` (child collection) is required')\n }\n if (!into || into.length === 0) {\n throw new ValidationError('withRollup: `into` (parent collection) is required')\n }\n if (from === into) {\n throw new ValidationError('withRollup: `from` and `into` must be different collections')\n }\n if (!key || key.length === 0) {\n throw new ValidationError('withRollup: `key` (FK field on the child) is required')\n }\n if (!field || field.length === 0) {\n throw new ValidationError('withRollup: `field` (target field on the parent) is required')\n }\n if (typeof compute !== 'function') {\n throw new ValidationError('withRollup: `compute` must be a function')\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const spec: DerivationSpec<any, any> = {\n source: into, // the parent record is what carries the rolled-up field\n deterministic: true,\n rollup: { from, key, field, compute: compute as (children: unknown[]) => unknown },\n // Synthetic self-write output for registry / cycle bookkeeping. Dispatch\n // patches `field` directly (value-equality guarded); the executor is not run.\n outputs: { value: { shape: 'record', collection: into, denorm: [field] } },\n derive: () => ({ value: {} }), // never invoked for a rollup strategy\n lifecycle: 'eager',\n }\n\n return { __noydb_strategy: 'derivation', spec }\n}\n"],"mappings":"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","names":[]}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  PortabilityNotEnabledError
3
- } from "./chunk-SW4TOSJL.js";
3
+ } from "./chunk-7O3Y4PPD.js";
4
4
 
5
5
  // src/with-audit/portability/strategy.ts
6
6
  var NO_PORTABILITY = {
@@ -27,4 +27,4 @@ var NO_PORTABILITY = {
27
27
  export {
28
28
  NO_PORTABILITY
29
29
  };
30
- //# sourceMappingURL=chunk-UTFY6W6X.js.map
30
+ //# sourceMappingURL=chunk-BZ3534YM.js.map
@@ -7,14 +7,14 @@ import {
7
7
  blindedEqual,
8
8
  openVdigPayload,
9
9
  sealVdigPayload
10
- } from "./chunk-XGXVPCYW.js";
10
+ } from "./chunk-BOWNCWZT.js";
11
11
  import {
12
12
  dualReadSealedSlot,
13
13
  parseSealedSlot
14
- } from "./chunk-CWFH36SI.js";
14
+ } from "./chunk-YSRUYAVU.js";
15
15
  import {
16
16
  mintBidxTag
17
- } from "./chunk-KZTPL7NL.js";
17
+ } from "./chunk-RMF67KCG.js";
18
18
  import {
19
19
  VDIG_ITERATIONS,
20
20
  normalizeForVerify,
@@ -35,7 +35,7 @@ import {
35
35
  generateSalt,
36
36
  unwrapCek,
37
37
  wrapCek
38
- } from "./chunk-USKHHOIV.js";
38
+ } from "./chunk-SL3JAAKN.js";
39
39
  import {
40
40
  NOYDB_FORMAT_VERSION,
41
41
  SealedHandle
@@ -48,7 +48,7 @@ import {
48
48
  SchemaValidationError,
49
49
  TamperedError,
50
50
  ValidationError
51
- } from "./chunk-SW4TOSJL.js";
51
+ } from "./chunk-7O3Y4PPD.js";
52
52
 
53
53
  // src/kernel/enclave/record-aad.ts
54
54
  var SCHEME = "noydb-aad/2";
@@ -1364,4 +1364,4 @@ export {
1364
1364
  issueChallenge,
1365
1365
  verifyBrokerProof
1366
1366
  };
1367
- //# sourceMappingURL=chunk-DOPZWTMJ.js.map
1367
+ //# sourceMappingURL=chunk-CIGAQBJR.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  DuplicateBehaviorNameError
3
- } from "./chunk-SW4TOSJL.js";
3
+ } from "./chunk-7O3Y4PPD.js";
4
4
 
5
5
  // src/with-audit/guards/registry.ts
6
6
  var GuardRegistry = class {
@@ -141,4 +141,4 @@ var GuardRegistry = class {
141
141
  export {
142
142
  GuardRegistry
143
143
  };
144
- //# sourceMappingURL=chunk-3GIA3HJ2.js.map
144
+ //# sourceMappingURL=chunk-DGOZ4UZD.js.map
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  SCHEMAS_COLLECTION
3
- } from "./chunk-I5LSKXT6.js";
3
+ } from "./chunk-WWNYSV7S.js";
4
4
  import {
5
5
  assemblePodContainer,
6
6
  buildExtractedPartitionWrapper
7
- } from "./chunk-RCONOOVF.js";
7
+ } from "./chunk-PKJ43CMD.js";
8
8
  import {
9
9
  BLOB_CHUNKS_COLLECTION,
10
10
  BLOB_COLLECTION,
@@ -12,7 +12,7 @@ import {
12
12
  BLOB_INTENT_COLLECTION,
13
13
  BLOB_SLOTS_PREFIX,
14
14
  BLOB_VERSIONS_PREFIX
15
- } from "./chunk-HS3LEVT4.js";
15
+ } from "./chunk-ZG4XLOKB.js";
16
16
  import {
17
17
  generateULID
18
18
  } from "./chunk-4AOERLTV.js";
@@ -23,13 +23,13 @@ import {
23
23
  canonicalJson,
24
24
  envelopePayloadHash,
25
25
  hashEntry
26
- } from "./chunk-JRWLUWDM.js";
26
+ } from "./chunk-IPFE6MVM.js";
27
27
  import {
28
28
  buildRecordAad,
29
29
  openEnvelopeJson,
30
30
  recordAadFor,
31
31
  writeEnvelopeBody
32
- } from "./chunk-DOPZWTMJ.js";
32
+ } from "./chunk-CIGAQBJR.js";
33
33
  import {
34
34
  buildRecordEnvelope
35
35
  } from "./chunk-4RUFYGWG.js";
@@ -42,13 +42,13 @@ import {
42
42
  generateDEK,
43
43
  unwrapCek,
44
44
  wrapCek
45
- } from "./chunk-USKHHOIV.js";
45
+ } from "./chunk-SL3JAAKN.js";
46
46
  import {
47
47
  NOYDB_BACKUP_VERSION
48
48
  } from "./chunk-N4CHCXDL.js";
49
49
  import {
50
50
  PartitionExtractionError
51
- } from "./chunk-SW4TOSJL.js";
51
+ } from "./chunk-7O3Y4PPD.js";
52
52
 
53
53
  // src/with-cargo/walk-closure.ts
54
54
  async function walkClosure(vault, opts) {
@@ -494,4 +494,4 @@ export {
494
494
  extractPartition,
495
495
  extractPartitionCore
496
496
  };
497
- //# sourceMappingURL=chunk-7XT7KZTN.js.map
497
+ //# sourceMappingURL=chunk-DJ3LNNZQ.js.map
@@ -1,22 +1,22 @@
1
1
  import {
2
2
  BLOB_CHUNKS_COLLECTION,
3
3
  BLOB_INDEX_COLLECTION
4
- } from "./chunk-HS3LEVT4.js";
4
+ } from "./chunk-ZG4XLOKB.js";
5
5
  import {
6
6
  installViaBinder
7
- } from "./chunk-YHIAWECL.js";
7
+ } from "./chunk-UXVWEX5L.js";
8
8
  import {
9
9
  buildRecordAad
10
- } from "./chunk-DOPZWTMJ.js";
10
+ } from "./chunk-CIGAQBJR.js";
11
11
  import {
12
12
  buildRecordEnvelope
13
13
  } from "./chunk-4RUFYGWG.js";
14
14
  import {
15
15
  encrypt
16
- } from "./chunk-USKHHOIV.js";
16
+ } from "./chunk-SL3JAAKN.js";
17
17
  import {
18
18
  ValidationError
19
- } from "./chunk-SW4TOSJL.js";
19
+ } from "./chunk-7O3Y4PPD.js";
20
20
 
21
21
  // src/via/blob/binding.ts
22
22
  async function eraseBlobs(ctx, cfg) {
@@ -438,4 +438,4 @@ export {
438
438
  BLOB_EVICTION_AUDIT_COLLECTION,
439
439
  runCompaction
440
440
  };
441
- //# sourceMappingURL=chunk-IS5LFHV2.js.map
441
+ //# sourceMappingURL=chunk-DMJZBQ7F.js.map
@@ -3,10 +3,10 @@ import {
3
3
  } from "./chunk-5D2ALSM5.js";
4
4
  import {
5
5
  RecordCodec
6
- } from "./chunk-DOPZWTMJ.js";
6
+ } from "./chunk-CIGAQBJR.js";
7
7
 
8
8
  // src/with-formula/materialized-views/stale.ts
9
- var loadMVExecutor = lazy(() => import("./executor-67NA4KPO.js"));
9
+ var loadMVExecutor = lazy(() => import("./executor-KSPGNVDO.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-MENI33ZV.js.map
137
+ //# sourceMappingURL=chunk-E3EBMC4G.js.map
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  createNoydb
3
- } from "./chunk-KKZPQLDH.js";
3
+ } from "./chunk-XMF3GKUR.js";
4
4
  import {
5
5
  deriveSchemaManifest
6
- } from "./chunk-5W5CEHLA.js";
6
+ } from "./chunk-BBWVXF57.js";
7
7
  import {
8
8
  loadFence
9
9
  } from "./chunk-GM4IM7TC.js";
@@ -13,10 +13,10 @@ import {
13
13
  signRecord,
14
14
  verifyPodHeader,
15
15
  verifyRecord
16
- } from "./chunk-RCONOOVF.js";
16
+ } from "./chunk-PKJ43CMD.js";
17
17
  import {
18
18
  loadKeyring
19
- } from "./chunk-XJTGBHK6.js";
19
+ } from "./chunk-VNR2SNVJ.js";
20
20
  import {
21
21
  ConflictError,
22
22
  MigrationRequiredError,
@@ -26,7 +26,7 @@ import {
26
26
  RedirectDepthExceededError,
27
27
  RedirectLoopError,
28
28
  RedirectUnreachableError
29
- } from "./chunk-SW4TOSJL.js";
29
+ } from "./chunk-7O3Y4PPD.js";
30
30
 
31
31
  // src/with-pod/pod-store.ts
32
32
  var BUNDLE_STORE_VERSION = 1;
@@ -286,4 +286,4 @@ export {
286
286
  followRedirects,
287
287
  open
288
288
  };
289
- //# sourceMappingURL=chunk-T66OY2U5.js.map
289
+ //# sourceMappingURL=chunk-E5OHKSBD.js.map
@@ -1,22 +1,22 @@
1
1
  import {
2
2
  ATTESTATIONS_COLLECTION,
3
3
  loadOrCreateSigner
4
- } from "./chunk-GKOJR53Y.js";
4
+ } from "./chunk-WSJG5L5C.js";
5
5
  import {
6
6
  generateULID
7
7
  } from "./chunk-4AOERLTV.js";
8
8
  import {
9
9
  buildRecordAad
10
- } from "./chunk-DOPZWTMJ.js";
10
+ } from "./chunk-CIGAQBJR.js";
11
11
  import {
12
12
  buildRecordEnvelope
13
13
  } from "./chunk-4RUFYGWG.js";
14
14
  import {
15
15
  encrypt
16
- } from "./chunk-USKHHOIV.js";
16
+ } from "./chunk-SL3JAAKN.js";
17
17
  import {
18
18
  AttestationError
19
- } from "./chunk-SW4TOSJL.js";
19
+ } from "./chunk-7O3Y4PPD.js";
20
20
 
21
21
  // src/with-audit/attestation/issue.ts
22
22
  import {
@@ -63,4 +63,4 @@ async function issueAttestationCore(ctx, args) {
63
63
  export {
64
64
  issueAttestationCore
65
65
  };
66
- //# sourceMappingURL=chunk-LUVGSKXE.js.map
66
+ //# sourceMappingURL=chunk-EVKR67PQ.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  ValidationError
3
- } from "./chunk-SW4TOSJL.js";
3
+ } from "./chunk-7O3Y4PPD.js";
4
4
 
5
5
  // src/with-audit/periods/window.ts
6
6
  var PERIODS_COLLECTION = "_periods";
@@ -23,4 +23,4 @@ export {
23
23
  PERIOD_REOPENS_COLLECTION,
24
24
  periodExclusiveUpperBound
25
25
  };
26
- //# sourceMappingURL=chunk-Q2ZN5DWZ.js.map
26
+ //# sourceMappingURL=chunk-FAHMLERK.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  LookupHandle
3
- } from "./chunk-TQGT5BZE.js";
3
+ } from "./chunk-RDZZHYMV.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-FN26SFGH.js.map
36
+ //# sourceMappingURL=chunk-FYEZC4PX.js.map
@@ -7,10 +7,10 @@ import {
7
7
  PERIOD_FREEZES_COLLECTION,
8
8
  PERIOD_TARGET_PURGES_COLLECTION,
9
9
  periodExclusiveUpperBound
10
- } from "./chunk-Q2ZN5DWZ.js";
10
+ } from "./chunk-FAHMLERK.js";
11
11
  import {
12
12
  envelopeBodySize
13
- } from "./chunk-DOPZWTMJ.js";
13
+ } from "./chunk-CIGAQBJR.js";
14
14
  import {
15
15
  buildRecordEnvelope,
16
16
  isDeleteMarker,
@@ -20,14 +20,14 @@ import {
20
20
  decrypt,
21
21
  derivePresenceKey,
22
22
  encrypt
23
- } from "./chunk-USKHHOIV.js";
23
+ } from "./chunk-SL3JAAKN.js";
24
24
  import {
25
25
  NOYDB_SYNC_VERSION
26
26
  } from "./chunk-N4CHCXDL.js";
27
27
  import {
28
28
  ValidationError,
29
29
  isConflictError
30
- } from "./chunk-SW4TOSJL.js";
30
+ } from "./chunk-7O3Y4PPD.js";
31
31
 
32
32
  // src/with-sync/presence.ts
33
33
  var subtle = globalThis.crypto.subtle;
@@ -1213,4 +1213,4 @@ export {
1213
1213
  SyncEngine,
1214
1214
  SyncTransaction
1215
1215
  };
1216
- //# sourceMappingURL=chunk-OLUTCM23.js.map
1216
+ //# sourceMappingURL=chunk-GHHUF2KL.js.map
@@ -4,7 +4,7 @@ import {
4
4
  formatScaledInt,
5
5
  parseToScaledInt,
6
6
  rescaleScaledInt
7
- } from "./chunk-U3RMWOXY.js";
7
+ } from "./chunk-VXANTWBJ.js";
8
8
 
9
9
  // src/via/money/arith.ts
10
10
  function parseAmount(label, amount, scale, rounding) {
@@ -120,4 +120,4 @@ export {
120
120
  isMoneyString,
121
121
  moneyNumber
122
122
  };
123
- //# sourceMappingURL=chunk-DNMTN46H.js.map
123
+ //# sourceMappingURL=chunk-GY4WYNNG.js.map
@@ -1,13 +1,18 @@
1
1
  import {
2
- ViaGraph
3
- } from "./chunk-XJP66QEN.js";
2
+ normalizeTriggerBy
3
+ } from "./chunk-TPHAGLUH.js";
4
+ import {
5
+ ViaGraph,
6
+ schemaFieldKeys
7
+ } from "./chunk-7BE7ZDVQ.js";
4
8
  import {
5
9
  sha256Hex
6
- } from "./chunk-USKHHOIV.js";
10
+ } from "./chunk-SL3JAAKN.js";
7
11
  import {
8
12
  DerivationCycleError,
9
- DuplicateBehaviorNameError
10
- } from "./chunk-SW4TOSJL.js";
13
+ DuplicateBehaviorNameError,
14
+ ValidationError
15
+ } from "./chunk-7O3Y4PPD.js";
11
16
 
12
17
  // src/with-formula/derivations/strategy-hash.ts
13
18
  async function computeStrategyHash(source, outputKeys, derive, sources) {
@@ -46,7 +51,8 @@ var DerivationRegistry = class {
46
51
  }
47
52
  const outputKeys = Object.keys(spec.outputs);
48
53
  const strategyHash = await computeStrategyHash(spec.source, outputKeys, spec.derive, spec.sources);
49
- const reg = { spec, strategyHash };
54
+ const triggers = normalizeTriggerBy(spec.triggerBy);
55
+ const reg = { spec, strategyHash, triggers };
50
56
  if (spec.name !== void 0) this._byName.set(spec.name, reg);
51
57
  const fromSource = this._bySource.get(spec.source);
52
58
  if (fromSource) fromSource.push(reg);
@@ -56,7 +62,7 @@ var DerivationRegistry = class {
56
62
  if (fromExtra) fromExtra.push(reg);
57
63
  else this._bySource.set(extra, [reg]);
58
64
  }
59
- for (const t of spec.triggerBy ?? []) {
65
+ for (const t of triggers) {
60
66
  const fromTrigger = this._bySource.get(t.collection);
61
67
  if (fromTrigger) fromTrigger.push(reg);
62
68
  else this._bySource.set(t.collection, [reg]);
@@ -81,6 +87,53 @@ var DerivationRegistry = class {
81
87
  strategiesProducingOutput(collection) {
82
88
  return this._byOutput.get(collection) ?? [];
83
89
  }
90
+ /**
91
+ * The #1253-pattern typo guard for match fields (#1249): a misspelt
92
+ * `to`/`from` silently matches nothing forever, so validate against the
93
+ * collection's enumerable field set at the earliest point it exists.
94
+ * `schemaFieldKeys(schema) === undefined` (TS-generic collection,
95
+ * unreadable validator) is DELIBERATELY silent — those fields are real
96
+ * and unenumerable. `configKeys` folds in the collection's other
97
+ * non-schema field declarations (fieldMeta/moneyFields/dictKeyFields/
98
+ * refs/computed); `denormExempt` is derived here from this registry's
99
+ * own strategies rather than taken as a parameter — a field this
100
+ * collection's own derivations write via `denorm` is never a typo.
101
+ */
102
+ validateFieldsFor(collectionName, schema, configKeys) {
103
+ const shapeKeys = schemaFieldKeys(schema);
104
+ if (shapeKeys === void 0) return;
105
+ const keys = /* @__PURE__ */ new Set([...shapeKeys, ...configKeys]);
106
+ const denormExempt = /* @__PURE__ */ new Set();
107
+ for (const reg of new Set([...this._bySource.values()].flat())) {
108
+ if (reg.spec.source !== collectionName) continue;
109
+ for (const out of Object.values(reg.spec.outputs)) {
110
+ if (out.collection === collectionName) for (const d of out.denorm ?? []) denormExempt.add(d);
111
+ }
112
+ }
113
+ const regs = new Set([...this._bySource.values()].flat());
114
+ for (const reg of regs) {
115
+ for (const t of reg.triggers) {
116
+ if (reg.spec.source === collectionName) {
117
+ for (const p of t.match) {
118
+ if (!keys.has(p.to) && !denormExempt.has(p.to)) {
119
+ throw new ValidationError(
120
+ `derivation "${reg.spec.name ?? reg.spec.source}": triggerBy match names source field "${p.to}", which "${collectionName}" does not declare \u2014 a typo here silently matches nothing forever`
121
+ );
122
+ }
123
+ }
124
+ }
125
+ if (t.collection === collectionName) {
126
+ for (const p of t.match) {
127
+ if (p.from !== "id" && !keys.has(p.from) && !denormExempt.has(p.from)) {
128
+ throw new ValidationError(
129
+ `derivation "${reg.spec.name ?? reg.spec.source}": triggerBy match reads "${p.from}" from written "${collectionName}" records, which that collection does not declare \u2014 a typo here silently matches nothing forever`
130
+ );
131
+ }
132
+ }
133
+ }
134
+ }
135
+ }
136
+ }
84
137
  /**
85
138
  * All registered strategies as a flat, deduplicated array.
86
139
  * Each strategy is indexed once per source (not once per output key),
@@ -172,4 +225,4 @@ var DerivationRegistry = class {
172
225
  export {
173
226
  DerivationRegistry
174
227
  };
175
- //# sourceMappingURL=chunk-OQDHIAR2.js.map
228
+ //# sourceMappingURL=chunk-H7XCIM3Z.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 { 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 { 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 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(collectionName: string, schema: unknown, configKeys: ReadonlyArray<string>): void {\n const shapeKeys = schemaFieldKeys(schema)\n if (shapeKeys === undefined) return\n const keys = new Set([...shapeKeys, ...configKeys])\n const denormExempt = new Set<string>()\n for (const reg of new Set([...this._bySource.values()].flat())) {\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 regs = new Set([...this._bySource.values()].flat())\n for (const reg of regs) {\n for (const t of reg.triggers) {\n if (reg.spec.source === collectionName) {\n for (const p of t.match) {\n if (!keys.has(p.to) && !denormExempt.has(p.to)) {\n throw new ValidationError(\n `derivation \"${reg.spec.name ?? reg.spec.source}\": triggerBy match names source field \"${p.to}\", which \"${collectionName}\" does not declare — a typo here silently matches nothing forever`)\n }\n }\n }\n if (t.collection === collectionName) {\n for (const p of t.match) {\n if (p.from !== 'id' && !keys.has(p.from) && !denormExempt.has(p.from)) {\n throw new ValidationError(\n `derivation \"${reg.spec.name ?? reg.spec.source}\": 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 /**\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":";;;;;;;;;;;;;;;;;AAWA,eAAsB,oBACpB,QACA,YAEA,QACA,SACiB;AACjB,QAAM,YAAY,KAAK,UAAU;AAAA,IAC/B;AAAA,IACA,SAAS,CAAC,GAAG,UAAU,EAAE,KAAK;AAAA,IAC9B,QAAQ,OAAO,SAAS;AAAA;AAAA;AAAA;AAAA,IAIxB,GAAI,SAAS,SAAS,EAAE,SAAS,CAAC,GAAG,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC;AAAA,EAC5D,CAAC;AACD,QAAM,QAAQ,IAAI,YAAY,EAAE,OAAO,SAAS;AAChD,SAAO,UAAU,KAAK;AACxB;;;ACXA,IAAM,eAAe;AAOrB,SAAS,oBAAoB,WAA2B;AACtD,QAAM,SAAS,IAAI,YAAY;AAC/B,SAAO,UAAU,SAAS,MAAM,IAAI,UAAU,MAAM,GAAG,CAAC,OAAO,MAAM,IAAI;AAC3E;AAgBO,IAAM,qBAAN,MAAyB;AAAA,EACb,YAAY,oBAAI,IAAkC;AAAA,EAClD,YAAY,oBAAI,IAAkC;AAAA,EAClD,UAAU,oBAAI,IAAgC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQ/D,MAAM,SAAS,MAA+C;AAC5D,QAAI,KAAK,SAAS,UAAa,KAAK,QAAQ,IAAI,KAAK,IAAI,GAAG;AAC1D,YAAM,IAAI,2BAA2B,KAAK,MAAM,YAAY;AAAA,IAC9D;AAEA,UAAM,aAAa,OAAO,KAAK,KAAK,OAAO;AAC3C,UAAM,eAAe,MAAM,oBAAoB,KAAK,QAAQ,YAAY,KAAK,QAAQ,KAAK,OAAO;AACjG,UAAM,WAAW,mBAAmB,KAAK,SAAS;AAClD,UAAM,MAA0B,EAAE,MAAM,cAAc,SAAS;AAE/D,QAAI,KAAK,SAAS,OAAW,MAAK,QAAQ,IAAI,KAAK,MAAM,GAAG;AAE5D,UAAM,aAAa,KAAK,UAAU,IAAI,KAAK,MAAM;AACjD,QAAI,WAAY,YAAW,KAAK,GAAG;AAAA,QAC9B,MAAK,UAAU,IAAI,KAAK,QAAQ,CAAC,GAAG,CAAC;AAM1C,eAAW,SAAS,KAAK,WAAW,CAAC,GAAG;AACtC,YAAM,YAAY,KAAK,UAAU,IAAI,KAAK;AAC1C,UAAI,UAAW,WAAU,KAAK,GAAG;AAAA,UAC5B,MAAK,UAAU,IAAI,OAAO,CAAC,GAAG,CAAC;AAAA,IACtC;AAMA,eAAW,KAAK,UAAU;AACxB,YAAM,cAAc,KAAK,UAAU,IAAI,EAAE,UAAU;AACnD,UAAI,YAAa,aAAY,KAAK,GAAG;AAAA,UAChC,MAAK,UAAU,IAAI,EAAE,YAAY,CAAC,GAAG,CAAC;AAAA,IAC7C;AAQA,QAAI,KAAK,QAAQ;AACf,YAAM,aAAa,KAAK,UAAU,IAAI,KAAK,OAAO,IAAI;AACtD,UAAI,WAAY,YAAW,KAAK,GAAG;AAAA,UAC9B,MAAK,UAAU,IAAI,KAAK,OAAO,MAAM,CAAC,GAAG,CAAC;AAAA,IACjD;AAEA,eAAW,OAAO,YAAY;AAC5B,YAAM,SAAS,KAAK,QAAQ,GAAG;AAC/B,UAAI,CAAC,OAAQ;AACb,YAAM,mBAAmB,OAAO;AAChC,YAAM,MAAM,KAAK,UAAU,IAAI,gBAAgB;AAC/C,UAAI,IAAK,KAAI,KAAK,GAAG;AAAA,UAChB,MAAK,UAAU,IAAI,kBAAkB,CAAC,GAAG,CAAC;AAAA,IACjD;AAAA,EACF;AAAA,EAEA,oBAAoB,QAAmD;AACrE,WAAO,KAAK,UAAU,IAAI,MAAM,KAAK,CAAC;AAAA,EACxC;AAAA,EAEA,0BAA0B,YAAuD;AAC/E,WAAO,KAAK,UAAU,IAAI,UAAU,KAAK,CAAC;AAAA,EAC5C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAcA,kBAAkB,gBAAwB,QAAiB,YAAyC;AAClG,UAAM,YAAY,gBAAgB,MAAM;AACxC,QAAI,cAAc,OAAW;AAC7B,UAAM,OAAO,oBAAI,IAAI,CAAC,GAAG,WAAW,GAAG,UAAU,CAAC;AAClD,UAAM,eAAe,oBAAI,IAAY;AACrC,eAAW,OAAO,IAAI,IAAI,CAAC,GAAG,KAAK,UAAU,OAAO,CAAC,EAAE,KAAK,CAAC,GAAG;AAC9D,UAAI,IAAI,KAAK,WAAW,eAAgB;AACxC,iBAAW,OAAO,OAAO,OAAO,IAAI,KAAK,OAAO,GAAiE;AAC/G,YAAI,IAAI,eAAe,eAAgB,YAAW,KAAK,IAAI,UAAU,CAAC,EAAG,cAAa,IAAI,CAAC;AAAA,MAC7F;AAAA,IACF;AACA,UAAM,OAAO,IAAI,IAAI,CAAC,GAAG,KAAK,UAAU,OAAO,CAAC,EAAE,KAAK,CAAC;AACxD,eAAW,OAAO,MAAM;AACtB,iBAAW,KAAK,IAAI,UAAU;AAC5B,YAAI,IAAI,KAAK,WAAW,gBAAgB;AACtC,qBAAW,KAAK,EAAE,OAAO;AACvB,gBAAI,CAAC,KAAK,IAAI,EAAE,EAAE,KAAK,CAAC,aAAa,IAAI,EAAE,EAAE,GAAG;AAC9C,oBAAM,IAAI;AAAA,gBACR,eAAe,IAAI,KAAK,QAAQ,IAAI,KAAK,MAAM,0CAA0C,EAAE,EAAE,aAAa,cAAc;AAAA,cAAmE;AAAA,YAC/L;AAAA,UACF;AAAA,QACF;AACA,YAAI,EAAE,eAAe,gBAAgB;AACnC,qBAAW,KAAK,EAAE,OAAO;AACvB,gBAAI,EAAE,SAAS,QAAQ,CAAC,KAAK,IAAI,EAAE,IAAI,KAAK,CAAC,aAAa,IAAI,EAAE,IAAI,GAAG;AACrE,oBAAM,IAAI;AAAA,gBACR,eAAe,IAAI,KAAK,QAAQ,IAAI,KAAK,MAAM,6BAA6B,EAAE,IAAI,mBAAmB,cAAc;AAAA,cAAkG;AAAA,YACzN;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYA,MAAyC;AACvC,UAAM,OAAO,oBAAI,IAAwB;AACzC,eAAW,cAAc,KAAK,UAAU,OAAO,GAAG;AAChD,iBAAW,KAAK,WAAY,MAAK,IAAI,CAAC;AAAA,IACxC;AACA,WAAO,CAAC,GAAG,IAAI;AAAA,EACjB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAiBA,QAA6I;AAC3I,UAAM,MAAsF,CAAC;AAC7F,eAAW,OAAO,KAAK,IAAI,GAAG;AAC5B,YAAM,OAAO,IAAI;AACjB,YAAM,qBAAqB;AAAA,QACzB,KAAK;AAAA,QACL,GAAI,KAAK,WAAW,CAAC;AAAA,QACrB,IAAI,KAAK,aAAa,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,UAAU;AAAA,QACjD,GAAI,KAAK,SAAS,CAAC,KAAK,OAAO,IAAI,IAAI,CAAC;AAAA,MAC1C;AACA,YAAM,UAAsB,mBAAmB,IAAI,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,aAAa,EAAE;AAClG,iBAAW,OAAO,OAAO,KAAK,KAAK,OAAO,GAAG;AAC3C,cAAM,SAAS,KAAK,QAAQ,GAAG;AAC/B,YAAI,CAAC,OAAQ;AACb,YAAI,OAAO,UAAU,YAAY,OAAO,eAAe,KAAK,UAAU,OAAO,WAAW,OAAW;AACnG,YAAI,KAAK,EAAE,QAAQ,EAAE,YAAY,OAAO,YAAY,OAAO,aAAa,GAAG,SAAS,MAAM,cAAc,OAAO,SAAS,CAAC;AAAA,MAC3H;AACA,UAAI,KAAK,QAAQ;AACf,YAAI,KAAK;AAAA,UACP,QAAQ,EAAE,YAAY,KAAK,QAAQ,OAAO,KAAK,OAAO,MAAM;AAAA,UAC5D,SAAS,CAAC,EAAE,YAAY,KAAK,OAAO,MAAM,OAAO,aAAa,CAAC;AAAA,UAC/D,MAAM;AAAA,UACN,OAAO;AAAA,QACT,CAAC;AAAA,MACH;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAgBA,SAAS,OAAwB;AAC/B,UAAM,IAAI,SAAS,IAAI,SAAS;AAChC,QAAI,CAAC,OAAO;AACV,iBAAW,QAAQ,KAAK,MAAM,EAAG,GAAE,gBAAgB,KAAK,QAAQ,KAAK,SAAS,KAAK,MAAM,KAAK,KAAK;AAAA,IACrG;AACA,QAAI;AACF,QAAE,cAAc;AAAA,IAClB,SAAS,GAAG;AACV,UAAI,aAAa,qBAAsB,OAAM,IAAI,qBAAqB,EAAE,KAAK,IAAI,mBAAmB,CAAC;AACrG,YAAM;AAAA,IACR;AAAA,EACF;AACF;","names":[]}
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  getAtPath
3
- } from "./chunk-DIVY2CJZ.js";
3
+ } from "./chunk-TRGTKX5E.js";
4
4
  import {
5
5
  SearchNotEnabledError
6
- } from "./chunk-SW4TOSJL.js";
6
+ } from "./chunk-7O3Y4PPD.js";
7
7
 
8
8
  // src/with-lookup/search/tokenize.ts
9
9
  var WORD = /[\p{L}\p{N}]+/gu;
@@ -294,31 +294,31 @@ function buildBlobFieldEntries(filenamesByField) {
294
294
  function withSearch() {
295
295
  return {
296
296
  async search(ctx, field, query, opts) {
297
- const { search } = await import("./collection-facade-OPJ3EC4L.js");
297
+ const { search } = await import("./collection-facade-MGGHQ3HU.js");
298
298
  return search(ctx, field, query, opts);
299
299
  },
300
300
  async retrieve(ctx, query, opts) {
301
- const { retrieve } = await import("./collection-facade-OPJ3EC4L.js");
301
+ const { retrieve } = await import("./collection-facade-MGGHQ3HU.js");
302
302
  return retrieve(ctx, query, opts);
303
303
  },
304
304
  async similarTo(ctx, vector, opts) {
305
- const { similarTo } = await import("./collection-facade-OPJ3EC4L.js");
305
+ const { similarTo } = await import("./collection-facade-MGGHQ3HU.js");
306
306
  return similarTo(ctx, vector, opts);
307
307
  },
308
308
  async warmIndex(ctx) {
309
- const { warmIndex } = await import("./collection-facade-OPJ3EC4L.js");
309
+ const { warmIndex } = await import("./collection-facade-MGGHQ3HU.js");
310
310
  return warmIndex(ctx);
311
311
  },
312
312
  async flushIndex(ctx) {
313
- const { flushIndex } = await import("./collection-facade-OPJ3EC4L.js");
313
+ const { flushIndex } = await import("./collection-facade-MGGHQ3HU.js");
314
314
  return flushIndex(ctx);
315
315
  },
316
316
  async embedOnWrite(ctx, id, record, version) {
317
- const { embedOnWrite } = await import("./collection-facade-OPJ3EC4L.js");
317
+ const { embedOnWrite } = await import("./collection-facade-MGGHQ3HU.js");
318
318
  return embedOnWrite(ctx, id, record, version);
319
319
  },
320
320
  async rebuildEmbeddings(ctx) {
321
- const { rebuildEmbeddings } = await import("./collection-facade-OPJ3EC4L.js");
321
+ const { rebuildEmbeddings } = await import("./collection-facade-MGGHQ3HU.js");
322
322
  return rebuildEmbeddings(ctx);
323
323
  }
324
324
  };
@@ -364,4 +364,4 @@ export {
364
364
  buildBlobFieldEntries,
365
365
  withSearch
366
366
  };
367
- //# sourceMappingURL=chunk-IAHDSFFA.js.map
367
+ //# sourceMappingURL=chunk-HN4FNA4X.js.map
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  envelopeBodyForHash
3
- } from "./chunk-DOPZWTMJ.js";
3
+ } from "./chunk-CIGAQBJR.js";
4
4
  import {
5
5
  sha256Hex
6
- } from "./chunk-USKHHOIV.js";
6
+ } from "./chunk-SL3JAAKN.js";
7
7
 
8
8
  // src/with-commit/history/ledger/entry.ts
9
9
  function canonicalJson(value) {
@@ -67,4 +67,4 @@ export {
67
67
  parseIndex,
68
68
  envelopePayloadHash
69
69
  };
70
- //# sourceMappingURL=chunk-JRWLUWDM.js.map
70
+ //# sourceMappingURL=chunk-IPFE6MVM.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  BrokerNotEnabledError
3
- } from "./chunk-SW4TOSJL.js";
3
+ } from "./chunk-7O3Y4PPD.js";
4
4
 
5
5
  // src/port/with/broker-strategy.ts
6
6
  var NO_BROKER = {
@@ -27,4 +27,4 @@ export {
27
27
  NO_BROKER,
28
28
  buildCredentialBrokerHandle
29
29
  };
30
- //# sourceMappingURL=chunk-PV7XXAXK.js.map
30
+ //# sourceMappingURL=chunk-JBDFMYKQ.js.map