@noy-db/hub 0.7.0-pre.14 → 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 (226) hide show
  1. package/CHANGELOG.md +148 -0
  2. package/README.md +2 -2
  3. package/dist/{api-JPZT6BDD.js → api-TXFOVOXX.js} +6 -6
  4. package/dist/as/index.js +5 -5
  5. package/dist/at/index.js +4 -4
  6. package/dist/attestation/index.js +12 -12
  7. package/dist/{backup-AKWIMYWU.js → backup-IJTB4S4M.js} +6 -6
  8. package/dist/blobs/index.js +5 -5
  9. package/dist/broker/index.js +6 -6
  10. package/dist/cargo/index.js +18 -18
  11. package/dist/{chunk-5UKIZIO3.js → chunk-2577DKXB.js} +2 -2
  12. package/dist/{chunk-4SZMZAYN.js → chunk-2C3AQB46.js} +4 -4
  13. package/dist/{chunk-4SZMZAYN.js.map → chunk-2C3AQB46.js.map} +1 -1
  14. package/dist/{chunk-EVKR67PQ.js → chunk-2N4GY74U.js} +4 -4
  15. package/dist/{chunk-WWNYSV7S.js → chunk-2Y4IMKA6.js} +3 -3
  16. package/dist/{chunk-3LK2XZCW.js → chunk-3RCJJBNR.js} +8 -8
  17. package/dist/{chunk-GM4IM7TC.js → chunk-453F654R.js} +2 -2
  18. package/dist/{chunk-JUBWUJY5.js → chunk-4GVM6QZA.js} +2 -2
  19. package/dist/{chunk-KCUIMITG.js → chunk-5VCRVKOZ.js} +2 -2
  20. package/dist/{chunk-NLOLF6LD.js → chunk-5WDXHNSW.js} +3 -3
  21. package/dist/{chunk-BMSOTHIA.js → chunk-6GMZ7HEE.js} +3 -3
  22. package/dist/{chunk-RDZZHYMV.js → chunk-6I2RQCET.js} +3 -3
  23. package/dist/chunk-6LMAVYOY.js +63 -0
  24. package/dist/chunk-6LMAVYOY.js.map +1 -0
  25. package/dist/{chunk-CIGAQBJR.js → chunk-77K4PG6P.js} +3 -3
  26. package/dist/{chunk-N4CHCXDL.js → chunk-7MG7SJT7.js} +1 -1
  27. package/dist/{chunk-N4CHCXDL.js.map → chunk-7MG7SJT7.js.map} +1 -1
  28. package/dist/{chunk-RGSTMLVO.js → chunk-7V4TP3AF.js} +3 -3
  29. package/dist/{chunk-WSJG5L5C.js → chunk-ANATMFIO.js} +3 -3
  30. package/dist/{chunk-DMJZBQ7F.js → chunk-AO42KJO6.js} +4 -4
  31. package/dist/{chunk-ZG4XLOKB.js → chunk-BM5TWITZ.js} +3 -3
  32. package/dist/{chunk-IPFE6MVM.js → chunk-BOET4NA4.js} +2 -2
  33. package/dist/{chunk-TGPST6FK.js → chunk-BSFNRLK2.js} +3 -3
  34. package/dist/{chunk-MGOXJIBV.js → chunk-CARABLSQ.js} +2 -2
  35. package/dist/{chunk-RJ7NN2UR.js → chunk-CHJBLCOG.js} +5 -5
  36. package/dist/{chunk-GHHUF2KL.js → chunk-CPWQB3N5.js} +4 -4
  37. package/dist/{chunk-Q4RWFV3G.js → chunk-ELNXJMGB.js} +4 -4
  38. package/dist/{chunk-MLO75SFJ.js → chunk-EQEYOJBM.js} +2 -2
  39. package/dist/{chunk-PFBL4M7E.js → chunk-EYBQEIUY.js} +2 -2
  40. package/dist/{chunk-AMODH7AU.js → chunk-FMZY5Q6L.js} +3 -3
  41. package/dist/{chunk-2HVILGVR.js → chunk-FXBIP2WD.js} +2 -2
  42. package/dist/{chunk-VNR2SNVJ.js → chunk-G56KBWFY.js} +5 -5
  43. package/dist/{chunk-QQ2YMQZU.js → chunk-GPEQUXHL.js} +3 -3
  44. package/dist/{chunk-WZW37ZHL.js → chunk-K6LHRFBL.js} +5 -5
  45. package/dist/{chunk-FYEZC4PX.js → chunk-K7NTTA6P.js} +2 -2
  46. package/dist/{chunk-YQWBEJCS.js → chunk-KG7TZKZG.js} +3 -3
  47. package/dist/{chunk-EWPRPP3M.js → chunk-KJIMGIWO.js} +4 -4
  48. package/dist/{chunk-THX6FEEC.js → chunk-KUJDV5QH.js} +3 -3
  49. package/dist/{chunk-FUJSIP4K.js → chunk-KUX3OB6D.js} +2 -2
  50. package/dist/{chunk-U7VPHXXO.js → chunk-L742JPKZ.js} +4 -4
  51. package/dist/{chunk-EKZ6VZYF.js → chunk-L7CIOOBW.js} +2 -2
  52. package/dist/{chunk-V2PNPF6J.js → chunk-LVS44C35.js} +6 -6
  53. package/dist/{chunk-XGDYGUEH.js → chunk-MUM7IANK.js} +2 -2
  54. package/dist/{chunk-EKVNVJVV.js → chunk-MWAHERVR.js} +12 -3
  55. package/dist/chunk-MWAHERVR.js.map +1 -0
  56. package/dist/{chunk-FFBYRWDJ.js → chunk-NA2NIJZI.js} +2 -2
  57. package/dist/{chunk-KLPASWYY.js → chunk-NKHRDYOR.js} +3 -3
  58. package/dist/{chunk-VGXZT72I.js → chunk-PT43Y56J.js} +4 -4
  59. package/dist/{chunk-LHH6H43C.js → chunk-RRNRNANG.js} +6 -6
  60. package/dist/{chunk-BOBFL5TW.js → chunk-SPXXX5E4.js} +2 -2
  61. package/dist/{chunk-KTDGZPOZ.js → chunk-SPYWXKJN.js} +2 -2
  62. package/dist/{chunk-4RUFYGWG.js → chunk-SZJ3DLZA.js} +2 -2
  63. package/dist/{chunk-YPXNAP72.js → chunk-U4FOQDY4.js} +2 -2
  64. package/dist/{chunk-DRB6IHPS.js → chunk-URDWKAQQ.js} +54 -54
  65. package/dist/{chunk-OMB2ZKIT.js → chunk-UXWB3FPF.js} +8 -8
  66. package/dist/{chunk-NOSRK3ZZ.js → chunk-VNZUVPUO.js} +10 -10
  67. package/dist/{chunk-BBWVXF57.js → chunk-VXGSWL6L.js} +6 -6
  68. package/dist/{chunk-XNIQ7DP2.js → chunk-X2DLENDQ.js} +3 -3
  69. package/dist/{chunk-B2KCRDJM.js → chunk-XTXOCYOJ.js} +4 -4
  70. package/dist/{chunk-MMOZQTXV.js → chunk-ZVO4QVPD.js} +3 -3
  71. package/dist/classified/index.js +3 -3
  72. package/dist/{classified-marker-OO65UYXN.js → classified-marker-LI2SF2E4.js} +3 -3
  73. package/dist/{collection-facade-VOWW732S.js → collection-facade-4GRREZ6C.js} +8 -8
  74. package/dist/consent/index.js +4 -4
  75. package/dist/cover/index.js +4 -4
  76. package/dist/custody/index.js +6 -6
  77. package/dist/{dead-filter-OMMVBAKZ.js → dead-filter-TSWZQRR5.js} +2 -2
  78. package/dist/{delegation-VRYMQRCF.js → delegation-OVIFFPG4.js} +4 -4
  79. package/dist/derivations/index.js +11 -11
  80. package/dist/{derive-HHBRFS2U.js → derive-6O5SWQKN.js} +4 -4
  81. package/dist/directory/index.js +5 -5
  82. package/dist/{dispatch-DC3LQJ3S.js → dispatch-SYKRVTYW.js} +45 -14
  83. package/dist/dispatch-SYKRVTYW.js.map +1 -0
  84. package/dist/{dispatch-GGFBWQU7.js → dispatch-WC6X2M6C.js} +5 -5
  85. package/dist/{enclave-VM2YQONI.js → enclave-KJOTOH7X.js} +4 -4
  86. package/dist/{executor-5XJNV5H5.js → executor-PUAO6AKJ.js} +9 -9
  87. package/dist/{export-accessible-2LOBM67T.js → export-accessible-72EQNBMR.js} +7 -7
  88. package/dist/{extract-partition-AZGSEMIF.js → extract-partition-PUYNU3UF.js} +10 -10
  89. package/dist/{fanout-sidecar-HJIVUPTD.js → fanout-sidecar-WUFXNYP4.js} +4 -4
  90. package/dist/forget/index.js +4 -4
  91. package/dist/history/index.js +7 -7
  92. package/dist/i18n/index.js +6 -6
  93. package/dist/index.js +50 -50
  94. package/dist/introspection/index.js +5 -5
  95. package/dist/{issue-RH4H733Z.js → issue-SIDORTSZ.js} +6 -6
  96. package/dist/kernel/types.d.ts +39 -0
  97. package/dist/{ledger-454SU3VE.js → ledger-F33ZVMTK.js} +6 -6
  98. package/dist/liberate-LCDPNAG2.js +24 -0
  99. package/dist/{link-set-67CAMUAL.js → link-set-FKNWAYKS.js} +5 -5
  100. package/dist/{managed-secret-NHRYG7CD.js → managed-secret-PQYKSR6T.js} +5 -5
  101. package/dist/materialized-views/index.js +9 -9
  102. package/dist/{noydb-Y53CQHZK.js → noydb-RFEFYWE4.js} +29 -29
  103. package/dist/periods/index.js +6 -6
  104. package/dist/pod/index.js +32 -32
  105. package/dist/{pod-handle-S7AMCJIF.js → pod-handle-Q736KYON.js} +4 -4
  106. package/dist/policy/index.js +5 -5
  107. package/dist/port/to/index.d.ts +40 -0
  108. package/dist/portability/index.js +6 -6
  109. package/dist/{post-register-HIYY4Y5S.js → post-register-LNE2FE2A.js} +4 -4
  110. package/dist/{register-7OJWAWT5.js → register-I2DZXGAR.js} +10 -10
  111. package/dist/{registry-HDINK5QW.js → registry-K734HBSO.js} +12 -12
  112. package/dist/{registry-5MVJGPXW.js → registry-VSSQPIGF.js} +4 -4
  113. package/dist/{request-withdrawal-P5EQATZ7.js → request-withdrawal-KFQHEZ25.js} +9 -9
  114. package/dist/{reveal-IMGQ2EE5.js → reveal-67RDQRIN.js} +3 -3
  115. package/dist/{revoke-POHP4GPB.js → revoke-DQDZAZZM.js} +6 -6
  116. package/dist/sealed-record/index.js +6 -6
  117. package/dist/search/index.js +1 -1
  118. package/dist/{seed-UYR6YG3V.js → seed-G42JYN56.js} +6 -6
  119. package/dist/sequence/index.js +4 -4
  120. package/dist/session/index.js +3 -3
  121. package/dist/{signer-5K3WDHOC.js → signer-WAMDZHEN.js} +5 -5
  122. package/dist/snapshots/index.js +5 -5
  123. package/dist/{stale-AU74OPUW.js → stale-DDL7WQEZ.js} +5 -5
  124. package/dist/{storage-AVJA5BTW.js → storage-FLR73HHF.js} +5 -5
  125. package/dist/{store-coordination-provider-RX2CGWXV.js → store-coordination-provider-MEQ2MJQG.js} +5 -5
  126. package/dist/sync/index.js +4 -4
  127. package/dist/team/index.js +8 -8
  128. package/dist/tiers/index.js +4 -4
  129. package/dist/to/index.js +1 -1
  130. package/dist/vault-head/index.js +3 -3
  131. package/dist/{walk-ERAJ5RHO.js → walk-3UQBRMDV.js} +6 -6
  132. package/dist/with-formula/derivations/trigger-match.d.ts +55 -0
  133. package/dist/with-formula/derivations/types.d.ts +33 -0
  134. package/dist/{withdraw-accessible-42D32Z7G.js → withdraw-accessible-EL5GXZBS.js} +8 -8
  135. package/package.json +4 -4
  136. package/dist/chunk-EKVNVJVV.js.map +0 -1
  137. package/dist/chunk-TPHAGLUH.js +0 -30
  138. package/dist/chunk-TPHAGLUH.js.map +0 -1
  139. package/dist/dispatch-DC3LQJ3S.js.map +0 -1
  140. package/dist/liberate-AAZSP2BT.js +0 -24
  141. /package/dist/{api-JPZT6BDD.js.map → api-TXFOVOXX.js.map} +0 -0
  142. /package/dist/{backup-AKWIMYWU.js.map → backup-IJTB4S4M.js.map} +0 -0
  143. /package/dist/{chunk-5UKIZIO3.js.map → chunk-2577DKXB.js.map} +0 -0
  144. /package/dist/{chunk-EVKR67PQ.js.map → chunk-2N4GY74U.js.map} +0 -0
  145. /package/dist/{chunk-WWNYSV7S.js.map → chunk-2Y4IMKA6.js.map} +0 -0
  146. /package/dist/{chunk-3LK2XZCW.js.map → chunk-3RCJJBNR.js.map} +0 -0
  147. /package/dist/{chunk-GM4IM7TC.js.map → chunk-453F654R.js.map} +0 -0
  148. /package/dist/{chunk-JUBWUJY5.js.map → chunk-4GVM6QZA.js.map} +0 -0
  149. /package/dist/{chunk-KCUIMITG.js.map → chunk-5VCRVKOZ.js.map} +0 -0
  150. /package/dist/{chunk-NLOLF6LD.js.map → chunk-5WDXHNSW.js.map} +0 -0
  151. /package/dist/{chunk-BMSOTHIA.js.map → chunk-6GMZ7HEE.js.map} +0 -0
  152. /package/dist/{chunk-RDZZHYMV.js.map → chunk-6I2RQCET.js.map} +0 -0
  153. /package/dist/{chunk-CIGAQBJR.js.map → chunk-77K4PG6P.js.map} +0 -0
  154. /package/dist/{chunk-RGSTMLVO.js.map → chunk-7V4TP3AF.js.map} +0 -0
  155. /package/dist/{chunk-WSJG5L5C.js.map → chunk-ANATMFIO.js.map} +0 -0
  156. /package/dist/{chunk-DMJZBQ7F.js.map → chunk-AO42KJO6.js.map} +0 -0
  157. /package/dist/{chunk-ZG4XLOKB.js.map → chunk-BM5TWITZ.js.map} +0 -0
  158. /package/dist/{chunk-IPFE6MVM.js.map → chunk-BOET4NA4.js.map} +0 -0
  159. /package/dist/{chunk-TGPST6FK.js.map → chunk-BSFNRLK2.js.map} +0 -0
  160. /package/dist/{chunk-MGOXJIBV.js.map → chunk-CARABLSQ.js.map} +0 -0
  161. /package/dist/{chunk-RJ7NN2UR.js.map → chunk-CHJBLCOG.js.map} +0 -0
  162. /package/dist/{chunk-GHHUF2KL.js.map → chunk-CPWQB3N5.js.map} +0 -0
  163. /package/dist/{chunk-Q4RWFV3G.js.map → chunk-ELNXJMGB.js.map} +0 -0
  164. /package/dist/{chunk-MLO75SFJ.js.map → chunk-EQEYOJBM.js.map} +0 -0
  165. /package/dist/{chunk-PFBL4M7E.js.map → chunk-EYBQEIUY.js.map} +0 -0
  166. /package/dist/{chunk-AMODH7AU.js.map → chunk-FMZY5Q6L.js.map} +0 -0
  167. /package/dist/{chunk-2HVILGVR.js.map → chunk-FXBIP2WD.js.map} +0 -0
  168. /package/dist/{chunk-VNR2SNVJ.js.map → chunk-G56KBWFY.js.map} +0 -0
  169. /package/dist/{chunk-QQ2YMQZU.js.map → chunk-GPEQUXHL.js.map} +0 -0
  170. /package/dist/{chunk-WZW37ZHL.js.map → chunk-K6LHRFBL.js.map} +0 -0
  171. /package/dist/{chunk-FYEZC4PX.js.map → chunk-K7NTTA6P.js.map} +0 -0
  172. /package/dist/{chunk-YQWBEJCS.js.map → chunk-KG7TZKZG.js.map} +0 -0
  173. /package/dist/{chunk-EWPRPP3M.js.map → chunk-KJIMGIWO.js.map} +0 -0
  174. /package/dist/{chunk-THX6FEEC.js.map → chunk-KUJDV5QH.js.map} +0 -0
  175. /package/dist/{chunk-FUJSIP4K.js.map → chunk-KUX3OB6D.js.map} +0 -0
  176. /package/dist/{chunk-U7VPHXXO.js.map → chunk-L742JPKZ.js.map} +0 -0
  177. /package/dist/{chunk-EKZ6VZYF.js.map → chunk-L7CIOOBW.js.map} +0 -0
  178. /package/dist/{chunk-V2PNPF6J.js.map → chunk-LVS44C35.js.map} +0 -0
  179. /package/dist/{chunk-XGDYGUEH.js.map → chunk-MUM7IANK.js.map} +0 -0
  180. /package/dist/{chunk-FFBYRWDJ.js.map → chunk-NA2NIJZI.js.map} +0 -0
  181. /package/dist/{chunk-KLPASWYY.js.map → chunk-NKHRDYOR.js.map} +0 -0
  182. /package/dist/{chunk-VGXZT72I.js.map → chunk-PT43Y56J.js.map} +0 -0
  183. /package/dist/{chunk-LHH6H43C.js.map → chunk-RRNRNANG.js.map} +0 -0
  184. /package/dist/{chunk-BOBFL5TW.js.map → chunk-SPXXX5E4.js.map} +0 -0
  185. /package/dist/{chunk-KTDGZPOZ.js.map → chunk-SPYWXKJN.js.map} +0 -0
  186. /package/dist/{chunk-4RUFYGWG.js.map → chunk-SZJ3DLZA.js.map} +0 -0
  187. /package/dist/{chunk-YPXNAP72.js.map → chunk-U4FOQDY4.js.map} +0 -0
  188. /package/dist/{chunk-DRB6IHPS.js.map → chunk-URDWKAQQ.js.map} +0 -0
  189. /package/dist/{chunk-OMB2ZKIT.js.map → chunk-UXWB3FPF.js.map} +0 -0
  190. /package/dist/{chunk-NOSRK3ZZ.js.map → chunk-VNZUVPUO.js.map} +0 -0
  191. /package/dist/{chunk-BBWVXF57.js.map → chunk-VXGSWL6L.js.map} +0 -0
  192. /package/dist/{chunk-XNIQ7DP2.js.map → chunk-X2DLENDQ.js.map} +0 -0
  193. /package/dist/{chunk-B2KCRDJM.js.map → chunk-XTXOCYOJ.js.map} +0 -0
  194. /package/dist/{chunk-MMOZQTXV.js.map → chunk-ZVO4QVPD.js.map} +0 -0
  195. /package/dist/{classified-marker-OO65UYXN.js.map → classified-marker-LI2SF2E4.js.map} +0 -0
  196. /package/dist/{collection-facade-VOWW732S.js.map → collection-facade-4GRREZ6C.js.map} +0 -0
  197. /package/dist/{dead-filter-OMMVBAKZ.js.map → dead-filter-TSWZQRR5.js.map} +0 -0
  198. /package/dist/{delegation-VRYMQRCF.js.map → delegation-OVIFFPG4.js.map} +0 -0
  199. /package/dist/{derive-HHBRFS2U.js.map → derive-6O5SWQKN.js.map} +0 -0
  200. /package/dist/{dispatch-GGFBWQU7.js.map → dispatch-WC6X2M6C.js.map} +0 -0
  201. /package/dist/{enclave-VM2YQONI.js.map → enclave-KJOTOH7X.js.map} +0 -0
  202. /package/dist/{executor-5XJNV5H5.js.map → executor-PUAO6AKJ.js.map} +0 -0
  203. /package/dist/{export-accessible-2LOBM67T.js.map → export-accessible-72EQNBMR.js.map} +0 -0
  204. /package/dist/{extract-partition-AZGSEMIF.js.map → extract-partition-PUYNU3UF.js.map} +0 -0
  205. /package/dist/{fanout-sidecar-HJIVUPTD.js.map → fanout-sidecar-WUFXNYP4.js.map} +0 -0
  206. /package/dist/{issue-RH4H733Z.js.map → issue-SIDORTSZ.js.map} +0 -0
  207. /package/dist/{ledger-454SU3VE.js.map → ledger-F33ZVMTK.js.map} +0 -0
  208. /package/dist/{liberate-AAZSP2BT.js.map → liberate-LCDPNAG2.js.map} +0 -0
  209. /package/dist/{link-set-67CAMUAL.js.map → link-set-FKNWAYKS.js.map} +0 -0
  210. /package/dist/{managed-secret-NHRYG7CD.js.map → managed-secret-PQYKSR6T.js.map} +0 -0
  211. /package/dist/{noydb-Y53CQHZK.js.map → noydb-RFEFYWE4.js.map} +0 -0
  212. /package/dist/{pod-handle-S7AMCJIF.js.map → pod-handle-Q736KYON.js.map} +0 -0
  213. /package/dist/{post-register-HIYY4Y5S.js.map → post-register-LNE2FE2A.js.map} +0 -0
  214. /package/dist/{register-7OJWAWT5.js.map → register-I2DZXGAR.js.map} +0 -0
  215. /package/dist/{registry-5MVJGPXW.js.map → registry-K734HBSO.js.map} +0 -0
  216. /package/dist/{registry-HDINK5QW.js.map → registry-VSSQPIGF.js.map} +0 -0
  217. /package/dist/{request-withdrawal-P5EQATZ7.js.map → request-withdrawal-KFQHEZ25.js.map} +0 -0
  218. /package/dist/{reveal-IMGQ2EE5.js.map → reveal-67RDQRIN.js.map} +0 -0
  219. /package/dist/{revoke-POHP4GPB.js.map → revoke-DQDZAZZM.js.map} +0 -0
  220. /package/dist/{seed-UYR6YG3V.js.map → seed-G42JYN56.js.map} +0 -0
  221. /package/dist/{signer-5K3WDHOC.js.map → signer-WAMDZHEN.js.map} +0 -0
  222. /package/dist/{stale-AU74OPUW.js.map → stale-DDL7WQEZ.js.map} +0 -0
  223. /package/dist/{storage-AVJA5BTW.js.map → storage-FLR73HHF.js.map} +0 -0
  224. /package/dist/{store-coordination-provider-RX2CGWXV.js.map → store-coordination-provider-MEQ2MJQG.js.map} +0 -0
  225. /package/dist/{walk-ERAJ5RHO.js.map → walk-3UQBRMDV.js.map} +0 -0
  226. /package/dist/{withdraw-accessible-42D32Z7G.js.map → withdraw-accessible-EL5GXZBS.js.map} +0 -0
