@noy-db/hub 0.6.0-pre.1 → 0.6.0-pre.3

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 (260) hide show
  1. package/codemods/0.4.0-pre.json +659 -0
  2. package/dist/{api-67SBPMMH.js → api-RXUMEKT3.js} +6 -6
  3. package/dist/attestation/index.js +12 -12
  4. package/dist/attestation/index.js.map +1 -1
  5. package/dist/{backup-GAYWQAFN.js → backup-KULFZ2T4.js} +6 -6
  6. package/dist/blobs/index.js +5 -5
  7. package/dist/broker/index.js +6 -6
  8. package/dist/{bundle-handle-5OUAI7CV.js → bundle-handle-GFNHT52M.js} +2 -2
  9. package/dist/cargo/index.js +18 -18
  10. package/dist/{chunk-CYQOUTMY.js → chunk-2BMRJ6LQ.js} +2 -2
  11. package/dist/{chunk-HS7HNYBD.js → chunk-2DHSSLOD.js} +6 -6
  12. package/dist/{chunk-JH3OHQM4.js → chunk-2Z3NCLNX.js} +6 -6
  13. package/dist/{chunk-NVU7ZMPN.js → chunk-3IXIU6FP.js} +2 -2
  14. package/dist/{chunk-XBLKM73C.js → chunk-3JVXVJ7L.js} +8 -8
  15. package/dist/{chunk-FY343IZR.js → chunk-3URQC7EH.js} +3 -3
  16. package/dist/{chunk-BPTZ4K5L.js → chunk-4GZ6XOVW.js} +7 -7
  17. package/dist/{chunk-ROWL352P.js → chunk-4I72F5DF.js} +4 -4
  18. package/dist/{chunk-EK7DT5BT.js → chunk-4VUPLMZ6.js} +39 -3
  19. package/dist/chunk-4VUPLMZ6.js.map +1 -0
  20. package/dist/{chunk-LBGPO5RL.js → chunk-52JPHN5N.js} +4 -4
  21. package/dist/{chunk-27TCYH6G.js → chunk-5JY5TSVY.js} +3 -3
  22. package/dist/{chunk-27TCYH6G.js.map → chunk-5JY5TSVY.js.map} +1 -1
  23. package/dist/{chunk-ZXJXDHNK.js → chunk-5ZKS6ZE2.js} +2 -2
  24. package/dist/{chunk-ZXJXDHNK.js.map → chunk-5ZKS6ZE2.js.map} +1 -1
  25. package/dist/{chunk-MVOWXQHN.js → chunk-6BU3L4UE.js} +2 -2
  26. package/dist/{chunk-OSFPNKY4.js → chunk-6FJWSWFT.js} +2 -2
  27. package/dist/chunk-6FJWSWFT.js.map +1 -0
  28. package/dist/{chunk-CJ73OLMW.js → chunk-6HFM7EIT.js} +1 -1
  29. package/dist/chunk-6HFM7EIT.js.map +1 -0
  30. package/dist/{chunk-PGAPBZEK.js → chunk-6NVPFKN3.js} +4 -4
  31. package/dist/{chunk-24UICKTB.js → chunk-6SAFL5YE.js} +2 -2
  32. package/dist/chunk-6SAFL5YE.js.map +1 -0
  33. package/dist/{chunk-NQRJ5AJO.js → chunk-7H73RIE3.js} +2 -2
  34. package/dist/{chunk-NQCNSVGI.js → chunk-7MNBICB5.js} +3 -3
  35. package/dist/{chunk-T4GPR2IR.js → chunk-7TSYBD3E.js} +1 -1
  36. package/dist/chunk-7TSYBD3E.js.map +1 -0
  37. package/dist/{chunk-3CLZY46Y.js → chunk-7V2OGKES.js} +56 -56
  38. package/dist/chunk-7V2OGKES.js.map +1 -0
  39. package/dist/{chunk-MXZ5TSTR.js → chunk-AHCSWNVL.js} +6 -6
  40. package/dist/{chunk-V5C5NNBR.js → chunk-CDB2HVQW.js} +3 -3
  41. package/dist/{chunk-3HYWYLXL.js → chunk-CEJWMBXO.js} +1 -1
  42. package/dist/chunk-CEJWMBXO.js.map +1 -0
  43. package/dist/{chunk-2KIV7BEK.js → chunk-FDX7OWWI.js} +1 -1
  44. package/dist/chunk-FDX7OWWI.js.map +1 -0
  45. package/dist/{chunk-4MQDV3HZ.js → chunk-FFDNKRCY.js} +2 -2
  46. package/dist/{chunk-PP5CO2PR.js → chunk-FMQJZH4R.js} +2 -2
  47. package/dist/{chunk-JSRU5W2M.js → chunk-FZ6NYJ7L.js} +3 -3
  48. package/dist/{chunk-ZGGVOADG.js → chunk-G6S5VVHP.js} +2 -2
  49. package/dist/{chunk-OMSAULZM.js → chunk-HY6Y2P4Y.js} +9 -9
  50. package/dist/{chunk-46V67XP5.js → chunk-IQRP74OO.js} +2 -2
  51. package/dist/chunk-IQRP74OO.js.map +1 -0
  52. package/dist/{chunk-TFZ7LLOQ.js → chunk-J7FM3RAU.js} +4 -4
  53. package/dist/{chunk-ZWMO5GL5.js → chunk-JJNOLSG5.js} +3 -3
  54. package/dist/{chunk-KZ3KMDN3.js → chunk-LWSJG3LI.js} +1 -1
  55. package/dist/chunk-LWSJG3LI.js.map +1 -0
  56. package/dist/{chunk-LTU4FLHG.js → chunk-MYG6WIRJ.js} +4 -4
  57. package/dist/{chunk-SRGJET2F.js → chunk-NJDQ4YSV.js} +2 -2
  58. package/dist/{chunk-DPJTDNUF.js → chunk-O42AUQCP.js} +5 -5
  59. package/dist/{chunk-F3GVO44K.js → chunk-PDLLCOGD.js} +3 -3
  60. package/dist/{chunk-VBY6ZLJT.js → chunk-PL2GHSCM.js} +3 -3
  61. package/dist/{chunk-DCMQR46R.js → chunk-PNKHAKQ7.js} +3 -3
  62. package/dist/{chunk-3IIPWA75.js → chunk-Q2VEFHDQ.js} +2 -2
  63. package/dist/{chunk-ZK4CO2KZ.js → chunk-Q6TEJXBX.js} +4 -4
  64. package/dist/{chunk-GS5RT2KK.js → chunk-QULVCV3M.js} +2 -2
  65. package/dist/chunk-QULVCV3M.js.map +1 -0
  66. package/dist/{chunk-RLWY6Z44.js → chunk-RW3XKAF3.js} +3 -3
  67. package/dist/chunk-RW3XKAF3.js.map +1 -0
  68. package/dist/{chunk-4VCWI42L.js → chunk-SUFG5E73.js} +2 -2
  69. package/dist/{chunk-SKONR2OL.js → chunk-U5O6GIWZ.js} +2 -2
  70. package/dist/{chunk-HFKGIBMD.js → chunk-VZ3XFUQ7.js} +2 -2
  71. package/dist/{chunk-3UK6STWO.js → chunk-VZUVORWV.js} +3 -3
  72. package/dist/{chunk-3EO7RZLJ.js → chunk-W77KZHCW.js} +4 -4
  73. package/dist/{chunk-P7NGLLUF.js → chunk-WASHZV34.js} +2 -2
  74. package/dist/{chunk-JEM2IGS3.js → chunk-WDDHMAAO.js} +5 -5
  75. package/dist/{chunk-XB7LUDKM.js → chunk-WFUIE565.js} +3 -3
  76. package/dist/{chunk-RPXL6KSX.js → chunk-WLZ47GSL.js} +3 -3
  77. package/dist/{chunk-MJWCLSQL.js → chunk-X56RTUK3.js} +3 -3
  78. package/dist/{chunk-TLNNHG3A.js → chunk-XMC2ZTRD.js} +3 -3
  79. package/dist/{chunk-TLNNHG3A.js.map → chunk-XMC2ZTRD.js.map} +1 -1
  80. package/dist/{chunk-MC2LFTQM.js → chunk-XWX7GL56.js} +2 -2
  81. package/dist/{chunk-24ZLWWEO.js → chunk-YPYHVOXP.js} +1 -1
  82. package/dist/chunk-YPYHVOXP.js.map +1 -0
  83. package/dist/{chunk-2LGDCNFJ.js → chunk-Z45YRGFO.js} +1 -1
  84. package/dist/chunk-Z45YRGFO.js.map +1 -0
  85. package/dist/classified/index.js +3 -3
  86. package/dist/{classified-marker-MH3ON5OL.js → classified-marker-2KJAXRRO.js} +3 -3
  87. package/dist/{collection-facade-AHT7FATG.js → collection-facade-QEJIM6BC.js} +8 -8
  88. package/dist/consent/index.js +4 -4
  89. package/dist/cover/index.js +2 -2
  90. package/dist/custody/index.js +6 -6
  91. package/dist/{dead-filter-U575NGSH.js → dead-filter-DCB62VWW.js} +2 -2
  92. package/dist/{delegation-PDYL6RWT.js → delegation-MO7YZYJS.js} +4 -4
  93. package/dist/derivations/index.js +6 -6
  94. package/dist/{derive-AKT4KU36.js → derive-IUA6JFLB.js} +5 -5
  95. package/dist/directory/index.js +5 -5
  96. package/dist/{dispatch-4XIJSFTT.js → dispatch-5DN7ZJGM.js} +5 -5
  97. package/dist/{dispatch-N5HGVUGU.js → dispatch-MJ6SHB3Y.js} +9 -9
  98. package/dist/{enclave-OPK24QDR.js → enclave-JU4YIEPB.js} +4 -4
  99. package/dist/{executor-3JZ4POTW.js → executor-TZNM4GCW.js} +8 -8
  100. package/dist/{export-accessible-CPTP5STN.js → export-accessible-4S36PQNR.js} +7 -7
  101. package/dist/{extract-partition-TWXPHVU7.js → extract-partition-IO7FDZ2P.js} +10 -10
  102. package/dist/{fanout-sidecar-T2ZGLQFE.js → fanout-sidecar-NNAJQXMX.js} +4 -4
  103. package/dist/forget/index.js +4 -4
  104. package/dist/guards/index.js +1 -1
  105. package/dist/history/index.js +6 -6
  106. package/dist/i18n/index.js +6 -6
  107. package/dist/index.d.ts +1 -0
  108. package/dist/index.js +56 -54
  109. package/dist/index.js.map +1 -1
  110. package/dist/introspection/index.js +6 -6
  111. package/dist/{issue-N74C55X6.js → issue-RIVHSY2S.js} +6 -6
  112. package/dist/kernel/secret-mode.d.ts +1 -1
  113. package/dist/kernel/types.d.ts +41 -6
  114. package/dist/kernel/vault.d.ts +3 -3
  115. package/dist/{ledger-DONWFC5M.js → ledger-AETNF4OM.js} +6 -6
  116. package/dist/liberate-BAHOP2TQ.js +24 -0
  117. package/dist/{link-set-2TTP4VLO.js → link-set-E5HNY67I.js} +5 -5
  118. package/dist/{managed-secret-EAOYWRYF.js → managed-secret-CWQ6PND5.js} +3 -3
  119. package/dist/materialized-views/index.js +9 -9
  120. package/dist/{noydb-6W2XGQCS.js → noydb-QGPKEDXK.js} +27 -27
  121. package/dist/overlay-views/index.js +1 -1
  122. package/dist/periods/index.js +6 -6
  123. package/dist/pod/index.js +30 -30
  124. package/dist/policy/index.js +3 -3
  125. package/dist/port/with/collection-options.d.ts +1 -1
  126. package/dist/portability/index.js +6 -6
  127. package/dist/{post-register-ORQOQJCS.js → post-register-2XSSMGEQ.js} +4 -4
  128. package/dist/{register-LHETZRJM.js → register-4EFJCVYD.js} +11 -11
  129. package/dist/{registry-JRIN447B.js → registry-4SDHHOJ7.js} +6 -6
  130. package/dist/{registry-AMAZ6QRZ.js → registry-OYTFGWVK.js} +4 -4
  131. package/dist/{request-withdrawal-2DN2RGCO.js → request-withdrawal-KGXGDPVQ.js} +9 -9
  132. package/dist/{reveal-AG4SCHUQ.js → reveal-BW36KCOQ.js} +3 -3
  133. package/dist/{revoke-ZX4NM2CJ.js → revoke-JFN773KF.js} +6 -6
  134. package/dist/sealed-record/index.js +6 -6
  135. package/dist/search/index.js +1 -1
  136. package/dist/{seed-IRCDGIRK.js → seed-NPF3BZGQ.js} +6 -6
  137. package/dist/sequence/index.js +4 -4
  138. package/dist/session/index.js +3 -3
  139. package/dist/{signer-7KHD4OL2.js → signer-TA55QB6R.js} +5 -5
  140. package/dist/snapshots/index.js +5 -5
  141. package/dist/{stale-K734VACF.js → stale-4E3VZXGV.js} +5 -5
  142. package/dist/{storage-4H2GF6RQ.js → storage-V7MTFAQJ.js} +5 -5
  143. package/dist/{store-coordination-provider-4SKLSFUG.js → store-coordination-provider-GFCUOBR6.js} +3 -3
  144. package/dist/sync/index.js +4 -4
  145. package/dist/team/index.js +8 -8
  146. package/dist/tiers/index.js +4 -4
  147. package/dist/via/classified/descriptor.d.ts +1 -1
  148. package/dist/{walk-MQHYNDLZ.js → walk-3ZECBFDA.js} +7 -7
  149. package/dist/with-audit/attestation/index.d.ts +1 -1
  150. package/dist/with-audit/guards/with-guard.d.ts +1 -1
  151. package/dist/with-cargo/index.d.ts +1 -1
  152. package/dist/with-commit/history/ledger/entry.d.ts +1 -1
  153. package/dist/with-commit/numbering/descriptor.d.ts +1 -1
  154. package/dist/with-formula/derivations/with-derivation.d.ts +1 -1
  155. package/dist/with-formula/materialized-views/with-materialized-view.d.ts +3 -3
  156. package/dist/with-formula/overlay-views/with-overlayed-view.d.ts +1 -1
  157. package/dist/with-party/custody/index.d.ts +1 -1
  158. package/dist/with-party/directory/user-envelope/index.d.ts +1 -1
  159. package/dist/with-party/directory/user-envelope/storage.d.ts +1 -1
  160. package/dist/with-party/team/echo-ceremony.d.ts +3 -3
  161. package/dist/with-party/team/echo-secret.d.ts +2 -2
  162. package/dist/with-pod/bundle.d.ts +15 -0
  163. package/dist/with-shape/introspection/index.d.ts +1 -1
  164. package/dist/with-shape/introspection/types.d.ts +1 -1
  165. package/dist/with-shape/persisted-schemas/derive.d.ts +1 -1
  166. package/dist/with-shape/persisted-schemas/index.d.ts +1 -1
  167. package/dist/with-shape/persisted-schemas/types.d.ts +1 -1
  168. package/dist/{withdraw-accessible-JSDQHXHE.js → withdraw-accessible-7PG4DYQK.js} +8 -8
  169. package/package.json +6 -4
  170. package/dist/chunk-24UICKTB.js.map +0 -1
  171. package/dist/chunk-24ZLWWEO.js.map +0 -1
  172. package/dist/chunk-2KIV7BEK.js.map +0 -1
  173. package/dist/chunk-2LGDCNFJ.js.map +0 -1
  174. package/dist/chunk-3CLZY46Y.js.map +0 -1
  175. package/dist/chunk-3HYWYLXL.js.map +0 -1
  176. package/dist/chunk-46V67XP5.js.map +0 -1
  177. package/dist/chunk-CJ73OLMW.js.map +0 -1
  178. package/dist/chunk-EK7DT5BT.js.map +0 -1
  179. package/dist/chunk-GS5RT2KK.js.map +0 -1
  180. package/dist/chunk-KZ3KMDN3.js.map +0 -1
  181. package/dist/chunk-OSFPNKY4.js.map +0 -1
  182. package/dist/chunk-RLWY6Z44.js.map +0 -1
  183. package/dist/chunk-T4GPR2IR.js.map +0 -1
  184. package/dist/liberate-KICI7AJN.js +0 -24
  185. /package/dist/{api-67SBPMMH.js.map → api-RXUMEKT3.js.map} +0 -0
  186. /package/dist/{backup-GAYWQAFN.js.map → backup-KULFZ2T4.js.map} +0 -0
  187. /package/dist/{bundle-handle-5OUAI7CV.js.map → bundle-handle-GFNHT52M.js.map} +0 -0
  188. /package/dist/{chunk-CYQOUTMY.js.map → chunk-2BMRJ6LQ.js.map} +0 -0
  189. /package/dist/{chunk-HS7HNYBD.js.map → chunk-2DHSSLOD.js.map} +0 -0
  190. /package/dist/{chunk-JH3OHQM4.js.map → chunk-2Z3NCLNX.js.map} +0 -0
  191. /package/dist/{chunk-NVU7ZMPN.js.map → chunk-3IXIU6FP.js.map} +0 -0
  192. /package/dist/{chunk-XBLKM73C.js.map → chunk-3JVXVJ7L.js.map} +0 -0
  193. /package/dist/{chunk-FY343IZR.js.map → chunk-3URQC7EH.js.map} +0 -0
  194. /package/dist/{chunk-BPTZ4K5L.js.map → chunk-4GZ6XOVW.js.map} +0 -0
  195. /package/dist/{chunk-ROWL352P.js.map → chunk-4I72F5DF.js.map} +0 -0
  196. /package/dist/{chunk-LBGPO5RL.js.map → chunk-52JPHN5N.js.map} +0 -0
  197. /package/dist/{chunk-MVOWXQHN.js.map → chunk-6BU3L4UE.js.map} +0 -0
  198. /package/dist/{chunk-PGAPBZEK.js.map → chunk-6NVPFKN3.js.map} +0 -0
  199. /package/dist/{chunk-NQRJ5AJO.js.map → chunk-7H73RIE3.js.map} +0 -0
  200. /package/dist/{chunk-NQCNSVGI.js.map → chunk-7MNBICB5.js.map} +0 -0
  201. /package/dist/{chunk-MXZ5TSTR.js.map → chunk-AHCSWNVL.js.map} +0 -0
  202. /package/dist/{chunk-V5C5NNBR.js.map → chunk-CDB2HVQW.js.map} +0 -0
  203. /package/dist/{chunk-4MQDV3HZ.js.map → chunk-FFDNKRCY.js.map} +0 -0
  204. /package/dist/{chunk-PP5CO2PR.js.map → chunk-FMQJZH4R.js.map} +0 -0
  205. /package/dist/{chunk-JSRU5W2M.js.map → chunk-FZ6NYJ7L.js.map} +0 -0
  206. /package/dist/{chunk-ZGGVOADG.js.map → chunk-G6S5VVHP.js.map} +0 -0
  207. /package/dist/{chunk-OMSAULZM.js.map → chunk-HY6Y2P4Y.js.map} +0 -0
  208. /package/dist/{chunk-TFZ7LLOQ.js.map → chunk-J7FM3RAU.js.map} +0 -0
  209. /package/dist/{chunk-ZWMO5GL5.js.map → chunk-JJNOLSG5.js.map} +0 -0
  210. /package/dist/{chunk-LTU4FLHG.js.map → chunk-MYG6WIRJ.js.map} +0 -0
  211. /package/dist/{chunk-SRGJET2F.js.map → chunk-NJDQ4YSV.js.map} +0 -0
  212. /package/dist/{chunk-DPJTDNUF.js.map → chunk-O42AUQCP.js.map} +0 -0
  213. /package/dist/{chunk-F3GVO44K.js.map → chunk-PDLLCOGD.js.map} +0 -0
  214. /package/dist/{chunk-VBY6ZLJT.js.map → chunk-PL2GHSCM.js.map} +0 -0
  215. /package/dist/{chunk-DCMQR46R.js.map → chunk-PNKHAKQ7.js.map} +0 -0
  216. /package/dist/{chunk-3IIPWA75.js.map → chunk-Q2VEFHDQ.js.map} +0 -0
  217. /package/dist/{chunk-ZK4CO2KZ.js.map → chunk-Q6TEJXBX.js.map} +0 -0
  218. /package/dist/{chunk-4VCWI42L.js.map → chunk-SUFG5E73.js.map} +0 -0
  219. /package/dist/{chunk-SKONR2OL.js.map → chunk-U5O6GIWZ.js.map} +0 -0
  220. /package/dist/{chunk-HFKGIBMD.js.map → chunk-VZ3XFUQ7.js.map} +0 -0
  221. /package/dist/{chunk-3UK6STWO.js.map → chunk-VZUVORWV.js.map} +0 -0
  222. /package/dist/{chunk-3EO7RZLJ.js.map → chunk-W77KZHCW.js.map} +0 -0
  223. /package/dist/{chunk-P7NGLLUF.js.map → chunk-WASHZV34.js.map} +0 -0
  224. /package/dist/{chunk-JEM2IGS3.js.map → chunk-WDDHMAAO.js.map} +0 -0
  225. /package/dist/{chunk-XB7LUDKM.js.map → chunk-WFUIE565.js.map} +0 -0
  226. /package/dist/{chunk-RPXL6KSX.js.map → chunk-WLZ47GSL.js.map} +0 -0
  227. /package/dist/{chunk-MJWCLSQL.js.map → chunk-X56RTUK3.js.map} +0 -0
  228. /package/dist/{chunk-MC2LFTQM.js.map → chunk-XWX7GL56.js.map} +0 -0
  229. /package/dist/{classified-marker-MH3ON5OL.js.map → classified-marker-2KJAXRRO.js.map} +0 -0
  230. /package/dist/{collection-facade-AHT7FATG.js.map → collection-facade-QEJIM6BC.js.map} +0 -0
  231. /package/dist/{dead-filter-U575NGSH.js.map → dead-filter-DCB62VWW.js.map} +0 -0
  232. /package/dist/{delegation-PDYL6RWT.js.map → delegation-MO7YZYJS.js.map} +0 -0
  233. /package/dist/{derive-AKT4KU36.js.map → derive-IUA6JFLB.js.map} +0 -0
  234. /package/dist/{dispatch-4XIJSFTT.js.map → dispatch-5DN7ZJGM.js.map} +0 -0
  235. /package/dist/{dispatch-N5HGVUGU.js.map → dispatch-MJ6SHB3Y.js.map} +0 -0
  236. /package/dist/{enclave-OPK24QDR.js.map → enclave-JU4YIEPB.js.map} +0 -0
  237. /package/dist/{executor-3JZ4POTW.js.map → executor-TZNM4GCW.js.map} +0 -0
  238. /package/dist/{export-accessible-CPTP5STN.js.map → export-accessible-4S36PQNR.js.map} +0 -0
  239. /package/dist/{extract-partition-TWXPHVU7.js.map → extract-partition-IO7FDZ2P.js.map} +0 -0
  240. /package/dist/{fanout-sidecar-T2ZGLQFE.js.map → fanout-sidecar-NNAJQXMX.js.map} +0 -0
  241. /package/dist/{issue-N74C55X6.js.map → issue-RIVHSY2S.js.map} +0 -0
  242. /package/dist/{ledger-DONWFC5M.js.map → ledger-AETNF4OM.js.map} +0 -0
  243. /package/dist/{liberate-KICI7AJN.js.map → liberate-BAHOP2TQ.js.map} +0 -0
  244. /package/dist/{link-set-2TTP4VLO.js.map → link-set-E5HNY67I.js.map} +0 -0
  245. /package/dist/{managed-secret-EAOYWRYF.js.map → managed-secret-CWQ6PND5.js.map} +0 -0
  246. /package/dist/{noydb-6W2XGQCS.js.map → noydb-QGPKEDXK.js.map} +0 -0
  247. /package/dist/{post-register-ORQOQJCS.js.map → post-register-2XSSMGEQ.js.map} +0 -0
  248. /package/dist/{register-LHETZRJM.js.map → register-4EFJCVYD.js.map} +0 -0
  249. /package/dist/{registry-AMAZ6QRZ.js.map → registry-4SDHHOJ7.js.map} +0 -0
  250. /package/dist/{registry-JRIN447B.js.map → registry-OYTFGWVK.js.map} +0 -0
  251. /package/dist/{request-withdrawal-2DN2RGCO.js.map → request-withdrawal-KGXGDPVQ.js.map} +0 -0
  252. /package/dist/{reveal-AG4SCHUQ.js.map → reveal-BW36KCOQ.js.map} +0 -0
  253. /package/dist/{revoke-ZX4NM2CJ.js.map → revoke-JFN773KF.js.map} +0 -0
  254. /package/dist/{seed-IRCDGIRK.js.map → seed-NPF3BZGQ.js.map} +0 -0
  255. /package/dist/{signer-7KHD4OL2.js.map → signer-TA55QB6R.js.map} +0 -0
  256. /package/dist/{stale-K734VACF.js.map → stale-4E3VZXGV.js.map} +0 -0
  257. /package/dist/{storage-4H2GF6RQ.js.map → storage-V7MTFAQJ.js.map} +0 -0
  258. /package/dist/{store-coordination-provider-4SKLSFUG.js.map → store-coordination-provider-GFCUOBR6.js.map} +0 -0
  259. /package/dist/{walk-MQHYNDLZ.js.map → walk-3ZECBFDA.js.map} +0 -0
  260. /package/dist/{withdraw-accessible-JSDQHXHE.js.map → withdraw-accessible-7PG4DYQK.js.map} +0 -0
