@noy-db/hub 0.6.0-pre.2 → 0.6.0-pre.20

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 (490) hide show
  1. package/codemods/0.4.0-pre.json +699 -0
  2. package/codemods/0.6.0-pre.json +211 -0
  3. package/dist/api-Z5VHH24A.js +20 -0
  4. package/dist/attestation/index.js +19 -19
  5. package/dist/{backup-YYBE5RPC.js → backup-K62BFMYK.js} +36 -18
  6. package/dist/backup-K62BFMYK.js.map +1 -0
  7. package/dist/blobs/index.js +13 -13
  8. package/dist/broker/index.js +12 -12
  9. package/dist/cargo/index.js +33 -33
  10. package/dist/{chunk-FDX7OWWI.js → chunk-2E2MKBMI.js} +2 -2
  11. package/dist/{chunk-VOQW5LAM.js → chunk-2IK6AC6A.js} +102 -71
  12. package/dist/chunk-2IK6AC6A.js.map +1 -0
  13. package/dist/{chunk-EDXAQ6JI.js → chunk-32O2N2CH.js} +87 -34
  14. package/dist/chunk-32O2N2CH.js.map +1 -0
  15. package/dist/{chunk-W5W6KHN2.js → chunk-3Y4OFWQJ.js} +1 -1
  16. package/dist/chunk-3Y4OFWQJ.js.map +1 -0
  17. package/dist/{chunk-7G6VDWXB.js → chunk-437FDIHO.js} +3 -3
  18. package/dist/chunk-437FDIHO.js.map +1 -0
  19. package/dist/{chunk-3FSX6LDG.js → chunk-47ZFULEZ.js} +8 -3
  20. package/dist/{chunk-3FSX6LDG.js.map → chunk-47ZFULEZ.js.map} +1 -1
  21. package/dist/{chunk-ZJADGNYF.js → chunk-4AOERLTV.js} +1 -1
  22. package/dist/chunk-4AOERLTV.js.map +1 -0
  23. package/dist/{chunk-MWKDOHEF.js → chunk-4HVTRHSA.js} +17 -10
  24. package/dist/chunk-4HVTRHSA.js.map +1 -0
  25. package/dist/{chunk-V5KYPBUR.js → chunk-5BS6IQZZ.js} +11 -14
  26. package/dist/chunk-5BS6IQZZ.js.map +1 -0
  27. package/dist/{chunk-LWSJG3LI.js → chunk-5EJQNA26.js} +7 -3
  28. package/dist/chunk-5EJQNA26.js.map +1 -0
  29. package/dist/{chunk-7F4DBNSP.js → chunk-5J5TTSGW.js} +3 -3
  30. package/dist/{chunk-BTVYJWSN.js → chunk-5JT4Y5UE.js} +10 -10
  31. package/dist/{chunk-C2OOEM57.js → chunk-6S466CMQ.js} +92 -35
  32. package/dist/chunk-6S466CMQ.js.map +1 -0
  33. package/dist/{chunk-PY7CI6L5.js → chunk-6TXUVKPG.js} +516 -263
  34. package/dist/chunk-6TXUVKPG.js.map +1 -0
  35. package/dist/{chunk-7NXHMW6Y.js → chunk-7RCZ436O.js} +2 -2
  36. package/dist/{chunk-DG27IUVI.js → chunk-A3NTKHDB.js} +2 -2
  37. package/dist/{chunk-CCZJJ4I2.js → chunk-A4K5GLE6.js} +4 -4
  38. package/dist/{chunk-CEJWMBXO.js → chunk-APV42WPR.js} +2 -2
  39. package/dist/{chunk-4HDYQL3J.js → chunk-AQF7JSQR.js} +2 -2
  40. package/dist/{chunk-KUDZVJKQ.js → chunk-BP4I7IBK.js} +2 -2
  41. package/dist/{chunk-4UVDI4XE.js → chunk-BTNKPDZM.js} +4 -4
  42. package/dist/{chunk-HVQGCKY4.js → chunk-C7WJNVJG.js} +2 -2
  43. package/dist/{chunk-WYZ5MYUA.js → chunk-CV7WXCZD.js} +44 -42
  44. package/dist/chunk-CV7WXCZD.js.map +1 -0
  45. package/dist/{chunk-KCQX65FU.js → chunk-CVYXIN5B.js} +3 -3
  46. package/dist/{chunk-VN45YLWM.js → chunk-D5UDZANO.js} +255 -132
  47. package/dist/chunk-D5UDZANO.js.map +1 -0
  48. package/dist/{chunk-AR2JDFAE.js → chunk-DJ23QZIN.js} +2 -2
  49. package/dist/{chunk-PJNTR2NV.js → chunk-DKYEVHZH.js} +7 -10
  50. package/dist/chunk-DKYEVHZH.js.map +1 -0
  51. package/dist/{chunk-SZ2K3MHL.js → chunk-DYASJSKI.js} +8 -11
  52. package/dist/{chunk-SZ2K3MHL.js.map → chunk-DYASJSKI.js.map} +1 -1
  53. package/dist/{chunk-G5APARUV.js → chunk-E6VDPBE3.js} +13 -15
  54. package/dist/chunk-E6VDPBE3.js.map +1 -0
  55. package/dist/{chunk-A67356IR.js → chunk-EG6AQBYW.js} +33 -8
  56. package/dist/chunk-EG6AQBYW.js.map +1 -0
  57. package/dist/{chunk-PVU7LW5L.js → chunk-EJIVFOOQ.js} +6 -6
  58. package/dist/{chunk-VRA4Q7DA.js → chunk-F5AJZC3U.js} +35 -47
  59. package/dist/chunk-F5AJZC3U.js.map +1 -0
  60. package/dist/{chunk-VMCCGUQB.js → chunk-GDGTIWB4.js} +2 -2
  61. package/dist/{chunk-FUHKW252.js → chunk-GILI76SU.js} +2 -2
  62. package/dist/{chunk-35EBKWQU.js → chunk-GT72D4FO.js} +4 -4
  63. package/dist/{chunk-PRDRGL73.js → chunk-GYUCRDAU.js} +17 -14
  64. package/dist/chunk-GYUCRDAU.js.map +1 -0
  65. package/dist/{chunk-JRCYZEHU.js → chunk-HGJC7I5F.js} +2 -2
  66. package/dist/{chunk-TOAIYQJR.js → chunk-HJRTFXAA.js} +7 -10
  67. package/dist/chunk-HJRTFXAA.js.map +1 -0
  68. package/dist/chunk-HK67PX4J.js +27 -0
  69. package/dist/chunk-HK67PX4J.js.map +1 -0
  70. package/dist/{chunk-JXIDGFKS.js → chunk-HTHRCGWP.js} +4 -2
  71. package/dist/chunk-HTHRCGWP.js.map +1 -0
  72. package/dist/{chunk-AHLJSVRL.js → chunk-HTMQBBF3.js} +5 -7
  73. package/dist/chunk-HTMQBBF3.js.map +1 -0
  74. package/dist/{chunk-ZNACADFG.js → chunk-ICCRAPWD.js} +4 -4
  75. package/dist/chunk-ICCRAPWD.js.map +1 -0
  76. package/dist/{chunk-66W5OOCX.js → chunk-IOURTXTM.js} +52 -65
  77. package/dist/chunk-IOURTXTM.js.map +1 -0
  78. package/dist/{chunk-MZ5ZFO2D.js → chunk-IPDS2TYW.js} +84 -112
  79. package/dist/chunk-IPDS2TYW.js.map +1 -0
  80. package/dist/{chunk-UIBGXRDD.js → chunk-JHO6FGZX.js} +25 -31
  81. package/dist/chunk-JHO6FGZX.js.map +1 -0
  82. package/dist/{chunk-YAWK6AWF.js → chunk-JIF3IBRK.js} +2 -2
  83. package/dist/{chunk-HNHCQ556.js → chunk-KBOPY6W2.js} +2 -2
  84. package/dist/{chunk-UHXCLPGC.js → chunk-KDX6VEYV.js} +2 -2
  85. package/dist/chunk-KDX6VEYV.js.map +1 -0
  86. package/dist/{chunk-W3TVWF6N.js → chunk-KM6YR5XF.js} +2 -2
  87. package/dist/{chunk-3737A6EA.js → chunk-KUXTWVAR.js} +75 -18
  88. package/dist/chunk-KUXTWVAR.js.map +1 -0
  89. package/dist/chunk-L2XQ776M.js +123 -0
  90. package/dist/chunk-L2XQ776M.js.map +1 -0
  91. package/dist/{chunk-E6427JU2.js → chunk-L6FSZFG7.js} +18 -2
  92. package/dist/chunk-L6FSZFG7.js.map +1 -0
  93. package/dist/{chunk-5PR33AC4.js → chunk-M4IKEOJS.js} +20 -17
  94. package/dist/chunk-M4IKEOJS.js.map +1 -0
  95. package/dist/{chunk-6HFM7EIT.js → chunk-MNMYHZVU.js} +2 -2
  96. package/dist/{chunk-NIVEDYJZ.js → chunk-MNUTPZRQ.js} +31 -49
  97. package/dist/chunk-MNUTPZRQ.js.map +1 -0
  98. package/dist/{chunk-VV4NSB7P.js → chunk-MQXYR65M.js} +15 -24
  99. package/dist/chunk-MQXYR65M.js.map +1 -0
  100. package/dist/{chunk-QD724WDJ.js → chunk-N2HKBESK.js} +4 -4
  101. package/dist/{chunk-Z45YRGFO.js → chunk-N7YAQKAO.js} +2 -2
  102. package/dist/{chunk-DMQCLZ4Z.js → chunk-NH2MST6J.js} +2 -2
  103. package/dist/{chunk-TAGFGKHP.js → chunk-NRNTXBHT.js} +7 -10
  104. package/dist/chunk-NRNTXBHT.js.map +1 -0
  105. package/dist/{chunk-I6SDX7WX.js → chunk-NYSD43OE.js} +16 -22
  106. package/dist/chunk-NYSD43OE.js.map +1 -0
  107. package/dist/{chunk-I4F6PKUK.js → chunk-ODVIFBAQ.js} +16 -17
  108. package/dist/chunk-ODVIFBAQ.js.map +1 -0
  109. package/dist/{chunk-26JMGSSC.js → chunk-OIIAXFKM.js} +4 -4
  110. package/dist/chunk-OIIAXFKM.js.map +1 -0
  111. package/dist/{chunk-HXGUIPQB.js → chunk-OQLYMBJI.js} +3 -3
  112. package/dist/{chunk-RKKORO4M.js → chunk-OWGEHDT2.js} +10 -10
  113. package/dist/chunk-OWGEHDT2.js.map +1 -0
  114. package/dist/{chunk-HNGSV2YC.js → chunk-P7L3OQLL.js} +25 -10
  115. package/dist/chunk-P7L3OQLL.js.map +1 -0
  116. package/dist/{chunk-MSWYQLMQ.js → chunk-PG6PFMDC.js} +2 -2
  117. package/dist/{chunk-E7OBCBXS.js → chunk-PNAIDIP7.js} +13 -16
  118. package/dist/chunk-PNAIDIP7.js.map +1 -0
  119. package/dist/{chunk-GLKDWWNO.js → chunk-PZSS7MUM.js} +16 -14
  120. package/dist/chunk-PZSS7MUM.js.map +1 -0
  121. package/dist/{chunk-WKPJXWKR.js → chunk-QPIUFRUC.js} +3 -3
  122. package/dist/{chunk-JIUVJ4M7.js → chunk-REL4OLWW.js} +2 -2
  123. package/dist/{chunk-ERB6NDDW.js → chunk-RKDH6L53.js} +134 -33
  124. package/dist/chunk-RKDH6L53.js.map +1 -0
  125. package/dist/{chunk-VW6ZZGCG.js → chunk-RNSC2ARR.js} +3 -3
  126. package/dist/{chunk-WLYIROCJ.js → chunk-RORE2GX2.js} +2 -2
  127. package/dist/{chunk-TDJPS3T2.js → chunk-RQY5UWEL.js} +24 -19
  128. package/dist/chunk-RQY5UWEL.js.map +1 -0
  129. package/dist/{chunk-7TSYBD3E.js → chunk-RSFG7XHM.js} +2 -2
  130. package/dist/{chunk-FAXZQ5UF.js → chunk-S55DBWRC.js} +2 -2
  131. package/dist/{chunk-WHJKIZS7.js → chunk-SA77BQ7F.js} +27 -149
  132. package/dist/chunk-SA77BQ7F.js.map +1 -0
  133. package/dist/{chunk-747LRSOO.js → chunk-SFD2LL7G.js} +2 -2
  134. package/dist/{chunk-P7OG2ETF.js → chunk-SG3OQCRG.js} +3 -3
  135. package/dist/{chunk-55LKVALY.js → chunk-T7IR4N2S.js} +1 -3
  136. package/dist/chunk-T7IR4N2S.js.map +1 -0
  137. package/dist/{chunk-EP7VPR7Y.js → chunk-TC6MBEGH.js} +11 -8
  138. package/dist/chunk-TC6MBEGH.js.map +1 -0
  139. package/dist/{chunk-HFQ6LGIO.js → chunk-TENLCGYD.js} +12 -10
  140. package/dist/{chunk-HFQ6LGIO.js.map → chunk-TENLCGYD.js.map} +1 -1
  141. package/dist/{chunk-WQDTCJ6W.js → chunk-VEX2BQVX.js} +3 -3
  142. package/dist/{chunk-7VHY5E3X.js → chunk-VH2W6BOG.js} +7 -7
  143. package/dist/chunk-VHVMJWM6.js +201 -0
  144. package/dist/chunk-VHVMJWM6.js.map +1 -0
  145. package/dist/{chunk-VCETL77O.js → chunk-VJ4B3ZXY.js} +27 -7
  146. package/dist/chunk-VJ4B3ZXY.js.map +1 -0
  147. package/dist/{chunk-OF3L2SD6.js → chunk-W6NFONOV.js} +2 -2
  148. package/dist/{chunk-NJDQ4YSV.js → chunk-WBNXZU42.js} +4 -4
  149. package/dist/{chunk-FNSMZQS4.js → chunk-WKD5ESK4.js} +2 -2
  150. package/dist/{chunk-NKH7GSIH.js → chunk-XGQGWZ6D.js} +4 -4
  151. package/dist/chunk-YOT7D63X.js +190 -0
  152. package/dist/chunk-YOT7D63X.js.map +1 -0
  153. package/dist/{chunk-4MC5JRRX.js → chunk-YVTADFTC.js} +14 -15
  154. package/dist/chunk-YVTADFTC.js.map +1 -0
  155. package/dist/{chunk-GASWQ3XG.js → chunk-ZBDWKPBW.js} +15 -16
  156. package/dist/chunk-ZBDWKPBW.js.map +1 -0
  157. package/dist/{chunk-52QYGZHH.js → chunk-ZPMXYPBR.js} +2 -2
  158. package/dist/chunk-ZPMXYPBR.js.map +1 -0
  159. package/dist/chunk-ZVAFJQZB.js +66 -0
  160. package/dist/chunk-ZVAFJQZB.js.map +1 -0
  161. package/dist/{chunk-VJFMXYKP.js → chunk-ZWKF3CD3.js} +2 -2
  162. package/dist/{chunk-I4ZAO7F7.js → chunk-ZXW3X3DQ.js} +7 -11
  163. package/dist/chunk-ZXW3X3DQ.js.map +1 -0
  164. package/dist/classified/index.js +5 -5
  165. package/dist/{classified-marker-FTOX7Q5L.js → classified-marker-PMDG3O36.js} +3 -3
  166. package/dist/collection-facade-ZJK5EB33.js +45 -0
  167. package/dist/{computed-6G5M3UPH.js → computed-UHCBRILW.js} +3 -3
  168. package/dist/consent/index.js +10 -10
  169. package/dist/cover/index.js +10 -3
  170. package/dist/custody/index.js +11 -11
  171. package/dist/{dead-filter-ENRIOQIE.js → dead-filter-777VWDER.js} +2 -2
  172. package/dist/debug/index.js +1 -1
  173. package/dist/{delegation-SSEPLXXO.js → delegation-4R5DU23X.js} +24 -23
  174. package/dist/delegation-4R5DU23X.js.map +1 -0
  175. package/dist/derivations/index.js +12 -12
  176. package/dist/derive-3WAS2G5T.js +22 -0
  177. package/dist/directory/index.js +10 -10
  178. package/dist/{dispatch-BDVGYC6X.js → dispatch-3EN6YCCS.js} +18 -18
  179. package/dist/{dispatch-RE74SH6L.js → dispatch-ASL257KG.js} +5 -5
  180. package/dist/{enclave-52VUXNRL.js → enclave-ZJS5R5RH.js} +25 -9
  181. package/dist/executor-GPM6DNWV.js +9 -0
  182. package/dist/executor-LJSMZ4IB.js +9 -0
  183. package/dist/executor-SHUVRZUJ.js +29 -0
  184. package/dist/export-accessible-GNY6DC6U.js +23 -0
  185. package/dist/extract-partition-BG3AF4NZ.js +38 -0
  186. package/dist/{fanout-sidecar-DTBIDOWF.js → fanout-sidecar-TFPWDOME.js} +18 -27
  187. package/dist/fanout-sidecar-TFPWDOME.js.map +1 -0
  188. package/dist/find-KX6OKHDP.js +11 -0
  189. package/dist/forget/index.js +9 -9
  190. package/dist/guards/index.js +4 -4
  191. package/dist/history/index.js +23 -20
  192. package/dist/history/index.js.map +1 -1
  193. package/dist/i18n/index.js +14 -14
  194. package/dist/index.d.ts +32 -15
  195. package/dist/index.js +183 -191
  196. package/dist/index.js.map +1 -1
  197. package/dist/indexing/index.js +2 -2
  198. package/dist/introspection/index.js +11 -11
  199. package/dist/issue-PAUM7NCX.js +19 -0
  200. package/dist/kernel/enclave/crypto.d.ts +24 -4
  201. package/dist/kernel/enclave/index.d.ts +8 -2
  202. package/dist/kernel/enclave/record-aad.d.ts +131 -0
  203. package/dist/kernel/enclave/record-envelope.d.ts +76 -0
  204. package/dist/kernel/enclave/record-keys/envelope-body.d.ts +34 -2
  205. package/dist/kernel/enclave/record-keys/lifecycle.d.ts +22 -5
  206. package/dist/kernel/enclave/record-keys/record-codec.d.ts +47 -14
  207. package/dist/kernel/enclave/record-keys/rekey.d.ts +68 -0
  208. package/dist/kernel/enclave/record-keys/tombstone.d.ts +3 -2
  209. package/dist/kernel/errors.d.ts +23 -11
  210. package/dist/kernel/merge-authority.d.ts +25 -0
  211. package/dist/kernel/noydb.d.ts +9 -3
  212. package/dist/kernel/query/builder.d.ts +15 -2
  213. package/dist/kernel/query/join.d.ts +27 -0
  214. package/dist/kernel/sync-policy.d.ts +0 -2
  215. package/dist/kernel/tier-visibility.d.ts +15 -0
  216. package/dist/kernel/types.d.ts +125 -6
  217. package/dist/kernel/vault.d.ts +21 -17
  218. package/dist/kernel/via/index.d.ts +11 -2
  219. package/dist/{ledger-4WJL66BW.js → ledger-62CEPRPX.js} +11 -11
  220. package/dist/liberate-I6AOLWXW.js +24 -0
  221. package/dist/{link-set-N4ZPV6E6.js → link-set-ZRYNUHN3.js} +11 -11
  222. package/dist/{managed-secret-OTHS64IF.js → managed-secret-T2WB4O47.js} +11 -3
  223. package/dist/materialized-views/index.js +22 -21
  224. package/dist/money/index.js +12 -8
  225. package/dist/noydb-SS6EN7TK.js +84 -0
  226. package/dist/overlay-views/index.js +4 -4
  227. package/dist/periods/index.js +22 -12
  228. package/dist/pod/index.js +75 -86
  229. package/dist/pod-handle-UPLXOGIK.js +41 -0
  230. package/dist/pod-handle-UPLXOGIK.js.map +1 -0
  231. package/dist/policy/index.js +11 -4
  232. package/dist/port/to/index.d.ts +4 -4
  233. package/dist/port/to/locator.d.ts +54 -8
  234. package/dist/port/with/i18n-strategy.d.ts +4 -1
  235. package/dist/port/with/lookup-strategy.d.ts +4 -1
  236. package/dist/port/with/merge-authority.d.ts +52 -0
  237. package/dist/port/with/service-bus.d.ts +0 -4
  238. package/dist/port/with/strategies.d.ts +2 -0
  239. package/dist/portability/index.js +8 -8
  240. package/dist/{post-register-ZAG2CAIY.js → post-register-J4DEVNXK.js} +6 -6
  241. package/dist/query/index.js +3 -3
  242. package/dist/reduce/index.js +4 -4
  243. package/dist/register-UPD4GKBC.js +32 -0
  244. package/dist/registry-7KX2HWFS.js +18 -0
  245. package/dist/registry-PKYYEHEW.js +9 -0
  246. package/dist/registry-XHCYMD34.js +19 -0
  247. package/dist/registry-XIRTZHPC.js +9 -0
  248. package/dist/request-withdrawal-XZSESWZV.js +31 -0
  249. package/dist/{reveal-CMOJY4VO.js → reveal-525XWQU2.js} +6 -6
  250. package/dist/revoke-QI7YHQ2B.js +24 -0
  251. package/dist/satellites/index.js +1 -1
  252. package/dist/schema-update/index.js +2 -2
  253. package/dist/sealed-record/index.js +20 -13
  254. package/dist/sealed-record/index.js.map +1 -1
  255. package/dist/search/index.js +4 -4
  256. package/dist/{seed-UK4QRIUN.js → seed-SGIF3EN4.js} +19 -22
  257. package/dist/seed-SGIF3EN4.js.map +1 -0
  258. package/dist/sequence/index.js +9 -9
  259. package/dist/session/index.js +10 -10
  260. package/dist/shadow/index.js +2 -2
  261. package/dist/share-link/index.js +1 -1
  262. package/dist/signer-BZWDPGGN.js +25 -0
  263. package/dist/snapshots/index.js +10 -10
  264. package/dist/snapshots/index.js.map +1 -1
  265. package/dist/{stale-ZWXSOWJI.js → stale-PQYPVCER.js} +10 -10
  266. package/dist/storage-MJHKNQRO.js +23 -0
  267. package/dist/{store-coordination-provider-PB6QZ57W.js → store-coordination-provider-TFHZLKHG.js} +18 -12
  268. package/dist/store-coordination-provider-TFHZLKHG.js.map +1 -0
  269. package/dist/sync/index.js +11 -11
  270. package/dist/team/index.js +15 -14
  271. package/dist/tiers/index.js +11 -10
  272. package/dist/to/index.js +17 -9
  273. package/dist/to/index.js.map +1 -1
  274. package/dist/transactions/index.js +4 -4
  275. package/dist/{ulid-PTAIMDG4.js → ulid-VQW6ERQN.js} +2 -2
  276. package/dist/util/index.js +1 -1
  277. package/dist/vault-head/index.js +115 -0
  278. package/dist/vault-head/index.js.map +1 -0
  279. package/dist/{verify-RO5RTZOJ.js → verify-J6DEOXP3.js} +5 -5
  280. package/dist/via/lookup/handle.d.ts +4 -1
  281. package/dist/via/money/exact.d.ts +44 -0
  282. package/dist/via/money/index.d.ts +2 -0
  283. package/dist/via/money/normalize.d.ts +20 -0
  284. package/dist/walk-BX4NSB5L.js +21 -0
  285. package/dist/with-audit/guards/immutable-guard.d.ts +14 -0
  286. package/dist/with-audit/periods/active.d.ts +28 -1
  287. package/dist/with-audit/periods/index.d.ts +4 -2
  288. package/dist/with-audit/periods/periods.d.ts +161 -6
  289. package/dist/with-audit/periods/strategy.d.ts +14 -5
  290. package/dist/with-audit/periods/vault-facade.d.ts +89 -10
  291. package/dist/with-audit/periods/window.d.ts +10 -0
  292. package/dist/with-audit/sealed-record/index.d.ts +13 -0
  293. package/dist/with-audit/tiers/index.d.ts +17 -2
  294. package/dist/with-cargo/adopt-partition.d.ts +1 -1
  295. package/dist/with-cargo/extract-partition.d.ts +1 -1
  296. package/dist/with-cargo/index.d.ts +2 -2
  297. package/dist/with-commit/history/history.d.ts +26 -0
  298. package/dist/with-commit/history/index.d.ts +2 -1
  299. package/dist/with-commit/history/ledger/store.d.ts +7 -1
  300. package/dist/with-commit/history/strategy.d.ts +11 -1
  301. package/dist/with-commit/numbering/index.d.ts +0 -5
  302. package/dist/with-commit/vault-head/active.d.ts +2 -0
  303. package/dist/with-commit/vault-head/head.d.ts +28 -0
  304. package/dist/with-commit/vault-head/index.d.ts +10 -0
  305. package/dist/with-commit/vault-head/strategy.d.ts +127 -0
  306. package/dist/with-commit/vault-head/verify.d.ts +90 -0
  307. package/dist/with-formula/materialized-views/types.d.ts +52 -0
  308. package/dist/with-party/directory/cover/storage.d.ts +0 -8
  309. package/dist/with-party/directory/storage.d.ts +0 -11
  310. package/dist/with-party/directory/visibility.d.ts +0 -21
  311. package/dist/with-party/policy/storage.d.ts +0 -10
  312. package/dist/with-party/team/index.d.ts +1 -1
  313. package/dist/with-party/team/keyring.d.ts +17 -3
  314. package/dist/with-party/team/tiers.d.ts +2 -1
  315. package/dist/with-pod/format.d.ts +10 -12
  316. package/dist/with-pod/index.d.ts +10 -10
  317. package/dist/with-pod/open.d.ts +2 -2
  318. package/dist/with-pod/pod-handle.d.ts +19 -0
  319. package/dist/with-pod/pod-store.d.ts +0 -8
  320. package/dist/with-pod/{bundle.d.ts → pod.d.ts} +26 -19
  321. package/dist/with-pod/ulid.d.ts +1 -1
  322. package/dist/with-shape/introspection/index.d.ts +1 -0
  323. package/dist/with-sync/engine.d.ts +54 -5
  324. package/dist/with-sync/strategy.d.ts +3 -0
  325. package/dist/withdraw-accessible-K4CPMH4C.js +28 -0
  326. package/package.json +12 -5
  327. package/dist/api-WVY3H3YH.js +0 -20
  328. package/dist/backup-YYBE5RPC.js.map +0 -1
  329. package/dist/bundle-handle-JEUWU2SJ.js +0 -36
  330. package/dist/bundle-handle-JEUWU2SJ.js.map +0 -1
  331. package/dist/chunk-26JMGSSC.js.map +0 -1
  332. package/dist/chunk-3737A6EA.js.map +0 -1
  333. package/dist/chunk-4MC5JRRX.js.map +0 -1
  334. package/dist/chunk-52QYGZHH.js.map +0 -1
  335. package/dist/chunk-55LKVALY.js.map +0 -1
  336. package/dist/chunk-5PR33AC4.js.map +0 -1
  337. package/dist/chunk-66W5OOCX.js.map +0 -1
  338. package/dist/chunk-7G6VDWXB.js.map +0 -1
  339. package/dist/chunk-A67356IR.js.map +0 -1
  340. package/dist/chunk-AFHQATY4.js +0 -47
  341. package/dist/chunk-AFHQATY4.js.map +0 -1
  342. package/dist/chunk-AHLJSVRL.js.map +0 -1
  343. package/dist/chunk-C2OOEM57.js.map +0 -1
  344. package/dist/chunk-DIMKRG2E.js +0 -131
  345. package/dist/chunk-DIMKRG2E.js.map +0 -1
  346. package/dist/chunk-E6427JU2.js.map +0 -1
  347. package/dist/chunk-E7OBCBXS.js.map +0 -1
  348. package/dist/chunk-EDXAQ6JI.js.map +0 -1
  349. package/dist/chunk-EP7VPR7Y.js.map +0 -1
  350. package/dist/chunk-ERB6NDDW.js.map +0 -1
  351. package/dist/chunk-G5APARUV.js.map +0 -1
  352. package/dist/chunk-GASWQ3XG.js.map +0 -1
  353. package/dist/chunk-GLKDWWNO.js.map +0 -1
  354. package/dist/chunk-HNGSV2YC.js.map +0 -1
  355. package/dist/chunk-I4F6PKUK.js.map +0 -1
  356. package/dist/chunk-I4ZAO7F7.js.map +0 -1
  357. package/dist/chunk-I6SDX7WX.js.map +0 -1
  358. package/dist/chunk-JXIDGFKS.js.map +0 -1
  359. package/dist/chunk-LWSJG3LI.js.map +0 -1
  360. package/dist/chunk-MWKDOHEF.js.map +0 -1
  361. package/dist/chunk-MZ5ZFO2D.js.map +0 -1
  362. package/dist/chunk-NIVEDYJZ.js.map +0 -1
  363. package/dist/chunk-NWCGDAV6.js +0 -45
  364. package/dist/chunk-NWCGDAV6.js.map +0 -1
  365. package/dist/chunk-PJNTR2NV.js.map +0 -1
  366. package/dist/chunk-PRDRGL73.js.map +0 -1
  367. package/dist/chunk-PY7CI6L5.js.map +0 -1
  368. package/dist/chunk-RKKORO4M.js.map +0 -1
  369. package/dist/chunk-TAGFGKHP.js.map +0 -1
  370. package/dist/chunk-TDJPS3T2.js.map +0 -1
  371. package/dist/chunk-TOAIYQJR.js.map +0 -1
  372. package/dist/chunk-UHXCLPGC.js.map +0 -1
  373. package/dist/chunk-UIBGXRDD.js.map +0 -1
  374. package/dist/chunk-V5KYPBUR.js.map +0 -1
  375. package/dist/chunk-VCETL77O.js.map +0 -1
  376. package/dist/chunk-VN45YLWM.js.map +0 -1
  377. package/dist/chunk-VOQW5LAM.js.map +0 -1
  378. package/dist/chunk-VRA4Q7DA.js.map +0 -1
  379. package/dist/chunk-VV4NSB7P.js.map +0 -1
  380. package/dist/chunk-W5W6KHN2.js.map +0 -1
  381. package/dist/chunk-WHJKIZS7.js.map +0 -1
  382. package/dist/chunk-WYZ5MYUA.js.map +0 -1
  383. package/dist/chunk-ZJADGNYF.js.map +0 -1
  384. package/dist/chunk-ZNACADFG.js.map +0 -1
  385. package/dist/collection-facade-QN5ULWYC.js +0 -45
  386. package/dist/delegation-SSEPLXXO.js.map +0 -1
  387. package/dist/derive-6V3PIZF7.js +0 -22
  388. package/dist/executor-CYJQLKKI.js +0 -9
  389. package/dist/executor-FHHLXO4Y.js +0 -28
  390. package/dist/executor-S4QIKEHW.js +0 -9
  391. package/dist/export-accessible-PE5AYKZR.js +0 -23
  392. package/dist/extract-partition-X2L26O6A.js +0 -38
  393. package/dist/fanout-sidecar-DTBIDOWF.js.map +0 -1
  394. package/dist/find-RBBYKXI7.js +0 -11
  395. package/dist/issue-RNU55YOF.js +0 -19
  396. package/dist/liberate-PX4CAT5V.js +0 -24
  397. package/dist/noydb-YPSEGK32.js +0 -83
  398. package/dist/register-TMD6YRCX.js +0 -32
  399. package/dist/registry-CZVINVQH.js +0 -9
  400. package/dist/registry-FVLDWQKT.js +0 -18
  401. package/dist/registry-IKUR2MXD.js +0 -9
  402. package/dist/registry-JET4HBLY.js +0 -19
  403. package/dist/request-withdrawal-RH55LNZL.js +0 -31
  404. package/dist/revoke-R5TBYVA6.js +0 -24
  405. package/dist/seed-UK4QRIUN.js.map +0 -1
  406. package/dist/signer-AGALOXOO.js +0 -25
  407. package/dist/storage-N7LB275C.js +0 -23
  408. package/dist/store-coordination-provider-PB6QZ57W.js.map +0 -1
  409. package/dist/walk-OCUHCYJ6.js +0 -21
  410. package/dist/with-pod/bundle-handle.d.ts +0 -9
  411. package/dist/withdraw-accessible-QQNWM5BO.js +0 -28
  412. /package/dist/{api-WVY3H3YH.js.map → api-Z5VHH24A.js.map} +0 -0
  413. /package/dist/{chunk-FDX7OWWI.js.map → chunk-2E2MKBMI.js.map} +0 -0
  414. /package/dist/{chunk-7F4DBNSP.js.map → chunk-5J5TTSGW.js.map} +0 -0
  415. /package/dist/{chunk-BTVYJWSN.js.map → chunk-5JT4Y5UE.js.map} +0 -0
  416. /package/dist/{chunk-7NXHMW6Y.js.map → chunk-7RCZ436O.js.map} +0 -0
  417. /package/dist/{chunk-DG27IUVI.js.map → chunk-A3NTKHDB.js.map} +0 -0
  418. /package/dist/{chunk-CCZJJ4I2.js.map → chunk-A4K5GLE6.js.map} +0 -0
  419. /package/dist/{chunk-CEJWMBXO.js.map → chunk-APV42WPR.js.map} +0 -0
  420. /package/dist/{chunk-4HDYQL3J.js.map → chunk-AQF7JSQR.js.map} +0 -0
  421. /package/dist/{chunk-KUDZVJKQ.js.map → chunk-BP4I7IBK.js.map} +0 -0
  422. /package/dist/{chunk-4UVDI4XE.js.map → chunk-BTNKPDZM.js.map} +0 -0
  423. /package/dist/{chunk-HVQGCKY4.js.map → chunk-C7WJNVJG.js.map} +0 -0
  424. /package/dist/{chunk-KCQX65FU.js.map → chunk-CVYXIN5B.js.map} +0 -0
  425. /package/dist/{chunk-AR2JDFAE.js.map → chunk-DJ23QZIN.js.map} +0 -0
  426. /package/dist/{chunk-PVU7LW5L.js.map → chunk-EJIVFOOQ.js.map} +0 -0
  427. /package/dist/{chunk-VMCCGUQB.js.map → chunk-GDGTIWB4.js.map} +0 -0
  428. /package/dist/{chunk-FUHKW252.js.map → chunk-GILI76SU.js.map} +0 -0
  429. /package/dist/{chunk-35EBKWQU.js.map → chunk-GT72D4FO.js.map} +0 -0
  430. /package/dist/{chunk-JRCYZEHU.js.map → chunk-HGJC7I5F.js.map} +0 -0
  431. /package/dist/{chunk-YAWK6AWF.js.map → chunk-JIF3IBRK.js.map} +0 -0
  432. /package/dist/{chunk-HNHCQ556.js.map → chunk-KBOPY6W2.js.map} +0 -0
  433. /package/dist/{chunk-W3TVWF6N.js.map → chunk-KM6YR5XF.js.map} +0 -0
  434. /package/dist/{chunk-6HFM7EIT.js.map → chunk-MNMYHZVU.js.map} +0 -0
  435. /package/dist/{chunk-QD724WDJ.js.map → chunk-N2HKBESK.js.map} +0 -0
  436. /package/dist/{chunk-Z45YRGFO.js.map → chunk-N7YAQKAO.js.map} +0 -0
  437. /package/dist/{chunk-DMQCLZ4Z.js.map → chunk-NH2MST6J.js.map} +0 -0
  438. /package/dist/{chunk-HXGUIPQB.js.map → chunk-OQLYMBJI.js.map} +0 -0
  439. /package/dist/{chunk-MSWYQLMQ.js.map → chunk-PG6PFMDC.js.map} +0 -0
  440. /package/dist/{chunk-WKPJXWKR.js.map → chunk-QPIUFRUC.js.map} +0 -0
  441. /package/dist/{chunk-JIUVJ4M7.js.map → chunk-REL4OLWW.js.map} +0 -0
  442. /package/dist/{chunk-VW6ZZGCG.js.map → chunk-RNSC2ARR.js.map} +0 -0
  443. /package/dist/{chunk-WLYIROCJ.js.map → chunk-RORE2GX2.js.map} +0 -0
  444. /package/dist/{chunk-7TSYBD3E.js.map → chunk-RSFG7XHM.js.map} +0 -0
  445. /package/dist/{chunk-FAXZQ5UF.js.map → chunk-S55DBWRC.js.map} +0 -0
  446. /package/dist/{chunk-747LRSOO.js.map → chunk-SFD2LL7G.js.map} +0 -0
  447. /package/dist/{chunk-P7OG2ETF.js.map → chunk-SG3OQCRG.js.map} +0 -0
  448. /package/dist/{chunk-WQDTCJ6W.js.map → chunk-VEX2BQVX.js.map} +0 -0
  449. /package/dist/{chunk-7VHY5E3X.js.map → chunk-VH2W6BOG.js.map} +0 -0
  450. /package/dist/{chunk-OF3L2SD6.js.map → chunk-W6NFONOV.js.map} +0 -0
  451. /package/dist/{chunk-NJDQ4YSV.js.map → chunk-WBNXZU42.js.map} +0 -0
  452. /package/dist/{chunk-FNSMZQS4.js.map → chunk-WKD5ESK4.js.map} +0 -0
  453. /package/dist/{chunk-NKH7GSIH.js.map → chunk-XGQGWZ6D.js.map} +0 -0
  454. /package/dist/{chunk-VJFMXYKP.js.map → chunk-ZWKF3CD3.js.map} +0 -0
  455. /package/dist/{classified-marker-FTOX7Q5L.js.map → classified-marker-PMDG3O36.js.map} +0 -0
  456. /package/dist/{collection-facade-QN5ULWYC.js.map → collection-facade-ZJK5EB33.js.map} +0 -0
  457. /package/dist/{computed-6G5M3UPH.js.map → computed-UHCBRILW.js.map} +0 -0
  458. /package/dist/{dead-filter-ENRIOQIE.js.map → dead-filter-777VWDER.js.map} +0 -0
  459. /package/dist/{derive-6V3PIZF7.js.map → derive-3WAS2G5T.js.map} +0 -0
  460. /package/dist/{dispatch-BDVGYC6X.js.map → dispatch-3EN6YCCS.js.map} +0 -0
  461. /package/dist/{dispatch-RE74SH6L.js.map → dispatch-ASL257KG.js.map} +0 -0
  462. /package/dist/{enclave-52VUXNRL.js.map → enclave-ZJS5R5RH.js.map} +0 -0
  463. /package/dist/{executor-CYJQLKKI.js.map → executor-GPM6DNWV.js.map} +0 -0
  464. /package/dist/{executor-FHHLXO4Y.js.map → executor-LJSMZ4IB.js.map} +0 -0
  465. /package/dist/{executor-S4QIKEHW.js.map → executor-SHUVRZUJ.js.map} +0 -0
  466. /package/dist/{export-accessible-PE5AYKZR.js.map → export-accessible-GNY6DC6U.js.map} +0 -0
  467. /package/dist/{extract-partition-X2L26O6A.js.map → extract-partition-BG3AF4NZ.js.map} +0 -0
  468. /package/dist/{find-RBBYKXI7.js.map → find-KX6OKHDP.js.map} +0 -0
  469. /package/dist/{issue-RNU55YOF.js.map → issue-PAUM7NCX.js.map} +0 -0
  470. /package/dist/{ledger-4WJL66BW.js.map → ledger-62CEPRPX.js.map} +0 -0
  471. /package/dist/{liberate-PX4CAT5V.js.map → liberate-I6AOLWXW.js.map} +0 -0
  472. /package/dist/{link-set-N4ZPV6E6.js.map → link-set-ZRYNUHN3.js.map} +0 -0
  473. /package/dist/{managed-secret-OTHS64IF.js.map → managed-secret-T2WB4O47.js.map} +0 -0
  474. /package/dist/{noydb-YPSEGK32.js.map → noydb-SS6EN7TK.js.map} +0 -0
  475. /package/dist/{post-register-ZAG2CAIY.js.map → post-register-J4DEVNXK.js.map} +0 -0
  476. /package/dist/{register-TMD6YRCX.js.map → register-UPD4GKBC.js.map} +0 -0
  477. /package/dist/{registry-CZVINVQH.js.map → registry-7KX2HWFS.js.map} +0 -0
  478. /package/dist/{registry-FVLDWQKT.js.map → registry-PKYYEHEW.js.map} +0 -0
  479. /package/dist/{registry-IKUR2MXD.js.map → registry-XHCYMD34.js.map} +0 -0
  480. /package/dist/{registry-JET4HBLY.js.map → registry-XIRTZHPC.js.map} +0 -0
  481. /package/dist/{request-withdrawal-RH55LNZL.js.map → request-withdrawal-XZSESWZV.js.map} +0 -0
  482. /package/dist/{reveal-CMOJY4VO.js.map → reveal-525XWQU2.js.map} +0 -0
  483. /package/dist/{revoke-R5TBYVA6.js.map → revoke-QI7YHQ2B.js.map} +0 -0
  484. /package/dist/{signer-AGALOXOO.js.map → signer-BZWDPGGN.js.map} +0 -0
  485. /package/dist/{stale-ZWXSOWJI.js.map → stale-PQYPVCER.js.map} +0 -0
  486. /package/dist/{storage-N7LB275C.js.map → storage-MJHKNQRO.js.map} +0 -0
  487. /package/dist/{ulid-PTAIMDG4.js.map → ulid-VQW6ERQN.js.map} +0 -0
  488. /package/dist/{verify-RO5RTZOJ.js.map → verify-J6DEOXP3.js.map} +0 -0
  489. /package/dist/{walk-OCUHCYJ6.js.map → walk-BX4NSB5L.js.map} +0 -0
  490. /package/dist/{withdraw-accessible-QQNWM5BO.js.map → withdraw-accessible-K4CPMH4C.js.map} +0 -0