@@ -3,8 +3,8 @@ import {
3
3
  } from "../chunk-6YXCPL4T.js";
4
4
  import {
5
5
  recordAadFor
6
- } from "../chunk-CIGAQBJR.js";
7
- import "../chunk-4RUFYGWG.js";
6
+ } from "../chunk-77K4PG6P.js";
7
+ import "../chunk-SZJ3DLZA.js";
8
8
  import "../chunk-BOWNCWZT.js";
9
9
  import "../chunk-YSRUYAVU.js";
10
10
  import "../chunk-RMF67KCG.js";
@@ -14,7 +14,7 @@ import {
14
14
  decrypt,
15
15
  importCek
16
16
  } from "../chunk-SL3JAAKN.js";
17
- import "../chunk-N4CHCXDL.js";
17
+ import "../chunk-7MG7SJT7.js";
18
18
  import {
19
19
  SealedRecordExpiredError,
20
20
  SealedRecordMismatchError,
@@ -25,15 +25,15 @@ import {
25
25
  function withSealedRecord() {
26
26
  return {
27
27
  async sealRecordToHost(ctx, collection, id, hostSealer, opts) {
28
- const { sealRecordToHost } = await import("../enclave-VM2YQONI.js");
28
+ const { sealRecordToHost } = await import("../enclave-KJOTOH7X.js");
29
29
  return sealRecordToHost(ctx, collection, id, hostSealer, opts);
30
30
  },
31
31
  async revokeSealedRecord(ctx, collection, id, pid, opts) {
32
- const { revokeSealedRecord } = await import("../enclave-VM2YQONI.js");
32
+ const { revokeSealedRecord } = await import("../enclave-KJOTOH7X.js");
33
33
  return revokeSealedRecord(ctx, collection, id, pid, opts);
34
34
  },
35
35
  async rotateRecordCek(ctx, collection, id) {
36
- const { rotateRecordCek } = await import("../enclave-VM2YQONI.js");
36
+ const { rotateRecordCek } = await import("../enclave-KJOTOH7X.js");
37
37
  return rotateRecordCek(ctx, collection, id);
38
38
  }
39
39
  };
@@ -9,7 +9,7 @@ import {
9
9
  segmentTokens,
10
10
  tokenize,
11
11
  withSearch
12
- } from "../chunk-OMB2ZKIT.js";
12
+ } from "../chunk-UXWB3FPF.js";
13
13
  import {
14
14
  fuseRetrieval
15
15
  } from "../chunk-AURFOK3D.js";
@@ -1,18 +1,18 @@
1
1
  import {
2
2
  BROKER_COLLECTION,
3
3
  ensureCollectionDEK
4
- } from "./chunk-VNR2SNVJ.js";
5
- import "./chunk-YQWBEJCS.js";
4
+ } from "./chunk-G56KBWFY.js";
5
+ import "./chunk-KG7TZKZG.js";
6
6
  import "./chunk-JMGDHKQF.js";
7
7
  import {
8
8
  computeBrokerProof,
9
9
  deriveBrokerProofBits,
10
10
  openEnvelopeJson,
11
11
  writeEnvelopeBody
12
- } from "./chunk-CIGAQBJR.js";
12
+ } from "./chunk-77K4PG6P.js";
13
13
  import {
14
14
  buildSealedRecordEnvelope
15
- } from "./chunk-4RUFYGWG.js";
15
+ } from "./chunk-SZJ3DLZA.js";
16
16
  import "./chunk-BOWNCWZT.js";
