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

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 (376) hide show
  1. package/CHANGELOG.md +5437 -0
  2. package/dist/api-D6DBNTOS.js +20 -0
  3. package/dist/attestation/index.js +18 -18
  4. package/dist/{backup-K62BFMYK.js → backup-4PZAH67W.js} +12 -12
  5. package/dist/blobs/index.js +13 -13
  6. package/dist/broker/index.js +12 -12
  7. package/dist/cargo/index.js +31 -31
  8. package/dist/{chunk-IPDS2TYW.js → chunk-23XKHFNT.js} +4 -4
  9. package/dist/{chunk-GYUCRDAU.js → chunk-2DFE4TUE.js} +4 -4
  10. package/dist/{chunk-2IK6AC6A.js → chunk-2VMCJUK6.js} +5 -5
  11. package/dist/{chunk-DKYEVHZH.js → chunk-3ENNPCIW.js} +2 -2
  12. package/dist/{chunk-REL4OLWW.js → chunk-3TWEXEKX.js} +3 -3
  13. package/dist/{chunk-RNSC2ARR.js → chunk-47F6AI2K.js} +3 -3
  14. package/dist/{chunk-L2XQ776M.js → chunk-4BYZIQ5T.js} +2 -2
  15. package/dist/{chunk-NH2MST6J.js → chunk-4IPP2P74.js} +2 -2
  16. package/dist/{chunk-M4IKEOJS.js → chunk-4O52JH3C.js} +6 -6
  17. package/dist/{chunk-GDGTIWB4.js → chunk-4RZTW5JH.js} +2 -2
  18. package/dist/{chunk-WKD5ESK4.js → chunk-6QMOJTC6.js} +2 -2
  19. package/dist/{chunk-BTNKPDZM.js → chunk-6ZGDIN2D.js} +3 -3
  20. package/dist/{chunk-KDX6VEYV.js → chunk-7JOXCSDU.js} +2 -2
  21. package/dist/{chunk-VEX2BQVX.js → chunk-7LJA7T4W.js} +11 -3
  22. package/dist/{chunk-VEX2BQVX.js.map → chunk-7LJA7T4W.js.map} +1 -1
  23. package/dist/{chunk-S55DBWRC.js → chunk-A5YEUQOY.js} +2 -2
  24. package/dist/{chunk-5J5TTSGW.js → chunk-A66LJYFG.js} +7 -4
  25. package/dist/chunk-A66LJYFG.js.map +1 -0
  26. package/dist/{chunk-DJ23QZIN.js → chunk-AELW6OJZ.js} +2 -2
  27. package/dist/{chunk-YOT7D63X.js → chunk-AGETRKC5.js} +3 -3
  28. package/dist/{chunk-W6NFONOV.js → chunk-ANYVM4SX.js} +2 -2
  29. package/dist/{chunk-CADUYBQD.js → chunk-ATL3ZVXT.js} +2 -2
  30. package/dist/{chunk-GILI76SU.js → chunk-BFNBYT62.js} +2 -2
  31. package/dist/{chunk-N7YAQKAO.js → chunk-BPLSGN4X.js} +2 -2
  32. package/dist/{chunk-ZPMXYPBR.js → chunk-BXHG26KN.js} +2 -2
  33. package/dist/{chunk-437FDIHO.js → chunk-CW3VJARJ.js} +3 -3
  34. package/dist/{chunk-ODVIFBAQ.js → chunk-D5EXZVQC.js} +6 -6
  35. package/dist/{chunk-D5UDZANO.js → chunk-DIVPOJPV.js} +96 -8
  36. package/dist/chunk-DIVPOJPV.js.map +1 -0
  37. package/dist/{chunk-PZSS7MUM.js → chunk-DIYI32MG.js} +5 -5
  38. package/dist/{chunk-SFD2LL7G.js → chunk-DUUARUZI.js} +2 -2
  39. package/dist/{chunk-OWGEHDT2.js → chunk-ESXVNASI.js} +5 -5
  40. package/dist/{chunk-MNMYHZVU.js → chunk-F3BICEMK.js} +2 -2
  41. package/dist/{chunk-F5AJZC3U.js → chunk-F5IFR56V.js} +30 -11
  42. package/dist/chunk-F5IFR56V.js.map +1 -0
  43. package/dist/{chunk-RKDH6L53.js → chunk-FFESJQ5A.js} +303 -49
  44. package/dist/chunk-FFESJQ5A.js.map +1 -0
  45. package/dist/{chunk-HJRTFXAA.js → chunk-FFSQFH6D.js} +2 -2
  46. package/dist/{chunk-GT72D4FO.js → chunk-FGZ7GJXO.js} +3 -3
  47. package/dist/{chunk-WBNXZU42.js → chunk-FHEVZQQY.js} +4 -4
  48. package/dist/{chunk-VHVMJWM6.js → chunk-FKZI4NSG.js} +6 -6
  49. package/dist/{chunk-TENLCGYD.js → chunk-FUIG7QSS.js} +4 -4
  50. package/dist/{chunk-ZBDWKPBW.js → chunk-GWJJ5CK3.js} +5 -5
  51. package/dist/{chunk-MNUTPZRQ.js → chunk-H27DIXOV.js} +6 -6
  52. package/dist/{chunk-ZXW3X3DQ.js → chunk-H3SEW5HB.js} +7 -7
  53. package/dist/{chunk-ICCRAPWD.js → chunk-H6K24KLL.js} +4 -4
  54. package/dist/{chunk-DYASJSKI.js → chunk-HRSEAGLI.js} +3 -3
  55. package/dist/{chunk-6TXUVKPG.js → chunk-HUEG3YP4.js} +117 -92
  56. package/dist/chunk-HUEG3YP4.js.map +1 -0
  57. package/dist/{chunk-XGQGWZ6D.js → chunk-HZIIDYJV.js} +4 -4
  58. package/dist/{chunk-GQ3BX5EA.js → chunk-I3ISCYT7.js} +2 -2
  59. package/dist/{chunk-3Y4OFWQJ.js → chunk-IGNJOJEP.js} +1 -1
  60. package/dist/chunk-IGNJOJEP.js.map +1 -0
  61. package/dist/{chunk-N2HKBESK.js → chunk-IPA6ODWG.js} +4 -4
  62. package/dist/{chunk-OQLYMBJI.js → chunk-IUQPNAGR.js} +3 -3
  63. package/dist/{chunk-YVTADFTC.js → chunk-JPVJTTHU.js} +4 -4
  64. package/dist/{chunk-KUXTWVAR.js → chunk-JSTQGUE5.js} +43 -9
  65. package/dist/chunk-JSTQGUE5.js.map +1 -0
  66. package/dist/{chunk-JHO6FGZX.js → chunk-KMGAFLCK.js} +5 -5
  67. package/dist/{chunk-5EJQNA26.js → chunk-KYUKZIW5.js} +2 -2
  68. package/dist/{chunk-HGJC7I5F.js → chunk-L2YYIQYR.js} +2 -2
  69. package/dist/{chunk-PNAIDIP7.js → chunk-L3AM6EGU.js} +16 -9
  70. package/dist/{chunk-PNAIDIP7.js.map → chunk-L3AM6EGU.js.map} +1 -1
  71. package/dist/{chunk-KM6YR5XF.js → chunk-LLLSK7UQ.js} +2 -2
  72. package/dist/{chunk-QPIUFRUC.js → chunk-M3FKPVOU.js} +3 -3
  73. package/dist/{chunk-CV7WXCZD.js → chunk-M7VSXBUL.js} +10 -10
  74. package/dist/{chunk-APV42WPR.js → chunk-MBZFAJKM.js} +2 -2
  75. package/dist/{chunk-SG3OQCRG.js → chunk-MQFKH3ZJ.js} +3 -3
  76. package/dist/{chunk-ZWKF3CD3.js → chunk-NB2CKJ27.js} +2 -2
  77. package/dist/{chunk-HTHRCGWP.js → chunk-NCAMIRFB.js} +2 -2
  78. package/dist/{chunk-VH2W6BOG.js → chunk-NHXIFF4Y.js} +7 -7
  79. package/dist/{chunk-IGJCYUT5.js → chunk-NSITFOCJ.js} +1 -1
  80. package/dist/chunk-NSITFOCJ.js.map +1 -0
  81. package/dist/{chunk-VJ4B3ZXY.js → chunk-O5QXH7U7.js} +2 -2
  82. package/dist/{chunk-MQXYR65M.js → chunk-OBPL43F3.js} +6 -6
  83. package/dist/{chunk-HTMQBBF3.js → chunk-OCW3IM2F.js} +3 -3
  84. package/dist/{chunk-E6VDPBE3.js → chunk-OIW75CLW.js} +6 -6
  85. package/dist/{chunk-NRNTXBHT.js → chunk-OTHHO3KI.js} +2 -2
  86. package/dist/{chunk-4HVTRHSA.js → chunk-OZ5QBLEL.js} +6 -6
  87. package/dist/{chunk-ZVAFJQZB.js → chunk-PENPHA45.js} +2 -2
  88. package/dist/{chunk-CVYXIN5B.js → chunk-PGHSH4TY.js} +3 -3
  89. package/dist/{chunk-P7L3OQLL.js → chunk-PKUJ3JLQ.js} +25 -1
  90. package/dist/chunk-PKUJ3JLQ.js.map +1 -0
  91. package/dist/{chunk-IOURTXTM.js → chunk-PNXJV4OS.js} +79 -23
  92. package/dist/chunk-PNXJV4OS.js.map +1 -0
  93. package/dist/{chunk-A4K5GLE6.js → chunk-PWK3SSNB.js} +6 -6
  94. package/dist/{chunk-5JT4Y5UE.js → chunk-QK2QAMF7.js} +10 -10
  95. package/dist/{chunk-PG6PFMDC.js → chunk-QMJI5VHV.js} +2 -2
  96. package/dist/{chunk-RQY5UWEL.js → chunk-QTWWZ25B.js} +12 -12
  97. package/dist/{chunk-RSFG7XHM.js → chunk-REKDM67V.js} +2 -2
  98. package/dist/{chunk-2E2MKBMI.js → chunk-REQJLII3.js} +2 -2
  99. package/dist/{chunk-TC6MBEGH.js → chunk-RJYPFCID.js} +5 -5
  100. package/dist/{chunk-EJIVFOOQ.js → chunk-RT7CWTUG.js} +6 -6
  101. package/dist/{chunk-6S466CMQ.js → chunk-SRR22EW2.js} +8 -8
  102. package/dist/{chunk-C7WJNVJG.js → chunk-TKLQWOTY.js} +2 -2
  103. package/dist/{chunk-SA77BQ7F.js → chunk-UQUWSM33.js} +5 -5
  104. package/dist/{chunk-KBOPY6W2.js → chunk-VKYEEJJ2.js} +2 -2
  105. package/dist/{chunk-7RCZ436O.js → chunk-VMYXYFPX.js} +2 -2
  106. package/dist/{chunk-5BS6IQZZ.js → chunk-VWPJX5B3.js} +5 -5
  107. package/dist/{chunk-JIF3IBRK.js → chunk-VYLC5KAT.js} +2 -2
  108. package/dist/{chunk-OIIAXFKM.js → chunk-WFC2GHJG.js} +3 -3
  109. package/dist/{chunk-NYSD43OE.js → chunk-WKT7NNNR.js} +4 -4
  110. package/dist/{chunk-BP4I7IBK.js → chunk-WRGNEAUZ.js} +2 -2
  111. package/dist/{chunk-47ZFULEZ.js → chunk-WUNRUSBJ.js} +2 -2
  112. package/dist/{chunk-L6FSZFG7.js → chunk-XPTYXXMD.js} +3 -3
  113. package/dist/{chunk-EG6AQBYW.js → chunk-XZZIZ544.js} +8 -8
  114. package/dist/{chunk-RORE2GX2.js → chunk-YF3CIA6E.js} +2 -2
  115. package/dist/{chunk-AQF7JSQR.js → chunk-YOMI3ZCA.js} +2 -2
  116. package/dist/{chunk-A3NTKHDB.js → chunk-ZAZW5LLF.js} +2 -2
  117. package/dist/{chunk-32O2N2CH.js → chunk-ZUDIY7YP.js} +7 -7
  118. package/dist/classified/index.js +5 -5
  119. package/dist/{classified-marker-PMDG3O36.js → classified-marker-EPL2NX3H.js} +3 -3
  120. package/dist/collection-facade-3DN4ETEP.js +45 -0
  121. package/dist/{computed-UHCBRILW.js → computed-UXN4AMI5.js} +3 -3
  122. package/dist/consent/index.js +9 -9
  123. package/dist/cover/index.js +9 -9
  124. package/dist/custody/index.js +11 -11
  125. package/dist/{dead-filter-777VWDER.js → dead-filter-56AYTNAO.js} +2 -2
  126. package/dist/debug/index.js +1 -1
  127. package/dist/{delegation-4R5DU23X.js → delegation-MCCWCFZA.js} +11 -11
  128. package/dist/derivations/index.js +12 -12
  129. package/dist/derive-BSAF6N5X.js +22 -0
  130. package/dist/directory/index.js +10 -10
  131. package/dist/{dispatch-ASL257KG.js → dispatch-JM7X5BLP.js} +5 -5
  132. package/dist/{dispatch-3EN6YCCS.js → dispatch-UPZW4MAO.js} +18 -18
  133. package/dist/{enclave-ZJS5R5RH.js → enclave-CCXI3WEU.js} +11 -9
  134. package/dist/executor-6YQYFGHK.js +9 -0
  135. package/dist/executor-GLKPMISJ.js +9 -0
  136. package/dist/executor-ZEIX7Y7I.js +29 -0
  137. package/dist/export-accessible-SDIQEFHQ.js +23 -0
  138. package/dist/extract-partition-K232SO2V.js +38 -0
  139. package/dist/{fanout-sidecar-TFPWDOME.js → fanout-sidecar-2EHAV6UP.js} +9 -9
  140. package/dist/find-GKFC5753.js +11 -0
  141. package/dist/forget/index.js +9 -9
  142. package/dist/guards/index.js +7 -7
  143. package/dist/history/index.js +13 -13
  144. package/dist/i18n/index.js +14 -14
  145. package/dist/index.d.ts +2 -1
  146. package/dist/index.js +98 -94
  147. package/dist/index.js.map +1 -1
  148. package/dist/indexing/index.js +4 -4
  149. package/dist/introspection/index.js +11 -11
  150. package/dist/issue-QTQYQJCB.js +19 -0
  151. package/dist/kernel/constants.d.ts +18 -0
  152. package/dist/kernel/enclave/index.d.ts +1 -0
  153. package/dist/kernel/enclave/record-keys/rekey-blob.d.ts +88 -0
  154. package/dist/kernel/errors.d.ts +48 -1
  155. package/dist/kernel/noydb.d.ts +18 -1
  156. package/dist/kernel/query/builder.d.ts +36 -2
  157. package/dist/kernel/query/live.d.ts +31 -9
  158. package/dist/kernel/query/predicate.d.ts +9 -0
  159. package/dist/kernel/types.d.ts +20 -6
  160. package/dist/kernel/vault.d.ts +1 -1
  161. package/dist/{ledger-62CEPRPX.js → ledger-TZIDVW22.js} +11 -11
  162. package/dist/liberate-FOK7RFYQ.js +24 -0
  163. package/dist/{link-set-ZRYNUHN3.js → link-set-VOMRQB2H.js} +11 -11
  164. package/dist/{managed-secret-T2WB4O47.js → managed-secret-N6FWB5LX.js} +10 -10
  165. package/dist/materialized-views/index.js +22 -22
  166. package/dist/migrate-cek-UEO2EUWI.js +19 -0
  167. package/dist/migrate-cek-UEO2EUWI.js.map +1 -0
  168. package/dist/money/index.js +5 -5
  169. package/dist/noydb-3BBLBSHI.js +84 -0
  170. package/dist/overlay-views/index.js +4 -4
  171. package/dist/periods/index.js +12 -12
  172. package/dist/pod/index.js +58 -58
  173. package/dist/{pod-handle-UPLXOGIK.js → pod-handle-D6ZRTO4N.js} +9 -9
  174. package/dist/policy/index.js +10 -10
  175. package/dist/port/with/team-strategy.d.ts +5 -1
  176. package/dist/portability/index.js +8 -8
  177. package/dist/{post-register-J4DEVNXK.js → post-register-XVGHYYSB.js} +6 -6
  178. package/dist/query/index.js +6 -6
  179. package/dist/reduce/index.js +6 -6
  180. package/dist/register-FVUE46K4.js +32 -0
  181. package/dist/registry-7PBVHSD5.js +19 -0
  182. package/dist/registry-CCXD57GV.js +18 -0
  183. package/dist/registry-K75FRKSU.js +9 -0
  184. package/dist/registry-KZYPKIOF.js +9 -0
  185. package/dist/request-withdrawal-WS7PXD7B.js +31 -0
  186. package/dist/{reveal-525XWQU2.js → reveal-Z62PLVJT.js} +6 -6
  187. package/dist/revoke-JH4VQTJ3.js +24 -0
  188. package/dist/satellites/index.js +1 -1
  189. package/dist/schema-update/index.js +2 -2
  190. package/dist/sealed-record/index.js +12 -12
  191. package/dist/search/index.js +4 -4
  192. package/dist/{seed-SGIF3EN4.js → seed-R2JK2YQK.js} +11 -11
  193. package/dist/sequence/index.js +9 -9
  194. package/dist/session/index.js +9 -9
  195. package/dist/shadow/index.js +2 -2
  196. package/dist/signer-AFV6AXSN.js +25 -0
  197. package/dist/snapshots/index.js +10 -10
  198. package/dist/{stale-PQYPVCER.js → stale-FVK3WRMM.js} +10 -10
  199. package/dist/storage-EIM5HO2O.js +23 -0
  200. package/dist/{store-coordination-provider-TFHZLKHG.js → store-coordination-provider-HIPOZMC2.js} +10 -10
  201. package/dist/sync/index.js +10 -10
  202. package/dist/team/index.js +15 -15
  203. package/dist/tiers/index.js +11 -11
  204. package/dist/to/index.js +1 -1
  205. package/dist/transactions/index.js +3 -3
  206. package/dist/util/index.js +1 -1
  207. package/dist/vault-head/index.js +8 -8
  208. package/dist/{verify-J6DEOXP3.js → verify-KYICK5IW.js} +5 -5
  209. package/dist/walk-FV6JFWXV.js +21 -0
  210. package/dist/with-party/team/keyring.d.ts +132 -0
  211. package/dist/with-party/team/noydb-facade.d.ts +5 -1
  212. package/dist/with-party/team/roster-tag.d.ts +101 -0
  213. package/dist/with-shape/blobs/blob-set.d.ts +61 -9
  214. package/dist/withdraw-accessible-JYX3SPVY.js +28 -0
  215. package/package.json +4 -3
  216. package/dist/api-Z5VHH24A.js +0 -20
  217. package/dist/chunk-3Y4OFWQJ.js.map +0 -1
  218. package/dist/chunk-5J5TTSGW.js.map +0 -1
  219. package/dist/chunk-6TXUVKPG.js.map +0 -1
  220. package/dist/chunk-D5UDZANO.js.map +0 -1
  221. package/dist/chunk-F5AJZC3U.js.map +0 -1
  222. package/dist/chunk-IGJCYUT5.js.map +0 -1
  223. package/dist/chunk-IOURTXTM.js.map +0 -1
  224. package/dist/chunk-KUXTWVAR.js.map +0 -1
  225. package/dist/chunk-P7L3OQLL.js.map +0 -1
  226. package/dist/chunk-RKDH6L53.js.map +0 -1
  227. package/dist/collection-facade-ZJK5EB33.js +0 -45
  228. package/dist/derive-3WAS2G5T.js +0 -22
  229. package/dist/executor-GPM6DNWV.js +0 -9
  230. package/dist/executor-LJSMZ4IB.js +0 -9
  231. package/dist/executor-SHUVRZUJ.js +0 -29
  232. package/dist/export-accessible-GNY6DC6U.js +0 -23
  233. package/dist/extract-partition-BG3AF4NZ.js +0 -38
  234. package/dist/find-KX6OKHDP.js +0 -11
  235. package/dist/issue-PAUM7NCX.js +0 -19
  236. package/dist/liberate-I6AOLWXW.js +0 -24
  237. package/dist/noydb-SS6EN7TK.js +0 -84
  238. package/dist/register-UPD4GKBC.js +0 -32
  239. package/dist/registry-7KX2HWFS.js +0 -18
  240. package/dist/registry-PKYYEHEW.js +0 -9
  241. package/dist/registry-XHCYMD34.js +0 -19
  242. package/dist/registry-XIRTZHPC.js +0 -9
  243. package/dist/request-withdrawal-XZSESWZV.js +0 -31
  244. package/dist/revoke-QI7YHQ2B.js +0 -24
  245. package/dist/signer-BZWDPGGN.js +0 -25
  246. package/dist/storage-MJHKNQRO.js +0 -23
  247. package/dist/walk-BX4NSB5L.js +0 -21
  248. package/dist/withdraw-accessible-K4CPMH4C.js +0 -28
  249. /package/dist/{api-Z5VHH24A.js.map → api-D6DBNTOS.js.map} +0 -0
  250. /package/dist/{backup-K62BFMYK.js.map → backup-4PZAH67W.js.map} +0 -0
  251. /package/dist/{chunk-IPDS2TYW.js.map → chunk-23XKHFNT.js.map} +0 -0
  252. /package/dist/{chunk-GYUCRDAU.js.map → chunk-2DFE4TUE.js.map} +0 -0
  253. /package/dist/{chunk-2IK6AC6A.js.map → chunk-2VMCJUK6.js.map} +0 -0
  254. /package/dist/{chunk-DKYEVHZH.js.map → chunk-3ENNPCIW.js.map} +0 -0
  255. /package/dist/{chunk-REL4OLWW.js.map → chunk-3TWEXEKX.js.map} +0 -0
  256. /package/dist/{chunk-RNSC2ARR.js.map → chunk-47F6AI2K.js.map} +0 -0
  257. /package/dist/{chunk-L2XQ776M.js.map → chunk-4BYZIQ5T.js.map} +0 -0
  258. /package/dist/{chunk-NH2MST6J.js.map → chunk-4IPP2P74.js.map} +0 -0
  259. /package/dist/{chunk-M4IKEOJS.js.map → chunk-4O52JH3C.js.map} +0 -0
  260. /package/dist/{chunk-GDGTIWB4.js.map → chunk-4RZTW5JH.js.map} +0 -0
  261. /package/dist/{chunk-WKD5ESK4.js.map → chunk-6QMOJTC6.js.map} +0 -0
  262. /package/dist/{chunk-BTNKPDZM.js.map → chunk-6ZGDIN2D.js.map} +0 -0
  263. /package/dist/{chunk-KDX6VEYV.js.map → chunk-7JOXCSDU.js.map} +0 -0
  264. /package/dist/{chunk-S55DBWRC.js.map → chunk-A5YEUQOY.js.map} +0 -0
  265. /package/dist/{chunk-DJ23QZIN.js.map → chunk-AELW6OJZ.js.map} +0 -0
  266. /package/dist/{chunk-YOT7D63X.js.map → chunk-AGETRKC5.js.map} +0 -0
  267. /package/dist/{chunk-W6NFONOV.js.map → chunk-ANYVM4SX.js.map} +0 -0
  268. /package/dist/{chunk-CADUYBQD.js.map → chunk-ATL3ZVXT.js.map} +0 -0
  269. /package/dist/{chunk-GILI76SU.js.map → chunk-BFNBYT62.js.map} +0 -0
  270. /package/dist/{chunk-N7YAQKAO.js.map → chunk-BPLSGN4X.js.map} +0 -0
  271. /package/dist/{chunk-ZPMXYPBR.js.map → chunk-BXHG26KN.js.map} +0 -0
  272. /package/dist/{chunk-437FDIHO.js.map → chunk-CW3VJARJ.js.map} +0 -0
  273. /package/dist/{chunk-ODVIFBAQ.js.map → chunk-D5EXZVQC.js.map} +0 -0
  274. /package/dist/{chunk-PZSS7MUM.js.map → chunk-DIYI32MG.js.map} +0 -0
  275. /package/dist/{chunk-SFD2LL7G.js.map → chunk-DUUARUZI.js.map} +0 -0
  276. /package/dist/{chunk-OWGEHDT2.js.map → chunk-ESXVNASI.js.map} +0 -0
  277. /package/dist/{chunk-MNMYHZVU.js.map → chunk-F3BICEMK.js.map} +0 -0
  278. /package/dist/{chunk-HJRTFXAA.js.map → chunk-FFSQFH6D.js.map} +0 -0
  279. /package/dist/{chunk-GT72D4FO.js.map → chunk-FGZ7GJXO.js.map} +0 -0
  280. /package/dist/{chunk-WBNXZU42.js.map → chunk-FHEVZQQY.js.map} +0 -0
  281. /package/dist/{chunk-VHVMJWM6.js.map → chunk-FKZI4NSG.js.map} +0 -0
  282. /package/dist/{chunk-TENLCGYD.js.map → chunk-FUIG7QSS.js.map} +0 -0
  283. /package/dist/{chunk-ZBDWKPBW.js.map → chunk-GWJJ5CK3.js.map} +0 -0
  284. /package/dist/{chunk-MNUTPZRQ.js.map → chunk-H27DIXOV.js.map} +0 -0
  285. /package/dist/{chunk-ZXW3X3DQ.js.map → chunk-H3SEW5HB.js.map} +0 -0
  286. /package/dist/{chunk-ICCRAPWD.js.map → chunk-H6K24KLL.js.map} +0 -0
  287. /package/dist/{chunk-DYASJSKI.js.map → chunk-HRSEAGLI.js.map} +0 -0
  288. /package/dist/{chunk-XGQGWZ6D.js.map → chunk-HZIIDYJV.js.map} +0 -0
  289. /package/dist/{chunk-GQ3BX5EA.js.map → chunk-I3ISCYT7.js.map} +0 -0
  290. /package/dist/{chunk-N2HKBESK.js.map → chunk-IPA6ODWG.js.map} +0 -0
  291. /package/dist/{chunk-OQLYMBJI.js.map → chunk-IUQPNAGR.js.map} +0 -0
  292. /package/dist/{chunk-YVTADFTC.js.map → chunk-JPVJTTHU.js.map} +0 -0
  293. /package/dist/{chunk-JHO6FGZX.js.map → chunk-KMGAFLCK.js.map} +0 -0
  294. /package/dist/{chunk-5EJQNA26.js.map → chunk-KYUKZIW5.js.map} +0 -0
  295. /package/dist/{chunk-HGJC7I5F.js.map → chunk-L2YYIQYR.js.map} +0 -0
  296. /package/dist/{chunk-KM6YR5XF.js.map → chunk-LLLSK7UQ.js.map} +0 -0
  297. /package/dist/{chunk-QPIUFRUC.js.map → chunk-M3FKPVOU.js.map} +0 -0
  298. /package/dist/{chunk-CV7WXCZD.js.map → chunk-M7VSXBUL.js.map} +0 -0
  299. /package/dist/{chunk-APV42WPR.js.map → chunk-MBZFAJKM.js.map} +0 -0
  300. /package/dist/{chunk-SG3OQCRG.js.map → chunk-MQFKH3ZJ.js.map} +0 -0
  301. /package/dist/{chunk-ZWKF3CD3.js.map → chunk-NB2CKJ27.js.map} +0 -0
  302. /package/dist/{chunk-HTHRCGWP.js.map → chunk-NCAMIRFB.js.map} +0 -0
  303. /package/dist/{chunk-VH2W6BOG.js.map → chunk-NHXIFF4Y.js.map} +0 -0
  304. /package/dist/{chunk-VJ4B3ZXY.js.map → chunk-O5QXH7U7.js.map} +0 -0
  305. /package/dist/{chunk-MQXYR65M.js.map → chunk-OBPL43F3.js.map} +0 -0
  306. /package/dist/{chunk-HTMQBBF3.js.map → chunk-OCW3IM2F.js.map} +0 -0
  307. /package/dist/{chunk-E6VDPBE3.js.map → chunk-OIW75CLW.js.map} +0 -0
  308. /package/dist/{chunk-NRNTXBHT.js.map → chunk-OTHHO3KI.js.map} +0 -0
  309. /package/dist/{chunk-4HVTRHSA.js.map → chunk-OZ5QBLEL.js.map} +0 -0
  310. /package/dist/{chunk-ZVAFJQZB.js.map → chunk-PENPHA45.js.map} +0 -0
  311. /package/dist/{chunk-CVYXIN5B.js.map → chunk-PGHSH4TY.js.map} +0 -0
  312. /package/dist/{chunk-A4K5GLE6.js.map → chunk-PWK3SSNB.js.map} +0 -0
  313. /package/dist/{chunk-5JT4Y5UE.js.map → chunk-QK2QAMF7.js.map} +0 -0
  314. /package/dist/{chunk-PG6PFMDC.js.map → chunk-QMJI5VHV.js.map} +0 -0
  315. /package/dist/{chunk-RQY5UWEL.js.map → chunk-QTWWZ25B.js.map} +0 -0
  316. /package/dist/{chunk-RSFG7XHM.js.map → chunk-REKDM67V.js.map} +0 -0
  317. /package/dist/{chunk-2E2MKBMI.js.map → chunk-REQJLII3.js.map} +0 -0
  318. /package/dist/{chunk-TC6MBEGH.js.map → chunk-RJYPFCID.js.map} +0 -0
  319. /package/dist/{chunk-EJIVFOOQ.js.map → chunk-RT7CWTUG.js.map} +0 -0
  320. /package/dist/{chunk-6S466CMQ.js.map → chunk-SRR22EW2.js.map} +0 -0
  321. /package/dist/{chunk-C7WJNVJG.js.map → chunk-TKLQWOTY.js.map} +0 -0
  322. /package/dist/{chunk-SA77BQ7F.js.map → chunk-UQUWSM33.js.map} +0 -0
  323. /package/dist/{chunk-KBOPY6W2.js.map → chunk-VKYEEJJ2.js.map} +0 -0
  324. /package/dist/{chunk-7RCZ436O.js.map → chunk-VMYXYFPX.js.map} +0 -0
  325. /package/dist/{chunk-5BS6IQZZ.js.map → chunk-VWPJX5B3.js.map} +0 -0
  326. /package/dist/{chunk-JIF3IBRK.js.map → chunk-VYLC5KAT.js.map} +0 -0
  327. /package/dist/{chunk-OIIAXFKM.js.map → chunk-WFC2GHJG.js.map} +0 -0
  328. /package/dist/{chunk-NYSD43OE.js.map → chunk-WKT7NNNR.js.map} +0 -0
  329. /package/dist/{chunk-BP4I7IBK.js.map → chunk-WRGNEAUZ.js.map} +0 -0
  330. /package/dist/{chunk-47ZFULEZ.js.map → chunk-WUNRUSBJ.js.map} +0 -0
  331. /package/dist/{chunk-L6FSZFG7.js.map → chunk-XPTYXXMD.js.map} +0 -0
  332. /package/dist/{chunk-EG6AQBYW.js.map → chunk-XZZIZ544.js.map} +0 -0
  333. /package/dist/{chunk-RORE2GX2.js.map → chunk-YF3CIA6E.js.map} +0 -0
  334. /package/dist/{chunk-AQF7JSQR.js.map → chunk-YOMI3ZCA.js.map} +0 -0
  335. /package/dist/{chunk-A3NTKHDB.js.map → chunk-ZAZW5LLF.js.map} +0 -0
  336. /package/dist/{chunk-32O2N2CH.js.map → chunk-ZUDIY7YP.js.map} +0 -0
  337. /package/dist/{classified-marker-PMDG3O36.js.map → classified-marker-EPL2NX3H.js.map} +0 -0
  338. /package/dist/{collection-facade-ZJK5EB33.js.map → collection-facade-3DN4ETEP.js.map} +0 -0
  339. /package/dist/{computed-UHCBRILW.js.map → computed-UXN4AMI5.js.map} +0 -0
  340. /package/dist/{dead-filter-777VWDER.js.map → dead-filter-56AYTNAO.js.map} +0 -0
  341. /package/dist/{delegation-4R5DU23X.js.map → delegation-MCCWCFZA.js.map} +0 -0
  342. /package/dist/{derive-3WAS2G5T.js.map → derive-BSAF6N5X.js.map} +0 -0
  343. /package/dist/{dispatch-ASL257KG.js.map → dispatch-JM7X5BLP.js.map} +0 -0
  344. /package/dist/{dispatch-3EN6YCCS.js.map → dispatch-UPZW4MAO.js.map} +0 -0
  345. /package/dist/{enclave-ZJS5R5RH.js.map → enclave-CCXI3WEU.js.map} +0 -0
  346. /package/dist/{executor-GPM6DNWV.js.map → executor-6YQYFGHK.js.map} +0 -0
  347. /package/dist/{executor-LJSMZ4IB.js.map → executor-GLKPMISJ.js.map} +0 -0
  348. /package/dist/{executor-SHUVRZUJ.js.map → executor-ZEIX7Y7I.js.map} +0 -0
  349. /package/dist/{export-accessible-GNY6DC6U.js.map → export-accessible-SDIQEFHQ.js.map} +0 -0
  350. /package/dist/{extract-partition-BG3AF4NZ.js.map → extract-partition-K232SO2V.js.map} +0 -0
  351. /package/dist/{fanout-sidecar-TFPWDOME.js.map → fanout-sidecar-2EHAV6UP.js.map} +0 -0
  352. /package/dist/{find-KX6OKHDP.js.map → find-GKFC5753.js.map} +0 -0
  353. /package/dist/{issue-PAUM7NCX.js.map → issue-QTQYQJCB.js.map} +0 -0
  354. /package/dist/{ledger-62CEPRPX.js.map → ledger-TZIDVW22.js.map} +0 -0
  355. /package/dist/{liberate-I6AOLWXW.js.map → liberate-FOK7RFYQ.js.map} +0 -0
  356. /package/dist/{link-set-ZRYNUHN3.js.map → link-set-VOMRQB2H.js.map} +0 -0
  357. /package/dist/{managed-secret-T2WB4O47.js.map → managed-secret-N6FWB5LX.js.map} +0 -0
  358. /package/dist/{noydb-SS6EN7TK.js.map → noydb-3BBLBSHI.js.map} +0 -0
  359. /package/dist/{pod-handle-UPLXOGIK.js.map → pod-handle-D6ZRTO4N.js.map} +0 -0
  360. /package/dist/{post-register-J4DEVNXK.js.map → post-register-XVGHYYSB.js.map} +0 -0
  361. /package/dist/{register-UPD4GKBC.js.map → register-FVUE46K4.js.map} +0 -0
  362. /package/dist/{registry-7KX2HWFS.js.map → registry-7PBVHSD5.js.map} +0 -0
  363. /package/dist/{registry-PKYYEHEW.js.map → registry-CCXD57GV.js.map} +0 -0
  364. /package/dist/{registry-XHCYMD34.js.map → registry-K75FRKSU.js.map} +0 -0
  365. /package/dist/{registry-XIRTZHPC.js.map → registry-KZYPKIOF.js.map} +0 -0
  366. /package/dist/{request-withdrawal-XZSESWZV.js.map → request-withdrawal-WS7PXD7B.js.map} +0 -0
  367. /package/dist/{reveal-525XWQU2.js.map → reveal-Z62PLVJT.js.map} +0 -0
  368. /package/dist/{revoke-QI7YHQ2B.js.map → revoke-JH4VQTJ3.js.map} +0 -0
  369. /package/dist/{seed-SGIF3EN4.js.map → seed-R2JK2YQK.js.map} +0 -0
  370. /package/dist/{signer-BZWDPGGN.js.map → signer-AFV6AXSN.js.map} +0 -0
  371. /package/dist/{stale-PQYPVCER.js.map → stale-FVK3WRMM.js.map} +0 -0
  372. /package/dist/{storage-MJHKNQRO.js.map → storage-EIM5HO2O.js.map} +0 -0
  373. /package/dist/{store-coordination-provider-TFHZLKHG.js.map → store-coordination-provider-HIPOZMC2.js.map} +0 -0
  374. /package/dist/{verify-J6DEOXP3.js.map → verify-KYICK5IW.js.map} +0 -0
  375. /package/dist/{walk-BX4NSB5L.js.map → walk-FV6JFWXV.js.map} +0 -0
  376. /package/dist/{withdraw-accessible-K4CPMH4C.js.map → withdraw-accessible-JYX3SPVY.js.map} +0 -0
