@noy-db/hub 0.3.0-pre.4 → 0.3.0-pre.6

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 (345) hide show
  1. package/dist/adapter/index.d.ts +1 -1
  2. package/dist/adapter/index.js +1 -1
  3. package/dist/aggregate/index.d.ts +2 -2
  4. package/dist/aggregate/index.js +4 -4
  5. package/dist/api-OQ65LUSK.js +20 -0
  6. package/dist/as/index.d.ts +3 -3
  7. package/dist/as/index.js +9 -9
  8. package/dist/at/index.d.ts +1 -1
  9. package/dist/attestation/index.d.ts +2 -2
  10. package/dist/attestation/index.js +16 -16
  11. package/dist/{backup-MOB27UUN.js → backup-Y3RMFGVX.js} +9 -9
  12. package/dist/blobs/index.d.ts +3 -3
  13. package/dist/blobs/index.js +8 -8
  14. package/dist/bundle/index.d.ts +4 -4
  15. package/dist/bundle/index.js +17 -17
  16. package/dist/{bundle-Bs13EZtX.d.ts → bundle-BPOSpGZG.d.ts} +1 -1
  17. package/dist/by/index.js +2 -2
  18. package/dist/cargo/index.d.ts +3 -3
  19. package/dist/cargo/index.js +19 -19
  20. package/dist/{chunk-BMQOH7MM.js → chunk-26FSVNBL.js} +2 -2
  21. package/dist/{chunk-HLUKZ36Q.js → chunk-3IMGBWP7.js} +5 -5
  22. package/dist/{chunk-LPRPVCNY.js → chunk-3UUXDQPM.js} +2 -2
  23. package/dist/{chunk-AF5ZRTZ4.js → chunk-47C4CI7R.js} +2 -2
  24. package/dist/{chunk-P27Z66EB.js → chunk-4I4UNXHM.js} +4 -4
  25. package/dist/{chunk-ULIHDPKL.js → chunk-55LSDABW.js} +2 -2
  26. package/dist/{chunk-P5WXDYMD.js → chunk-5GQE5IDB.js} +4 -4
  27. package/dist/{chunk-TLJOJBZD.js → chunk-5HZULLHE.js} +2 -2
  28. package/dist/chunk-5JQMX2EH.js +50 -0
  29. package/dist/chunk-5JQMX2EH.js.map +1 -0
  30. package/dist/{chunk-PGFY7IRW.js → chunk-5UOPIPZC.js} +3 -3
  31. package/dist/{chunk-6HNKCKFZ.js → chunk-65FW3ALF.js} +4 -4
  32. package/dist/{chunk-ZKF6HH7V.js → chunk-6P5AJ2ZS.js} +2 -2
  33. package/dist/{chunk-QNTEDPWP.js → chunk-6PALJTC2.js} +3 -3
  34. package/dist/{chunk-GBTUANXF.js → chunk-6Z435B6N.js} +5 -5
  35. package/dist/{chunk-Z3FZC5GV.js → chunk-73C4RPMX.js} +3 -3
  36. package/dist/{chunk-VMJ5URU7.js → chunk-7A7LTSJR.js} +5 -5
  37. package/dist/{chunk-OVO2RZAE.js → chunk-7AGLCOYE.js} +10 -10
  38. package/dist/{chunk-XYYW64LB.js → chunk-7CZ6YXMO.js} +2 -2
  39. package/dist/{chunk-RDHAGBEB.js → chunk-7KTL4RHZ.js} +3 -3
  40. package/dist/{chunk-4K3MQ5S3.js → chunk-BASCPHNM.js} +2 -2
  41. package/dist/{chunk-CPXPHQGX.js → chunk-BYS45GOJ.js} +17 -12
  42. package/dist/chunk-BYS45GOJ.js.map +1 -0
  43. package/dist/{chunk-P2LDXRGP.js → chunk-C2ZKWL37.js} +2 -2
  44. package/dist/{chunk-BKGIWGCX.js → chunk-C4NOLA5X.js} +2 -2
  45. package/dist/{chunk-EWR7HL3K.js → chunk-C57J6AWN.js} +30 -5
  46. package/dist/{chunk-EWR7HL3K.js.map → chunk-C57J6AWN.js.map} +1 -1
  47. package/dist/{chunk-TB5RNNJ4.js → chunk-C6A2DPRE.js} +4 -4
  48. package/dist/{chunk-SW56GSYC.js → chunk-CHK5VVMI.js} +2 -2
  49. package/dist/{chunk-GOUNIHFA.js → chunk-CYWF3JJE.js} +10 -10
  50. package/dist/{chunk-ZPHDGUZZ.js → chunk-D6ADQ4QL.js} +581 -82
  51. package/dist/chunk-D6ADQ4QL.js.map +1 -0
  52. package/dist/{chunk-H7RYPVMJ.js → chunk-DBBP35OP.js} +2 -2
  53. package/dist/{chunk-A5DYVMDR.js → chunk-E7MAS736.js} +3 -3
  54. package/dist/{chunk-3Y4QLJ6K.js → chunk-EU7HDMT3.js} +2 -2
  55. package/dist/{chunk-T65UZXR6.js → chunk-FCOZ7DEC.js} +3 -3
  56. package/dist/{chunk-HBKDR7R3.js → chunk-GEK6UGOJ.js} +2 -2
  57. package/dist/{chunk-7J7JRYXW.js → chunk-GGFT2XFF.js} +4 -4
  58. package/dist/chunk-GYGLAVCX.js +19 -0
  59. package/dist/chunk-GYGLAVCX.js.map +1 -0
  60. package/dist/{chunk-HY6ZGGEC.js → chunk-HJZ3CTZ2.js} +2 -2
  61. package/dist/{chunk-GXGK22QU.js → chunk-HU55NPHZ.js} +2 -2
  62. package/dist/{chunk-U24XHXNK.js → chunk-I6JJ6VJS.js} +2 -2
  63. package/dist/{chunk-3QRQOBS7.js → chunk-I7GTYPWF.js} +2 -2
  64. package/dist/{chunk-N5YVZHCB.js → chunk-II6DLDZM.js} +2 -2
  65. package/dist/{chunk-XJR3COJO.js → chunk-IVIGZTFH.js} +4 -4
  66. package/dist/{chunk-Z7KI4WHR.js → chunk-LFGJG4XZ.js} +2 -2
  67. package/dist/{chunk-ZKYMKF2S.js → chunk-ML5UP7YN.js} +5 -5
  68. package/dist/{chunk-ZROMNP7Q.js → chunk-MOQ5M46U.js} +2 -2
  69. package/dist/{chunk-GQOT6QJR.js → chunk-MT4YWJRW.js} +5 -5
  70. package/dist/{chunk-P3V7JTB6.js → chunk-NL4HVTNO.js} +3 -3
  71. package/dist/{chunk-GZZL5R73.js → chunk-OCVO2V63.js} +4 -4
  72. package/dist/{chunk-U23JUUPX.js → chunk-OJ64XMPJ.js} +10 -2
  73. package/dist/{chunk-U23JUUPX.js.map → chunk-OJ64XMPJ.js.map} +1 -1
  74. package/dist/{chunk-VFRNWE5P.js → chunk-OLVIGEHQ.js} +6 -6
  75. package/dist/{chunk-HMXLN43G.js → chunk-OWGAXPRE.js} +2 -2
  76. package/dist/{chunk-T2EGAXPM.js → chunk-PAJCRV7O.js} +2 -2
  77. package/dist/{chunk-5MRE3C4Q.js → chunk-PLQCXH75.js} +2 -2
  78. package/dist/{chunk-RTS23VIJ.js → chunk-PYIUDUGS.js} +2 -2
  79. package/dist/{chunk-5CY35H55.js → chunk-QQQE6QUO.js} +8 -8
  80. package/dist/{chunk-TYGW5TOR.js → chunk-RIZQZKU6.js} +4 -4
  81. package/dist/{chunk-VPCMJ5Z4.js → chunk-RLP65PI3.js} +5 -5
  82. package/dist/{chunk-6RXPSMKR.js → chunk-RNYDHIQL.js} +3 -3
  83. package/dist/{chunk-5W7AOFWA.js → chunk-RXUFMTD5.js} +2 -2
  84. package/dist/chunk-S2IDC6MO.js +167 -0
  85. package/dist/chunk-S2IDC6MO.js.map +1 -0
  86. package/dist/{chunk-Z5PIUYNB.js → chunk-S55MJQUQ.js} +5 -5
  87. package/dist/{chunk-O2DB4C3M.js → chunk-SXLMLECV.js} +3 -3
  88. package/dist/{chunk-OPTFANOX.js → chunk-TSAT3E7Y.js} +3 -3
  89. package/dist/{chunk-M66NAZA4.js → chunk-TWJVOYU2.js} +3 -3
  90. package/dist/{chunk-43ISXURO.js → chunk-U7LV2DUN.js} +2 -2
  91. package/dist/{chunk-FH52CDEW.js → chunk-UB3XHGFG.js} +5 -5
  92. package/dist/{chunk-TCIUO62Z.js → chunk-UWZ7O4NR.js} +2 -2
  93. package/dist/{chunk-K5P46KB3.js → chunk-UZZFV3O3.js} +7 -7
  94. package/dist/{chunk-P3NGV5RV.js → chunk-V76PHWLE.js} +2 -2
  95. package/dist/{chunk-UOEWDCUX.js → chunk-VFQOE76I.js} +2 -2
  96. package/dist/{chunk-VRPBEOWU.js → chunk-VIWOGJ2O.js} +2 -2
  97. package/dist/{chunk-5EWYUR5P.js → chunk-VK6OC22R.js} +2 -2
  98. package/dist/{chunk-VAWY44JW.js → chunk-WAL4MRBK.js} +25 -10
  99. package/dist/chunk-WAL4MRBK.js.map +1 -0
  100. package/dist/{chunk-H5XRIJX3.js → chunk-WAW4VFS7.js} +4 -4
  101. package/dist/{chunk-SEQ2JI3Y.js → chunk-WQAT24C2.js} +6 -6
  102. package/dist/{chunk-NB47TXGP.js → chunk-XDWNF4BS.js} +8 -8
  103. package/dist/{chunk-G7RDYYTE.js → chunk-XW5LZYV4.js} +2 -2
  104. package/dist/{chunk-LIP6JWYK.js → chunk-YTCCC6NG.js} +3 -3
  105. package/dist/{chunk-OFBFAVLI.js → chunk-YXGIPYH4.js} +52 -6
  106. package/dist/chunk-YXGIPYH4.js.map +1 -0
  107. package/dist/{chunk-TVRQ3RYH.js → chunk-ZHK3F5RB.js} +6 -7
  108. package/dist/chunk-ZHK3F5RB.js.map +1 -0
  109. package/dist/{chunk-G4MGYGSS.js → chunk-ZRJBLWKQ.js} +5 -5
  110. package/dist/classified/index.d.ts +3 -3
  111. package/dist/classified/index.js +3 -3
  112. package/dist/{collection-facade-MKEBZDWW.js → collection-facade-5V3JS7SD.js} +13 -13
  113. package/dist/{computed-BMMEFRFJ.js → computed-6FOFXQPE.js} +3 -3
  114. package/dist/{config-drift-KGM7ZRW4.js → config-drift-SWZNEH5H.js} +3 -3
  115. package/dist/consent/index.d.ts +2 -2
  116. package/dist/consent/index.js +7 -7
  117. package/dist/crdt/index.d.ts +2 -2
  118. package/dist/dead-filter-MGWMNRO2.js +28 -0
  119. package/dist/dead-filter-MGWMNRO2.js.map +1 -0
  120. package/dist/{delegation-BQNIEHZE.js → delegation-AUY42TGU.js} +9 -9
  121. package/dist/derivations/index.d.ts +3 -3
  122. package/dist/derivations/index.js +9 -9
  123. package/dist/derive-FWSEWWI7.js +21 -0
  124. package/dist/{dev-unlock-Cqd5Xv5J.d.ts → dev-unlock-DxecHstJ.d.ts} +1 -1
  125. package/dist/{enclave-YN6223OG.js → enclave-UYZGSE2C.js} +8 -8
  126. package/dist/executor-EUPYHCLU.js +9 -0
  127. package/dist/executor-KZ4B3PRT.js +9 -0
  128. package/dist/executor-XWPD5PIM.js +21 -0
  129. package/dist/export-accessible-M54OI6FO.js +23 -0
  130. package/dist/{extract-partition-RNVSFHAB.js → extract-partition-MIHAL6PP.js} +13 -13
  131. package/dist/{fanout-sidecar-WS22Q5WH.js → fanout-sidecar-SSEW7BQB.js} +7 -7
  132. package/dist/find-OH4BEULF.js +11 -0
  133. package/dist/forget/index.js +7 -7
  134. package/dist/guards/index.d.ts +3 -3
  135. package/dist/guards/index.js +6 -6
  136. package/dist/{hash-D8Q5MJLA.d.ts → hash-umqwdLhO.d.ts} +1 -1
  137. package/dist/history/index.d.ts +3 -3
  138. package/dist/history/index.js +9 -9
  139. package/dist/i18n/index.d.ts +2 -2
  140. package/dist/i18n/index.js +11 -11
  141. package/dist/in/index.d.ts +1 -1
  142. package/dist/{index-D4GQe1Rx.d.ts → index-B-LKCpm6.d.ts} +103 -4
  143. package/dist/{index-DRxk8q_7.d.ts → index-zdEVWlkZ.d.ts} +2 -2
  144. package/dist/index.d.ts +21 -14
  145. package/dist/index.js +115 -113
  146. package/dist/index.js.map +1 -1
  147. package/dist/indexing/index.d.ts +2 -2
  148. package/dist/indexing/index.js +4 -4
  149. package/dist/issue-PHWTGH2G.js +19 -0
  150. package/dist/kernel/index.d.ts +2 -2
  151. package/dist/kernel/index.js +10 -10
  152. package/dist/lazy/index.d.ts +2 -2
  153. package/dist/{ledger-KZWBKAG5.js → ledger-IWWY7IIC.js} +9 -9
  154. package/dist/liberate-QDTNV7SM.js +24 -0
  155. package/dist/{link-set-UQEIYQAM.js → link-set-HJOC7GB7.js} +9 -9
  156. package/dist/materialized-views/index.d.ts +3 -3
  157. package/dist/materialized-views/index.js +13 -13
  158. package/dist/{mime-magic-DmwT7OzZ.d.ts → mime-magic-C_O9KsAk.d.ts} +1 -1
  159. package/dist/noydb-Y5L74IDJ.js +62 -0
  160. package/dist/on/index.d.ts +1 -1
  161. package/dist/on/index.js +7 -7
  162. package/dist/overlay-views/index.d.ts +3 -3
  163. package/dist/overlay-views/index.js +4 -4
  164. package/dist/periods/index.d.ts +2 -2
  165. package/dist/periods/index.js +10 -10
  166. package/dist/pod/index.d.ts +2 -2
  167. package/dist/pod/index.js +9 -9
  168. package/dist/{policy-YIKUH4AD.js → policy-3ZKSGSRK.js} +3 -3
  169. package/dist/portability/index.d.ts +2 -2
  170. package/dist/portability/index.js +8 -8
  171. package/dist/post-register-BIXGCZ2M.js +55 -0
  172. package/dist/post-register-BIXGCZ2M.js.map +1 -0
  173. package/dist/{public-envelope-MRN5YYZZ.js → public-envelope-6UBQ4IUY.js} +3 -3
  174. package/dist/query/index.d.ts +1 -1
  175. package/dist/query/index.js +6 -6
  176. package/dist/register-OVONZ2MJ.js +23 -0
  177. package/dist/registry-AIEYUOSG.js +19 -0
  178. package/dist/registry-D5J7SVJ2.js +17 -0
  179. package/dist/registry-HSNQ4NBP.js +9 -0
  180. package/dist/{request-withdrawal-EHALV66Y.js → request-withdrawal-IHF64VIT.js} +12 -12
  181. package/dist/{reveal-TBLTFWQ2.js → reveal-B77Q2BJW.js} +5 -5
  182. package/dist/{revoke-MHAUAESM.js → revoke-BPPOUZPE.js} +9 -9
  183. package/dist/satellites/index.d.ts +5 -0
  184. package/dist/satellites/index.js +8 -0
  185. package/dist/sealed-record/index.d.ts +2 -2
  186. package/dist/sealed-record/index.js +10 -10
  187. package/dist/session/index.d.ts +3 -3
  188. package/dist/session/index.js +7 -7
  189. package/dist/shadow/index.d.ts +2 -2
  190. package/dist/shadow/index.js +2 -2
  191. package/dist/{signer-PQ74YXRY.js → signer-MNQEL27B.js} +8 -8
  192. package/dist/snapshots/index.d.ts +2 -2
  193. package/dist/snapshots/index.js +8 -8
  194. package/dist/{stale-7Q62KVI3.js → stale-COBBJORL.js} +2 -2
  195. package/dist/storage-DVKYH7UU.js +23 -0
  196. package/dist/storage-DVKYH7UU.js.map +1 -0
  197. package/dist/sync/index.d.ts +1 -1
  198. package/dist/sync/index.js +7 -7
  199. package/dist/team/index.d.ts +29 -4
  200. package/dist/team/index.js +14 -14
  201. package/dist/tiers/index.d.ts +1 -1
  202. package/dist/tiers/index.js +8 -8
  203. package/dist/to/index.d.ts +1 -1
  204. package/dist/to/index.js +1 -1
  205. package/dist/{transition-guard-C4hvR-Ac.d.ts → transition-guard-CzqWwVGP.d.ts} +1 -1
  206. package/dist/tx/index.d.ts +2 -2
  207. package/dist/tx/index.js +3 -3
  208. package/dist/util/index.js +1 -1
  209. package/dist/{validators-Ctgkj5qd.d.ts → validators-Bdiv0ucK.d.ts} +1 -1
  210. package/dist/{vault-diff-B1Ir6EGs.d.ts → vault-diff-BbZngJUP.d.ts} +1 -1
  211. package/dist/{verify-YB5LQHNA.js → verify-CAYGXYNO.js} +5 -5
  212. package/dist/{walk-5C3GPKT2.js → walk-CVNXFUEF.js} +9 -9
  213. package/dist/with/index.d.ts +2 -2
  214. package/dist/with/index.js +9 -9
  215. package/dist/{with-materialized-view-Bp65kKdQ.d.ts → with-materialized-view-BmKXygt2.d.ts} +1 -1
  216. package/dist/{with-overlayed-view-BRhdQNrK.d.ts → with-overlayed-view-Bnwe7E75.d.ts} +1 -1
  217. package/dist/{with-rollup-bQRPc3y1.d.ts → with-rollup-JXTxc9cu.d.ts} +1 -1
  218. package/dist/{withdraw-accessible-JMX2TCPX.js → withdraw-accessible-5ALN3ZGM.js} +11 -11
  219. package/dist/withdraw-accessible-5ALN3ZGM.js.map +1 -0
  220. package/package.json +7 -3
  221. package/dist/api-JOXUNSKP.js +0 -20
  222. package/dist/chunk-CPXPHQGX.js.map +0 -1
  223. package/dist/chunk-KYY7L72M.js +0 -106
  224. package/dist/chunk-KYY7L72M.js.map +0 -1
  225. package/dist/chunk-OFBFAVLI.js.map +0 -1
  226. package/dist/chunk-TVRQ3RYH.js.map +0 -1
  227. package/dist/chunk-VAWY44JW.js.map +0 -1
  228. package/dist/chunk-ZPHDGUZZ.js.map +0 -1
  229. package/dist/executor-CBTNU5VZ.js +0 -9
  230. package/dist/executor-DJHNSTIR.js +0 -9
  231. package/dist/executor-FGISLQIN.js +0 -21
  232. package/dist/export-accessible-P7SLRLK3.js +0 -23
  233. package/dist/find-RNBG7LBY.js +0 -11
  234. package/dist/issue-W5QG53B5.js +0 -19
  235. package/dist/liberate-GMGCHIND.js +0 -24
  236. package/dist/noydb-KS2O2MRI.js +0 -60
  237. package/dist/register-K6DDSIXN.js +0 -21
  238. package/dist/registry-IMNMHWTM.js +0 -17
  239. package/dist/registry-K6VUQXKV.js +0 -19
  240. package/dist/registry-ZVO3T4M5.js +0 -9
  241. package/dist/storage-5E6YB2JY.js +0 -21
  242. /package/dist/{api-JOXUNSKP.js.map → api-OQ65LUSK.js.map} +0 -0
  243. /package/dist/{backup-MOB27UUN.js.map → backup-Y3RMFGVX.js.map} +0 -0
  244. /package/dist/{chunk-BMQOH7MM.js.map → chunk-26FSVNBL.js.map} +0 -0
  245. /package/dist/{chunk-HLUKZ36Q.js.map → chunk-3IMGBWP7.js.map} +0 -0
  246. /package/dist/{chunk-LPRPVCNY.js.map → chunk-3UUXDQPM.js.map} +0 -0
  247. /package/dist/{chunk-AF5ZRTZ4.js.map → chunk-47C4CI7R.js.map} +0 -0
  248. /package/dist/{chunk-P27Z66EB.js.map → chunk-4I4UNXHM.js.map} +0 -0
  249. /package/dist/{chunk-ULIHDPKL.js.map → chunk-55LSDABW.js.map} +0 -0
  250. /package/dist/{chunk-P5WXDYMD.js.map → chunk-5GQE5IDB.js.map} +0 -0
  251. /package/dist/{chunk-TLJOJBZD.js.map → chunk-5HZULLHE.js.map} +0 -0
  252. /package/dist/{chunk-PGFY7IRW.js.map → chunk-5UOPIPZC.js.map} +0 -0
  253. /package/dist/{chunk-6HNKCKFZ.js.map → chunk-65FW3ALF.js.map} +0 -0
  254. /package/dist/{chunk-ZKF6HH7V.js.map → chunk-6P5AJ2ZS.js.map} +0 -0
  255. /package/dist/{chunk-QNTEDPWP.js.map → chunk-6PALJTC2.js.map} +0 -0
  256. /package/dist/{chunk-GBTUANXF.js.map → chunk-6Z435B6N.js.map} +0 -0
  257. /package/dist/{chunk-Z3FZC5GV.js.map → chunk-73C4RPMX.js.map} +0 -0
  258. /package/dist/{chunk-VMJ5URU7.js.map → chunk-7A7LTSJR.js.map} +0 -0
  259. /package/dist/{chunk-OVO2RZAE.js.map → chunk-7AGLCOYE.js.map} +0 -0
  260. /package/dist/{chunk-XYYW64LB.js.map → chunk-7CZ6YXMO.js.map} +0 -0
  261. /package/dist/{chunk-RDHAGBEB.js.map → chunk-7KTL4RHZ.js.map} +0 -0
  262. /package/dist/{chunk-4K3MQ5S3.js.map → chunk-BASCPHNM.js.map} +0 -0
  263. /package/dist/{chunk-P2LDXRGP.js.map → chunk-C2ZKWL37.js.map} +0 -0
  264. /package/dist/{chunk-BKGIWGCX.js.map → chunk-C4NOLA5X.js.map} +0 -0
  265. /package/dist/{chunk-TB5RNNJ4.js.map → chunk-C6A2DPRE.js.map} +0 -0
  266. /package/dist/{chunk-SW56GSYC.js.map → chunk-CHK5VVMI.js.map} +0 -0
  267. /package/dist/{chunk-GOUNIHFA.js.map → chunk-CYWF3JJE.js.map} +0 -0
  268. /package/dist/{chunk-H7RYPVMJ.js.map → chunk-DBBP35OP.js.map} +0 -0
  269. /package/dist/{chunk-A5DYVMDR.js.map → chunk-E7MAS736.js.map} +0 -0
  270. /package/dist/{chunk-3Y4QLJ6K.js.map → chunk-EU7HDMT3.js.map} +0 -0
  271. /package/dist/{chunk-T65UZXR6.js.map → chunk-FCOZ7DEC.js.map} +0 -0
  272. /package/dist/{chunk-HBKDR7R3.js.map → chunk-GEK6UGOJ.js.map} +0 -0
  273. /package/dist/{chunk-7J7JRYXW.js.map → chunk-GGFT2XFF.js.map} +0 -0
  274. /package/dist/{chunk-HY6ZGGEC.js.map → chunk-HJZ3CTZ2.js.map} +0 -0
  275. /package/dist/{chunk-GXGK22QU.js.map → chunk-HU55NPHZ.js.map} +0 -0
  276. /package/dist/{chunk-U24XHXNK.js.map → chunk-I6JJ6VJS.js.map} +0 -0
  277. /package/dist/{chunk-3QRQOBS7.js.map → chunk-I7GTYPWF.js.map} +0 -0
  278. /package/dist/{chunk-N5YVZHCB.js.map → chunk-II6DLDZM.js.map} +0 -0
  279. /package/dist/{chunk-XJR3COJO.js.map → chunk-IVIGZTFH.js.map} +0 -0
  280. /package/dist/{chunk-Z7KI4WHR.js.map → chunk-LFGJG4XZ.js.map} +0 -0
  281. /package/dist/{chunk-ZKYMKF2S.js.map → chunk-ML5UP7YN.js.map} +0 -0
  282. /package/dist/{chunk-ZROMNP7Q.js.map → chunk-MOQ5M46U.js.map} +0 -0
  283. /package/dist/{chunk-GQOT6QJR.js.map → chunk-MT4YWJRW.js.map} +0 -0
  284. /package/dist/{chunk-P3V7JTB6.js.map → chunk-NL4HVTNO.js.map} +0 -0
  285. /package/dist/{chunk-GZZL5R73.js.map → chunk-OCVO2V63.js.map} +0 -0
  286. /package/dist/{chunk-VFRNWE5P.js.map → chunk-OLVIGEHQ.js.map} +0 -0
  287. /package/dist/{chunk-HMXLN43G.js.map → chunk-OWGAXPRE.js.map} +0 -0
  288. /package/dist/{chunk-T2EGAXPM.js.map → chunk-PAJCRV7O.js.map} +0 -0
  289. /package/dist/{chunk-5MRE3C4Q.js.map → chunk-PLQCXH75.js.map} +0 -0
  290. /package/dist/{chunk-RTS23VIJ.js.map → chunk-PYIUDUGS.js.map} +0 -0
  291. /package/dist/{chunk-5CY35H55.js.map → chunk-QQQE6QUO.js.map} +0 -0
  292. /package/dist/{chunk-TYGW5TOR.js.map → chunk-RIZQZKU6.js.map} +0 -0
  293. /package/dist/{chunk-VPCMJ5Z4.js.map → chunk-RLP65PI3.js.map} +0 -0
  294. /package/dist/{chunk-6RXPSMKR.js.map → chunk-RNYDHIQL.js.map} +0 -0
  295. /package/dist/{chunk-5W7AOFWA.js.map → chunk-RXUFMTD5.js.map} +0 -0
  296. /package/dist/{chunk-Z5PIUYNB.js.map → chunk-S55MJQUQ.js.map} +0 -0
  297. /package/dist/{chunk-O2DB4C3M.js.map → chunk-SXLMLECV.js.map} +0 -0
  298. /package/dist/{chunk-OPTFANOX.js.map → chunk-TSAT3E7Y.js.map} +0 -0
  299. /package/dist/{chunk-M66NAZA4.js.map → chunk-TWJVOYU2.js.map} +0 -0
  300. /package/dist/{chunk-43ISXURO.js.map → chunk-U7LV2DUN.js.map} +0 -0
  301. /package/dist/{chunk-FH52CDEW.js.map → chunk-UB3XHGFG.js.map} +0 -0
  302. /package/dist/{chunk-TCIUO62Z.js.map → chunk-UWZ7O4NR.js.map} +0 -0
  303. /package/dist/{chunk-K5P46KB3.js.map → chunk-UZZFV3O3.js.map} +0 -0
  304. /package/dist/{chunk-P3NGV5RV.js.map → chunk-V76PHWLE.js.map} +0 -0
  305. /package/dist/{chunk-UOEWDCUX.js.map → chunk-VFQOE76I.js.map} +0 -0
  306. /package/dist/{chunk-VRPBEOWU.js.map → chunk-VIWOGJ2O.js.map} +0 -0
  307. /package/dist/{chunk-5EWYUR5P.js.map → chunk-VK6OC22R.js.map} +0 -0
  308. /package/dist/{chunk-H5XRIJX3.js.map → chunk-WAW4VFS7.js.map} +0 -0
  309. /package/dist/{chunk-SEQ2JI3Y.js.map → chunk-WQAT24C2.js.map} +0 -0
  310. /package/dist/{chunk-NB47TXGP.js.map → chunk-XDWNF4BS.js.map} +0 -0
  311. /package/dist/{chunk-G7RDYYTE.js.map → chunk-XW5LZYV4.js.map} +0 -0
  312. /package/dist/{chunk-LIP6JWYK.js.map → chunk-YTCCC6NG.js.map} +0 -0
  313. /package/dist/{chunk-G4MGYGSS.js.map → chunk-ZRJBLWKQ.js.map} +0 -0
  314. /package/dist/{collection-facade-MKEBZDWW.js.map → collection-facade-5V3JS7SD.js.map} +0 -0
  315. /package/dist/{computed-BMMEFRFJ.js.map → computed-6FOFXQPE.js.map} +0 -0
  316. /package/dist/{config-drift-KGM7ZRW4.js.map → config-drift-SWZNEH5H.js.map} +0 -0
  317. /package/dist/{delegation-BQNIEHZE.js.map → delegation-AUY42TGU.js.map} +0 -0
  318. /package/dist/{enclave-YN6223OG.js.map → derive-FWSEWWI7.js.map} +0 -0
  319. /package/dist/{executor-CBTNU5VZ.js.map → enclave-UYZGSE2C.js.map} +0 -0
  320. /package/dist/{executor-DJHNSTIR.js.map → executor-EUPYHCLU.js.map} +0 -0
  321. /package/dist/{executor-FGISLQIN.js.map → executor-KZ4B3PRT.js.map} +0 -0
  322. /package/dist/{export-accessible-P7SLRLK3.js.map → executor-XWPD5PIM.js.map} +0 -0
  323. /package/dist/{extract-partition-RNVSFHAB.js.map → export-accessible-M54OI6FO.js.map} +0 -0
  324. /package/dist/{find-RNBG7LBY.js.map → extract-partition-MIHAL6PP.js.map} +0 -0
  325. /package/dist/{fanout-sidecar-WS22Q5WH.js.map → fanout-sidecar-SSEW7BQB.js.map} +0 -0
  326. /package/dist/{issue-W5QG53B5.js.map → find-OH4BEULF.js.map} +0 -0
  327. /package/dist/{ledger-KZWBKAG5.js.map → issue-PHWTGH2G.js.map} +0 -0
  328. /package/dist/{liberate-GMGCHIND.js.map → ledger-IWWY7IIC.js.map} +0 -0
  329. /package/dist/{link-set-UQEIYQAM.js.map → liberate-QDTNV7SM.js.map} +0 -0
  330. /package/dist/{noydb-KS2O2MRI.js.map → link-set-HJOC7GB7.js.map} +0 -0
  331. /package/dist/{policy-YIKUH4AD.js.map → noydb-Y5L74IDJ.js.map} +0 -0
  332. /package/dist/{public-envelope-MRN5YYZZ.js.map → policy-3ZKSGSRK.js.map} +0 -0
  333. /package/dist/{register-K6DDSIXN.js.map → public-envelope-6UBQ4IUY.js.map} +0 -0
  334. /package/dist/{registry-IMNMHWTM.js.map → register-OVONZ2MJ.js.map} +0 -0
  335. /package/dist/{registry-K6VUQXKV.js.map → registry-AIEYUOSG.js.map} +0 -0
  336. /package/dist/{registry-ZVO3T4M5.js.map → registry-D5J7SVJ2.js.map} +0 -0
  337. /package/dist/{request-withdrawal-EHALV66Y.js.map → registry-HSNQ4NBP.js.map} +0 -0
  338. /package/dist/{revoke-MHAUAESM.js.map → request-withdrawal-IHF64VIT.js.map} +0 -0
  339. /package/dist/{reveal-TBLTFWQ2.js.map → reveal-B77Q2BJW.js.map} +0 -0
  340. /package/dist/{signer-PQ74YXRY.js.map → revoke-BPPOUZPE.js.map} +0 -0
  341. /package/dist/{stale-7Q62KVI3.js.map → satellites/index.js.map} +0 -0
  342. /package/dist/{storage-5E6YB2JY.js.map → signer-MNQEL27B.js.map} +0 -0
  343. /package/dist/{withdraw-accessible-JMX2TCPX.js.map → stale-COBBJORL.js.map} +0 -0
  344. /package/dist/{verify-YB5LQHNA.js.map → verify-CAYGXYNO.js.map} +0 -0
  345. /package/dist/{walk-5C3GPKT2.js.map → walk-CVNXFUEF.js.map} +0 -0