17
17
  import "./chunk-YSRUYAVU.js";
18
18
  import "./chunk-RMF67KCG.js";
@@ -21,7 +21,7 @@ import {
21
21
  base64ToBuffer,
22
22
  bufferToBase64
23
23
  } from "./chunk-SL3JAAKN.js";
24
- import "./chunk-N4CHCXDL.js";
24
+ import "./chunk-7MG7SJT7.js";
25
25
  import {
26
26
  BrokerEnrolmentError,
27
27
  BrokerProofError,
@@ -225,4 +225,4 @@ export {
225
225
  mintStoreCredentials,
226
226
  rotateSeed
227
227
  };
228
- //# sourceMappingURL=seed-UYR6YG3V.js.map
228
+ //# sourceMappingURL=seed-G42JYN56.js.map
@@ -5,15 +5,15 @@ import {
5
5
  compileSequenceFormat,
6
6
  resolveSequenceKey,
7
7
  withSequence
8
- } from "../chunk-MMOZQTXV.js";
9
- import "../chunk-CIGAQBJR.js";
10
- import "../chunk-4RUFYGWG.js";
8
+ } from "../chunk-ZVO4QVPD.js";
9
+ import "../chunk-77K4PG6P.js";
10
+ import "../chunk-SZJ3DLZA.js";
11
11
  import "../chunk-BOWNCWZT.js";