@@ -270,6 +270,32 @@ export declare class Query<T, S extends keyof T = never, Q extends keyof T & str
270
270
  * carries the original `T` fields plus `result[as]` populated from every
271
271
  * right-side row (or the filtered subset when `on:` is supplied).
272
272
  *
273
+ * **⚠️ INNER-join semantics — an empty right subset DROPS the left row.**
274
+ * Each left row is emitted once per matching right row, so when `on:`
275
+ * yields nothing the row vanishes with no error, no warning and no count
276
+ * mismatch. This bites hardest on a reverse FK, where `.join()` (which is
277
+ * forward-only, and already a genuine LEFT outer join) does not apply and
278
+ * `.crossJoin()` is the only tool. To keep the row, return a one-element
279
+ * array holding `null`:
280
+ *
281
+ * ```ts
282
+ * .crossJoin('clients', { as: 'client', on: (b) => byEntity.get(b.entityId) ?? [null] })
283
+ * // ^^^^^^^^
284
+ * // the ONLY thing preserving the row
285
+ * ```
286
+ *
287
+ * **Prefer `outer: true`**, which does exactly this and types the alias as
288
+ * `TTarget | null`:
289
+ *
290
+ * ```ts
291
+ * .crossJoin('clients', { as: 'client', outer: true, on: (b) => byEntity.get(b.entityId) ?? [] })
292
+ * ```
293
+ *
294
+ * The `?? [null]` form remains valid and is what `outer` does internally, but
295
+ * it is invisible intent: it types the alias as non-null while the row can
296
+ * hold null, and a later "simplification" that drops it silently
297
+ * reintroduces the row loss.
298
+ *
273
299
  * **Order matters:** `.where().crossJoin()` filters BEFORE expanding (cheaper);
