@noy-db/hub 0.6.0-pre.0 → 0.6.0-pre.10

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 (285) hide show
  1. package/codemods/0.4.0-pre.json +699 -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-AVAGHAJE.js} +25 -6
  6. package/dist/backup-AVAGHAJE.js.map +1 -0
  7. package/dist/blobs/index.js +5 -5
  8. package/dist/broker/index.js +6 -6
  9. package/dist/{bundle-handle-5OUAI7CV.js → bundle-handle-GFNHT52M.js} +2 -2
  10. package/dist/cargo/index.js +18 -18
  11. package/dist/{chunk-CYQOUTMY.js → chunk-2BMRJ6LQ.js} +2 -2
  12. package/dist/{chunk-HS7HNYBD.js → chunk-2DHSSLOD.js} +6 -6
  13. package/dist/{chunk-JH3OHQM4.js → chunk-2Z3NCLNX.js} +6 -6
  14. package/dist/{chunk-NVU7ZMPN.js → chunk-3IXIU6FP.js} +2 -2
  15. package/dist/{chunk-XBLKM73C.js → chunk-3JVXVJ7L.js} +8 -8
  16. package/dist/{chunk-FY343IZR.js → chunk-3URQC7EH.js} +3 -3
  17. package/dist/{chunk-BPTZ4K5L.js → chunk-4GZ6XOVW.js} +7 -7
  18. package/dist/{chunk-ROWL352P.js → chunk-4I72F5DF.js} +4 -4
  19. package/dist/{chunk-EK7DT5BT.js → chunk-4VUPLMZ6.js} +39 -3
  20. package/dist/chunk-4VUPLMZ6.js.map +1 -0
  21. package/dist/{chunk-LBGPO5RL.js → chunk-52JPHN5N.js} +4 -4
  22. package/dist/{chunk-27TCYH6G.js → chunk-5JY5TSVY.js} +3 -3
  23. package/dist/{chunk-27TCYH6G.js.map → chunk-5JY5TSVY.js.map} +1 -1
  24. package/dist/chunk-5O5HRRTV.js +201 -0
  25. package/dist/chunk-5O5HRRTV.js.map +1 -0
  26. package/dist/{chunk-ZXJXDHNK.js → chunk-5ZKS6ZE2.js} +2 -2
  27. package/dist/{chunk-ZXJXDHNK.js.map → chunk-5ZKS6ZE2.js.map} +1 -1
  28. package/dist/{chunk-MVOWXQHN.js → chunk-6BU3L4UE.js} +2 -2
  29. package/dist/{chunk-OSFPNKY4.js → chunk-6FJWSWFT.js} +2 -2
  30. package/dist/chunk-6FJWSWFT.js.map +1 -0
  31. package/dist/{chunk-CJ73OLMW.js → chunk-6HFM7EIT.js} +1 -1
  32. package/dist/chunk-6HFM7EIT.js.map +1 -0
  33. package/dist/{chunk-PGAPBZEK.js → chunk-6NVPFKN3.js} +4 -4
  34. package/dist/{chunk-24UICKTB.js → chunk-6SAFL5YE.js} +2 -2
  35. package/dist/chunk-6SAFL5YE.js.map +1 -0
  36. package/dist/{chunk-NQRJ5AJO.js → chunk-7H73RIE3.js} +2 -2
  37. package/dist/{chunk-NQCNSVGI.js → chunk-7MNBICB5.js} +3 -3
  38. package/dist/{chunk-T4GPR2IR.js → chunk-7TSYBD3E.js} +1 -1
  39. package/dist/chunk-7TSYBD3E.js.map +1 -0
  40. package/dist/{chunk-TLNNHG3A.js → chunk-ADW22QSB.js} +3 -3
  41. package/dist/{chunk-TLNNHG3A.js.map → chunk-ADW22QSB.js.map} +1 -1
  42. package/dist/{chunk-3UK6STWO.js → chunk-BEFVYAR5.js} +3 -3
  43. package/dist/{chunk-TFZ7LLOQ.js → chunk-BRVW2GS5.js} +5 -5
  44. package/dist/{chunk-V5C5NNBR.js → chunk-CDB2HVQW.js} +3 -3
  45. package/dist/{chunk-3HYWYLXL.js → chunk-CEJWMBXO.js} +1 -1
  46. package/dist/chunk-CEJWMBXO.js.map +1 -0
  47. package/dist/{chunk-2KIV7BEK.js → chunk-FDX7OWWI.js} +1 -1
  48. package/dist/chunk-FDX7OWWI.js.map +1 -0
  49. package/dist/{chunk-4MQDV3HZ.js → chunk-FFDNKRCY.js} +2 -2
  50. package/dist/{chunk-PP5CO2PR.js → chunk-FMQJZH4R.js} +2 -2
  51. package/dist/{chunk-JSRU5W2M.js → chunk-FZ6NYJ7L.js} +3 -3
  52. package/dist/{chunk-ZGGVOADG.js → chunk-G6S5VVHP.js} +2 -2
  53. package/dist/{chunk-3IIPWA75.js → chunk-GAG7QOVO.js} +27 -2
  54. package/dist/chunk-GAG7QOVO.js.map +1 -0
  55. package/dist/{chunk-JXIDGFKS.js → chunk-HPLWFNG4.js} +3 -1
  56. package/dist/chunk-HPLWFNG4.js.map +1 -0
  57. package/dist/{chunk-ZWMO5GL5.js → chunk-JJNOLSG5.js} +3 -3
  58. package/dist/{chunk-RLWY6Z44.js → chunk-JRKZTEZZ.js} +62 -6
  59. package/dist/chunk-JRKZTEZZ.js.map +1 -0
  60. package/dist/chunk-N35NC4JH.js +123 -0
  61. package/dist/chunk-N35NC4JH.js.map +1 -0
  62. package/dist/{chunk-3CLZY46Y.js → chunk-N3BI6P3J.js} +295 -109
  63. package/dist/chunk-N3BI6P3J.js.map +1 -0
  64. package/dist/{chunk-SRGJET2F.js → chunk-NJDQ4YSV.js} +2 -2
  65. package/dist/{chunk-JEM2IGS3.js → chunk-NPP5R7FF.js} +5 -5
  66. package/dist/{chunk-DPJTDNUF.js → chunk-O2ERS4UJ.js} +5 -5
  67. package/dist/{chunk-F3GVO44K.js → chunk-PDLLCOGD.js} +3 -3
  68. package/dist/{chunk-VBY6ZLJT.js → chunk-PL2GHSCM.js} +3 -3
  69. package/dist/{chunk-DCMQR46R.js → chunk-PNKHAKQ7.js} +3 -3
  70. package/dist/{chunk-MXZ5TSTR.js → chunk-PPMBY7YS.js} +6 -6
  71. package/dist/{chunk-ZK4CO2KZ.js → chunk-Q6TEJXBX.js} +4 -4
  72. package/dist/{chunk-GS5RT2KK.js → chunk-QULVCV3M.js} +2 -2
  73. package/dist/chunk-QULVCV3M.js.map +1 -0
  74. package/dist/{chunk-KZ3KMDN3.js → chunk-RTAMLDWP.js} +6 -2
  75. package/dist/chunk-RTAMLDWP.js.map +1 -0
  76. package/dist/{chunk-MZ5ZFO2D.js → chunk-RXYYFSBB.js} +82 -110
  77. package/dist/chunk-RXYYFSBB.js.map +1 -0
  78. package/dist/{chunk-4VCWI42L.js → chunk-SUFG5E73.js} +2 -2
  79. package/dist/{chunk-SKONR2OL.js → chunk-U5O6GIWZ.js} +2 -2
  80. package/dist/{chunk-HFKGIBMD.js → chunk-VZ3XFUQ7.js} +2 -2
  81. package/dist/{chunk-3EO7RZLJ.js → chunk-W77KZHCW.js} +4 -4
  82. package/dist/{chunk-P7NGLLUF.js → chunk-WASHZV34.js} +2 -2
  83. package/dist/{chunk-XB7LUDKM.js → chunk-WFUIE565.js} +3 -3
  84. package/dist/{chunk-RPXL6KSX.js → chunk-WLZ47GSL.js} +3 -3
  85. package/dist/{chunk-MJWCLSQL.js → chunk-X56RTUK3.js} +3 -3
  86. package/dist/{chunk-OMSAULZM.js → chunk-XEJA6K76.js} +9 -9
  87. package/dist/{chunk-MC2LFTQM.js → chunk-XWX7GL56.js} +2 -2
  88. package/dist/{chunk-46V67XP5.js → chunk-YJ6IONGA.js} +2 -2
  89. package/dist/chunk-YJ6IONGA.js.map +1 -0
  90. package/dist/{chunk-24ZLWWEO.js → chunk-YPYHVOXP.js} +1 -1
  91. package/dist/chunk-YPYHVOXP.js.map +1 -0
  92. package/dist/{chunk-2LGDCNFJ.js → chunk-Z45YRGFO.js} +1 -1
  93. package/dist/chunk-Z45YRGFO.js.map +1 -0
  94. package/dist/classified/index.js +3 -3
  95. package/dist/{classified-marker-MH3ON5OL.js → classified-marker-2KJAXRRO.js} +3 -3
  96. package/dist/{collection-facade-AHT7FATG.js → collection-facade-QEJIM6BC.js} +8 -8
  97. package/dist/consent/index.js +4 -4
  98. package/dist/cover/index.js +2 -2
  99. package/dist/custody/index.js +6 -6
  100. package/dist/{dead-filter-U575NGSH.js → dead-filter-DCB62VWW.js} +2 -2
  101. package/dist/{delegation-PDYL6RWT.js → delegation-MO7YZYJS.js} +4 -4
  102. package/dist/derivations/index.js +6 -6
  103. package/dist/{derive-AKT4KU36.js → derive-IUA6JFLB.js} +5 -5
  104. package/dist/directory/index.js +5 -5
  105. package/dist/{dispatch-4XIJSFTT.js → dispatch-FZEAWKVM.js} +5 -5
  106. package/dist/{dispatch-N5HGVUGU.js → dispatch-MJ6SHB3Y.js} +9 -9
  107. package/dist/{enclave-OPK24QDR.js → enclave-JU4YIEPB.js} +4 -4
  108. package/dist/{executor-3JZ4POTW.js → executor-YIQB2S6N.js} +9 -8
  109. package/dist/{export-accessible-CPTP5STN.js → export-accessible-4S36PQNR.js} +7 -7
  110. package/dist/{extract-partition-TWXPHVU7.js → extract-partition-IO7FDZ2P.js} +10 -10
  111. package/dist/{fanout-sidecar-T2ZGLQFE.js → fanout-sidecar-NNAJQXMX.js} +4 -4
  112. package/dist/forget/index.js +4 -4
  113. package/dist/guards/index.js +1 -1
  114. package/dist/history/index.js +6 -6
  115. package/dist/i18n/index.js +6 -6
  116. package/dist/index.d.ts +3 -2
  117. package/dist/index.js +69 -63
  118. package/dist/index.js.map +1 -1
  119. package/dist/introspection/index.js +6 -6
  120. package/dist/{issue-N74C55X6.js → issue-RIVHSY2S.js} +6 -6
  121. package/dist/kernel/secret-mode.d.ts +1 -1
  122. package/dist/kernel/types.d.ts +41 -6
  123. package/dist/kernel/vault.d.ts +19 -15
  124. package/dist/{ledger-DONWFC5M.js → ledger-AETNF4OM.js} +6 -6
  125. package/dist/liberate-GFN4C7RR.js +24 -0
  126. package/dist/{link-set-2TTP4VLO.js → link-set-E5HNY67I.js} +5 -5
  127. package/dist/{managed-secret-EAOYWRYF.js → managed-secret-CWQ6PND5.js} +3 -3
  128. package/dist/materialized-views/index.js +10 -9
  129. package/dist/money/index.js +10 -6
  130. package/dist/{noydb-6W2XGQCS.js → noydb-SNZONAYA.js} +28 -28
  131. package/dist/overlay-views/index.js +1 -1
  132. package/dist/periods/index.js +17 -7
  133. package/dist/pod/index.js +31 -31
  134. package/dist/policy/index.js +3 -3
  135. package/dist/port/with/collection-options.d.ts +1 -1
  136. package/dist/portability/index.js +6 -6
  137. package/dist/{post-register-ORQOQJCS.js → post-register-2XSSMGEQ.js} +4 -4
  138. package/dist/{register-LHETZRJM.js → register-4EFJCVYD.js} +11 -11
  139. package/dist/{registry-JRIN447B.js → registry-4SDHHOJ7.js} +6 -6
  140. package/dist/{registry-AMAZ6QRZ.js → registry-OYTFGWVK.js} +4 -4
  141. package/dist/{request-withdrawal-2DN2RGCO.js → request-withdrawal-KGXGDPVQ.js} +9 -9
  142. package/dist/{reveal-AG4SCHUQ.js → reveal-BW36KCOQ.js} +3 -3
  143. package/dist/{revoke-ZX4NM2CJ.js → revoke-JFN773KF.js} +6 -6
  144. package/dist/sealed-record/index.js +6 -6
  145. package/dist/search/index.js +1 -1
  146. package/dist/{seed-IRCDGIRK.js → seed-GDV5PT4R.js} +6 -6
  147. package/dist/sequence/index.js +4 -4
  148. package/dist/session/index.js +3 -3
  149. package/dist/{signer-7KHD4OL2.js → signer-TA55QB6R.js} +5 -5
  150. package/dist/snapshots/index.js +5 -5
  151. package/dist/{stale-K734VACF.js → stale-ARHFVL5U.js} +5 -5
  152. package/dist/{storage-4H2GF6RQ.js → storage-V7MTFAQJ.js} +5 -5
  153. package/dist/{store-coordination-provider-4SKLSFUG.js → store-coordination-provider-GFCUOBR6.js} +3 -3
  154. package/dist/sync/index.js +5 -5
  155. package/dist/team/index.js +8 -8
  156. package/dist/tiers/index.js +4 -4
  157. package/dist/via/classified/descriptor.d.ts +1 -1
  158. package/dist/via/money/exact.d.ts +44 -0
  159. package/dist/via/money/index.d.ts +2 -0
  160. package/dist/via/money/normalize.d.ts +20 -0
  161. package/dist/{walk-MQHYNDLZ.js → walk-3ZECBFDA.js} +7 -7
  162. package/dist/with-audit/attestation/index.d.ts +1 -1
  163. package/dist/with-audit/guards/immutable-guard.d.ts +14 -0
  164. package/dist/with-audit/guards/with-guard.d.ts +1 -1
  165. package/dist/with-audit/periods/active.d.ts +28 -1
  166. package/dist/with-audit/periods/index.d.ts +4 -2
  167. package/dist/with-audit/periods/periods.d.ts +160 -5
  168. package/dist/with-audit/periods/strategy.d.ts +13 -4
  169. package/dist/with-audit/periods/vault-facade.d.ts +89 -10
  170. package/dist/with-audit/periods/window.d.ts +10 -0
  171. package/dist/with-cargo/index.d.ts +2 -2
  172. package/dist/with-commit/history/ledger/entry.d.ts +1 -1
  173. package/dist/with-commit/numbering/descriptor.d.ts +1 -1
  174. package/dist/with-formula/derivations/with-derivation.d.ts +1 -1
  175. package/dist/with-formula/materialized-views/types.d.ts +52 -0
  176. package/dist/with-formula/materialized-views/with-materialized-view.d.ts +3 -3
  177. package/dist/with-formula/overlay-views/with-overlayed-view.d.ts +1 -1
  178. package/dist/with-party/custody/index.d.ts +1 -1
  179. package/dist/with-party/directory/user-envelope/index.d.ts +1 -1
  180. package/dist/with-party/directory/user-envelope/storage.d.ts +1 -1
  181. package/dist/with-party/team/echo-ceremony.d.ts +3 -3
  182. package/dist/with-party/team/echo-secret.d.ts +2 -2
  183. package/dist/with-party/team/keyring.d.ts +10 -1
  184. package/dist/with-pod/bundle.d.ts +15 -0
  185. package/dist/with-shape/introspection/index.d.ts +2 -1
  186. package/dist/with-shape/introspection/types.d.ts +1 -1
  187. package/dist/with-shape/persisted-schemas/derive.d.ts +1 -1
  188. package/dist/with-shape/persisted-schemas/index.d.ts +1 -1
  189. package/dist/with-shape/persisted-schemas/types.d.ts +1 -1
  190. package/dist/{withdraw-accessible-JSDQHXHE.js → withdraw-accessible-7PG4DYQK.js} +8 -8
  191. package/package.json +6 -4
  192. package/dist/backup-GAYWQAFN.js.map +0 -1
  193. package/dist/chunk-24UICKTB.js.map +0 -1
  194. package/dist/chunk-24ZLWWEO.js.map +0 -1
  195. package/dist/chunk-2KIV7BEK.js.map +0 -1
  196. package/dist/chunk-2LGDCNFJ.js.map +0 -1
  197. package/dist/chunk-3CLZY46Y.js.map +0 -1
  198. package/dist/chunk-3HYWYLXL.js.map +0 -1
  199. package/dist/chunk-3IIPWA75.js.map +0 -1
  200. package/dist/chunk-46V67XP5.js.map +0 -1
  201. package/dist/chunk-CJ73OLMW.js.map +0 -1
  202. package/dist/chunk-EK7DT5BT.js.map +0 -1
  203. package/dist/chunk-GS5RT2KK.js.map +0 -1
  204. package/dist/chunk-JXIDGFKS.js.map +0 -1
  205. package/dist/chunk-KZ3KMDN3.js.map +0 -1
  206. package/dist/chunk-LTU4FLHG.js +0 -131
  207. package/dist/chunk-LTU4FLHG.js.map +0 -1
  208. package/dist/chunk-MZ5ZFO2D.js.map +0 -1
  209. package/dist/chunk-OSFPNKY4.js.map +0 -1
  210. package/dist/chunk-RLWY6Z44.js.map +0 -1
  211. package/dist/chunk-T4GPR2IR.js.map +0 -1
  212. package/dist/liberate-KICI7AJN.js +0 -24
  213. /package/dist/{api-67SBPMMH.js.map → api-RXUMEKT3.js.map} +0 -0
  214. /package/dist/{bundle-handle-5OUAI7CV.js.map → bundle-handle-GFNHT52M.js.map} +0 -0
  215. /package/dist/{chunk-CYQOUTMY.js.map → chunk-2BMRJ6LQ.js.map} +0 -0
  216. /package/dist/{chunk-HS7HNYBD.js.map → chunk-2DHSSLOD.js.map} +0 -0
  217. /package/dist/{chunk-JH3OHQM4.js.map → chunk-2Z3NCLNX.js.map} +0 -0
  218. /package/dist/{chunk-NVU7ZMPN.js.map → chunk-3IXIU6FP.js.map} +0 -0
  219. /package/dist/{chunk-XBLKM73C.js.map → chunk-3JVXVJ7L.js.map} +0 -0
  220. /package/dist/{chunk-FY343IZR.js.map → chunk-3URQC7EH.js.map} +0 -0
  221. /package/dist/{chunk-BPTZ4K5L.js.map → chunk-4GZ6XOVW.js.map} +0 -0
  222. /package/dist/{chunk-ROWL352P.js.map → chunk-4I72F5DF.js.map} +0 -0
  223. /package/dist/{chunk-LBGPO5RL.js.map → chunk-52JPHN5N.js.map} +0 -0
  224. /package/dist/{chunk-MVOWXQHN.js.map → chunk-6BU3L4UE.js.map} +0 -0
  225. /package/dist/{chunk-PGAPBZEK.js.map → chunk-6NVPFKN3.js.map} +0 -0
  226. /package/dist/{chunk-NQRJ5AJO.js.map → chunk-7H73RIE3.js.map} +0 -0
  227. /package/dist/{chunk-NQCNSVGI.js.map → chunk-7MNBICB5.js.map} +0 -0
  228. /package/dist/{chunk-3UK6STWO.js.map → chunk-BEFVYAR5.js.map} +0 -0
  229. /package/dist/{chunk-TFZ7LLOQ.js.map → chunk-BRVW2GS5.js.map} +0 -0
  230. /package/dist/{chunk-V5C5NNBR.js.map → chunk-CDB2HVQW.js.map} +0 -0
  231. /package/dist/{chunk-4MQDV3HZ.js.map → chunk-FFDNKRCY.js.map} +0 -0
  232. /package/dist/{chunk-PP5CO2PR.js.map → chunk-FMQJZH4R.js.map} +0 -0
  233. /package/dist/{chunk-JSRU5W2M.js.map → chunk-FZ6NYJ7L.js.map} +0 -0
  234. /package/dist/{chunk-ZGGVOADG.js.map → chunk-G6S5VVHP.js.map} +0 -0
  235. /package/dist/{chunk-ZWMO5GL5.js.map → chunk-JJNOLSG5.js.map} +0 -0
  236. /package/dist/{chunk-SRGJET2F.js.map → chunk-NJDQ4YSV.js.map} +0 -0
  237. /package/dist/{chunk-JEM2IGS3.js.map → chunk-NPP5R7FF.js.map} +0 -0
  238. /package/dist/{chunk-DPJTDNUF.js.map → chunk-O2ERS4UJ.js.map} +0 -0
  239. /package/dist/{chunk-F3GVO44K.js.map → chunk-PDLLCOGD.js.map} +0 -0
  240. /package/dist/{chunk-VBY6ZLJT.js.map → chunk-PL2GHSCM.js.map} +0 -0
  241. /package/dist/{chunk-DCMQR46R.js.map → chunk-PNKHAKQ7.js.map} +0 -0
  242. /package/dist/{chunk-MXZ5TSTR.js.map → chunk-PPMBY7YS.js.map} +0 -0
  243. /package/dist/{chunk-ZK4CO2KZ.js.map → chunk-Q6TEJXBX.js.map} +0 -0
  244. /package/dist/{chunk-4VCWI42L.js.map → chunk-SUFG5E73.js.map} +0 -0
  245. /package/dist/{chunk-SKONR2OL.js.map → chunk-U5O6GIWZ.js.map} +0 -0
  246. /package/dist/{chunk-HFKGIBMD.js.map → chunk-VZ3XFUQ7.js.map} +0 -0
  247. /package/dist/{chunk-3EO7RZLJ.js.map → chunk-W77KZHCW.js.map} +0 -0
  248. /package/dist/{chunk-P7NGLLUF.js.map → chunk-WASHZV34.js.map} +0 -0
  249. /package/dist/{chunk-XB7LUDKM.js.map → chunk-WFUIE565.js.map} +0 -0
  250. /package/dist/{chunk-RPXL6KSX.js.map → chunk-WLZ47GSL.js.map} +0 -0
  251. /package/dist/{chunk-MJWCLSQL.js.map → chunk-X56RTUK3.js.map} +0 -0
  252. /package/dist/{chunk-OMSAULZM.js.map → chunk-XEJA6K76.js.map} +0 -0
  253. /package/dist/{chunk-MC2LFTQM.js.map → chunk-XWX7GL56.js.map} +0 -0
  254. /package/dist/{classified-marker-MH3ON5OL.js.map → classified-marker-2KJAXRRO.js.map} +0 -0
  255. /package/dist/{collection-facade-AHT7FATG.js.map → collection-facade-QEJIM6BC.js.map} +0 -0
  256. /package/dist/{dead-filter-U575NGSH.js.map → dead-filter-DCB62VWW.js.map} +0 -0
  257. /package/dist/{delegation-PDYL6RWT.js.map → delegation-MO7YZYJS.js.map} +0 -0
  258. /package/dist/{derive-AKT4KU36.js.map → derive-IUA6JFLB.js.map} +0 -0
  259. /package/dist/{dispatch-4XIJSFTT.js.map → dispatch-FZEAWKVM.js.map} +0 -0
  260. /package/dist/{dispatch-N5HGVUGU.js.map → dispatch-MJ6SHB3Y.js.map} +0 -0
  261. /package/dist/{enclave-OPK24QDR.js.map → enclave-JU4YIEPB.js.map} +0 -0
  262. /package/dist/{executor-3JZ4POTW.js.map → executor-YIQB2S6N.js.map} +0 -0
  263. /package/dist/{export-accessible-CPTP5STN.js.map → export-accessible-4S36PQNR.js.map} +0 -0
  264. /package/dist/{extract-partition-TWXPHVU7.js.map → extract-partition-IO7FDZ2P.js.map} +0 -0
  265. /package/dist/{fanout-sidecar-T2ZGLQFE.js.map → fanout-sidecar-NNAJQXMX.js.map} +0 -0
  266. /package/dist/{issue-N74C55X6.js.map → issue-RIVHSY2S.js.map} +0 -0
  267. /package/dist/{ledger-DONWFC5M.js.map → ledger-AETNF4OM.js.map} +0 -0
  268. /package/dist/{liberate-KICI7AJN.js.map → liberate-GFN4C7RR.js.map} +0 -0
  269. /package/dist/{link-set-2TTP4VLO.js.map → link-set-E5HNY67I.js.map} +0 -0
  270. /package/dist/{managed-secret-EAOYWRYF.js.map → managed-secret-CWQ6PND5.js.map} +0 -0
  271. /package/dist/{noydb-6W2XGQCS.js.map → noydb-SNZONAYA.js.map} +0 -0
  272. /package/dist/{post-register-ORQOQJCS.js.map → post-register-2XSSMGEQ.js.map} +0 -0
  273. /package/dist/{register-LHETZRJM.js.map → register-4EFJCVYD.js.map} +0 -0
  274. /package/dist/{registry-AMAZ6QRZ.js.map → registry-4SDHHOJ7.js.map} +0 -0
  275. /package/dist/{registry-JRIN447B.js.map → registry-OYTFGWVK.js.map} +0 -0
  276. /package/dist/{request-withdrawal-2DN2RGCO.js.map → request-withdrawal-KGXGDPVQ.js.map} +0 -0
  277. /package/dist/{reveal-AG4SCHUQ.js.map → reveal-BW36KCOQ.js.map} +0 -0
  278. /package/dist/{revoke-ZX4NM2CJ.js.map → revoke-JFN773KF.js.map} +0 -0
  279. /package/dist/{seed-IRCDGIRK.js.map → seed-GDV5PT4R.js.map} +0 -0
  280. /package/dist/{signer-7KHD4OL2.js.map → signer-TA55QB6R.js.map} +0 -0
  281. /package/dist/{stale-K734VACF.js.map → stale-ARHFVL5U.js.map} +0 -0
  282. /package/dist/{storage-4H2GF6RQ.js.map → storage-V7MTFAQJ.js.map} +0 -0
  283. /package/dist/{store-coordination-provider-4SKLSFUG.js.map → store-coordination-provider-GFCUOBR6.js.map} +0 -0
  284. /package/dist/{walk-MQHYNDLZ.js.map → walk-3ZECBFDA.js.map} +0 -0
  285. /package/dist/{withdraw-accessible-JSDQHXHE.js.map → withdraw-accessible-7PG4DYQK.js.map} +0 -0