12
12
  import "../chunk-YSRUYAVU.js";
13
13
  import "../chunk-RMF67KCG.js";
14
14
  import "../chunk-LP7BEXCT.js";
15
15
  import "../chunk-SL3JAAKN.js";
16
- import "../chunk-N4CHCXDL.js";
16
+ import "../chunk-7MG7SJT7.js";
17
17
  import {
18
18
  SequenceNotEnabledError
19
19
  } from "../chunk-7O3Y4PPD.js";
@@ -17,14 +17,14 @@ import {
17
17
  NO_SESSION
18
18
  } from "../chunk-VKQCVU2Z.js";
19
19
  import "../chunk-4AOERLTV.js";
20
- import "../chunk-CIGAQBJR.js";
21
- import "../chunk-4RUFYGWG.js";
20
+ import "../chunk-77K4PG6P.js";
21
+ import "../chunk-SZJ3DLZA.js";
22
22
  import "../chunk-BOWNCWZT.js";
23
23
  import "../chunk-YSRUYAVU.js";
24
24
  import "../chunk-RMF67KCG.js";
25
25
  import "../chunk-LP7BEXCT.js";
26
26
  import "../chunk-SL3JAAKN.js";
27
- import "../chunk-N4CHCXDL.js";
27
+ import "../chunk-7MG7SJT7.js";
28
28
  import {
29
29
  SessionExpiredError,
30
30
  SessionNotFoundError,
@@ -4,15 +4,15 @@ import {
4
4
  SIGNER_RECORD_ID,
5
5
  loadOrCreateSigner,
6
6
  loadSigner
7
- } from "./chunk-WSJG5L5C.js";
8
- import "./chunk-CIGAQBJR.js";
9
- import "./chunk-4RUFYGWG.js";
7
+ } from "./chunk-ANATMFIO.js";
8
+ import "./chunk-77K4PG6P.js";
9
+ import "./chunk-SZJ3DLZA.js";
10
10
  import "./chunk-BOWNCWZT.js";