274
300
  * `.crossJoin().where('alias.field', ...)` filters AFTER (required when the
275
301
  * where clause references the aliased fields).
@@ -286,14 +312,22 @@ export declare class Query<T, S extends keyof T = never, Q extends keyof T & str
286
312
  *
287
313
  * Requires a JoinContext (constructed via `collection.query()`).
288
314
  */
289
- crossJoin<TTarget = unknown, As extends string = string>(target: string, opts: {
315
+ crossJoin<TTarget = unknown, As extends string = string, TOuter extends boolean = false>(target: string, opts: {
290
316
  as: As;
291
317
  on?: ((left: T) => unknown[] | ((right: TTarget) => boolean)) | {
292
318
  readonly predicate: string;
293
319
  };
294
320
  maxRows?: number;
321
+ /**
322
+ * Keep the left row when its right side is empty, with `null` under
323
+ * `as`, instead of dropping it (#1130). Widens the alias to
324
+ * `TTarget | null` — which is why it is a type parameter rather than a
325
+ * plain boolean: `outer: false` must not pay for a null the row can
326
+ * never hold.
327
+ */
328
+ outer?: TOuter;
295
329
  }): Query<T & {
296
- [K in As]: TTarget;
330
+ [K in As]: TOuter extends true ? TTarget | null : TTarget;
297
331
  }, S, Q, M>;
298
332
  /**
299
333
  * Execute the plan and return the matching records. When the plan
@@ -6,11 +6,18 @@
6
6
  * collection AND every right-side collection a join leg points at)
7
7
  * mutates.
8
8
  *
9
- * Framework-agnostic by design. The Vue layer wraps a `LiveQuery`
10
- * in a Vue `Ref<T[]>` by subscribing once and copying `value` into
11
- * the ref on every notification. React/Solid/Svelte adapters do the
12
- * same with their own primitives. Core never depends on a UI
13
- * framework.
9
+ * Framework-agnostic by design — core never depends on a UI
10
+ * framework. The binding that wraps a `LiveQuery` is
11
+ * `@noy-db/in-vue`'s `useLiveQuery(live)`: it subscribes once,
12
+ * mirrors `value` into a `ShallowRef`, re-reads `error` on every
13
+ * notification, and disposes via `onScopeDispose`.
14
+ * `@noy-db/in-pinia`'s `store.liveQuery(build)` delegates to it, so
15
+ * there is one implementation rather than two that drift (#1131).
16
+ *
17
+ * There is NO wrapper for `in-react`, `in-solid` or `in-svelte` — a
18
+ * consumer on those subscribes directly (see **Error semantics**
19
+ * below, which is the part a hand-rolled wrapper usually gets
20
+ * wrong). Do not describe those adapters as existing until one does.
14
21
  *
15
22
  * **Error semantics.** A `.live()` query may throw at re-run time —
16
23
  * a strict-mode `DanglingReferenceError` is the most common case
@@ -57,10 +64,25 @@
57
64
  */
58
65
  export interface LiveQuery<T> {
59
66
  /**
60
- * Current snapshot of the query result. Updated in place on
61
- * every upstream change. The reference returned is the same
62
- * `readonly T[]` array — consumers that want change detection by
63
- * reference should copy: `const arr = [...live.value]`.
67
+ * Current snapshot of the query result.
68
+ *
69
+ * **A FRESH ARRAY on every successful re-run** — `refresh()` assigns
70
+ * `this._value = this.recompute()`, and `recompute` is the query's own
71
+ * `toArray()`. So the reference CHANGES on each change, and reference
72
+ * identity is a valid change signal: a Vue `shallowRef`, a React
73
+ * `useState`, or any `Object.is` comparison detects an update without
74
+ * copying.
75
+ *
76
+ * The corollary is the part that bites: a consumer who reads `value`
77
+ * ONCE and holds the array gets a snapshot that never updates. Read it
78
+ * again after each notification — do not cache it.
79
+ *
80
+ * (An earlier version of this comment said the opposite — "updated in
81
+ * place… the reference returned is the same array" — and told callers to
82
+ * copy for change detection. Both halves were wrong, and the advice was
83
+ * backwards. Verified against `buildLiveQuery`: two reads across a
84
+ * notification are not `===`, and the first array still holds the old
85
+ * contents.)
64
86
  */
65
87
  readonly value: readonly T[];
66
88
  /**
@@ -106,6 +106,15 @@ export interface CrossJoinClause {
106
106
  readonly onPredicateName?: string;
107
107
  /** Per-clause row ceiling override. `undefined` → `DEFAULT_CROSS_JOIN_MAX_ROWS`. */
108
108
  readonly maxRows?: number;
109
+ /**
110
+ * Left-outer mode (#1130). When the `on:` subset for a left row is empty,
111
+ * emit that row once with `null` under `as` instead of dropping it.
112
+ *
113
+ * Applies to both call shapes. With `on:` the empty thing is that left
114
+ * row's subset; without it, an empty TARGET collection is what would
115
+ * otherwise drop every left row.
116
+ */
117
+ readonly outer?: boolean;
109
118
  }
110
119
  export type Clause = FieldClause | FilterClause | WherePredicateClause | GroupClause | CrossJoinClause;
111
120
  /**
@@ -931,17 +931,31 @@ export interface KeyringFile {
931
931
  * Secret canary — base64 AES-KW-wrapped form of a known constant
932
932
  * 256-bit value, wrapped under the keyring's KEK.
933
933
  *
934
- * Optional: older keyrings load with no canary and fall back to
935
- * the multi-DEK corruption heuristic. Newer keyrings
936
- * carry one and let `loadKeyring` distinguish wrong-secret
937
- * from corruption even when ALL DEKs (including a single-DEK keyring's
938
- * sole DEK) are corrupted.
934
+ * Lets `loadKeyring` distinguish wrong-secret from corruption even when
935
+ * ALL DEKs (including a single-DEK keyring's sole DEK) are corrupted: the
936
+ * canary unwrapping proves the KEK correct independent of any DEK byte.
939
937
  *
940
938
  * AES-KW is deterministic — every write site mints fresh on each
941
939
  * persist; same KEK + same constant input always produces the same
942
940
  * ciphertext, so this round-trips without state.
941
+ *
942
+ * REQUIRED as of #1096 (no-legacy policy): the pre-canary fallback
943
+ * heuristic is deleted, so an absent canary is not an old file, it is a
944
+ * store that stripped the field — `KeyringTamperedError('canary-missing')`.
945
+ */
946
+ readonly canary: string;
947
+ /**
948
+ * #1096 — AES-GCM({iv,data}) of the canonical authority fields
949
+ * (user_id, role, permissions, granted_by, expires_at, capabilities)
950
+ * under the vault roster key (carried as `deks[ROSTER_KEY_ID]`).
951
+ * Required: a valid canary with a missing or mismatching tag is refused
952
+ * as KeyringTamperedError — absence must itself be an error, or a store
953
+ * opts out of verification by deleting a plaintext field.
943
954
  */
944
- readonly canary?: string;
955
+ readonly roster_tag: {
956
+ readonly iv: string;
957
+ readonly data: string;
958
+ };
945
959
  /**
946
960
  * Tier-2 authenticator slots (multi-slot keyring extension).
947
961
  * Optional / append-only: keyring files written before the
@@ -336,7 +336,7 @@ export declare class Vault {
336
336
  * unblocks R-S7 when a base gains forget coverage after its satellite was
337
337
  * already declared without `perRecordKeys`. Call BEFORE re-declaring with
338
338
  * `{ satelliteOf, perRecordKeys: true }` AND before this collection serves
339
- * writes (unfenced walk — see {@link migrateSatelliteCek}); resumable.
339
+ * writes (unfenced walk — see `with-shape/satellites/migrate-cek.ts`); resumable.
340
340
  */
341
341
  migrateSatellitePerRecordKeys(satelliteName: string): Promise<{
342
342
  migrated: number;
@@ -3,7 +3,7 @@ import {
3
3
  LedgerStore,
4
4
  applyPatch,
5
5
  computePatch
6
- } from "./chunk-MNUTPZRQ.js";
6
+ } from "./chunk-H27DIXOV.js";
7
7
  import {
8
8
  LEDGER_COLLECTION,
9
9
  LEDGER_DELTAS_COLLECTION
@@ -15,16 +15,16 @@ import {
15
15
  paddedIndex,
16
16
  parseIndex,
17
17
  sha256Hex
18
- } from "./chunk-RNSC2ARR.js";
19
- import "./chunk-D5UDZANO.js";
20
- import "./chunk-ZVAFJQZB.js";
21
- import "./chunk-OQLYMBJI.js";
22
- import "./chunk-DJ23QZIN.js";
23
- import "./chunk-SFD2LL7G.js";
18
+ } from "./chunk-47F6AI2K.js";
19
+ import "./chunk-DIVPOJPV.js";
20
+ import "./chunk-PENPHA45.js";
21
+ import "./chunk-IUQPNAGR.js";
22
+ import "./chunk-AELW6OJZ.js";
23
+ import "./chunk-DUUARUZI.js";
24
24
  import "./chunk-LP7BEXCT.js";
25
- import "./chunk-VJ4B3ZXY.js";
26
- import "./chunk-3Y4OFWQJ.js";
27
- import "./chunk-P7L3OQLL.js";
25
+ import "./chunk-O5QXH7U7.js";
26
+ import "./chunk-IGNJOJEP.js";
27
+ import "./chunk-PKUJ3JLQ.js";
28
28
  import "./chunk-PZ5AY32C.js";
29
29
  export {
30
30
  LEDGER_COLLECTION,
@@ -39,4 +39,4 @@ export {
39
39
  parseIndex,
40
40
  sha256Hex
41
41
  };
42
- //# sourceMappingURL=ledger-62CEPRPX.js.map
42
+ //# sourceMappingURL=ledger-TZIDVW22.js.map
@@ -0,0 +1,24 @@
1
+ import {
2
+ liberateVault
3
+ } from "./chunk-L3AM6EGU.js";
4
+ import "./chunk-RJYPFCID.js";
5
+ import "./chunk-BXHG26KN.js";
6
+ import "./chunk-OTHHO3KI.js";
7
+ import "./chunk-2VMCJUK6.js";
8
+ import "./chunk-HRSEAGLI.js";
9
+ import "./chunk-FFESJQ5A.js";
10
+ import "./chunk-KMGAFLCK.js";
11
+ import "./chunk-DIVPOJPV.js";
12
+ import "./chunk-PENPHA45.js";
13
+ import "./chunk-IUQPNAGR.js";
14
+ import "./chunk-AELW6OJZ.js";
15
+ import "./chunk-DUUARUZI.js";
16
+ import "./chunk-LP7BEXCT.js";
17
+ import "./chunk-O5QXH7U7.js";
18
+ import "./chunk-IGNJOJEP.js";
19
+ import "./chunk-PKUJ3JLQ.js";
20
+ import "./chunk-PZ5AY32C.js";
21
+ export {
22
+ liberateVault
23
+ };
24
+ //# sourceMappingURL=liberate-FOK7RFYQ.js.map
@@ -1,23 +1,23 @@
1
1
  import {
2
2
  LinkEndpointError,
3
3
  LinkSet
4
- } from "./chunk-M4IKEOJS.js";
4
+ } from "./chunk-4O52JH3C.js";
5
5
  import {
6
6
  LINK_COLLECTION_PREFIX,
7
7
  LinkIntegrityError,
8
8
  isLinkCollectionName,
9
9
  linkCollectionName,
10
10
  linkRowKey
11
- } from "./chunk-KBOPY6W2.js";
12
- import "./chunk-D5UDZANO.js";
13
- import "./chunk-ZVAFJQZB.js";
14
- import "./chunk-OQLYMBJI.js";
15
- import "./chunk-DJ23QZIN.js";
16
- import "./chunk-SFD2LL7G.js";
11
+ } from "./chunk-VKYEEJJ2.js";
12
+ import "./chunk-DIVPOJPV.js";
13
+ import "./chunk-PENPHA45.js";
14
+ import "./chunk-IUQPNAGR.js";
15
+ import "./chunk-AELW6OJZ.js";
16
+ import "./chunk-DUUARUZI.js";
17
17
  import "./chunk-LP7BEXCT.js";
18
- import "./chunk-VJ4B3ZXY.js";
19
- import "./chunk-3Y4OFWQJ.js";
20
- import "./chunk-P7L3OQLL.js";
18
+ import "./chunk-O5QXH7U7.js";
19
+ import "./chunk-IGNJOJEP.js";
20
+ import "./chunk-PKUJ3JLQ.js";
21
21
  import "./chunk-PZ5AY32C.js";
22
22
  export {
23
23
  LINK_COLLECTION_PREFIX,
@@ -28,4 +28,4 @@ export {
28
28
  linkCollectionName,
29
29
  linkRowKey
30
30
  };
31
- //# sourceMappingURL=link-set-ZRYNUHN3.js.map
31
+ //# sourceMappingURL=link-set-VOMRQB2H.js.map
@@ -9,16 +9,16 @@ import {
9
9
  resolveManagedSecret,
10
10
  saveSealedSecret,
11
11
  sealRsaOaepTlv
12
- } from "./chunk-NRNTXBHT.js";
13
- import "./chunk-D5UDZANO.js";
14
- import "./chunk-ZVAFJQZB.js";
15
- import "./chunk-OQLYMBJI.js";
16
- import "./chunk-DJ23QZIN.js";
17
- import "./chunk-SFD2LL7G.js";
12
+ } from "./chunk-OTHHO3KI.js";
13
+ import "./chunk-DIVPOJPV.js";
14
+ import "./chunk-PENPHA45.js";
15
+ import "./chunk-IUQPNAGR.js";
16
+ import "./chunk-AELW6OJZ.js";
17
+ import "./chunk-DUUARUZI.js";
18
18
  import "./chunk-LP7BEXCT.js";
19
- import "./chunk-VJ4B3ZXY.js";
20
- import "./chunk-3Y4OFWQJ.js";
21
- import "./chunk-P7L3OQLL.js";
19
+ import "./chunk-O5QXH7U7.js";
20
+ import "./chunk-IGNJOJEP.js";
21
+ import "./chunk-PKUJ3JLQ.js";
22
22
  import "./chunk-PZ5AY32C.js";
23
23
  export {
24
24
  MemoryRecipientSealer,
@@ -32,4 +32,4 @@ export {
32
32
  saveSealedSecret,
33
33
  sealRsaOaepTlv
34
34
  };
35
- //# sourceMappingURL=managed-secret-T2WB4O47.js.map
35
+ //# sourceMappingURL=managed-secret-N6FWB5LX.js.map
@@ -1,48 +1,48 @@
1
1
  import {
2
2
  withMaterializedView
3
- } from "../chunk-APV42WPR.js";
3
+ } from "../chunk-MBZFAJKM.js";
4
4
  import {
5
5
  MaterializedViewExecutor
6
- } from "../chunk-EG6AQBYW.js";
6
+ } from "../chunk-XZZIZ544.js";
7
7
  import {
8
8
  clearMVStale,
9
9
  isMVStale,
10
10
  markMVStale,
11
11
  resolveStaleMVOnRead
12
- } from "../chunk-OIIAXFKM.js";
12
+ } from "../chunk-WFC2GHJG.js";
13
13
  import {
14
14
  MaterializedViewRegistry,
15
15
  analyzeDependencies,
16
16
  canonicalizeQueryPlan,
17
17
  computeQueryHash,
18
18
  summarizeQueryPlan
19
- } from "../chunk-5J5TTSGW.js";
20
- import "../chunk-IPDS2TYW.js";
21
- import "../chunk-ICCRAPWD.js";
19
+ } from "../chunk-A66LJYFG.js";
20
+ import "../chunk-23XKHFNT.js";
21
+ import "../chunk-H6K24KLL.js";
22
22
  import "../chunk-5D2ALSM5.js";
