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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (225) hide show
  1. package/CHANGELOG.md +116 -0
  2. package/dist/{api-JPZT6BDD.js → api-TXFOVOXX.js} +6 -6
  3. package/dist/as/index.js +5 -5
  4. package/dist/at/index.js +4 -4
  5. package/dist/attestation/index.js +12 -12
  6. package/dist/{backup-AKWIMYWU.js → backup-IJTB4S4M.js} +6 -6
  7. package/dist/blobs/index.js +5 -5
  8. package/dist/broker/index.js +6 -6
  9. package/dist/cargo/index.js +18 -18
  10. package/dist/{chunk-5UKIZIO3.js → chunk-2577DKXB.js} +2 -2
  11. package/dist/{chunk-NJXX55QX.js → chunk-2C3AQB46.js} +4 -4
  12. package/dist/{chunk-EVKR67PQ.js → chunk-2N4GY74U.js} +4 -4
  13. package/dist/{chunk-WWNYSV7S.js → chunk-2Y4IMKA6.js} +3 -3
  14. package/dist/{chunk-3LK2XZCW.js → chunk-3RCJJBNR.js} +8 -8
  15. package/dist/{chunk-GM4IM7TC.js → chunk-453F654R.js} +2 -2
  16. package/dist/{chunk-JUBWUJY5.js → chunk-4GVM6QZA.js} +2 -2
  17. package/dist/{chunk-KCUIMITG.js → chunk-5VCRVKOZ.js} +2 -2
  18. package/dist/{chunk-NLOLF6LD.js → chunk-5WDXHNSW.js} +3 -3
  19. package/dist/{chunk-BMSOTHIA.js → chunk-6GMZ7HEE.js} +3 -3
  20. package/dist/{chunk-WL36WA3O.js → chunk-6GOE5PGN.js} +54 -54
  21. package/dist/{chunk-RDZZHYMV.js → chunk-6I2RQCET.js} +3 -3
  22. package/dist/{chunk-CIGAQBJR.js → chunk-77K4PG6P.js} +3 -3
  23. package/dist/{chunk-N4CHCXDL.js → chunk-7MG7SJT7.js} +1 -1
  24. package/dist/{chunk-N4CHCXDL.js.map → chunk-7MG7SJT7.js.map} +1 -1
  25. package/dist/{chunk-RGSTMLVO.js → chunk-7V4TP3AF.js} +3 -3
  26. package/dist/{chunk-WSJG5L5C.js → chunk-ANATMFIO.js} +3 -3
  27. package/dist/{chunk-DMJZBQ7F.js → chunk-AO42KJO6.js} +4 -4
  28. package/dist/{chunk-ZG4XLOKB.js → chunk-BM5TWITZ.js} +3 -3
  29. package/dist/{chunk-IPFE6MVM.js → chunk-BOET4NA4.js} +2 -2
  30. package/dist/{chunk-TGPST6FK.js → chunk-BSFNRLK2.js} +3 -3
  31. package/dist/{chunk-MGOXJIBV.js → chunk-CARABLSQ.js} +2 -2
  32. package/dist/{chunk-RJ7NN2UR.js → chunk-CHJBLCOG.js} +5 -5
  33. package/dist/{chunk-GHHUF2KL.js → chunk-CPWQB3N5.js} +4 -4
  34. package/dist/{chunk-Q4RWFV3G.js → chunk-ELNXJMGB.js} +4 -4
  35. package/dist/{chunk-MLO75SFJ.js → chunk-EQEYOJBM.js} +2 -2
  36. package/dist/{chunk-PFBL4M7E.js → chunk-EYBQEIUY.js} +2 -2
  37. package/dist/chunk-FFWI7UH7.js +53 -0
  38. package/dist/chunk-FFWI7UH7.js.map +1 -0
  39. package/dist/{chunk-AMODH7AU.js → chunk-FMZY5Q6L.js} +3 -3
  40. package/dist/{chunk-2HVILGVR.js → chunk-FXBIP2WD.js} +2 -2
  41. package/dist/{chunk-VNR2SNVJ.js → chunk-G56KBWFY.js} +5 -5
  42. package/dist/{chunk-QQ2YMQZU.js → chunk-GPEQUXHL.js} +3 -3
  43. package/dist/{chunk-ZXLZ62R5.js → chunk-HDOU6I2Y.js} +12 -3
  44. package/dist/chunk-HDOU6I2Y.js.map +1 -0
  45. package/dist/{chunk-YINEDONN.js → chunk-J6FXAEUG.js} +10 -10
  46. package/dist/{chunk-WZW37ZHL.js → chunk-K6LHRFBL.js} +5 -5
  47. package/dist/{chunk-FYEZC4PX.js → chunk-K7NTTA6P.js} +2 -2
  48. package/dist/{chunk-YQWBEJCS.js → chunk-KG7TZKZG.js} +3 -3
  49. package/dist/{chunk-EWPRPP3M.js → chunk-KJIMGIWO.js} +4 -4
  50. package/dist/{chunk-THX6FEEC.js → chunk-KUJDV5QH.js} +3 -3
  51. package/dist/{chunk-FUJSIP4K.js → chunk-KUX3OB6D.js} +2 -2
  52. package/dist/{chunk-U7VPHXXO.js → chunk-L742JPKZ.js} +4 -4
  53. package/dist/{chunk-EKZ6VZYF.js → chunk-L7CIOOBW.js} +2 -2
  54. package/dist/{chunk-XGDYGUEH.js → chunk-MUM7IANK.js} +2 -2
  55. package/dist/{chunk-FFBYRWDJ.js → chunk-NA2NIJZI.js} +2 -2
  56. package/dist/{chunk-KLPASWYY.js → chunk-NKHRDYOR.js} +3 -3
  57. package/dist/{chunk-VGXZT72I.js → chunk-PT43Y56J.js} +4 -4
  58. package/dist/{chunk-LHH6H43C.js → chunk-RRNRNANG.js} +6 -6
  59. package/dist/{chunk-BOBFL5TW.js → chunk-SPXXX5E4.js} +2 -2
  60. package/dist/{chunk-KTDGZPOZ.js → chunk-SPYWXKJN.js} +2 -2
  61. package/dist/{chunk-4RUFYGWG.js → chunk-SZJ3DLZA.js} +2 -2
  62. package/dist/{chunk-YPXNAP72.js → chunk-U4FOQDY4.js} +2 -2
  63. package/dist/{chunk-OMB2ZKIT.js → chunk-UXWB3FPF.js} +8 -8
  64. package/dist/{chunk-BBWVXF57.js → chunk-VXGSWL6L.js} +6 -6
  65. package/dist/{chunk-P3KOF624.js → chunk-WEQEYLCS.js} +6 -6
  66. package/dist/{chunk-XNIQ7DP2.js → chunk-X2DLENDQ.js} +3 -3
  67. package/dist/{chunk-B2KCRDJM.js → chunk-XTXOCYOJ.js} +4 -4
  68. package/dist/{chunk-MMOZQTXV.js → chunk-ZVO4QVPD.js} +3 -3
  69. package/dist/classified/index.js +3 -3
  70. package/dist/{classified-marker-OO65UYXN.js → classified-marker-LI2SF2E4.js} +3 -3
  71. package/dist/{collection-facade-VOWW732S.js → collection-facade-4GRREZ6C.js} +8 -8
  72. package/dist/consent/index.js +4 -4
  73. package/dist/cover/index.js +4 -4
  74. package/dist/custody/index.js +6 -6
  75. package/dist/{dead-filter-OMMVBAKZ.js → dead-filter-TSWZQRR5.js} +2 -2
  76. package/dist/{delegation-VRYMQRCF.js → delegation-OVIFFPG4.js} +4 -4
  77. package/dist/derivations/index.js +11 -11
  78. package/dist/{derive-HHBRFS2U.js → derive-6O5SWQKN.js} +4 -4
  79. package/dist/directory/index.js +5 -5
  80. package/dist/{dispatch-DC3LQJ3S.js → dispatch-S73TK3IY.js} +71 -23
  81. package/dist/dispatch-S73TK3IY.js.map +1 -0
  82. package/dist/{dispatch-GGFBWQU7.js → dispatch-WC6X2M6C.js} +5 -5
  83. package/dist/{enclave-VM2YQONI.js → enclave-KJOTOH7X.js} +4 -4
  84. package/dist/{executor-5XJNV5H5.js → executor-PUAO6AKJ.js} +9 -9
  85. package/dist/{export-accessible-2LOBM67T.js → export-accessible-72EQNBMR.js} +7 -7
  86. package/dist/{extract-partition-AZGSEMIF.js → extract-partition-PUYNU3UF.js} +10 -10
  87. package/dist/{fanout-sidecar-HJIVUPTD.js → fanout-sidecar-WUFXNYP4.js} +4 -4
  88. package/dist/forget/index.js +4 -4
  89. package/dist/history/index.js +7 -7
  90. package/dist/i18n/index.js +6 -6
  91. package/dist/index.js +50 -50
  92. package/dist/introspection/index.js +5 -5
  93. package/dist/{issue-RH4H733Z.js → issue-SIDORTSZ.js} +6 -6
  94. package/dist/kernel/types.d.ts +39 -0
  95. package/dist/{ledger-454SU3VE.js → ledger-F33ZVMTK.js} +6 -6
  96. package/dist/liberate-LCDPNAG2.js +24 -0
  97. package/dist/{link-set-67CAMUAL.js → link-set-FKNWAYKS.js} +5 -5
  98. package/dist/{managed-secret-NHRYG7CD.js → managed-secret-PQYKSR6T.js} +5 -5
  99. package/dist/materialized-views/index.js +9 -9
  100. package/dist/{noydb-F5CABCU4.js → noydb-DUXZPKSN.js} +29 -29
  101. package/dist/periods/index.js +6 -6
  102. package/dist/pod/index.js +32 -32
  103. package/dist/{pod-handle-S7AMCJIF.js → pod-handle-Q736KYON.js} +4 -4
  104. package/dist/policy/index.js +5 -5
  105. package/dist/port/to/index.d.ts +40 -0
  106. package/dist/portability/index.js +6 -6
  107. package/dist/{post-register-HIYY4Y5S.js → post-register-LNE2FE2A.js} +4 -4
  108. package/dist/{register-7OJWAWT5.js → register-I2DZXGAR.js} +10 -10
  109. package/dist/{registry-5MVJGPXW.js → registry-VSSQPIGF.js} +4 -4
  110. package/dist/{registry-BOHIKFWG.js → registry-YLEWMGAC.js} +12 -12
  111. package/dist/{request-withdrawal-P5EQATZ7.js → request-withdrawal-KFQHEZ25.js} +9 -9
  112. package/dist/{reveal-IMGQ2EE5.js → reveal-67RDQRIN.js} +3 -3
  113. package/dist/{revoke-POHP4GPB.js → revoke-DQDZAZZM.js} +6 -6
  114. package/dist/sealed-record/index.js +6 -6
  115. package/dist/search/index.js +1 -1
  116. package/dist/{seed-UYR6YG3V.js → seed-G42JYN56.js} +6 -6
  117. package/dist/sequence/index.js +4 -4
  118. package/dist/session/index.js +3 -3
  119. package/dist/{signer-5K3WDHOC.js → signer-WAMDZHEN.js} +5 -5
  120. package/dist/snapshots/index.js +5 -5
  121. package/dist/{stale-AU74OPUW.js → stale-DDL7WQEZ.js} +5 -5
  122. package/dist/{storage-AVJA5BTW.js → storage-FLR73HHF.js} +5 -5
  123. package/dist/{store-coordination-provider-RX2CGWXV.js → store-coordination-provider-MEQ2MJQG.js} +5 -5
  124. package/dist/sync/index.js +4 -4
  125. package/dist/team/index.js +8 -8
  126. package/dist/tiers/index.js +4 -4
  127. package/dist/to/index.js +1 -1
  128. package/dist/vault-head/index.js +3 -3
  129. package/dist/{walk-ERAJ5RHO.js → walk-3UQBRMDV.js} +6 -6
  130. package/dist/with-formula/derivations/trigger-match.d.ts +56 -4
  131. package/dist/with-formula/derivations/types.d.ts +39 -1
  132. package/dist/{withdraw-accessible-42D32Z7G.js → withdraw-accessible-EL5GXZBS.js} +8 -8
  133. package/package.json +3 -3
  134. package/dist/chunk-TPHAGLUH.js +0 -30
  135. package/dist/chunk-TPHAGLUH.js.map +0 -1
  136. package/dist/chunk-ZXLZ62R5.js.map +0 -1
  137. package/dist/dispatch-DC3LQJ3S.js.map +0 -1
  138. package/dist/liberate-AAZSP2BT.js +0 -24
  139. /package/dist/{api-JPZT6BDD.js.map → api-TXFOVOXX.js.map} +0 -0
  140. /package/dist/{backup-AKWIMYWU.js.map → backup-IJTB4S4M.js.map} +0 -0
  141. /package/dist/{chunk-5UKIZIO3.js.map → chunk-2577DKXB.js.map} +0 -0
  142. /package/dist/{chunk-NJXX55QX.js.map → chunk-2C3AQB46.js.map} +0 -0
  143. /package/dist/{chunk-EVKR67PQ.js.map → chunk-2N4GY74U.js.map} +0 -0
  144. /package/dist/{chunk-WWNYSV7S.js.map → chunk-2Y4IMKA6.js.map} +0 -0
  145. /package/dist/{chunk-3LK2XZCW.js.map → chunk-3RCJJBNR.js.map} +0 -0
  146. /package/dist/{chunk-GM4IM7TC.js.map → chunk-453F654R.js.map} +0 -0
  147. /package/dist/{chunk-JUBWUJY5.js.map → chunk-4GVM6QZA.js.map} +0 -0
  148. /package/dist/{chunk-KCUIMITG.js.map → chunk-5VCRVKOZ.js.map} +0 -0
  149. /package/dist/{chunk-NLOLF6LD.js.map → chunk-5WDXHNSW.js.map} +0 -0
  150. /package/dist/{chunk-BMSOTHIA.js.map → chunk-6GMZ7HEE.js.map} +0 -0
  151. /package/dist/{chunk-WL36WA3O.js.map → chunk-6GOE5PGN.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-YINEDONN.js.map → chunk-J6FXAEUG.js.map} +0 -0
  171. /package/dist/{chunk-WZW37ZHL.js.map → chunk-K6LHRFBL.js.map} +0 -0
  172. /package/dist/{chunk-FYEZC4PX.js.map → chunk-K7NTTA6P.js.map} +0 -0
  173. /package/dist/{chunk-YQWBEJCS.js.map → chunk-KG7TZKZG.js.map} +0 -0
  174. /package/dist/{chunk-EWPRPP3M.js.map → chunk-KJIMGIWO.js.map} +0 -0
  175. /package/dist/{chunk-THX6FEEC.js.map → chunk-KUJDV5QH.js.map} +0 -0
  176. /package/dist/{chunk-FUJSIP4K.js.map → chunk-KUX3OB6D.js.map} +0 -0
  177. /package/dist/{chunk-U7VPHXXO.js.map → chunk-L742JPKZ.js.map} +0 -0
  178. /package/dist/{chunk-EKZ6VZYF.js.map → chunk-L7CIOOBW.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-OMB2ZKIT.js.map → chunk-UXWB3FPF.js.map} +0 -0
  189. /package/dist/{chunk-BBWVXF57.js.map → chunk-VXGSWL6L.js.map} +0 -0
  190. /package/dist/{chunk-P3KOF624.js.map → chunk-WEQEYLCS.js.map} +0 -0
  191. /package/dist/{chunk-XNIQ7DP2.js.map → chunk-X2DLENDQ.js.map} +0 -0
  192. /package/dist/{chunk-B2KCRDJM.js.map → chunk-XTXOCYOJ.js.map} +0 -0
  193. /package/dist/{chunk-MMOZQTXV.js.map → chunk-ZVO4QVPD.js.map} +0 -0
  194. /package/dist/{classified-marker-OO65UYXN.js.map → classified-marker-LI2SF2E4.js.map} +0 -0
  195. /package/dist/{collection-facade-VOWW732S.js.map → collection-facade-4GRREZ6C.js.map} +0 -0
  196. /package/dist/{dead-filter-OMMVBAKZ.js.map → dead-filter-TSWZQRR5.js.map} +0 -0
  197. /package/dist/{delegation-VRYMQRCF.js.map → delegation-OVIFFPG4.js.map} +0 -0
  198. /package/dist/{derive-HHBRFS2U.js.map → derive-6O5SWQKN.js.map} +0 -0
  199. /package/dist/{dispatch-GGFBWQU7.js.map → dispatch-WC6X2M6C.js.map} +0 -0
  200. /package/dist/{enclave-VM2YQONI.js.map → enclave-KJOTOH7X.js.map} +0 -0
  201. /package/dist/{executor-5XJNV5H5.js.map → executor-PUAO6AKJ.js.map} +0 -0
  202. /package/dist/{export-accessible-2LOBM67T.js.map → export-accessible-72EQNBMR.js.map} +0 -0
  203. /package/dist/{extract-partition-AZGSEMIF.js.map → extract-partition-PUYNU3UF.js.map} +0 -0
  204. /package/dist/{fanout-sidecar-HJIVUPTD.js.map → fanout-sidecar-WUFXNYP4.js.map} +0 -0
  205. /package/dist/{issue-RH4H733Z.js.map → issue-SIDORTSZ.js.map} +0 -0
  206. /package/dist/{ledger-454SU3VE.js.map → ledger-F33ZVMTK.js.map} +0 -0
  207. /package/dist/{liberate-AAZSP2BT.js.map → liberate-LCDPNAG2.js.map} +0 -0
  208. /package/dist/{link-set-67CAMUAL.js.map → link-set-FKNWAYKS.js.map} +0 -0
  209. /package/dist/{managed-secret-NHRYG7CD.js.map → managed-secret-PQYKSR6T.js.map} +0 -0
  210. /package/dist/{noydb-F5CABCU4.js.map → noydb-DUXZPKSN.js.map} +0 -0
  211. /package/dist/{pod-handle-S7AMCJIF.js.map → pod-handle-Q736KYON.js.map} +0 -0
  212. /package/dist/{post-register-HIYY4Y5S.js.map → post-register-LNE2FE2A.js.map} +0 -0
  213. /package/dist/{register-7OJWAWT5.js.map → register-I2DZXGAR.js.map} +0 -0
  214. /package/dist/{registry-5MVJGPXW.js.map → registry-VSSQPIGF.js.map} +0 -0
  215. /package/dist/{registry-BOHIKFWG.js.map → registry-YLEWMGAC.js.map} +0 -0
  216. /package/dist/{request-withdrawal-P5EQATZ7.js.map → request-withdrawal-KFQHEZ25.js.map} +0 -0
  217. /package/dist/{reveal-IMGQ2EE5.js.map → reveal-67RDQRIN.js.map} +0 -0
  218. /package/dist/{revoke-POHP4GPB.js.map → revoke-DQDZAZZM.js.map} +0 -0
  219. /package/dist/{seed-UYR6YG3V.js.map → seed-G42JYN56.js.map} +0 -0
  220. /package/dist/{signer-5K3WDHOC.js.map → signer-WAMDZHEN.js.map} +0 -0
  221. /package/dist/{stale-AU74OPUW.js.map → stale-DDL7WQEZ.js.map} +0 -0
  222. /package/dist/{storage-AVJA5BTW.js.map → storage-FLR73HHF.js.map} +0 -0
  223. /package/dist/{store-coordination-provider-RX2CGWXV.js.map → store-coordination-provider-MEQ2MJQG.js.map} +0 -0
  224. /package/dist/{walk-ERAJ5RHO.js.map → walk-3UQBRMDV.js.map} +0 -0
  225. /package/dist/{withdraw-accessible-42D32Z7G.js.map → withdraw-accessible-EL5GXZBS.js.map} +0 -0