@@ -1,22 +1,22 @@
1
1
  import {
2
2
  createNoydb
3
- } from "./chunk-3CLZY46Y.js";
3
+ } from "./chunk-7V2OGKES.js";
4
4
  import {
5
5
  deriveSchemaManifest
6
- } from "./chunk-HS7HNYBD.js";
6
+ } from "./chunk-2DHSSLOD.js";
7
7
  import {
8
8
  loadFence
9
- } from "./chunk-MVOWXQHN.js";
9
+ } from "./chunk-6BU3L4UE.js";
10
10
  import {
11
11
  readPod,
12
12
  readPodRedirect,
13
13
  signRecord,
14
14
  verifyPodHeader,
15
15
  verifyRecord
16
- } from "./chunk-EK7DT5BT.js";
16
+ } from "./chunk-4VUPLMZ6.js";
17
17
  import {
18
18
  loadKeyring
19
- } from "./chunk-RLWY6Z44.js";
19
+ } from "./chunk-RW3XKAF3.js";
20
20
  import {
21
21
  ConflictError,
22
22
  MigrationRequiredError,
@@ -290,4 +290,4 @@ export {
290
290
  followRedirects,
291
291
  open
292
292
  };
293
- //# sourceMappingURL=chunk-MXZ5TSTR.js.map
293
+ //# sourceMappingURL=chunk-AHCSWNVL.js.map
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  openEnvelopeJson
3
- } from "./chunk-FY343IZR.js";
3
+ } from "./chunk-3URQC7EH.js";
4
4
  import {
5
5
  encrypt
6
6
  } from "./chunk-VCETL77O.js";