23
- import "../chunk-L6FSZFG7.js";
24
- import "../chunk-A4K5GLE6.js";
23
+ import "../chunk-XPTYXXMD.js";
24
+ import "../chunk-PWK3SSNB.js";
25
25
  import "../chunk-XZHEOSQ2.js";
26
- import "../chunk-CADUYBQD.js";
27
- import "../chunk-IGJCYUT5.js";
28
- import "../chunk-GYUCRDAU.js";
29
- import "../chunk-437FDIHO.js";
30
- import "../chunk-KDX6VEYV.js";
31
- import "../chunk-RNSC2ARR.js";
32
- import "../chunk-D5UDZANO.js";
33
- import "../chunk-ZVAFJQZB.js";
34
- import "../chunk-OQLYMBJI.js";
35
- import "../chunk-DJ23QZIN.js";
36
- import "../chunk-SFD2LL7G.js";
26
+ import "../chunk-ATL3ZVXT.js";
27
+ import "../chunk-NSITFOCJ.js";
28
+ import "../chunk-2DFE4TUE.js";
29
+ import "../chunk-CW3VJARJ.js";
30
+ import "../chunk-7JOXCSDU.js";
31
+ import "../chunk-47F6AI2K.js";
32
+ import "../chunk-DIVPOJPV.js";
33
+ import "../chunk-PENPHA45.js";
34
+ import "../chunk-IUQPNAGR.js";
35
+ import "../chunk-AELW6OJZ.js";
36
+ import "../chunk-DUUARUZI.js";
37
37
  import "../chunk-LP7BEXCT.js";