@@ -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>;
@@ -30,11 +44,49 @@ interface RawTrigger {
30
44
  }
31
45
  export declare function normalizeTriggerBy(triggerBy: ReadonlyArray<RawTrigger> | undefined): NormalizedTrigger[];
32
46
  /**
33
- * The value tuple a written record presents to one trigger entry.
34
- * `null` means "this record cannot address any source" (a from-field is
35
- * absent or non-scalar) — a legitimate no-match, not an error.
47
+ * Resolve one trigger's pairs into the value tuple a written record presents,
48
+ * following any declared hop (#1277).
49
+ *
50
+ * Non-hop pairs behave exactly as {@link tupleFromWritten}. A hop pair reads
51
+ * `written[from]`, finds the intermediate record whose `via.take` equals it,
52
+ * and substitutes that record's `via.on` value — so everything downstream
53
+ * still compares a flat `{ field, value }` tuple against source records and
54
+ * the existing index-backed matcher is unchanged.
55
+ *
56
+ * Returns `null` when ANY pair cannot produce a value — a missing field, a
57
+ * non-scalar, or an intermediate that does not resolve. That is a legitimate
58
+ * no-match, not an error: a dangling reference addresses nothing, and refusing
59
+ * here would turn a data condition into a thrown exception on every write.
60
+ *
61
+ * Supersedes the sync `tupleFromWritten`, which was DELETED rather than kept
62
+ * (#1294): having two tuple builders that had to agree is precisely how the
63
+ * delete path drifted — it called the unhopped one, so a mapped pair compared
64
+ * the wrong side of the relationship and matched nothing, silently. One path
65
+ * cannot disagree with itself.
66
+ *
67
+ * ONE lookup per hop per written record. `take: 'id'` is a direct `get`; any
68
+ * other `take` is a field match on the intermediate, which uses its index when
69
+ * one is declared.
70
+ */
71
+ 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<{
72
+ field: string;
73
+ value: string;
74
+ }> | null>;
75
+ /**
76
+ * The tuple a written INTERMEDIATE record presents (#1277 option 2).
77
+ *
78
+ * When a record of `via.collection` is written, the sources it addresses are
79
+ * those whose `to` equals the intermediate's own `via.on` value — no lookup is
80
+ * needed, because the intermediate IS the written record. Pairs that do not
81
+ * hop through this collection cannot be constrained by such a write and are
82
+ * skipped, which makes the fan-out deliberately WIDER than a trigger write:
83
+ * refreshing too much is recoverable, refreshing too little is the silent
84
+ * staleness this feature exists to remove.
85
+ *
86
+ * Returns `null` when no pair hops through `collection`, or when the
87
+ * intermediate carries no scalar at `via.on`.
36
88
  */