@@ -52,3 +52,18 @@ export declare function assertTierWritable(adapter: NoydbStore, vault: string, n
52
52
  * explicit for concurrent writes generally.
53
53
  */
54
54
  export declare function assertCutoverTierSafe(adapter: NoydbStore, vault: string, name: string, tiersEnabled: boolean): Promise<void>;
55
+ /**
56
+ * The key a collection's DEK is stored under in `UnlockedKeyring.deks` for a
57
+ * given tier: `collection` at tier 0, `collection#N` above it.
58
+ *
59
+ * Lives in the kernel because the `deks` map is a kernel type and the kernel
60
+ * reads it — `noydb.ts` needs this to resolve the right DEK when verifying a
61
+ * pulled envelope (#1042). `with-party/team/tiers.ts` re-exports it, so every
62
+ * existing importer is unchanged; the definition simply moved to the layer that
63
+ * owns the map rather than one that happens to use it.
64
+ *
65
+ * This move was forced by `port-layering`, and rightly: the alternative was the
66
+ * kernel spine statically importing a `with-*` service, or duplicating the
67
+ * naming convention in two places where it could drift.
68
+ */
69
+ export declare function dekKey(collection: string, tier: number): string;
@@ -34,6 +34,7 @@ import type { PeriodsStrategy } from '../with-audit/periods/strategy.js';
34
34
  import type { ShadowStrategy } from '../with-fork/shadow/strategy.js';
35
35
  import type { TransactionsStrategy } from '../with-commit/tx/strategy.js';
36
36
  import type { HistoryStrategy } from '../with-commit/history/strategy.js';
37
+ import type { VaultHeadStrategy } from '../with-commit/vault-head/strategy.js';
37
38
  import type { ForgetStrategy } from '../with-audit/forget/strategy.js';
38
39
  import type { SnapshotsStrategy } from '../with-fork/snapshots/strategy.js';
39
40
  import type { DerivationSkippedFrozen } from './via/dispatch.js';
@@ -908,6 +909,21 @@ export interface KeyringFile {
908
909
  readonly role: Role;
909
910
  readonly permissions: Permissions;
910
911
  readonly deks: Record<string, string>;
912
+ /**
913
+ * DEKs for a rotation that has STARTED but not committed (#1074).
914
+ *
915
+ * `rotateKeys` persists the new DEK here *before* rewriting any record, so an
916
+ * interruption can never strand records under a key that was only ever in
917
+ * memory. On commit these move into `deks` and this is cleared.
918
+ *
919
+ * Present on disk ⇒ a rotation was interrupted and the collection may hold
920
+ * records on both sides of the migration. Re-running `rotateKeys` resumes
921
+ * with this key rather than minting a fresh one.
922
+ *
923
+ * Optional: absent on every keyring written before this existed, and absent
924
+ * in the normal committed state.
925
+ */
926
+ readonly pending_deks?: Record<string, string>;
911
927
  readonly salt: string;
912
928
  readonly created_at: string;
913
929
  readonly granted_by: string;
@@ -956,7 +972,7 @@ export interface KeyringFile {
956
972
  * "this slot works for 30 days then becomes opaque to its holder."
957
973
  *
958
974
  * Absent on live keyrings written via `db.grant()` — the field is
959
- * meaningful for `BundleRecipient` slots produced by
975
+ * meaningful for `PodRecipient` slots produced by
960
976
  * `writePod({ recipients: [...] })`. Setting it on a live
961
977
  * keyring is allowed but unusual.
962
978
  */
@@ -1284,9 +1300,38 @@ export interface SyncTransactionResult {
1284
1300
  }
1285
1301
  export interface SyncStatus {
1286
1302
  readonly dirty: number;
1303
+ /**
1304
+ * ISO 8601 timestamp of the last push that completed with **no errors**, or
1305
+ * `null` if none ever has (#1036). A failed attempt does not advance it — so
1306
+ * this answers "when did my data last reach the remote?", which is the reading
1307
+ * the name invites and the one the field previously did not honour.
1308
+ */
1287
1309
  readonly lastPush: string | null;
1310
+ /** As {@link SyncStatus.lastPush}, for pulls: last pull that had no errors. */
1288
1311
  readonly lastPull: string | null;
1312
+ /**
1313
+ * Whether the **browser** reports network connectivity — driven solely by the
1314
+ * global `online`/`offline` events (#1034). It is NOT target reachability: an
1315
+ * unreachable store never flips it, and losing Wi-Fi flips it for every target
1316
+ * at once. To detect a failing target, read {@link SyncStatus.lastError}.
1317
+ */
1289
1318
  readonly online: boolean;
1319
+ /**
1320
+ * The failure that ended the most recent push/pull, cleared by the next
1321
+ * success (#1036). **Absent** when nothing has failed since the last success —
1322
+ * so `lastPush: null` with no `lastError` means "never synced", while
1323
+ * `lastPush` set plus a `lastError` means "synced then, failing since".
1324
+ *
1325
+ * Live state, not persisted: a reload cannot know whether the target still
1326
+ * fails, so it starts absent until the next attempt says otherwise.
1327
+ */
1328
+ readonly lastError?: {
1329
+ /** ISO 8601 timestamp of the failed attempt. */
1330
+ readonly at: string;
1331
+ readonly op: 'push' | 'pull';
1332
+ /** Message of the first error the attempt collected. */
1333
+ readonly message: string;
1334
+ };
1290
1335
  /**
1291
1336
  * Per-collection readiness under a `'phased'` pull policy (#809). **Absent**
1292
1337
  * for every other policy, and a collection the sequence never names is absent
@@ -1329,6 +1374,41 @@ export interface SyncTarget {
1329
1374
  * (#948). Deliberately omits any preset *name* — a resolved `SyncPolicy` doesn't
1330
1375
  * retain which preset (if any) it came from, so only its push/pull mode is surfaced.
1331
1376
  */
1377
+ /**
1378
+ * Per-target sync state (#1034). `syncStatus()` answers for the vault as a
1379
+ * whole; this answers per target, which is what a redundant topology needs in
1380
+ * order to say "the LAN store is unavailable — syncing via the cloud" rather
1381
+ * than just "something is wrong".
1382
+ *
1383
+ * Deliberately carries **no `online` flag.** `SyncStatus.online` reflects the
1384
+ * *browser's* global connectivity — it is set only by the `online`/`offline`
1385
+ * window events and no store outcome ever changes it, so every engine flips at
1386
+ * once for the same reason. Exposing it per target would make a global signal
1387
+ * look per-target: a status list would appear to update row by row while every
1388
+ * row actually moved together. Per-target *reachability* derived from real
1389
+ * store outcomes is a separate, still-unbuilt thing.
1390
+ */
1391
+ export interface SyncTargetStatus {
1392
+ /** As registered. `undefined` when the target was declared without one. */
1393
+ readonly label: string | undefined;
1394
+ readonly role: SyncTargetRole;
1395
+ /** Pending local writes for this target. */
1396
+ readonly dirty: number;
1397
+ /** Last push that completed with no errors, or `null`. See {@link SyncStatus.lastPush}. */
1398
+ readonly lastPush: string | null;
1399
+ /** Last pull that completed with no errors, or `null`. */
1400
+ readonly lastPull: string | null;
1401
+ /**
1402
+ * Nothing queued for this target — `dirty === 0`.
1403
+ *
1404
+ * Well-defined for every role: for a `sync-peer` it means the two sides
1405
+ * agree as of the last exchange; for a push-only `backup` it means every
1406
+ * local write has reached it. It is a statement about the *outbound* queue
1407
+ * only, and says nothing about whether the target holds data this client has
1408
+ * not pulled.
1409
+ */
1410
+ readonly caughtUp: boolean;
1411
+ }
1332
1412
  export interface SyncTargetInfo {
1333
1413
  readonly label: string | undefined;
1334
1414
  readonly role: SyncTargetRole;
@@ -1544,7 +1624,6 @@ export interface UpdateUserOptions {
1544
1624
  }
1545
1625
  export interface RevokeOptions {
1546
1626
  readonly userId: string;
1547
- readonly rotateKeys?: boolean;
1548
1627
  /**
1549
1628
  * Cascade behavior when the revoked user is an admin who has granted
1550
1629
  * other admins.
@@ -1868,10 +1947,10 @@ export interface CrdtStrategy {
1868
1947
  * that operate on whole-vault bundles rather than per-record KV.
1869
1948
  *
1870
1949
  * Implement `readBundle` / `writeBundle` instead of the six-method KV
1871
- * contract. Use `wrapBundleStore()` from `@noy-db/hub` to convert to a
1950
+ * contract. Use `wrapPodStore()` from `@noy-db/hub` to convert to a
1872
1951
  * `NoydbStore` that the rest of the API consumes transparently.
1873
1952
  *
1874
- * Named `NoydbPodStore` (not `NoydbBundleAdapter`) for consistency
1953
+ * Named `NoydbPodStore` for consistency
1875
1954
  * with the hub / to-* / in-* rename. Concrete implementations ship
1876
1955
  * in `@noy-db/to-*` packages starting in.
1877
1956
  */
@@ -1907,8 +1986,6 @@ export interface NoydbPodStore {
1907
1986
  size: number;
1908
1987
  }>>;
1909
1988
  }
1910
- /** @deprecated Use `NoydbPodStore`. */
1911
- export type NoydbBundleStore = NoydbPodStore;
1912
1989
  /**
1913
1990
  * Content-addressed blob object stored in the vault-level blob index.
1914
1991
  * Identified by HMAC-SHA-256(blobDEK, plaintext) — opaque to the store.
@@ -2354,6 +2431,13 @@ export interface NoydbOptions {
2354
2431
  * @internal
2355
2432
  */
2356
2433
  readonly historyStrategy?: HistoryStrategy;
2434
+ /**
2435
+ * #1044 — opt in to the vault head, which detects a store that WITHHOLDS.
2436
+ * `withVaultHead()` from `@noy-db/hub/vault-head`. Costs one small write per
2437
+ * commit; on a single-device offline vault it defends against nothing, which
2438
+ * is why it is opt-in while AAD is not.
2439
+ */
2440
+ readonly vaultHeadStrategy?: VaultHeadStrategy;
2357
2441
  /**
2358
2442
  * GDPR right-to-erasure. Pass `withForget({ subjects })`
2359
2443
  * from `@noy-db/hub/forget` to declare which collections carry erasable
@@ -2516,6 +2600,41 @@ export interface NoydbOptions {
2516
2600
  * without a gated source instance and stay ungated.
2517
2601
  */
2518
2602
  readonly cargoStrategy?: CargoStrategy;
2603
+ /**
2604
+ * @deprecated renamed to `blobsStrategy` (#873).
2605
+ *
2606
+ * Declared as `never` on purpose — see the block note below.
2607
+ */
2608
+ readonly blobStrategy?: never;
2609
+ /**
2610
+ * @deprecated renamed to `indexingStrategy` (#873).
2611
+ *
2612
+ * Declared as `never` on purpose — see the block note below.
2613
+ */
2614
+ readonly indexStrategy?: never;
2615
+ /**
2616
+ * @deprecated renamed to `transactionsStrategy` (#873).
2617
+ *
2618
+ * Declared as `never` on purpose — see the block note below.
2619
+ */
2620
+ readonly txStrategy?: never;
2621
+ /**
2622
+ * @deprecated renamed to `reduceStrategy` (#873).
2623
+ *
2624
+ * The four keys above are the `#873` strategy-key renames, carried as
2625
+ * unusable `never` slots rather than simply deleted (#993).
2626
+ *
2627
+ * An ABSENT key is answered by TypeScript's excess-property check with the
2628
+ * nearest known key by edit distance, so `txStrategy` was reported as "Did
2629
+ * you mean to write `crdtStrategy`?" — a suggestion that silently enables a
2630
+ * CRDT strategy for a caller who trusts it. A DECLARED `never` key matches
2631
+ * exactly, so the compiler surfaces the `@deprecated` line naming the real
2632
+ * replacement instead of guessing.
2633
+ *
2634
+ * One release of carry; drop with the rest of the 0.4.0-pre compatibility
2635
+ * surface.
2636
+ */
2637
+ readonly aggregateStrategy?: never;
2519
2638
  /**
2520
2639
  * Optional guard strategies — collection-level write guards. Each
2521
2640
  * handle is the output of `withGuard()` from `@noy-db/hub/guards`.
@@ -6,7 +6,7 @@ import type { IssueDelegationOptions, DelegationToken } from '../with-party/team
6
6
  import { Collection } from './collection.js';
7
7
  import type { JoinableSource } from './query/index.js';
8
8
  import type { OnDirtyCallback } from './collection.js';
9
- import type { UnlockedKeyring, BundleRecipient } from '../with-party/team/keyring.js';
9
+ import type { UnlockedKeyring, PodRecipient } from '../with-party/team/keyring.js';
10
10
  import type { MaterializedViewRegistry } from '../with-formula/materialized-views/registry.js';
11
11
  import type { MaterializedViewStrategy } from '../with-formula/materialized-views/types.js';
12
12
  import type { OverlayedViewRegistry } from '../with-formula/overlay-views/registry.js';
@@ -29,6 +29,7 @@ import { type ForgetResult } from '../with-audit/forget/strategy.js';
29
29
  import { type SubjectRef } from '../with-audit/forget/subject-index.js';
30
30
  import type { VaultFrame } from '../with-fork/shadow/vault-frame.js';
31
31
  import type { ConsentContext, ConsentAuditEntry, ConsentAuditFilter, ConsentOp } from '../with-audit/consent/consent.js';
32
+ import { type PeriodScope, type PeriodGuardPrior, type ReopenPeriodOptions, type PeriodScopeWithReason } from '../with-audit/periods/vault-facade.js';
32
33
  import { type RefDescriptor, type RefViolation } from './refs.js';
33
34
  import type { DictionaryHandle, DictionaryOptions } from '../port/with/i18n-strategy.js';
34
35
  import { type LinkSpec, type LinkSetHandle } from '../with-shape/links/names.js';
@@ -41,7 +42,7 @@ import type { DerivationRegistry } from '../with-formula/derivations/registry.js
41
42
  import type { DerivationStrategy } from '../with-formula/derivations/types.js';
42
43
  import { type BehaviorSummary } from '../with-shape/introspection/behaviors.js';
43
44
  import type { JoinedHandle } from '../with-shape/satellites/types.js';
44
- import { type PeriodRecord, type ClosePeriodOptions, type OpenPeriodOptions } from '../with-audit/periods/index.js';
45
+ import { type PeriodRecord, type PeriodReopenEvent, type ClosePeriodOptions, type OpenPeriodOptions } from '../with-audit/periods/index.js';
45
46
  import { type EnclaveKey } from './enclave/index.js';
46
47
  import type { RecipientSealer } from '../with-party/team/managed-secret.js';
47
48
  import { type ExportBlobsOptions, type ExportBlobsHandle } from '../with-shape/blobs/export-blobs.js';
@@ -573,7 +574,7 @@ export declare class Vault {
573
574
  *
574
575
  * @public
575
576
  */
576
- buildBundleRecipientKeyrings(recipients: readonly BundleRecipient[]): Promise<Record<string, KeyringFile>>;
577
+ buildBundleRecipientKeyrings(recipients: readonly PodRecipient[]): Promise<Record<string, KeyringFile>>;
577
578
  /**
578
579
  * Authorize an `@noy-db/as-*` export against the current keyring's
579
580
  * `exportCapability`. Throws `ExportCapabilityError` if
@@ -744,7 +745,7 @@ export declare class Vault {
744
745
  *
745
746
  * @internal
746
747
  */
747
- _decryptEnvelopeForBundleFilter(env: EncryptedEnvelope, collectionName: string): Promise<unknown>;
748
+ _decryptEnvelopeForBundleFilter(env: EncryptedEnvelope, collectionName: string, recordId: string): Promise<unknown>;
748
749
  /**
749
750
  * Read-only accessor for the invoking keyring's import capability
750
751
  * (issue ). UI affordance — returns false in every default-closed
@@ -1236,10 +1237,10 @@ export declare class Vault {
1236
1237
  * both closed and opened entries in `closedAt` order.
1237
1238
  */
1238
1239
  openPeriod<TCollections extends Record<string, Record<string, unknown>>>(options: OpenPeriodOptions<TCollections>): Promise<PeriodRecord>;
1239
- /** Return every closed / opened period in `closedAt` order. */
1240
- listPeriods(): Promise<readonly PeriodRecord[]>;
1241
- /** Look up a single period by name. Returns `null` if not found. */
1242
- getPeriod(name: string): Promise<PeriodRecord | null>;
1240
+ /** Every closed / opened period in `closedAt` order; ALL timelines unless `{ partition }` scopes it (#1005). */
1241
+ listPeriods(options?: PeriodScope): Promise<readonly PeriodRecord[]>;
1242
+ /** One period by name within a timeline (vault-wide unless `{ partition }`). `null` if not found. */
1243
+ getPeriod(name: string, options?: PeriodScope): Promise<PeriodRecord | null>;
1243
1244
  /**
1244
1245
  * Freeze a closed period (#604): purges in-window delete markers and
1245
1246
  * records a `_period_freezes` companion, never mutating the chained
@@ -1248,7 +1249,7 @@ export declare class Vault {
1248
1249
  * and purging re-opens the #589 resurrection window for a peer offline
1249
1250
  * since before the cutoff (see periods.ts's "Freeze" section).
1250
1251
  */
1251
- freezePeriod(name: string): Promise<PeriodRecord>;
1252
+ freezePeriod(name: string, options?: PeriodScope): Promise<PeriodRecord>;
1252
1253
  /**
1253
1254
  * Archive a closed period (#613): relocates its in-window records from the
1254
1255
  * hot store to the configured cold tier (via the routeStore's cold route),
@@ -1256,7 +1257,7 @@ export declare class Vault {
1256
1257
  * the chained `_periods` record. Non-destructive (reads fall through to
1257
1258
  * cold) and idempotent. Requires a routeStore with a cold route.
1258
1259
  */
1259
- archivePeriod(name: string): Promise<PeriodRecord>;
1260
+ archivePeriod(name: string, options?: PeriodScope): Promise<PeriodRecord>;
1260
1261
  /**
1261
1262
  * Target-purge a closed+frozen period (#615): sweeps delete markers off the
1262
1263
  * vault's push-only sync targets (`backup`/`archive`), recording a
@@ -1265,12 +1266,15 @@ export declare class Vault {
1265
1266
  * frozen first. Idempotent; a vault with no push-only targets writes no
1266
1267
  * companion and is re-runnable.
1267
1268
  */
1268
- purgePeriodTargets(name: string): Promise<PeriodRecord>;
1269
+ purgePeriodTargets(name: string, options?: PeriodScope): Promise<PeriodRecord>;
1270
+ /** Return a closed period to writable (#1022); logged append-only, close chain untouched. */
1271
+ reopenPeriod(name: string, options?: ReopenPeriodOptions): Promise<PeriodRecord>;
1272
+ /** Seal a reopened period again (#1022) rather than waiting for its `until` to lapse. */
1273
+ reclosePeriod(name: string, options?: PeriodScopeWithReason): Promise<PeriodRecord>;
1274
+ /** The append-only reopen/reclose log for one period (#1022), in order. */
1275
+ listPeriodReopens(name: string, options?: PeriodScope): Promise<readonly PeriodReopenEvent[]>;
1269
1276
  /** @internal — called by the gate bus before put/delete. */
1270
- _assertTsWritable(existing: {
1271
- ts: string | null;
1272
- record: Record<string, unknown> | null;
1273
- } | null, incoming: Record<string, unknown> | null): Promise<void>;
1277
+ _assertTsWritable(existing: PeriodGuardPrior | null, incoming: Record<string, unknown> | null, collection?: string): Promise<void>;
1274
1278
  /** List all collection names in this vault. */
1275
1279
  collections(): Promise<string[]>;
1276
1280
  /**
@@ -1344,12 +1348,12 @@ export declare class Vault {
1344
1348
  * distinct handles, which is the right behavior — they're
1345
1349
  * separate vault instances now.
1346
1350
  */
1347
- getBundleHandle(): Promise<string>;
1351
+ getPodHandle(): Promise<string>;
1348
1352
  /**
1349
1353
  * Read the owner-curated cover for this vault (or `undefined` if
1350
1354
  * none is persisted). The cover lives in `_meta/public-envelope`
1351
1355
  * (the frozen wire name) as plaintext — readable without any KEK
1352
- * — so `getBundleHandle`-style callers can label a vault before
1356
+ * — so `getPodHandle`-style callers can label a vault before
1353
1357
  * unlock.
1354
1358
  *
1355
1359
  * Mirrors `Noydb.getCover(vault, opts)` but scoped to a
@@ -47,8 +47,17 @@ export interface ViaCryptoCtx {
47
47
  delete(field: string): Promise<void>;
48
48
  };
49
49
  reservedEnvelopes(prefix: string): {
50
- encrypt(collection: string, json: string, v: number): Promise<EncryptedEnvelope>;
51
- decrypt(collection: string, env: EncryptedEnvelope): Promise<string>;
50
+ /**
51
+ * `id` is the record id the envelope will be stored under. Required
52
+ * (#1051) because this function holds the DEK, so it is where record-identity
53
+ * AAD is applied — a caller that cannot name the id cannot be bound.
54
+ */
55
+ encrypt(identity: {
56
+ readonly collection: string;
57
+ readonly id: string;
58
+ readonly by?: string;
59
+ }, json: string, v: number): Promise<EncryptedEnvelope>;
60
+ decrypt(collection: string, id: string, env: EncryptedEnvelope): Promise<string>;
52
61
  };
53
62
  }
54
63
  /** Per-call erase context — `forget()`'s per-ref participation door (phase C). */
@@ -3,7 +3,7 @@ import {
3
3
  LedgerStore,
4
4
  applyPatch,
5
5
  computePatch
6
- } from "./chunk-NIVEDYJZ.js";
6
+ } from "./chunk-MNUTPZRQ.js";
7
7
  import {
8
8
  LEDGER_COLLECTION,
9
9
  LEDGER_DELTAS_COLLECTION
@@ -15,16 +15,16 @@ import {
15
15
  paddedIndex,
16
16
  parseIndex,
17
17
  sha256Hex
18
- } from "./chunk-VW6ZZGCG.js";
19
- import "./chunk-VN45YLWM.js";
20
- import "./chunk-NWCGDAV6.js";
21
- import "./chunk-HXGUIPQB.js";
22
- import "./chunk-AR2JDFAE.js";
23
- import "./chunk-747LRSOO.js";
18
+ } from "./chunk-RNSC2ARR.js";
19
+ import "./chunk-D5UDZANO.js";
20
+ import "./chunk-ZVAFJQZB.js";
21
+ import "./chunk-OQLYMBJI.js";
22
+ import "./chunk-DJ23QZIN.js";
23
+ import "./chunk-SFD2LL7G.js";
24
24
  import "./chunk-LP7BEXCT.js";
25
- import "./chunk-VCETL77O.js";
26
- import "./chunk-W5W6KHN2.js";
27
- import "./chunk-HNGSV2YC.js";
25
+ import "./chunk-VJ4B3ZXY.js";
26
+ import "./chunk-3Y4OFWQJ.js";
27
+ import "./chunk-P7L3OQLL.js";
28
28
  import "./chunk-PZ5AY32C.js";
29
29
  export {
30
30
  LEDGER_COLLECTION,
@@ -39,4 +39,4 @@ export {
39
39
  parseIndex,
40
40
  sha256Hex
41
41
  };
42
- //# sourceMappingURL=ledger-4WJL66BW.js.map
42
+ //# sourceMappingURL=ledger-62CEPRPX.js.map
@@ -0,0 +1,24 @@
1
+ import {
2
+ liberateVault
3
+ } from "./chunk-PNAIDIP7.js";
4
+ import "./chunk-TC6MBEGH.js";
5
+ import "./chunk-ZPMXYPBR.js";
6
+ import "./chunk-NRNTXBHT.js";
7
+ import "./chunk-2IK6AC6A.js";
8
+ import "./chunk-DYASJSKI.js";
9
+ import "./chunk-RKDH6L53.js";
10
+ import "./chunk-JHO6FGZX.js";
11
+ import "./chunk-D5UDZANO.js";
12
+ import "./chunk-ZVAFJQZB.js";
13
+ import "./chunk-OQLYMBJI.js";
14
+ import "./chunk-DJ23QZIN.js";
15
+ import "./chunk-SFD2LL7G.js";
16
+ import "./chunk-LP7BEXCT.js";
17
+ import "./chunk-VJ4B3ZXY.js";
18
+ import "./chunk-3Y4OFWQJ.js";
19
+ import "./chunk-P7L3OQLL.js";
20
+ import "./chunk-PZ5AY32C.js";
21
+ export {
22
+ liberateVault
23
+ };
24
+ //# sourceMappingURL=liberate-I6AOLWXW.js.map
@@ -1,23 +1,23 @@
1
1
  import {
2
2
  LinkEndpointError,
3
3
  LinkSet
4
- } from "./chunk-5PR33AC4.js";
4
+ } from "./chunk-M4IKEOJS.js";
5
5
  import {
6
6
  LINK_COLLECTION_PREFIX,
7
7
  LinkIntegrityError,
8
8
  isLinkCollectionName,
9
9
  linkCollectionName,
10
10
  linkRowKey
11
- } from "./chunk-HNHCQ556.js";
12
- import "./chunk-VN45YLWM.js";
13
- import "./chunk-NWCGDAV6.js";
14
- import "./chunk-HXGUIPQB.js";
15
- import "./chunk-AR2JDFAE.js";
16
- import "./chunk-747LRSOO.js";
11
+ } from "./chunk-KBOPY6W2.js";
12
+ import "./chunk-D5UDZANO.js";
13
+ import "./chunk-ZVAFJQZB.js";
14
+ import "./chunk-OQLYMBJI.js";
15
+ import "./chunk-DJ23QZIN.js";
16
+ import "./chunk-SFD2LL7G.js";
17
17
  import "./chunk-LP7BEXCT.js";
18
- import "./chunk-VCETL77O.js";
19
- import "./chunk-W5W6KHN2.js";
20
- import "./chunk-HNGSV2YC.js";
18
+ import "./chunk-VJ4B3ZXY.js";
19
+ import "./chunk-3Y4OFWQJ.js";
20
+ import "./chunk-P7L3OQLL.js";
21
21
  import "./chunk-PZ5AY32C.js";
22
22
  export {
23
23
  LINK_COLLECTION_PREFIX,
@@ -28,4 +28,4 @@ export {
28
28
  linkCollectionName,
29
29
  linkRowKey
30
30
  };
31
- //# sourceMappingURL=link-set-N4ZPV6E6.js.map
31
+ //# sourceMappingURL=link-set-ZRYNUHN3.js.map
@@ -9,8 +9,16 @@ import {
9
9
  resolveManagedSecret,
10
10
  saveSealedSecret,
11
11
  sealRsaOaepTlv
12
- } from "./chunk-TAGFGKHP.js";
13
- import "./chunk-W5W6KHN2.js";
12
+ } from "./chunk-NRNTXBHT.js";
13
+ import "./chunk-D5UDZANO.js";
14
+ import "./chunk-ZVAFJQZB.js";
15
+ import "./chunk-OQLYMBJI.js";
16
+ import "./chunk-DJ23QZIN.js";
17
+ import "./chunk-SFD2LL7G.js";
18
+ import "./chunk-LP7BEXCT.js";
19
+ import "./chunk-VJ4B3ZXY.js";
20
+ import "./chunk-3Y4OFWQJ.js";
21
+ import "./chunk-P7L3OQLL.js";
14
22
  import "./chunk-PZ5AY32C.js";
15
23
  export {
16
24
  MemoryRecipientSealer,
@@ -24,4 +32,4 @@ export {
24
32
  saveSealedSecret,
25
33
  sealRsaOaepTlv
26
34
  };
27
- //# sourceMappingURL=managed-secret-OTHS64IF.js.map
35
+ //# sourceMappingURL=managed-secret-T2WB4O47.js.map
@@ -1,47 +1,48 @@
1
1
  import {
2
2
  withMaterializedView
3
- } from "../chunk-CEJWMBXO.js";
3
+ } from "../chunk-APV42WPR.js";
4
+ import {
5
+ MaterializedViewExecutor
6
+ } from "../chunk-EG6AQBYW.js";
4
7
  import {
5
8
  clearMVStale,
6
9
  isMVStale,
7
10
  markMVStale,
8
11
  resolveStaleMVOnRead
9
- } from "../chunk-26JMGSSC.js";
10
- import {
11
- MaterializedViewExecutor
12
- } from "../chunk-A67356IR.js";
12
+ } from "../chunk-OIIAXFKM.js";
13
13
  import {
14
14
  MaterializedViewRegistry,
15
15
  analyzeDependencies,
16
16
  canonicalizeQueryPlan,
17
17
  computeQueryHash,
18
18
  summarizeQueryPlan
19
- } from "../chunk-7F4DBNSP.js";
20
- import "../chunk-CCZJJ4I2.js";
21
- import "../chunk-ZNACADFG.js";
19
+ } from "../chunk-5J5TTSGW.js";
20
+ import "../chunk-IPDS2TYW.js";
21
+ import "../chunk-ICCRAPWD.js";
22
22
  import "../chunk-5D2ALSM5.js";
