@noy-db/hub 0.3.0-pre.11 → 0.3.0-pre.12

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 (342) hide show
  1. package/dist/aggregate/index.js +4 -4
  2. package/dist/api-3TH2GOFQ.js +20 -0
  3. package/dist/as/index.js +11 -11
  4. package/dist/attestation/index.js +18 -18
  5. package/dist/{backup-XA5STIYQ.js → backup-2WVBIVXW.js} +11 -11
  6. package/dist/blobs/index.js +10 -10
  7. package/dist/broker/index.js +12 -12
  8. package/dist/bundle/index.js +20 -20
  9. package/dist/by/index.js +2 -2
  10. package/dist/cargo/index.js +22 -22
  11. package/dist/{chunk-C3YH34IL.js → chunk-2MTRJCBI.js} +3 -3
  12. package/dist/{chunk-HUS3J5WM.js → chunk-37WOJQWY.js} +2 -2
  13. package/dist/{chunk-IP2QBAGS.js → chunk-3QSOFZQB.js} +8 -8
  14. package/dist/{chunk-IDIV5NVH.js → chunk-44IL5G3W.js} +5 -5
  15. package/dist/{chunk-X6CMGUAG.js → chunk-45QPICLE.js} +2 -2
  16. package/dist/{chunk-BEIRE5K4.js → chunk-4BQXMCE5.js} +4 -4
  17. package/dist/{chunk-ODJWBC5I.js → chunk-5HNX4OD4.js} +2 -2
  18. package/dist/{chunk-TPH5EO6L.js → chunk-65VLRG3I.js} +2 -2
  19. package/dist/{chunk-RKRGDAS7.js → chunk-6MA575R5.js} +5 -5
  20. package/dist/{chunk-3CNQ7FQ3.js → chunk-6S7ENMRE.js} +119 -25
  21. package/dist/chunk-6S7ENMRE.js.map +1 -0
  22. package/dist/{chunk-VA4ZWLFY.js → chunk-7GAXFU2O.js} +2 -2
  23. package/dist/{chunk-5JB73NMC.js → chunk-7QLY64AD.js} +5 -5
  24. package/dist/{chunk-GA2QHD6P.js → chunk-7ZOSHEVS.js} +9 -9
  25. package/dist/{chunk-H44ZE4IE.js → chunk-AAIIDAUC.js} +33 -17
  26. package/dist/chunk-AAIIDAUC.js.map +1 -0
  27. package/dist/{chunk-H6HM6CVR.js → chunk-AKEOHKMT.js} +10 -7
  28. package/dist/{chunk-H6HM6CVR.js.map → chunk-AKEOHKMT.js.map} +1 -1
  29. package/dist/{chunk-YSXEFGND.js → chunk-APHLCXVC.js} +2 -2
  30. package/dist/{chunk-CB25ONKC.js → chunk-BDEMZD4F.js} +2 -2
  31. package/dist/{chunk-P5RY4ZWD.js → chunk-BDPAVYGJ.js} +9 -9
  32. package/dist/{chunk-DIRRS7WP.js → chunk-BLUT46UP.js} +2 -2
  33. package/dist/{chunk-5ZOSG3RJ.js → chunk-CCIR2OJH.js} +5 -5
  34. package/dist/{chunk-7E67FJ33.js → chunk-CXC3JLAQ.js} +2 -2
  35. package/dist/{chunk-AOVDSIL3.js → chunk-CZMCOFEA.js} +6 -6
  36. package/dist/{chunk-SRVQHVNX.js → chunk-DIB2BOIH.js} +5 -5
  37. package/dist/{chunk-7QIXUSDQ.js → chunk-DJ7MRXNA.js} +15 -12
  38. package/dist/chunk-DJ7MRXNA.js.map +1 -0
  39. package/dist/{chunk-DJ3VKYFA.js → chunk-EHW5KTTA.js} +4 -4
  40. package/dist/{chunk-25NDNMQ7.js → chunk-EIZ4YOG2.js} +3 -3
  41. package/dist/{chunk-IGJHJYM6.js → chunk-EVHBK7BN.js} +4 -4
  42. package/dist/{chunk-7VSGW5KJ.js → chunk-EXGDL2UQ.js} +2 -2
  43. package/dist/{chunk-L2SNBIV7.js → chunk-F3LGBRSV.js} +9 -9
  44. package/dist/{chunk-ELNBMFOS.js → chunk-F44XWXOA.js} +4 -4
  45. package/dist/{chunk-KPGX66PM.js → chunk-FF7S3XDW.js} +2 -2
  46. package/dist/{chunk-5XIPOCQC.js → chunk-FJTWLQV3.js} +3 -3
  47. package/dist/{chunk-YXOUQ2H7.js → chunk-FYNE4WLC.js} +2 -2
  48. package/dist/{chunk-FH542DDY.js → chunk-FZCGIJEJ.js} +1 -1
  49. package/dist/{chunk-FH542DDY.js.map → chunk-FZCGIJEJ.js.map} +1 -1
  50. package/dist/{chunk-57V5S7PW.js → chunk-GL3JV5EV.js} +6 -6
  51. package/dist/{chunk-ARSAMO24.js → chunk-GXLZXD2W.js} +2 -2
  52. package/dist/{chunk-QQJXBZCO.js → chunk-HA6ZQWA2.js} +8 -8
  53. package/dist/{chunk-OEAATWH5.js → chunk-HBBZWEC5.js} +6 -6
  54. package/dist/{chunk-2JMMY7HZ.js → chunk-HG76BZ6G.js} +6 -6
  55. package/dist/{chunk-45ZZLTFH.js → chunk-HGAB325C.js} +2 -2
  56. package/dist/{chunk-WTUNZACT.js → chunk-HIOLCOK3.js} +2 -2
  57. package/dist/{chunk-C7NTK5I3.js → chunk-HK4XTXO4.js} +4 -4
  58. package/dist/{chunk-UFILRICG.js → chunk-HYG32HCM.js} +2 -2
  59. package/dist/{chunk-PXWVF7MC.js → chunk-ILF5GARW.js} +7 -7
  60. package/dist/{chunk-HFJIGWJC.js → chunk-INBQ43DI.js} +3 -3
  61. package/dist/{chunk-DMFNPHCX.js → chunk-IQIVD7TP.js} +6 -6
  62. package/dist/{chunk-FQQF23MC.js → chunk-J3JIYFYL.js} +2 -2
  63. package/dist/{chunk-CKZW6P5V.js → chunk-JC75UBMT.js} +1 -1
  64. package/dist/chunk-JC75UBMT.js.map +1 -0
  65. package/dist/{chunk-4N5QFSNQ.js → chunk-JGUZMC3I.js} +5 -5
  66. package/dist/{chunk-ZP5PL65C.js → chunk-JRKE5MAZ.js} +2 -2
  67. package/dist/{chunk-JOQ53DMI.js → chunk-K2DLLK34.js} +3 -3
  68. package/dist/{chunk-4R4Q64W5.js → chunk-KKYEZCQG.js} +2 -2
  69. package/dist/{chunk-D26JB3LZ.js → chunk-NAR6IDKH.js} +2 -2
  70. package/dist/{chunk-7NS43EXZ.js → chunk-NEYKOESM.js} +5 -5
  71. package/dist/{chunk-SYMS4546.js → chunk-NM3IFKBL.js} +2 -2
  72. package/dist/{chunk-OOLO4LQG.js → chunk-NRYNRSGV.js} +6 -6
  73. package/dist/{chunk-D3EFFFOL.js → chunk-NT2ZO4KI.js} +5 -5
  74. package/dist/{chunk-QLLKLFE2.js → chunk-P2LJI6JE.js} +2 -2
  75. package/dist/{chunk-K62IUKOD.js → chunk-PH7G7ZI7.js} +5 -5
  76. package/dist/{chunk-A2Y6YFVN.js → chunk-PN5332SU.js} +2 -2
  77. package/dist/{chunk-BCYQA5BK.js → chunk-QF5LGMSV.js} +2 -2
  78. package/dist/{chunk-VR24ILCR.js → chunk-QG5RQQBO.js} +3 -3
  79. package/dist/{chunk-O2DYPAZY.js → chunk-QYPDYN23.js} +2 -2
  80. package/dist/{chunk-DGH65E7Q.js → chunk-R3NHNVS5.js} +16 -4
  81. package/dist/chunk-R3NHNVS5.js.map +1 -0
  82. package/dist/{chunk-MELR46EF.js → chunk-RNXJ2VO6.js} +5 -5
  83. package/dist/{chunk-UTLEAJXC.js → chunk-RXTMLYJS.js} +2 -2
  84. package/dist/{chunk-XHV25KBM.js → chunk-S2OWPVSO.js} +2 -2
  85. package/dist/{chunk-6QILBDZU.js → chunk-S7TAPIRS.js} +3 -3
  86. package/dist/{chunk-Q3XSMOZM.js → chunk-SAL5X5OK.js} +2 -2
  87. package/dist/{chunk-XFXUTFWQ.js → chunk-SGJGWBSC.js} +6 -6
  88. package/dist/{chunk-7ITPJFGC.js → chunk-SIAIYP6G.js} +2 -2
  89. package/dist/{chunk-H6CZSDWK.js → chunk-SXPCZ6LL.js} +3 -3
  90. package/dist/{chunk-H6CZSDWK.js.map → chunk-SXPCZ6LL.js.map} +1 -1
  91. package/dist/{chunk-QYPKGVT4.js → chunk-TBNF5DV5.js} +3 -3
  92. package/dist/{chunk-CIKY6I4W.js → chunk-TVOHSPVK.js} +2 -2
  93. package/dist/{chunk-AWB5JZW6.js → chunk-TVS6BUUR.js} +2 -2
  94. package/dist/{chunk-BZO4WCJI.js → chunk-UMC5QZTX.js} +4 -4
  95. package/dist/{chunk-MCEKIAO4.js → chunk-US34HTOI.js} +3 -3
  96. package/dist/{chunk-BE7N3AXA.js → chunk-VCUQR6ZL.js} +3 -3
  97. package/dist/{chunk-W5D62AQD.js → chunk-VXZNSPJM.js} +20 -7
  98. package/dist/chunk-VXZNSPJM.js.map +1 -0
  99. package/dist/{chunk-OFJ5GPNA.js → chunk-WEHIQYQH.js} +2 -2
  100. package/dist/{chunk-PR5LC5YX.js → chunk-WHQHTNT7.js} +4 -4
  101. package/dist/{chunk-3MSQLQNZ.js → chunk-X6Y5MXTH.js} +2 -2
  102. package/dist/{chunk-3G4KMVUN.js → chunk-XJ47GS53.js} +3 -3
  103. package/dist/{chunk-MSPNM2OM.js → chunk-XS6DLN67.js} +3 -3
  104. package/dist/{chunk-FXK4X4BL.js → chunk-Y5TWPBNW.js} +4 -4
  105. package/dist/{chunk-A2QF4JUE.js → chunk-YCXKFB7J.js} +208 -100
  106. package/dist/chunk-YCXKFB7J.js.map +1 -0
  107. package/dist/{chunk-67TNU77I.js → chunk-ZHOJOT6S.js} +2 -2
  108. package/dist/{chunk-WGV4CUZT.js → chunk-ZL6PRULX.js} +4 -4
  109. package/dist/{chunk-WGV4CUZT.js.map → chunk-ZL6PRULX.js.map} +1 -1
  110. package/dist/classified/index.js +5 -5
  111. package/dist/{classified-marker-LQWWQNIJ.js → classified-marker-M7K3OJPM.js} +8 -4
  112. package/dist/classified-marker-M7K3OJPM.js.map +1 -0
  113. package/dist/collection-facade-DWA735G2.js +39 -0
  114. package/dist/{computed-W6MVAMWZ.js → computed-ORCGM5JE.js} +3 -3
  115. package/dist/consent/index.js +9 -9
  116. package/dist/{dead-filter-4KXZEB3X.js → dead-filter-OV5FGKOG.js} +2 -2
  117. package/dist/delegation-YVSHMIZZ.js +25 -0
  118. package/dist/derivations/index.js +12 -12
  119. package/dist/derive-BUO555L5.js +21 -0
  120. package/dist/{enclave-VXAQD4XJ.js → enclave-XXFUKJC6.js} +9 -9
  121. package/dist/executor-6OCCE5VM.js +25 -0
  122. package/dist/executor-JFVAJY42.js +9 -0
  123. package/dist/executor-UPSH5O3F.js +9 -0
  124. package/dist/export-accessible-L4A2QZA5.js +23 -0
  125. package/dist/extract-partition-ZHQ4RGGM.js +36 -0
  126. package/dist/{fanout-sidecar-CKYFH33E.js → fanout-sidecar-IO2KDUWV.js} +9 -9
  127. package/dist/find-ZFZDZQ2U.js +11 -0
  128. package/dist/forget/index.js +9 -9
  129. package/dist/guards/index.js +3 -3
  130. package/dist/history/index.js +11 -11
  131. package/dist/i18n/index.js +14 -14
  132. package/dist/index.js +84 -84
  133. package/dist/index.js.map +1 -1
  134. package/dist/indexing/index.js +5 -5
  135. package/dist/indexing/index.js.map +1 -1
  136. package/dist/issue-OG4V23SQ.js +19 -0
  137. package/dist/kernel/best-effort-revert.d.ts +52 -0
  138. package/dist/kernel/collection-config.d.ts +8 -0
  139. package/dist/kernel/collection.d.ts +18 -4
  140. package/dist/kernel/errors.d.ts +1 -1
  141. package/dist/kernel/noydb.d.ts +8 -0
  142. package/dist/kernel/types.d.ts +19 -0
  143. package/dist/kernel/vault.d.ts +15 -1
  144. package/dist/kernel/via/graph.d.ts +2 -1
  145. package/dist/{ledger-FU6GH5EH.js → ledger-UAQKPWNM.js} +11 -11
  146. package/dist/liberate-GFUQJRK5.js +24 -0
  147. package/dist/{link-set-MNADSH5M.js → link-set-DGYUOFVD.js} +11 -11
  148. package/dist/materialized-views/index.js +18 -18
  149. package/dist/noydb-AKH4AMCR.js +67 -0
  150. package/dist/on/index.js +9 -9
  151. package/dist/overlay-views/index.js +4 -4
  152. package/dist/periods/index.js +12 -12
  153. package/dist/pod/index.js +11 -11
  154. package/dist/{policy-JTFOPPUU.js → policy-5POYLI26.js} +5 -5
  155. package/dist/port/with/lookup-strategy.d.ts +2 -1
  156. package/dist/portability/index.js +8 -8
  157. package/dist/{post-register-HAWO3O7O.js → post-register-LB3P4XQU.js} +12 -7
  158. package/dist/post-register-LB3P4XQU.js.map +1 -0
  159. package/dist/{public-envelope-NJVB7LPA.js → public-envelope-GOG4LUM7.js} +4 -4
  160. package/dist/query/index.js +5 -5
  161. package/dist/register-ZI7YI7US.js +23 -0
  162. package/dist/registry-DZ2T4LL7.js +9 -0
  163. package/dist/registry-NVWEQ2GU.js +18 -0
  164. package/dist/registry-SEKL74ET.js +19 -0
  165. package/dist/request-withdrawal-ZP3JIRVS.js +31 -0
  166. package/dist/{reveal-BOY7XYFH.js → reveal-NPVROV4D.js} +6 -6
  167. package/dist/revoke-VF6TAJK2.js +24 -0
  168. package/dist/satellites/index.js +1 -1
  169. package/dist/sealed-record/index.js +12 -12
  170. package/dist/{seed-4RRXT42N.js → seed-VI4FU7UH.js} +11 -11
  171. package/dist/session/index.js +9 -9
  172. package/dist/shadow/index.js +2 -2
  173. package/dist/signer-DRDDCCHW.js +25 -0
  174. package/dist/snapshots/index.js +10 -10
  175. package/dist/{stale-NXPT56JA.js → stale-TJXFQKOJ.js} +2 -2
  176. package/dist/storage-GR7KZRH4.js +23 -0
  177. package/dist/{store-coordination-provider-HPYVFJCV.js → store-coordination-provider-5KDS2RRP.js} +3 -3
  178. package/dist/sync/index.js +9 -9
  179. package/dist/team/index.js +15 -15
  180. package/dist/tiers/index.js +10 -10
  181. package/dist/to/index.js +1 -1
  182. package/dist/tx/index.js +3 -3
  183. package/dist/util/index.js +1 -1
  184. package/dist/{verify-66RHOW7N.js → verify-QK76NJ4G.js} +5 -5
  185. package/dist/via/lookup/registry.d.ts +9 -0
  186. package/dist/via/money/where.d.ts +27 -6
  187. package/dist/{walk-2RWEOCAS.js → walk-XQCBKSBW.js} +11 -11
  188. package/dist/with/index.js +11 -11
  189. package/dist/with-commit/tx/transaction.d.ts +5 -0
  190. package/dist/with-lookup/indexing/lazy-builder.d.ts +35 -2
  191. package/dist/with-lookup/indexing/persisted-indexes.d.ts +44 -1
  192. package/dist/with-party/team/sync.d.ts +9 -0
  193. package/dist/with-shape/satellites/fanout.d.ts +5 -4
  194. package/dist/with-shape/satellites/migrate-cek.d.ts +26 -0
  195. package/dist/with-shape/satellites/types.d.ts +11 -0
  196. package/dist/withdraw-accessible-FMN4LPJZ.js +28 -0
  197. package/package.json +3 -3
  198. package/dist/api-YGMINAET.js +0 -20
  199. package/dist/chunk-3CNQ7FQ3.js.map +0 -1
  200. package/dist/chunk-7QIXUSDQ.js.map +0 -1
  201. package/dist/chunk-A2QF4JUE.js.map +0 -1
  202. package/dist/chunk-CKZW6P5V.js.map +0 -1
  203. package/dist/chunk-DGH65E7Q.js.map +0 -1
  204. package/dist/chunk-H44ZE4IE.js.map +0 -1
  205. package/dist/chunk-W5D62AQD.js.map +0 -1
  206. package/dist/classified-marker-LQWWQNIJ.js.map +0 -1
  207. package/dist/collection-facade-YE2O4J4O.js +0 -39
  208. package/dist/delegation-OPUU3R2E.js +0 -25
  209. package/dist/derive-BGUHU663.js +0 -21
  210. package/dist/executor-GTVSUUBX.js +0 -25
  211. package/dist/executor-GZWMTOXB.js +0 -9
  212. package/dist/executor-XXGS4S3K.js +0 -9
  213. package/dist/export-accessible-BMULIOYB.js +0 -23
  214. package/dist/extract-partition-JUQTWDXR.js +0 -36
  215. package/dist/find-XRGCNGNN.js +0 -11
  216. package/dist/issue-UB6AA5M6.js +0 -19
  217. package/dist/liberate-YUN7W5QG.js +0 -24
  218. package/dist/noydb-6JLBZU4U.js +0 -67
  219. package/dist/post-register-HAWO3O7O.js.map +0 -1
  220. package/dist/register-VCKOBWKT.js +0 -23
  221. package/dist/registry-72UKJ2L4.js +0 -9
  222. package/dist/registry-BZFLJNEH.js +0 -18
  223. package/dist/registry-YJEYSYI5.js +0 -19
  224. package/dist/request-withdrawal-6MJRMFHF.js +0 -31
  225. package/dist/revoke-4KUNSVJC.js +0 -24
  226. package/dist/signer-DDDXP5JD.js +0 -25
  227. package/dist/storage-IR6EEAV2.js +0 -23
  228. package/dist/withdraw-accessible-CLMZEHQT.js +0 -28
  229. /package/dist/{api-YGMINAET.js.map → api-3TH2GOFQ.js.map} +0 -0
  230. /package/dist/{backup-XA5STIYQ.js.map → backup-2WVBIVXW.js.map} +0 -0
  231. /package/dist/{chunk-C3YH34IL.js.map → chunk-2MTRJCBI.js.map} +0 -0
  232. /package/dist/{chunk-HUS3J5WM.js.map → chunk-37WOJQWY.js.map} +0 -0
  233. /package/dist/{chunk-IP2QBAGS.js.map → chunk-3QSOFZQB.js.map} +0 -0
  234. /package/dist/{chunk-IDIV5NVH.js.map → chunk-44IL5G3W.js.map} +0 -0
  235. /package/dist/{chunk-X6CMGUAG.js.map → chunk-45QPICLE.js.map} +0 -0
  236. /package/dist/{chunk-BEIRE5K4.js.map → chunk-4BQXMCE5.js.map} +0 -0
  237. /package/dist/{chunk-ODJWBC5I.js.map → chunk-5HNX4OD4.js.map} +0 -0
  238. /package/dist/{chunk-TPH5EO6L.js.map → chunk-65VLRG3I.js.map} +0 -0
  239. /package/dist/{chunk-RKRGDAS7.js.map → chunk-6MA575R5.js.map} +0 -0
  240. /package/dist/{chunk-VA4ZWLFY.js.map → chunk-7GAXFU2O.js.map} +0 -0
  241. /package/dist/{chunk-5JB73NMC.js.map → chunk-7QLY64AD.js.map} +0 -0
  242. /package/dist/{chunk-GA2QHD6P.js.map → chunk-7ZOSHEVS.js.map} +0 -0
  243. /package/dist/{chunk-YSXEFGND.js.map → chunk-APHLCXVC.js.map} +0 -0
  244. /package/dist/{chunk-CB25ONKC.js.map → chunk-BDEMZD4F.js.map} +0 -0
  245. /package/dist/{chunk-P5RY4ZWD.js.map → chunk-BDPAVYGJ.js.map} +0 -0
  246. /package/dist/{chunk-DIRRS7WP.js.map → chunk-BLUT46UP.js.map} +0 -0
  247. /package/dist/{chunk-5ZOSG3RJ.js.map → chunk-CCIR2OJH.js.map} +0 -0
  248. /package/dist/{chunk-7E67FJ33.js.map → chunk-CXC3JLAQ.js.map} +0 -0
  249. /package/dist/{chunk-AOVDSIL3.js.map → chunk-CZMCOFEA.js.map} +0 -0
  250. /package/dist/{chunk-SRVQHVNX.js.map → chunk-DIB2BOIH.js.map} +0 -0
  251. /package/dist/{chunk-DJ3VKYFA.js.map → chunk-EHW5KTTA.js.map} +0 -0
  252. /package/dist/{chunk-25NDNMQ7.js.map → chunk-EIZ4YOG2.js.map} +0 -0
  253. /package/dist/{chunk-IGJHJYM6.js.map → chunk-EVHBK7BN.js.map} +0 -0
  254. /package/dist/{chunk-7VSGW5KJ.js.map → chunk-EXGDL2UQ.js.map} +0 -0
  255. /package/dist/{chunk-L2SNBIV7.js.map → chunk-F3LGBRSV.js.map} +0 -0
  256. /package/dist/{chunk-ELNBMFOS.js.map → chunk-F44XWXOA.js.map} +0 -0
  257. /package/dist/{chunk-KPGX66PM.js.map → chunk-FF7S3XDW.js.map} +0 -0
  258. /package/dist/{chunk-5XIPOCQC.js.map → chunk-FJTWLQV3.js.map} +0 -0
  259. /package/dist/{chunk-YXOUQ2H7.js.map → chunk-FYNE4WLC.js.map} +0 -0
  260. /package/dist/{chunk-57V5S7PW.js.map → chunk-GL3JV5EV.js.map} +0 -0
  261. /package/dist/{chunk-ARSAMO24.js.map → chunk-GXLZXD2W.js.map} +0 -0
  262. /package/dist/{chunk-QQJXBZCO.js.map → chunk-HA6ZQWA2.js.map} +0 -0
  263. /package/dist/{chunk-OEAATWH5.js.map → chunk-HBBZWEC5.js.map} +0 -0
  264. /package/dist/{chunk-2JMMY7HZ.js.map → chunk-HG76BZ6G.js.map} +0 -0
  265. /package/dist/{chunk-45ZZLTFH.js.map → chunk-HGAB325C.js.map} +0 -0
  266. /package/dist/{chunk-WTUNZACT.js.map → chunk-HIOLCOK3.js.map} +0 -0
  267. /package/dist/{chunk-C7NTK5I3.js.map → chunk-HK4XTXO4.js.map} +0 -0
  268. /package/dist/{chunk-UFILRICG.js.map → chunk-HYG32HCM.js.map} +0 -0
  269. /package/dist/{chunk-PXWVF7MC.js.map → chunk-ILF5GARW.js.map} +0 -0
  270. /package/dist/{chunk-HFJIGWJC.js.map → chunk-INBQ43DI.js.map} +0 -0
  271. /package/dist/{chunk-DMFNPHCX.js.map → chunk-IQIVD7TP.js.map} +0 -0
  272. /package/dist/{chunk-FQQF23MC.js.map → chunk-J3JIYFYL.js.map} +0 -0
  273. /package/dist/{chunk-4N5QFSNQ.js.map → chunk-JGUZMC3I.js.map} +0 -0
  274. /package/dist/{chunk-ZP5PL65C.js.map → chunk-JRKE5MAZ.js.map} +0 -0
  275. /package/dist/{chunk-JOQ53DMI.js.map → chunk-K2DLLK34.js.map} +0 -0
  276. /package/dist/{chunk-4R4Q64W5.js.map → chunk-KKYEZCQG.js.map} +0 -0
  277. /package/dist/{chunk-D26JB3LZ.js.map → chunk-NAR6IDKH.js.map} +0 -0
  278. /package/dist/{chunk-7NS43EXZ.js.map → chunk-NEYKOESM.js.map} +0 -0
  279. /package/dist/{chunk-SYMS4546.js.map → chunk-NM3IFKBL.js.map} +0 -0
  280. /package/dist/{chunk-OOLO4LQG.js.map → chunk-NRYNRSGV.js.map} +0 -0
  281. /package/dist/{chunk-D3EFFFOL.js.map → chunk-NT2ZO4KI.js.map} +0 -0
  282. /package/dist/{chunk-QLLKLFE2.js.map → chunk-P2LJI6JE.js.map} +0 -0
  283. /package/dist/{chunk-K62IUKOD.js.map → chunk-PH7G7ZI7.js.map} +0 -0
  284. /package/dist/{chunk-A2Y6YFVN.js.map → chunk-PN5332SU.js.map} +0 -0
  285. /package/dist/{chunk-BCYQA5BK.js.map → chunk-QF5LGMSV.js.map} +0 -0
  286. /package/dist/{chunk-VR24ILCR.js.map → chunk-QG5RQQBO.js.map} +0 -0
  287. /package/dist/{chunk-O2DYPAZY.js.map → chunk-QYPDYN23.js.map} +0 -0
  288. /package/dist/{chunk-MELR46EF.js.map → chunk-RNXJ2VO6.js.map} +0 -0
  289. /package/dist/{chunk-UTLEAJXC.js.map → chunk-RXTMLYJS.js.map} +0 -0
  290. /package/dist/{chunk-XHV25KBM.js.map → chunk-S2OWPVSO.js.map} +0 -0
  291. /package/dist/{chunk-6QILBDZU.js.map → chunk-S7TAPIRS.js.map} +0 -0
  292. /package/dist/{chunk-Q3XSMOZM.js.map → chunk-SAL5X5OK.js.map} +0 -0
  293. /package/dist/{chunk-XFXUTFWQ.js.map → chunk-SGJGWBSC.js.map} +0 -0
  294. /package/dist/{chunk-7ITPJFGC.js.map → chunk-SIAIYP6G.js.map} +0 -0
  295. /package/dist/{chunk-QYPKGVT4.js.map → chunk-TBNF5DV5.js.map} +0 -0
  296. /package/dist/{chunk-CIKY6I4W.js.map → chunk-TVOHSPVK.js.map} +0 -0
  297. /package/dist/{chunk-AWB5JZW6.js.map → chunk-TVS6BUUR.js.map} +0 -0
  298. /package/dist/{chunk-BZO4WCJI.js.map → chunk-UMC5QZTX.js.map} +0 -0
  299. /package/dist/{chunk-MCEKIAO4.js.map → chunk-US34HTOI.js.map} +0 -0
  300. /package/dist/{chunk-BE7N3AXA.js.map → chunk-VCUQR6ZL.js.map} +0 -0
  301. /package/dist/{chunk-OFJ5GPNA.js.map → chunk-WEHIQYQH.js.map} +0 -0
  302. /package/dist/{chunk-PR5LC5YX.js.map → chunk-WHQHTNT7.js.map} +0 -0
  303. /package/dist/{chunk-3MSQLQNZ.js.map → chunk-X6Y5MXTH.js.map} +0 -0
  304. /package/dist/{chunk-3G4KMVUN.js.map → chunk-XJ47GS53.js.map} +0 -0
  305. /package/dist/{chunk-MSPNM2OM.js.map → chunk-XS6DLN67.js.map} +0 -0
  306. /package/dist/{chunk-FXK4X4BL.js.map → chunk-Y5TWPBNW.js.map} +0 -0
  307. /package/dist/{chunk-67TNU77I.js.map → chunk-ZHOJOT6S.js.map} +0 -0
  308. /package/dist/{collection-facade-YE2O4J4O.js.map → collection-facade-DWA735G2.js.map} +0 -0
  309. /package/dist/{computed-W6MVAMWZ.js.map → computed-ORCGM5JE.js.map} +0 -0
  310. /package/dist/{dead-filter-4KXZEB3X.js.map → dead-filter-OV5FGKOG.js.map} +0 -0
  311. /package/dist/{delegation-OPUU3R2E.js.map → delegation-YVSHMIZZ.js.map} +0 -0
  312. /package/dist/{derive-BGUHU663.js.map → derive-BUO555L5.js.map} +0 -0
  313. /package/dist/{enclave-VXAQD4XJ.js.map → enclave-XXFUKJC6.js.map} +0 -0
  314. /package/dist/{executor-GTVSUUBX.js.map → executor-6OCCE5VM.js.map} +0 -0
  315. /package/dist/{executor-GZWMTOXB.js.map → executor-JFVAJY42.js.map} +0 -0
  316. /package/dist/{executor-XXGS4S3K.js.map → executor-UPSH5O3F.js.map} +0 -0
  317. /package/dist/{export-accessible-BMULIOYB.js.map → export-accessible-L4A2QZA5.js.map} +0 -0
  318. /package/dist/{extract-partition-JUQTWDXR.js.map → extract-partition-ZHQ4RGGM.js.map} +0 -0
  319. /package/dist/{fanout-sidecar-CKYFH33E.js.map → fanout-sidecar-IO2KDUWV.js.map} +0 -0
  320. /package/dist/{find-XRGCNGNN.js.map → find-ZFZDZQ2U.js.map} +0 -0
  321. /package/dist/{issue-UB6AA5M6.js.map → issue-OG4V23SQ.js.map} +0 -0
  322. /package/dist/{ledger-FU6GH5EH.js.map → ledger-UAQKPWNM.js.map} +0 -0
  323. /package/dist/{liberate-YUN7W5QG.js.map → liberate-GFUQJRK5.js.map} +0 -0
  324. /package/dist/{link-set-MNADSH5M.js.map → link-set-DGYUOFVD.js.map} +0 -0
  325. /package/dist/{noydb-6JLBZU4U.js.map → noydb-AKH4AMCR.js.map} +0 -0
  326. /package/dist/{policy-JTFOPPUU.js.map → policy-5POYLI26.js.map} +0 -0
  327. /package/dist/{public-envelope-NJVB7LPA.js.map → public-envelope-GOG4LUM7.js.map} +0 -0
  328. /package/dist/{register-VCKOBWKT.js.map → register-ZI7YI7US.js.map} +0 -0
  329. /package/dist/{registry-72UKJ2L4.js.map → registry-DZ2T4LL7.js.map} +0 -0
  330. /package/dist/{registry-BZFLJNEH.js.map → registry-NVWEQ2GU.js.map} +0 -0
  331. /package/dist/{registry-YJEYSYI5.js.map → registry-SEKL74ET.js.map} +0 -0
  332. /package/dist/{request-withdrawal-6MJRMFHF.js.map → request-withdrawal-ZP3JIRVS.js.map} +0 -0
  333. /package/dist/{reveal-BOY7XYFH.js.map → reveal-NPVROV4D.js.map} +0 -0
  334. /package/dist/{revoke-4KUNSVJC.js.map → revoke-VF6TAJK2.js.map} +0 -0
  335. /package/dist/{seed-4RRXT42N.js.map → seed-VI4FU7UH.js.map} +0 -0
  336. /package/dist/{signer-DDDXP5JD.js.map → signer-DRDDCCHW.js.map} +0 -0
  337. /package/dist/{stale-NXPT56JA.js.map → stale-TJXFQKOJ.js.map} +0 -0
  338. /package/dist/{storage-IR6EEAV2.js.map → storage-GR7KZRH4.js.map} +0 -0
  339. /package/dist/{store-coordination-provider-HPYVFJCV.js.map → store-coordination-provider-5KDS2RRP.js.map} +0 -0
  340. /package/dist/{verify-66RHOW7N.js.map → verify-QK76NJ4G.js.map} +0 -0
  341. /package/dist/{walk-2RWEOCAS.js.map → walk-XQCBKSBW.js.map} +0 -0
  342. /package/dist/{withdraw-accessible-CLMZEHQT.js.map → withdraw-accessible-FMN4LPJZ.js.map} +0 -0