37
- export declare function tupleFromWritten(match: ReadonlyArray<MatchPair>, writtenId: string, record: Record<string, unknown> | null): Array<{
89
+ export declare function tupleFromIntermediate(match: ReadonlyArray<MatchPair>, collection: string, record: Record<string, unknown> | null): Array<{
38
90
  field: string;
39
91
  value: string;
40
92
  }> | null;
@@ -194,7 +194,11 @@ export interface DerivationSpec<TSource extends Record<string, unknown>, TOutput
194
194
  * component changing counts) — the prior record is threaded only
195
195
  * from the local write path, so a sync-applied wave write or a
196
196
  * tiers restore fans out on the new tuple only. Parent DELETES fan
197
- * out using the tombstoned record's values — for BOTH forms. A
197
+ * out using the tombstoned record's values — for the `on` form, the
198
+ * plain `match` form, AND a `via` hop, including a delete of the
199
+ * INTERMEDIATE record itself (#1294; before that fix "both forms"
200
+ * meant `on` | `match` and silently excluded hops, which is a
201
+ * sentence a consumer reasonably read the other way). A
198
202
  * missing/non-scalar `from` value matches nothing. Match fields
199
203
  * are validated against the collections' enumerable field sets
200
204
  * where possible (silent for TS-generic collections — see the
@@ -204,6 +208,40 @@ export interface DerivationSpec<TSource extends Record<string, unknown>, TOutput
204
208
  match: ReadonlyArray<{
205
209
  from: string;
206
210
  to: string;
211
+ /**
212
+ * ONE declared hop (#1277). Without it, `to` names a field on the
213
+ * source record compared directly against `written[from]`. With it,
214
+ * the comparison goes through an intermediate record:
215
+ *
216
+ * ```
217
+ * intermediate = the record in `via.collection` where
218
+ * intermediate[via.take] === written[from]
219
+ * match when String(source[to]) === String(intermediate[via.on])
220
+ * ```
221
+ *
222
+ * This exists for a topology where the two collections share no
223
+ * field: bills carry `entityId`, disbursements carry `clientId`, and
224
+ * the client record is what relates them. A denormalised key would
225
+ * work and is the wrong answer — it is a second copy of something
226
+ * the vault can already resolve, and a partial backfill goes quiet on
227
+ * exactly the oldest, least-audited rows.
228
+ *
229
+ * Resolution costs ONE lookup per written record (a `get` when
230
+ * `take` is `'id'`), not one per candidate row — the same bound that
231
+ * made #1266 refuse virtual computed fields as match targets.
232
+ *
233
+ * ⚠️ A write OR DELETE of a `via.collection` record ALSO fires this
234
+ * trigger (#1277 option 2, deletes added in #1294), fanning out on
235
+ * the intermediate's old ∪ new value. That
236
+ * is what keeps a re-pointed intermediate from silently stranding
237
+ * every source it used to address; the alternative failed silently on
238
+ * exactly the rare edit nobody repeats.
239
+ */
240
+ via?: {
241
+ collection: string;
242
+ take: string;
243
+ on: string;
244
+ };
207
245
  }>;
208
246
  maxFanout?: number;
209
247
  }>;