11
11
  import "./chunk-YSRUYAVU.js";
12
12
  import "./chunk-RMF67KCG.js";
13
13
  import "./chunk-LP7BEXCT.js";
14
14
  import "./chunk-SL3JAAKN.js";
15
- import "./chunk-N4CHCXDL.js";
15
+ import "./chunk-7MG7SJT7.js";
16
16
  import "./chunk-7O3Y4PPD.js";
17
17
  export {
18
18
  ATTESTATIONS_COLLECTION,
@@ -21,4 +21,4 @@ export {
21
21
  loadOrCreateSigner,
22
22
  loadSigner
23
23
  };
24
- //# sourceMappingURL=signer-5K3WDHOC.js.map
24
+ //# sourceMappingURL=signer-WAMDZHEN.js.map
@@ -4,16 +4,16 @@ import {
4
4
  import {
5
5
  readPod,
6
6
  writePod
7
- } from "../chunk-NLOLF6LD.js";
8
- import "../chunk-MLO75SFJ.js";
9
- import "../chunk-CIGAQBJR.js";
10
- import "../chunk-4RUFYGWG.js";
7
+ } from "../chunk-5WDXHNSW.js";
8
+ import "../chunk-EQEYOJBM.js";
9
+ import "../chunk-77K4PG6P.js";
10
+ import "../chunk-SZJ3DLZA.js";
11
11
  import "../chunk-BOWNCWZT.js";
12
12
  import "../chunk-YSRUYAVU.js";
13
13
  import "../chunk-RMF67KCG.js";
14
14
  import "../chunk-LP7BEXCT.js";
15
15
  import "../chunk-SL3JAAKN.js";
16
- import "../chunk-N4CHCXDL.js";
16
+ import "../chunk-7MG7SJT7.js";
17
17
  import {
18
18
  SnapshotNotFoundError
19
19
  } from "../chunk-7O3Y4PPD.js";
@@ -6,16 +6,16 @@ import {
6
6
  isMVStale,
7
7
  markMVStale,
8
8
  resolveStaleMVOnRead
9
- } from "./chunk-AMODH7AU.js";
9
+ } from "./chunk-FMZY5Q6L.js";
10
10
  import "./chunk-5D2ALSM5.js";