38
- import "../chunk-VJ4B3ZXY.js";
39
- import "../chunk-3Y4OFWQJ.js";
38
+ import "../chunk-O5QXH7U7.js";
39
+ import "../chunk-IGNJOJEP.js";
40
40
  import {
41
41
  MaterializedViewConfigError,
42
42
  MaterializedViewCycleError,
43
43
  MaterializedViewSourceUnknownError,
44
44
  MaterializedViewTooLargeError
45
- } from "../chunk-P7L3OQLL.js";
45
+ } from "../chunk-PKUJ3JLQ.js";
46
46
  import "../chunk-PZ5AY32C.js";
47
47
  export {
48
48
  MaterializedViewConfigError,
@@ -0,0 +1,19 @@
1
+ import {
2
+ SatelliteConfigError
3
+ } from "./chunk-PKUJ3JLQ.js";
4
+ import "./chunk-PZ5AY32C.js";
5
+
6
+ // src/with-shape/satellites/migrate-cek.ts
7
+ async function migrateSatelliteCek(name, coll) {
8
+ if (coll.getConfig()?.perRecordKeys !== true) {
9
+ throw new SatelliteConfigError(
10
+ `migrateSatellitePerRecordKeys: collection "${name}" was already opened this session without perRecordKeys (construction-only); migrate before its first open, or restart the session.`
11
+ );
12
+ }
13
+ const migrated = await coll._applyCutoverTransform((doc) => doc);
14
+ return { migrated };
15
+ }
16
+ export {
17
+ migrateSatelliteCek
18
+ };
19
+ //# sourceMappingURL=migrate-cek-UEO2EUWI.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/with-shape/satellites/migrate-cek.ts"],"sourcesContent":["/**\n * Satellite per-record-CEK migration (#599) — the R-S7 retro-coverage\n * unblock.\n *\n * R-S7 (`declare.ts:89-91`) correctly refuses declaring/redeclaring a\n * satellite of a forget-covered base without `perRecordKeys: true` — but\n * `perRecordKeys` is construction-only (`kernel/collection.ts:402`), so an\n * app that shipped a satellite BEFORE its base gained forget coverage has\n * no way past the refusal: the existing records must be re-encrypted under\n * fresh per-record CEKs before the satellite can reopen in\n * `perRecordKeys: true` mode, and the only re-encrypt primitive\n * (`Collection._applyCutoverTransform`) needs the collection already\n * constructed in that mode — chicken-and-egg.\n *\n * The break: `Vault.migrateSatellitePerRecordKeys` (`kernel/vault.ts`)\n * opens the satellite collection via `vault.collection(name, {\n * perRecordKeys: true })` WITHOUT `satelliteOf` — that never enters\n * `declareSatellite`, so R-S7's gate (which only fires on the `satelliteOf`\n * declaration path) never runs for the migration pass. R-S7 stays fully\n * enforced for every NORMAL `satelliteOf` declaration; this module and its\n * call-site never touch `declare.ts`.\n *\n * `migrateSatelliteCek` then reuses `_applyCutoverTransform` verbatim (an\n * identity transform — no field/shape change, only the encryption wrapper\n * changes) rather than duplicating its mint-or-reuse-CEK logic\n * (`resolveRecordCek`/`resolveStableCek`, `collection.ts:2537-2545`): a\n * record with no `_cek` yet gets a freshly minted per-record CEK; a record\n * that already carries `_cek` (already migrated, e.g. a prior interrupted\n * run) reuses its existing CEK unchanged. That mint-or-reuse discrimination\n * is what makes re-running this after a mid-migration failure safe for\n * free — no separate resumability marker needed, no double-mint, no\n * plaintext write, no shared-DEK write.\n *\n * **Mode-assertion guard (review Important 1):** `perRecordKeys` is\n * construction-only and the vault's collection cache is first-wins with no\n * mismatch guard. If `coll`'s name was already opened THIS SESSION without\n * `perRecordKeys` (e.g. an incidental bare `vault.collection(name)` call\n * before the migration ran), `vault.collection(name, { perRecordKeys: true\n * })` cache-HITS that instance instead of constructing a fresh one — the\n * returned handle is silently NOT in per-record-CEK mode. Without a check,\n * `_applyCutoverTransform` would then pass `cek: undefined` for every\n * record (`this.perRecordCek` false) and RE-ENCRYPT EVERY RECORD UNDER THE\n * SHARED COLLECTION DEK while still reporting `{ migrated: N }` as success\n * — a security migration that silently mints nothing. `migrateSatelliteCek`\n * reads the opened handle's own `getConfig()` (the same accessor\n * `dumpSchema()` uses) to confirm `perRecordKeys` is genuinely `true`\n * before walking, and throws `SatelliteConfigError` instead of proceeding\n * if not.\n *\n * **No-quiesce precondition (review Important 2):** `_applyCutoverTransform`\n * is documented as fence-phase-only (`collection.ts:2517-2522`) — the\n * generic schema-cutover caller (`Vault.runSchemaCutover` →\n * `SchemaFenceController`) always runs it under the vault-wide schema fence,\n * which blocks concurrent writes. This migration does NOT fence: it calls\n * `_applyCutoverTransform` directly, with no fence and CAS-less\n * (`adapter.put` with no `expectedVersion`) writes. A concurrent write to\n * the same satellite collection racing the walk's `await`s can be\n * clobbered by (or clobber) a migration write. Callers MUST run this before\n * the collection serves traffic — e.g. at v2 boot, before declaring the\n * pair, before any client can write — or otherwise ensure the vault is\n * quiescent for this collection for the duration of the call.\n */\nimport { SatelliteConfigError } from '../../kernel/errors.js'\n\n/** The narrow slice of `Collection` the migration pass needs (mirrors `fanout.ts`'s `CollectionHandle` narrowing). */\nexport interface SatelliteCekMigrationTarget {\n /** Public config snapshot (`Collection.getConfig()`) — used to confirm the handle is genuinely in per-record-CEK mode before walking. */\n getConfig(): { readonly perRecordKeys?: boolean } | undefined\n _applyCutoverTransform(transform: (doc: Record<string, unknown>) => Record<string, unknown>): Promise<number>\n}\n\nexport interface SatelliteCekMigrationResult {\n /** Records touched by this call (both freshly minted and already-migrated re-touches on a resumed run). */\n readonly migrated: number\n}\n\n/**\n * Re-encrypt every record in `coll` under a per-record CEK. `coll` must be\n * a collection handle already opened with `perRecordKeys: true` — see the\n * file header for how the caller gets one past R-S7. Throws\n * `SatelliteConfigError` (does NOT proceed) if `coll` is not genuinely in\n * per-record-CEK mode — see the file header's mode-assertion note.\n * Idempotent/resumable: safe to call again after a partial failure. NOT\n * fenced against concurrent writers — see the file header's no-quiesce\n * precondition; run this before the collection serves traffic.\n *\n * @param name The satellite collection's name — used only for the error\n * message below; identical to what the caller passed to `vault.collection()`.\n */\nexport async function migrateSatelliteCek(name: string, coll: SatelliteCekMigrationTarget): Promise<SatelliteCekMigrationResult> {\n if (coll.getConfig()?.perRecordKeys !== true) {\n throw new SatelliteConfigError(\n `migrateSatellitePerRecordKeys: collection \"${name}\" was already opened this session without ` +\n `perRecordKeys (construction-only); migrate before its first open, or restart the session.`,\n )\n }\n // Ledger reason (review Minor): the walk below reuses _applyCutoverTransform's\n // hardcoded 'schema:coordinated-cutover' ledger reason — it has no reason/label\n // param, and this migration is not itself a schema cutover. Not threaded through\n // (would touch collection.ts's own ceilinged surface for a cosmetic label);\n // flagged here so the audit trail's shared reason string is documented, not silent.\n const migrated = await coll._applyCutoverTransform((doc) => doc)\n return { migrated }\n}\n"],"mappings":";;;;;;AAyFA,eAAsB,oBAAoB,MAAc,MAAyE;AAC/H,MAAI,KAAK,UAAU,GAAG,kBAAkB,MAAM;AAC5C,UAAM,IAAI;AAAA,MACR,8CAA8C,IAAI;AAAA,IAEpD;AAAA,EACF;AAMA,QAAM,WAAW,MAAM,KAAK,uBAAuB,CAAC,QAAQ,GAAG;AAC/D,SAAO,EAAE,SAAS;AACpB;","names":[]}
@@ -4,7 +4,7 @@ import {
4
4
  isMoneyString,
5
5
  moneyNumber,
6
6
  mulRate
7
- } from "../chunk-L2XQ776M.js";
7
+ } from "../chunk-4BYZIQ5T.js";
8
8
  import {
9
9
  MoneyCurrencyError,
10
10
  MoneyPrecisionError,
@@ -13,10 +13,10 @@ import {
13
13
  isMoneyDescriptor,
14
14
  money,
15
15
  scaleForCurrency
16
- } from "../chunk-IPDS2TYW.js";
17
- import "../chunk-IGJCYUT5.js";
18
- import "../chunk-KDX6VEYV.js";
19
- import "../chunk-P7L3OQLL.js";
16
+ } from "../chunk-23XKHFNT.js";
17
+ import "../chunk-NSITFOCJ.js";
18
+ import "../chunk-7JOXCSDU.js";
19
+ import "../chunk-PKUJ3JLQ.js";
20
20
  import "../chunk-PZ5AY32C.js";