@@ -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.15",
3
+ "version": "0.7.0-pre.17",
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,14 +233,14 @@
233
233
  "node": ">=22.0.0"
234
234
  },
235
235
  "dependencies": {
236
- "@noy-db/attestation": "0.7.0-pre.15"
236
+ "@noy-db/attestation": "0.7.0-pre.17"
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.15"
243
+ "@noy-db/on-shamir": "0.7.0-pre.17"
244
244
  },
245
245
  "peerDependencies": {
246
246
  "zod": "^3.0.0 || ^4.0.0",
@@ -1,30 +0,0 @@
1
- // src/with-formula/derivations/trigger-match.ts
2
- function normalizeTriggerBy(triggerBy) {
3
- if (triggerBy === void 0) return [];
4
- return triggerBy.map((t) => ({
5
- collection: t.collection,
6
- match: t.match ?? [{ from: "id", to: t.on }],
7
- ...t.maxFanout !== void 0 ? { maxFanout: t.maxFanout } : {}
8
- }));
9
- }
10
- var scalar = (v) => typeof v === "string" || typeof v === "number" ? String(v) : null;
11
- function tupleFromWritten(match, writtenId, record) {
12
- const out = [];
13
- for (const pair of match) {
14
- const v = pair.from === "id" ? writtenId : scalar(record?.[pair.from]);
15
- if (v === null) return null;
16
- out.push({ field: pair.to, value: v });
17
- }
18
- return out;
19
- }
20
- function sameTuple(a, b) {
21
- if (a === null || b === null) return a === b;
22
- return a.length === b.length && a.every((p, i) => p.field === b[i].field && p.value === b[i].value);
23
- }
24
-
25
- export {
26
- normalizeTriggerBy,
27
- tupleFromWritten,
28
- sameTuple
29
- };
30
- //# sourceMappingURL=chunk-TPHAGLUH.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/with-formula/derivations/trigger-match.ts"],"sourcesContent":["/**\n * Pure helpers behind composite `triggerBy` (#1249).\n *\n * A trigger entry is a CONJUNCTION of equality pairs: a source record\n * matches when EVERY pair satisfies String(source[to]) === String(written[from]).\n * `from: 'id'` reads the written record's id (winning over any stored field\n * named `id`, matching dispatch's `{ ...incoming, id }` convention). The\n * legacy `on` form normalizes to `[{ from: 'id', to: on }]` so everything\n * downstream has ONE shape.\n *\n * Scalar coercion is verbatim from `_findMatchingIds`: both sides must be\n * string | number; anything else fails the pair (never throws).\n * Spec: docs/superpowers/specs/2026-08-29-composite-triggerby-design.md §4-§5.\n * @module\n */\n\nexport interface MatchPair { readonly from: string; readonly to: string }\n\nexport interface NormalizedTrigger {\n readonly collection: string\n readonly match: ReadonlyArray<MatchPair>\n readonly maxFanout?: number\n}\n\ninterface RawTrigger {\n readonly collection: string\n readonly on?: string\n readonly match?: ReadonlyArray<MatchPair>\n readonly maxFanout?: number\n}\n\nexport function normalizeTriggerBy(triggerBy: ReadonlyArray<RawTrigger> | undefined): NormalizedTrigger[] {\n if (triggerBy === undefined) return []\n return triggerBy.map((t) => ({\n collection: t.collection,\n match: t.match ?? [{ from: 'id', to: t.on! }],\n ...(t.maxFanout !== undefined ? { maxFanout: t.maxFanout } : {}),\n }))\n}\n\nconst scalar = (v: unknown): string | null =>\n (typeof v === 'string' || typeof v === 'number') ? String(v) : null\n\n/**\n * The value tuple a written record presents to one trigger entry.\n * `null` means \"this record cannot address any source\" (a from-field is\n * absent or non-scalar) — a legitimate no-match, not an error.\n */\nexport function tupleFromWritten(\n match: ReadonlyArray<MatchPair>,\n writtenId: string,\n record: Record<string, unknown> | null,\n): Array<{ field: string; value: string }> | null {\n const out: Array<{ field: string; value: string }> = []\n for (const pair of match) {\n const v = pair.from === 'id' ? writtenId : scalar(record?.[pair.from])\n if (v === null) return null\n out.push({ field: pair.to, value: v })\n }\n return out\n}\n\n/** Any single component differing means NOT the same tuple (spec §7). */\nexport function sameTuple(\n a: Array<{ field: string; value: string }> | null,\n b: Array<{ field: string; value: string }> | null,\n): boolean {\n if (a === null || b === null) return a === b\n return a.length === b.length && a.every((p, i) => p.field === b[i]!.field && p.value === b[i]!.value)\n}\n\n/** Moved to the kernel (#1249) so `collection.ts` can import statically without\n * dragging derivations code into the floor bundle; re-exported here for\n * compatibility with existing consumers of this module. */\nexport { recordMatchesPairs, findMatchingIdsByPairs } from '../../kernel/match-pairs.js'\n"],"mappings":";AA+BO,SAAS,mBAAmB,WAAuE;AACxG,MAAI,cAAc,OAAW,QAAO,CAAC;AACrC,SAAO,UAAU,IAAI,CAAC,OAAO;AAAA,IAC3B,YAAY,EAAE;AAAA,IACd,OAAO,EAAE,SAAS,CAAC,EAAE,MAAM,MAAM,IAAI,EAAE,GAAI,CAAC;AAAA,IAC5C,GAAI,EAAE,cAAc,SAAY,EAAE,WAAW,EAAE,UAAU,IAAI,CAAC;AAAA,EAChE,EAAE;AACJ;AAEA,IAAM,SAAS,CAAC,MACb,OAAO,MAAM,YAAY,OAAO,MAAM,WAAY,OAAO,CAAC,IAAI;AAO1D,SAAS,iBACd,OACA,WACA,QACgD;AAChD,QAAM,MAA+C,CAAC;AACtD,aAAW,QAAQ,OAAO;AACxB,UAAM,IAAI,KAAK,SAAS,OAAO,YAAY,OAAO,SAAS,KAAK,IAAI,CAAC;AACrE,QAAI,MAAM,KAAM,QAAO;AACvB,QAAI,KAAK,EAAE,OAAO,KAAK,IAAI,OAAO,EAAE,CAAC;AAAA,EACvC;AACA,SAAO;AACT;AAGO,SAAS,UACd,GACA,GACS;AACT,MAAI,MAAM,QAAQ,MAAM,KAAM,QAAO,MAAM;AAC3C,SAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,CAAC,GAAG,MAAM,EAAE,UAAU,EAAE,CAAC,EAAG,SAAS,EAAE,UAAU,EAAE,CAAC,EAAG,KAAK;AACtG;","names":[]}