7
7
  import {
8
8
  NOYDB_FORMAT_VERSION
9
- } from "./chunk-24ZLWWEO.js";
9
+ } from "./chunk-YPYHVOXP.js";
10
10
 
11
11
  // src/with-shape/persisted-schemas/storage.ts
12
12
  var SCHEMAS_COLLECTION = "_schemas";
@@ -46,4 +46,4 @@ export {
46
46
  loadPersistedSchema,
47
47
  savePersistedSchema
48
48
  };
49
- //# sourceMappingURL=chunk-V5C5NNBR.js.map
49
+ //# sourceMappingURL=chunk-CDB2HVQW.js.map
@@ -177,4 +177,4 @@ function withMaterializedView(spec) {
177
177
  export {
178
178
  withMaterializedView
179
179
  };
180
- //# sourceMappingURL=chunk-3HYWYLXL.js.map
180
+ //# sourceMappingURL=chunk-CEJWMBXO.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/with-formula/materialized-views/with-materialized-view.ts"],"sourcesContent":["import { MaterializedViewConfigError, ValidationError } from '../../kernel/errors.js'\nimport type { MaterializedViewSpec, MaterializedViewStrategy } from './types.js'\n\n/**\n * Register a materialized view: a declared query whose result is\n * persisted as a queryable collection and kept fresh as sources\n * change. Writes go through the standard `Collection.put` pipeline;\n * refresh-driven deletes route through `Collection._internalDelete` so\n * user `onDelete` guards on the output collection aren't tripped by\n * housekeeping.\n *\n * Three registration modes:\n * - **single-source** — declare `query: (db) => Query<TRow>`; the\n * dependency analyzer derives source collections from the plan.\n * - **UNION** — declare `unionSources: [{ collection, map }, ...]`\n * plus optional `groupBy` + `aggregate`; the executor reads each\n * arm, maps to the unified row shape, concatenates, then groups\n * and aggregates.\n * - **projection** (#810) — declare `projection: { source, joins,\n * map }`; one output row per primary record, enriched with\n * forward FK legs and reverse \"collect\" legs before `map` runs.\n *\n * The three modes are mutually exclusive — exactly one of `query` /\n * `unionSources` / `projection` must be set at registration time.\n *\n * See design-history/2026-05-20-dim14-mv-v2-design.md (single-source v2),\n * design-history/2026-05-21-dim14-mv-multikey-and-union.md (UNION),\n * and design-history/2026-07-25-join-projection-mv-design.md (projection).\n */\nexport function withMaterializedView<TRow extends Record<string, unknown>>(\n spec: MaterializedViewSpec<TRow>,\n): MaterializedViewStrategy {\n if (!spec.name || spec.name.length === 0) {\n throw new ValidationError('withMaterializedView: name is required')\n }\n // Mutual exclusion: exactly one of the three forms must be declared.\n const declaredForms = [spec.query, spec.unionSources, spec.projection]\n .filter((f) => f !== undefined).length\n if (declaredForms > 1) {\n throw new MaterializedViewConfigError(\n 'query, unionSources, and projection are mutually exclusive — pick one',\n )\n }\n if (declaredForms === 0) {\n throw new MaterializedViewConfigError(\n 'strategy must declare exactly one of query, unionSources, or projection',\n )\n }\n if (spec.query !== undefined && typeof spec.query !== 'function') {\n throw new ValidationError('withMaterializedView: query must be a function returning a Query<T>')\n }\n // UNION-form invariants.\n if (spec.unionSources) {\n // A single arm is a deliberate shape: map→group→aggregate over\n // ONE collection with a COMPUTED bucket key (e.g. month sliced from a\n // date field) — something the query form's stored-field groupBy cannot\n // express. The executor and dependency analyzer are arm-count-agnostic.\n if (spec.unionSources.length < 1) {\n throw new MaterializedViewConfigError(\n 'unionSources requires at least 1 source collection',\n )\n }\n const seen = new Set<string>()\n for (const s of spec.unionSources) {\n if (typeof s?.collection !== 'string' || s.collection.length === 0) {\n throw new MaterializedViewConfigError(\n 'each unionSources entry must declare a non-empty `collection` string',\n )\n }\n if (typeof s.map !== 'function') {\n throw new MaterializedViewConfigError(\n `unionSources entry for \"${s.collection}\" is missing a \\`map\\` function`,\n )\n }\n if (seen.has(s.collection)) {\n throw new MaterializedViewConfigError(\n `unionSources must reference distinct collections (duplicate: \"${s.collection}\")`,\n )\n }\n seen.add(s.collection)\n }\n if (Array.isArray(spec.groupBy) && spec.groupBy.length === 0) {\n throw new MaterializedViewConfigError(\n `withMaterializedView \"${spec.name}\": groupBy must not be an empty array — omit it or provide at least one field name`,\n )\n }\n if (spec.aggregate && !spec.groupBy) {\n throw new MaterializedViewConfigError(\n `withMaterializedView \"${spec.name}\": UNION strategy with aggregate requires groupBy — `\n + `use groupBy to declare the bucketing keys, or remove aggregate for a pure dedup MV`,\n )\n }\n // `moneyFields` only has meaning when there's an aggregate to\n // money-rewrite — it keys reducer outputs, so declaring it without\n // `aggregate` is a no-op config mistake.\n if (spec.moneyFields && !spec.aggregate) {\n throw new MaterializedViewConfigError(\n `withMaterializedView \"${spec.name}\": moneyFields requires aggregate — `\n + `moneyFields rewrites sum/min/max reducers over money output fields, `\n + `so it is meaningless without an aggregate spec`,\n )\n }\n // Per-arm joins resolve right-side collections that the union\n // dependency set (built from arm `collection`s alone) does NOT\n // include. The consumer must list those right-side collections in\n // `sources` so writes to them trigger MV refresh.\n if (spec.unionSources.some(s => s.join && s.join.length > 0) && (!spec.sources || spec.sources.length === 0)) {\n throw new MaterializedViewConfigError(\n `withMaterializedView \"${spec.name}\": a unionSources arm declares join(s) but `\n + `no \\`sources\\` are listed — declare sources: [...] with the right-side `\n + `(join-target) collection names so writes to them trigger MV refresh`,\n )\n }\n if (spec.predicates) {\n throw new MaterializedViewConfigError(\n `withMaterializedView \"${spec.name}\": predicates are not supported on UNION strategies — `\n + `UNION mode does not use a Query<T> chain, so .wherePredicate() cannot fire. `\n + `Use the query() form, or open an issue if per-arm predicates are needed`,\n )\n }\n }\n // Projection-form invariants (#810). Shape checks only — the\n // semantic ref() check on collect legs (the `on` field must carry a\n // ref() targeting the projection source) runs at first\n // materialization, parity with join-time ref errors.\n if (spec.projection) {\n const projection = spec.projection\n if (typeof projection.source !== 'string' || projection.source.length === 0) {\n throw new MaterializedViewConfigError(\n `withMaterializedView \"${spec.name}\": projection.source must be a non-empty collection name`,\n )\n }\n if (typeof projection.map !== 'function') {\n throw new MaterializedViewConfigError(\n `withMaterializedView \"${spec.name}\": projection is missing a \\`map\\` function`,\n )\n }\n if (!Array.isArray(projection.joins) || projection.joins.length < 1) {\n throw new MaterializedViewConfigError(\n `withMaterializedView \"${spec.name}\": projection.joins must declare at least 1 leg — `\n + `a leg-less single-source MV is the query() form's job`,\n )\n }\n const seenAs = new Set<string>()\n for (const leg of projection.joins) {\n const l = leg as { field?: unknown; collect?: unknown; on?: unknown; as?: unknown }\n const isForward = l.field !== undefined\n const isCollect = l.collect !== undefined\n if (isForward && isCollect) {\n throw new MaterializedViewConfigError(\n `withMaterializedView \"${spec.name}\": a projection leg cannot declare both \\`field\\` `\n + `(forward) and \\`collect\\` (reverse) — split it into two legs`,\n )\n }\n if (!isForward && !isCollect) {\n throw new MaterializedViewConfigError(\n `withMaterializedView \"${spec.name}\": each projection leg must declare either \\`field\\` `\n + `(forward FK) or \\`collect\\` (reverse one-to-many)`,\n )\n }\n if (isForward && (typeof l.field !== 'string' || l.field.length === 0)) {\n throw new MaterializedViewConfigError(\n `withMaterializedView \"${spec.name}\": a forward projection leg must declare a non-empty \\`field\\``,\n )\n }\n if (isCollect) {\n if (typeof l.collect !== 'string' || l.collect.length === 0) {\n throw new MaterializedViewConfigError(\n `withMaterializedView \"${spec.name}\": a collect projection leg must declare a non-empty \\`collect\\` collection name`,\n )\n }\n if (typeof l.on !== 'string' || l.on.length === 0) {\n throw new MaterializedViewConfigError(\n `withMaterializedView \"${spec.name}\": collect leg for \"${l.collect}\" must declare a non-empty \\`on\\` FK field`,\n )\n }\n }\n if (typeof l.as !== 'string' || l.as.length === 0) {\n throw new MaterializedViewConfigError(\n `withMaterializedView \"${spec.name}\": each projection leg must declare a non-empty \\`as\\` alias`,\n )\n }\n if (seenAs.has(l.as)) {\n throw new MaterializedViewConfigError(\n `withMaterializedView \"${spec.name}\": projection legs must attach under distinct \\`as\\` aliases (duplicate: \"${l.as}\")`,\n )\n }\n seenAs.add(l.as)\n }\n // Post-map grouping invariants — same rules as UNION (the mapped\n // stream feeds the same shared groupAndReduce tail).\n if (Array.isArray(spec.groupBy) && spec.groupBy.length === 0) {\n throw new MaterializedViewConfigError(\n `withMaterializedView \"${spec.name}\": groupBy must not be an empty array — omit it or provide at least one field name`,\n )\n }\n if (spec.aggregate && !spec.groupBy) {\n throw new MaterializedViewConfigError(\n `withMaterializedView \"${spec.name}\": projection strategy with aggregate requires groupBy — `\n + `use groupBy to declare the bucketing keys, or remove aggregate for a row-per-primary-record MV`,\n )\n }\n if (spec.moneyFields && !spec.aggregate) {\n throw new MaterializedViewConfigError(\n `withMaterializedView \"${spec.name}\": moneyFields requires aggregate — `\n + `moneyFields rewrites sum/min/max reducers over money output fields, `\n + `so it is meaningless without an aggregate spec`,\n )\n }\n if (spec.predicates) {\n throw new MaterializedViewConfigError(\n `withMaterializedView \"${spec.name}\": predicates are not supported on projection strategies — `\n + `projection mode does not use a Query<T> chain, so .wherePredicate() cannot fire. `\n + `Filter inside projection.map (return null to omit) instead`,\n )\n }\n }\n // i18nLocale + i18nFields drive compute-time i18n resolution of group-key\n // i18nText fields before bucketing — UNION mode (resolved on the unified rows)\n // AND query mode (resolved in GroupedReduction.run before groupAndReduce).\n // i18nLocale without i18nFields cannot resolve anything, so reject it early.\n if (spec.i18nLocale !== undefined && spec.i18nFields === undefined) {\n throw new MaterializedViewConfigError(\n `withMaterializedView \"${spec.name}\": i18nLocale requires i18nFields — `\n + `declare the i18nText descriptors of the group-key fields so they can be `\n + `resolved at the mv layer before bucketing.`,\n )\n }\n if (typeof spec.rowKey !== 'function') {\n throw new ValidationError('withMaterializedView: rowKey is required (no default; see spec § Type surface)')\n }\n if (spec.refresh !== 'eager' && spec.refresh !== 'lazy' && spec.refresh !== 'manual') {\n throw new ValidationError(\n `withMaterializedView: refresh must be 'eager' | 'lazy' | 'manual', got \"${String(spec.refresh)}\"`,\n )\n }\n return {\n __noydb_strategy: 'materialized-view',\n spec,\n }\n}\n"],"mappings":"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","names":[]}
@@ -33,4 +33,4 @@ function withOverlayedView(spec) {
33
33
  export {
34
34
  withOverlayedView
35
35
  };
36
- //# sourceMappingURL=chunk-2KIV7BEK.js.map
36
+ //# sourceMappingURL=chunk-FDX7OWWI.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/with-formula/overlay-views/with-overlayed-view.ts"],"sourcesContent":["import { ValidationError } from '../../kernel/errors.js'\nimport type { OverlayedViewSpec, OverlayedViewStrategy } from './types.js'\n\n/**\n * Register a read-shadow overlay: bind an MV-owned base collection to\n * a user-writable overlay so consumers can express operator-editable\n * lifecycles as one declarative block.\n *\n * See design-history/2026-05-20-dim14-mv-v2-design.md.\n */\nexport function withOverlayedView(\n spec: OverlayedViewSpec,\n): OverlayedViewStrategy {\n if (!spec.name || spec.name.length === 0) {\n throw new ValidationError('withOverlayedView: name is required')\n }\n if (!spec.base || spec.base.length === 0) {\n throw new ValidationError('withOverlayedView: base is required')\n }\n if (!spec.overlay || spec.overlay.length === 0) {\n throw new ValidationError('withOverlayedView: overlay is required')\n }\n if (spec.base === spec.overlay) {\n throw new ValidationError('withOverlayedView: base and overlay must be different collections')\n }\n if (spec.base === spec.name || spec.overlay === spec.name) {\n throw new ValidationError(\n 'withOverlayedView: virtual name must differ from both base and overlay collection names',\n )\n }\n if (!spec.shadowField || spec.shadowField.length === 0) {\n throw new ValidationError('withOverlayedView: shadowField is required')\n }\n return {\n __noydb_strategy: 'overlayed-view',\n spec,\n }\n}\n"],"mappings":";;;;;AAUO,SAAS,kBACd,MACuB;AACvB,MAAI,CAAC,KAAK,QAAQ,KAAK,KAAK,WAAW,GAAG;AACxC,UAAM,IAAI,gBAAgB,qCAAqC;AAAA,EACjE;AACA,MAAI,CAAC,KAAK,QAAQ,KAAK,KAAK,WAAW,GAAG;AACxC,UAAM,IAAI,gBAAgB,qCAAqC;AAAA,EACjE;AACA,MAAI,CAAC,KAAK,WAAW,KAAK,QAAQ,WAAW,GAAG;AAC9C,UAAM,IAAI,gBAAgB,wCAAwC;AAAA,EACpE;AACA,MAAI,KAAK,SAAS,KAAK,SAAS;AAC9B,UAAM,IAAI,gBAAgB,mEAAmE;AAAA,EAC/F;AACA,MAAI,KAAK,SAAS,KAAK,QAAQ,KAAK,YAAY,KAAK,MAAM;AACzD,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AAAA,EACF;AACA,MAAI,CAAC,KAAK,eAAe,KAAK,YAAY,WAAW,GAAG;AACtD,UAAM,IAAI,gBAAgB,4CAA4C;AAAA,EACxE;AACA,SAAO;AAAA,IACL,kBAAkB;AAAA,IAClB;AAAA,EACF;AACF;","names":[]}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  writePod
3
- } from "./chunk-EK7DT5BT.js";
3
+ } from "./chunk-4VUPLMZ6.js";
4
4
 