@@ -21,13 +21,13 @@ import {
21
21
  } from "./chunk-GYGLAVCX.js";
22
22
  import {
23
23
  loadFence
24
- } from "./chunk-MVOWXQHN.js";
24
+ } from "./chunk-6BU3L4UE.js";
25
25
  import {
26
26
  VectorSet,
27
27
  buildPersistedIndexCallbacks,
28
28
  encodeVecId,
29
29
  syncTierSearch
30
- } from "./chunk-ZGGVOADG.js";
30
+ } from "./chunk-G6S5VVHP.js";
31
31
  import {
32
32
  SchemaUpdateGate
33
33
  } from "./chunk-6LJY7X5A.js";
@@ -35,12 +35,12 @@ import {
35
35
  NO_CLASSIFIED,
36
36
  guardClassifiedCompat,
37
37
  resolveClassifiedFields
38
- } from "./chunk-GS5RT2KK.js";
38
+ } from "./chunk-QULVCV3M.js";
39
39
  import {
40
40
  NO_TIERS,
41
41
  classifySealedShred,
42
42
  syncDerivedOutputs
43
- } from "./chunk-PGAPBZEK.js";
43
+ } from "./chunk-6NVPFKN3.js";
44
44
  import {
45
45
  NO_PORTABILITY
46
46
  } from "./chunk-FUHKW252.js";