11
- import "./chunk-CIGAQBJR.js";
12
- import "./chunk-4RUFYGWG.js";
11
+ import "./chunk-77K4PG6P.js";
12
+ import "./chunk-SZJ3DLZA.js";
13
13
  import "./chunk-BOWNCWZT.js";
14
14
  import "./chunk-YSRUYAVU.js";
15
15
  import "./chunk-RMF67KCG.js";
16
16
  import "./chunk-LP7BEXCT.js";
17
17
  import "./chunk-SL3JAAKN.js";
18
- import "./chunk-N4CHCXDL.js";
18
+ import "./chunk-7MG7SJT7.js";
19
19
  import "./chunk-7O3Y4PPD.js";
20
20
  export {
21
21
  MV_STALE_COLLECTION,
@@ -26,4 +26,4 @@ export {
26
26
  markMVStale,
27
27
  resolveStaleMVOnRead
28
28
  };
29
- //# sourceMappingURL=stale-AU74OPUW.js.map
29
+ //# sourceMappingURL=stale-DDL7WQEZ.js.map
@@ -3,15 +3,15 @@ import {
3
3
  loadPersistedSchema,
4
4
  loadPersistedSchemaEntry,
5
5
  savePersistedSchema
6
- } from "./chunk-WWNYSV7S.js";
7
- import "./chunk-CIGAQBJR.js";
8
- import "./chunk-4RUFYGWG.js";
6
+ } from "./chunk-2Y4IMKA6.js";
7
+ import "./chunk-77K4PG6P.js";
8
+ import "./chunk-SZJ3DLZA.js";
9
9
  import "./chunk-BOWNCWZT.js";
10
10
  import "./chunk-YSRUYAVU.js";
11
11
  import "./chunk-RMF67KCG.js";
12
12
  import "./chunk-LP7BEXCT.js";
13
13
  import "./chunk-SL3JAAKN.js";
14
- import "./chunk-N4CHCXDL.js";
14
+ import "./chunk-7MG7SJT7.js";
15
15
  import "./chunk-7O3Y4PPD.js";
16
16
  export {
17
17
  SCHEMAS_COLLECTION,
@@ -19,4 +19,4 @@ export {
19
19
  loadPersistedSchemaEntry,
20
20
  savePersistedSchema
21
21
  };
22
- //# sourceMappingURL=storage-AVJA5BTW.js.map
22
+ //# sourceMappingURL=storage-FLR73HHF.js.map
@@ -1,17 +1,17 @@
1
1
  import {
2
2
  loadFence,
3
3
  saveFence
4
- } from "./chunk-GM4IM7TC.js";
5
- import "./chunk-CIGAQBJR.js";
4
+ } from "./chunk-453F654R.js";
5
+ import "./chunk-77K4PG6P.js";
6
6
  import {
7
7
  buildRecordEnvelope
8
- } from "./chunk-4RUFYGWG.js";
8
+ } from "./chunk-SZJ3DLZA.js";
9
9
  import "./chunk-BOWNCWZT.js";
10
10
  import "./chunk-YSRUYAVU.js";
11
11
  import "./chunk-RMF67KCG.js";
12
12
  import "./chunk-LP7BEXCT.js";
13
13
  import "./chunk-SL3JAAKN.js";
14
- import "./chunk-N4CHCXDL.js";
14
+ import "./chunk-7MG7SJT7.js";
15
15
  import "./chunk-7O3Y4PPD.js";
16
16
 
17
17
  // src/with-shape/schema-update/client-registry.ts
@@ -145,4 +145,4 @@ function unref(timer) {
145
145
  export {
146
146
  StoreMesh
147
147
  };
148
- //# sourceMappingURL=store-coordination-provider-RX2CGWXV.js.map
148
+ //# sourceMappingURL=store-coordination-provider-MEQ2MJQG.js.map
@@ -2,19 +2,19 @@ import {
2
2
  PresenceHandle,
3
3
  SyncEngine,
4
4
  SyncTransaction
5
- } from "../chunk-GHHUF2KL.js";
5
+ } from "../chunk-CPWQB3N5.js";
6
6
  import {
7
7
  NO_SYNC
8
8
  } from "../chunk-T7IR4N2S.js";
9
9
  import "../chunk-FAHMLERK.js";
10
- import "../chunk-CIGAQBJR.js";
11
- import "../chunk-4RUFYGWG.js";
10
+ import "../chunk-77K4PG6P.js";
11
+ import "../chunk-SZJ3DLZA.js";
12
12
  import "../chunk-BOWNCWZT.js";
13
13
  import "../chunk-YSRUYAVU.js";
14
14
  import "../chunk-RMF67KCG.js";
15
15
  import "../chunk-LP7BEXCT.js";
16
16
  import "../chunk-SL3JAAKN.js";
17
- import "../chunk-N4CHCXDL.js";
17
+ import "../chunk-7MG7SJT7.js";
18
18
  import "../chunk-7O3Y4PPD.js";
19
19
 
20
20
  // src/with-sync/active.ts
@@ -2,7 +2,7 @@ import {
2
2
  MemoryDeviceSeal,
3
3
  beginEchoUnlock,
4
4
  withTeam
5
- } from "../chunk-PFBL4M7E.js";
5
+ } from "../chunk-EYBQEIUY.js";
6
6
  import {
7
7
  NO_TEAM,
8
8
  burnPaperRecoveryEntry,
@@ -31,8 +31,8 @@ import {
31
31
  unwrapMagicLinkGrant,
32
32
  updateAuthenticator,
33
33
  writeMagicLinkGrant
34
- } from "../chunk-LHH6H43C.js";
35
- import "../chunk-5UKIZIO3.js";
34
+ } from "../chunk-RRNRNANG.js";
35
+ import "../chunk-2577DKXB.js";
36
36
  import {
37
37
  buildEchoBlock,
38
38
  buildRecipientKeyringFile,
@@ -53,18 +53,18 @@ import {
53
53
  updateKeyringIdentity,
54
54
  verifyPrompt,
55
55
  verifyTypedEcho
56
- } from "../chunk-VNR2SNVJ.js";
57
- import "../chunk-YQWBEJCS.js";
56
+ } from "../chunk-G56KBWFY.js";
57
+ import "../chunk-KG7TZKZG.js";
58
58
  import "../chunk-UGTBXF5U.js";
59
59
  import "../chunk-JMGDHKQF.js";