5
5
  // src/with-audit/portability/export-accessible.ts
6
6
  function resolveAccessibleCollections(keyring, scope, writableOnly = false) {
@@ -42,4 +42,4 @@ export {
42
42
  buildAccessibleBundle,
43
43
  exportAccessibleData
44
44
  };
45
- //# sourceMappingURL=chunk-4MQDV3HZ.js.map
45
+ //# sourceMappingURL=chunk-FFDNKRCY.js.map
@@ -201,7 +201,7 @@ var engineCtx = (ctx) => ({
201
201
  function withClassified() {
202
202
  return {
203
203
  async reveal(ctx, id, field) {
204
- const { revealSealedField } = await import("./reveal-AG4SCHUQ.js");
204
+ const { revealSealedField } = await import("./reveal-BW36KCOQ.js");
205
205
  const value = await revealSealedField({
206
206
  collection: ctx.collection,
207
207
  encrypted: ctx.encrypted,
@@ -244,4 +244,4 @@ export {
244
244
  classified,
245
245
  withClassified
246
246
  };
247
- //# sourceMappingURL=chunk-PP5CO2PR.js.map
247
+ //# sourceMappingURL=chunk-FMQJZH4R.js.map
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  buildAccessibleBundle,
3
3
  resolveAccessibleCollections
4
- } from "./chunk-4MQDV3HZ.js";
4
+ } from "./chunk-FFDNKRCY.js";
5
5
  import {
6
6
  sha256Hex
7
7
  } from "./chunk-VCETL77O.js";
8
8
  import {
9
9
  NOYDB_FORMAT_VERSION
10
- } from "./chunk-24ZLWWEO.js";
10
+ } from "./chunk-YPYHVOXP.js";
11
11
  import {
12
12
  ReadOnlyError
13
13
  } from "./chunk-HNGSV2YC.js";
@@ -114,4 +114,4 @@ export {
114
114
  freezeAndDeleteClosure,
115
115
  withdrawAccessibleData
116
116
  };
117
- //# sourceMappingURL=chunk-JSRU5W2M.js.map
117
+ //# sourceMappingURL=chunk-FZ6NYJ7L.js.map
@@ -5,7 +5,7 @@ import {
5
5
  buildStringFieldEntries,
6
6
  extractSnippet,
7
7
  searchScan
8
- } from "./chunk-XBLKM73C.js";
8
+ } from "./chunk-3JVXVJ7L.js";
9
9
  import {
10
10
  fuseRetrieval
11
11
  } from "./chunk-AURFOK3D.js";
@@ -394,4 +394,4 @@ export {
394
394
  rebuildEmbeddings,
395
395
  syncTierSearch
396
396
  };
397
- //# sourceMappingURL=chunk-ZGGVOADG.js.map
397
+ //# sourceMappingURL=chunk-G6S5VVHP.js.map
@@ -1,29 +1,29 @@
1
1
  import {
2
2
  walkClosure
3
- } from "./chunk-BPTZ4K5L.js";
3
+ } from "./chunk-4GZ6XOVW.js";
4
4
  import {
5
5
  resolveManagedSecret
6
- } from "./chunk-MC2LFTQM.js";
6
+ } from "./chunk-XWX7GL56.js";
7
7
  import {
8
8
  parseExtractedPartitionBody,
9
9
  readPod,
10
10
  readPodHeader
11
- } from "./chunk-EK7DT5BT.js";
11
+ } from "./chunk-4VUPLMZ6.js";
12
12
  import {
13
13
  createOwnerKeyring
14
- } from "./chunk-RLWY6Z44.js";
14
+ } from "./chunk-RW3XKAF3.js";
15
15
  import {
16
16
  diff
17
17
  } from "./chunk-SVLR4POP.js";