@@ -50,7 +50,7 @@ import {
50
50
  } from "./chunk-DG27IUVI.js";
51
51
  import {
52
52
  saveSealedSecret
53
- } from "./chunk-MC2LFTQM.js";
53
+ } from "./chunk-XWX7GL56.js";
54
54
  import {
55
55
  fallbackDerivationName,
56
56
  jsonSchemaToFields
@@ -58,18 +58,18 @@ import {
58
58
  import {
59
59
  derivePersistedSchema,
60
60
  isZod4Schema
61
- } from "./chunk-2LGDCNFJ.js";
61
+ } from "./chunk-Z45YRGFO.js";
62
62
  import {
63
63
  loadPersistedSchema
64
- } from "./chunk-V5C5NNBR.js";
64
+ } from "./chunk-CDB2HVQW.js";
65
65
  import {
66
66
  CustodyApi,
67
67
  NO_CUSTODY
68
- } from "./chunk-TLNNHG3A.js";
68
+ } from "./chunk-ADW22QSB.js";
69
69
  import {
70
70
  DEFAULT_POSTURE,
71
71
  ViaGraph
72
- } from "./chunk-T4GPR2IR.js";
72
+ } from "./chunk-7TSYBD3E.js";
73
73
  import {
74
74
  buildLookupAltIndex,
75
75
  buildLookupSnapshotRows,
@@ -93,7 +93,7 @@ import {
93
93
  selfWriteFieldEqual,
94
94
  touchFor,
95
95
  updateReferencingRecords
96
- } from "./chunk-ZXJXDHNK.js";
96
+ } from "./chunk-5ZKS6ZE2.js";
97
97
  import {
98
98
  OverlayedCollection
99
99
  } from "./chunk-OF3L2SD6.js";
