@noy-db/hub 0.6.0-pre.9 → 0.7.0-pre.0

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 (572) hide show
  1. package/CHANGELOG.md +7127 -0
  2. package/README.md +1 -1
  3. package/codemods/0.4.0-pre.json +24 -0
  4. package/codemods/0.6.0-pre.json +229 -0
  5. package/codemods/0.7.0-pre.json +258 -0
  6. package/dist/api-EQYRTZO2.js +20 -0
  7. package/dist/as/index.js +146 -0
  8. package/dist/as/index.js.map +1 -0
  9. package/dist/at/index.js +23 -0
  10. package/dist/attestation/index.js +19 -19
  11. package/dist/{backup-KULFZ2T4.js → backup-Z7ZBTAQ6.js} +36 -18
  12. package/dist/backup-Z7ZBTAQ6.js.map +1 -0
  13. package/dist/blobs/index.js +22 -20
  14. package/dist/blobs/index.js.map +1 -1
  15. package/dist/broker/index.js +12 -12
  16. package/dist/by/index.js +11 -0
  17. package/dist/cargo/index.js +40 -36
  18. package/dist/{chunk-YAWK6AWF.js → chunk-225O5CXQ.js} +2 -2
  19. package/dist/{chunk-MSWYQLMQ.js → chunk-2GXEQUEX.js} +2 -2
  20. package/dist/chunk-2GXEQUEX.js.map +1 -0
  21. package/dist/{chunk-3URQC7EH.js → chunk-2LPVI4PX.js} +355 -132
  22. package/dist/chunk-2LPVI4PX.js.map +1 -0
  23. package/dist/{chunk-JJNOLSG5.js → chunk-3L2MVE36.js} +15 -16
  24. package/dist/chunk-3L2MVE36.js.map +1 -0
  25. package/dist/{chunk-OF3L2SD6.js → chunk-3QARDAYW.js} +2 -2
  26. package/dist/{chunk-WLZ47GSL.js → chunk-467SKJ65.js} +12 -10
  27. package/dist/{chunk-WLZ47GSL.js.map → chunk-467SKJ65.js.map} +1 -1
  28. package/dist/{chunk-W3TVWF6N.js → chunk-4A4TYISP.js} +2 -2
  29. package/dist/{chunk-ZJADGNYF.js → chunk-4AOERLTV.js} +1 -1
  30. package/dist/chunk-4AOERLTV.js.map +1 -0
  31. package/dist/{chunk-CCZJJ4I2.js → chunk-4G25SDQL.js} +6 -6
  32. package/dist/{chunk-4I72F5DF.js → chunk-4LPF226H.js} +11 -14
  33. package/dist/chunk-4LPF226H.js.map +1 -0
  34. package/dist/{chunk-7F4DBNSP.js → chunk-4ZPE6SKS.js} +135 -18
  35. package/dist/chunk-4ZPE6SKS.js.map +1 -0
  36. package/dist/{chunk-7TSYBD3E.js → chunk-5263OEM3.js} +2 -2
  37. package/dist/{chunk-WFUIE565.js → chunk-57JTHWLQ.js} +17 -14
  38. package/dist/chunk-57JTHWLQ.js.map +1 -0
  39. package/dist/{chunk-FNSMZQS4.js → chunk-5ACAVJUI.js} +2 -2
  40. package/dist/{chunk-PDLLCOGD.js → chunk-5AFMP532.js} +20 -17
  41. package/dist/chunk-5AFMP532.js.map +1 -0
  42. package/dist/{chunk-JRKZTEZZ.js → chunk-5W7YXFV5.js} +444 -73
  43. package/dist/chunk-5W7YXFV5.js.map +1 -0
  44. package/dist/chunk-6EW2UCVF.js +190 -0
  45. package/dist/chunk-6EW2UCVF.js.map +1 -0
  46. package/dist/{chunk-4VUPLMZ6.js → chunk-6FOGTKBY.js} +68 -73
  47. package/dist/chunk-6FOGTKBY.js.map +1 -0
  48. package/dist/{chunk-VMCCGUQB.js → chunk-7LYUJNU3.js} +2 -2
  49. package/dist/{chunk-52JPHN5N.js → chunk-A2YW5EMU.js} +27 -149
  50. package/dist/chunk-A2YW5EMU.js.map +1 -0
  51. package/dist/{chunk-WLYIROCJ.js → chunk-AB5P32RE.js} +2 -2
  52. package/dist/{chunk-PL2GHSCM.js → chunk-ALB64CZM.js} +157 -90
  53. package/dist/chunk-ALB64CZM.js.map +1 -0
  54. package/dist/{chunk-SUFG5E73.js → chunk-ALUNQEBY.js} +2 -2
  55. package/dist/{chunk-CADUYBQD.js → chunk-ATL3ZVXT.js} +2 -2
  56. package/dist/{chunk-BWVKEOPE.js → chunk-ATV637J7.js} +7 -11
  57. package/dist/chunk-ATV637J7.js.map +1 -0
  58. package/dist/{chunk-DG27IUVI.js → chunk-CBRS2NEK.js} +2 -11
  59. package/dist/chunk-CBRS2NEK.js.map +1 -0
  60. package/dist/{chunk-7MNBICB5.js → chunk-CN6B5PEN.js} +16 -14
  61. package/dist/chunk-CN6B5PEN.js.map +1 -0
  62. package/dist/{chunk-6FJWSWFT.js → chunk-DBNYPLWY.js} +3 -3
  63. package/dist/{chunk-5JY5TSVY.js → chunk-DFAUMLD7.js} +25 -31
  64. package/dist/chunk-DFAUMLD7.js.map +1 -0
  65. package/dist/{chunk-FFDNKRCY.js → chunk-DKWPJOYH.js} +2 -2
  66. package/dist/chunk-DKWPJOYH.js.map +1 -0
  67. package/dist/{chunk-VJFMXYKP.js → chunk-E6YA6UAP.js} +2 -2
  68. package/dist/{chunk-WASHZV34.js → chunk-F23WQK3G.js} +65 -27
  69. package/dist/chunk-F23WQK3G.js.map +1 -0
  70. package/dist/{chunk-JIUVJ4M7.js → chunk-F7ZFRPGQ.js} +3 -3
  71. package/dist/{chunk-HXGUIPQB.js → chunk-FOG7YEJP.js} +3 -3
  72. package/dist/{chunk-QULVCV3M.js → chunk-GK4DRVUD.js} +6 -6
  73. package/dist/chunk-GK4DRVUD.js.map +1 -0
  74. package/dist/{chunk-BRVW2GS5.js → chunk-H36KSN6X.js} +87 -34
  75. package/dist/chunk-H36KSN6X.js.map +1 -0
  76. package/dist/{chunk-O2ERS4UJ.js → chunk-H4M7ADXY.js} +81 -52
  77. package/dist/chunk-H4M7ADXY.js.map +1 -0
  78. package/dist/{chunk-FZ6NYJ7L.js → chunk-H7HP56F6.js} +11 -8
  79. package/dist/chunk-H7HP56F6.js.map +1 -0
  80. package/dist/chunk-HK67PX4J.js +27 -0
  81. package/dist/chunk-HK67PX4J.js.map +1 -0
  82. package/dist/{chunk-X56RTUK3.js → chunk-HM4JSXX2.js} +3 -3
  83. package/dist/{chunk-AHLJSVRL.js → chunk-HTGRQZFB.js} +5 -7
  84. package/dist/chunk-HTGRQZFB.js.map +1 -0
  85. package/dist/{chunk-GQ3BX5EA.js → chunk-I3ISCYT7.js} +2 -2
  86. package/dist/{chunk-Q6TEJXBX.js → chunk-IESNYJXZ.js} +31 -49
  87. package/dist/chunk-IESNYJXZ.js.map +1 -0
  88. package/dist/{chunk-FUHKW252.js → chunk-J4MN6XIU.js} +2 -2
  89. package/dist/{chunk-ADW22QSB.js → chunk-J4UJ5FRV.js} +4 -4
  90. package/dist/{chunk-HNGSV2YC.js → chunk-JBIV4FLR.js} +67 -10
  91. package/dist/chunk-JBIV4FLR.js.map +1 -0
  92. package/dist/{chunk-HVQGCKY4.js → chunk-JVLSU7S2.js} +2 -2
  93. package/dist/{chunk-AR2JDFAE.js → chunk-KDJGJR7F.js} +2 -2
  94. package/dist/{chunk-NPP5R7FF.js → chunk-KN4W2OQ4.js} +22 -18
  95. package/dist/chunk-KN4W2OQ4.js.map +1 -0
  96. package/dist/{chunk-G6S5VVHP.js → chunk-L6GTLZRK.js} +10 -10
  97. package/dist/chunk-L6GTLZRK.js.map +1 -0
  98. package/dist/{chunk-2BMRJ6LQ.js → chunk-LF6DMX4C.js} +8 -11
  99. package/dist/{chunk-2BMRJ6LQ.js.map → chunk-LF6DMX4C.js.map} +1 -1
  100. package/dist/chunk-LFUID7OW.js +163 -0
  101. package/dist/chunk-LFUID7OW.js.map +1 -0
  102. package/dist/{chunk-747LRSOO.js → chunk-LKFKXS5K.js} +2 -2
  103. package/dist/{chunk-U5O6GIWZ.js → chunk-LR4Z47QD.js} +3 -3
  104. package/dist/{chunk-VZ3XFUQ7.js → chunk-MTBXJAS4.js} +16 -22
  105. package/dist/chunk-MTBXJAS4.js.map +1 -0
  106. package/dist/chunk-N4CNVSUF.js +66 -0
  107. package/dist/chunk-N4CNVSUF.js.map +1 -0
  108. package/dist/{chunk-RTAMLDWP.js → chunk-NLKLXXTO.js} +2 -2
  109. package/dist/{chunk-IGJCYUT5.js → chunk-NSITFOCJ.js} +1 -1
  110. package/dist/chunk-NSITFOCJ.js.map +1 -0
  111. package/dist/{chunk-FDX7OWWI.js → chunk-OPXR4PB2.js} +2 -2
  112. package/dist/{chunk-4GZ6XOVW.js → chunk-OWLVBOWO.js} +44 -42
  113. package/dist/chunk-OWLVBOWO.js.map +1 -0
  114. package/dist/{chunk-Z45YRGFO.js → chunk-P6ASQOZR.js} +2 -2
  115. package/dist/{chunk-5O5HRRTV.js → chunk-PCQDY6QN.js} +7 -7
  116. package/dist/{chunk-5O5HRRTV.js.map → chunk-PCQDY6QN.js.map} +1 -1
  117. package/dist/{chunk-BEFVYAR5.js → chunk-PGFKIOR3.js} +4 -4
  118. package/dist/chunk-PGFKIOR3.js.map +1 -0
  119. package/dist/{chunk-3FSX6LDG.js → chunk-POS53FG6.js} +18 -3
  120. package/dist/{chunk-3FSX6LDG.js.map → chunk-POS53FG6.js.map} +1 -1
  121. package/dist/{chunk-3IXIU6FP.js → chunk-PQ6Z2TAP.js} +7 -10
  122. package/dist/chunk-PQ6Z2TAP.js.map +1 -0
  123. package/dist/{chunk-CEJWMBXO.js → chunk-PUJTKLPL.js} +6 -2
  124. package/dist/chunk-PUJTKLPL.js.map +1 -0
  125. package/dist/{chunk-GAG7QOVO.js → chunk-QGJ4XIA7.js} +53 -18
  126. package/dist/chunk-QGJ4XIA7.js.map +1 -0
  127. package/dist/{chunk-2DHSSLOD.js → chunk-QHJKK77B.js} +13 -15
  128. package/dist/chunk-QHJKK77B.js.map +1 -0
  129. package/dist/{chunk-2Z3NCLNX.js → chunk-QI5NWLVW.js} +7 -7
  130. package/dist/{chunk-6SAFL5YE.js → chunk-RC4BROYR.js} +3 -3
  131. package/dist/{chunk-NJDQ4YSV.js → chunk-RDHUZ674.js} +4 -4
  132. package/dist/{chunk-YPYHVOXP.js → chunk-RK7N4OQ5.js} +2 -2
  133. package/dist/chunk-RK7N4OQ5.js.map +1 -0
  134. package/dist/{chunk-3737A6EA.js → chunk-S2VG3ABP.js} +127 -31
  135. package/dist/chunk-S2VG3ABP.js.map +1 -0
  136. package/dist/{chunk-3JVXVJ7L.js → chunk-S35S77YU.js} +10 -10
  137. package/dist/{chunk-KUDZVJKQ.js → chunk-SHILAQH5.js} +2 -2
  138. package/dist/{chunk-4UVDI4XE.js → chunk-T3PHCEN4.js} +4 -4
  139. package/dist/{chunk-55LKVALY.js → chunk-T7IR4N2S.js} +1 -3
  140. package/dist/chunk-T7IR4N2S.js.map +1 -0
  141. package/dist/{chunk-RXYYFSBB.js → chunk-TOV6VMHF.js} +6 -6
  142. package/dist/chunk-TOV6VMHF.js.map +1 -0
  143. package/dist/{chunk-W77KZHCW.js → chunk-TVIFAHZR.js} +16 -17
  144. package/dist/chunk-TVIFAHZR.js.map +1 -0
  145. package/dist/chunk-UBSFPGVJ.js +1 -0
  146. package/dist/{chunk-FAXZQ5UF.js → chunk-UCUALOSM.js} +2 -2
  147. package/dist/{chunk-4HDYQL3J.js → chunk-VAG47QHV.js} +2 -2
  148. package/dist/{chunk-35EBKWQU.js → chunk-VFIWDPXZ.js} +4 -4
  149. package/dist/{chunk-5ZKS6ZE2.js → chunk-VTG7327U.js} +4 -4
  150. package/dist/chunk-VTG7327U.js.map +1 -0
  151. package/dist/{chunk-VCETL77O.js → chunk-W5LHQXZU.js} +36 -7
  152. package/dist/chunk-W5LHQXZU.js.map +1 -0
  153. package/dist/{chunk-6NVPFKN3.js → chunk-WK5FSW7T.js} +92 -35
  154. package/dist/chunk-WK5FSW7T.js.map +1 -0
  155. package/dist/{chunk-HNHCQ556.js → chunk-WLLUM35R.js} +2 -2
  156. package/dist/{chunk-YJ6IONGA.js → chunk-X62MEF2O.js} +13 -5
  157. package/dist/chunk-X62MEF2O.js.map +1 -0
  158. package/dist/{chunk-7G6VDWXB.js → chunk-X67FCULK.js} +5 -5
  159. package/dist/chunk-X67FCULK.js.map +1 -0
  160. package/dist/{chunk-UHXCLPGC.js → chunk-XDVVBETV.js} +2 -2
  161. package/dist/chunk-XDVVBETV.js.map +1 -0
  162. package/dist/chunk-XJ3FEKEY.js +15 -0
  163. package/dist/chunk-XJ3FEKEY.js.map +1 -0
  164. package/dist/{chunk-E6427JU2.js → chunk-XSN63FUS.js} +19 -3
  165. package/dist/chunk-XSN63FUS.js.map +1 -0
  166. package/dist/{chunk-JRCYZEHU.js → chunk-XVU7J43V.js} +2 -2
  167. package/dist/{chunk-2GAJGUNM.js → chunk-Y3YLJORD.js} +408 -260
  168. package/dist/chunk-Y3YLJORD.js.map +1 -0
  169. package/dist/{chunk-6BU3L4UE.js → chunk-Y6GZ2P4M.js} +7 -10
  170. package/dist/chunk-Y6GZ2P4M.js.map +1 -0
  171. package/dist/{chunk-DMQCLZ4Z.js → chunk-YCSM3GZU.js} +2 -2
  172. package/dist/{chunk-RV3ARMPN.js → chunk-YKPGQJFU.js} +30 -180
  173. package/dist/chunk-YKPGQJFU.js.map +1 -0
  174. package/dist/{chunk-FMQJZH4R.js → chunk-YMLQBZFJ.js} +6 -6
  175. package/dist/{chunk-6HFM7EIT.js → chunk-YPSOHDNC.js} +2 -2
  176. package/dist/{chunk-CDB2HVQW.js → chunk-YXA2TCTZ.js} +14 -15
  177. package/dist/chunk-YXA2TCTZ.js.map +1 -0
  178. package/dist/{chunk-N35NC4JH.js → chunk-Z2PWOSCJ.js} +2 -2
  179. package/dist/{chunk-XWX7GL56.js → chunk-Z2WK53N6.js} +47 -23
  180. package/dist/chunk-Z2WK53N6.js.map +1 -0
  181. package/dist/{chunk-HPLWFNG4.js → chunk-Z7ZXZL6Y.js} +2 -2
  182. package/dist/{chunk-PNKHAKQ7.js → chunk-ZO252Q5S.js} +17 -10
  183. package/dist/chunk-ZO252Q5S.js.map +1 -0
  184. package/dist/classified/index.js +5 -5
  185. package/dist/{classified-marker-2KJAXRRO.js → classified-marker-BSQHU4JT.js} +3 -3
  186. package/dist/collection-facade-LG3NYZVB.js +45 -0
  187. package/dist/{computed-6G5M3UPH.js → computed-ASBNTLOK.js} +3 -3
  188. package/dist/consent/index.js +10 -10
  189. package/dist/cover/index.js +10 -3
  190. package/dist/custody/index.js +12 -11
  191. package/dist/{dead-filter-DCB62VWW.js → dead-filter-QKU56XTQ.js} +2 -2
  192. package/dist/debug/index.js +1 -1
  193. package/dist/{delegation-MO7YZYJS.js → delegation-XWRPYODW.js} +24 -23
  194. package/dist/delegation-XWRPYODW.js.map +1 -0
  195. package/dist/derivations/index.js +12 -12
  196. package/dist/derive-CXHCY46K.js +22 -0
  197. package/dist/directory/index.js +10 -10
  198. package/dist/{dispatch-MJ6SHB3Y.js → dispatch-4AP4PUZU.js} +18 -18
  199. package/dist/{dispatch-FZEAWKVM.js → dispatch-VR4LRXZ7.js} +9 -6
  200. package/dist/dispatch-VR4LRXZ7.js.map +1 -0
  201. package/dist/{enclave-JU4YIEPB.js → enclave-NYPT7WA7.js} +31 -9
  202. package/dist/executor-3KFRQETS.js +29 -0
  203. package/dist/executor-AFHQYRAU.js +9 -0
  204. package/dist/executor-YYDW6XQI.js +9 -0
  205. package/dist/export-accessible-BX2ILB4C.js +23 -0
  206. package/dist/extract-partition-UPOVITFI.js +38 -0
  207. package/dist/{fanout-sidecar-NNAJQXMX.js → fanout-sidecar-IWP3R4RC.js} +18 -27
  208. package/dist/fanout-sidecar-IWP3R4RC.js.map +1 -0
  209. package/dist/{fence-watcher-DHQ775JB.js → fence-watcher-ZVSMLKQD.js} +1 -1
  210. package/dist/fence-watcher-ZVSMLKQD.js.map +1 -0
  211. package/dist/find-SZBL2HPB.js +11 -0
  212. package/dist/forget/index.js +9 -9
  213. package/dist/guards/index.js +4 -4
  214. package/dist/history/index.js +23 -20
  215. package/dist/history/index.js.map +1 -1
  216. package/dist/i18n/index.js +14 -14
  217. package/dist/index.d.ts +35 -18
  218. package/dist/index.js +199 -204
  219. package/dist/index.js.map +1 -1
  220. package/dist/indexing/index.js +4 -4
  221. package/dist/introspection/index.js +12 -11
  222. package/dist/issue-G53NB6EW.js +19 -0
  223. package/dist/kernel/collection-config.d.ts +9 -9
  224. package/dist/kernel/collection.d.ts +9 -3
  225. package/dist/kernel/constants.d.ts +36 -0
  226. package/dist/kernel/enclave/crypto.d.ts +52 -4
  227. package/dist/kernel/enclave/index.d.ts +10 -3
  228. package/dist/kernel/enclave/record-aad.d.ts +131 -0
  229. package/dist/kernel/enclave/record-envelope.d.ts +76 -0
  230. package/dist/kernel/enclave/record-keys/envelope-body.d.ts +34 -2
  231. package/dist/kernel/enclave/record-keys/lifecycle.d.ts +22 -5
  232. package/dist/kernel/enclave/record-keys/record-codec.d.ts +47 -14
  233. package/dist/kernel/enclave/record-keys/rekey-blob.d.ts +88 -0
  234. package/dist/kernel/enclave/record-keys/rekey.d.ts +91 -0
  235. package/dist/kernel/enclave/record-keys/tombstone.d.ts +3 -2
  236. package/dist/kernel/errors.d.ts +134 -14
  237. package/dist/kernel/merge-authority.d.ts +25 -0
  238. package/dist/kernel/noydb.d.ts +33 -10
  239. package/dist/kernel/query/builder.d.ts +51 -4
  240. package/dist/kernel/query/join.d.ts +27 -0
  241. package/dist/kernel/query/live.d.ts +31 -9
  242. package/dist/kernel/query/predicate.d.ts +9 -0
  243. package/dist/kernel/refs.d.ts +3 -1
  244. package/dist/kernel/secret-mode.d.ts +1 -1
  245. package/dist/kernel/sync-policy.d.ts +0 -2
  246. package/dist/kernel/tier-visibility.d.ts +34 -0
  247. package/dist/kernel/types.d.ts +145 -28
  248. package/dist/kernel/vault.d.ts +16 -7
  249. package/dist/kernel/via/compose.d.ts +3 -3
  250. package/dist/kernel/via/index.d.ts +15 -6
  251. package/dist/kernel/via/pipeline.d.ts +6 -6
  252. package/dist/kernel/via/reconcile.d.ts +14 -2
  253. package/dist/kernel/via/taint-binding.d.ts +3 -3
  254. package/dist/{ledger-AETNF4OM.js → ledger-T5K4P2D7.js} +11 -11
  255. package/dist/liberate-VEOZRESE.js +25 -0
  256. package/dist/{link-set-E5HNY67I.js → link-set-76JZ6YB4.js} +11 -11
  257. package/dist/{managed-secret-CWQ6PND5.js → managed-secret-6YC32VXG.js} +13 -5
  258. package/dist/materialized-views/index.js +27 -27
  259. package/dist/migrate-cek-LBRKYUZZ.js +19 -0
  260. package/dist/migrate-cek-LBRKYUZZ.js.map +1 -0
  261. package/dist/money/index.js +5 -5
  262. package/dist/noydb-EDJA4JNJ.js +86 -0
  263. package/dist/on/index.js +1 -0
  264. package/dist/overlay-views/index.js +4 -4
  265. package/dist/periods/index.js +12 -12
  266. package/dist/pod/index.js +79 -88
  267. package/dist/pod-handle-P6DPBM5U.js +41 -0
  268. package/dist/pod-handle-P6DPBM5U.js.map +1 -0
  269. package/dist/policy/index.js +11 -4
  270. package/dist/port/as/active.d.ts +10 -0
  271. package/dist/port/as/index.d.ts +32 -0
  272. package/dist/port/as/types.d.ts +113 -0
  273. package/dist/port/at/index.d.ts +37 -0
  274. package/dist/port/by/default-provider.d.ts +3 -3
  275. package/dist/port/by/index.d.ts +32 -10
  276. package/dist/port/by/types.d.ts +29 -11
  277. package/dist/port/on/index.d.ts +50 -0
  278. package/dist/port/to/index.d.ts +4 -4
  279. package/dist/port/to/locator.d.ts +54 -8
  280. package/dist/port/with/computed-strategy.d.ts +1 -1
  281. package/dist/port/with/device-seal-strategy.d.ts +2 -2
  282. package/dist/port/with/formats-strategy.d.ts +76 -0
  283. package/dist/port/with/i18n-strategy.d.ts +4 -1
  284. package/dist/port/with/lookup-strategy.d.ts +4 -1
  285. package/dist/port/with/merge-authority.d.ts +52 -0
  286. package/dist/port/with/service-bus.d.ts +0 -4
  287. package/dist/port/with/strategies.d.ts +13 -5
  288. package/dist/port/with/team-strategy.d.ts +5 -1
  289. package/dist/portability/index.js +8 -8
  290. package/dist/{post-register-2XSSMGEQ.js → post-register-53O7AJRZ.js} +6 -6
  291. package/dist/query/index.js +6 -6
  292. package/dist/reduce/index.js +6 -6
  293. package/dist/register-6TCBR6XD.js +32 -0
  294. package/dist/registry-DH2L4O2V.js +18 -0
  295. package/dist/registry-IWFMXCHX.js +9 -0
  296. package/dist/registry-Q3FG3OAX.js +9 -0
  297. package/dist/registry-YC3IFG3A.js +19 -0
  298. package/dist/request-withdrawal-NM5VYR6F.js +31 -0
  299. package/dist/{reveal-BW36KCOQ.js → reveal-XBIMHAXR.js} +6 -6
  300. package/dist/revoke-MJNYWO72.js +24 -0
  301. package/dist/satellites/index.js +1 -1
  302. package/dist/schema-update/index.js +2 -2
  303. package/dist/sealed-record/index.js +20 -13
  304. package/dist/sealed-record/index.js.map +1 -1
  305. package/dist/search/index.js +4 -4
  306. package/dist/{seed-GDV5PT4R.js → seed-NSNIGYXE.js} +20 -22
  307. package/dist/seed-NSNIGYXE.js.map +1 -0
  308. package/dist/sequence/index.js +9 -9
  309. package/dist/session/index.js +10 -10
  310. package/dist/shadow/index.js +2 -2
  311. package/dist/share-link/index.js +1 -1
  312. package/dist/signer-6XVS2AU3.js +25 -0
  313. package/dist/snapshots/index.js +10 -10
  314. package/dist/snapshots/index.js.map +1 -1
  315. package/dist/{stale-ARHFVL5U.js → stale-MCS46TFO.js} +10 -10
  316. package/dist/storage-ZXUT476I.js +23 -0
  317. package/dist/storage-ZXUT476I.js.map +1 -0
  318. package/dist/{store-coordination-provider-GFCUOBR6.js → store-coordination-provider-6FM26VQM.js} +22 -15
  319. package/dist/store-coordination-provider-6FM26VQM.js.map +1 -0
  320. package/dist/sync/index.js +11 -11
  321. package/dist/team/index.js +17 -16
  322. package/dist/tiers/index.js +11 -10
  323. package/dist/to/index.js +17 -9
  324. package/dist/to/index.js.map +1 -1
  325. package/dist/transactions/index.js +4 -4
  326. package/dist/{ulid-PTAIMDG4.js → ulid-VQW6ERQN.js} +2 -2
  327. package/dist/ulid-VQW6ERQN.js.map +1 -0
  328. package/dist/util/index.js +1 -1
  329. package/dist/vault-diff-FE5J35NJ.js +9 -0
  330. package/dist/vault-diff-FE5J35NJ.js.map +1 -0
  331. package/dist/vault-head/index.js +115 -0
  332. package/dist/vault-head/index.js.map +1 -0
  333. package/dist/{verify-RO5RTZOJ.js → verify-WYOFLSNA.js} +5 -5
  334. package/dist/via/blob/binding.d.ts +6 -6
  335. package/dist/via/blob/index.d.ts +3 -0
  336. package/dist/via/classified/binding.d.ts +9 -9
  337. package/dist/via/computed/binding.d.ts +2 -2
  338. package/dist/via/i18n/binding.d.ts +4 -4
  339. package/dist/via/lookup/binding.d.ts +5 -5
  340. package/dist/via/lookup/handle.d.ts +4 -1
  341. package/dist/via/lookup/index.d.ts +1 -1
  342. package/dist/via/lookup/snapshot.d.ts +1 -1
  343. package/dist/via/money/binding.d.ts +3 -3
  344. package/dist/via/money/normalize.d.ts +1 -1
  345. package/dist/via/money/where.d.ts +3 -3
  346. package/dist/walk-JNEOYCAU.js +21 -0
  347. package/dist/walk-JNEOYCAU.js.map +1 -0
  348. package/dist/with-audit/periods/periods.d.ts +1 -1
  349. package/dist/with-audit/periods/strategy.d.ts +1 -1
  350. package/dist/with-audit/sealed-record/index.d.ts +13 -0
  351. package/dist/with-audit/tiers/index.d.ts +17 -2
  352. package/dist/with-cargo/adopt-partition.d.ts +7 -7
  353. package/dist/with-cargo/extract-partition.d.ts +1 -1
  354. package/dist/with-cargo/floor.d.ts +1 -1
  355. package/dist/with-cargo/index.d.ts +2 -2
  356. package/dist/with-commit/history/history.d.ts +26 -0
  357. package/dist/with-commit/history/index.d.ts +2 -1
  358. package/dist/with-commit/history/ledger/store.d.ts +7 -1
  359. package/dist/with-commit/history/strategy.d.ts +11 -1
  360. package/dist/with-commit/numbering/index.d.ts +0 -5
  361. package/dist/with-commit/vault-head/active.d.ts +2 -0
  362. package/dist/with-commit/vault-head/head.d.ts +28 -0
  363. package/dist/with-commit/vault-head/index.d.ts +10 -0
  364. package/dist/with-commit/vault-head/strategy.d.ts +127 -0
  365. package/dist/with-commit/vault-head/verify.d.ts +90 -0
  366. package/dist/with-formula/materialized-views/dependency-analyzer.d.ts +4 -0
  367. package/dist/with-formula/materialized-views/projection-legs.d.ts +59 -0
  368. package/dist/with-formula/materialized-views/registry.d.ts +50 -0
  369. package/dist/with-formula/materialized-views/types.d.ts +68 -10
  370. package/dist/with-party/directory/cover/storage.d.ts +0 -8
  371. package/dist/with-party/directory/storage.d.ts +0 -11
  372. package/dist/with-party/directory/visibility.d.ts +0 -21
  373. package/dist/with-party/policy/storage.d.ts +0 -10
  374. package/dist/with-party/team/deed.d.ts +4 -4
  375. package/dist/with-party/team/device-seal.d.ts +5 -5
  376. package/dist/with-party/team/echo-ceremony.d.ts +2 -2
  377. package/dist/with-party/team/echo-secret.d.ts +4 -4
  378. package/dist/with-party/team/index.d.ts +3 -3
  379. package/dist/with-party/team/keyring.d.ts +141 -4
  380. package/dist/with-party/team/managed-secret.d.ts +21 -11
  381. package/dist/with-party/team/noydb-facade.d.ts +7 -3
  382. package/dist/with-party/team/{shamir-recovery-provider.d.ts → noydb-shamir.d.ts} +1 -1
  383. package/dist/with-party/team/recovery.d.ts +3 -3
  384. package/dist/with-party/team/roster-tag.d.ts +101 -0
  385. package/dist/with-party/team/rotate-recover.d.ts +5 -5
  386. package/dist/with-party/team/tiers.d.ts +2 -1
  387. package/dist/with-pod/format.d.ts +11 -13
  388. package/dist/with-pod/index.d.ts +10 -10
  389. package/dist/with-pod/open.d.ts +2 -2
  390. package/dist/with-pod/pod-handle.d.ts +19 -0
  391. package/dist/with-pod/pod-store.d.ts +0 -8
  392. package/dist/with-pod/{bundle.d.ts → pod.d.ts} +17 -25
  393. package/dist/with-pod/ulid.d.ts +1 -1
  394. package/dist/with-shape/blobs/blob-compaction.d.ts +13 -0
  395. package/dist/with-shape/blobs/blob-set.d.ts +83 -11
  396. package/dist/with-shape/blobs/orphan-report.d.ts +62 -0
  397. package/dist/with-shape/introspection/describe.d.ts +2 -2
  398. package/dist/with-shape/schema-update/fence-controller.d.ts +4 -4
  399. package/dist/with-shape/schema-update/fence-watcher.d.ts +4 -4
  400. package/dist/with-shape/schema-update/store-coordination-provider.d.ts +7 -6
  401. package/dist/with-sync/engine.d.ts +54 -5
  402. package/dist/with-sync/strategy.d.ts +3 -0
  403. package/dist/withdraw-accessible-ILTSXTIE.js +28 -0
  404. package/dist/withdraw-accessible-ILTSXTIE.js.map +1 -0
  405. package/package.json +29 -5
  406. package/dist/api-RXUMEKT3.js +0 -20
  407. package/dist/backup-KULFZ2T4.js.map +0 -1
  408. package/dist/bundle-handle-GFNHT52M.js +0 -36
  409. package/dist/bundle-handle-GFNHT52M.js.map +0 -1
  410. package/dist/chunk-2DHSSLOD.js.map +0 -1
  411. package/dist/chunk-2GAJGUNM.js.map +0 -1
  412. package/dist/chunk-3737A6EA.js.map +0 -1
  413. package/dist/chunk-3IXIU6FP.js.map +0 -1
  414. package/dist/chunk-3URQC7EH.js.map +0 -1
  415. package/dist/chunk-4GZ6XOVW.js.map +0 -1
  416. package/dist/chunk-4I72F5DF.js.map +0 -1
  417. package/dist/chunk-4VUPLMZ6.js.map +0 -1
  418. package/dist/chunk-52JPHN5N.js.map +0 -1
  419. package/dist/chunk-55LKVALY.js.map +0 -1
  420. package/dist/chunk-5JY5TSVY.js.map +0 -1
  421. package/dist/chunk-5ZKS6ZE2.js.map +0 -1
  422. package/dist/chunk-6BU3L4UE.js.map +0 -1
  423. package/dist/chunk-6NVPFKN3.js.map +0 -1
  424. package/dist/chunk-7F4DBNSP.js.map +0 -1
  425. package/dist/chunk-7G6VDWXB.js.map +0 -1
  426. package/dist/chunk-7H73RIE3.js +0 -45
  427. package/dist/chunk-7H73RIE3.js.map +0 -1
  428. package/dist/chunk-7MNBICB5.js.map +0 -1
  429. package/dist/chunk-AFHQATY4.js +0 -47
  430. package/dist/chunk-AFHQATY4.js.map +0 -1
  431. package/dist/chunk-AHLJSVRL.js.map +0 -1
  432. package/dist/chunk-BEFVYAR5.js.map +0 -1
  433. package/dist/chunk-BRVW2GS5.js.map +0 -1
  434. package/dist/chunk-BWVKEOPE.js.map +0 -1
  435. package/dist/chunk-CDB2HVQW.js.map +0 -1
  436. package/dist/chunk-CEJWMBXO.js.map +0 -1
  437. package/dist/chunk-DG27IUVI.js.map +0 -1
  438. package/dist/chunk-E6427JU2.js.map +0 -1
  439. package/dist/chunk-FFDNKRCY.js.map +0 -1
  440. package/dist/chunk-FZ6NYJ7L.js.map +0 -1
  441. package/dist/chunk-G6S5VVHP.js.map +0 -1
  442. package/dist/chunk-GAG7QOVO.js.map +0 -1
  443. package/dist/chunk-HNGSV2YC.js.map +0 -1
  444. package/dist/chunk-IGJCYUT5.js.map +0 -1
  445. package/dist/chunk-JJNOLSG5.js.map +0 -1
  446. package/dist/chunk-JRKZTEZZ.js.map +0 -1
  447. package/dist/chunk-MSWYQLMQ.js.map +0 -1
  448. package/dist/chunk-NPP5R7FF.js.map +0 -1
  449. package/dist/chunk-O2ERS4UJ.js.map +0 -1
  450. package/dist/chunk-PDLLCOGD.js.map +0 -1
  451. package/dist/chunk-PL2GHSCM.js.map +0 -1
  452. package/dist/chunk-PNKHAKQ7.js.map +0 -1
  453. package/dist/chunk-Q6TEJXBX.js.map +0 -1
  454. package/dist/chunk-QULVCV3M.js.map +0 -1
  455. package/dist/chunk-RV3ARMPN.js.map +0 -1
  456. package/dist/chunk-RXYYFSBB.js.map +0 -1
  457. package/dist/chunk-UHXCLPGC.js.map +0 -1
  458. package/dist/chunk-VCETL77O.js.map +0 -1
  459. package/dist/chunk-VZ3XFUQ7.js.map +0 -1
  460. package/dist/chunk-W77KZHCW.js.map +0 -1
  461. package/dist/chunk-WASHZV34.js.map +0 -1
  462. package/dist/chunk-WFUIE565.js.map +0 -1
  463. package/dist/chunk-XWX7GL56.js.map +0 -1
  464. package/dist/chunk-YJ6IONGA.js.map +0 -1
  465. package/dist/chunk-YPYHVOXP.js.map +0 -1
  466. package/dist/chunk-ZJADGNYF.js.map +0 -1
  467. package/dist/collection-facade-QEJIM6BC.js +0 -45
  468. package/dist/delegation-MO7YZYJS.js.map +0 -1
  469. package/dist/derive-IUA6JFLB.js +0 -22
  470. package/dist/dispatch-FZEAWKVM.js.map +0 -1
  471. package/dist/executor-CYJQLKKI.js +0 -9
  472. package/dist/executor-S4QIKEHW.js +0 -9
  473. package/dist/executor-YIQB2S6N.js +0 -29
  474. package/dist/export-accessible-4S36PQNR.js +0 -23
  475. package/dist/extract-partition-IO7FDZ2P.js +0 -38
  476. package/dist/fanout-sidecar-NNAJQXMX.js.map +0 -1
  477. package/dist/fence-watcher-DHQ775JB.js.map +0 -1
  478. package/dist/find-RBBYKXI7.js +0 -11
  479. package/dist/issue-RIVHSY2S.js +0 -19
  480. package/dist/liberate-GFN4C7RR.js +0 -24
  481. package/dist/noydb-ASEXNJS6.js +0 -83
  482. package/dist/register-4EFJCVYD.js +0 -32
  483. package/dist/registry-4SDHHOJ7.js +0 -18
  484. package/dist/registry-CZVINVQH.js +0 -9
  485. package/dist/registry-IKUR2MXD.js +0 -9
  486. package/dist/registry-OYTFGWVK.js +0 -19
  487. package/dist/request-withdrawal-KGXGDPVQ.js +0 -31
  488. package/dist/revoke-JFN773KF.js +0 -24
  489. package/dist/seed-GDV5PT4R.js.map +0 -1
  490. package/dist/signer-TA55QB6R.js +0 -25
  491. package/dist/storage-V7MTFAQJ.js +0 -23
  492. package/dist/store-coordination-provider-GFCUOBR6.js.map +0 -1
  493. package/dist/walk-3ZECBFDA.js +0 -21
  494. package/dist/with-pod/bundle-handle.d.ts +0 -9
  495. package/dist/withdraw-accessible-7PG4DYQK.js +0 -28
  496. /package/dist/{api-RXUMEKT3.js.map → api-EQYRTZO2.js.map} +0 -0
  497. /package/dist/{collection-facade-QEJIM6BC.js.map → at/index.js.map} +0 -0
  498. /package/dist/{computed-6G5M3UPH.js.map → by/index.js.map} +0 -0
  499. /package/dist/{chunk-YAWK6AWF.js.map → chunk-225O5CXQ.js.map} +0 -0
  500. /package/dist/{chunk-OF3L2SD6.js.map → chunk-3QARDAYW.js.map} +0 -0
  501. /package/dist/{chunk-W3TVWF6N.js.map → chunk-4A4TYISP.js.map} +0 -0
  502. /package/dist/{chunk-CCZJJ4I2.js.map → chunk-4G25SDQL.js.map} +0 -0
  503. /package/dist/{chunk-7TSYBD3E.js.map → chunk-5263OEM3.js.map} +0 -0
  504. /package/dist/{chunk-FNSMZQS4.js.map → chunk-5ACAVJUI.js.map} +0 -0
  505. /package/dist/{chunk-VMCCGUQB.js.map → chunk-7LYUJNU3.js.map} +0 -0
  506. /package/dist/{chunk-WLYIROCJ.js.map → chunk-AB5P32RE.js.map} +0 -0
  507. /package/dist/{chunk-SUFG5E73.js.map → chunk-ALUNQEBY.js.map} +0 -0
  508. /package/dist/{chunk-CADUYBQD.js.map → chunk-ATL3ZVXT.js.map} +0 -0
  509. /package/dist/{chunk-6FJWSWFT.js.map → chunk-DBNYPLWY.js.map} +0 -0
  510. /package/dist/{chunk-VJFMXYKP.js.map → chunk-E6YA6UAP.js.map} +0 -0
  511. /package/dist/{chunk-JIUVJ4M7.js.map → chunk-F7ZFRPGQ.js.map} +0 -0
  512. /package/dist/{chunk-HXGUIPQB.js.map → chunk-FOG7YEJP.js.map} +0 -0
  513. /package/dist/{chunk-X56RTUK3.js.map → chunk-HM4JSXX2.js.map} +0 -0
  514. /package/dist/{chunk-GQ3BX5EA.js.map → chunk-I3ISCYT7.js.map} +0 -0
  515. /package/dist/{chunk-FUHKW252.js.map → chunk-J4MN6XIU.js.map} +0 -0
  516. /package/dist/{chunk-ADW22QSB.js.map → chunk-J4UJ5FRV.js.map} +0 -0
  517. /package/dist/{chunk-HVQGCKY4.js.map → chunk-JVLSU7S2.js.map} +0 -0
  518. /package/dist/{chunk-AR2JDFAE.js.map → chunk-KDJGJR7F.js.map} +0 -0
  519. /package/dist/{chunk-747LRSOO.js.map → chunk-LKFKXS5K.js.map} +0 -0
  520. /package/dist/{chunk-U5O6GIWZ.js.map → chunk-LR4Z47QD.js.map} +0 -0
  521. /package/dist/{chunk-RTAMLDWP.js.map → chunk-NLKLXXTO.js.map} +0 -0
  522. /package/dist/{chunk-FDX7OWWI.js.map → chunk-OPXR4PB2.js.map} +0 -0
  523. /package/dist/{chunk-Z45YRGFO.js.map → chunk-P6ASQOZR.js.map} +0 -0
  524. /package/dist/{chunk-2Z3NCLNX.js.map → chunk-QI5NWLVW.js.map} +0 -0
  525. /package/dist/{chunk-6SAFL5YE.js.map → chunk-RC4BROYR.js.map} +0 -0
  526. /package/dist/{chunk-NJDQ4YSV.js.map → chunk-RDHUZ674.js.map} +0 -0
  527. /package/dist/{chunk-3JVXVJ7L.js.map → chunk-S35S77YU.js.map} +0 -0
  528. /package/dist/{chunk-KUDZVJKQ.js.map → chunk-SHILAQH5.js.map} +0 -0
  529. /package/dist/{chunk-4UVDI4XE.js.map → chunk-T3PHCEN4.js.map} +0 -0
  530. /package/dist/{derive-IUA6JFLB.js.map → chunk-UBSFPGVJ.js.map} +0 -0
  531. /package/dist/{chunk-FAXZQ5UF.js.map → chunk-UCUALOSM.js.map} +0 -0
  532. /package/dist/{chunk-4HDYQL3J.js.map → chunk-VAG47QHV.js.map} +0 -0
  533. /package/dist/{chunk-35EBKWQU.js.map → chunk-VFIWDPXZ.js.map} +0 -0
  534. /package/dist/{chunk-HNHCQ556.js.map → chunk-WLLUM35R.js.map} +0 -0
  535. /package/dist/{chunk-JRCYZEHU.js.map → chunk-XVU7J43V.js.map} +0 -0
  536. /package/dist/{chunk-DMQCLZ4Z.js.map → chunk-YCSM3GZU.js.map} +0 -0
  537. /package/dist/{chunk-FMQJZH4R.js.map → chunk-YMLQBZFJ.js.map} +0 -0
  538. /package/dist/{chunk-6HFM7EIT.js.map → chunk-YPSOHDNC.js.map} +0 -0
  539. /package/dist/{chunk-N35NC4JH.js.map → chunk-Z2PWOSCJ.js.map} +0 -0
  540. /package/dist/{chunk-HPLWFNG4.js.map → chunk-Z7ZXZL6Y.js.map} +0 -0
  541. /package/dist/{classified-marker-2KJAXRRO.js.map → classified-marker-BSQHU4JT.js.map} +0 -0
  542. /package/dist/{enclave-JU4YIEPB.js.map → collection-facade-LG3NYZVB.js.map} +0 -0
  543. /package/dist/{executor-CYJQLKKI.js.map → computed-ASBNTLOK.js.map} +0 -0
  544. /package/dist/{dead-filter-DCB62VWW.js.map → dead-filter-QKU56XTQ.js.map} +0 -0
  545. /package/dist/{executor-S4QIKEHW.js.map → derive-CXHCY46K.js.map} +0 -0
  546. /package/dist/{dispatch-MJ6SHB3Y.js.map → dispatch-4AP4PUZU.js.map} +0 -0
  547. /package/dist/{executor-YIQB2S6N.js.map → enclave-NYPT7WA7.js.map} +0 -0
  548. /package/dist/{export-accessible-4S36PQNR.js.map → executor-3KFRQETS.js.map} +0 -0
  549. /package/dist/{extract-partition-IO7FDZ2P.js.map → executor-AFHQYRAU.js.map} +0 -0
  550. /package/dist/{find-RBBYKXI7.js.map → executor-YYDW6XQI.js.map} +0 -0
  551. /package/dist/{issue-RIVHSY2S.js.map → export-accessible-BX2ILB4C.js.map} +0 -0
  552. /package/dist/{ledger-AETNF4OM.js.map → extract-partition-UPOVITFI.js.map} +0 -0
  553. /package/dist/{liberate-GFN4C7RR.js.map → find-SZBL2HPB.js.map} +0 -0
  554. /package/dist/{link-set-E5HNY67I.js.map → issue-G53NB6EW.js.map} +0 -0
  555. /package/dist/{managed-secret-CWQ6PND5.js.map → ledger-T5K4P2D7.js.map} +0 -0
  556. /package/dist/{noydb-ASEXNJS6.js.map → liberate-VEOZRESE.js.map} +0 -0
  557. /package/dist/{register-4EFJCVYD.js.map → link-set-76JZ6YB4.js.map} +0 -0
  558. /package/dist/{registry-4SDHHOJ7.js.map → managed-secret-6YC32VXG.js.map} +0 -0
  559. /package/dist/{registry-CZVINVQH.js.map → noydb-EDJA4JNJ.js.map} +0 -0
  560. /package/dist/{registry-IKUR2MXD.js.map → on/index.js.map} +0 -0
  561. /package/dist/{post-register-2XSSMGEQ.js.map → post-register-53O7AJRZ.js.map} +0 -0
  562. /package/dist/{registry-OYTFGWVK.js.map → register-6TCBR6XD.js.map} +0 -0
  563. /package/dist/{request-withdrawal-KGXGDPVQ.js.map → registry-DH2L4O2V.js.map} +0 -0
  564. /package/dist/{revoke-JFN773KF.js.map → registry-IWFMXCHX.js.map} +0 -0
  565. /package/dist/{signer-TA55QB6R.js.map → registry-Q3FG3OAX.js.map} +0 -0
  566. /package/dist/{stale-ARHFVL5U.js.map → registry-YC3IFG3A.js.map} +0 -0
  567. /package/dist/{storage-V7MTFAQJ.js.map → request-withdrawal-NM5VYR6F.js.map} +0 -0
  568. /package/dist/{reveal-BW36KCOQ.js.map → reveal-XBIMHAXR.js.map} +0 -0
  569. /package/dist/{ulid-PTAIMDG4.js.map → revoke-MJNYWO72.js.map} +0 -0
  570. /package/dist/{walk-3ZECBFDA.js.map → signer-6XVS2AU3.js.map} +0 -0
  571. /package/dist/{withdraw-accessible-7PG4DYQK.js.map → stale-MCS46TFO.js.map} +0 -0
  572. /package/dist/{verify-RO5RTZOJ.js.map → verify-WYOFLSNA.js.map} +0 -0
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Kernel coordination port — the injected `CoordinationProvider` seam for the
2
+ * Kernel coordination port — the injected `NoydbMesh` seam for the
3
3
  * schema-fence drain-barrier.