21
21
  export {
22
22
  MoneyCurrencyError,
@@ -0,0 +1,84 @@
1
+ import {
2
+ Noydb,
3
+ createNoydb
4
+ } from "./chunk-HUEG3YP4.js";
5
+ import "./chunk-VKYEEJJ2.js";
6
+ import "./chunk-TKLQWOTY.js";
7
+ import "./chunk-YOMI3ZCA.js";
8
+ import "./chunk-EPFF7LOX.js";
9
+ import "./chunk-ESXVNASI.js";
10
+ import "./chunk-GYGLAVCX.js";
11
+ import "./chunk-FFSQFH6D.js";
12
+ import "./chunk-KHKKD62N.js";
13
+ import "./chunk-BPLSGN4X.js";
14
+ import "./chunk-6LJY7X5A.js";
15
+ import "./chunk-Y2NBBT6K.js";
16
+ import "./chunk-NB2CKJ27.js";
17
+ import "./chunk-IPA6ODWG.js";
18
+ import "./chunk-SRR22EW2.js";
19
+ import "./chunk-BFNBYT62.js";
20
+ import "./chunk-ZAZW5LLF.js";
21
+ import "./chunk-OTHHO3KI.js";
22
+ import "./chunk-JPVJTTHU.js";
23
+ import "./chunk-DIYI32MG.js";
24
+ import "./chunk-HZIIDYJV.js";
25
+ import "./chunk-REKDM67V.js";
26
+ import "./chunk-H6K24KLL.js";
27
+ import "./chunk-ANYVM4SX.js";
28
+ import "./chunk-T7IR4N2S.js";
29
+ import "./chunk-PEOZ34EM.js";
30
+ import "./chunk-FKZI4NSG.js";
31
+ import "./chunk-GHVIKOHT.js";
32
+ import "./chunk-NCAMIRFB.js";
33
+ import "./chunk-SMY5X46Z.js";
34
+ import "./chunk-DZFQVICS.js";
35
+ import "./chunk-FGZ7GJXO.js";
36
+ import "./chunk-5D2ALSM5.js";
37
+ import "./chunk-QK2QAMF7.js";
38
+ import "./chunk-AURFOK3D.js";
39
+ import "./chunk-A5YEUQOY.js";
40
+ import "./chunk-JSTQGUE5.js";
41
+ import "./chunk-XPTYXXMD.js";
42
+ import "./chunk-OBPL43F3.js";
43
+ import "./chunk-3TWEXEKX.js";
44
+ import "./chunk-I3ISCYT7.js";
45
+ import "./chunk-NO272T7Q.js";
46
+ import "./chunk-XZHEOSQ2.js";
47
+ import "./chunk-YMUFFJCO.js";
48
+ import "./chunk-ATL3ZVXT.js";
49
+ import "./chunk-NSITFOCJ.js";
50
+ import "./chunk-PVEWA2DU.js";
51
+ import "./chunk-QMJI5VHV.js";
52
+ import "./chunk-2DFE4TUE.js";
53
+ import "./chunk-CW3VJARJ.js";
54
+ import "./chunk-7JOXCSDU.js";
55
+ import "./chunk-F5IFR56V.js";
56
+ import "./chunk-3ENNPCIW.js";
57
+ import "./chunk-FFESJQ5A.js";
58
+ import "./chunk-KMGAFLCK.js";
59
+ import "./chunk-OCW3IM2F.js";
60
+ import "./chunk-LLLSK7UQ.js";
61
+ import "./chunk-VKQCVU2Z.js";
62
+ import "./chunk-4AOERLTV.js";
63
+ import "./chunk-AGETRKC5.js";
64
+ import "./chunk-H27DIXOV.js";
65
+ import "./chunk-I7FD46FF.js";
66
+ import "./chunk-47F6AI2K.js";
67
+ import "./chunk-WUNRUSBJ.js";
68
+ import "./chunk-HK67PX4J.js";
69
+ import "./chunk-FUIG7QSS.js";
70
+ import "./chunk-DIVPOJPV.js";
71
+ import "./chunk-PENPHA45.js";
72
+ import "./chunk-IUQPNAGR.js";
73
+ import "./chunk-AELW6OJZ.js";
74
+ import "./chunk-DUUARUZI.js";
75
+ import "./chunk-LP7BEXCT.js";
76
+ import "./chunk-O5QXH7U7.js";
77
+ import "./chunk-IGNJOJEP.js";
78
+ import "./chunk-PKUJ3JLQ.js";
79
+ import "./chunk-PZ5AY32C.js";
80
+ export {
81
+ Noydb,
82
+ createNoydb
83
+ };
84
+ //# sourceMappingURL=noydb-3BBLBSHI.js.map
@@ -1,18 +1,18 @@
1
1
  import {
2
2
  withOverlayedView
3
- } from "../chunk-2E2MKBMI.js";
3
+ } from "../chunk-REQJLII3.js";
4
4
  import {
5
5
  OverlayedViewRegistry
6
- } from "../chunk-WKD5ESK4.js";
6
+ } from "../chunk-6QMOJTC6.js";
7
7
  import {
8
8
  OverlayedCollection
9
- } from "../chunk-W6NFONOV.js";
9
+ } from "../chunk-ANYVM4SX.js";
10
10
  import {
11
11
  OverlayBaseIsVirtualError,
12
12
  OverlayCollectionUnavailableError,
13
13
  OverlayIdMismatchError,
14
14
  OverlayNameCollisionError
15
- } from "../chunk-P7L3OQLL.js";
15
+ } from "../chunk-PKUJ3JLQ.js";
16
16
  import "../chunk-PZ5AY32C.js";