@@ -1,3 +1,6 @@
1
+ import {
2
+ loadVaultPolicy
3
+ } from "./chunk-T45LAT2Y.js";
1
4
  import {
2
5
  jsonSchemaToFields
3
6
  } from "./chunk-TQ3REHVF.js";
@@ -6,20 +9,17 @@ import {
6
9
  SEQUENCE_COLLECTION,
7
10
  compileSequenceFormat,
8
11
  resolveSequenceKey
9
- } from "./chunk-P27Z66EB.js";
10
- import {
11
- loadVaultPolicy
12
- } from "./chunk-T45LAT2Y.js";
12
+ } from "./chunk-4I4UNXHM.js";
13
13
  import {
14
14
  LinkIntegrityError,
15
15
  isLinkCollectionName,
16
16
  linkCollectionName,
17
17
  linkRowKey
18
- } from "./chunk-P3NGV5RV.js";
18
+ } from "./chunk-V76PHWLE.js";
19
19
  import {
20
- derivePersistedSchema,
21
- isZod4Schema
22
- } from "./chunk-ULIHDPKL.js";
20
+ hashFields,
21
+ validateSatelliteDeclaration
22
+ } from "./chunk-5JQMX2EH.js";
23
23
  import {
24
24
  loadFence
25
25
  } from "./chunk-YFF2RP3X.js";