@@ -6,34 +6,34 @@ import {
6
6
  SEQUENCE_COLLECTION,
7
7
  compileSequenceFormat,
8
8
  resolveSequenceKey
9
- } from "./chunk-5JB73NMC.js";
9
+ } from "./chunk-7QLY64AD.js";
10
10
  import {
11
11
  loadVaultPolicy
12
- } from "./chunk-DIRRS7WP.js";
12
+ } from "./chunk-BLUT46UP.js";
13
13
  import {
14
14
  LinkIntegrityError,
15
15
  isLinkCollectionName,
16
16
  linkCollectionName,
17
17
  linkRowKey
18
- } from "./chunk-AWB5JZW6.js";
18
+ } from "./chunk-TVS6BUUR.js";
19
19
  import {
20
20
  hashFields,
21
21
  validateSatelliteDeclaration
22
- } from "./chunk-7ITPJFGC.js";
22
+ } from "./chunk-SIAIYP6G.js";
23
23
  import {
24
24
  loadFence
25
- } from "./chunk-Q3XSMOZM.js";
25
+ } from "./chunk-SAL5X5OK.js";
26
26
  import {
27
27
  InvertedIndex,
28
28
  MemoryIndexStore,
29
29
  NO_SEARCH,
30
30
  VectorSet,
31
31
  buildPersistedIndexCallbacks
32
- } from "./chunk-P5RY4ZWD.js";
32
+ } from "./chunk-BDPAVYGJ.js";
33
33
  import {
34
34
  derivePersistedSchema,
35
35
  isZod4Schema
36
- } from "./chunk-QLLKLFE2.js";
36
+ } from "./chunk-P2LJI6JE.js";
37
37
  import {
38
38
  isBaseLive,
39
39
  liveBaseIdSet
@@ -42,7 +42,7 @@ import {
42
42
  CustodyApi,
43
43
  NO_CARGO,
44
44
  NO_CUSTODY
45
- } from "./chunk-BZO4WCJI.js";
45
+ } from "./chunk-UMC5QZTX.js";
46
46
  import {
47
47
  ServiceBus,
48
48
  WriteHookRegistry,
@@ -50,43 +50,44 @@ import {
50
50
  assertCanImport,
51
51
  canExport,
52
52
  canImport
53
- } from "./chunk-JOQ53DMI.js";
53
+ } from "./chunk-K2DLLK34.js";
54
54
  import {
55
55
  runDrainBarrier
56
- } from "./chunk-D26JB3LZ.js";
56
+ } from "./chunk-NAR6IDKH.js";
57
57
  import {
58
58
  OverlayedCollection
59
- } from "./chunk-A2Y6YFVN.js";
59
+ } from "./chunk-PN5332SU.js";
60
60
  import {
61
61
  NO_ATTESTATION
62
- } from "./chunk-XHV25KBM.js";
62
+ } from "./chunk-S2OWPVSO.js";
63
63
  import {
64
64
  NO_CLASSIFIED,
65
65
  guardClassifiedCompat,
66
66
  resolveClassifiedFields
67
- } from "./chunk-PR5LC5YX.js";
67
+ } from "./chunk-WHQHTNT7.js";
68
68
  import {
69
69
  NO_TIERS,
70
70
  classifySealedShred
71
- } from "./chunk-H6HM6CVR.js";
71
+ } from "./chunk-AKEOHKMT.js";
72
72
  import {
73
73
  NO_PORTABILITY
74
- } from "./chunk-ODJWBC5I.js";
74
+ } from "./chunk-5HNX4OD4.js";
75
75
  import {
76
76
  PERIODS_COLLECTION,
77
77
  PERIOD_ARCHIVES_COLLECTION,
78
78
  PERIOD_FREEZES_COLLECTION,
79
79
  PERIOD_TARGET_PURGES_COLLECTION,
80
80
  periodExclusiveUpperBound
81
- } from "./chunk-FXK4X4BL.js";
81
+ } from "./chunk-Y5TWPBNW.js";
82
82
  import {
83
83
  TxContext,
84
+ bestEffortRevert,
84
85
  revertExecuted
85
- } from "./chunk-H44ZE4IE.js";
86
+ } from "./chunk-AAIIDAUC.js";
86
87
  import {
87
88
  DEFAULT_POSTURE,
88
89
  ViaGraph
89
- } from "./chunk-7QIXUSDQ.js";
90
+ } from "./chunk-DJ7MRXNA.js";
90
91
  import {
91
92
  buildLookupAltIndex,
92
93
  buildLookupSnapshotRows,
@@ -102,28 +103,29 @@ import {
102
103
  matchesReferencingValue,
103
104
  putDerivedOutput,
104
105
  registerLookupRefEdges,
106
+ reservedDictDepsOf,
105
107
  resolveDictSource,
106
108
  resolveLabelFromMap,
107
109
  resolveRollupDeleteIntents,
108
110
  runGraphDispatchWave,
109
111
  touchFor,
110
112
  updateReferencingRecords
111
- } from "./chunk-DGH65E7Q.js";
113
+ } from "./chunk-R3NHNVS5.js";
112
114
  import {
113
115
  NO_AGGREGATE,
114
116
  Query,
115
117
  ScanBuilder
116
- } from "./chunk-H6CZSDWK.js";
118
+ } from "./chunk-SXPCZ6LL.js";
117
119
  import {
118
120
  EXPORT_AUDIT_COLLECTION,
119
121
  createExportBlobsHandle,
120
122
  runCompaction
121
- } from "./chunk-QYPKGVT4.js";
123
+ } from "./chunk-TBNF5DV5.js";
122
124
  import {
123
125
  LazyQuery,
124
126
  decodeIdxId,
125
127
  encodeIdxId
126
- } from "./chunk-3CNQ7FQ3.js";
128
+ } from "./chunk-6S7ENMRE.js";
127
129
  import {
128
130
  IMPLICIT_LAZY,
129
131
  Lru,
@@ -131,17 +133,17 @@ import {
131
133
  } from "./chunk-NO272T7Q.js";
132
134
  import {
133
135
  canonicalGroupKey
134
- } from "./chunk-IGJHJYM6.js";
136
+ } from "./chunk-EVHBK7BN.js";
135
137
  import {
136
138
  readPath
137
139
  } from "./chunk-IGJCYUT5.js";