18
18
  import {
19
19
  LedgerStore
20
- } from "./chunk-ZK4CO2KZ.js";
20
+ } from "./chunk-Q6TEJXBX.js";
21
21
  import {
22
22
  LEDGER_COLLECTION
23
23
  } from "./chunk-I7FD46FF.js";
24
24
  import {
25
25
  openEnvelopeJson
26
- } from "./chunk-FY343IZR.js";
26
+ } from "./chunk-3URQC7EH.js";
27
27
  import {
28
28
  base64ToBuffer,
29
29
  wrapKey
@@ -193,7 +193,7 @@ function shortJSON(value) {
193
193
  function withCargo() {
194
194
  return {
195
195
  async extractPartition(vault, opts) {
196
- const { extractPartitionCore } = await import("./extract-partition-TWXPHVU7.js");
196
+ const { extractPartitionCore } = await import("./extract-partition-IO7FDZ2P.js");
197
197
  return extractPartitionCore(vault, opts);
198
198
  }
199
199
  };
@@ -399,7 +399,7 @@ async function createOwnerOnAdoptedPartition(store, vaultName, opts) {
399
399
  }
400
400
  }
401
401
  if (isManaged(opts)) {
402
- const { createNoydb } = await import("./noydb-6W2XGQCS.js");
402
+ const { createNoydb } = await import("./noydb-QGPKEDXK.js");
403
403
  const db = await createNoydb({
404
404
  store,
405
405
  user: userId,
@@ -455,4 +455,4 @@ export {
455
455
  withCargo,
456
456
  describeExtraction
457
457
  };
458
- //# sourceMappingURL=chunk-OMSAULZM.js.map
458
+ //# sourceMappingURL=chunk-HY6Y2P4Y.js.map
@@ -8,7 +8,7 @@ import {
8
8
  rotateKeys,
9
9
  verifyPrompt,
10
10
  verifyTypedEcho
11
- } from "./chunk-RLWY6Z44.js";
11
+ } from "./chunk-RW3XKAF3.js";
12
12
  import {
13
13
  NoAccessError,
14
14
  NoydbError,
@@ -114,4 +114,4 @@ export {
114
114
  MemoryDeviceSealProvider,
115
115
  withTeam
116
116
  };
117
- //# sourceMappingURL=chunk-46V67XP5.js.map
117
+ //# sourceMappingURL=chunk-IQRP74OO.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/with-party/team/echo-ceremony.ts","../src/with-party/team/device-seal.ts","../src/with-party/team/active.ts"],"sourcesContent":["/**\n * `beginEchoUnlock` — the interactive ceremony API (spec\n * design-history/2026-08-02-echo-secret-design.md, #940, Task 6).\n *\n * Split out of `echo-secret.ts` (which owns only the block builders +\n * verifiers) because this module orchestrates BOTH `echo-secret.ts`\n * (`verifyPrompt`/`resolveEchoReveal`/`verifyTypedEcho`) AND `keyring.ts`\n * (`loadKeyring`) — and `keyring.ts` itself imports `buildEchoBlock` from\n * `echo-secret.ts`. Keeping the ceremony here instead of inside\n * `echo-secret.ts` yields a clean DAG (`echo-ceremony.ts` → {`echo-secret.ts`,\n * `keyring.ts`}; `keyring.ts` → `echo-secret.ts`) instead of a two-file\n * cycle, and restores `echo-secret.ts`'s documented charter (builders +\n * verifiers only).\n *\n * @module\n */\n\nimport type { NoydbStore } from '../../kernel/types.js'\nimport type { DeviceSealProvider } from './device-seal.js'\nimport { WrongPromptError, WrongEchoError, ValidationError, NoAccessError } from '../../kernel/errors.js'\nimport { verifyPrompt, resolveEchoReveal, verifyTypedEcho } from './echo-secret.js'\nimport { loadKeyring, readKeyringFile, assertKeyringNotExpired, type UnlockedKeyring } from './keyring.js'\n\n/** Options for {@link beginEchoUnlock}. */\nexport interface BeginEchoUnlockOptions {\n readonly userId: string\n readonly prompt: string\n readonly deviceSeal?: DeviceSealProvider\n}\n\n/**\n * A prompt-verified, in-progress echo unlock. Stateless w.r.t. attempts —\n * `complete()` may be called more than once (e.g. retry after a wrong key).\n */\nexport interface EchoCeremony {\n /**\n * Echo to display for owner recognition; null ⇒ degraded: ask the owner to\n * TYPE it.\n *\n * Conforming-player contract (spec\n * design-history/2026-08-02-echo-secret-design.md, \"Ceremony\"):\n * when the owner does NOT recognize the revealed echo, the player MUST show\n * a hard phishing warning — do not continue, open the official app, rotate\n * the secret immediately — MUST NOT offer any skip or\n * \"verification unavailable\" fallback, and MUST simply abandon the ceremony\n * by never calling {@link EchoCeremony.complete}. The kernel cannot enforce\n * this terminal state; it is the player's obligation.\n */\n readonly reveal: string | null\n readonly maskHint: string | undefined\n /** Complete the ceremony. `echo` is REQUIRED when `reveal` is null. */\n complete(input: { readonly echo?: string; readonly key: string }): Promise<UnlockedKeyring>\n}\n\n/**\n * Begin the interactive anti-phishing unlock ceremony (spec decision 4):\n * prompt → echo reveal → key. Fetches and parses the `_keyring/{userId}`\n * row (same store path as `loadKeyring`), verifies the prompt, and resolves\n * the echo for display (or degrades to the typed-echo path when the reveal\n * cannot be resolved — sealed reveal under a foreign device).\n *\n * Conforming-player contract (spec\n * design-history/2026-08-02-echo-secret-design.md): an owner who does\n * not recognize `ceremony.reveal` is looking at a phish. The player MUST then\n * show a hard warning (stop, open the official app, rotate the secret now),\n * MUST NOT offer a skip / \"verification unavailable\" fallback or any\n * single-field secret entry, and MUST abandon the ceremony without calling\n * `complete()`.\n *\n * @throws NoAccessError when no keyring exists for `userId` (mirrors\n * `loadKeyring`'s missing-row error).\n * @throws KeyringExpiredError when the slot is past its `expires_at` —\n * checked before the prompt is verified, so an expired slot never reveals.\n * @throws ValidationError when the keyring is not an echo keyring.\n * @throws WrongPromptError when the prompt fails its verifier.\n */\nexport async function beginEchoUnlock(\n store: NoydbStore,\n vault: string,\n opts: BeginEchoUnlockOptions,\n): Promise<EchoCeremony> {\n const { userId, prompt, deviceSeal } = opts\n\n // Same store path + missing-row error as loadKeyring, now shared via\n // `readKeyringFile` (#951).\n const found = await readKeyringFile(store, vault, userId)\n if (!found) {\n throw new NoAccessError(`No keyring found for user \"${userId}\" in vault \"${vault}\"`)\n }\n const { file: keyringFile } = found\n\n // Same expiry gate as loadKeyring, applied BEFORE the prompt is verified so\n // an expired slot never reveals its echo (and leaks no timing on the\n // prompt). Now shared via `assertKeyringNotExpired` (#951).\n assertKeyringNotExpired(keyringFile)\n\n const block = keyringFile.echo\n if (block === undefined) {\n throw new ValidationError('not an echo keyring')\n }\n\n if (!(await verifyPrompt(block, prompt))) {\n throw new WrongPromptError()\n }\n\n const reveal = await resolveEchoReveal(block, prompt, deviceSeal)\n\n return {\n reveal,\n maskHint: block.mask_hint,\n async complete(input: { readonly echo?: string; readonly key: string }): Promise<UnlockedKeyring> {\n let echo: string\n if (reveal !== null) {\n // A supplied input.echo must agree with the revealed echo — defensive:\n // a player that collects a typed echo despite a reveal must not\n // silently unlock with a mismatched pair.\n if (input.echo !== undefined && input.echo !== reveal) {\n throw new WrongEchoError()\n }\n echo = reveal\n } else {\n if (input.echo === undefined) {\n throw new ValidationError('beginEchoUnlock: echo is required to complete a degraded (typed-echo) ceremony.')\n }\n if (!(await verifyTypedEcho(block, input.echo))) {\n throw new WrongEchoError()\n }\n echo = input.echo\n }\n return loadKeyring(store, vault, { userId, secret: { prompt, echo, key: input.key } })\n },\n }\n}\n","import { NoydbError } from '../../kernel/errors.js'\nimport type { DeviceSealProvider } from '../../port/with/device-seal-strategy.js'\n\n/**\n * Device-local sealer for the echo reveal-blob (spec decision 5).\n * DISTINCT from `SealingKeyProvider` (managed-secret mode, which seals\n * the WHOLE secret): this seals only the echo part, and only so an\n * enrolled device can display it during the unlock ceremony. The\n * sealed bytes may sit in the (untrusted) keyring file — attacker-B\n * resistance comes from `unseal` requiring this device's key store.\n *\n * The interface itself is declared on the `/with` port\n * ({@link DeviceSealProvider} from `port/with/device-seal-strategy.js`)\n * so the kernel spine can reference it without a static spine→service\n * import; re-exported here as the canonical consumer-facing home.\n */\nexport type { DeviceSealProvider }\n\n/** In-memory test provider — AES-GCM under a per-instance random key. */\nexport class MemoryDeviceSealProvider implements DeviceSealProvider {\n readonly id: string\n private readonly keyPromise: Promise<CryptoKey>\n constructor(opts: { id: string }) {\n this.id = opts.id\n this.keyPromise = globalThis.crypto.subtle.generateKey({ name: 'AES-GCM', length: 256 }, false, [\n 'encrypt',\n 'decrypt',\n ])\n }\n async seal(plain: Uint8Array): Promise<Uint8Array> {\n const iv = globalThis.crypto.getRandomValues(new Uint8Array(12))\n const ct = new Uint8Array(\n await globalThis.crypto.subtle.encrypt({ name: 'AES-GCM', iv }, await this.keyPromise, plain as BufferSource),\n )\n const out = new Uint8Array(12 + ct.length)\n out.set(iv, 0)\n out.set(ct, 12)\n return out\n }\n async unseal(sealed: Uint8Array): Promise<Uint8Array> {\n try {\n return new Uint8Array(\n await globalThis.crypto.subtle.decrypt(\n { name: 'AES-GCM', iv: sealed.slice(0, 12) },\n await this.keyPromise,\n sealed.slice(12) as BufferSource,\n ),\n )\n } catch {\n throw new NoydbError('DEVICE_SEAL_UNSEAL_FAILED', 'Device seal: unseal failed (tamper or wrong device).')\n }\n }\n}\n","/**\n * Enable the multi-user team capability (#267 Track A tail).\n *\n * Pass to `createNoydb({ teamStrategy: withTeam() })` to make `db.grant` /\n * `db.revoke` / `db.rotate` live. The keyring grant/revoke/rotate engines\n * are statically imported HERE — this module is reachable only through the\n * `@noy-db/hub/team` subpath (and the root barrel's tree-shakeable\n * re-export), so a single-user floor bundle never carries them. The facade\n * (`TeamFacade.runGrant` / `runRevoke` / `runRotate`) owns the policy-gate +\n * keyring plumbing and receives the engine as an argument.\n */\nimport type { TeamStrategy } from './strategy.js'\nimport { grant as grantEngine, revoke as revokeEngine, rotateKeys as rotateEngine } from './keyring.js'\n\nexport function withTeam(): TeamStrategy {\n return {\n async grant(team, vault, options, factors) {\n return team.runGrant(grantEngine, vault, options, factors)\n },\n async revoke(team, vault, options, factors) {\n return team.runRevoke(revokeEngine, vault, options, factors)\n },\n async rotate(team, vault, collections) {\n return team.runRotate(rotateEngine, vault, collections)\n },\n }\n}\n"],"mappings":"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","names":[]}
@@ -10,11 +10,11 @@ import {
10
10
  } from "./chunk-JXIDGFKS.js";
11
11
  import {
12
12
  envelopeBodySize
13
- } from "./chunk-FY343IZR.js";
13
+ } from "./chunk-3URQC7EH.js";
14
14
  import {
15
15
  isDeleteMarker,
16
16
  isTombstoneShape
17
- } from "./chunk-NQRJ5AJO.js";
17
+ } from "./chunk-7H73RIE3.js";
18
18
  import {
19
19
  decrypt,
20
20
  derivePresenceKey,
@@ -22,7 +22,7 @@ import {
22
22
  } from "./chunk-VCETL77O.js";
23
23
  import {
24
24
  NOYDB_SYNC_VERSION
25
- } from "./chunk-24ZLWWEO.js";
25
+ } from "./chunk-YPYHVOXP.js";
26
26
  import {
27
27
  ValidationError,
28
28
  isConflictError
@@ -1160,4 +1160,4 @@ export {
1160
1160
  SyncEngine,
1161
1161
  SyncTransaction
1162
1162
  };
1163
- //# sourceMappingURL=chunk-TFZ7LLOQ.js.map
1163
+ //# sourceMappingURL=chunk-J7FM3RAU.js.map
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  openEnvelopeJson
3
- } from "./chunk-FY343IZR.js";
3
+ } from "./chunk-3URQC7EH.js";
4
4
  import {
5
5
  encrypt
6
6
  } from "./chunk-VCETL77O.js";
7
7
  import {
8
8
  NOYDB_FORMAT_VERSION
9
- } from "./chunk-24ZLWWEO.js";
9
+ } from "./chunk-YPYHVOXP.js";
10
10
  import {
11
11
  ConflictError
12
12
  } from "./chunk-HNGSV2YC.js";
@@ -56,4 +56,4 @@ export {
56
56
  loadSigner,
57
57
  loadOrCreateSigner
58
58
  };
59
- //# sourceMappingURL=chunk-ZWMO5GL5.js.map
59
+ //# sourceMappingURL=chunk-JJNOLSG5.js.map
@@ -120,4 +120,4 @@ export {
120
120
  immutableGuard,
121
121
  transitionGuard
122
122
  };
123
- //# sourceMappingURL=chunk-KZ3KMDN3.js.map
123
+ //# sourceMappingURL=chunk-LWSJG3LI.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/with-audit/guards/with-guard.ts","../src/with-audit/guards/immutable-guard.ts","../src/with-audit/guards/transition-guard.ts"],"sourcesContent":["import { ValidationError } from '../../kernel/errors.js'\nimport type { GuardSpec, GuardStrategy } from './types.js'\n\n/**\n * Register a guard for a collection. Guards run on every `put()` /\n * `delete()` for the named collection (after permissions, before\n * encryption) and may:\n *\n * - `check` — block writes by throwing (typically `RecordLockedError`)\n * - `frozenFields` — freeze specific fields once a condition is true\n * - `amendment` — declare an authorized-override path with invariant\n *\n * Pass the returned handle to `createNoydb({ strategies: [...] })`.\n *\n * @see design-history/2026-05-18-guards-design.md\n */\nexport function withGuard<T extends Record<string, unknown>>(\n strategy: GuardSpec<T>,\n): GuardStrategy<T> {\n if (!strategy.collection || strategy.collection.length === 0) {\n throw new ValidationError('withGuard: collection name is required')\n }\n return {\n __noydb_strategy: 'guard',\n spec: strategy,\n }\n}\n","/**\n * `immutableGuard` — declarative WORM / append-only sugar over the guard\n * service.\n *\n * Issued fiscal documents (invoices, DDTs) must be immutable after issue.\n * That is expressible today with a hand-rolled `withGuard` (block on\n * `check`/`onDelete`, allow an admin `amendment`), but the boilerplate is\n * repetitive and easy to get subtly wrong. `immutableGuard` generates\n * exactly that guard from a declarative config, reusing the guard\n * machinery wholesale — `check`/`onDelete` rejection, the ledgered\n * `amendment` override, and composition with `periods`/`history`.\n *\n * ```ts\n * createNoydb({ guardStrategies: [\n * immutableGuard({\n * collection: 'invoices',\n * after: (r) => r.status === 'issued', // immutable once issued\n * }),\n * ] })\n * ```\n *\n * A record is mutable until `after(record)` holds; from then on, updates\n * and deletes throw `RecordLockedError` unless performed inside an\n * `amendment` transaction by an authorized role (the override is\n * ledgered by the guard amendment mechanism). `appendOnly: true` is\n * shorthand for `after: () => true` — immutable from creation.\n */\n\nimport { withGuard } from './with-guard.js'\nimport type { GuardSpec, GuardStrategy, GuardContext, GuardChange } from './types.js'\nimport { RecordLockedError, ValidationError } from '../../kernel/errors.js'\n\nexport interface ImmutableGuardConfig<T extends Record<string, unknown>> {\n /** The collection to make WORM. */\n collection: string\n /**\n * A record becomes immutable once this predicate holds. Evaluated on\n * the *existing* (already-persisted) record, so the write that first\n * makes it true is still allowed; subsequent writes are blocked.\n * Mutually exclusive with `appendOnly`.\n */\n after?: (record: T) => boolean\n /** Shorthand for `after: () => true` — immutable from creation. */\n appendOnly?: boolean\n /** Roles permitted to override via an amendment transaction. Default `['admin', 'owner']`. */\n amendmentRoles?: ReadonlyArray<'admin' | 'owner'>\n /**\n * Optional set-level invariant run over the amendment change-set after\n * the writes execute. Signature matches `GuardSpec.amendment.invariant`\n * exactly: it receives every {before, after} pair touching this\n * collection in the amendment plus the guard context; throwing reverts\n * the whole amendment and surfaces as `InvariantError`.\n *\n * Use this to keep a constraint inviolable EVEN under amendment — e.g.\n * forbid deleting an issued document by re-throwing on any\n * `before !== null && after === null` change, or assert a cross-record\n * sum is preserved. When omitted the amendment is unconditionally\n * allowed (the amendment itself is the sanctioned, ledgered override) —\n * this is the backward-compatible default.\n */\n amendmentInvariant?: (\n changes: ReadonlyArray<GuardChange<T>>,\n ctx: GuardContext<T>,\n ) => Promise<void> | void\n}\n\nfunction recordId(record: Record<string, unknown> | null): string {\n const id = record?.id\n return typeof id === 'string' ? id : ''\n}\n\n/**\n * Build an immutability guard. Pass the returned handle to\n * `createNoydb({ guardStrategies: [...] })`.\n */\nexport function immutableGuard<T extends Record<string, unknown>>(\n config: ImmutableGuardConfig<T>,\n): GuardStrategy<T> {\n const { collection, after, appendOnly, amendmentRoles, amendmentInvariant } = config\n if (appendOnly && after !== undefined) {\n throw new ValidationError('immutableGuard: `after` and `appendOnly` are mutually exclusive')\n }\n if (!appendOnly && after === undefined) {\n throw new ValidationError('immutableGuard: provide `after` or `appendOnly: true`')\n }\n\n const isImmutable: (record: T) => boolean = appendOnly ? () => true : after!\n const reason = appendOnly ? 'append-only collection' : 'record is immutable after issue'\n\n const spec: GuardSpec<T> = {\n collection,\n // Block updates to an already-immutable record. Inserts (existing\n // null) and the transition write that first makes the record\n // immutable are allowed — `after` reads the prior state.\n check: (incoming: T, ctx: GuardContext<T>) => {\n if (ctx.existing !== null && isImmutable(ctx.existing)) {\n throw new RecordLockedError(collection, recordId(incoming as Record<string, unknown>), reason)\n }\n },\n // Block deletes of an immutable record.\n onDelete: (existing: T) => {\n if (isImmutable(existing)) {\n throw new RecordLockedError(collection, recordId(existing as Record<string, unknown>), reason)\n }\n },\n // The authorized override: inside an amendment transaction the\n // check/onDelete are skipped and the change is ledgered. By default\n // there is no extra invariant — the amendment itself is the\n // sanctioned exception. Callers may supply `amendmentInvariant` to\n // keep a constraint inviolable even under amendment (e.g. forbid\n // deletes, or preserve a cross-record sum); a throw reverts the\n // amendment and surfaces as `InvariantError`.\n amendment: {\n roles: amendmentRoles ?? ['admin', 'owner'],\n invariant: amendmentInvariant ?? (() => {\n /* allow — the amendment is the override, and is ledgered */\n }),\n },\n }\n\n return withGuard<T>(spec)\n}\n","/**\n * `transitionGuard` — declarative state-machine sugar over the guard\n * service.\n *\n * Any record with a lifecycle field (invoice `status`, order state,\n * ticket workflow, subscription phase) needs transition validation: a\n * write may only move the field along a declared arc. That is expressible\n * with a hand-rolled `withGuard({ check })`, but every consumer\n * re-implements the same graph lookup + error. `transitionGuard`\n * generates exactly that guard from a state graph, reusing the guard\n * machinery wholesale — `check` rejection, the ledgered `amendment`\n * override, and composition with `periods`/`history`.\n *\n * It generalizes {@link immutableGuard}: WORM is the special case \"every\n * state has no outgoing arcs\", i.e. `transitions` mapping each state to `[]`.\n *\n * ```ts\n * createNoydb({ guardStrategies: [\n * transitionGuard<Sale>({\n * collection: 'sales', field: 'status',\n * transitions: { // absence of an arc = forbidden\n * draft: ['to_verify', 'cancelled'],\n * to_verify: ['proforma', 'draft', 'cancelled'],\n * proforma: ['invoiced', 'cancelled'],\n * invoiced: ['paid'], paid: [], cancelled: [],\n * },\n * initial: ['draft', 'to_verify'], // allowed status on insert\n * }),\n * ] })\n * ```\n *\n * Semantics:\n * - **Insert** (`ctx.existing === null`): `incoming[field]` must be in\n * `initial`. When `initial` is omitted, any value is allowed on insert.\n * - **Update**: the arc `(existing[field] → incoming[field])` must be\n * listed in `transitions[from]`, else `IllegalTransitionError`. A\n * same-value write (`from === to`) is allowed when `allowIdempotent`\n * (default `true`) — so writes that touch other fields without moving\n * state pass.\n * - **Override**: inside an `amendment` transaction by an authorized role\n * the check is skipped and the change is ledgered (mirrors every guard).\n *\n * The status graph is caller-supplied data — no UI, no domain logic.\n */\n\nimport { withGuard } from './with-guard.js'\nimport type { GuardSpec, GuardStrategy, GuardContext, GuardChange } from './types.js'\nimport { IllegalTransitionError, ValidationError } from '../../kernel/errors.js'\n\nexport interface TransitionGuardConfig<T extends Record<string, unknown>> {\n /** The collection whose state field is governed. */\n collection: string\n /** The state field on the record (e.g. `'status'`). */\n field: keyof T & string\n /**\n * The transition graph: each state maps to the states it may move to.\n * A state absent from the map (or mapped to `[]`) is terminal — no\n * outgoing arc, so any non-idempotent write from it is rejected.\n */\n transitions: Readonly<Record<string, readonly string[]>>\n /**\n * States allowed as the initial value on insert (`existing === null`).\n * Omit to allow any value on insert.\n */\n initial?: readonly string[]\n /**\n * Allow a same-value write (`from === to`) on update. Default `true` —\n * lets a put that changes other fields, but not the state, through.\n */\n allowIdempotent?: boolean\n /** Roles permitted to override via an amendment transaction. Default `['admin', 'owner']`. */\n amendmentRoles?: ReadonlyArray<'admin' | 'owner'>\n /**\n * Optional set-level invariant run over the amendment change-set after\n * the writes execute. Signature matches `GuardSpec.amendment.invariant`\n * exactly. When omitted the amendment is unconditionally allowed (the\n * amendment itself is the sanctioned, ledgered override) — the\n * backward-compatible default. Mirrors {@link immutableGuard}.\n */\n amendmentInvariant?: (\n changes: ReadonlyArray<GuardChange<T>>,\n ctx: GuardContext<T>,\n ) => Promise<void> | void\n}\n\nfunction recordId(record: Record<string, unknown> | null): string {\n const id = record?.id\n return typeof id === 'string' ? id : ''\n}\n\nfunction stateOf(record: Record<string, unknown>, field: string): string {\n const v = record[field]\n return typeof v === 'string' ? v : String(v)\n}\n\n/**\n * Build a state-machine transition guard. Pass the returned handle to\n * `createNoydb({ guardStrategies: [...] })`.\n */\nexport function transitionGuard<T extends Record<string, unknown>>(\n config: TransitionGuardConfig<T>,\n): GuardStrategy<T> {\n const { collection, field, transitions, initial, amendmentRoles, amendmentInvariant } = config\n const allowIdempotent = config.allowIdempotent ?? true\n\n if (!field) {\n throw new ValidationError('transitionGuard: `field` is required')\n }\n if (transitions === undefined || typeof transitions !== 'object') {\n throw new ValidationError('transitionGuard: `transitions` must be a state→states map')\n }\n\n const spec: GuardSpec<T> = {\n collection,\n check: (incoming: T, ctx: GuardContext<T>) => {\n const rec = incoming as Record<string, unknown>\n const to = stateOf(rec, field)\n\n // Insert — gate on the allowed initial set (any value if unset).\n if (ctx.existing === null) {\n if (initial !== undefined && !initial.includes(to)) {\n throw new IllegalTransitionError(collection, recordId(rec), '(none)', to)\n }\n return\n }\n\n // Update — the arc (from → to) must be a declared edge.\n const from = stateOf(ctx.existing as Record<string, unknown>, field)\n if (from === to) {\n if (allowIdempotent) return\n throw new IllegalTransitionError(collection, recordId(rec), from, to)\n }\n const allowed = transitions[from] ?? []\n if (!allowed.includes(to)) {\n throw new IllegalTransitionError(collection, recordId(rec), from, to)\n }\n },\n // The authorized override: inside an amendment transaction the check\n // is skipped and the change is ledgered. By default no extra invariant\n // — the amendment itself is the sanctioned exception. Callers may\n // supply `amendmentInvariant` to keep a constraint inviolable even\n // under amendment; a throw reverts the amendment as `InvariantError`.\n amendment: {\n roles: amendmentRoles ?? ['admin', 'owner'],\n invariant: amendmentInvariant ?? (() => {\n /* allow — the amendment is the override, and is ledgered */\n }),\n },\n }\n\n return withGuard<T>(spec)\n}\n"],"mappings":"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","names":["recordId"]}
@@ -4,10 +4,10 @@ import {
4
4
  import {
5
5
  canonicalJson,
6
6
  sha256Hex
7
- } from "./chunk-24UICKTB.js";
7
+ } from "./chunk-6SAFL5YE.js";
8
8
  import {
9
9
  isDeleteMarker
10
- } from "./chunk-NQRJ5AJO.js";
10
+ } from "./chunk-7H73RIE3.js";
11
11
  import {
12
12
  PeriodClosedError,
13
13
  ValidationError
@@ -61,7 +61,7 @@ function validatePeriodName(name, existing) {
61
61
  }
62
62
  async function appendPeriodLedgerEntry(ledger, actor, envelope, name, collection = PERIODS_COLLECTION) {
63
63
  if (!ledger) return;
64
- const { envelopePayloadHash } = await import("./ledger-DONWFC5M.js");
64
+ const { envelopePayloadHash } = await import("./ledger-AETNF4OM.js");
65
65
  await ledger.append({
66
66
  op: "put",
67
67
  collection,
@@ -128,4 +128,4 @@ export {
128
128
  purgeMarkersOn,
129
129
  withPeriods
130
130
  };
131
- //# sourceMappingURL=chunk-LTU4FLHG.js.map
131
+ //# sourceMappingURL=chunk-MYG6WIRJ.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  ViaGraph
3
- } from "./chunk-T4GPR2IR.js";
3
+ } from "./chunk-7TSYBD3E.js";
4
4
  import {
5
5
  sha256Hex
6
6
  } from "./chunk-VCETL77O.js";
@@ -172,4 +172,4 @@ var DerivationRegistry = class {
172
172
  export {
173
173
  DerivationRegistry
174
174
  };
175
- //# sourceMappingURL=chunk-SRGJET2F.js.map
175
+ //# sourceMappingURL=chunk-NJDQ4YSV.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  loadVaultPolicy
3
- } from "./chunk-NVU7ZMPN.js";
3
+ } from "./chunk-3IXIU6FP.js";
4
4
  import {
5
5
  assertStrongEchoSecret,
6
6
  assertStrongSecret,
@@ -9,13 +9,13 @@ import {
9
9
  mintKeyringCanary,
10
10
  persistKeyring,
11
11
  readKeyringFile
12
- } from "./chunk-RLWY6Z44.js";
12
+ } from "./chunk-RW3XKAF3.js";
13
13
  import {
14
14
  dekKey
15
15
  } from "./chunk-AHLJSVRL.js";
16
16
  import {
17
17
  openEnvelopeJson
18
- } from "./chunk-FY343IZR.js";
18
+ } from "./chunk-3URQC7EH.js";
19
19
  import {
20
20
  base64ToBuffer,
21
21
  bufferToBase64,
@@ -30,7 +30,7 @@ import {
30
30
  import {
31
31
  NOYDB_FORMAT_VERSION,
32
32
  NOYDB_KEYRING_VERSION
33
- } from "./chunk-24ZLWWEO.js";
33
+ } from "./chunk-YPYHVOXP.js";
34
34
  import {
35
35
  DelegationTargetMissingError,
36
36
  InvalidKeyError,
@@ -936,4 +936,4 @@ export {
936
936
  removeAuthenticator,
937
937
  findAuthenticator
938
938
  };
939
- //# sourceMappingURL=chunk-DPJTDNUF.js.map
939
+ //# sourceMappingURL=chunk-O42AUQCP.js.map
@@ -4,13 +4,13 @@ import {
4
4
  } from "./chunk-HNHCQ556.js";
5
5
  import {
6
6
  openEnvelopeJson
7
- } from "./chunk-FY343IZR.js";
7
+ } from "./chunk-3URQC7EH.js";
8
8
  import {
9
9
  encrypt
10
10
  } from "./chunk-VCETL77O.js";
11
11
  import {
12
12
  NOYDB_FORMAT_VERSION
13
- } from "./chunk-24ZLWWEO.js";
13
+ } from "./chunk-YPYHVOXP.js";
14
14
  import {
15
15
  NoydbError
16
16
  } from "./chunk-HNGSV2YC.js";