@@ -109,15 +109,20 @@ import {
109
109
  } from "./chunk-PEOZ34EM.js";
110
110
  import {
111
111
  NO_PERIODS,
112
- purgeMarkersOn
113
- } from "./chunk-LTU4FLHG.js";
112
+ isEffectivelyReopened,
113
+ purgeMarkersOn,
114
+ resolvePeriodKey,
115
+ resolveReopenState,
116
+ samePartition
117
+ } from "./chunk-5O5HRRTV.js";
114
118
  import {
115
119
  PERIODS_COLLECTION,
116
120
  PERIOD_ARCHIVES_COLLECTION,
117
121
  PERIOD_FREEZES_COLLECTION,
122
+ PERIOD_REOPENS_COLLECTION,
118
123
  PERIOD_TARGET_PURGES_COLLECTION,
119
124
  periodExclusiveUpperBound
120
- } from "./chunk-JXIDGFKS.js";
125
+ } from "./chunk-HPLWFNG4.js";
121
126
  import {
122
127
  NO_SHADOW
123
128
  } from "./chunk-SMY5X46Z.js";
@@ -135,13 +140,13 @@ import {
135
140
  InvertedIndex,
136
141
  MemoryIndexStore,
137
142
  NO_SEARCH
138
- } from "./chunk-XBLKM73C.js";
143
+ } from "./chunk-3JVXVJ7L.js";
139
144
  import {
140
145
  NO_SEQUENCE,
141
146
  SEQUENCE_COLLECTION,
142
147
  compileSequenceFormat,
143
148
  resolveSequenceKey
144
- } from "./chunk-NQCNSVGI.js";
149
+ } from "./chunk-7MNBICB5.js";
145
150
  import {
146
151
  Query,
147
152
  ScanBuilder
@@ -151,7 +156,7 @@ import {
151
156
  NO_BLOBS,
152
157
  createExportBlobsHandle,
153
158
  runCompaction
154
- } from "./chunk-P7NGLLUF.js";
159
+ } from "./chunk-WASHZV34.js";
155
160
  import {
156
161
  LazyQuery,
157
162
  NO_INDEXING,
@@ -180,7 +185,7 @@ import {
180
185
  } from "./chunk-PVEWA2DU.js";
181
186
  import {
182
187
  dictCollectionName
183
- } from "./chunk-XB7LUDKM.js";
188
+ } from "./chunk-WFUIE565.js";
184
189
  import {
185
190
  NO_I18N,
186
191
  getAtPath,
@@ -215,7 +220,7 @@ import {
215
220
  saveShamirRecoveryEntries,
216
221
  updateAuthenticator,
217
222
  writeMagicLinkGrant
218
- } from "./chunk-DPJTDNUF.js";
223
+ } from "./chunk-O2ERS4UJ.js";
219
224
  import {
220
225
  assertKeyringOpenAllowed,
221
226
  buildRecipientKeyringFile,
@@ -230,11 +235,11 @@ import {
230
235
  listUsers,
231
236
  loadKeyring,
232
237
  updateKeyringIdentity
233
- } from "./chunk-RLWY6Z44.js";
238
+ } from "./chunk-JRKZTEZZ.js";
234
239
  import {
235
240
  persistDirectoryConfig,
236
241
  readDirectoryConfig
237
- } from "./chunk-27TCYH6G.js";
242
+ } from "./chunk-5JY5TSVY.js";
238
243
  import {
239
244
  NO_BROKER,
240
245
  buildCredentialBrokerHandle
@@ -255,7 +260,7 @@ import {
255
260
  } from "./chunk-3FSX6LDG.js";
256
261
  import {
257
262
  sha256Hex
258
- } from "./chunk-24UICKTB.js";
263
+ } from "./chunk-6SAFL5YE.js";
259
264
  import {
260
265
  NO_FORGET,
261
266
  addSubjectRef,
@@ -264,7 +269,7 @@ import {
264
269
  readDottedPath,
265
270
  rebuildSubjectIndex,
266
271
  removeSubjectRef
267
- } from "./chunk-RPXL6KSX.js";
272
+ } from "./chunk-WLZ47GSL.js";
268
273
  import {
269
274
  NO_SEALED_RECORD
270
275
  } from "./chunk-FAXZQ5UF.js";
@@ -278,20 +283,20 @@ import {
278
283
  queryByDet,
279
284
  resolveStableCek,
280
285
  validateSchemaInput
281
- } from "./chunk-FY343IZR.js";
286
+ } from "./chunk-3URQC7EH.js";
282
287
  import {
283
288
  buildDeleteMarker,
284
289
  buildTombstone,
285
290
  isDeleteMarker,
286
291
  isTombstone
287
- } from "./chunk-NQRJ5AJO.js";
292
+ } from "./chunk-7H73RIE3.js";
288
293
  import {
289
294
  encrypt
290
295
  } from "./chunk-VCETL77O.js";