138
140
  import {
139
141
  resolveManagedSecret,
140
142
  saveSealedPassphrase
141
- } from "./chunk-KPGX66PM.js";
143
+ } from "./chunk-FF7S3XDW.js";
142
144
  import {
143
145
  dictCollectionName
144
- } from "./chunk-ELNBMFOS.js";
146
+ } from "./chunk-F44XWXOA.js";
145
147
  import {
146
148
  NO_I18N,
147
149
  getAtPath,
@@ -149,12 +151,12 @@ import {
149
151
  isDictKeyDescriptor,
150
152
  isI18nTextDescriptor,
151
153
  isStaticDictDescriptor
152
- } from "./chunk-BE7N3AXA.js";
154
+ } from "./chunk-VCUQR6ZL.js";
153
155
  import {
154
156
  installViaBinder,
155
157
  isViaInstalled,
156
158
  viaBinder
157
- } from "./chunk-ARSAMO24.js";
159
+ } from "./chunk-GXLZXD2W.js";
158
160
  import {
159
161
  NO_TEAM,
160
162
  enrollAuthenticator,
@@ -165,7 +167,7 @@ import {
165
167
  rotatePassphrase,
166
168
  updateAuthenticator,
167
169
  writeMagicLinkGrant
168
- } from "./chunk-IP2QBAGS.js";
170
+ } from "./chunk-3QSOFZQB.js";
169
171
  import {
170
172
  hasRecoveryEnrolled,
171
173
  hasStrongRecoveryEnrolled,
@@ -175,7 +177,7 @@ import {
175
177
  mintShamirRecoveryEntry,
176
178
  savePaperRecoveryEntries,
177
179
  saveShamirRecoveryEntries
178
- } from "./chunk-6QILBDZU.js";
180
+ } from "./chunk-S7TAPIRS.js";
179
181
  import {
180
182
  INDEXED_STORE_POLICY
181
183
  } from "./chunk-VQNJ7UZL.js";