@@ -127,4 +127,4 @@ export {
127
127
  LinkSet,
128
128
  LinkEndpointError
129
129
  };
130
- //# sourceMappingURL=chunk-F3GVO44K.js.map
130
+ //# sourceMappingURL=chunk-PDLLCOGD.js.map
@@ -9,7 +9,7 @@ import {
9
9
  import {
10
10
  openEnvelopeJson,
11
11
  writeEnvelopeBody
12
- } from "./chunk-FY343IZR.js";
12
+ } from "./chunk-3URQC7EH.js";
13
13
  import {
14
14
  base64ToBuffer,
15
15
  bufferToBase64,
@@ -24,7 +24,7 @@ import {
24
24
  } from "./chunk-VCETL77O.js";
25
25
  import {
26
26
  NOYDB_FORMAT_VERSION
27
- } from "./chunk-24ZLWWEO.js";
27
+ } from "./chunk-YPYHVOXP.js";
28
28
  import {
29
29
  BlobIntentPendingError,
30
30
  BlobOfflineError,
@@ -3070,4 +3070,4 @@ export {
3070
3070
  DEFAULT_CHUNK_SIZE,
3071
3071
  BlobSet
3072
3072
  };
3073
- //# sourceMappingURL=chunk-VBY6ZLJT.js.map
3073
+ //# sourceMappingURL=chunk-PL2GHSCM.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  ATTESTATIONS_COLLECTION,
3
3
  loadOrCreateSigner
4
- } from "./chunk-ZWMO5GL5.js";
4
+ } from "./chunk-JJNOLSG5.js";
5
5
  import {
6
6
  generateULID
7
7
  } from "./chunk-ZJADGNYF.js";