291
296
  import {
292
297
  NOYDB_FORMAT_VERSION,
293
298
  SealedHandle
294
- } from "./chunk-24ZLWWEO.js";
299
+ } from "./chunk-YPYHVOXP.js";
295
300
  import {
296
301
  AlreadyElevatedError,
297
302
  AttestationError,
@@ -464,7 +469,7 @@ function validateSecretModeOptions(options) {
464
469
  }
465
470
  async function resolveEffectiveSecret(options, store, vault) {
466
471
  if (options.secretMode === "managed") {
467
- const { resolveManagedSecret } = await import("./managed-secret-EAOYWRYF.js");
472
+ const { resolveManagedSecret } = await import("./managed-secret-CWQ6PND5.js");
468
473
  return resolveManagedSecret(store, vault, options.sealingKey);
469
474
  }
470
475
  return options.secret;
@@ -482,7 +487,7 @@ function ownerKeyringOptions(options, secret) {
482
487
 
483
488
  // src/port/by/default-provider.ts
484
489
  async function createDefaultCoordinationProvider(store) {
485
- const { StoreCoordinationProvider } = await import("./store-coordination-provider-4SKLSFUG.js");
490
+ const { StoreCoordinationProvider } = await import("./store-coordination-provider-GFCUOBR6.js");
486
491
  return new StoreCoordinationProvider(store);
487
492
  }
488
493
 
@@ -3404,7 +3409,7 @@ var Collection = class {
3404
3409
  }
3405
3410
  }
3406
3411
  if (this.materializedViewSource !== void 0) {
3407
- const { resolveStaleMVOnRead } = await import("./stale-K734VACF.js");
3412
+ const { resolveStaleMVOnRead } = await import("./stale-ARHFVL5U.js");
3408
3413
  await resolveStaleMVOnRead(this.materializedViewSource, this.name, this.#dispatchCtx({ collection: this.name, id: "resolve-on-read" }));
3409
3414
  }
3410
3415
  let record;
@@ -3934,7 +3939,7 @@ var Collection = class {
3934
3939
  */
3935
3940
  async dispatchMaterializedViews(id, record, wave) {
3936
3941
  if (this.materializedViewSource === void 0) return;
3937
- const { dispatchMaterializedViews } = await import("./dispatch-4XIJSFTT.js");
3942
+ const { dispatchMaterializedViews } = await import("./dispatch-FZEAWKVM.js");
3938
3943
  return dispatchMaterializedViews(this.#mvDispatchCtx(this.materializedViewSource), id, record, wave);
3939
3944
  }
3940
3945
  /**
@@ -4107,7 +4112,7 @@ var Collection = class {
4107
4112
  * dispatch wave's per-target dedup; `undefined` on the local-write path (byte-identical). */
4108
4113
  async dispatchDerivations(id, record, version, wave) {
4109
4114
  if (this.derivationSource === void 0) return;
4110
- const { dispatchDerivations } = await import("./dispatch-N5HGVUGU.js");
4115
+ const { dispatchDerivations } = await import("./dispatch-MJ6SHB3Y.js");
4111
4116
  return dispatchDerivations({
4112
4117
  ...this.#derivationDeleteCtx(this.derivationSource),
4113
4118
  via: this.via,
@@ -4422,7 +4427,7 @@ var Collection = class {
4422
4427
  */
4423
4428
  async dispatchArrayDerivationsOnDelete(id, eraseRecordShapeToo = false) {
4424
4429
  if (this.derivationSource === void 0) return 0;
4425
- const { dispatchArrayDerivationsOnDelete } = await import("./dispatch-N5HGVUGU.js");
4430
+ const { dispatchArrayDerivationsOnDelete } = await import("./dispatch-MJ6SHB3Y.js");
4426
4431
  return dispatchArrayDerivationsOnDelete(this.#derivationDeleteCtx(this.derivationSource), id, eraseRecordShapeToo);
4427
4432
  }
4428
4433
  /**
@@ -4436,7 +4441,7 @@ var Collection = class {
4436
4441
  */
4437
4442
  async dispatchMaterializedViewsOnDelete(id) {
4438
4443
  if (this.materializedViewSource === void 0) return { deleted: 0, residueUndecodable: [], residueDeclined: [] };
4439
- const { dispatchMaterializedViewsOnDelete } = await import("./dispatch-4XIJSFTT.js");
4444
+ const { dispatchMaterializedViewsOnDelete } = await import("./dispatch-FZEAWKVM.js");
4440
4445
  return dispatchMaterializedViewsOnDelete(this.#mvDispatchCtx(this.materializedViewSource), id);
4441
4446
  }
4442
4447
  /**
@@ -4456,7 +4461,7 @@ var Collection = class {
4456
4461
  );
4457
4462
  }
4458
4463
  if (this.materializedViewSource !== void 0) {
4459
- const { resolveStaleMVOnRead } = await import("./stale-K734VACF.js");
4464
+ const { resolveStaleMVOnRead } = await import("./stale-ARHFVL5U.js");
4460
4465
  await resolveStaleMVOnRead(this.materializedViewSource, this.name, this.#dispatchCtx({ collection: this.name, id: "resolve-on-read" }));
4461
4466
  }
4462
4467
  await this.ensureHydrated();
@@ -5566,14 +5571,14 @@ var Collection = class {
5566
5571
  /** C-A/R10: persist the classified marker once per classified handle (store I/O in config-drift.ts). */
5567
5572
  async _ensureClassifiedMarker() {
5568
5573
  if (this._markerPersisted || this.vdigFields === null) return;
5569
- const { persistClassifiedMarkerForFields } = await import("./classified-marker-MH3ON5OL.js");
5574
+ const { persistClassifiedMarkerForFields } = await import("./classified-marker-2KJAXRRO.js");
5570
5575
  await persistClassifiedMarkerForFields(this.adapter, this.vault, this.name, this.vdigFields, await this.getDEK(this.name));
5571
5576
  this._markerPersisted = true;
5572
5577
  }
5573
5578
  /** C-A/R10 drift signal — the marker's declared digest-only set, memoized to one store read per handle (see config-drift.ts). */
5574
5579
  async _classifiedMarkerDigestOnly() {
5575
5580
  if (this._markerDigestOnlyCache !== void 0) return this._markerDigestOnlyCache;
5576
- const { readClassifiedMarkerDigestOnly } = await import("./classified-marker-MH3ON5OL.js");
5581
+ const { readClassifiedMarkerDigestOnly } = await import("./classified-marker-2KJAXRRO.js");
5577
5582
  this._markerDigestOnlyCache = await readClassifiedMarkerDigestOnly(this.adapter, this.vault, this.name, await this.getDEK(this.name));
5578
5583
  return this._markerDigestOnlyCache;
5579
5584
  }
@@ -6120,6 +6125,18 @@ var DeferredNumberingStore = class {
6120
6125
  };
6121
6126
 
6122
6127
  // src/with-audit/periods/vault-facade.ts
6128
+ function hasPartition(partition) {
6129
+ return partition !== void 0 && partition.length > 0;
6130
+ }
6131
+ function scopeSuffix(options) {
6132
+ return hasPartition(options?.partition) ? ` in partition [${options.partition.join(", ")}]` : "";
6133
+ }
6134
+ function assertVaultWide(op, period, why) {
6135
+ if (!hasPartition(period.partition)) return;
6136
+ throw new ValidationError(
6137
+ `${op}: period "${period.name}" is partitioned ([${period.partition.join(", ")}]), and ${op} ${why} \u2014 it cannot be scoped to one timeline, because the store sees only ciphertext and cannot tell which partition a stored record belongs to. Close partitioned periods for their sealing semantics; run ${op} against an unpartitioned period covering the same window.`
6138
+ );
6139
+ }
6123
6140
  var VaultPeriods = class {
6124
6141
  constructor(deps) {
6125
6142
  this.deps = deps;
@@ -6134,11 +6151,11 @@ var VaultPeriods = class {
6134
6151
  periodCache = null;
6135
6152
  async closePeriod(options) {
6136
6153
  const existing = await this.loadPeriodsCache();
6137
- this.deps.strategy.validatePeriodName(options.name, existing);
6154
+ this.deps.strategy.validatePeriodName(options.name, existing, options.partition);
6138
6155
  if (typeof options.endDate !== "string" || options.endDate.length === 0) {
6139
6156
  throw new ValidationError("closePeriod: endDate must be a non-empty ISO string.");
6140
6157
  }
6141
- const anchor = await this.deps.strategy.chainAnchor(existing);
6158
+ const anchor = await this.deps.strategy.chainAnchor(existing, options.partition);
6142
6159
  const record = {
6143
6160
  name: options.name,
6144
6161
  kind: "closed",
@@ -6147,21 +6164,26 @@ var VaultPeriods = class {
6147
6164
  closedBy: this.deps.userId(),
6148
6165
  priorPeriodHash: anchor.priorPeriodHash,
6149
6166
  ...anchor.priorPeriodName !== void 0 && { priorPeriodName: anchor.priorPeriodName },
6150
- ...options.dateField !== void 0 && { dateField: options.dateField }
6167
+ ...options.dateField !== void 0 && { dateField: options.dateField },
6168
+ ...hasPartition(options.partition) && { partition: options.partition }
6151
6169
  };
6152
- const envelope = await this.writeReserved(PERIODS_COLLECTION, record.name, record);
6153
- await this.deps.strategy.appendPeriodLedgerEntry(this.deps.getLedgerOrNull(), this.deps.userId(), envelope, record.name);
6170
+ const storageKey = resolvePeriodKey(record.name, record.partition);
6171
+ const envelope = await this.writeReserved(PERIODS_COLLECTION, storageKey, record);
6172
+ await this.deps.strategy.appendPeriodLedgerEntry(this.deps.getLedgerOrNull(), this.deps.userId(), envelope, storageKey);
6154
6173
  existing.push(record);
6155
6174
  this.periodCache = existing;
6156
6175
  return record;
6157
6176
  }
6158
6177
  async openPeriod(options) {
6159
6178
  const existing = await this.loadPeriodsCache();
6160
- this.deps.strategy.validatePeriodName(options.name, existing);
6161
- const prior = existing.find((p) => p.name === options.fromPeriod);
6179
+ this.deps.strategy.validatePeriodName(options.name, existing, options.partition);
6180
+ const prior = existing.find(
6181
+ (p) => p.name === options.fromPeriod && samePartition(p.partition, options.partition)
6182
+ );
6162
6183
  if (!prior) {
6184
+ const where = hasPartition(options.partition) ? ` in partition [${options.partition.join(", ")}]` : "";
6163
6185
  throw new ValidationError(
6164
- `openPeriod: fromPeriod "${options.fromPeriod}" does not exist in this vault.`
6186
+ `openPeriod: fromPeriod "${options.fromPeriod}" does not exist in this vault${where}.`
6165
6187
  );
6166
6188
  }
6167
6189
  if (prior.kind !== "closed") {
@@ -6191,7 +6213,7 @@ var VaultPeriods = class {
6191
6213
  }
6192
6214
  openingCollections.push(collName);
6193
6215
  }
6194
- const anchor = await this.deps.strategy.chainAnchor(existing);
6216
+ const anchor = await this.deps.strategy.chainAnchor(existing, options.partition);
6195
6217
  const record = {
6196
6218
  name: options.name,
6197
6219
  kind: "opened",
@@ -6202,10 +6224,12 @@ var VaultPeriods = class {
6202
6224
  closedBy: this.deps.userId(),
6203
6225
  priorPeriodHash: anchor.priorPeriodHash,
6204
6226
  priorPeriodName: anchor.priorPeriodName ?? prior.name,
6205
- ...openingCollections.length > 0 && { openingCollections }
6227
+ ...openingCollections.length > 0 && { openingCollections },
6228
+ ...hasPartition(options.partition) && { partition: options.partition }
6206
6229
  };
6207
- const envelope = await this.writeReserved(PERIODS_COLLECTION, record.name, record);
6208
- await this.deps.strategy.appendPeriodLedgerEntry(this.deps.getLedgerOrNull(), this.deps.userId(), envelope, record.name);
6230
+ const storageKey = resolvePeriodKey(record.name, record.partition);
6231
+ const envelope = await this.writeReserved(PERIODS_COLLECTION, storageKey, record);
6232
+ await this.deps.strategy.appendPeriodLedgerEntry(this.deps.getLedgerOrNull(), this.deps.userId(), envelope, storageKey);
6209
6233
  existing.push(record);
6210
6234
  this.periodCache = existing;
6211
6235
  return record;
@@ -6219,10 +6243,11 @@ var VaultPeriods = class {
6219
6243
  * read only. Idempotent: a second call is a no-op that returns the
6220
6244
  * same merged record without re-purging or re-appending a ledger entry.
6221
6245
  */
6222
- async freezePeriod(name) {
6246
+ async freezePeriod(name, options) {
6223
6247
  const existing = await this.loadPeriodsCache();
6224
- const period = existing.find((p) => p.name === name);
6225
- if (!period) throw new ValidationError(`freezePeriod: no period named "${name}".`);
6248
+ const period = this.findPeriod(existing, name, options);
6249
+ if (!period) throw new ValidationError(`freezePeriod: no period named "${name}"${scopeSuffix(options)}.`);
6250
+ assertVaultWide("freezePeriod", period, "purges delete markers by write-time across the whole store");
6226
6251
  if (period.kind !== "closed") {
6227
6252
  throw new ValidationError(
6228
6253
  `freezePeriod: period "${name}" is "${period.kind}"; only a closed period can be frozen.`
@@ -6262,10 +6287,11 @@ var VaultPeriods = class {
6262
6287
  * through to cold) and idempotent: a second call is a no-op returning the
6263
6288
  * same merged record.
6264
6289
  */
6265
- async archivePeriod(name) {
6290
+ async archivePeriod(name, options) {
6266
6291
  const existing = await this.loadPeriodsCache();
6267
- const period = existing.find((p) => p.name === name);
6268
- if (!period) throw new ValidationError(`archivePeriod: no period named "${name}".`);
6292
+ const period = this.findPeriod(existing, name, options);
6293
+ if (!period) throw new ValidationError(`archivePeriod: no period named "${name}"${scopeSuffix(options)}.`);
6294
+ assertVaultWide("archivePeriod", period, "relocates records by write-time across the whole store");
6269
6295
  if (period.kind !== "closed") {
6270
6296
  throw new ValidationError(
6271
6297
  `archivePeriod: period "${name}" is "${period.kind}"; only a closed period can be archived.`
@@ -6300,10 +6326,11 @@ var VaultPeriods = class {
6300
6326
  * Idempotent once run; with no push-only targets it writes no companion and
6301
6327
  * is re-runnable.
6302
6328
  */
6303
- async purgePeriodTargets(name) {
6329
+ async purgePeriodTargets(name, options) {
6304
6330
  const existing = await this.loadPeriodsCache();
6305
- const period = existing.find((p) => p.name === name);
6306
- if (!period) throw new ValidationError(`purgePeriodTargets: no period named "${name}".`);
6331
+ const period = this.findPeriod(existing, name, options);
6332
+ if (!period) throw new ValidationError(`purgePeriodTargets: no period named "${name}"${scopeSuffix(options)}.`);
6333
+ assertVaultWide("purgePeriodTargets", period, "sweeps delete markers by write-time off whole sync targets");
6307
6334
  if (period.kind !== "closed") {
6308
6335
  throw new ValidationError(
6309
6336
  `purgePeriodTargets: period "${name}" is "${period.kind}"; only a closed period can be target-purged.`
@@ -6363,8 +6390,15 @@ var VaultPeriods = class {
6363
6390
  purgedMarkerCount: freeze.purgedMarkerCount
6364
6391
  };
6365
6392
  }
6366
- /** Return every closed / opened period in `closedAt` order, merged with any freeze + archive companions. */
6367
- async listPeriods() {
6393
+ /**
6394
+ * Return every closed / opened period in `closedAt` order, merged with any
6395
+ * freeze + archive companions.
6396
+ *
6397
+ * With no argument this spans EVERY timeline — the pre-#1005 behaviour, and
6398
+ * the right default for an audit sweep. Pass `{ partition }` to scope to one
6399
+ * timeline; `{ partition: [] }` (or omitting it) means the vault-wide one.
6400
+ */
6401
+ async listPeriods(options) {
6368
6402
  this.periodCache = null;
6369
6403
  const all = await this.loadPeriodsCache();
6370
6404
  const freezeIds = await this.deps.adapter.list(this.deps.vault, PERIOD_FREEZES_COLLECTION);
@@ -6385,7 +6419,9 @@ var VaultPeriods = class {
6385
6419
  const tp = await this.readReserved(PERIOD_TARGET_PURGES_COLLECTION, id);
6386
6420
  if (tp) targetPurges.set(tp.period, tp);
6387
6421
  }
6388
- return all.map((p) => {
6422
+ const scoped = options === void 0 ? all : all.filter((p) => samePartition(p.partition, options.partition));
6423
+ const withReopen = await this.mergeReopenState(scoped);
6424
+ return withReopen.map((p) => {
6389
6425
  const f = freezes.get(p.name);
6390
6426
  let merged = f ? this.mergeFreeze(p, f) : p;
6391
6427
  const a = archives.get(p.name);
@@ -6395,31 +6431,161 @@ var VaultPeriods = class {
6395
6431
  return merged;
6396
6432
  });
6397
6433
  }
6398
- /** Look up a single period by name, merged with its freeze + archive + target-purge companions if any. Returns `null` if not found. */
6399
- async getPeriod(name) {
6434
+ /**
6435
+ * Look up a single period by name within one timeline, merged with its
6436
+ * freeze + archive + target-purge companions if any. Returns `null` if not
6437
+ * found.
6438
+ *
6439
+ * Names are only unique per partition (#1005), so this resolves against the
6440
+ * VAULT-WIDE timeline unless `{ partition }` says otherwise — matching how
6441
+ * every pre-partition period is stored.
6442
+ */
6443
+ async getPeriod(name, options) {
6400
6444
  const all = await this.loadPeriodsCache();
6401
- const period = all.find((p) => p.name === name);
6445
+ const period = this.findPeriod(all, name, options);
6402
6446
  if (!period) return null;
6403
- const freeze = await this.readReserved(PERIOD_FREEZES_COLLECTION, name);
6404
- const archive = await this.readReserved(PERIOD_ARCHIVES_COLLECTION, name);
6447
+ const key = resolvePeriodKey(name, options?.partition);
6448
+ const freeze = await this.readReserved(PERIOD_FREEZES_COLLECTION, key);
6449
+ const archive = await this.readReserved(PERIOD_ARCHIVES_COLLECTION, key);
6405
6450
  let merged = freeze ? this.mergeFreeze(period, freeze) : period;
6406
6451
  if (archive) merged = this.mergeArchive(merged, archive);
6407
- const targetPurge = await this.readReserved(PERIOD_TARGET_PURGES_COLLECTION, name);
6452
+ const targetPurge = await this.readReserved(PERIOD_TARGET_PURGES_COLLECTION, key);
6408
6453
  if (targetPurge) merged = this.mergeTargetPurge(merged, targetPurge);
6454
+ const reopenLog = await this.readReserved(PERIOD_REOPENS_COLLECTION, key);
6455
+ if (reopenLog) merged = { ...merged, ...resolveReopenState(reopenLog.events) };
6409
6456
  return merged;
6410
6457
  }
6411
- /** Called by the gate bus before put/delete. */
6412
- async assertTsWritable(existing, incoming) {
6458
+ /**
6459
+ * The full append-only reopen/reclose log for one period (#1022) — the record
6460
+ * an audit actually asks for, in order. `[]` when never reopened.
6461
+ */
6462
+ async listPeriodReopens(name, options) {
6463
+ const key = resolvePeriodKey(name, options?.partition);
6464
+ const log = await this.readReserved(PERIOD_REOPENS_COLLECTION, key);
6465
+ return log?.events ?? [];
6466
+ }
6467
+ /**
6468
+ * Return a closed period to a writable state (#1022).
6469
+ *
6470
+ * Close is a three-state lifecycle in practice — open / closed / reopened —
6471
+ * because a month gets closed and then a missing invoice arrives, or a filing
6472
+ * is rejected and must be amended. That is routine, and it is supposed to
6473
+ * leave a trail.
6474
+ *
6475
+ * The `_periods/<key>` record is NOT touched: the reopen is appended to a
6476
+ * companion log, so the inter-period hash chain that proves the close
6477
+ * happened survives the reopen intact. The chain reads *closed at T1,
6478
+ * reopened at T2 by U, reclosed at T3*.
6479
+ *
6480
+ * A reopen withdraws the PERIOD's veto and nothing else. Record-level rules —
6481
+ * an `immutableGuard` on a sent receipt, a frozen field — are separate gate
6482
+ * handlers registered ahead of the period gate, so a reopened month cannot
6483
+ * resurrect a document that is independently locked. Period state can only
6484
+ * ever widen what the record-level rule already permits.
6485
+ *
6486
+ * Reopening an already-open window is allowed and appends another event: that
6487
+ * is how a window gets extended, and the log keeps both.
6488
+ */
6489
+ async reopenPeriod(name, options) {
6490
+ const existing = await this.loadPeriodsCache();
6491
+ const period = this.findPeriod(existing, name, options);
6492
+ if (!period) throw new ValidationError(`reopenPeriod: no period named "${name}"${scopeSuffix(options)}.`);
6493
+ if (period.kind !== "closed") {
6494
+ throw new ValidationError(
6495
+ `reopenPeriod: period "${name}" is "${period.kind}"; only a closed period can be reopened.`
6496
+ );
6497
+ }
6498
+ if (options?.until !== void 0 && Number.isNaN(Date.parse(options.until))) {
6499
+ throw new ValidationError(`reopenPeriod: unparseable \`until\` "${options.until}".`);
6500
+ }
6501
+ return this.appendReopenEvent(period, options, {
6502
+ op: "reopen",
6503
+ at: (/* @__PURE__ */ new Date()).toISOString(),
6504
+ by: this.deps.userId(),
6505
+ ...options?.until !== void 0 && { until: options.until },
6506
+ ...options?.reason !== void 0 && { reason: options.reason }
6507
+ });
6508
+ }
6509
+ /**
6510
+ * Seal a reopened period again (#1022), ending the window explicitly rather
6511
+ * than waiting for an `until` to lapse. Appends to the same log, so the
6512
+ * close → reopen → reclose sequence is recoverable in order.
6513
+ */
6514
+ async reclosePeriod(name, options) {
6515
+ const existing = await this.loadPeriodsCache();
6516
+ const period = this.findPeriod(existing, name, options);
6517
+ if (!period) throw new ValidationError(`reclosePeriod: no period named "${name}"${scopeSuffix(options)}.`);
6518
+ const merged = await this.mergeReopenState([period]);
6519
+ if (!isEffectivelyReopened(merged[0], (/* @__PURE__ */ new Date()).toISOString())) {
6520
+ throw new ValidationError(
6521
+ `reclosePeriod: period "${name}"${scopeSuffix(options)} is not currently reopened \u2014 nothing to reclose. A period whose \`until\` has already lapsed re-sealed on its own.`
6522
+ );
6523
+ }
6524
+ return this.appendReopenEvent(period, options, {
6525
+ op: "reclose",
6526
+ at: (/* @__PURE__ */ new Date()).toISOString(),
6527
+ by: this.deps.userId(),
6528
+ ...options?.reason !== void 0 && { reason: options.reason }
6529
+ });
6530
+ }
6531
+ /** Append one entry to a period's reopen log, ledger it, and invalidate the guard's view. */
6532
+ async appendReopenEvent(period, scope, event) {
6533
+ const key = resolvePeriodKey(period.name, period.partition);
6534
+ const prior = await this.readReserved(PERIOD_REOPENS_COLLECTION, key);
6535
+ const record = {
6536
+ period: period.name,
6537
+ ...hasPartition(period.partition) && { partition: period.partition },
6538
+ events: [...prior?.events ?? [], event]
6539
+ };
6540
+ const envelope = await this.writeReserved(PERIOD_REOPENS_COLLECTION, key, record);
6541
+ await this.deps.strategy.appendPeriodLedgerEntry(
6542
+ this.deps.getLedgerOrNull(),
6543
+ this.deps.userId(),
6544
+ envelope,
6545
+ key,
6546
+ PERIOD_REOPENS_COLLECTION
6547
+ );
6548
+ this.periodCache = null;
6549
+ void scope;
6550
+ return { ...period, ...resolveReopenState(record.events) };
6551
+ }
6552
+ /** Merge each period's reopen log onto it. One adapter listing, not one per period. */
6553
+ async mergeReopenState(periods) {
6554
+ if (periods.length === 0) return [];
6555
+ const ids = await this.deps.adapter.list(this.deps.vault, PERIOD_REOPENS_COLLECTION);
6556
+ if (ids.length === 0) return [...periods];
6557
+ const byKey = /* @__PURE__ */ new Map();
6558
+ for (const id of ids) {
6559
+ const r = await this.readReserved(PERIOD_REOPENS_COLLECTION, id);
6560
+ if (r) byKey.set(id, r);
6561
+ }
6562
+ return periods.map((p) => {
6563
+ const log = byKey.get(resolvePeriodKey(p.name, p.partition));
6564
+ return log ? { ...p, ...resolveReopenState(log.events) } : p;
6565
+ });
6566
+ }
6567
+ /** Resolve one period within the timeline named by `options` (vault-wide when absent). */
6568
+ findPeriod(all, name, options) {
6569
+ return all.find((p) => p.name === name && samePartition(p.partition, options?.partition));
6570
+ }
6571
+ /** Called by the gate bus before put/delete. `collection` selects the subject mapping (#1005). */
6572
+ async assertTsWritable(existing, incoming, collection) {
6413
6573
  if (existing === null && incoming === null) return;
6414
6574
  if (this.periodCache === null) {
6415
- this.periodCache = await this.deps.strategy.loadPeriods(
6575
+ const loaded = await this.deps.strategy.loadPeriods(
6416
6576
  this.deps.adapter,
6417
6577
  this.deps.vault,
6418
6578
  (env) => this.decryptPeriodRecord(env)
6419
6579
  );
6580
+ this.periodCache = await this.mergeReopenState(loaded);
6420
6581
  }
6421
6582
  if (this.periodCache.length === 0) return;
6422
- this.deps.strategy.assertTsWritable(existing, incoming, this.periodCache);
6583
+ this.deps.strategy.assertTsWritable(
6584
+ existing,
6585
+ incoming,
6586
+ this.periodCache,
6587
+ collection !== void 0 ? { collection, ...this.deps.strategy.partitionOf !== void 0 && { resolve: this.deps.strategy.partitionOf } } : void 0
6588
+ );
6423
6589
  }
6424
6590
  async loadPeriodsCache() {
6425
6591
  if (this.periodCache !== null) return this.periodCache;
@@ -7048,7 +7214,7 @@ var VaultLinks = class {
7048
7214
  // src/with-shape/links/lazy-handle.ts
7049
7215
  function makeLazyLinkSetHandle(d) {
7050
7216
  let engine = null;
7051
- const load = () => engine ??= import("./link-set-2TTP4VLO.js").then(
7217
+ const load = () => engine ??= import("./link-set-E5HNY67I.js").then(
7052
7218
  ({ LinkSet }) => new LinkSet(d.adapter, d.vault, d.name, d.spec, d.encrypted, d.getDEK, d.actor, d.emitter, d.endpointExists)
7053
7219
  );
7054
7220
  return {
@@ -7695,7 +7861,7 @@ function declareSatellite(ctx, collectionName, options, existingRegistry) {
7695
7861
  ctx.forEachSyncEngine((e) => e.remirrorPairResolvers([spec.base, spec.satellite]));
7696
7862
  const registry = reg;
7697
7863
  const baseSchema = ctx.getBaseSchema(spec.base);
7698
- void import("./post-register-ORQOQJCS.js").then((m) => m.postRegister(ctx.adapter, ctx.vaultName, spec, ctx.getDEK, baseSchema, registry)).catch(() => {
7864
+ void import("./post-register-2XSSMGEQ.js").then((m) => m.postRegister(ctx.adapter, ctx.vaultName, spec, ctx.getDEK, baseSchema, registry)).catch(() => {
7699
7865
  });
7700
7866
  return reg;
7701
7867
  }
@@ -8327,7 +8493,7 @@ var Vault = class {
8327
8493
  * envelopes, subject to the `view-team-profiles` policy gate.
8328
8494
  * - Reactive: `subscribe(id, cb)`, `live(id)` — fire on local writes.
8329
8495
  *
8330
- * @see docs/superpowers/specs/2026-05-05-user-envelope-design.md
8496
+ * @see design-history/2026-05-05-user-envelope-design.md
8331
8497
  */
8332
8498
  user;
8333
8499
  /**
@@ -8339,7 +8505,7 @@ var Vault = class {
8339
8505
  * - `liberate(opts)` — custodian-only: the audited claim of ownership over a
8340
8506
  * sealed-owner (Deed) vault (mints a DISTINCT new owner; ledger-audited).
8341
8507
  *
8342
- * @see docs/superpowers/specs/2026-06-17-fr6-deed-custodian-liberate-design.md
8508
+ * @see design-history/2026-06-17-fr6-deed-custodian-liberate-design.md
8343
8509
  */
8344
8510
  custody;
8345
8511
  /** Re-derives an UnlockedKeyring from the adapter using the active user's secret; called by
@@ -8678,7 +8844,7 @@ var Vault = class {
8678
8844
  const strategies = options.schemaUpdate ?? [];
8679
8845
  const work = (async () => {
8680
8846
  const dek = await this.getDEK(collectionName);
8681
- const { persistSchemaIfNeeded } = await import("./register-LHETZRJM.js");
8847
+ const { persistSchemaIfNeeded } = await import("./register-4EFJCVYD.js");
8682
8848
  const result = await persistSchemaIfNeeded({
8683
8849
  store: this.adapter,
8684
8850
  vault: this.name,
@@ -8828,7 +8994,7 @@ var Vault = class {
8828
8994
  const work = (async () => {
8829
8995
  try {
8830
8996
  const dek = await this.getDEK(collectionName);
8831
- await (await import("./register-LHETZRJM.js")).persistSchemaIfNeeded({
8997
+ await (await import("./register-4EFJCVYD.js")).persistSchemaIfNeeded({
8832
8998
  store: this.adapter,
8833
8999
  vault: this.name,
8834
9000
  collectionName,
@@ -9504,7 +9670,7 @@ var Vault = class {
9504
9670
  */
9505
9671
  // eslint-disable-next-line @typescript-eslint/consistent-type-imports
9506
9672
  async _loadPodSigner() {
9507
- const { loadSigner } = await import("./signer-7KHD4OL2.js");
9673
+ const { loadSigner } = await import("./signer-TA55QB6R.js");
9508
9674
  return loadSigner(this.adapter, this.name, this.getDEK);
9509
9675
  }
9510
9676
  async writeExportAudit(entry) {
@@ -10015,7 +10181,7 @@ var Vault = class {
10015
10181
  async _initDerivations(handles) {
10016
10182
  if (handles.length === 0) return;
10017
10183
  const [{ DerivationRegistry }, { ReadOnlyVaultFacade }] = await Promise.all([
10018
- import("./registry-JRIN447B.js"),
10184
+ import("./registry-4SDHHOJ7.js"),
10019
10185
  import("./read-only-facade-CHCKSEPD.js")
10020
10186
  ]);
10021
10187
  const registry = new DerivationRegistry();
@@ -10047,7 +10213,7 @@ var Vault = class {
10047
10213
  */
10048
10214
  async _initMaterializedViews(handles) {
10049
10215
  if (handles.length === 0) return;
10050
- const { MaterializedViewRegistry } = await import("./registry-AMAZ6QRZ.js");
10216
+ const { MaterializedViewRegistry } = await import("./registry-OYTFGWVK.js");
10051
10217
  const registry = new MaterializedViewRegistry();
10052
10218
  this.materializedViewRegistry = registry;
10053
10219
  const db = this;
@@ -10134,14 +10300,14 @@ var Vault = class {
10134
10300
  if (!reg) {
10135
10301
  throw new Error(`refreshView: no MV registered with name "${name}"`);
10136
10302
  }
10137
- const { MaterializedViewExecutor } = await import("./executor-3JZ4POTW.js");
10303
+ const { MaterializedViewExecutor } = await import("./executor-YIQB2S6N.js");
10138
10304
  const result = await MaterializedViewExecutor.refresh(reg, {
10139
10305
  getCollection: (n) => this.collection(n),
10140
10306
  getActiveTxContext: () => this.noydb._activeTxContextOrNull,
10141
10307
  getQueryContext: () => this,
10142
10308
  dispatchCtx: this._dispatchCtx({ collection: name, id: "refreshView" })
10143
10309
  });
10144
- const { clearMVStaleFully } = await import("./stale-K734VACF.js");
10310
+ const { clearMVStaleFully } = await import("./stale-ARHFVL5U.js");
10145
10311
  await clearMVStaleFully(this.adapter, this.name, registry, name);
10146
10312
  return result;
10147
10313
  }
@@ -10181,7 +10347,7 @@ var Vault = class {
10181
10347
  if (!outSpec) continue;
10182
10348
  const outputColl = this.collection(outSpec.collection);
10183
10349
  if (out.kind === "array") {
10184
- const { loadFanoutSidecar, saveFanoutSidecar } = await import("./fanout-sidecar-T2ZGLQFE.js");
10350
+ const { loadFanoutSidecar, saveFanoutSidecar } = await import("./fanout-sidecar-NNAJQXMX.js");
10185
10351
  const prior = await loadFanoutSidecar(this.adapter, this.name, spec.source, id, key, this.getDEK, this.encrypted);
10186
10352
  const prevKeys = new Set(prior?.keys ?? []);
10187
10353
  const newKeysList = out.entries.map((e) => e.key);
@@ -10408,7 +10574,7 @@ var Vault = class {
10408
10574
  * collection.
10409
10575
  */
10410
10576
  async delegate(opts) {
10411
- const { issueDelegation, DELEGATIONS_COLLECTION } = await import("./delegation-PDYL6RWT.js");
10577
+ const { issueDelegation, DELEGATIONS_COLLECTION } = await import("./delegation-MO7YZYJS.js");
10412
10578
  if (!this.keyring.kek) {
10413
10579
  throw new ValidationError(
10414
10580
  "issueDelegation: keyring.kek is null \u2014 issuing a delegation requires a tier-1 unlock. Re-authenticate at tier 1 (secret) first."
@@ -10430,7 +10596,7 @@ var Vault = class {
10430
10596
  * if the id does not exist.
10431
10597
  */
10432
10598
  async revokeDelegation(id) {
10433
- const { revokeDelegation, DELEGATIONS_COLLECTION } = await import("./delegation-PDYL6RWT.js");
10599
+ const { revokeDelegation, DELEGATIONS_COLLECTION } = await import("./delegation-MO7YZYJS.js");
10434
10600
  await revokeDelegation(this.adapter, this.name, id);
10435
10601
  void DELEGATIONS_COLLECTION;
10436
10602
  }
@@ -10609,13 +10775,13 @@ var Vault = class {
10609
10775
  async openPeriod(options) {
10610
10776
  return this.periods.openPeriod(options);
10611
10777
  }
10612
- /** Return every closed / opened period in `closedAt` order. */
10613
- async listPeriods() {
10614
- return this.periods.listPeriods();
10778
+ /** Every closed / opened period in `closedAt` order; ALL timelines unless `{ partition }` scopes it (#1005). */
10779
+ async listPeriods(options) {
10780
+ return this.periods.listPeriods(options);
10615
10781
  }
10616
- /** Look up a single period by name. Returns `null` if not found. */
10617
- async getPeriod(name) {
10618
- return this.periods.getPeriod(name);
10782
+ /** One period by name within a timeline (vault-wide unless `{ partition }`). `null` if not found. */
10783
+ async getPeriod(name, options) {
10784
+ return this.periods.getPeriod(name, options);
10619
10785
  }
10620
10786
  /**
10621
10787
  * Freeze a closed period (#604): purges in-window delete markers and
@@ -10625,8 +10791,8 @@ var Vault = class {
10625
10791
  * and purging re-opens the #589 resurrection window for a peer offline
10626
10792
  * since before the cutoff (see periods.ts's "Freeze" section).
10627
10793
  */
10628
- async freezePeriod(name) {
10629
- return this.periods.freezePeriod(name);
10794
+ async freezePeriod(name, options) {
10795
+ return this.periods.freezePeriod(name, options);
10630
10796
  }
10631
10797
  /**
10632
10798
  * Archive a closed period (#613): relocates its in-window records from the
@@ -10635,8 +10801,8 @@ var Vault = class {
10635
10801
  * the chained `_periods` record. Non-destructive (reads fall through to
10636
10802
  * cold) and idempotent. Requires a routeStore with a cold route.
10637
10803
  */
10638
- async archivePeriod(name) {
10639
- return this.periods.archivePeriod(name);
10804
+ async archivePeriod(name, options) {
10805
+ return this.periods.archivePeriod(name, options);
10640
10806
  }
10641
10807
  /**
10642
10808
  * Target-purge a closed+frozen period (#615): sweeps delete markers off the
@@ -10646,12 +10812,24 @@ var Vault = class {
10646
10812
  * frozen first. Idempotent; a vault with no push-only targets writes no
10647
10813
  * companion and is re-runnable.
10648
10814
  */
10649
- async purgePeriodTargets(name) {
10650
- return this.periods.purgePeriodTargets(name);
10815
+ async purgePeriodTargets(name, options) {
10816
+ return this.periods.purgePeriodTargets(name, options);
10817
+ }
10818
+ /** Return a closed period to writable (#1022); logged append-only, close chain untouched. */
10819
+ async reopenPeriod(name, options) {
10820
+ return this.periods.reopenPeriod(name, options);
10821
+ }
10822
+ /** Seal a reopened period again (#1022) rather than waiting for its `until` to lapse. */
10823
+ async reclosePeriod(name, options) {
10824
+ return this.periods.reclosePeriod(name, options);
10825
+ }
10826
+ /** The append-only reopen/reclose log for one period (#1022), in order. */
10827
+ async listPeriodReopens(name, options) {
10828
+ return this.periods.listPeriodReopens(name, options);
10651
10829
  }
10652
10830
  /** @internal — called by the gate bus before put/delete. */
10653
- async _assertTsWritable(existing, incoming) {
10654
- return this.periods.assertTsWritable(existing, incoming);
10831
+ async _assertTsWritable(existing, incoming, collection) {
10832
+ return this.periods.assertTsWritable(existing, incoming, collection);
10655
10833
  }
10656
10834
  /** List all collection names in this vault. */
10657
10835
  async collections() {
@@ -10675,10 +10853,10 @@ var Vault = class {
10675
10853
  * - `sampled`: inferred from decrypted records (deferred to a follow-up)
10676
10854
  * - `unknown`: no schema info available
10677
10855
  *
10678
- * @see docs/superpowers/specs/2026-05-22-schema-dump-design.md
10856
+ * @see design-history/2026-05-22-schema-dump-design.md
10679
10857
  */
10680
10858
  async dumpSchema(opts = {}) {
10681
- const { dumpVaultSchema } = await import("./walk-MQHYNDLZ.js");
10859
+ const { dumpVaultSchema } = await import("./walk-3ZECBFDA.js");
10682
10860
  return dumpVaultSchema(this, opts);
10683
10861
  }
10684
10862
  /**
@@ -10774,7 +10952,7 @@ var Vault = class {
10774
10952
  * separate vault instances now.
10775
10953
  */
10776
10954
  async getBundleHandle() {
10777
- const { buildBundleHandle } = await import("./bundle-handle-5OUAI7CV.js");
10955
+ const { buildBundleHandle } = await import("./bundle-handle-GFNHT52M.js");
10778
10956
  return buildBundleHandle(this.adapter, this.name);
10779
10957
  }
10780
10958
  /**
@@ -10806,7 +10984,7 @@ var Vault = class {
10806
10984
  * both modes round-trip cleanly.
10807
10985
  */
10808
10986
  async dump() {
10809
- const { dumpVault } = await import("./backup-GAYWQAFN.js");
10987
+ const { dumpVault } = await import("./backup-AVAGHAJE.js");
10810
10988
  return dumpVault(this.backupContext());
10811
10989
  }
10812
10990
  /**
@@ -10858,7 +11036,7 @@ var Vault = class {
10858
11036
  * — there's no chain to verify against.
10859
11037
  */
10860
11038
  async load(backupJson) {
10861
- const { loadVault } = await import("./backup-GAYWQAFN.js");
11039
+ const { loadVault } = await import("./backup-AVAGHAJE.js");
10862
11040
  return loadVault(this.backupContext(), backupJson);
10863
11041
  }
10864
11042
  /**
@@ -10890,7 +11068,7 @@ var Vault = class {
10890
11068
  * way to detect tampering of an in-place vault.
10891
11069
  */
10892
11070
  async verifyBackupIntegrity() {
10893
- const { verifyBackupIntegrity } = await import("./backup-GAYWQAFN.js");
11071
+ const { verifyBackupIntegrity } = await import("./backup-AVAGHAJE.js");
10894
11072
  return verifyBackupIntegrity(this.backupContext());
10895
11073
  }
10896
11074
  /**
@@ -11108,7 +11286,7 @@ var Vault = class {
11108
11286
  * is the live validator object, not a serialization of it).
11109
11287
  */
11110
11288
  async exportJSON(opts = {}) {
11111
- const { exportVaultJSON } = await import("./backup-GAYWQAFN.js");
11289
+ const { exportVaultJSON } = await import("./backup-AVAGHAJE.js");
11112
11290
  return exportVaultJSON(this.backupContext(), opts);
11113
11291
  }
11114
11292
  };
@@ -13051,7 +13229,7 @@ var Noydb = class {
13051
13229
  const v = this.vaultCache.get(e.vault);
13052
13230
  if (!v) return;
13053
13231
  const existing = e.op === "create" ? null : { ts: e.existingTs ?? null, record: e.existing ?? null };
13054
- await v._assertTsWritable(existing, e.incoming);
13232
+ await v._assertTsWritable(existing, e.incoming, e.collection);
13055
13233
  });
13056
13234
  this.subsystemBus.registerGate("beforeDelete", async (e) => {
13057
13235
  if (e.internal) return;
@@ -13059,7 +13237,8 @@ var Noydb = class {
13059
13237
  if (!v) return;
13060
13238
  await v._assertTsWritable(
13061
13239
  { ts: e.existingTs ?? null, record: e.existing ?? null },
13062
- null
13240
+ null,
13241
+ e.collection
13063
13242
  );
13064
13243
  });
13065
13244
  }
@@ -13805,7 +13984,14 @@ var Noydb = class {
13805
13984
  getSyncEngine(vault) {
13806
13985
  const engine = this.syncEngines.get(vault);
13807
13986
  if (!engine) {
13808
- throw new ValidationError("No sync adapter configured. Pass a `sync` adapter to createNoydb().");
13987
+ if (this.syncEngines.size === 0) {
13988
+ throw new ValidationError(
13989
+ "No sync adapter configured. Pass a `sync` adapter to createNoydb() \u2014 a NoydbStore, a SyncTarget (`{ store, role }`), or an array of them \u2014 and `syncStrategy: withSync()` to enable the engine."
13990
+ );
13991
+ }
13992
+ throw new ValidationError(
13993
+ `No sync engine for vault "${String(vault)}". Sync is configured, but for [${[...this.syncEngines.keys()].map((k) => `"${k}"`).join(", ")}] \u2014 an engine is built per vault when it is opened, so open this vault first. Note the vault name is a REQUIRED argument: \`db.pull(vaultName)\`, not \`db.pull()\`.`
13994
+ );
13809
13995
  }
13810
13996
  return engine;
13811
13997
  }
@@ -14328,7 +14514,7 @@ async function createNoydb(options) {
14328
14514
  if (!options.store) options = { ...options, store: memoryStore() };
14329
14515
  validateSecretModeOptions(options);
14330
14516
  if (!options.coordinationStrategy) options = { ...options, coordinationStrategy: await createDefaultCoordinationProvider(options.store) };
14331
- if (!options.userApiFactory) options = { ...options, userApiFactory: (await import("./api-67SBPMMH.js")).createUserApi };
14517
+ if (!options.userApiFactory) options = { ...options, userApiFactory: (await import("./api-RXUMEKT3.js")).createUserApi };
14332
14518
  if (!options.policyFactory) {
14333
14519
  const policyModule = await import("./policy/index.js");
14334
14520
  options = { ...options, policyFactory: policyModule.createNoydbPolicy, policyCheckGateFn: policyModule.checkGate };
@@ -14363,4 +14549,4 @@ export {
14363
14549
  Noydb,
14364
14550
  createNoydb
14365
14551
  };
14366
- //# sourceMappingURL=chunk-3CLZY46Y.js.map
14552
+ //# sourceMappingURL=chunk-N3BI6P3J.js.map