@@ -191,21 +193,21 @@ import {
191
193
  listUsers,
192
194
  loadKeyring,
193
195
  updateKeyringIdentity
194
- } from "./chunk-5ZOSG3RJ.js";
196
+ } from "./chunk-CCIR2OJH.js";
195
197
  import {
196
198
  persistDirectoryConfig,
197
199
  readDirectoryConfig
198
- } from "./chunk-4N5QFSNQ.js";
200
+ } from "./chunk-JGUZMC3I.js";
199
201
  import {
200
202
  NO_BROKER,
201
203
  buildCredentialBrokerHandle
202
- } from "./chunk-WTUNZACT.js";
204
+ } from "./chunk-HIOLCOK3.js";
203
205
  import {
204
206
  generateULID
205
207
  } from "./chunk-ZJADGNYF.js";
206
208
  import {
207
209
  sha256Hex
208
- } from "./chunk-25NDNMQ7.js";
210
+ } from "./chunk-EIZ4YOG2.js";
209
211
  import {
210
212
  NO_FORGET,
211
213
  addSubjectRef,
@@ -214,10 +216,10 @@ import {
214
216
  readDottedPath,
215
217
  rebuildSubjectIndex,
216
218
  removeSubjectRef
217
- } from "./chunk-DJ3VKYFA.js";
219
+ } from "./chunk-EHW5KTTA.js";
218
220
  import {
219
221
  NO_SEALED_RECORD
220
- } from "./chunk-CIKY6I4W.js";
222
+ } from "./chunk-TVOHSPVK.js";
221
223
  import {
222
224
  RecordCodec,
223
225
  SEALED_CEK_NS,
@@ -228,20 +230,20 @@ import {
228
230
  queryByDet,
229
231
  resolveStableCek,
230
232
  validateSchemaInput
231
- } from "./chunk-QQJXBZCO.js";
233
+ } from "./chunk-HA6ZQWA2.js";
232
234
  import {
233
235
  buildDeleteMarker,
234
236
  buildTombstone,
235
237
  isDeleteMarker,
236
238
  isTombstone
237
- } from "./chunk-FQQF23MC.js";
239
+ } from "./chunk-J3JIYFYL.js";
238
240
  import {
239
241
  encrypt
240
- } from "./chunk-HUS3J5WM.js";
242
+ } from "./chunk-37WOJQWY.js";
241
243
  import {
242
244
  NOYDB_FORMAT_VERSION,
243
245
  SealedHandle
244
- } from "./chunk-CKZW6P5V.js";
246
+ } from "./chunk-JC75UBMT.js";
245
247
  import {
246
248
  AlreadyElevatedError,
247
249
  AttestationError,
@@ -279,11 +281,11 @@ import {
279
281
  UniqueConstraintError,
280
282
  UnsupportedIndexOptionError,
281
283
  ValidationError
282
- } from "./chunk-FH542DDY.js";
284
+ } from "./chunk-FZCGIJEJ.js";
283
285
 