23
- import "../chunk-E6427JU2.js";
23
+ import "../chunk-L6FSZFG7.js";
24
+ import "../chunk-A4K5GLE6.js";
24
25
  import "../chunk-XZHEOSQ2.js";
25
26
  import "../chunk-CADUYBQD.js";
26
27
  import "../chunk-IGJCYUT5.js";
27
- import "../chunk-PRDRGL73.js";
28
- import "../chunk-7G6VDWXB.js";
29
- import "../chunk-UHXCLPGC.js";
30
- import "../chunk-VW6ZZGCG.js";
31
- import "../chunk-VN45YLWM.js";
32
- import "../chunk-NWCGDAV6.js";
33
- import "../chunk-HXGUIPQB.js";
34
- import "../chunk-AR2JDFAE.js";
35
- import "../chunk-747LRSOO.js";
28
+ import "../chunk-GYUCRDAU.js";
29
+ import "../chunk-437FDIHO.js";
30
+ import "../chunk-KDX6VEYV.js";
31
+ import "../chunk-RNSC2ARR.js";
32
+ import "../chunk-D5UDZANO.js";
33
+ import "../chunk-ZVAFJQZB.js";
34
+ import "../chunk-OQLYMBJI.js";
35
+ import "../chunk-DJ23QZIN.js";
36
+ import "../chunk-SFD2LL7G.js";
36
37
  import "../chunk-LP7BEXCT.js";