4
4
  *
5
5
  * The kernel defines this port; `@noy-db/by-tabs` / `@noy-db/by-peer` implement
@@ -15,11 +15,29 @@
15
15
  * @module
16
16
  */
17
17
  import type { Unsubscribe } from '../with/write-hooks.js';
18
- /** Vault fence state (the existing FenceDoc shape). */
19
- export interface FenceState {
20
- readonly currentSchemaVersion: number;
21
- readonly fenceState: 'normal' | 'draining' | 'migrating' | 'complete';
22
- }
18
+ import type { FenceDoc } from '../../with-shape/schema-update/fence.js';
19
+ /**
20
+ * What the mesh carries about the fence: the vault's schema generation and its
21
+ * drain phase. This is the vault's OWN fence document — `@noy-db/hub/by`
22
+ * re-exports it rather than declaring a parallel type.
23
+ *
24
+ * Through 0.6 this port declared its own `FenceState` interface with the same
25
+ * two fields. Two problems, and only the first was visible (#1188):
26
+ *
27
+ * 1. `FenceState` ALSO names an unrelated string union
28
+ * (`'normal' | 'draining' | …`) on `.` and `./cargo`. A consumer importing
29
+ * from `@noy-db/hub` and one importing from `@noy-db/hub/by` got different
30
+ * types, both compiling, failing only where they met.
31
+ * 2. It was a hand-copy — its own comment said "the existing FenceDoc shape" —
32
+ * and it had already drifted, missing the `schemaHash` field #946 added.
33
+ * Measured mutually assignable with `FenceDoc` under `--strict
34
+ * --exactOptionalPropertyTypes`, so there was no type to preserve.
35
+ *
36
+ * Re-exporting fixes both: one name, one meaning, one definition to keep
37
+ * current. `FenceState` on the root barrel is untouched and still means the
38
+ * string union.
39
+ */
40
+ export type { FenceDoc };
23
41
  /** A writer's presence + ack, tagged with the session that owns it. */