60
- import "../chunk-CIGAQBJR.js";
61
- import "../chunk-4RUFYGWG.js";
60
+ import "../chunk-77K4PG6P.js";
61
+ import "../chunk-SZJ3DLZA.js";
62
62
  import "../chunk-BOWNCWZT.js";
63
63
  import "../chunk-YSRUYAVU.js";
64
64
  import "../chunk-RMF67KCG.js";
65
65
  import "../chunk-LP7BEXCT.js";
66
66
  import "../chunk-SL3JAAKN.js";
67
- import "../chunk-N4CHCXDL.js";
67
+ import "../chunk-7MG7SJT7.js";
68
68
  import {
69
69
  TeamNotEnabledError
70
70
  } from "../chunk-7O3Y4PPD.js";
@@ -11,17 +11,17 @@ import {
11
11
  putAtTier,
12
12
  syncDerivedOutputs,
13
13
  withTiers
14
- } from "../chunk-EWPRPP3M.js";
14
+ } from "../chunk-KJIMGIWO.js";
15
15
  import "../chunk-UGTBXF5U.js";
16
16
  import "../chunk-JMGDHKQF.js";
17
- import "../chunk-CIGAQBJR.js";
18
- import "../chunk-4RUFYGWG.js";
17
+ import "../chunk-77K4PG6P.js";
18
+ import "../chunk-SZJ3DLZA.js";
19
19
  import "../chunk-BOWNCWZT.js";
20
20
  import "../chunk-YSRUYAVU.js";
21
21
  import "../chunk-RMF67KCG.js";
22
22
  import "../chunk-LP7BEXCT.js";
23
23
  import "../chunk-SL3JAAKN.js";
24
- import "../chunk-N4CHCXDL.js";
24
+ import "../chunk-7MG7SJT7.js";
25
25
  import {
26
26
  TiersNotEnabledError
27
27
  } from "../chunk-7O3Y4PPD.js";