37
- import "../chunk-VCETL77O.js";
38
- import "../chunk-W5W6KHN2.js";
38
+ import "../chunk-VJ4B3ZXY.js";
39
+ import "../chunk-3Y4OFWQJ.js";
39
40
  import {
40
41
  MaterializedViewConfigError,
41
42
  MaterializedViewCycleError,
42
43
  MaterializedViewSourceUnknownError,
43
44
  MaterializedViewTooLargeError
44
- } from "../chunk-HNGSV2YC.js";
45
+ } from "../chunk-P7L3OQLL.js";
45
46
  import "../chunk-PZ5AY32C.js";
46
47
  export {
47
48
  MaterializedViewConfigError,
@@ -1,19 +1,22 @@
1
+ import {
2
+ allocate,
3
+ asMoney,
4
+ isMoneyString,
5
+ moneyNumber,
6
+ mulRate
7
+ } from "../chunk-L2XQ776M.js";
1
8
  import {
2
9
  MoneyCurrencyError,
3
10
  MoneyPrecisionError,
4
11
  MoneyUnsupportedError,
5
- allocate,
6
- asMoney,
12
+ exactMath,
7
13
  isMoneyDescriptor,
8
- isMoneyString,
9
14
  money,
10
- moneyNumber,
11
- mulRate,
12
15
  scaleForCurrency
13
- } from "../chunk-MZ5ZFO2D.js";
16
+ } from "../chunk-IPDS2TYW.js";
14
17
  import "../chunk-IGJCYUT5.js";
15
- import "../chunk-UHXCLPGC.js";
16
- import "../chunk-HNGSV2YC.js";
18
+ import "../chunk-KDX6VEYV.js";
19
+ import "../chunk-P7L3OQLL.js";
17
20
  import "../chunk-PZ5AY32C.js";
18
21
  export {
19
22
  MoneyCurrencyError,
@@ -21,6 +24,7 @@ export {
21
24
  MoneyUnsupportedError,
22
25
  allocate,
23
26
  asMoney,
27
+ exactMath,
24
28
  isMoneyDescriptor,
25
29
  isMoneyString,
26
30
  money,