@@ -29,7 +29,20 @@ import {
29
29
  NO_SEARCH,
30
30
  VectorSet,
31
31
  buildPersistedIndexCallbacks
32
- } from "./chunk-GOUNIHFA.js";
32
+ } from "./chunk-CYWF3JJE.js";
33
+ import {
34
+ derivePersistedSchema,
35
+ isZod4Schema
36
+ } from "./chunk-55LSDABW.js";
37
+ import {
38
+ isBaseLive,
39
+ liveBaseIdSet
40
+ } from "./chunk-GYGLAVCX.js";
41
+ import {
42
+ CustodyApi,
43
+ NO_CARGO,
44
+ NO_CUSTODY
45
+ } from "./chunk-GGFT2XFF.js";
33
46
  import {
34
47
  ServiceBus,
35
48
  WriteHookRegistry,
@@ -37,50 +50,45 @@ import {
37
50
  assertCanImport,
38
51
  canExport,
39
52
  canImport
40
- } from "./chunk-P3V7JTB6.js";
53
+ } from "./chunk-NL4HVTNO.js";
41
54
  import {
42
55
  NO_ATTESTATION
43
- } from "./chunk-Z7KI4WHR.js";
56
+ } from "./chunk-LFGJG4XZ.js";
44
57
  import {
45
58
  NO_CLASSIFIED,
46
59
  enforceClassifiedWrite,
47
60
  resolveClassifiedFields
48
- } from "./chunk-AF5ZRTZ4.js";
61
+ } from "./chunk-47C4CI7R.js";
49
62
  import {
50
63
  NO_TIERS,
51
64
  classifySealedShred
52
- } from "./chunk-VMJ5URU7.js";
65
+ } from "./chunk-7A7LTSJR.js";
53
66
  import {
54
67
  NO_PORTABILITY
55
- } from "./chunk-N5YVZHCB.js";
56
- import {
57
- CustodyApi,
58
- NO_CARGO,
59
- NO_CUSTODY
60
- } from "./chunk-7J7JRYXW.js";
68
+ } from "./chunk-II6DLDZM.js";
61
69
  import {
62
70
  runDrainBarrier
63
- } from "./chunk-3Y4QLJ6K.js";
71
+ } from "./chunk-EU7HDMT3.js";
64
72
  import {
65
73
  PERIODS_COLLECTION
66
- } from "./chunk-GZZL5R73.js";
74
+ } from "./chunk-OCVO2V63.js";
67
75
  import {
68
76
  TxContext,
69
77
  revertExecuted
70
- } from "./chunk-T65UZXR6.js";
78
+ } from "./chunk-FCOZ7DEC.js";
71
79
  import {
72
80
  OverlayedCollection
73
- } from "./chunk-ZROMNP7Q.js";
81
+ } from "./chunk-MOQ5M46U.js";
74
82
  import {
75
83
  EXPORT_AUDIT_COLLECTION,
76
84
  createExportBlobsHandle,
77
85
  runCompaction
78
- } from "./chunk-5MRE3C4Q.js";
86
+ } from "./chunk-PLQCXH75.js";
79
87
  import {
80
88
  LazyQuery,
81
89
  decodeIdxId,
82
90
  encodeIdxId
83
- } from "./chunk-QNTEDPWP.js";
91
+ } from "./chunk-6PALJTC2.js";
84
92
  import {
85
93
  IMPLICIT_LAZY,
86
94
  Lru,
@@ -93,7 +101,7 @@ import {
93
101
  import {
94
102
  isDictCollectionName,
95
103
  isStaticDictDescriptor
96
- } from "./chunk-SEQ2JI3Y.js";
104
+ } from "./chunk-WQAT24C2.js";
97
105
  import {
98
106
  NO_TEAM,
99
107
  enrollAuthenticator,
@@ -104,7 +112,7 @@ import {
104
112
  rotatePassphrase,
105
113
  updateAuthenticator,
106
114
  writeMagicLinkGrant
107
- } from "./chunk-K5P46KB3.js";
115
+ } from "./chunk-UZZFV3O3.js";
108
116
  import {
109
117
  hasRecoveryEnrolled,
110
118
  hasStrongRecoveryEnrolled,
@@ -114,7 +122,7 @@ import {
114
122
  mintShamirRecoveryEntry,
115
123
  savePaperRecoveryEntries,
116
124
  saveShamirRecoveryEntries
117
- } from "./chunk-LPRPVCNY.js";
125
+ } from "./chunk-3UUXDQPM.js";
118
126
  import {
119
127
  INDEXED_STORE_POLICY
120
128
  } from "./chunk-VQNJ7UZL.js";
@@ -126,20 +134,21 @@ import {
126
134
  ensureCollectionDEK,
127
135
  hasAccess,
128
136
  hasWritePermission,
137
+ isSecretBearingReservedCollection,
129
138
  listUsers,
130
139
  loadKeyring,
131
140
  updateKeyringIdentity
132
- } from "./chunk-VAWY44JW.js";
141
+ } from "./chunk-WAL4MRBK.js";
133
142
  import {
134
143
  persistDirectoryConfig,
135
144
  readDirectoryConfig
136
- } from "./chunk-TB5RNNJ4.js";
145
+ } from "./chunk-C6A2DPRE.js";
137
146
  import {
138
147
  generateULID
139
148
  } from "./chunk-ZJADGNYF.js";