package/dist/to/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  NOYDB_ENVELOPE_GENERATION
3
- } from "../chunk-N4CHCXDL.js";
3
+ } from "../chunk-7MG7SJT7.js";
4
4
  import {
5
5
  ConflictError,
6
6
  DuplicateStoreKindError,
@@ -6,10 +6,10 @@ import {
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 "../chunk-BOWNCWZT.js";
14
14
  import "../chunk-YSRUYAVU.js";
15
15
  import "../chunk-RMF67KCG.js";
@@ -17,7 +17,7 @@ import "../chunk-LP7BEXCT.js";
17
17
  import {
18
18
  encrypt
19
19
  } from "../chunk-SL3JAAKN.js";
20
- import "../chunk-N4CHCXDL.js";
20
+ import "../chunk-7MG7SJT7.js";
21
21
  import "../chunk-7O3Y4PPD.js";
22
22
 
23
23
  // src/with-commit/vault-head/head.ts
@@ -1,21 +1,21 @@
1
1
  import {
2
2
  dumpVaultSchema
3
- } from "./chunk-FUJSIP4K.js";
3
+ } from "./chunk-KUX3OB6D.js";
4
4
  import "./chunk-RXLYKVTF.js";
5
5
  import "./chunk-VYYM3MEN.js";
6
6
  import "./chunk-REDOOY2Q.js";
7
7
  import "./chunk-Y2NBBT6K.js";
8
- import "./chunk-WWNYSV7S.js";
9
- import "./chunk-CIGAQBJR.js";
10
- import "./chunk-4RUFYGWG.js";
8
+ import "./chunk-2Y4IMKA6.js";
9
+ import "./chunk-77K4PG6P.js";
10
+ import "./chunk-SZJ3DLZA.js";
11
11
  import "./chunk-BOWNCWZT.js";
12
12
  import "./chunk-YSRUYAVU.js";
13
13
  import "./chunk-RMF67KCG.js";
14
14
  import "./chunk-LP7BEXCT.js";
15
15
  import "./chunk-SL3JAAKN.js";
16
- import "./chunk-N4CHCXDL.js";
16
+ import "./chunk-7MG7SJT7.js";
17
17
  import "./chunk-7O3Y4PPD.js";
18
18
  export {
19
19
  dumpVaultSchema
20
20
  };
21
- //# sourceMappingURL=walk-ERAJ5RHO.js.map
21
+ //# sourceMappingURL=walk-3UQBRMDV.js.map
@@ -13,10 +13,24 @@
13
13
  * Spec: docs/superpowers/specs/2026-08-29-composite-triggerby-design.md §4-§5.
14
14
  * @module
15
15
  */
16
+ /** One declared hop through an intermediate collection (#1277). */
17
+ export interface MatchVia {
18
+ /** The intermediate collection to resolve through. */
19
+ readonly collection: string;
20
+ /** Field on the intermediate whose value equals `written[from]`. */
21
+ readonly take: string;
22
+ /** Field on the intermediate whose value is compared against `source[to]`. */
23
+ readonly on: string;
24
+ }
16
25
  export interface MatchPair {
17
26
  readonly from: string;
18
27
  readonly to: string;
28
+ readonly via?: MatchVia;
19
29
  }
30
+ /** True when any pair in this trigger resolves through an intermediate. */
31
+ export declare function hasHop(match: ReadonlyArray<MatchPair>): boolean;
32
+ /** Every intermediate collection named by a trigger's pairs, deduplicated. */
33
+ export declare function hopCollections(match: ReadonlyArray<MatchPair>): string[];
20
34
  export interface NormalizedTrigger {
21
35
  readonly collection: string;
22
36
  readonly match: ReadonlyArray<MatchPair>;
@@ -38,6 +52,47 @@ export declare function tupleFromWritten(match: ReadonlyArray<MatchPair>, writte
38
52
  field: string;
39
53
  value: string;
40
54
  }> | null;
55
+ /**
56
+ * Resolve one trigger's pairs into the value tuple a written record presents,
57
+ * following any declared hop (#1277).
58
+ *
59
+ * Non-hop pairs behave exactly as {@link tupleFromWritten}. A hop pair reads
60
+ * `written[from]`, finds the intermediate record whose `via.take` equals it,
61
+ * and substitutes that record's `via.on` value — so everything downstream
62
+ * still compares a flat `{ field, value }` tuple against source records and
63
+ * the existing index-backed matcher is unchanged.
64
+ *
65
+ * Returns `null` when ANY pair cannot produce a value — a missing field, a
66
+ * non-scalar, or an intermediate that does not resolve. That is a legitimate
67
+ * no-match, not an error: a dangling reference addresses nothing, and refusing
68
+ * here would turn a data condition into a thrown exception on every write.
69
+ *
70
+ * ONE lookup per hop per written record. `take: 'id'` is a direct `get`; any
71
+ * other `take` is a field match on the intermediate, which uses its index when
72
+ * one is declared.
73
+ */
74
+ export declare function resolveTuple(match: ReadonlyArray<MatchPair>, writtenId: string, record: Record<string, unknown> | null, lookup: (collection: string, field: string, value: string) => Promise<Record<string, unknown> | null>): Promise<Array<{
75
+ field: string;
76
+ value: string;
77
+ }> | null>;
78
+ /**
79
+ * The tuple a written INTERMEDIATE record presents (#1277 option 2).
80
+ *
81
+ * When a record of `via.collection` is written, the sources it addresses are
82
+ * those whose `to` equals the intermediate's own `via.on` value — no lookup is
83
+ * needed, because the intermediate IS the written record. Pairs that do not
84
+ * hop through this collection cannot be constrained by such a write and are
85
+ * skipped, which makes the fan-out deliberately WIDER than a trigger write:
86
+ * refreshing too much is recoverable, refreshing too little is the silent
87
+ * staleness this feature exists to remove.
88
+ *
89
+ * Returns `null` when no pair hops through `collection`, or when the
90
+ * intermediate carries no scalar at `via.on`.
91
+ */
92
+ export declare function tupleFromIntermediate(match: ReadonlyArray<MatchPair>, collection: string, record: Record<string, unknown> | null): Array<{
93
+ field: string;
94
+ value: string;
95
+ }> | null;
41
96
  /** Any single component differing means NOT the same tuple (spec §7). */
42
97
  export declare function sameTuple(a: Array<{
43
98
  field: string;
@@ -204,6 +204,39 @@ export interface DerivationSpec<TSource extends Record<string, unknown>, TOutput
204
204
  match: ReadonlyArray<{
205
205
  from: string;
206
206
  to: string;
207
+ /**
208
+ * ONE declared hop (#1277). Without it, `to` names a field on the
209
+ * source record compared directly against `written[from]`. With it,
210
+ * the comparison goes through an intermediate record:
211
+ *
212
+ * ```
213
+ * intermediate = the record in `via.collection` where
214
+ * intermediate[via.take] === written[from]
215
+ * match when String(source[to]) === String(intermediate[via.on])
216
+ * ```
217
+ *
218
+ * This exists for a topology where the two collections share no
219
+ * field: bills carry `entityId`, disbursements carry `clientId`, and
220
+ * the client record is what relates them. A denormalised key would
221
+ * work and is the wrong answer — it is a second copy of something
222
+ * the vault can already resolve, and a partial backfill goes quiet on
223
+ * exactly the oldest, least-audited rows.
224
+ *
225
+ * Resolution costs ONE lookup per written record (a `get` when
226
+ * `take` is `'id'`), not one per candidate row — the same bound that
227
+ * made #1266 refuse virtual computed fields as match targets.
228
+ *
229
+ * ⚠️ A write to `via.collection` ALSO fires this trigger (#1277
230
+ * option 2), fanning out on the intermediate's old ∪ new value. That
231
+ * is what keeps a re-pointed intermediate from silently stranding
232
+ * every source it used to address; the alternative failed silently on
233
+ * exactly the rare edit nobody repeats.
234
+ */
235
+ via?: {
236
+ collection: string;
237
+ take: string;
238
+ on: string;
239
+ };
207
240
  }>;
208
241
  maxFanout?: number;
209
242
  }>;
@@ -4,18 +4,18 @@ import {
4
4
  freezeSnapshotOnly,
5
5
  randomId,
6
6
  withdrawAccessibleData
7
- } from "./chunk-TGPST6FK.js";
8
- import "./chunk-EKZ6VZYF.js";
9
- import "./chunk-NLOLF6LD.js";
10
- import "./chunk-MLO75SFJ.js";
11
- import "./chunk-CIGAQBJR.js";
12
- import "./chunk-4RUFYGWG.js";
7
+ } from "./chunk-BSFNRLK2.js";
8
+ import "./chunk-L7CIOOBW.js";
9
+ import "./chunk-5WDXHNSW.js";
10
+ import "./chunk-EQEYOJBM.js";
11
+ import "./chunk-77K4PG6P.js";
12
+ import "./chunk-SZJ3DLZA.js";
13
13
  import "./chunk-BOWNCWZT.js";
14
14
  import "./chunk-YSRUYAVU.js";
15
15
  import "./chunk-RMF67KCG.js";
16
16
  import "./chunk-LP7BEXCT.js";
17
17
  import "./chunk-SL3JAAKN.js";
18
- import "./chunk-N4CHCXDL.js";
18
+ import "./chunk-7MG7SJT7.js";
19
19
  import "./chunk-7O3Y4PPD.js";
20
20
  export {
21
21
  FROZEN_SNAPSHOTS_COLLECTION,
@@ -24,4 +24,4 @@ export {
24
24
  randomId,
25
25
  withdrawAccessibleData
26
26
  };
27
- //# sourceMappingURL=withdraw-accessible-42D32Z7G.js.map
27
+ //# sourceMappingURL=withdraw-accessible-EL5GXZBS.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@noy-db/hub",
3
- "version": "0.7.0-pre.14",
3
+ "version": "0.7.0-pre.16",
4
4
  "description": "Zero-knowledge, offline-first, encrypted document store — core library with AES-256-GCM, PBKDF2, multi-user keyring, and sync engine",
5
5
  "license": "MIT",
6
6
  "author": "vLannaAi <vicio@lanna.ai>",
@@ -233,17 +233,17 @@
233
233
  "node": ">=22.0.0"
234
234
  },
235
235
  "dependencies": {
236
- "@noy-db/attestation": "0.7.0-pre.14"
236
+ "@noy-db/attestation": "0.7.0-pre.16"
237
237
  },
238
238
  "devDependencies": {
239
239
  "@types/node": "^22.0.0",
240
240
  "esbuild": "^0.25.0",
241
241
  "zod": "^4.0.0",
242
242
  "zod-to-json-schema": "^3.25.2",
243
- "@noy-db/on-shamir": "0.7.0-pre.14"
243
+ "@noy-db/on-shamir": "0.7.0-pre.16"
244
244
  },
245
245
  "peerDependencies": {
246
- "zod": "^4.0.0",
246
+ "zod": "^3.0.0 || ^4.0.0",
247
247
  "zod-to-json-schema": "^3.25.0"
248
248
  },
249
249
  "peerDependenciesMeta": {
@@ -1 +0,0 @@
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 { 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(\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":[]}