284
286
  // src/port/by/default-provider.ts
285
287
  async function createDefaultCoordinationProvider(store) {
286
- const { StoreCoordinationProvider } = await import("./store-coordination-provider-HPYVFJCV.js");
288
+ const { StoreCoordinationProvider } = await import("./store-coordination-provider-5KDS2RRP.js");
287
289
  return new StoreCoordinationProvider(store);
288
290
  }
289
291
 
@@ -1468,7 +1470,7 @@ async function resolveStaleOnRead(accessor, outputCollection, id) {
1468
1470
  }
1469
1471
  const sourceWithId = { ...source, id };
1470
1472
  if (DerivationExecutor === null) {
1471
- ({ DerivationExecutor } = await import("./executor-XXGS4S3K.js"));
1473
+ ({ DerivationExecutor } = await import("./executor-JFVAJY42.js"));
1472
1474
  }
1473
1475
  const ctx = { vault: accessor.getReadOnlyFacade() };
1474
1476
  const result = await DerivationExecutor.run(spec, sourceWithId, 0, strategyHash, ctx);
@@ -2007,6 +2009,7 @@ function resolveCollectionConfig(opts) {
2007
2009
  reconcileOnOpen: opts.reconcileOnOpen ?? "off",
2008
2010
  getDEK: opts.getDEK,
2009
2011
  onDirty: opts.onDirty,
2012
+ tabCoordinated: opts.tabCoordinated,
2010
2013
  historyConfig: opts.historyConfig ?? { enabled: true },
2011
2014
  historyConfigExplicit: opts.historyConfigExplicit ?? false,
2012
2015
  schema: opts.schema,
@@ -2069,7 +2072,7 @@ function resolveCollectionConfig(opts) {
2069
2072
  // src/with-formula/computed/lazy.ts
2070
2073
  var fn = null;
2071
2074
  async function loadEvalComputedFields() {
2072
- fn ??= (await import("./computed-W6MVAMWZ.js")).evalComputedFields;
2075
+ fn ??= (await import("./computed-ORCGM5JE.js")).evalComputedFields;
2073
2076
  return fn;
2074
2077
  }
2075
2078
 
@@ -2108,6 +2111,8 @@ var Collection = class {
2108
2111
  activeTxId;
2109
2112
  getDEK;
2110
2113
  onDirty;
2114
+ /** #693: live check — true when multi-tab write-propagation is active; gates the #606 marker-id-set fallback read. */
2115
+ tabCoordinated;
2111
2116
  historyConfig;
2112
2117
  /** True when the caller explicitly provided a `historyConfig` option (vs. inheriting the vault default). */
2113
2118
  historyConfigExplicit;
@@ -2134,6 +2139,20 @@ var Collection = class {
2134
2139
  // doesn't need a runtime branch on every cache access.
2135
2140
  cache = /* @__PURE__ */ new Map();
2136
2141
  hydrated = false;
2142
+ /**
2143
+ * #606: ids known to carry a delete marker in the store — lets the #589
2144
+ * re-create version-continuity gate in `_putInternal` read the store ONLY
2145
+ * for a known marker prior, instead of unconditionally on every insert.
2146
+ * Populated on hydration (`ensureHydrated`/`hydrateFromSnapshot`), local
2147
+ * delete (`_doDelete`), and the sync/tab/cutover choke point
2148
+ * (`_invalidateCacheEntry`). Accepted drift: `vault._purgeDeleteMarkers`/
2149
+ * `_purgeMarkersOn` remove markers directly on the raw store, bypassing
2150
+ * Collection, so this set can hold stale ids after a purge on an
2151
+ * already-loaded collection — perf-only and self-healing (a stale id just
2152
+ * costs one `adapter.get` that returns non-marker/null, and version
2153
+ * resolution falls back to 1 correctly). Do not try to wire purge into it.
2154
+ */
2155
+ markerIds = /* @__PURE__ */ new Set();
2137
2156
  /**
2138
2157
  * Lazy mode flag. `true` when constructed with `prefetch: false`.
2139
2158
  * In lazy mode the cache is bounded by an LRU and `list()`/`query()`
@@ -2162,8 +2181,7 @@ var Collection = class {
2162
2181
  indexState;
2163
2182
  /**
2164
2183
  * In-memory unique-constraint enforcement for eager mode.
2165
- * `null` when no `unique:true` indexes are declared on this collection,
2166
- * or when the collection is in lazy mode (which throws at registration).
2184
+ * `null` when no `unique:true` indexes are declared on this collection, or when the collection is in lazy mode (which throws at registration).
2167
2185
  */
2168
2186
  uniqueConstraints;
2169
2187
  /**
@@ -2184,8 +2202,7 @@ var Collection = class {
2184
2202
  return this.indexState.getEagerIndexes();
2185
2203
  }
2186
2204
  /**
2187
- * Accessor for the persisted-mirror (lazy-mode) index. Returns `null`
2188
- * when indexing is disabled or the collection is in eager mode.
2205
+ * Accessor for the persisted-mirror (lazy-mode) index. Returns `null` when indexing is disabled or the collection is in eager mode.
2189
2206
  */
2190
2207
  get persistedIndexes() {
2191
2208
  return this.indexState.getPersistedIndexes();
@@ -2453,6 +2470,7 @@ var Collection = class {
2453
2470
  this.reconcileOnOpen = cfg.reconcileOnOpen;
2454
2471
  this.getDEK = cfg.getDEK;
2455
2472
  this.onDirty = cfg.onDirty;
2473
+ this.tabCoordinated = cfg.tabCoordinated;
2456
2474
  this.historyConfig = cfg.historyConfig;
2457
2475
  this.historyConfigExplicit = cfg.historyConfigExplicit;
2458
2476
  this.schema = cfg.schema;
@@ -2611,6 +2629,7 @@ var Collection = class {
2611
2629
  lazy: this.lazy
2612
2630
  });
2613
2631
  this.indexes?.setCanonicalizer((f, v) => this.via?.canonicalizeIndexKey(f, v));
2632
+ this.persistedIndexes?.setCanonicalizer((f, v) => this.via?.canonicalizeIndexKey(f, v));
2614
2633
  this.uniqueConstraints = buildUniqueConstraintSet(this.name, opts.indexes, {
2615
2634
  lazy: this.lazy,
2616
2635
  crdt: this.crdtMode != null,
@@ -2856,7 +2875,7 @@ var Collection = class {
2856
2875
  }
2857
2876
  await this.onAccess?.("find", "*");
2858
2877
  if (hits.length === 0) return [];
2859
- const { verifyDigestField } = await import("./verify-66RHOW7N.js");
2878
+ const { verifyDigestField } = await import("./verify-QK76NJ4G.js");
2860
2879
  const policy = {
2861
2880
  normalize: spec.verifyNormalize ?? "password",
2862
2881
  notLastN: spec.notLastN ?? 0,
@@ -2956,6 +2975,7 @@ var Collection = class {
2956
2975
  const virtualMoney = resolveVirtualMoneyFields(Object.keys(moneyFields), (f) => this.via?.bindings.find((b) => b.brand === "computed")?.covers?.(f) ?? false);
2957
2976
  this.via = ViaPipeline.build([viaBinder("money")({ moneyFields, ...virtualMoney.size > 0 ? { virtualMoneyFields: virtualMoney } : {} }), ...this.via?.bindings ?? []], this.via?.taint);
2958
2977
  this.moneyFields = moneyFields;
2978
+ if (this.hydrated) this.rebuildEagerIndexesFromCache();
2959
2979
  }
2960
2980
  /** @internal — attach computed fields post-construction. See {@link _applyMoneyFields}. */
2961
2981
  _applyComputed(computed) {
@@ -3040,6 +3060,20 @@ var Collection = class {
3040
3060
  * `null` if not found.
3041
3061
  */
3042
3062
  async get(id, locale) {
3063
+ const record = await this.#getRaw(id);
3064
+ if (record === null) return null;
3065
+ return this.applyLocaleToRecord(record, locale);
3066
+ }
3067
+ /**
3068
+ * Raw fetch: cache/adapter → decrypt → tombstone-null, WITHOUT `present()`.
3069
+ * Split out of `get()` (#684) so `lazyQuery()`'s `LazyQuerySource` can hand
3070
+ * `LazyQuery`'s post-filter the RAW (stored-form) record a `clause.via`
3071
+ * evaluator (e.g. money) needs — `present()`/locale decode is applied only
3072
+ * to survivors, via `applyLocaleToRecord` (see `lazyQuery()` below). `get()`
3073
+ * itself is unchanged: raw fetch, then `applyLocaleToRecord`, same order
3074
+ * as before this split.
3075
+ */
3076
+ async #getRaw(id) {
3043
3077
  if (this.derivationSource !== void 0) {
3044
3078
  const registry = this.derivationSource.registry();
3045
3079
  if (registry.strategiesProducingOutput(this.name).length > 0) {
@@ -3047,7 +3081,7 @@ var Collection = class {
3047
3081
  }
3048
3082
  }
3049
3083
  if (this.materializedViewSource !== void 0) {
3050
- const { resolveStaleMVOnRead } = await import("./stale-NXPT56JA.js");
3084
+ const { resolveStaleMVOnRead } = await import("./stale-TJXFQKOJ.js");
3051
3085
  await resolveStaleMVOnRead(this.materializedViewSource, this.name, this.#dispatchCtx({ collection: this.name, id: "resolve-on-read" }));
3052
3086
  }
3053
3087
  let record;
@@ -3070,7 +3104,7 @@ var Collection = class {
3070
3104
  }
3071
3105
  if (record === null) return null;
3072
3106
  await this.onAccess?.("get", id);
3073
- return this.applyLocaleToRecord(record, locale);
3107
+ return record;
3074
3108
  }
3075
3109
  /**
3076
3110
  * Return the raw CRDT state for a record.
@@ -3443,7 +3477,9 @@ var Collection = class {
3443
3477
  }
3444
3478
  let version = existing ? existing.version + 1 : 1;
3445
3479
  if (!existing && this.onDirty) {
3446
- if (priorRaw === null) priorRaw = await this.adapter.get(this.vault, this.name, id);
3480
+ if (priorRaw === null && (this.markerIds.has(id) || this.tabCoordinated?.())) {
3481
+ priorRaw = await this.adapter.get(this.vault, this.name, id);
3482
+ }
3447
3483
  if (priorRaw && isDeleteMarker(priorRaw)) version = priorRaw._v + 1;
3448
3484
  }
3449
3485
  this.uniqueConstraints?.check(id, record);
@@ -3466,6 +3502,7 @@ var Collection = class {
3466
3502
  }
3467
3503
  const envelope = await this.codec.encryptRecord(record, version, cek, options?.source, options?.sourceTs, vdigCtx, id);
3468
3504
  await this.adapter.put(this.vault, this.name, id, envelope);
3505
+ this.markerIds.delete(id);
3469
3506
  await this._ensureClassifiedMarker();
3470
3507
  if (this.embeddings) {
3471
3508
  await this.searchStrategy.embedOnWrite(this.searchContext(), id, record, version);
@@ -3523,7 +3560,7 @@ var Collection = class {
3523
3560
  if (wave?.seen(`mv\0${reg.spec.name}`)) continue;
3524
3561
  if (executor === null) {
3525
3562
  ;
3526
- ({ MaterializedViewExecutor: executor } = await import("./executor-GTVSUUBX.js"));
3563
+ ({ MaterializedViewExecutor: executor } = await import("./executor-6OCCE5VM.js"));
3527
3564
  }
3528
3565
  await executor.refresh(reg, {
3529
3566
  getCollection: (name) => this.materializedViewSource.getCollection(name),
@@ -3533,7 +3570,7 @@ var Collection = class {
3533
3570
  });
3534
3571
  } else if (mode === "lazy") {
3535
3572
  if (staleHelpers === null) {
3536
- staleHelpers = await import("./stale-NXPT56JA.js");
3573
+ staleHelpers = await import("./stale-TJXFQKOJ.js");
3537
3574
  }
3538
3575
  staleHelpers.markMVStale(registry, reg.spec.name);
3539
3576
  }
@@ -3737,7 +3774,7 @@ var Collection = class {
3737
3774
  continue;
3738
3775
  }
3739
3776
  if (DerivationExecutor === null) {
3740
- ({ DerivationExecutor } = await import("./executor-XXGS4S3K.js"));
3777
+ ({ DerivationExecutor } = await import("./executor-JFVAJY42.js"));
3741
3778
  }
3742
3779
  for (const run of runs) {
3743
3780
  const ctx = { vault: this.derivationSource.getReadOnlyFacade() };
@@ -3757,7 +3794,7 @@ var Collection = class {
3757
3794
  const outputCollection = this.derivationSource.getCollection(outSpec.collection);
3758
3795
  const txCtx = this.derivationSource.getActiveTxContext();
3759
3796
  if (out.kind === "array") {
3760
- const { loadFanoutSidecar, saveFanoutSidecar } = await import("./fanout-sidecar-CKYFH33E.js");
3797
+ const { loadFanoutSidecar, saveFanoutSidecar } = await import("./fanout-sidecar-IO2KDUWV.js");
3761
3798
  const prior = await loadFanoutSidecar(this.adapter, this.vault, spec.source, run.runId, key, this.getDEK, this.storeCiphertext);
3762
3799
  const prevKeys = new Set(prior?.keys ?? []);
3763
3800
  const newKeysList = out.entries.map((e) => e.key);
@@ -4012,6 +4049,7 @@ var Collection = class {
4012
4049
  if (!live || isTombstone(live, this.storeCiphertext) || isDeleteMarker(live)) return;
4013
4050
  markerVersion = live._v + 1;
4014
4051
  await this.adapter.put(this.vault, this.name, id, buildDeleteMarker(markerVersion, this.keyring.userId));
4052
+ this.markerIds.add(id);
4015
4053
  } else {
4016
4054
  await this.adapter.delete(this.vault, this.name, id);
4017
4055
  }
@@ -4116,7 +4154,7 @@ var Collection = class {
4116
4154
  continue;
4117
4155
  }
4118
4156
  if (helpers === null) {
4119
- helpers = await import("./fanout-sidecar-CKYFH33E.js");
4157
+ helpers = await import("./fanout-sidecar-IO2KDUWV.js");
4120
4158
  }
4121
4159
  const sidecar = await helpers.loadFanoutSidecar(this.adapter, this.vault, spec.source, id, outputKey, this.getDEK, this.storeCiphertext);
4122
4160
  if (!sidecar) continue;
@@ -4149,7 +4187,7 @@ var Collection = class {
4149
4187
  if (mode === "eager") {
4150
4188
  if (executor === null) {
4151
4189
  ;
4152
- ({ MaterializedViewExecutor: executor } = await import("./executor-GTVSUUBX.js"));
4190
+ ({ MaterializedViewExecutor: executor } = await import("./executor-6OCCE5VM.js"));
4153
4191
  }
4154
4192
  deleted += (await executor.refresh(reg, {
4155
4193
  getCollection: (name) => this.materializedViewSource.getCollection(name),
@@ -4159,7 +4197,7 @@ var Collection = class {
4159
4197
  })).deleted;
4160
4198
  } else if (mode === "lazy") {
4161
4199
  if (staleHelpers === null) {
4162
- staleHelpers = await import("./stale-NXPT56JA.js");
4200
+ staleHelpers = await import("./stale-TJXFQKOJ.js");
4163
4201
  }
4164
4202
  staleHelpers.markMVStale(registry, reg.spec.name);
4165
4203
  }
@@ -4183,7 +4221,7 @@ var Collection = class {
4183
4221
  );
4184
4222
  }
4185
4223
  if (this.materializedViewSource !== void 0) {
4186
- const { resolveStaleMVOnRead } = await import("./stale-NXPT56JA.js");
4224
+ const { resolveStaleMVOnRead } = await import("./stale-TJXFQKOJ.js");
4187
4225
  await resolveStaleMVOnRead(this.materializedViewSource, this.name, this.#dispatchCtx({ collection: this.name, id: "resolve-on-read" }));
4188
4226
  }
4189
4227
  await this.ensureHydrated();
@@ -4821,9 +4859,11 @@ var Collection = class {
4821
4859
  this.lru.remove(id);
4822
4860
  return;
4823
4861
  }
4862
+ const envelope = await this.adapter.get(this.vault, this.name, id);
4863
+ if (envelope && isDeleteMarker(envelope)) this.markerIds.add(id);
4864
+ else this.markerIds.delete(id);
4824
4865
  if (!this.hydrated) return;
4825
4866
  const previous = this.cache.get(id);
4826
- const envelope = await this.adapter.get(this.vault, this.name, id);
4827
4867
  if (!envelope) {
4828
4868
  this.cache.delete(id);
4829
4869
  if (previous) {
@@ -4872,6 +4912,10 @@ var Collection = class {
4872
4912
  * @internal
4873
4913
  */
4874
4914
  async _onRecordMutated(id, action, origin, ctx) {
4915
+ if (this.onDirty && !this.lazy) {
4916
+ if (action === "delete") this.markerIds.add(id);
4917
+ else this.markerIds.delete(id);
4918
+ }
4875
4919
  switch (origin) {
4876
4920
  case "local-write": {
4877
4921
  const record = ctx.record;
@@ -4927,6 +4971,8 @@ var Collection = class {
4927
4971
  const record = await this.codec.decryptRecord(envelope, { id, sealedAsHandles: true });
4928
4972
  if (record === null) continue;
4929
4973
  this.cache.set(id, { record, version: envelope._v });
4974
+ } else if (envelope && isDeleteMarker(envelope)) {
4975
+ this.markerIds.add(id);
4930
4976
  }
4931
4977
  }
4932
4978
  this.hydrated = true;
@@ -4936,7 +4982,11 @@ var Collection = class {
4936
4982
  /** Hydrate from a pre-loaded snapshot (used by Vault). */
4937
4983
  async hydrateFromSnapshot(records) {
4938
4984
  for (const [id, envelope] of Object.entries(records)) {
4939
- if (isTombstone(envelope, this.storeCiphertext) || isDeleteMarker(envelope)) continue;
4985
+ if (isDeleteMarker(envelope)) {
4986
+ this.markerIds.add(id);
4987
+ continue;
4988
+ }
4989
+ if (isTombstone(envelope, this.storeCiphertext)) continue;
4940
4990
  const record = await this.codec.decryptRecord(envelope, { id, sealedAsHandles: true });
4941
4991
  if (record === null) continue;
4942
4992
  this.cache.set(id, { record, version: envelope._v });
@@ -5290,8 +5340,13 @@ var Collection = class {
5290
5340
  const source = {
5291
5341
  collectionName: this.name,
5292
5342
  persistedIndexes: persisted,
5343
+ canonicalizeIndexKey: (f, v) => this.via?.canonicalizeIndexKey(f, v),
5293
5344
  ensurePersistedIndexesLoaded: () => this.ensurePersistedIndexesLoaded(),
5294
- getRecord: (id) => this.get(id)
5345
+ // #684: raw-fetch seam — post-filter runs against the RAW record;
5346
+ // only survivors are decoded via `decodeRecord` below.
5347
+ getRawRecord: (id) => this.#getRaw(id),
5348
+ decodeRecord: (record) => this.applyLocaleToRecord(record, void 0),
5349
+ via: () => this.via
5295
5350
  };
5296
5351
  return new LazyQuery(source);
5297
5352
  }
@@ -5313,14 +5368,14 @@ var Collection = class {
5313
5368
  /** C-A/R10: persist the classified marker once per classified handle (store I/O in config-drift.ts). */
5314
5369
  async _ensureClassifiedMarker() {
5315
5370
  if (this._markerPersisted || this.vdigFields === null) return;
5316
- const { persistClassifiedMarkerForFields } = await import("./classified-marker-LQWWQNIJ.js");
5371
+ const { persistClassifiedMarkerForFields } = await import("./classified-marker-M7K3OJPM.js");
5317
5372
  await persistClassifiedMarkerForFields(this.adapter, this.vault, this.name, this.vdigFields, await this.getDEK(this.name));
5318
5373
  this._markerPersisted = true;
5319
5374
  }
5320
5375
  /** C-A/R10 drift signal — the marker's declared digest-only set, memoized to one store read per handle (see config-drift.ts). */
5321
5376
  async _classifiedMarkerDigestOnly() {
5322
5377
  if (this._markerDigestOnlyCache !== void 0) return this._markerDigestOnlyCache;
5323
- const { readClassifiedMarkerDigestOnly } = await import("./classified-marker-LQWWQNIJ.js");
5378
+ const { readClassifiedMarkerDigestOnly } = await import("./classified-marker-M7K3OJPM.js");
5324
5379
  this._markerDigestOnlyCache = await readClassifiedMarkerDigestOnly(this.adapter, this.vault, this.name, await this.getDEK(this.name));
5325
5380
  return this._markerDigestOnlyCache;
5326
5381
  }
@@ -6718,7 +6773,7 @@ var VaultLinks = class {
6718
6773
  // src/with-shape/links/lazy-handle.ts
6719
6774
  function makeLazyLinkSetHandle(d) {
6720
6775
  let engine = null;
6721
- const load = () => engine ??= import("./link-set-MNADSH5M.js").then(
6776
+ const load = () => engine ??= import("./link-set-DGYUOFVD.js").then(
6722
6777
  ({ LinkSet }) => new LinkSet(d.adapter, d.vault, d.name, d.spec, d.encrypted, d.getDEK, d.actor, d.emitter, d.endpointExists)
6723
6778
  );
6724
6779
  return {
@@ -7155,7 +7210,7 @@ var SatelliteRegistry = class {
7155
7210
  locks = /* @__PURE__ */ new Map();
7156
7211
  register(spec) {
7157
7212
  if (this.byBase.has(spec.base)) {
7158
- throw new SatelliteConfigError(`R-S1: base "${spec.base}" already has satellite "${this.byBase.get(spec.base).satellite}" \u2014 v1 allows exactly one satellite per base.`);
7213
+ throw new SatelliteConfigError(`R-S10: base "${spec.base}" already has satellite "${this.byBase.get(spec.base).satellite}" \u2014 v1 allows exactly one satellite per base.`);
7159
7214
  }
7160
7215
  if (this.byBase.has(spec.satellite)) {
7161
7216
  throw new SatelliteConfigError(`R-S3: "${spec.satellite}" is itself registered as a base (of "${this.byBase.get(spec.satellite).satellite}") \u2014 no satellite-of-satellite chains.`);
@@ -7256,7 +7311,7 @@ function declareSatellite(ctx, collectionName, options, existingRegistry) {
7256
7311
  ctx.forEachSyncEngine((e) => e.remirrorPairResolvers([spec.base, spec.satellite]));
7257
7312
  const registry = reg;
7258
7313
  const baseSchema = ctx.getBaseSchema(spec.base);
7259
- void import("./post-register-HAWO3O7O.js").then((m) => m.postRegister(ctx.adapter, ctx.vaultName, spec, ctx.getDEK, baseSchema, registry)).catch(() => {
7314
+ void import("./post-register-LB3P4XQU.js").then((m) => m.postRegister(ctx.adapter, ctx.vaultName, spec, ctx.getDEK, baseSchema, registry)).catch(() => {
7260
7315
  });
7261
7316
  return reg;
7262
7317
  }
@@ -7269,14 +7324,9 @@ function unwrap(handle) {
7269
7324
  return handle[RAW_TARGET] ?? handle;
7270
7325
  }
7271
7326
  async function revertAndCompensate(deps, executed) {
7272
- for (const leg of [...executed].reverse()) {
7273
- try {
7274
- if (leg.prior !== null) await deps.adapter.put(deps.vaultName, leg.coll, leg.id, leg.prior);
7275
- else await deps.adapter.delete(deps.vaultName, leg.coll, leg.id);
7276
- await leg.handle._compensateRevertedWrite(leg.id);
7277
- } catch {
7278
- }
7279
- }
7327
+ await bestEffortRevert(executed, deps.adapter, async (leg) => {
7328
+ if (leg.wrote) await leg.handle._compensateRevertedWrite(leg.id);
7329
+ });
7280
7330
  }
7281
7331
  async function joinedPut(deps, id, record) {
7282
7332
  deps.registry.assertNotPoisoned(deps.spec.satellite);
@@ -7291,8 +7341,17 @@ async function joinedPut(deps, id, record) {
7291
7341
  return deps.registry.withPairLock(deps.spec.base, async () => {
7292
7342
  const executed = [];
7293
7343
  const run = async (handle, coll, rec) => {
7294
- executed.push({ coll, id, prior: await deps.adapter.get(deps.vaultName, coll, id), handle });
7344
+ const leg = {
7345
+ vaultName: deps.vaultName,
7346
+ collectionName: coll,
7347
+ id,
7348
+ prior: await deps.adapter.get(deps.vaultName, coll, id),
7349
+ handle,
7350
+ wrote: false
7351
+ };
7352
+ executed.push(leg);
7295
7353
  await handle.put(id, rec);
7354
+ leg.wrote = true;
7296
7355
  };
7297
7356
  try {
7298
7357
  await run(base, deps.spec.base, baseRec);
@@ -7309,8 +7368,17 @@ async function pairDelete(deps, id) {
7309
7368
  return deps.registry.withPairLock(deps.spec.base, async () => {
7310
7369
  const executed = [];
7311
7370
  const run = async (handle, coll) => {
7312
- executed.push({ coll, id, prior: await deps.adapter.get(deps.vaultName, coll, id), handle });
7371
+ const leg = {
7372
+ vaultName: deps.vaultName,
7373
+ collectionName: coll,
7374
+ id,
7375
+ prior: await deps.adapter.get(deps.vaultName, coll, id),
7376
+ handle,
7377
+ wrote: false
7378
+ };
7379
+ executed.push(leg);
7313
7380
  await handle.delete(id);
7381
+ leg.wrote = true;
7314
7382
  };
7315
7383
  try {
7316
7384
  await run(satellite, deps.spec.satellite);
@@ -7563,6 +7631,17 @@ function expandRefsWithSatellites(refs, registry) {
7563
7631
  return anySat ? out : refs;
7564
7632
  }
7565
7633
 
7634
+ // src/with-shape/satellites/migrate-cek.ts
7635
+ async function migrateSatelliteCek(name, coll) {
7636
+ if (coll.getConfig()?.perRecordKeys !== true) {
7637
+ throw new SatelliteConfigError(
7638
+ `migrateSatellitePerRecordKeys: collection "${name}" was already opened this session without perRecordKeys (construction-only); migrate before its first open, or restart the session.`
7639
+ );
7640
+ }
7641
+ const migrated = await coll._applyCutoverTransform((doc) => doc);
7642
+ return { migrated };
7643
+ }
7644
+
7566
7645
  // src/with-shape/schema-update/gate.ts
7567
7646
  var SchemaUpdateGate = class {
7568
7647
  #decision;
@@ -8226,7 +8305,7 @@ var Vault = class {
8226
8305
  const strategies = options.schemaUpdate ?? [];
8227
8306
  const work = (async () => {
8228
8307
  const dek = await this.getDEK(collectionName);
8229
- const { persistSchemaIfNeeded } = await import("./register-VCKOBWKT.js");
8308
+ const { persistSchemaIfNeeded } = await import("./register-ZI7YI7US.js");
8230
8309
  const result = await persistSchemaIfNeeded({
8231
8310
  store: this.adapter,
8232
8311
  vault: this.name,
@@ -8263,6 +8342,8 @@ var Vault = class {
8263
8342
  schemaFence: this.schemaFence,
8264
8343
  getDEK: this.getDEK,
8265
8344
  onDirty: this.onDirty,
8345
+ tabCoordinated: () => this.noydb._tabCoordinationActive,
8346
+ // #693: re-create gate fallback
8266
8347
  historyConfig: effectiveHistoryConfig,
8267
8348
  historyConfigExplicit: options?.historyConfig !== void 0,
8268
8349
  // thread the vault-wide blob strategy into every
@@ -8420,7 +8501,7 @@ var Vault = class {
8420
8501
  const work = (async () => {
8421
8502
  try {
8422
8503
  const dek = await this.getDEK(collectionName);
8423
- await (await import("./register-VCKOBWKT.js")).persistSchemaIfNeeded({
8504
+ await (await import("./register-ZI7YI7US.js")).persistSchemaIfNeeded({
8424
8505
  store: this.adapter,
8425
8506
  vault: this.name,
8426
8507
  collectionName,
@@ -8457,6 +8538,16 @@ var Vault = class {
8457
8538
  registry: this.satelliteRegistry
8458
8539
  });
8459
8540
  }
8541
+ /**
8542
+ * Migrate an existing satellite's records onto per-record CEKs (#599) —
8543
+ * unblocks R-S7 when a base gains forget coverage after its satellite was
8544
+ * already declared without `perRecordKeys`. Call BEFORE re-declaring with
8545
+ * `{ satelliteOf, perRecordKeys: true }` AND before this collection serves
8546
+ * writes (unfenced walk — see {@link migrateSatelliteCek}); resumable.
8547
+ */
8548
+ async migrateSatellitePerRecordKeys(satelliteName) {
8549
+ return migrateSatelliteCek(satelliteName, this.collection(satelliteName, { perRecordKeys: true }));
8550
+ }
8460
8551
  /**
8461
8552
  * Await all background persisted-schema writes triggered by
8462
8553
  * `collection({ persistJsonSchema: true })` calls on this vault.
@@ -8517,6 +8608,12 @@ var Vault = class {
8517
8608
  _reservedLookupCollectionNames() {
8518
8609
  return [...this.reservedLookupCollections.keys()];
8519
8610
  }
8611
+ /** @internal #653 — one-hop reserved-dict deps of `names`, for `SyncEngine`'s partial-sync
8612
+ * filter expansion. Provably complete at one hop: `vault.collection()` refuses `_dict_*`
8613
+ * names, so a dict can never itself declare lookup fields (no dict-of-dict chain). */
8614
+ _reservedDictDepsOf(names) {
8615
+ return reservedDictDepsOf(names, this.dictKeyFieldRegistry);
8616
+ }
8520
8617
  /** @internal #638 Task 4 — open a graph-dispatch touch batch (sync pull()/push()/cutover). */
8521
8618
  _beginGraphBatch() {
8522
8619
  this._graphBatch = /* @__PURE__ */ new Map();
@@ -9572,7 +9669,7 @@ var Vault = class {
9572
9669
  async _initDerivations(handles) {
9573
9670
  if (handles.length === 0) return;
9574
9671
  const [{ DerivationRegistry }, { ReadOnlyVaultFacade }] = await Promise.all([
9575
- import("./registry-BZFLJNEH.js"),
9672
+ import("./registry-NVWEQ2GU.js"),
9576
9673
  import("./read-only-facade-CHCKSEPD.js")
9577
9674
  ]);
9578
9675
  const registry = new DerivationRegistry();
@@ -9604,7 +9701,7 @@ var Vault = class {
9604
9701
  */
9605
9702
  async _initMaterializedViews(handles) {
9606
9703
  if (handles.length === 0) return;
9607
- const { MaterializedViewRegistry } = await import("./registry-YJEYSYI5.js");
9704
+ const { MaterializedViewRegistry } = await import("./registry-SEKL74ET.js");
9608
9705
  const registry = new MaterializedViewRegistry();
9609
9706
  this.materializedViewRegistry = registry;
9610
9707
  const db = this;
@@ -9629,7 +9726,7 @@ var Vault = class {
9629
9726
  */
9630
9727
  async _initOverlayedViews(handles) {
9631
9728
  if (handles.length === 0) return;
9632
- const { OverlayedViewRegistry } = await import("./registry-72UKJ2L4.js");
9729
+ const { OverlayedViewRegistry } = await import("./registry-DZ2T4LL7.js");
9633
9730
  const registry = new OverlayedViewRegistry();
9634
9731
  const mvRegistry = this.materializedViewRegistry;
9635
9732
  const overlayNames = /* @__PURE__ */ new Set();
@@ -9676,14 +9773,14 @@ var Vault = class {
9676
9773
  if (!reg) {
9677
9774
  throw new Error(`refreshView: no MV registered with name "${name}"`);
9678
9775
  }
9679
- const { MaterializedViewExecutor } = await import("./executor-GTVSUUBX.js");
9776
+ const { MaterializedViewExecutor } = await import("./executor-6OCCE5VM.js");
9680
9777
  const result = await MaterializedViewExecutor.refresh(reg, {
9681
9778
  getCollection: (n) => this.collection(n),
9682
9779
  getActiveTxContext: () => this.noydb._activeTxContextOrNull,
9683
9780
  getQueryContext: () => this,
9684
9781
  dispatchCtx: this._dispatchCtx({ collection: name, id: "refreshView" })
9685
9782
  });
9686
- const { clearMVStale } = await import("./stale-NXPT56JA.js");
9783
+ const { clearMVStale } = await import("./stale-TJXFQKOJ.js");
9687
9784
  clearMVStale(registry, name);
9688
9785
  return result;
9689
9786
  }
@@ -9696,7 +9793,7 @@ var Vault = class {
9696
9793
  if (registry === null) return { derived: 0, failed: 0, skippedFrozen: 0 };
9697
9794
  const strategies = registry.strategiesForSource(sourceCollection);
9698
9795
  if (strategies.length === 0) return { derived: 0, failed: 0, skippedFrozen: 0 };
9699
- const { DerivationExecutor } = await import("./executor-XXGS4S3K.js");
9796
+ const { DerivationExecutor } = await import("./executor-JFVAJY42.js");
9700
9797
  const sourceColl = this.collection(sourceCollection);
9701
9798
  const records = await sourceColl.list();
9702
9799
  const ctx = { vault: this.derivationFacade ?? new (await import("./read-only-facade-CHCKSEPD.js")).ReadOnlyVaultFacade(this, "derivation") };
@@ -9723,7 +9820,7 @@ var Vault = class {
9723
9820
  if (!outSpec) continue;
9724
9821
  const outputColl = this.collection(outSpec.collection);
9725
9822
  if (out.kind === "array") {
9726
- const { loadFanoutSidecar, saveFanoutSidecar } = await import("./fanout-sidecar-CKYFH33E.js");
9823
+ const { loadFanoutSidecar, saveFanoutSidecar } = await import("./fanout-sidecar-IO2KDUWV.js");
9727
9824
  const prior = await loadFanoutSidecar(this.adapter, this.name, spec.source, id, key, this.getDEK, this.encrypted);
9728
9825
  const prevKeys = new Set(prior?.keys ?? []);
9729
9826
  const newKeysList = out.entries.map((e) => e.key);
@@ -9950,7 +10047,7 @@ var Vault = class {
9950
10047
  * collection.
9951
10048
  */
9952
10049
  async delegate(opts) {
9953
- const { issueDelegation, DELEGATIONS_COLLECTION } = await import("./delegation-OPUU3R2E.js");
10050
+ const { issueDelegation, DELEGATIONS_COLLECTION } = await import("./delegation-YVSHMIZZ.js");
9954
10051
  if (!this.keyring.kek) {
9955
10052
  throw new ValidationError(
9956
10053
  "issueDelegation: keyring.kek is null \u2014 issuing a delegation requires a tier-1 unlock. Re-authenticate at tier 1 (passphrase) first."
@@ -9972,7 +10069,7 @@ var Vault = class {
9972
10069
  * if the id does not exist.
9973
10070
  */
9974
10071
  async revokeDelegation(id) {
9975
- const { revokeDelegation, DELEGATIONS_COLLECTION } = await import("./delegation-OPUU3R2E.js");
10072
+ const { revokeDelegation, DELEGATIONS_COLLECTION } = await import("./delegation-YVSHMIZZ.js");
9976
10073
  await revokeDelegation(this.adapter, this.name, id);
9977
10074
  void DELEGATIONS_COLLECTION;
9978
10075
  }
@@ -10220,7 +10317,7 @@ var Vault = class {
10220
10317
  * @see docs/superpowers/specs/2026-05-22-schema-dump-design.md
10221
10318
  */
10222
10319
  async dumpSchema(opts = {}) {
10223
- const { dumpVaultSchema } = await import("./walk-2RWEOCAS.js");
10320
+ const { dumpVaultSchema } = await import("./walk-XQCBKSBW.js");
10224
10321
  return dumpVaultSchema(this, opts);
10225
10322
  }
10226
10323
  /**
@@ -10355,7 +10452,7 @@ var Vault = class {
10355
10452
  * @see https://github.com/vLannaAi/noy-db-docs/blob/main/content/docs/services/public-envelope.md
10356
10453
  */
10357
10454
  async getPublicEnvelope(opts = {}) {
10358
- const { readPublicEnvelope } = await import("./public-envelope-NJVB7LPA.js");
10455
+ const { readPublicEnvelope } = await import("./public-envelope-GOG4LUM7.js");
10359
10456
  return readPublicEnvelope(this.adapter, this.name, opts);
10360
10457
  }
10361
10458
  /**
@@ -10370,7 +10467,7 @@ var Vault = class {
10370
10467
  * both modes round-trip cleanly.
10371
10468
  */
10372
10469
  async dump() {
10373
- const { dumpVault } = await import("./backup-XA5STIYQ.js");
10470
+ const { dumpVault } = await import("./backup-2WVBIVXW.js");
10374
10471
  return dumpVault(this.backupContext());
10375
10472
  }
10376
10473
  /**
@@ -10422,7 +10519,7 @@ var Vault = class {
10422
10519
  * — there's no chain to verify against.
10423
10520
  */
10424
10521
  async load(backupJson) {
10425
- const { loadVault } = await import("./backup-XA5STIYQ.js");
10522
+ const { loadVault } = await import("./backup-2WVBIVXW.js");
10426
10523
  return loadVault(this.backupContext(), backupJson);
10427
10524
  }
10428
10525
  /**
@@ -10454,7 +10551,7 @@ var Vault = class {
10454
10551
  * way to detect tampering of an in-place vault.
10455
10552
  */
10456
10553
  async verifyBackupIntegrity() {
10457
- const { verifyBackupIntegrity } = await import("./backup-XA5STIYQ.js");
10554
+ const { verifyBackupIntegrity } = await import("./backup-2WVBIVXW.js");
10458
10555
  return verifyBackupIntegrity(this.backupContext());
10459
10556
  }
10460
10557
  /**
@@ -10672,7 +10769,7 @@ var Vault = class {
10672
10769
  * is the live validator object, not a serialization of it).
10673
10770
  */
10674
10771
  async exportJSON(opts = {}) {
10675
- const { exportVaultJSON } = await import("./backup-XA5STIYQ.js");
10772
+ const { exportVaultJSON } = await import("./backup-2WVBIVXW.js");
10676
10773
  return exportVaultJSON(this.backupContext(), opts);
10677
10774
  }
10678
10775
  };
@@ -12543,7 +12640,7 @@ var Noydb = class {
12543
12640
  if (!facade) return;
12544
12641
  const ctx = { existing, vault: facade, userId: e.userId, role: e.role };
12545
12642
  await registry.runChecks(e.collection, incoming, ctx);
12546
- const { GuardExecutor } = await import("./executor-GZWMTOXB.js");
12643
+ const { GuardExecutor } = await import("./executor-UPSH5O3F.js");
12547
12644
  for (const g of guards) {
12548
12645
  await GuardExecutor.checkFrozenFields(g, e.docId, existing, incoming, e.computedFieldNames);
12549
12646
  }
@@ -12765,6 +12862,7 @@ var Noydb = class {
12765
12862
  engine.setCacheInvalidator((collection, id, action) => comp._invalidateSyncApplied(collection, id, action));
12766
12863
  engine.setGraphBatchController({ begin: () => comp._beginGraphBatch(), flush: () => comp._flushGraphBatch() });
12767
12864
  engine.setReservedLookupSource({ collections: () => comp._reservedLookupCollectionNames() });
12865
+ engine.setReservedDictExpander((names) => comp._reservedDictDepsOf(names));
12768
12866
  });
12769
12867
  await comp._initGuards(this.options.guardStrategies ?? []);
12770
12868
  await comp._initDerivations(this.options.derivationStrategies ?? []);
@@ -13539,6 +13637,16 @@ var Noydb = class {
13539
13637
  get coordination() {
13540
13638
  return this.coordinationProvider;
13541
13639
  }
13640
+ /**
13641
+ * #693: true when multi-tab coordination is active at all — presence/election
13642
+ * alone (`propagateWrites: false`) or full write-propagation — a peer tab can
13643
+ * write this instance's shared store out-of-band either way, so per-collection
13644
+ * marker-id sets are not authoritative and the re-create gate must fall back to
13645
+ * a store read. Live (tab coordination is enable/disable-able at runtime).
13646
+ */
13647
+ get _tabCoordinationActive() {
13648
+ return this.tabCoordinator !== void 0;
13649
+ }
13542
13650
  /**
13543
13651
  * Soft-lock a single vault: clear its in-memory keyring, DEKs, vault
13544
13652
  * instance, sync engine, policy enforcer, and active-tier entry —
@@ -13811,7 +13919,7 @@ var Noydb = class {
13811
13919
  "setPublicEnvelope: the public-envelope feature is not enabled. Pass `publicEnvelope: true` (or a schema object) to `createNoydb`."
13812
13920
  );
13813
13921
  }
13814
- const { loadPublicEnvelope, savePublicEnvelope, resolveSchema, validatePublicEnvelopeInput } = await import("./public-envelope-NJVB7LPA.js");
13922
+ const { loadPublicEnvelope, savePublicEnvelope, resolveSchema, validatePublicEnvelopeInput } = await import("./public-envelope-GOG4LUM7.js");
13815
13923
  const schema = resolveSchema(this.options.publicEnvelope);
13816
13924
  validatePublicEnvelopeInput(input, schema);
13817
13925
  const now = (/* @__PURE__ */ new Date()).toISOString();
@@ -13840,7 +13948,7 @@ var Noydb = class {
13840
13948
  * regardless).
13841
13949
  */
13842
13950
  async getPublicEnvelope(vault, opts = {}) {
13843
- const { readPublicEnvelope } = await import("./public-envelope-NJVB7LPA.js");
13951
+ const { readPublicEnvelope } = await import("./public-envelope-GOG4LUM7.js");
13844
13952
  return readPublicEnvelope(this.options.store, vault, opts);
13845
13953
  }
13846
13954
  // ─── Auth introspection ─────────────────────────────────────────
@@ -14031,9 +14139,9 @@ async function createNoydb(options) {
14031
14139
  throw new ValidationError("A secret (passphrase) or getKeyring callback is required when encryption is enabled");
14032
14140
  }
14033
14141
  if (!options.coordinationStrategy) options = { ...options, coordinationStrategy: await createDefaultCoordinationProvider(options.store) };
14034
- if (!options.userApiFactory) options = { ...options, userApiFactory: (await import("./api-YGMINAET.js")).createUserApi };
14142
+ if (!options.userApiFactory) options = { ...options, userApiFactory: (await import("./api-3TH2GOFQ.js")).createUserApi };
14035
14143
  if (!options.policyFactory) {
14036
- const policyModule = await import("./policy-JTFOPPUU.js");
14144
+ const policyModule = await import("./policy-5POYLI26.js");
14037
14145
  options = { ...options, policyFactory: policyModule.createNoydbPolicy, policyCheckGateFn: policyModule.checkGate };
14038
14146
  }
14039
14147
  return new Noydb(options);
@@ -14070,4 +14178,4 @@ export {
14070
14178
  Noydb,
14071
14179
  createNoydb
14072
14180
  };
14073
- //# sourceMappingURL=chunk-A2QF4JUE.js.map
14181
+ //# sourceMappingURL=chunk-YCXKFB7J.js.map