24
42
  export interface WriterPresence {
25
43
  /** = today's clientId (one per tab/peer). */
@@ -30,18 +48,18 @@ export interface WriterPresence {
30
48
  readonly quiescedAtVersion: number | null;
31
49
  }
32
50
  /** Session-addressable drain-barrier coordination transport. Per-vault ops. */
33
- export interface CoordinationProvider {
51
+ export interface NoydbMesh {
34
52
  /** orchestrator → all writers */
35
- setFence(vault: string, fence: FenceState): Promise<void>;
53
+ setFence(vault: string, fence: FenceDoc): Promise<void>;
36
54
  /**
37
55
  * Fresh one-shot fence read for the write-path gate (`assertWritable`).
38
56
  * A direct read (not a cached `observeFence` snapshot) avoids a staleness
39
57
  * window and keeps the timing-sensitive cutover gate exact. The store
40
58
  * default reads `_meta/schema-fence`; `by-*` return their last-pushed fence.
41
59
  */
42
- readFence(vault: string): Promise<FenceState>;
60
+ readFence(vault: string): Promise<FenceDoc>;
43
61
  /** writer observes fence changes (default: poll-emit; by-*: push) */
44
- observeFence(vault: string, onChange: (f: FenceState) => void): Unsubscribe;
62
+ observeFence(vault: string, onChange: (f: FenceDoc) => void): Unsubscribe;
45
63
  /** writer → orchestrator: presence + ack (heartbeat + quiescedAtVersion) */
46
64
  reportPresence(vault: string, p: WriterPresence): Promise<void>;
47
65
  /** orchestrator observes presence changes (default: poll-emit; by-*: push) */
@@ -83,4 +101,4 @@ export interface DrainBarrierOptions {
83
101
  * `generation`, at which point `run` is invoked exactly once. Rejects with
84
102
  * {@link QuiesceTimeoutError} if `quiesceTimeoutMs` elapses first.
85
103
  */
86
- export declare function runDrainBarrier(provider: CoordinationProvider, o: DrainBarrierOptions, run: () => Promise<void>): Promise<void>;
104
+ export declare function runDrainBarrier(provider: NoydbMesh, o: DrainBarrierOptions, run: () => Promise<void>): Promise<void>;
@@ -0,0 +1,50 @@
1
+ /**
2
+ * `@noy-db/hub/on` — the unlock port (the `on-*` family port).
3
+ *
4
+ * ## What this seam is, and what it deliberately is NOT
5
+ *
6
+ * The `on-*` family is **not uniform**, and this subpath does not pretend
7
+ * otherwise. Measured across ten packages (see `check-architecture.mjs`'s
8
+ * `on-family-classification`):
9
+ *
10
+ * - **one port instance** — `on-shamir` supplies a {@link NoydbShamir} that
11
+ * hub calls for `profile: 'shamir'` recovery.
12
+ * - **two slot ceremonies** — `on-password` and `on-webauthn` implement
13
+ * {@link SlotRewrapCeremony}, which hub calls back during `rotateSecret`
14
+ * to preserve a tier-2 slot.
15
+ * - **seven libraries** — `on-totp`, `on-threat`, `on-email-otp` and the
16
+ * rest. Three import hub zero times, which is the correct amount of
17
+ * coupling for a TOTP code generator, not a gap to close.
18
+ *
19
+ * So the honest sentence, and the one the docs should carry: **`on-*`
20
+ * packages that hold or rotate a keyring slot implement contracts from here;
21
+ * the rest are freestanding utilities.** A seam is a namespace, not a claim
22
+ * that every package in the family binds it — `/to` already carries two
23
+ * instance types, and nobody reads that as one contract.
24
+ *
25
+ * ## Why it exists NOW and did not before
26
+ *
27
+ * `/on` shipped in 0.3.0 and was pruned in 0.4.0 for "zero importers",
28
+ * alongside `/as`, `/at`, `/in` and `/ui`. It was a second place to find types
29
+ * already on the root barrel.
30
+ *
31
+ * What changed is what stands behind it. `@noy-db/test-ceremony-conformance`
32
+ * publishes the ceremony contract as an executable suite, and the symbols it
33
+ * needs are scattered: three live on `/team`, and `KeyringAuthenticator`,
34
+ * `EnclaveKey` and `NoydbShamir` are reachable only from the whole root
35
+ * barrel. A third-party unlock method has to import the entire library to name
36
+ * the five types its ceremony signature uses — which is the coupling this
37
+ * family's seams exist to remove, and the same argument that brought `/at`
38
+ * back.
39
+ *
40
+ * ⚠️ Re-introducing a retired subpath is declared, not incidental: the
41
+ * `unretired` list in `codemods/0.7.0-pre.json` records it, and
42
+ * `codemod-map.test.ts` refuses the claim unless the subpath really resolves.
43
+ *
44
+ * Named re-exports only (no `export *`) so the published surface is explicit.
45
+ */
46
+ export type { NoydbShamir } from '../../with-party/team/noydb-shamir.js';
47
+ export type { SlotRewrapCeremony, SlotRewrapContext, EnrollAuthenticatorOptions, } from '../../with-party/team/index.js';
48
+ export type { KeyringAuthenticator } from '../../kernel/types.js';
49
+ export type { UnlockedKeyring } from '../../with-party/team/keyring.js';
50
+ export type { EnclaveKey } from '../../kernel/enclave/index.js';
@@ -15,7 +15,7 @@
15
15
  * Named re-exports only (no `export *`) so the published surface is explicit and
16
16
  * tsup's per-entry bundling keeps class identity stable across subpaths.
17
17
  */
18
- export type { NoydbStore, NoydbBundleStore, NoydbPodStore, EncryptedEnvelope, VaultSnapshot, TxOp, StoreCapabilities, StoreCredentials, StoreCredentialSource, StoreTime, ListPageResult, } from '../../kernel/types.js';
19
- export { ConflictError, NetworkError, StoreCapabilityError, BundleVersionConflictError, PodVersionConflictError, UnknownStoreKindError, DuplicateStoreKindError, } from '../../kernel/errors.js';
20
- export type { StoreClass, StoreDescriptor, StoreBinding, StoreFactory, StoreLocator } from './locator.js';
21
- export { createStoreLocator } from './locator.js';
18
+ export type { NoydbStore, NoydbPodStore, EncryptedEnvelope, VaultSnapshot, TxOp, StoreCapabilities, StoreCredentials, StoreCredentialSource, StoreTime, ListPageResult, } from '../../kernel/types.js';
19
+ export { ConflictError, NetworkError, StoreCapabilityError, PodVersionConflictError, UnknownStoreKindError, DuplicateStoreKindError, } from '../../kernel/errors.js';
20
+ export type { StoreClass, StoreDescriptor, StoreBinding, StoreFactory, StoreLocator, AnyNoydbStore, } from './locator.js';
21
+ export { createStoreLocator, isPodStore } from './locator.js';
@@ -17,7 +17,7 @@
17
17
  * and errors, no Node built-ins, no crypto. It adds zero runtime
18
18
  * dependencies to `@noy-db/hub/to`.
19
19
  */
20
- import type { NoydbStore, StoreCredentialSource } from '../../kernel/types.js';
20
+ import type { NoydbStore, NoydbPodStore, StoreCredentialSource } from '../../kernel/types.js';
21
21
  /**
22
22
  * The broad topology bucket a store descriptor's kind falls into —
23
23
  * used by callers/UI to group or filter descriptors without knowing every
@@ -51,22 +51,68 @@ export interface StoreDescriptor {
51
51
  */
52
52
  export type StoreBinding = unknown;
53
53
  /**
54
- * Reconstructs a live `NoydbStore` from a `StoreDescriptor`. Registered
55
- * against a `StoreLocator` under the descriptor's `kind`.
54
+ * Either store shape a factory may produce: the 6-method KV `NoydbStore`, or
55
+ * the whole-vault `NoydbPodStore` implemented by `to-drive` / `to-icloud`.
56
+ *
57
+ * The two are DISJOINT, not sub/supertypes — a pod store has none of the six
58
+ * KV methods — which is why moving between them needs a double cast and why
59
+ * `isPodStore()` exists to narrow instead.
56
60
  */
57
- export type StoreFactory = (descriptor: StoreDescriptor, opts: {
61
+ export type AnyNoydbStore = NoydbStore | NoydbPodStore;
62
+ /**
63
+ * Narrow an `AnyNoydbStore` to the pod shape. Discriminates on the
64
+ * `kind: 'bundle'` tag `NoydbPodStore` carries for exactly this purpose; a
65
+ * `NoydbStore` has no `kind` field at all.
66
+ *
67
+ * Use this at a `resolve()` boundary instead of casting — a store resolved
68
+ * from a descriptor read out of a pod is only known to be one of the two
69
+ * shapes at runtime.
70
+ */
71
+ export declare function isPodStore(store: AnyNoydbStore): store is NoydbPodStore;
72
+ /**
73
+ * Reconstructs a live store from a `StoreDescriptor`. Registered against a
74
+ * `StoreLocator` under the descriptor's `kind`.
75
+ *
76
+ * The type parameter says WHICH shape this factory builds. It defaults to
77
+ * `NoydbStore`, so a bare `StoreFactory` means exactly what it always has;
78
+ * a pod-store factory declares `StoreFactory<NoydbPodStore>` and registers
79
+ * without a cast (#988).
80
+ */
81
+ export type StoreFactory<S extends AnyNoydbStore = NoydbStore> = (descriptor: StoreDescriptor, opts: {
58
82
  binding?: StoreBinding;
59
83
  credentials?: StoreCredentialSource;
60
- }) => NoydbStore | Promise<NoydbStore>;
84
+ }) => S | Promise<S>;
61
85
  /** A registry of `StoreFactory`s, keyed by `StoreDescriptor.kind`. */
62
86
  export interface StoreLocator {
63
- /** Register a factory for `kind`. Throws if `kind` is already registered. */
64
- register(kind: string, factory: StoreFactory): void;
65
- /** Resolve `descriptor` to a live store via its kind's registered factory. */
87
+ /**
88
+ * Register a factory for `kind`. Throws if `kind` is already registered.
89
+ *
90
+ * Accepts a factory building EITHER store shape — `S` is inferred from the
91
+ * factory's own return type, so a `NoydbPodStore` factory needs no cast.
92
+ */
93
+ register<S extends AnyNoydbStore>(kind: string, factory: StoreFactory<S>): void;
94
+ /**
95
+ * Resolve `descriptor` to a live store via its kind's registered factory.
96
+ *
97
+ * Returns `NoydbStore`. If the `kind` was registered with a pod-store
98
+ * factory, the resolved value is really a `NoydbPodStore`: this signature
99
+ * is the seam's remaining unsoundness, kept because widening it to
100
+ * `AnyNoydbStore` would break every existing caller. Where the descriptor's
101
+ * kind is not statically known, prefer `resolveAny()` and `isPodStore()`.
102
+ */
66
103
  resolve(descriptor: StoreDescriptor, opts?: {
67
104
  binding?: StoreBinding;
68
105
  credentials?: StoreCredentialSource;
69
106
  }): NoydbStore | Promise<NoydbStore>;
107
+ /**
108
+ * As `resolve()`, but typed honestly: the registry is keyed by a runtime
109
+ * `kind` string, so which of the two shapes comes back is not knowable
110
+ * statically. Narrow the result with `isPodStore()`.
111
+ */
112
+ resolveAny(descriptor: StoreDescriptor, opts?: {
113
+ binding?: StoreBinding;
114
+ credentials?: StoreCredentialSource;
115
+ }): AnyNoydbStore | Promise<AnyNoydbStore>;
70
116
  }
71
117
  /**
72
118
  * Creates a fresh, empty `StoreLocator`.
@@ -10,7 +10,7 @@
10
10
  * (money/i18n's `installViaBinder` call inside their own factory) would leave
11
11
  * `viaBinder('computed')` unresolved for that path. This port module is already
12
12
  * unconditionally imported by the kernel spine (`collection-config.ts`), so linking here
13
- * guarantees the binder is installed before `compileViaBindings` ever needs it, regardless
13
+ * guarantees the binder is installed before `compileVias` ever needs it, regardless
14
14
  * of which surface (sugar object-form or `via(computed(...))`) declared the virtual field.
15
15
  *
16
16
  * @internal
@@ -3,11 +3,11 @@
3
3
  * #940). Lives on the `/with` port (the one seam the kernel spine may
4
4
  * import statically) so `NoydbOptions.deviceSeal` can reference this type
5
5
  * without a spine→service static import. The concrete implementation
6
- * (`MemoryDeviceSealProvider`) and the canonical re-export of this type
6
+ * (`MemoryDeviceSeal`) and the canonical re-export of this type
7
7
  * live in `with-party/team/device-seal.ts`.
8
8
  * @internal
9
9
  */
10
- export interface DeviceSealProvider {
10
+ export interface NoydbDeviceSeal {
11
11
  /** Non-sensitive identifier persisted as `provider_hint`. */
12
12
  readonly id: string;
13
13
  seal(plain: Uint8Array): Promise<Uint8Array>;
@@ -0,0 +1,76 @@
1
+ /**
2
+ * Formats strategy seam — the service half of the `as-*` port.
3
+ *
4
+ * `/as` publishes the {@link NoydbFormat} contract a format implements; this
5
+ * is what CONSUMES it. `vault.export(fmt)` gates, reads, redacts and calls
6
+ * `encode`; `vault.import(fmt, input)` gates, decodes and plans.
7
+ *
8
+ * Opt-in, not kernel. `vault.ts` had room under its ceiling, but "lean hub"
9
+ * is preserved by making a vault that never exports ship none of this — the
10
+ * same trade every other `with-*` service makes.
11
+ *
12
+ * Core imports `FormatsStrategy` type-only and `NO_FORMATS` as the default, so
13
+ * the spine never statically reaches the implementation.
14
+ *
15
+ * @internal
16
+ */
17
+ import type { NoydbFormat, ImportPlan, ImportPolicy } from '../as/types.js';
18
+ export type { NoydbFormat, ImportPlan, ImportPolicy };
19
+ import type { ExportChunk } from '../../kernel/types.js';
20
+ import type { Vault } from '../../kernel/vault.js';
21
+ /** Options common to an export. */
22
+ export interface FormatExportOptions {
23
+ /** Restrict to these collections. Omitted: everything the caller can read. */
24
+ readonly collections?: readonly string[];
25
+ /**
26
+ * Redact before `encode` sees a record. Hub applies the projection, so a
27
+ * format never needs the vault to know what is sensitive — which is what
28
+ * lets {@link NoydbFormat} be pure.
29
+ */
30
+ readonly redact?: true | {
31
+ readonly sensitivity?: string;
32
+ };
33
+ }
34
+ /** Options for an import. */
35
+ export interface FormatImportOptions {
36
+ /** Target collection, for formats whose input carries no collection name. */
37
+ readonly collection?: string;
38
+ /** How to reconcile with what is already there. Default `'merge'`. */
39
+ readonly policy?: ImportPolicy;
40
+ /** Record identity field. Default `'id'`. A diff concern, so hub owns it. */
41
+ readonly idKey?: string;
42
+ }
43
+ /**
44
+ * The seam `withFormats()` fills.
45
+ *
46
+ * `chunksFor` is separate from `encode` on purpose: it is the gated, redacted
47
+ * read, and it is the half a format must never be able to perform itself.
48
+ */
49
+ export interface FormatsStrategy {
50
+ readonly enabled: boolean;
51
+ exportWith<Out extends string | Uint8Array>(vault: Vault, format: NoydbFormat<Out>, options?: FormatExportOptions): Promise<Out>;
52
+ importWith<Out extends string | Uint8Array>(vault: Vault, format: NoydbFormat<Out>, input: Out, options?: FormatImportOptions): Promise<ImportPlan>;
53
+ }
54
+ /**
55
+ * The SERVICE receives the vault — it is doing the gated read, so that is
56
+ * unavoidable and fine. The invariant the port protects is narrower and is
57
+ * enforced one layer in: a {@link NoydbFormat} never receives it.
58
+ * `port/as/active.ts` derives this five-method context and the format sees
59
+ * only records.
60
+ */
61
+ /** The narrow capability the format-facing half runs against. */
62
+ export interface FormatsContext {
63
+ assertCanExport(tier: 'plaintext' | 'bundle', format?: string): void;
64
+ assertCanImport(tier: 'plaintext' | 'bundle', format?: string): void;
65
+ chunks(collections?: readonly string[]): AsyncIterable<ExportChunk>;
66
+ describe(collection: string): {
67
+ readonly fields: readonly unknown[];
68
+ } | undefined;
69
+ plan(records: Readonly<Record<string, readonly unknown[]>>, policy: ImportPolicy, formatId: string, idKey?: string): Promise<ImportPlan>;
70
+ }
71
+ /** Thrown by every method on {@link NO_FORMATS}. */
72
+ export declare class FormatsNotEnabledError extends Error {
73
+ constructor(op: string);
74
+ }
75
+ /** The no-op default: a vault that never exports ships none of the service. */
76
+ export declare const NO_FORMATS: FormatsStrategy;
@@ -82,7 +82,10 @@ export interface BuildDictionaryHandleOptions<Keys extends string = string> {
82
82
  * `buildLookupHandle`. See `port/with/lookup-strategy.ts`'s `BuildLookupHandleOptions` doc
83
83
  * comment for why this is injected rather than imported by the handle itself.
84
84
  */
85
- buildDeleteMarker: (version: number, actor: string) => EncryptedEnvelope;
85
+ buildDeleteMarker: (identity: {
86
+ collection: string;
87
+ id: string;
88
+ }, version: number, actor: string) => EncryptedEnvelope;
86
89
  /** #650 Task 5 (#648) — the real reference check, passed through to `buildLookupHandle`. */
87
90
  checkReferencesOnDelete?: ((key: string) => Promise<unknown>) | undefined;
88
91
  }
@@ -62,7 +62,10 @@ export interface BuildLookupHandleOptions<Keys extends string = string> {
62
62
  * may not import `kernel/enclave/` itself (Check 11/15), so this capability is injected the
63
63
  * same way `reservedEnvelopes` above is.
64
64
  */
65
- readonly buildDeleteMarker: (version: number, actor: string) => EncryptedEnvelope;
65
+ readonly buildDeleteMarker: (identity: {
66
+ collection: string;
67
+ id: string;
68
+ }, version: number, actor: string) => EncryptedEnvelope;
66
69
  /** #650 Task 4 (#647) — choke-point participation hooks. */
67
70
  readonly onDirty?: ((collection: string, id: string, action: 'put' | 'delete', version: number) => Promise<void>) | undefined;
68
71
  readonly onRecordMutated?: ((collection: string, id: string, action: 'put' | 'delete', version: number) => Promise<void>) | undefined;
@@ -0,0 +1,52 @@
1
+ /**
2
+ * The merge's capability to verify and re-stamp store-supplied ciphertext (#1042).
3
+ *
4
+ * ## The problem this seam exists to solve
5
+ *
6
+ * `with-sync` is DEK-free by design, and `check:architecture` enforces it: the
7
+ * engine's only enclave import is shape predicates. That is why AAD alone
8
+ * cannot make the merge fail closed — AAD is verified inside `subtle.decrypt`,
9
+ * and `applyRemote` never decrypts. It commits the remote envelope and the
10
+ * client discovers the problem at read time, *after* its own newer copy is
11
+ * gone.
12
+ *
13
+ * Two consequences follow from the same root, and one seam resolves both:
14
+ *
15
+ * 1. **The merge cannot reject a forged envelope**, because it holds no key.
16
+ * 2. **`advancePastRemote` re-stamps `_v` on existing ciphertext** without a
17
+ * DEK, which is precisely why `_v` could not be bound into the AAD by
18
+ * #1041. Version rollback stayed open as a result.
19
+ *
20
+ * ## Why a capability rather than an import
21
+ *
22
+ * The engine takes a `MergeAuthority` at construction. The closure holds the
23
+ * DEK; the engine's import graph is unchanged, so `check:architecture` passes
24
+ * **unweakened** — no allowlist entry, no guard edit. ADR 0003 states the test
25
+ * plainly: *if the guard needs relaxing, the design is wrong.*
26
+ *
27
+ * @packageDocumentation
28
+ */
29
+ import type { EncryptedEnvelope } from '../../kernel/types.js';
30
+ export interface MergeAuthority {
31
+ /**
32
+ * Does `envelope` authenticate at the identity and version it claims?
33
+ *
34
+ * Called **before** `local.put`, so a rejection costs the client nothing: its
35
+ * existing copy is untouched. Returns a boolean rather than throwing because
36
+ * a hostile store must not be able to halt an entire sync by poisoning one
37
+ * record — the caller records the rejection and moves to the next entry.
38
+ */
39
+ verify(collection: string, id: string, envelope: EncryptedEnvelope): Promise<boolean>;
40
+ /**
41
+ * Re-stamp `envelope` to `toVersion`, re-sealing it under the same DEK.
42
+ *
43
+ * Replaces the `{ ...winner, _v: remote._v + 1 }` spread. That spread is the
44
+ * single reason `_v` is not yet AEAD-bound: it rewrites a version onto
45
+ * ciphertext nobody re-sealed, so a reader recomputing AAD from the stamped
46
+ * `_v` would find a body sealed at a different one.
47
+ *
48
+ * With this, advancing becomes a re-seal, and binding `_v` becomes possible —
49
+ * which converts rollback detection into rollback *prevention*.
50
+ */
51
+ advance(collection: string, id: string, envelope: EncryptedEnvelope, toVersion: number): Promise<EncryptedEnvelope>;
52
+ }
@@ -150,7 +150,3 @@ export declare class ServiceBus {
150
150
  */
151
151
  dispatchGate<P extends GatePoint>(point: P, event: GateEventMap[P]): Promise<void>;
152
152
  }
153
- /** @deprecated Use ServiceBus. */
154
- export declare const SubsystemBus: typeof ServiceBus;
155
- /** @deprecated Use ServiceBus. */
156
- export type SubsystemBus = ServiceBus;
@@ -41,15 +41,21 @@
41
41
  * is a real strategy, which is why this table maps keys to defaults rather
42
42
  * than assuming a `NO_*` naming convention.
43
43
  *
44
- * `coordinationStrategy` is deliberately NOT in the bag. It is a
45
- * `CoordinationProvider`, not a service strategy — it has no `with*()`
44
+ * The `mesh` option is deliberately NOT in the bag. It is a
45
+ * `NoydbMesh`, not a service strategy — it has no `with*()`
46
46
  * factory, no `NO_*` stub, and is resolved asynchronously from the store
47
- * (`createDefaultCoordinationProvider`) rather than passed through. The
48
- * completeness assertion at the bottom of this file excludes it by name so
49
- * that the exclusion is explicit and survives future edits.
47
+ * (`createDefaultMesh`) rather than passed through.
48
+ *
49
+ * It used to be spelled `coordinationStrategy`, and the completeness assertion
50
+ * below had to exclude it BY NAME because a `*Strategy`-shaped key that is not
51
+ * a strategy is exactly what that assertion hunts for. The 0.7 rename removed
52
+ * the collision rather than documenting it: `mesh` is not matched by
53
+ * `${string}Strategy`, so no exclusion is needed and none is written.
50
54
  *
51
55
  * @internal
52
56
  */
57
+ import type { FormatsStrategy } from './formats-strategy.js';
58
+ import { type VaultHeadStrategy } from '../../with-commit/vault-head/strategy.js';
53
59
  import type { NoydbOptions } from '../../kernel/types.js';
54
60
  import { type ReduceStrategy } from '../../with-lookup/reduce/strategy.js';
55
61
  import { type AttestationStrategy } from '../../with-audit/attestation/strategy.js';
@@ -86,6 +92,7 @@ import type { ArchiveStrategy } from '../../with-fork/archive/index.js';
86
92
  * completeness assertion below pins that correspondence.
87
93
  */
88
94
  export interface StrategyBag {
95
+ readonly formats: FormatsStrategy;
89
96
  readonly reduce: ReduceStrategy;
90
97
  readonly archive: ArchiveStrategy;
91
98
  readonly attestation: AttestationStrategy;
@@ -98,6 +105,7 @@ export interface StrategyBag {
98
105
  readonly custody: CustodyStrategy;
99
106
  readonly forget: ForgetStrategy;
100
107
  readonly history: HistoryStrategy;
108
+ readonly vaultHead: VaultHeadStrategy;
101
109
  readonly i18n: I18nStrategy;
102
110
  readonly indexing: IndexingStrategy;
103
111
  readonly lazy: LazyStrategy;
@@ -22,12 +22,16 @@
22
22
  * @internal
23
23
  */
24
24
  import type { GrantOptions, RevokeOptions, FactorProofBundle } from '../../kernel/types.js';
25
- import type { RotateResult } from '../../with-party/team/keyring.js';
25
+ import type { RotateResult, RosterVerifyResult, QuarantineResult } from '../../with-party/team/keyring.js';
26
26
  import type { TeamFacade } from '../../with-party/team/noydb-facade.js';
27
27
  export interface TeamStrategy {
28
28
  grant(team: TeamFacade, vault: string, options: GrantOptions, factors?: FactorProofBundle): Promise<void>;
29
29
  revoke(team: TeamFacade, vault: string, options: RevokeOptions, factors?: FactorProofBundle): Promise<void>;
30
30
  rotate(team: TeamFacade, vault: string, collections: string[]): Promise<RotateResult>;
31
+ /** #1121 — read-only sweep naming every `_keyring` file that fails authentication. */
32
+ verifyRoster(team: TeamFacade, vault: string): Promise<RosterVerifyResult>;
33
+ /** #1121 — remove an unauthenticatable `_keyring` file and re-key behind it. */
34
+ quarantineKeyring(team: TeamFacade, vault: string, userId: string, factors?: FactorProofBundle): Promise<QuarantineResult>;
31
35
  }
32
36
  /**
33
37
  * No-op stub — the floor default. Every multi-user team operation throws
@@ -1,36 +1,36 @@
1
1
  import {
2
2
  NO_PORTABILITY
3
- } from "../chunk-FUHKW252.js";
3
+ } from "../chunk-J4MN6XIU.js";
4
4
  import {
5
5
  PortabilityNotEnabledError
6
- } from "../chunk-HNGSV2YC.js";
6
+ } from "../chunk-JBIV4FLR.js";
7
7
  import "../chunk-PZ5AY32C.js";
8
8
 
9
9
  // src/with-audit/portability/active.ts
10
10
  function withPortability() {
11
11
  return {
12
12
  async exportAccessibleData(vault, opts) {
13
- const { exportAccessibleData } = await import("../export-accessible-4S36PQNR.js");
13
+ const { exportAccessibleData } = await import("../export-accessible-BX2ILB4C.js");
14
14
  return exportAccessibleData(vault, opts);
15
15
  },
16
16
  async withdrawAccessibleData(vault, opts) {
17
- const { withdrawAccessibleData } = await import("../withdraw-accessible-7PG4DYQK.js");
17
+ const { withdrawAccessibleData } = await import("../withdraw-accessible-ILTSXTIE.js");
18
18
  return withdrawAccessibleData(vault, opts);
19
19
  },
20
20
  async requestWithdrawal(vault, opts) {
21
- const { requestWithdrawal } = await import("../request-withdrawal-KGXGDPVQ.js");
21
+ const { requestWithdrawal } = await import("../request-withdrawal-NM5VYR6F.js");
22
22
  return requestWithdrawal(vault, opts);
23
23
  },
24
24
  async listWithdrawalRequests(vault, opts) {
25
- const { listWithdrawalRequests } = await import("../request-withdrawal-KGXGDPVQ.js");
25
+ const { listWithdrawalRequests } = await import("../request-withdrawal-NM5VYR6F.js");
26
26
  return listWithdrawalRequests(vault, opts);
27
27
  },
28
28
  async approveWithdrawal(vault, requestId, opts) {
29
- const { approveWithdrawal } = await import("../request-withdrawal-KGXGDPVQ.js");
29
+ const { approveWithdrawal } = await import("../request-withdrawal-NM5VYR6F.js");
30
30
  return approveWithdrawal(vault, requestId, opts);
31
31
  },
32
32
  async rejectWithdrawal(vault, requestId, opts) {
33
- const { rejectWithdrawal } = await import("../request-withdrawal-KGXGDPVQ.js");
33
+ const { rejectWithdrawal } = await import("../request-withdrawal-NM5VYR6F.js");
34
34
  return rejectWithdrawal(vault, requestId, opts);
35
35
  }
36
36
  };
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  hashFields
3
- } from "./chunk-HVQGCKY4.js";
3
+ } from "./chunk-JVLSU7S2.js";
4
4
  import {
5
5
  SatelliteConfigError
6
- } from "./chunk-HNGSV2YC.js";
6
+ } from "./chunk-JBIV4FLR.js";
7
7
  import "./chunk-PZ5AY32C.js";
8
8
 
9
9
  // src/with-shape/satellites/marker.ts
@@ -14,7 +14,7 @@ async function ensureSatelliteMarker(store, vaultName, spec, dek) {
14
14
  joined: spec.joined,
15
15
  epoch: (/* @__PURE__ */ new Date()).toISOString()
16
16
  };
17
- const { loadPersistedSchema } = await import("./storage-V7MTFAQJ.js");
17
+ const { loadPersistedSchema } = await import("./storage-ZXUT476I.js");
18
18
  const persisted = await loadPersistedSchema(store, vaultName, spec.satellite, dek);
19
19
  const prior = persisted?.satellite;
20
20
  if (prior) {
@@ -25,7 +25,7 @@ async function ensureSatelliteMarker(store, vaultName, spec, dek) {
25
25
  }
26
26
  return;
27
27
  }
28
- const { persistSatelliteMarker } = await import("./register-4EFJCVYD.js");
28
+ const { persistSatelliteMarker } = await import("./register-6TCBR6XD.js");
29
29
  await persistSatelliteMarker({ store, vault: vaultName, collectionName: spec.satellite, dek, marker: next });
30
30
  }
31
31
 
@@ -39,7 +39,7 @@ async function postRegister(store, vaultName, spec, getDEK, baseSchema, registry
39
39
  }
40
40
  if (baseSchema !== void 0) {
41
41
  try {
42
- const { derivePersistedSchema } = await import("./derive-IUA6JFLB.js");
42
+ const { derivePersistedSchema } = await import("./derive-CXHCY46K.js");
43
43
  const envelope = await derivePersistedSchema(baseSchema);
44
44
  const properties = envelope.jsonSchema?.["properties"];
45
45
  const baseFields = Object.keys(properties ?? {});
@@ -57,4 +57,4 @@ async function postRegister(store, vaultName, spec, getDEK, baseSchema, registry
57
57
  export {
58
58
  postRegister
59
59
  };
60
- //# sourceMappingURL=post-register-2XSSMGEQ.js.map
60
+ //# sourceMappingURL=post-register-53O7AJRZ.js.map
@@ -4,22 +4,22 @@ import {
4
4
  ScanBuilder,
5
5
  buildLiveQuery,
6
6
  executePlan
7
- } from "../chunk-3737A6EA.js";
7
+ } from "../chunk-S2VG3ABP.js";
8
8
  import {
9
9
  DEFAULT_JOIN_MAX_ROWS,
10
10
  applyJoins,
11
11
  resetJoinWarnings
12
- } from "../chunk-E6427JU2.js";
12
+ } from "../chunk-XSN63FUS.js";
13
13
  import {
14
14
  CollectionIndexes
15
- } from "../chunk-GQ3BX5EA.js";
15
+ } from "../chunk-I3ISCYT7.js";
16
16
  import "../chunk-YMUFFJCO.js";
17
- import "../chunk-CADUYBQD.js";
17
+ import "../chunk-ATL3ZVXT.js";
18
18
  import {
19
19
  evaluateClause,
20
20
  evaluateFieldClause,
21
21
  readPath
22
- } from "../chunk-IGJCYUT5.js";
22
+ } from "../chunk-NSITFOCJ.js";
23
23
  import {
24
24
  CrossJoinSourceUnknownError,
25
25
  CrossJoinTooLargeError,
@@ -29,7 +29,7 @@ import {
29
29
  IndexRequiredError,
30
30
  IndexWriteFailureError,
31
31
  JoinTooLargeError
32
- } from "../chunk-HNGSV2YC.js";
32
+ } from "../chunk-JBIV4FLR.js";
33
33
  import "../chunk-PZ5AY32C.js";
34
34
  export {
35
35
  CollectionIndexes,
@@ -9,7 +9,7 @@ import {
9
9
  groupAndReduce,
10
10
  reduceRecords,
11
11
  resetGroupByWarnings
12
- } from "../chunk-CCZJJ4I2.js";
12
+ } from "../chunk-4G25SDQL.js";
13
13
  import "../chunk-XZHEOSQ2.js";
14
14
  import {
15
15
  NO_REDUCE
@@ -24,11 +24,11 @@ import {
24
24
  moneySum,
25
25
  reducerBuilder,
26
26
  sum
27
- } from "../chunk-CADUYBQD.js";
28
- import "../chunk-IGJCYUT5.js";
29
- import "../chunk-7G6VDWXB.js";
30
- import "../chunk-UHXCLPGC.js";
31
- import "../chunk-HNGSV2YC.js";
27
+ } from "../chunk-ATL3ZVXT.js";
28
+ import "../chunk-NSITFOCJ.js";
29
+ import "../chunk-X67FCULK.js";
30
+ import "../chunk-XDVVBETV.js";
31
+ import "../chunk-JBIV4FLR.js";
32
32
  import "../chunk-PZ5AY32C.js";
33
33
 
34
34
  // src/with-lookup/reduce/active.ts