140
149
  import {
141
150
  sha256Hex
142
- } from "./chunk-M66NAZA4.js";
151
+ } from "./chunk-TWJVOYU2.js";
143
152
  import {
144
153
  NO_FORGET,
145
154
  addSubjectRef,
@@ -148,10 +157,10 @@ import {
148
157
  readDottedPath,
149
158
  rebuildSubjectIndex,
150
159
  removeSubjectRef
151
- } from "./chunk-O2DB4C3M.js";
160
+ } from "./chunk-SXLMLECV.js";
152
161
  import {
153
162
  NO_SEALED_RECORD
154
- } from "./chunk-G7RDYYTE.js";
163
+ } from "./chunk-XW5LZYV4.js";
155
164
  import {
156
165
  RecordCodec,
157
166
  SEALED_CEK_NS,
@@ -161,7 +170,7 @@ import {
161
170
  queryByDet,
162
171
  resolveStableCek,
163
172
  validateSchemaInput
164
- } from "./chunk-OVO2RZAE.js";
173
+ } from "./chunk-7AGLCOYE.js";
165
174
  import {
166
175
  buildTombstone,
167
176
  isTombstone
@@ -171,25 +180,25 @@ import {
171
180
  } from "./chunk-LN22XH4B.js";
172
181
  import {
173
182
  encrypt
174
- } from "./chunk-TLJOJBZD.js";
183
+ } from "./chunk-5HZULLHE.js";
175
184
  import {
176
185
  NO_AGGREGATE,
177
186
  Query,
178
187
  ScanBuilder
179
- } from "./chunk-GBTUANXF.js";
188
+ } from "./chunk-6Z435B6N.js";
180
189
  import {
181
190
  canonicalGroupKey
182
- } from "./chunk-P5WXDYMD.js";
191
+ } from "./chunk-5GQE5IDB.js";
183
192
  import {
184
193
  moneyRuntime,
185
194
  readPath
186
- } from "./chunk-ZKF6HH7V.js";
195
+ } from "./chunk-6P5AJ2ZS.js";
187
196
  import {
188
197
  getAtPath,
189
198
  resolvePolicy,
190
199
  setAtPathInPlace,
191
200
  stripI18nFilled
192
- } from "./chunk-4K3MQ5S3.js";
201
+ } from "./chunk-BASCPHNM.js";
193
202
  import {
194
203
  AlreadyElevatedError,
195
204
  AttestationError,
@@ -216,6 +225,7 @@ import {
216
225
  RecoveryNotEnrolledError,
217
226
  RecoveryProfileNotImplementedError,
218
227
  ReservedCollectionNameError,
228
+ SatelliteConfigError,
219
229
  SchemaFenceError,
220
230
  StaticDictReadonlyError,
221
231
  StoreCapabilityError,
@@ -226,7 +236,7 @@ import {
226
236
  UnknownDictCodeError,
227
237
  UnsupportedIndexOptionError,
228
238
  ValidationError
229
- } from "./chunk-U23JUUPX.js";
239
+ } from "./chunk-OJ64XMPJ.js";
230
240
 
231
241
  // src/port/by/default-provider.ts
232
242
  async function createDefaultCoordinationProvider(store) {
@@ -1059,7 +1069,7 @@ async function resolveStaleOnRead(accessor, outputCollection, id) {
1059
1069
  }
1060
1070
  const sourceWithId = { ...source, id };
1061
1071
  if (DerivationExecutor === null) {
1062
- ({ DerivationExecutor } = await import("./executor-CBTNU5VZ.js"));
1072
+ ({ DerivationExecutor } = await import("./executor-EUPYHCLU.js"));
1063
1073
  }
1064
1074
  const ctx = { vault: accessor.getReadOnlyFacade() };
1065
1075
  const result = await DerivationExecutor.run(spec, sourceWithId, 0, strategyHash, ctx);
@@ -1349,7 +1359,7 @@ function resolveCollectionConfig(opts) {
1349
1359
  // src/with-formula/computed/lazy.ts
1350
1360
  var fn = null;
1351
1361
  async function loadEvalComputedFields() {
1352
- fn ??= (await import("./computed-BMMEFRFJ.js")).evalComputedFields;
1362
+ fn ??= (await import("./computed-6FOFXQPE.js")).evalComputedFields;
1353
1363
  return fn;
1354
1364
  }
1355
1365
 
@@ -2187,7 +2197,7 @@ var Collection = class {
2187
2197
  }
2188
2198
  await this.onAccess?.("find", "*");
2189
2199
  if (hits.length === 0) return [];
2190
- const { verifyDigestField } = await import("./verify-YB5LQHNA.js");
2200
+ const { verifyDigestField } = await import("./verify-CAYGXYNO.js");
2191
2201
  const policy = {
2192
2202
  normalize: spec.verifyNormalize ?? "password",
2193
2203
  notLastN: spec.notLastN ?? 0,
@@ -2363,7 +2373,7 @@ var Collection = class {
2363
2373
  }
2364
2374
  }
2365
2375
  if (this.materializedViewSource !== void 0) {
2366
- const { resolveStaleMVOnRead } = await import("./stale-7Q62KVI3.js");
2376
+ const { resolveStaleMVOnRead } = await import("./stale-COBBJORL.js");
2367
2377
  await resolveStaleMVOnRead(this.materializedViewSource, this.name);
2368
2378
  }
2369
2379
  let record;
@@ -2926,7 +2936,7 @@ var Collection = class {
2926
2936
  if (mode === "eager") {
2927
2937
  if (executor === null) {
2928
2938
  ;
2929
- ({ MaterializedViewExecutor: executor } = await import("./executor-FGISLQIN.js"));
2939
+ ({ MaterializedViewExecutor: executor } = await import("./executor-XWPD5PIM.js"));
2930
2940
  }
2931
2941
  await executor.refresh(reg, {
2932
2942
  getCollection: (name) => this.materializedViewSource.getCollection(name),
@@ -2935,7 +2945,7 @@ var Collection = class {
2935
2945
  });
2936
2946
  } else if (mode === "lazy") {
2937
2947
  if (staleHelpers === null) {
2938
- staleHelpers = await import("./stale-7Q62KVI3.js");
2948
+ staleHelpers = await import("./stale-COBBJORL.js");
2939
2949
  }
2940
2950
  staleHelpers.markMVStale(registry, reg.spec.name);
2941
2951
  }
@@ -3120,7 +3130,7 @@ var Collection = class {
3120
3130
  continue;
3121
3131
  }
3122
3132
  if (DerivationExecutor === null) {
3123
- ({ DerivationExecutor } = await import("./executor-CBTNU5VZ.js"));
3133
+ ({ DerivationExecutor } = await import("./executor-EUPYHCLU.js"));
3124
3134
  }
3125
3135
  for (const run of runs) {
3126
3136
  const ctx = { vault: this.derivationSource.getReadOnlyFacade() };
@@ -3139,7 +3149,7 @@ var Collection = class {
3139
3149
  const outputCollection = this.derivationSource.getCollection(outSpec.collection);
3140
3150
  const txCtx = this.derivationSource.getActiveTxContext();
3141
3151
  if (out.kind === "array") {
3142
- const { loadFanoutSidecar, saveFanoutSidecar } = await import("./fanout-sidecar-WS22Q5WH.js");
3152
+ const { loadFanoutSidecar, saveFanoutSidecar } = await import("./fanout-sidecar-SSEW7BQB.js");
3143
3153
  const prior = await loadFanoutSidecar(this.adapter, this.vault, spec.source, run.runId, key, this.getDEK, this.storeCiphertext);
3144
3154
  const prevKeys = new Set(prior?.keys ?? []);
3145
3155
  const newKeysList = out.entries.map((e) => e.key);
@@ -3492,7 +3502,7 @@ var Collection = class {
3492
3502
  for (const [outputKey, outSpec] of Object.entries(spec.outputs)) {
3493
3503
  if (outSpec.shape !== "array") continue;
3494
3504
  if (helpers === null) {
3495
- helpers = await import("./fanout-sidecar-WS22Q5WH.js");
3505
+ helpers = await import("./fanout-sidecar-SSEW7BQB.js");
3496
3506
  }
3497
3507
  const sidecar = await helpers.loadFanoutSidecar(this.adapter, this.vault, spec.source, id, outputKey, this.getDEK, this.storeCiphertext);
3498
3508
  if (!sidecar) continue;
@@ -3526,7 +3536,7 @@ var Collection = class {
3526
3536
  if (mode === "eager") {
3527
3537
  if (executor === null) {
3528
3538
  ;
3529
- ({ MaterializedViewExecutor: executor } = await import("./executor-FGISLQIN.js"));
3539
+ ({ MaterializedViewExecutor: executor } = await import("./executor-XWPD5PIM.js"));
3530
3540
  }
3531
3541
  await executor.refresh(reg, {
3532
3542
  getCollection: (name) => this.materializedViewSource.getCollection(name),
@@ -3535,7 +3545,7 @@ var Collection = class {
3535
3545
  });
3536
3546
  } else if (mode === "lazy") {
3537
3547
  if (staleHelpers === null) {
3538
- staleHelpers = await import("./stale-7Q62KVI3.js");
3548
+ staleHelpers = await import("./stale-COBBJORL.js");
3539
3549
  }
3540
3550
  staleHelpers.markMVStale(registry, reg.spec.name);
3541
3551
  }
@@ -3558,7 +3568,7 @@ var Collection = class {
3558
3568
  );
3559
3569
  }
3560
3570
  if (this.materializedViewSource !== void 0) {
3561
- const { resolveStaleMVOnRead } = await import("./stale-7Q62KVI3.js");
3571
+ const { resolveStaleMVOnRead } = await import("./stale-COBBJORL.js");
3562
3572
  await resolveStaleMVOnRead(this.materializedViewSource, this.name);
3563
3573
  }
3564
3574
  await this.ensureHydrated();
@@ -4192,6 +4202,15 @@ var Collection = class {
4192
4202
  _invalidateCekCacheEntry(id) {
4193
4203
  this.cekCache?.remove(id);
4194
4204
  }
4205
+ /** @internal Satellite fan-out revert cleanup (spec #591): drop the sync dirty entry ('revert' is
4206
+ * onDirty-channel-only) and re-announce the RESTORED state as a plain put/delete — `subscribe()`
4207
+ * only understands those two actions, and the restored record may exist again. */
4208
+ async _compensateRevertedWrite(id) {
4209
+ await this._invalidateCacheEntry(id);
4210
+ await this.onDirty?.(this.name, id, "revert", 0);
4211
+ const restored = await this.get(id);
4212
+ this.emitter.emit("change", { vault: this.vault, collection: this.name, id, action: restored !== null ? "put" : "delete" });
4213
+ }
4195
4214
  async _invalidateCacheEntry(id) {
4196
4215
  if (this.lazy && this.lru) {
4197
4216
  this.lru.remove(id);
@@ -4703,14 +4722,14 @@ var Collection = class {
4703
4722
  /** C-A/R10: persist the classified marker once per classified handle (store I/O in config-drift.ts). */
4704
4723
  async _ensureClassifiedMarker() {
4705
4724
  if (this._markerPersisted || this.vdigFields === null) return;
4706
- const { persistClassifiedMarkerForFields } = await import("./config-drift-KGM7ZRW4.js");
4725
+ const { persistClassifiedMarkerForFields } = await import("./config-drift-SWZNEH5H.js");
4707
4726
  await persistClassifiedMarkerForFields(this.adapter, this.vault, this.name, this.vdigFields, await this.getDEK(this.name));
4708
4727
  this._markerPersisted = true;
4709
4728
  }
4710
4729
  /** C-A/R10 drift signal — the marker's declared digest-only set, memoized to one store read per handle (see config-drift.ts). */
4711
4730
  async _classifiedMarkerDigestOnly() {
4712
4731
  if (this._markerDigestOnlyCache !== void 0) return this._markerDigestOnlyCache;
4713
- const { readClassifiedMarkerDigestOnly } = await import("./config-drift-KGM7ZRW4.js");
4732
+ const { readClassifiedMarkerDigestOnly } = await import("./config-drift-SWZNEH5H.js");
4714
4733
  this._markerDigestOnlyCache = await readClassifiedMarkerDigestOnly(this.adapter, this.vault, this.name, await this.getDEK(this.name));
4715
4734
  return this._markerDigestOnlyCache;
4716
4735
  }
@@ -5757,7 +5776,7 @@ var VaultLinks = class {
5757
5776
  // src/with-shape/links/lazy-handle.ts
5758
5777
  function makeLazyLinkSetHandle(d) {
5759
5778
  let engine = null;
5760
- const load = () => engine ??= import("./link-set-UQEIYQAM.js").then(
5779
+ const load = () => engine ??= import("./link-set-HJOC7GB7.js").then(
5761
5780
  ({ LinkSet }) => new LinkSet(d.adapter, d.vault, d.name, d.spec, d.encrypted, d.getDEK, d.actor, d.emitter, d.endpointExists)
5762
5781
  );
5763
5782
  return {
@@ -5771,6 +5790,423 @@ function makeLazyLinkSetHandle(d) {
5771
5790
  };
5772
5791
  }
5773
5792
 
5793
+ // src/with-shape/satellites/registry.ts
5794
+ var SatelliteRegistry = class {
5795
+ byBase = /* @__PURE__ */ new Map();
5796
+ bySat = /* @__PURE__ */ new Map();
5797
+ byJoin = /* @__PURE__ */ new Map();
5798
+ poisoned = /* @__PURE__ */ new Map();
5799
+ locks = /* @__PURE__ */ new Map();
5800
+ register(spec) {
5801
+ if (this.byBase.has(spec.base)) {
5802
+ 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.`);
5803
+ }
5804
+ if (this.byBase.has(spec.satellite)) {
5805
+ 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.`);
5806
+ }
5807
+ const taken = (n) => this.byBase.has(n) || this.bySat.has(n) || this.byJoin.has(n);
5808
+ if (spec.joined !== void 0 && taken(spec.joined)) {
5809
+ throw new SatelliteConfigError(`R-S5: joined name "${spec.joined}" collides with an existing pair member or joined name.`);
5810
+ }
5811
+ this.byBase.set(spec.base, spec);
5812
+ this.bySat.set(spec.satellite, spec);
5813
+ if (spec.joined !== void 0) this.byJoin.set(spec.joined, spec);
5814
+ }
5815
+ satelliteOf(base) {
5816
+ return this.byBase.get(base) ?? null;
5817
+ }
5818
+ bySatellite(name) {
5819
+ return this.bySat.get(name) ?? null;
5820
+ }
5821
+ byJoined(name) {
5822
+ return this.byJoin.get(name) ?? null;
5823
+ }
5824
+ isPairMember(name) {
5825
+ return this.byBase.has(name) || this.bySat.has(name);
5826
+ }
5827
+ allSpecs() {
5828
+ return [...this.byBase.values()];
5829
+ }
5830
+ expandNames(names) {
5831
+ const out = new Set(names);
5832
+ for (const n of names) {
5833
+ const asBase = this.byBase.get(n);
5834
+ if (asBase) out.add(asBase.satellite);
5835
+ const asSat = this.bySat.get(n);
5836
+ if (asSat) out.add(asSat.base);
5837
+ }
5838
+ return [...out];
5839
+ }
5840
+ poison(satellite, reason) {
5841
+ this.poisoned.set(satellite, reason);
5842
+ }
5843
+ assertNotPoisoned(satellite) {
5844
+ const reason = this.poisoned.get(satellite);
5845
+ if (reason !== void 0) throw new SatelliteConfigError(reason);
5846
+ }
5847
+ /** Per-base async mutex: chains sections on a stored promise tail. */
5848
+ async withPairLock(base, fn2) {
5849
+ const tail = this.locks.get(base) ?? Promise.resolve();
5850
+ let release;
5851
+ const gate = new Promise((res) => {
5852
+ release = res;
5853
+ });
5854
+ this.locks.set(base, tail.then(() => gate));
5855
+ await tail;
5856
+ try {
5857
+ return await fn2();
5858
+ } finally {
5859
+ release();
5860
+ }
5861
+ }
5862
+ };
5863
+
5864
+ // src/with-shape/satellites/declare.ts
5865
+ function declareSatellite(ctx, collectionName, options, existingRegistry) {
5866
+ if (existingRegistry !== null) {
5867
+ const existing = existingRegistry.bySatellite(collectionName);
5868
+ if (existing) {
5869
+ const same = existing.base === options.satelliteOf && hashFields(existing.fields) === hashFields(options.fields ?? []) && (existing.joined ?? null) === (options.joined ?? null);
5870
+ if (!same) {
5871
+ throw new SatelliteConfigError(`R-S9: "${collectionName}" re-declared divergently within this session (base/fields/joined mismatch).`);
5872
+ }
5873
+ return existingRegistry;
5874
+ }
5875
+ }
5876
+ const spec = validateSatelliteDeclaration({
5877
+ satellite: collectionName,
5878
+ satelliteOf: options.satelliteOf,
5879
+ fields: options.fields,
5880
+ joined: options.joined,
5881
+ baseIsSatellite: (existingRegistry?.bySatellite(options.satelliteOf) ?? null) !== null,
5882
+ // R-S8 direction (i): refuse if EITHER this declaration sets crdt, OR the
5883
+ // base was already constructed with crdt mode before this pairing.
5884
+ crdtMode: options.crdt !== void 0 || ctx.getBaseCrdt(options.satelliteOf) !== void 0,
5885
+ joinedCollidesWithCollection: options.joined !== void 0 && ctx.collectionExists(options.joined)
5886
+ });
5887
+ if (ctx.forgetSubjects[spec.base] !== void 0 && options.perRecordKeys !== true) {
5888
+ throw new SatelliteConfigError(`R-S7: satellite "${collectionName}" of forget-covered base "${spec.base}" must declare perRecordKeys.`);
5889
+ }
5890
+ let reg = existingRegistry;
5891
+ if (reg === null) {
5892
+ const created = new SatelliteRegistry();
5893
+ ctx.registerPoisonHook((e) => {
5894
+ if (e.vault === ctx.vaultName) created.assertNotPoisoned(e.collection);
5895
+ });
5896
+ ctx.forEachSyncEngine((e) => e.setPairExpander((names) => created.expandNames(names)));
5897
+ reg = created;
5898
+ }
5899
+ reg.register(spec);
5900
+ ctx.forEachSyncEngine((e) => e.remirrorPairResolvers([spec.base, spec.satellite]));
5901
+ const registry = reg;
5902
+ const baseSchema = ctx.getBaseSchema(spec.base);
5903
+ void import("./post-register-BIXGCZ2M.js").then((m) => m.postRegister(ctx.adapter, ctx.vaultName, spec, ctx.getDEK, baseSchema, registry)).catch(() => {
5904
+ });
5905
+ return reg;
5906
+ }
5907
+
5908
+ // src/with-shape/satellites/raw-target.ts
5909
+ var RAW_TARGET = /* @__PURE__ */ Symbol("noydb.satellite.rawTarget");
5910
+
5911
+ // src/with-shape/satellites/fanout.ts
5912
+ function unwrap(handle) {
5913
+ return handle[RAW_TARGET] ?? handle;
5914
+ }
5915
+ async function revertAndCompensate(deps, executed) {
5916
+ for (const leg of [...executed].reverse()) {
5917
+ try {
5918
+ if (leg.prior !== null) await deps.adapter.put(deps.vaultName, leg.coll, leg.id, leg.prior);
5919
+ else await deps.adapter.delete(deps.vaultName, leg.coll, leg.id);
5920
+ await leg.handle._compensateRevertedWrite(leg.id);
5921
+ } catch {
5922
+ }
5923
+ }
5924
+ }
5925
+ async function joinedPut(deps, id, record) {
5926
+ deps.registry.assertNotPoisoned(deps.spec.satellite);
5927
+ const base = unwrap(deps.base());
5928
+ const satellite = unwrap(deps.satellite());
5929
+ const satFields = new Set(deps.spec.fields);
5930
+ const baseRec = {};
5931
+ const satRec = {};
5932
+ for (const [k, v] of Object.entries(record)) (satFields.has(k) ? satRec : baseRec)[k] = v;
5933
+ await base.validateInput(baseRec);
5934
+ await satellite.validateInput(satRec);
5935
+ return deps.registry.withPairLock(deps.spec.base, async () => {
5936
+ const executed = [];
5937
+ const run = async (handle, coll, rec) => {
5938
+ executed.push({ coll, id, prior: await deps.adapter.get(deps.vaultName, coll, id), handle });
5939
+ await handle.put(id, rec);
5940
+ };
5941
+ try {
5942
+ await run(base, deps.spec.base, baseRec);
5943
+ await run(satellite, deps.spec.satellite, satRec);
5944
+ } catch (err) {
5945
+ await revertAndCompensate(deps, executed);
5946
+ throw err;
5947
+ }
5948
+ });
5949
+ }
5950
+ async function pairDelete(deps, id) {
5951
+ const base = unwrap(deps.base());
5952
+ const satellite = unwrap(deps.satellite());
5953
+ return deps.registry.withPairLock(deps.spec.base, async () => {
5954
+ const executed = [];
5955
+ const run = async (handle, coll) => {
5956
+ executed.push({ coll, id, prior: await deps.adapter.get(deps.vaultName, coll, id), handle });
5957
+ await handle.delete(id);
5958
+ };
5959
+ try {
5960
+ await run(satellite, deps.spec.satellite);
5961
+ await run(base, deps.spec.base);
5962
+ } catch (err) {
5963
+ await revertAndCompensate(deps, executed);
5964
+ throw err;
5965
+ }
5966
+ });
5967
+ }
5968
+
5969
+ // src/with-shape/satellites/proxy.ts
5970
+ async function listWithIds(target) {
5971
+ const records = await target.list();
5972
+ const ids = [...target.cache.keys()];
5973
+ const out = [];
5974
+ for (let i = 0; i < records.length; i++) {
5975
+ const id = ids[i];
5976
+ if (id !== void 0) out.push([id, records[i]]);
5977
+ }
5978
+ return out;
5979
+ }
5980
+ async function filterLiveHits(hits, adapter, vaultName, base) {
5981
+ const live = await Promise.all(hits.map((h) => isBaseLive(adapter, vaultName, base, h.id)));
5982
+ return hits.filter((_, i) => live[i]);
5983
+ }
5984
+ function makeSatelliteProxy(target, spec, registry) {
5985
+ const adapter = target.adapter;
5986
+ const vaultName = target.vault;
5987
+ const queryNotExistenceFiltered = () => {
5988
+ throw new SatelliteConfigError(
5989
+ `satellite "${spec.satellite}": query() is not existence-filtered. Query's terminal methods (toArray/first/count) read the in-memory cache synchronously, while existence authority (\xA7 Convergence & existence authority, rule 1) requires an async, undecrypted check against live base state \u2014 the two shapes don't compose without either breaking query()'s synchronous contract or accepting a check that misses out-of-band base mutations. Use list() (or get()) for existence-safe reads on satellite collections.`
5990
+ );
5991
+ };
5992
+ const getOne = async (id) => {
5993
+ if (!await isBaseLive(adapter, vaultName, spec.base, id)) return null;
5994
+ return target.get(id);
5995
+ };
5996
+ const putOne = async (id, record) => {
5997
+ return registry.withPairLock(spec.base, async () => {
5998
+ registry.assertNotPoisoned(spec.satellite);
5999
+ if (!await isBaseLive(adapter, vaultName, spec.base, id)) {
6000
+ throw new SatelliteConfigError(
6001
+ `R-S6: satellite "${spec.satellite}" put for "${id}" with no live base record in "${spec.base}" \u2014 create the base first (or write through the joined handle).`
6002
+ );
6003
+ }
6004
+ return target.put(id, record);
6005
+ });
6006
+ };
6007
+ const overrides = {
6008
+ get: getOne,
6009
+ async list() {
6010
+ const live = await liveBaseIdSet(adapter, vaultName, spec.base);
6011
+ const pairs = await listWithIds(target);
6012
+ return pairs.filter(([id]) => live.has(id)).map(([, record]) => record);
6013
+ },
6014
+ query: queryNotExistenceFiltered,
6015
+ put: putOne,
6016
+ // #591 review I1: the real `getMany` loops `this.get(id)` bound to the raw
6017
+ // target, never this proxy's existence-filtered `get` — same Map<id, T|null>
6018
+ // shape, built from the overridden single-get instead.
6019
+ async getMany(ids) {
6020
+ const result = /* @__PURE__ */ new Map();
6021
+ for (const id of ids) result.set(id, await getOne(id));
6022
+ return result;
6023
+ },
6024
+ // #591 review I1: the real `putMany` (non-atomic) loops `this.put(id, record)`
6025
+ // bound to the raw target, bypassing R-S6/pair-lock/poison per item; looping
6026
+ // through the overridden single-put here restores that per-item enforcement
6027
+ // while preserving the real putMany's { ok, success, failures } shape — a
6028
+ // refused item becomes a failure entry, not a thrown error. Atomic mode is a
6029
+ // single transaction by design (looping per-item `put` would break its
6030
+ // all-or-nothing revert guarantee), so instead the WHOLE call is refused
6031
+ // with R-S6 up front, under the pair lock + poison check, if any id lacks a
6032
+ // live base — only then does it delegate to the real atomic executor.
6033
+ async putMany(entries, options) {
6034
+ if (options?.atomic) {
6035
+ return registry.withPairLock(spec.base, async () => {
6036
+ registry.assertNotPoisoned(spec.satellite);
6037
+ for (const [id] of entries) {
6038
+ if (!await isBaseLive(adapter, vaultName, spec.base, id)) {
6039
+ throw new SatelliteConfigError(
6040
+ `R-S6: satellite "${spec.satellite}" putMany(atomic) refused \u2014 "${id}" has no live base record in "${spec.base}".`
6041
+ );
6042
+ }
6043
+ }
6044
+ return target.putMany(entries, options);
6045
+ });
6046
+ }
6047
+ const success = [];
6048
+ const failures = [];
6049
+ for (const [id, record] of entries) {
6050
+ try {
6051
+ await putOne(id, record);
6052
+ success.push(id);
6053
+ } catch (error) {
6054
+ failures.push({ id, error });
6055
+ }
6056
+ }
6057
+ return { ok: failures.length === 0, success, failures };
6058
+ },
6059
+ // No `deleteMany` override: the real `deleteMany` loops the raw
6060
+ // `this.delete(id)` too, but this proxy never overrides single `delete`
6061
+ // (satellite delete is legal, unguarded — see makeBaseProxy for the leg
6062
+ // that DOES need fan-out) — there is nothing for a bulk delete to bypass.
6063
+ // #591 Task 9: search/retrieve/similarTo answer from the search facade's
6064
+ // own cache/index (never the get/list overrides above), so they need
6065
+ // their own existence post-filter — every retrieval surface the facade
6066
+ // exposes is covered here.
6067
+ async search(field, query, opts) {
6068
+ const hits = await target.search(field, query, opts);
6069
+ return filterLiveHits(hits, adapter, vaultName, spec.base);
6070
+ },
6071
+ async retrieve(query, opts) {
6072
+ const hits = await target.retrieve(query, opts);
6073
+ return filterLiveHits(hits, adapter, vaultName, spec.base);
6074
+ },
6075
+ async similarTo(vector, opts) {
6076
+ const hits = await target.similarTo(vector, opts);
6077
+ return filterLiveHits(hits, adapter, vaultName, spec.base);
6078
+ },
6079
+ // #591 Task 9 review fix: findByDet/queryByDet scan envelopes straight
6080
+ // off the adapter (kernel/enclave/record-keys/deterministic.ts) and
6081
+ // return BARE records (no id), so a post-filter can't correlate a match
6082
+ // back to its base row. Instead the scan itself is scoped: re-run the
6083
+ // same det functions over the collection's own DeterministicContext
6084
+ // (`detContext()` is private like `adapter`/`cache` above) with its
6085
+ // `adapter.list` narrowed to live-base ids — a dead-base match is then
6086
+ // never visited, so findByDet correctly continues to a later live match
6087
+ // rather than short-circuiting on a ghost.
6088
+ async findByDet(field, value) {
6089
+ return findByDet(liveScopedDetContext(), field, value);
6090
+ },
6091
+ async queryByDet(field, value) {
6092
+ return queryByDet(liveScopedDetContext(), field, value);
6093
+ }
6094
+ };
6095
+ const liveScopedDetContext = () => {
6096
+ const ctx = target.detContext();
6097
+ const raw = ctx.adapter;
6098
+ return {
6099
+ ...ctx,
6100
+ adapter: {
6101
+ ...raw,
6102
+ get: raw.get.bind(raw),
6103
+ async list(v, c) {
6104
+ const ids = await raw.list(v, c);
6105
+ const live = await Promise.all(ids.map((id) => isBaseLive(adapter, vaultName, spec.base, id)));
6106
+ return ids.filter((_, i) => live[i]);
6107
+ }
6108
+ }
6109
+ };
6110
+ };
6111
+ return new Proxy(target, {
6112
+ get(t, prop, _recv) {
6113
+ if (prop === RAW_TARGET) return t;
6114
+ if (typeof prop === "string" && prop in overrides) return overrides[prop];
6115
+ const v = Reflect.get(t, prop, t);
6116
+ return typeof v === "function" ? v.bind(t) : v;
6117
+ }
6118
+ });
6119
+ }
6120
+ function makeBaseProxy(target, spec, registry, satellite) {
6121
+ const adapter = target.adapter;
6122
+ const vaultName = target.vault;
6123
+ const deleteOne = async (id) => {
6124
+ return pairDelete({ spec, base: () => target, satellite, adapter, vaultName, registry }, id);
6125
+ };
6126
+ const overrides = {
6127
+ delete: deleteOne,
6128
+ async deleteMany(ids) {
6129
+ const success = [];
6130
+ const failures = [];
6131
+ for (const id of ids) {
6132
+ try {
6133
+ await deleteOne(id);
6134
+ success.push(id);
6135
+ } catch (error) {
6136
+ failures.push({ id, error });
6137
+ }
6138
+ }
6139
+ return { ok: failures.length === 0, success, failures };
6140
+ }
6141
+ };
6142
+ return new Proxy(target, {
6143
+ get(t, prop, _recv) {
6144
+ if (prop === RAW_TARGET) return t;
6145
+ if (typeof prop === "string" && prop in overrides) return overrides[prop];
6146
+ const v = Reflect.get(t, prop, t);
6147
+ return typeof v === "function" ? v.bind(t) : v;
6148
+ }
6149
+ });
6150
+ }
6151
+
6152
+ // src/with-shape/satellites/joined.ts
6153
+ function makeJoinedHandle(spec, deps) {
6154
+ const base = () => deps.base();
6155
+ const satellite = () => deps.satellite();
6156
+ const adapter = deps.adapter;
6157
+ const nullSat = () => Object.fromEntries(spec.fields.map((f) => [f, null]));
6158
+ const merge = (b, s) => ({ ...nullSat(), ...s ?? {}, ...b });
6159
+ return {
6160
+ async get(id) {
6161
+ if (!await isBaseLive(adapter, deps.vaultName, spec.base, id)) return null;
6162
+ const b = await base().get(id);
6163
+ if (b === null) return null;
6164
+ const s = await satellite().get(id);
6165
+ return merge(b, s);
6166
+ },
6167
+ async put(id, record) {
6168
+ await joinedPut(deps, id, record);
6169
+ },
6170
+ async delete(id) {
6171
+ await pairDelete(deps, id);
6172
+ },
6173
+ async list() {
6174
+ const live = await liveBaseIdSet(adapter, deps.vaultName, spec.base);
6175
+ const pairs = await listWithIds(base());
6176
+ const out = [];
6177
+ for (const [id, b] of pairs) {
6178
+ if (!live.has(id)) continue;
6179
+ out.push(merge(b, await satellite().get(id)));
6180
+ }
6181
+ return out;
6182
+ },
6183
+ async describe() {
6184
+ const [b, s] = await Promise.all([base().describe({}), satellite().describe({})]);
6185
+ return {
6186
+ collection: spec.joined ?? `${spec.base}+${spec.satellite}`,
6187
+ fields: [...b.fields, ...s.fields],
6188
+ meta: { label: spec.joined ?? spec.base }
6189
+ };
6190
+ }
6191
+ };
6192
+ }
6193
+
6194
+ // src/with-shape/satellites/forget.ts
6195
+ function expandRefsWithSatellites(refs, registry) {
6196
+ if (registry === null) return refs;
6197
+ const out = [];
6198
+ let anySat = false;
6199
+ for (const ref2 of refs) {
6200
+ const spec = registry.satelliteOf(ref2.collection);
6201
+ if (spec) {
6202
+ anySat = true;
6203
+ out.push({ collection: spec.satellite, id: ref2.id, satelliteOf: ref2.collection });
6204
+ }
6205
+ out.push(ref2);
6206
+ }
6207
+ return anySat ? out : refs;
6208
+ }
6209
+
5774
6210
  // src/with-shape/schema-update/gate.ts
5775
6211
  var SchemaUpdateGate = class {
5776
6212
  #decision;
@@ -6109,6 +6545,8 @@ var Vault = class {
6109
6545
  */
6110
6546
  reloadKeyring;
6111
6547
  collectionCache = /* @__PURE__ */ new Map();
6548
+ satelliteRegistry = null;
6549
+ // spec #591, archetype-③
6112
6550
  /** Vault-level schema cutover fence/controller. */
6113
6551
  schemaFence;
6114
6552
  /** Per-client heartbeat/watcher; started lazily on cutover registration. */
@@ -6397,6 +6835,32 @@ var Vault = class {
6397
6835
  if (isLinkCollectionName(collectionName)) {
6398
6836
  throw new ReservedCollectionNameError(collectionName);
6399
6837
  }
6838
+ if (isSecretBearingReservedCollection(collectionName)) {
6839
+ throw new ReservedCollectionNameError(collectionName);
6840
+ }
6841
+ if (this.satelliteRegistry?.byJoined(collectionName)) {
6842
+ throw new SatelliteConfigError(`"${collectionName}" is a joined handle \u2014 use vault.joined('${collectionName}'), not vault.collection().`);
6843
+ }
6844
+ if (options?.crdt !== void 0 && this.satelliteRegistry?.isPairMember(collectionName)) {
6845
+ throw new SatelliteConfigError("R-S8: crdtMode is refused on either member of a satellite pair in v1 (revert cannot compensate a merge).");
6846
+ }
6847
+ if (options?.satelliteOf !== void 0) {
6848
+ this.satelliteRegistry = declareSatellite({
6849
+ adapter: this.adapter,
6850
+ vaultName: this.name,
6851
+ forgetSubjects: this.forgetStrategy.subjects,
6852
+ getDEK: this.getDEK,
6853
+ getBaseSchema: (base) => this.collectionCache.get(base)?.getSchema(),
6854
+ getBaseCrdt: (base) => this.collectionCache.get(base)?.getConfig()?.crdt,
6855
+ collectionExists: (name) => this.collectionCache.has(name),
6856
+ registerPoisonHook: (hook) => {
6857
+ this.noydb._writeHooks.onBeforeWrite(hook);
6858
+ },
6859
+ forEachSyncEngine: (fn2) => {
6860
+ this.noydb._forEachSyncEngine(this.name, fn2);
6861
+ }
6862
+ }, collectionName, { ...options, satelliteOf: options.satelliteOf }, this.satelliteRegistry);
6863
+ }
6400
6864
  let coll = this.collectionCache.get(collectionName);
6401
6865
  if (coll && options?.moneyFields) {
6402
6866
  coll._applyMoneyFields(options.moneyFields);
@@ -6457,7 +6921,7 @@ var Vault = class {
6457
6921
  const strategies = options.schemaUpdate ?? [];
6458
6922
  const work = (async () => {
6459
6923
  const dek = await this.getDEK(collectionName);
6460
- const { persistSchemaIfNeeded } = await import("./register-K6DDSIXN.js");
6924
+ const { persistSchemaIfNeeded } = await import("./register-OVONZ2MJ.js");
6461
6925
  const result = await persistSchemaIfNeeded({
6462
6926
  store: this.adapter,
6463
6927
  vault: this.name,
@@ -6636,7 +7100,7 @@ var Vault = class {
6636
7100
  const work = (async () => {
6637
7101
  try {
6638
7102
  const dek = await this.getDEK(collectionName);
6639
- await (await import("./register-K6DDSIXN.js")).persistSchemaIfNeeded({
7103
+ await (await import("./register-OVONZ2MJ.js")).persistSchemaIfNeeded({
6640
7104
  store: this.adapter,
6641
7105
  vault: this.name,
6642
7106
  collectionName,
@@ -6652,8 +7116,27 @@ var Vault = class {
6652
7116
  this._pendingSchemaWrites.push(work);
6653
7117
  }
6654
7118
  }
7119
+ if (this.satelliteRegistry) {
7120
+ const spec = this.satelliteRegistry.bySatellite(collectionName);
7121
+ if (spec) return makeSatelliteProxy(coll, spec, this.satelliteRegistry);
7122
+ const baseSpec = this.satelliteRegistry.satelliteOf(collectionName);
7123
+ if (baseSpec) return makeBaseProxy(coll, baseSpec, this.satelliteRegistry, () => this.collection(baseSpec.satellite));
7124
+ }
6655
7125
  return coll;
6656
7126
  }
7127
+ /** Full-record handle for a satellite pair registered with `joined:` (spec #591). Narrow type — not a Collection. */
7128
+ joined(name) {
7129
+ const spec = this.satelliteRegistry?.byJoined(name);
7130
+ if (!spec) throw new SatelliteConfigError(`No joined handle "${name}" is registered \u2014 declare it via collection(satellite, { joined: '${name}' }).`);
7131
+ return makeJoinedHandle(spec, {
7132
+ spec,
7133
+ base: () => this.collection(spec.base),
7134
+ satellite: () => this.collection(spec.satellite),
7135
+ adapter: this.adapter,
7136
+ vaultName: this.name,
7137
+ registry: this.satelliteRegistry
7138
+ });
7139
+ }
6657
7140
  /**
6658
7141
  * Await all background persisted-schema writes triggered by
6659
7142
  * `collection({ persistJsonSchema: true })` calls on this vault.
@@ -7460,6 +7943,7 @@ var Vault = class {
7460
7943
  throw new ForgetStrategyNotConfiguredError();
7461
7944
  }
7462
7945
  const refs = await lookupSubject(this.adapter, this.name, this.getDEK, this.encrypted, subjectId);
7946
+ const allRefs = expandRefsWithSatellites(refs, this.satelliteRegistry);
7463
7947
  let recordsShredded = 0;
7464
7948
  let historyVersionsShredded = 0;
7465
7949
  const collections = /* @__PURE__ */ new Set();
@@ -7475,9 +7959,10 @@ var Vault = class {
7475
7959
  const indexResidue = [];
7476
7960
  const blobsEnabled = this.blobStrategy !== void 0;
7477
7961
  const actor = this.keyring.userId;
7478
- for (const ref2 of refs) {
7962
+ for (const ref2 of allRefs) {
7479
7963
  const coll = this.collection(ref2.collection);
7480
- const perRecordKeys = this.forgetStrategy.subjects[ref2.collection] !== void 0;
7964
+ const satelliteOf = ref2.satelliteOf;
7965
+ const perRecordKeys = this.forgetStrategy.subjects[satelliteOf ?? ref2.collection] !== void 0;
7481
7966
  const live = await this.adapter.get(this.name, ref2.collection, ref2.id);
7482
7967
  if (perRecordKeys && live && live._data && !hasPerRecordKey(live)) {
7483
7968
  unmigratedRecords.push(`${ref2.collection}:${ref2.id}`);
@@ -7509,7 +7994,17 @@ var Vault = class {
7509
7994
  } catch {
7510
7995
  sealedCekResidue.push(`${ref2.collection}:${ref2.id}`);
7511
7996
  }
7512
- const shred = await coll._writeTombstone(ref2.id, actor);
7997
+ let shred;
7998
+ try {
7999
+ shred = await coll._writeTombstone(ref2.id, actor);
8000
+ } catch (cause) {
8001
+ if (satelliteOf === void 0) throw cause;
8002
+ throw new SatelliteConfigError(
8003
+ // R-S4: abort the whole forget rather than leave the heavy side un-erased
8004
+ `R-S4: forget could not fan out to satellite "${ref2.collection}" \u2014 aborting rather than leaving the heavy side`,
8005
+ { cause }
8006
+ );
8007
+ }
7513
8008
  if (shred !== null) {
7514
8009
  recordsShredded++;
7515
8010
  collections.add(ref2.collection);
@@ -7719,7 +8214,7 @@ var Vault = class {
7719
8214
  async _initDerivations(handles) {
7720
8215
  if (handles.length === 0) return;
7721
8216
  const [{ DerivationRegistry }, { ReadOnlyVaultFacade }] = await Promise.all([
7722
- import("./registry-IMNMHWTM.js"),
8217
+ import("./registry-D5J7SVJ2.js"),
7723
8218
  import("./read-only-facade-5ADRJVTM.js")
7724
8219
  ]);
7725
8220
  const registry = new DerivationRegistry();
@@ -7750,7 +8245,7 @@ var Vault = class {
7750
8245
  */
7751
8246
  async _initMaterializedViews(handles) {
7752
8247
  if (handles.length === 0) return;
7753
- const { MaterializedViewRegistry } = await import("./registry-K6VUQXKV.js");
8248
+ const { MaterializedViewRegistry } = await import("./registry-AIEYUOSG.js");
7754
8249
  const registry = new MaterializedViewRegistry();
7755
8250
  this.materializedViewRegistry = registry;
7756
8251
  const db = this;
@@ -7774,7 +8269,7 @@ var Vault = class {
7774
8269
  */
7775
8270
  async _initOverlayedViews(handles) {
7776
8271
  if (handles.length === 0) return;
7777
- const { OverlayedViewRegistry } = await import("./registry-ZVO3T4M5.js");
8272
+ const { OverlayedViewRegistry } = await import("./registry-HSNQ4NBP.js");
7778
8273
  const registry = new OverlayedViewRegistry();
7779
8274
  const mvRegistry = this.materializedViewRegistry;
7780
8275
  const overlayNames = /* @__PURE__ */ new Set();
@@ -7821,13 +8316,13 @@ var Vault = class {
7821
8316
  if (!reg) {
7822
8317
  throw new Error(`refreshView: no MV registered with name "${name}"`);
7823
8318
  }
7824
- const { MaterializedViewExecutor } = await import("./executor-FGISLQIN.js");
8319
+ const { MaterializedViewExecutor } = await import("./executor-XWPD5PIM.js");
7825
8320
  const result = await MaterializedViewExecutor.refresh(reg, {
7826
8321
  getCollection: (n) => this.collection(n),
7827
8322
  getActiveTxContext: () => this.noydb._activeTxContextOrNull,
7828
8323
  getQueryContext: () => this
7829
8324
  });
7830
- const { clearMVStale } = await import("./stale-7Q62KVI3.js");
8325
+ const { clearMVStale } = await import("./stale-COBBJORL.js");
7831
8326
  clearMVStale(registry, name);
7832
8327
  return result;
7833
8328
  }
@@ -7843,7 +8338,7 @@ var Vault = class {
7843
8338
  if (registry === null) return { derived: 0, failed: 0 };
7844
8339
  const strategies = registry.strategiesForSource(sourceCollection);
7845
8340
  if (strategies.length === 0) return { derived: 0, failed: 0 };
7846
- const { DerivationExecutor } = await import("./executor-CBTNU5VZ.js");
8341
+ const { DerivationExecutor } = await import("./executor-EUPYHCLU.js");
7847
8342
  const sourceColl = this.collection(sourceCollection);
7848
8343
  const records = await sourceColl.list();
7849
8344
  const ctx = { vault: this.derivationFacade ?? new (await import("./read-only-facade-5ADRJVTM.js")).ReadOnlyVaultFacade(this, "derivation") };
@@ -7868,7 +8363,7 @@ var Vault = class {
7868
8363
  if (!outSpec) continue;
7869
8364
  const outputColl = this.collection(outSpec.collection);
7870
8365
  if (out.kind === "array") {
7871
- const { loadFanoutSidecar, saveFanoutSidecar } = await import("./fanout-sidecar-WS22Q5WH.js");
8366
+ const { loadFanoutSidecar, saveFanoutSidecar } = await import("./fanout-sidecar-SSEW7BQB.js");
7872
8367
  const prior = await loadFanoutSidecar(this.adapter, this.name, spec.source, id, key, this.getDEK, this.encrypted);
7873
8368
  const prevKeys = new Set(prior?.keys ?? []);
7874
8369
  const newKeysList = out.entries.map((e) => e.key);
@@ -8090,7 +8585,7 @@ var Vault = class {
8090
8585
  * collection.
8091
8586
  */
8092
8587
  async delegate(opts) {
8093
- const { issueDelegation, DELEGATIONS_COLLECTION } = await import("./delegation-BQNIEHZE.js");
8588
+ const { issueDelegation, DELEGATIONS_COLLECTION } = await import("./delegation-AUY42TGU.js");
8094
8589
  if (!this.keyring.kek) {
8095
8590
  throw new ValidationError(
8096
8591
  "issueDelegation: keyring.kek is null \u2014 issuing a delegation requires a tier-1 unlock. Re-authenticate at tier 1 (passphrase) first."
@@ -8112,7 +8607,7 @@ var Vault = class {
8112
8607
  * if the id does not exist.
8113
8608
  */
8114
8609
  async revokeDelegation(id) {
8115
- const { revokeDelegation, DELEGATIONS_COLLECTION } = await import("./delegation-BQNIEHZE.js");
8610
+ const { revokeDelegation, DELEGATIONS_COLLECTION } = await import("./delegation-AUY42TGU.js");
8116
8611
  await revokeDelegation(this.adapter, this.name, id);
8117
8612
  void DELEGATIONS_COLLECTION;
8118
8613
  }
@@ -8328,7 +8823,7 @@ var Vault = class {
8328
8823
  * @see docs/superpowers/specs/2026-05-22-schema-dump-design.md
8329
8824
  */
8330
8825
  async dumpSchema(opts = {}) {
8331
- const { dumpVaultSchema } = await import("./walk-5C3GPKT2.js");
8826
+ const { dumpVaultSchema } = await import("./walk-CVNXFUEF.js");
8332
8827
  return dumpVaultSchema(this, opts);
8333
8828
  }
8334
8829
  /**
@@ -8463,7 +8958,7 @@ var Vault = class {
8463
8958
  * @see https://github.com/vLannaAi/noy-db-docs/blob/main/content/docs/services/public-envelope.md
8464
8959
  */
8465
8960
  async getPublicEnvelope(opts = {}) {
8466
- const { readPublicEnvelope } = await import("./public-envelope-MRN5YYZZ.js");
8961
+ const { readPublicEnvelope } = await import("./public-envelope-6UBQ4IUY.js");
8467
8962
  return readPublicEnvelope(this.adapter, this.name, opts);
8468
8963
  }
8469
8964
  /**
@@ -8478,7 +8973,7 @@ var Vault = class {
8478
8973
  * both modes round-trip cleanly.
8479
8974
  */
8480
8975
  async dump() {
8481
- const { dumpVault } = await import("./backup-MOB27UUN.js");
8976
+ const { dumpVault } = await import("./backup-Y3RMFGVX.js");
8482
8977
  return dumpVault(this.backupContext());
8483
8978
  }
8484
8979
  /**
@@ -8530,7 +9025,7 @@ var Vault = class {
8530
9025
  * — there's no chain to verify against.
8531
9026
  */
8532
9027
  async load(backupJson) {
8533
- const { loadVault } = await import("./backup-MOB27UUN.js");
9028
+ const { loadVault } = await import("./backup-Y3RMFGVX.js");
8534
9029
  return loadVault(this.backupContext(), backupJson);
8535
9030
  }
8536
9031
  /**
@@ -8562,7 +9057,7 @@ var Vault = class {
8562
9057
  * way to detect tampering of an in-place vault.
8563
9058
  */
8564
9059
  async verifyBackupIntegrity() {
8565
- const { verifyBackupIntegrity } = await import("./backup-MOB27UUN.js");
9060
+ const { verifyBackupIntegrity } = await import("./backup-Y3RMFGVX.js");
8566
9061
  return verifyBackupIntegrity(this.backupContext());
8567
9062
  }
8568
9063
  /**
@@ -8780,7 +9275,7 @@ var Vault = class {
8780
9275
  * is the live validator object, not a serialization of it).
8781
9276
  */
8782
9277
  async exportJSON(opts = {}) {
8783
- const { exportVaultJSON } = await import("./backup-MOB27UUN.js");
9278
+ const { exportVaultJSON } = await import("./backup-Y3RMFGVX.js");
8784
9279
  return exportVaultJSON(this.backupContext(), opts);
8785
9280
  }
8786
9281
  };
@@ -10652,7 +11147,7 @@ var Noydb = class {
10652
11147
  if (!facade) return;
10653
11148
  const ctx = { existing, vault: facade, userId: e.userId, role: e.role };
10654
11149
  await registry.runChecks(e.collection, incoming, ctx);
10655
- const { GuardExecutor } = await import("./executor-DJHNSTIR.js");
11150
+ const { GuardExecutor } = await import("./executor-KZ4B3PRT.js");
10656
11151
  for (const g of guards) {
10657
11152
  await GuardExecutor.checkFrozenFields(g, e.docId, existing, incoming, e.computedFieldNames);
10658
11153
  }
@@ -10817,7 +11312,8 @@ var Noydb = class {
10817
11312
  onDirty: targets.length > 0 ? async (coll, id, action, version) => {
10818
11313
  for (const [key, engine] of this.syncEngines) {
10819
11314
  if (key === name || key.startsWith(`${name}::`)) {
10820
- void engine.trackChange(coll, id, action, version);
11315
+ if (action === "revert") void engine.removeDirty(coll, id);
11316
+ else void engine.trackChange(coll, id, action, version);
10821
11317
  }
10822
11318
  }
10823
11319
  } : void 0,
@@ -11483,6 +11979,9 @@ var Noydb = class {
11483
11979
  }
11484
11980
  return engine;
11485
11981
  }
11982
+ _forEachSyncEngine(vault, fn2) {
11983
+ for (const [key, engine] of this.syncEngines) if (key === vault || key.startsWith(`${vault}::`)) fn2(engine);
11984
+ }
11486
11985
  // ─── Events ────────────────────────────────────────────────────
11487
11986
  on(event, handler) {
11488
11987
  this.emitter.on(event, handler);
@@ -11905,7 +12404,7 @@ var Noydb = class {
11905
12404
  "setPublicEnvelope: the public-envelope feature is not enabled. Pass `publicEnvelope: true` (or a schema object) to `createNoydb`."
11906
12405
  );
11907
12406
  }
11908
- const { loadPublicEnvelope, savePublicEnvelope, resolveSchema, validatePublicEnvelopeInput } = await import("./public-envelope-MRN5YYZZ.js");
12407
+ const { loadPublicEnvelope, savePublicEnvelope, resolveSchema, validatePublicEnvelopeInput } = await import("./public-envelope-6UBQ4IUY.js");
11909
12408
  const schema = resolveSchema(this.options.publicEnvelope);
11910
12409
  validatePublicEnvelopeInput(input, schema);
11911
12410
  const now = (/* @__PURE__ */ new Date()).toISOString();
@@ -11934,7 +12433,7 @@ var Noydb = class {
11934
12433
  * regardless).
11935
12434
  */
11936
12435
  async getPublicEnvelope(vault, opts = {}) {
11937
- const { readPublicEnvelope } = await import("./public-envelope-MRN5YYZZ.js");
12436
+ const { readPublicEnvelope } = await import("./public-envelope-6UBQ4IUY.js");
11938
12437
  return readPublicEnvelope(this.options.store, vault, opts);
11939
12438
  }
11940
12439
  // ─── Auth introspection ─────────────────────────────────────────
@@ -12125,9 +12624,9 @@ async function createNoydb(options) {
12125
12624
  throw new ValidationError("A secret (passphrase) or getKeyring callback is required when encryption is enabled");
12126
12625
  }
12127
12626
  if (!options.coordinationStrategy) options = { ...options, coordinationStrategy: await createDefaultCoordinationProvider(options.store) };
12128
- if (!options.userApiFactory) options = { ...options, userApiFactory: (await import("./api-JOXUNSKP.js")).createUserApi };
12627
+ if (!options.userApiFactory) options = { ...options, userApiFactory: (await import("./api-OQ65LUSK.js")).createUserApi };
12129
12628
  if (!options.policyFactory) {
12130
- const policyModule = await import("./policy-YIKUH4AD.js");
12629
+ const policyModule = await import("./policy-3ZKSGSRK.js");
12131
12630
  options = { ...options, policyFactory: policyModule.createNoydbPolicy, policyCheckGateFn: policyModule.checkGate };
12132
12631
  }
12133
12632
  return new Noydb(options);
@@ -12162,4 +12661,4 @@ export {
12162
12661
  Noydb,
12163
12662
  createNoydb
12164
12663
  };
12165
- //# sourceMappingURL=chunk-ZPHDGUZZ.js.map
12664
+ //# sourceMappingURL=chunk-D6ADQ4QL.js.map