@@ -10,7 +10,7 @@ import {
10
10
  } from "./chunk-VCETL77O.js";
11
11
  import {
12
12
  NOYDB_FORMAT_VERSION
13
- } from "./chunk-24ZLWWEO.js";
13
+ } from "./chunk-YPYHVOXP.js";
14
14
  import {
15
15
  AttestationError
16
16
  } from "./chunk-HNGSV2YC.js";
@@ -56,4 +56,4 @@ async function issueAttestationCore(ctx, args) {
56
56
  export {
57
57
  issueAttestationCore
58
58
  };
59
- //# sourceMappingURL=chunk-DCMQR46R.js.map
59
+ //# sourceMappingURL=chunk-PNKHAKQ7.js.map
@@ -6,7 +6,7 @@ import {
6
6
  } from "./chunk-CCZJJ4I2.js";
7
7
  import {
8
8
  putDerivedOutput
9
- } from "./chunk-ZXJXDHNK.js";
9
+ } from "./chunk-5ZKS6ZE2.js";
10
10
  import {
11
11
  DEFAULT_JOIN_MAX_ROWS
12
12
  } from "./chunk-E6427JU2.js";
@@ -282,4 +282,4 @@ async function listOutputIds(outputColl) {
282
282
  export {
283
283
  MaterializedViewExecutor
284
284
  };
285
- //# sourceMappingURL=chunk-3IIPWA75.js.map
285
+ //# sourceMappingURL=chunk-Q2VEFHDQ.js.map
@@ -7,16 +7,16 @@ import {
7
7
  hashEntry,
8
8
  paddedIndex,
9
9
  sha256Hex
10
- } from "./chunk-24UICKTB.js";
10
+ } from "./chunk-6SAFL5YE.js";
11
11
  import {
12
12
  openEnvelopeJson
13
- } from "./chunk-FY343IZR.js";
13
+ } from "./chunk-3URQC7EH.js";
14
14
  import {
15
15
  encrypt
16
16
  } from "./chunk-VCETL77O.js";
17
17
  import {
18
18
  NOYDB_FORMAT_VERSION
19
- } from "./chunk-24ZLWWEO.js";
19
+ } from "./chunk-YPYHVOXP.js";
20
20
  import {
21
21
  LedgerContentionError,
22
22
  isConflictError
@@ -717,4 +717,4 @@ export {
717
717
  applyPatch,
718
718
  LedgerStore
719
719
  };
720
- //# sourceMappingURL=chunk-ZK4CO2KZ.js.map
720
+ //# sourceMappingURL=chunk-Q6TEJXBX.js.map
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-UHXCLPGC.js";
4
4
  import {
5
5
  SealedHandle
6
- } from "./chunk-24ZLWWEO.js";
6
+ } from "./chunk-YPYHVOXP.js";
7
7
  import {
8
8
  ClassifiedConfigError,
9
9
  ClassifiedNotEnabledError
@@ -262,4 +262,4 @@ export {
262
262
  enforceClassifiedWrite,
263
263
  NO_CLASSIFIED
264
264
  };
265
- //# sourceMappingURL=chunk-GS5RT2KK.js.map
265
+ //# sourceMappingURL=chunk-QULVCV3M.js.map