17
17
  export {
18
18
  OverlayBaseIsVirtualError,
@@ -11,7 +11,7 @@ import {
11
11
  samePartition,
12
12
  validatePeriodName,
13
13
  withPeriods
14
- } from "../chunk-VHVMJWM6.js";
14
+ } from "../chunk-FKZI4NSG.js";
15
15
  import "../chunk-GHVIKOHT.js";
16
16
  import {
17
17
  PERIODS_COLLECTION,
@@ -20,19 +20,19 @@ import {
20
20
  PERIOD_REOPENS_COLLECTION,
21
21
  PERIOD_TARGET_PURGES_COLLECTION,
22
22
  periodExclusiveUpperBound
23
- } from "../chunk-HTHRCGWP.js";
24
- import "../chunk-MNUTPZRQ.js";
23
+ } from "../chunk-NCAMIRFB.js";
24
+ import "../chunk-H27DIXOV.js";
25
25
  import "../chunk-I7FD46FF.js";
26
- import "../chunk-RNSC2ARR.js";
27
- import "../chunk-D5UDZANO.js";
28
- import "../chunk-ZVAFJQZB.js";
29
- import "../chunk-OQLYMBJI.js";
30
- import "../chunk-DJ23QZIN.js";
31
- import "../chunk-SFD2LL7G.js";
26
+ import "../chunk-47F6AI2K.js";
27
+ import "../chunk-DIVPOJPV.js";
28
+ import "../chunk-PENPHA45.js";
29
+ import "../chunk-IUQPNAGR.js";
30
+ import "../chunk-AELW6OJZ.js";
31
+ import "../chunk-DUUARUZI.js";
32
32
  import "../chunk-LP7BEXCT.js";
33
- import "../chunk-VJ4B3ZXY.js";
34
- import "../chunk-3Y4OFWQJ.js";
35
- import "../chunk-P7L3OQLL.js";
33
+ import "../chunk-O5QXH7U7.js";
34
+ import "../chunk-IGNJOJEP.js";
35
+ import "../chunk-PKUJ3JLQ.js";
36
36
  import "../chunk-PZ5AY32C.js";
37
37
  export {
38
38
  NO_PERIODS,