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

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 (938) hide show
  1. package/dist/aggregate/index.js +9 -8
  2. package/dist/aggregate/index.js.map +1 -1
  3. package/dist/api-YGMINAET.js +20 -0
  4. package/dist/as/index.js +12 -6
  5. package/dist/attestation/index.js +19 -13
  6. package/dist/attestation/index.js.map +1 -1
  7. package/dist/backup-XA5STIYQ.js +225 -0
  8. package/dist/backup-XA5STIYQ.js.map +1 -0
  9. package/dist/blobs/index.js +12 -6
  10. package/dist/blobs/index.js.map +1 -1
  11. package/dist/broker/index.js +92 -0
  12. package/dist/broker/index.js.map +1 -0
  13. package/dist/bundle/index.js +21 -15
  14. package/dist/bundle/index.js.map +1 -1
  15. package/dist/by/index.js +2 -2
  16. package/dist/cargo/index.js +32 -26
  17. package/dist/chunk-25NDNMQ7.js +70 -0
  18. package/dist/chunk-25NDNMQ7.js.map +1 -0
  19. package/dist/chunk-2JMMY7HZ.js +188 -0
  20. package/dist/chunk-2JMMY7HZ.js.map +1 -0
  21. package/dist/chunk-3CNQ7FQ3.js +430 -0
  22. package/dist/chunk-3G4KMVUN.js +291 -0
  23. package/dist/chunk-3G4KMVUN.js.map +1 -0
  24. package/dist/chunk-3MSQLQNZ.js +74 -0
  25. package/dist/chunk-45ZZLTFH.js +38 -0
  26. package/dist/chunk-45ZZLTFH.js.map +1 -0
  27. package/dist/chunk-4GPE63GU.js +111 -0
  28. package/dist/chunk-4GPE63GU.js.map +1 -0
  29. package/dist/chunk-4N5QFSNQ.js +150 -0
  30. package/dist/chunk-4N5QFSNQ.js.map +1 -0
  31. package/dist/chunk-4R4Q64W5.js +34 -0
  32. package/dist/chunk-57V5S7PW.js +130 -0
  33. package/dist/chunk-57V5S7PW.js.map +1 -0
  34. package/dist/chunk-5JB73NMC.js +202 -0
  35. package/dist/chunk-5JB73NMC.js.map +1 -0
  36. package/dist/chunk-5XIPOCQC.js +155 -0
  37. package/dist/chunk-5ZOSG3RJ.js +778 -0
  38. package/dist/chunk-5ZOSG3RJ.js.map +1 -0
  39. package/dist/chunk-67TNU77I.js +36 -0
  40. package/dist/chunk-67TNU77I.js.map +1 -0
  41. package/dist/chunk-6QILBDZU.js +205 -0
  42. package/dist/chunk-7E67FJ33.js +155 -0
  43. package/dist/chunk-7ITPJFGC.js +50 -0
  44. package/dist/chunk-7ITPJFGC.js.map +1 -0
  45. package/dist/chunk-7NS43EXZ.js +117 -0
  46. package/dist/chunk-7QIXUSDQ.js +341 -0
  47. package/dist/chunk-7QIXUSDQ.js.map +1 -0
  48. package/dist/chunk-7VSGW5KJ.js +74 -0
  49. package/dist/chunk-7VSGW5KJ.js.map +1 -0
  50. package/dist/chunk-A2QF4JUE.js +14073 -0
  51. package/dist/chunk-A2QF4JUE.js.map +1 -0
  52. package/dist/chunk-A2Y6YFVN.js +209 -0
  53. package/dist/chunk-AOVDSIL3.js +1221 -0
  54. package/dist/chunk-AOVDSIL3.js.map +1 -0
  55. package/dist/chunk-ARSAMO24.js +29 -0
  56. package/dist/chunk-ARSAMO24.js.map +1 -0
  57. package/dist/chunk-AWB5JZW6.js +41 -0
  58. package/dist/chunk-AWB5JZW6.js.map +1 -0
  59. package/dist/chunk-BCYQA5BK.js +45 -0
  60. package/dist/chunk-BE7N3AXA.js +621 -0
  61. package/dist/chunk-BE7N3AXA.js.map +1 -0
  62. package/dist/chunk-BEIRE5K4.js +164 -0
  63. package/dist/chunk-BEIRE5K4.js.map +1 -0
  64. package/dist/chunk-BZO4WCJI.js +86 -0
  65. package/dist/chunk-BZO4WCJI.js.map +1 -0
  66. package/dist/chunk-C3YH34IL.js +75 -0
  67. package/dist/chunk-C3YH34IL.js.map +1 -0
  68. package/dist/chunk-C7NTK5I3.js +49 -0
  69. package/dist/chunk-C7NTK5I3.js.map +1 -0
  70. package/dist/chunk-CB25ONKC.js +129 -0
  71. package/dist/chunk-CIKY6I4W.js +21 -0
  72. package/dist/chunk-CKZW6P5V.js +32 -0
  73. package/dist/chunk-CKZW6P5V.js.map +1 -0
  74. package/dist/chunk-D26JB3LZ.js +54 -0
  75. package/dist/chunk-D3EFFFOL.js +59 -0
  76. package/dist/chunk-D3EFFFOL.js.map +1 -0
  77. package/dist/chunk-DGH65E7Q.js +466 -0
  78. package/dist/chunk-DGH65E7Q.js.map +1 -0
  79. package/dist/chunk-DIRRS7WP.js +42 -0
  80. package/dist/chunk-DJ3VKYFA.js +150 -0
  81. package/dist/chunk-DJ3VKYFA.js.map +1 -0
  82. package/dist/chunk-DMFNPHCX.js +247 -0
  83. package/dist/chunk-DMFNPHCX.js.map +1 -0
  84. package/dist/chunk-ELNBMFOS.js +392 -0
  85. package/dist/chunk-ELNBMFOS.js.map +1 -0
  86. package/dist/chunk-FH542DDY.js +1505 -0
  87. package/dist/chunk-FH542DDY.js.map +1 -0
  88. package/dist/chunk-FQQF23MC.js +45 -0
  89. package/dist/chunk-FQQF23MC.js.map +1 -0
  90. package/dist/chunk-FXK4X4BL.js +91 -0
  91. package/dist/chunk-FXK4X4BL.js.map +1 -0
  92. package/dist/chunk-GA2QHD6P.js +235 -0
  93. package/dist/chunk-GA2QHD6P.js.map +1 -0
  94. package/dist/chunk-GYGLAVCX.js +19 -0
  95. package/dist/chunk-GYGLAVCX.js.map +1 -0
  96. package/dist/chunk-H44ZE4IE.js +355 -0
  97. package/dist/chunk-H6CZSDWK.js +1697 -0
  98. package/dist/chunk-H6CZSDWK.js.map +1 -0
  99. package/dist/chunk-H6HM6CVR.js +279 -0
  100. package/dist/chunk-H6HM6CVR.js.map +1 -0
  101. package/dist/chunk-HFJIGWJC.js +382 -0
  102. package/dist/chunk-HUS3J5WM.js +404 -0
  103. package/dist/chunk-HUS3J5WM.js.map +1 -0
  104. package/dist/chunk-IDIV5NVH.js +99 -0
  105. package/dist/chunk-IDIV5NVH.js.map +1 -0
  106. package/dist/chunk-IGJCYUT5.js +99 -0
  107. package/dist/chunk-IGJCYUT5.js.map +1 -0
  108. package/dist/chunk-IGJHJYM6.js +515 -0
  109. package/dist/chunk-IGJHJYM6.js.map +1 -0
  110. package/dist/chunk-IP2QBAGS.js +589 -0
  111. package/dist/chunk-IP2QBAGS.js.map +1 -0
  112. package/dist/chunk-JK733I5V.js +23 -0
  113. package/dist/chunk-JK733I5V.js.map +1 -0
  114. package/dist/chunk-JOQ53DMI.js +255 -0
  115. package/dist/chunk-JOQ53DMI.js.map +1 -0
  116. package/dist/chunk-K62IUKOD.js +823 -0
  117. package/dist/chunk-K62IUKOD.js.map +1 -0
  118. package/dist/chunk-KPGX66PM.js +230 -0
  119. package/dist/chunk-KPZS5QAQ.js +151 -0
  120. package/dist/chunk-KPZS5QAQ.js.map +1 -0
  121. package/dist/chunk-L2SNBIV7.js +453 -0
  122. package/dist/chunk-L2SNBIV7.js.map +1 -0
  123. package/dist/chunk-LP7BEXCT.js +32 -0
  124. package/dist/chunk-LP7BEXCT.js.map +1 -0
  125. package/dist/chunk-MCEKIAO4.js +367 -0
  126. package/dist/chunk-MELR46EF.js +280 -0
  127. package/dist/chunk-MELR46EF.js.map +1 -0
  128. package/dist/chunk-MSPNM2OM.js +95 -0
  129. package/dist/chunk-MSPNM2OM.js.map +1 -0
  130. package/dist/chunk-NO272T7Q.js +194 -0
  131. package/dist/chunk-NO272T7Q.js.map +1 -0
  132. package/dist/chunk-O2DYPAZY.js +23 -0
  133. package/dist/chunk-ODJWBC5I.js +30 -0
  134. package/dist/chunk-OEAATWH5.js +686 -0
  135. package/dist/chunk-OEAATWH5.js.map +1 -0
  136. package/dist/chunk-OFJ5GPNA.js +71 -0
  137. package/dist/chunk-OOLO4LQG.js +99 -0
  138. package/dist/chunk-OOLO4LQG.js.map +1 -0
  139. package/dist/chunk-P5RY4ZWD.js +662 -0
  140. package/dist/chunk-P5RY4ZWD.js.map +1 -0
  141. package/dist/chunk-PR5LC5YX.js +265 -0
  142. package/dist/chunk-PR5LC5YX.js.map +1 -0
  143. package/dist/chunk-PXWVF7MC.js +135 -0
  144. package/dist/chunk-Q3XSMOZM.js +40 -0
  145. package/dist/chunk-QLLKLFE2.js +94 -0
  146. package/dist/chunk-QLLKLFE2.js.map +1 -0
  147. package/dist/chunk-QQJXBZCO.js +1056 -0
  148. package/dist/chunk-QQJXBZCO.js.map +1 -0
  149. package/dist/chunk-QYPKGVT4.js +261 -0
  150. package/dist/chunk-QYPKGVT4.js.map +1 -0
  151. package/dist/chunk-RKRGDAS7.js +59 -0
  152. package/dist/chunk-SRVQHVNX.js +164 -0
  153. package/dist/chunk-SYMS4546.js +29 -0
  154. package/dist/chunk-SYMS4546.js.map +1 -0
  155. package/dist/chunk-THNJ3IKU.js +17 -0
  156. package/dist/chunk-THNJ3IKU.js.map +1 -0
  157. package/dist/chunk-TPH5EO6L.js +54 -0
  158. package/dist/chunk-TPH5EO6L.js.map +1 -0
  159. package/dist/chunk-UFILRICG.js +14 -0
  160. package/dist/chunk-UTLEAJXC.js +97 -0
  161. package/dist/chunk-VA4ZWLFY.js +123 -0
  162. package/dist/chunk-VR24ILCR.js +367 -0
  163. package/dist/chunk-VYYM3MEN.js +98 -0
  164. package/dist/chunk-VYYM3MEN.js.map +1 -0
  165. package/dist/chunk-W5D62AQD.js +944 -0
  166. package/dist/chunk-W5D62AQD.js.map +1 -0
  167. package/dist/chunk-WGV4CUZT.js +167 -0
  168. package/dist/chunk-WGV4CUZT.js.map +1 -0
  169. package/dist/chunk-WTUNZACT.js +30 -0
  170. package/dist/chunk-WTUNZACT.js.map +1 -0
  171. package/dist/chunk-X6CMGUAG.js +69 -0
  172. package/dist/chunk-X6CMGUAG.js.map +1 -0
  173. package/dist/chunk-XFXUTFWQ.js +85 -0
  174. package/dist/chunk-XFXUTFWQ.js.map +1 -0
  175. package/dist/chunk-XHV25KBM.js +30 -0
  176. package/dist/chunk-YSXEFGND.js +124 -0
  177. package/dist/chunk-YXOUQ2H7.js +36 -0
  178. package/dist/chunk-ZP5PL65C.js +80 -0
  179. package/dist/classified/index.js +40 -0
  180. package/dist/classified-marker-LQWWQNIJ.js +24 -0
  181. package/dist/classified-marker-LQWWQNIJ.js.map +1 -0
  182. package/dist/collection-facade-YE2O4J4O.js +39 -0
  183. package/dist/computed-W6MVAMWZ.js +11 -0
  184. package/dist/consent/index.js +10 -4
  185. package/dist/consent/index.js.map +1 -1
  186. package/dist/crdt/index.js +1 -1
  187. package/dist/dead-filter-4KXZEB3X.js +28 -0
  188. package/dist/dead-filter-4KXZEB3X.js.map +1 -0
  189. package/dist/delegation-OPUU3R2E.js +25 -0
  190. package/dist/derivations/index.js +13 -6
  191. package/dist/derive-BGUHU663.js +21 -0
  192. package/dist/enclave-VXAQD4XJ.js +135 -0
  193. package/dist/executor-GTVSUUBX.js +25 -0
  194. package/dist/executor-GZWMTOXB.js +9 -0
  195. package/dist/executor-XXGS4S3K.js +9 -0
  196. package/dist/export-accessible-BMULIOYB.js +23 -0
  197. package/dist/extract-partition-JUQTWDXR.js +36 -0
  198. package/dist/fanout-sidecar-CKYFH33E.js +74 -0
  199. package/dist/fanout-sidecar-CKYFH33E.js.map +1 -0
  200. package/dist/fence-watcher-DHQ775JB.js +69 -0
  201. package/dist/fence-watcher-DHQ775JB.js.map +1 -0
  202. package/dist/find-XRGCNGNN.js +11 -0
  203. package/dist/forget/index.js +11 -5
  204. package/dist/forget/index.js.map +1 -1
  205. package/dist/guards/index.js +4 -4
  206. package/dist/history/index.js +12 -6
  207. package/dist/history/index.js.map +1 -1
  208. package/dist/i18n/index.js +50 -31
  209. package/dist/i18n/index.js.map +1 -1
  210. package/dist/index.d.ts +303 -1400
  211. package/dist/index.js +1525 -184
  212. package/dist/index.js.map +1 -1
  213. package/dist/indexing/index.js +4 -4
  214. package/dist/issue-UB6AA5M6.js +19 -0
  215. package/dist/json-schema-I22JCYCG.js +44 -0
  216. package/dist/json-schema-I22JCYCG.js.map +1 -0
  217. package/dist/kernel/cache/index.d.ts +10 -0
  218. package/dist/kernel/cache/lru.d.ts +97 -0
  219. package/dist/kernel/cache/policy.d.ts +32 -0
  220. package/dist/kernel/collection-config.d.ts +781 -0
  221. package/dist/kernel/collection.d.ts +1505 -0
  222. package/dist/kernel/constants.d.ts +18 -0
  223. package/dist/kernel/debug.d.ts +25 -0
  224. package/dist/kernel/enclave/broker/proof.d.ts +154 -0
  225. package/dist/kernel/enclave/classify/bidx.d.ts +77 -0
  226. package/dist/kernel/enclave/classify/compare.d.ts +10 -0
  227. package/dist/kernel/enclave/classify/digest.d.ts +8 -0
  228. package/dist/kernel/enclave/classify/find.d.ts +36 -0
  229. package/dist/kernel/enclave/classify/kofn.d.ts +7 -0
  230. package/dist/kernel/enclave/classify/normalize.d.ts +7 -0
  231. package/dist/kernel/enclave/classify/reveal.d.ts +10 -0
  232. package/dist/kernel/enclave/classify/vdig.d.ts +39 -0
  233. package/dist/kernel/enclave/classify/verify.d.ts +33 -0
  234. package/dist/kernel/enclave/classify/write.d.ts +8 -0
  235. package/dist/kernel/enclave/crypto.d.ts +263 -0
  236. package/dist/kernel/enclave/index.d.ts +78 -0
  237. package/dist/kernel/enclave/record-keys/deterministic.d.ts +54 -0
  238. package/dist/kernel/enclave/record-keys/envelope-body.d.ts +79 -0
  239. package/dist/kernel/enclave/record-keys/lifecycle.d.ts +57 -0
  240. package/dist/kernel/enclave/record-keys/record-codec.d.ts +301 -0
  241. package/dist/kernel/enclave/record-keys/sealed-slot.d.ts +14 -0
  242. package/dist/kernel/enclave/record-keys/sealed-slots.d.ts +123 -0
  243. package/dist/kernel/enclave/record-keys/sealing.d.ts +70 -0
  244. package/dist/kernel/enclave/record-keys/tombstone.d.ts +57 -0
  245. package/dist/kernel/env-check.d.ts +1 -0
  246. package/dist/kernel/errors.d.ts +1848 -0
  247. package/dist/kernel/events.d.ts +11 -0
  248. package/dist/kernel/memory-store.d.ts +17 -0
  249. package/dist/kernel/mutation.d.ts +14 -0
  250. package/dist/kernel/noydb.d.ts +818 -0
  251. package/dist/kernel/paths.d.ts +25 -0
  252. package/dist/kernel/query/builder.d.ts +520 -0
  253. package/dist/kernel/query/index.d.ts +31 -0
  254. package/dist/kernel/query/join.d.ts +205 -0
  255. package/dist/kernel/query/live.d.ts +111 -0
  256. package/dist/kernel/query/predicate.d.ts +139 -0
  257. package/dist/kernel/query/scan-builder.d.ts +334 -0
  258. package/dist/kernel/refs.d.ts +205 -0
  259. package/dist/kernel/schema.d.ts +134 -0
  260. package/dist/kernel/sync-policy.d.ts +188 -0
  261. package/dist/kernel/types.d.ts +3147 -0
  262. package/dist/kernel/util/discriminant.d.ts +58 -0
  263. package/dist/kernel/util/index.d.ts +14 -0
  264. package/dist/kernel/util/sanitize-filename.d.ts +75 -0
  265. package/dist/kernel/validation.d.ts +130 -0
  266. package/dist/kernel/vault.d.ts +1723 -0
  267. package/dist/kernel/via/compose.d.ts +144 -0
  268. package/dist/kernel/via/dispatch.d.ts +185 -0
  269. package/dist/kernel/via/graph-wiring.d.ts +145 -0
  270. package/dist/kernel/via/graph.d.ts +165 -0
  271. package/dist/kernel/via/index.d.ts +200 -0
  272. package/dist/kernel/via/pipeline.d.ts +266 -0
  273. package/dist/kernel/via/reconcile.d.ts +153 -0
  274. package/dist/kernel/via/taint-binding.d.ts +66 -0
  275. package/dist/kernel/write-queue.d.ts +46 -0
  276. package/dist/lazy/index.js +12 -0
  277. package/dist/ledger-FU6GH5EH.js +42 -0
  278. package/dist/legacy/bundle.d.ts +30 -0
  279. package/dist/legacy/kernel.d.ts +33 -0
  280. package/dist/liberate-YUN7W5QG.js +24 -0
  281. package/dist/link-set-MNADSH5M.js +31 -0
  282. package/dist/materialized-views/index.js +20 -10
  283. package/dist/noydb-6JLBZU4U.js +67 -0
  284. package/dist/on/index.js +10 -4
  285. package/dist/overlay-views/index.js +4 -4
  286. package/dist/periods/index.js +21 -7
  287. package/dist/pod/index.js +12 -6
  288. package/dist/policy-JTFOPPUU.js +41 -0
  289. package/dist/port/as/index.d.ts +26 -0
  290. package/dist/port/at/index.d.ts +18 -0
  291. package/dist/port/by/default-provider.d.ts +9 -0
  292. package/dist/port/by/index.d.ts +17 -0
  293. package/dist/port/by/types.d.ts +86 -0
  294. package/dist/port/in/index.d.ts +21 -0
  295. package/dist/port/on/index.d.ts +27 -0
  296. package/dist/port/to/index.d.ts +19 -0
  297. package/dist/port/ui/index.d.ts +21 -0
  298. package/dist/port/with/blob-strategy.d.ts +81 -0
  299. package/dist/port/with/broker-strategy.d.ts +84 -0
  300. package/dist/port/with/capabilities.d.ts +31 -0
  301. package/dist/port/with/classified-marker.d.ts +9 -0
  302. package/dist/port/with/classified-strategy.d.ts +62 -0
  303. package/dist/port/with/computed-strategy.d.ts +19 -0
  304. package/dist/port/with/i18n-strategy.d.ts +175 -0
  305. package/dist/port/with/index.d.ts +18 -0
  306. package/dist/port/with/lazy-strategy.d.ts +48 -0
  307. package/dist/port/with/lookup-strategy.d.ts +128 -0
  308. package/dist/port/with/service-bus.d.ts +156 -0
  309. package/dist/port/with/team-strategy.d.ts +36 -0
  310. package/dist/port/with/write-hooks.d.ts +34 -0
  311. package/dist/portability/index.js +8 -8
  312. package/dist/post-register-HAWO3O7O.js +55 -0
  313. package/dist/post-register-HAWO3O7O.js.map +1 -0
  314. package/dist/public-envelope-NJVB7LPA.js +32 -0
  315. package/dist/purge-scope-FGNNLWHD.js +24 -0
  316. package/dist/purge-scope-FGNNLWHD.js.map +1 -0
  317. package/dist/query/index.js +9 -6
  318. package/dist/read-only-facade-CHCKSEPD.js +8 -0
  319. package/dist/register-VCKOBWKT.js +23 -0
  320. package/dist/registry-72UKJ2L4.js +9 -0
  321. package/dist/registry-BZFLJNEH.js +18 -0
  322. package/dist/registry-YJEYSYI5.js +19 -0
  323. package/dist/request-withdrawal-6MJRMFHF.js +31 -0
  324. package/dist/reveal-BOY7XYFH.js +38 -0
  325. package/dist/reveal-BOY7XYFH.js.map +1 -0
  326. package/dist/revoke-4KUNSVJC.js +24 -0
  327. package/dist/satellites/index.js +8 -0
  328. package/dist/sealed-record/index.js +13 -7
  329. package/dist/sealed-record/index.js.map +1 -1
  330. package/dist/seed-4RRXT42N.js +231 -0
  331. package/dist/seed-4RRXT42N.js.map +1 -0
  332. package/dist/session/index.js +10 -4
  333. package/dist/session/index.js.map +1 -1
  334. package/dist/shadow/index.js +2 -2
  335. package/dist/signer-DDDXP5JD.js +25 -0
  336. package/dist/signer-DDDXP5JD.js.map +1 -0
  337. package/dist/snapshots/index.js +11 -5
  338. package/dist/snapshots/index.js.map +1 -1
  339. package/dist/stale-NXPT56JA.js +14 -0
  340. package/dist/stale-NXPT56JA.js.map +1 -0
  341. package/dist/storage-IR6EEAV2.js +23 -0
  342. package/dist/storage-IR6EEAV2.js.map +1 -0
  343. package/dist/store-coordination-provider-HPYVFJCV.js +142 -0
  344. package/dist/sync/index.js +10 -4
  345. package/dist/sync/index.js.map +1 -1
  346. package/dist/team/index.js +25 -12
  347. package/dist/tiers/index.js +11 -5
  348. package/dist/to/index.js +1 -2
  349. package/dist/tx/index.js +3 -3
  350. package/dist/util/index.js +1 -1
  351. package/dist/verify-66RHOW7N.js +139 -0
  352. package/dist/verify-66RHOW7N.js.map +1 -0
  353. package/dist/via/blob/active.d.ts +34 -0
  354. package/dist/via/blob/binding.d.ts +86 -0
  355. package/dist/via/blob/index.d.ts +34 -0
  356. package/dist/via/classified/active.d.ts +3 -0
  357. package/dist/via/classified/binding.d.ts +83 -0
  358. package/dist/via/classified/config-drift.d.ts +34 -0
  359. package/dist/via/classified/descriptor.d.ts +66 -0
  360. package/dist/via/classified/errors.d.ts +19 -0
  361. package/dist/via/classified/guards.d.ts +23 -0
  362. package/dist/via/classified/index.d.ts +11 -0
  363. package/dist/via/classified/presets.d.ts +65 -0
  364. package/dist/via/classified/resolve.d.ts +9 -0
  365. package/dist/via/classified/strategy.d.ts +11 -0
  366. package/dist/via/classified/validators.d.ts +3 -0
  367. package/dist/via/classified/write.d.ts +4 -0
  368. package/dist/via/computed/binding.d.ts +34 -0
  369. package/dist/via/computed/descriptor.d.ts +35 -0
  370. package/dist/via/i18n/active.d.ts +28 -0
  371. package/dist/via/i18n/binding.d.ts +36 -0
  372. package/dist/via/i18n/core.d.ts +267 -0
  373. package/dist/via/i18n/densify.d.ts +24 -0
  374. package/dist/via/i18n/dictionary.d.ts +200 -0
  375. package/dist/via/i18n/index.d.ts +21 -0
  376. package/dist/via/i18n/policy.d.ts +44 -0
  377. package/dist/via/i18n/script.d.ts +26 -0
  378. package/dist/via/i18n/strategy.d.ts +13 -0
  379. package/dist/via/lookup/active.d.ts +19 -0
  380. package/dist/via/lookup/binding.d.ts +99 -0
  381. package/dist/via/lookup/descriptor.d.ts +123 -0
  382. package/dist/via/lookup/handle.d.ts +220 -0
  383. package/dist/via/lookup/index.d.ts +17 -0
  384. package/dist/via/lookup/registry.d.ts +219 -0
  385. package/dist/via/lookup/snapshot.d.ts +67 -0
  386. package/dist/via/money/arith.d.ts +68 -0
  387. package/dist/via/money/binding.d.ts +21 -0
  388. package/dist/via/money/branded.d.ts +61 -0
  389. package/dist/via/money/descriptor.d.ts +73 -0
  390. package/dist/via/money/fixed-point.d.ts +51 -0
  391. package/dist/via/money/index.d.ts +15 -0
  392. package/dist/via/money/iso4217.d.ts +6 -0
  393. package/dist/via/money/money-reducer.d.ts +33 -0
  394. package/dist/via/money/normalize.d.ts +105 -0
  395. package/dist/via/money/paths.d.ts +61 -0
  396. package/dist/via/money/where.d.ts +106 -0
  397. package/dist/walk-2RWEOCAS.js +241 -0
  398. package/dist/walk-2RWEOCAS.js.map +1 -0
  399. package/dist/with/index.js +12 -6
  400. package/dist/with-audit/attestation/active.d.ts +10 -0
  401. package/dist/with-audit/attestation/index.d.ts +16 -0
  402. package/dist/with-audit/attestation/issue.d.ts +29 -0
  403. package/dist/with-audit/attestation/revoke.d.ts +15 -0
  404. package/dist/with-audit/attestation/signer.d.ts +33 -0
  405. package/dist/with-audit/attestation/strategy.d.ts +44 -0
  406. package/dist/with-audit/attestation/vault-facade.d.ts +62 -0
  407. package/dist/with-audit/consent/active.d.ts +14 -0
  408. package/dist/with-audit/consent/consent.d.ts +114 -0
  409. package/dist/with-audit/consent/index.d.ts +14 -0
  410. package/dist/with-audit/consent/strategy.d.ts +36 -0
  411. package/dist/with-audit/forget/active.d.ts +31 -0
  412. package/dist/with-audit/forget/index.d.ts +28 -0
  413. package/dist/with-audit/forget/purge-scope.d.ts +54 -0
  414. package/dist/with-audit/forget/strategy.d.ts +177 -0
  415. package/dist/with-audit/forget/subject-index.d.ts +83 -0
  416. package/dist/with-audit/guards/executor.d.ts +26 -0
  417. package/dist/with-audit/guards/immutable-guard.d.ts +63 -0
  418. package/dist/with-audit/guards/index.d.ts +10 -0
  419. package/dist/with-audit/guards/read-only-facade.d.ts +31 -0
  420. package/dist/with-audit/guards/registry.d.ts +83 -0
  421. package/dist/with-audit/guards/transition-guard.d.ts +82 -0
  422. package/dist/with-audit/guards/types.d.ts +134 -0
  423. package/dist/with-audit/guards/with-guard.d.ts +15 -0
  424. package/dist/with-audit/periods/active.d.ts +11 -0
  425. package/dist/with-audit/periods/index.d.ts +18 -0
  426. package/dist/with-audit/periods/periods.d.ts +417 -0
  427. package/dist/with-audit/periods/strategy.d.ts +32 -0
  428. package/dist/with-audit/periods/vault-facade.d.ts +95 -0
  429. package/dist/with-audit/portability/active.d.ts +11 -0
  430. package/dist/with-audit/portability/export-accessible.d.ts +46 -0
  431. package/dist/with-audit/portability/index.d.ts +18 -0
  432. package/dist/with-audit/portability/request-withdrawal.d.ts +85 -0
  433. package/dist/with-audit/portability/strategy.d.ts +31 -0
  434. package/dist/with-audit/portability/withdraw-accessible.d.ts +82 -0
  435. package/dist/with-audit/sealed-record/active.d.ts +9 -0
  436. package/dist/with-audit/sealed-record/index.d.ts +55 -0
  437. package/dist/with-audit/sealed-record/strategy.d.ts +34 -0
  438. package/dist/with-audit/sealed-record/types.d.ts +27 -0
  439. package/dist/with-audit/tiers/active.d.ts +9 -0
  440. package/dist/with-audit/tiers/index.d.ts +122 -0
  441. package/dist/with-audit/tiers/strategy.d.ts +35 -0
  442. package/dist/with-cargo/active.d.ts +11 -0
  443. package/dist/with-cargo/adopt-partition.d.ts +81 -0
  444. package/dist/with-cargo/decrypt-partition.d.ts +19 -0
  445. package/dist/with-cargo/describe-extraction.d.ts +33 -0
  446. package/dist/with-cargo/extract-partition.d.ts +147 -0
  447. package/dist/with-cargo/index.d.ts +33 -0
  448. package/dist/with-cargo/strategy.d.ts +30 -0
  449. package/dist/with-cargo/vault-diff.d.ts +144 -0
  450. package/dist/with-cargo/walk-closure.d.ts +38 -0
  451. package/dist/with-commit/crdt/active.d.ts +25 -0
  452. package/dist/with-commit/crdt/crdt.d.ts +42 -0
  453. package/dist/with-commit/crdt/index.d.ts +16 -0
  454. package/dist/with-commit/crdt/strategy.d.ts +25 -0
  455. package/dist/with-commit/history/active.d.ts +40 -0
  456. package/dist/with-commit/history/diff.d.ts +23 -0
  457. package/dist/with-commit/history/history.d.ts +27 -0
  458. package/dist/with-commit/history/index.d.ts +30 -0
  459. package/dist/with-commit/history/ledger/constants.d.ts +37 -0
  460. package/dist/with-commit/history/ledger/entry.d.ts +195 -0
  461. package/dist/with-commit/history/ledger/hash.d.ts +30 -0
  462. package/dist/with-commit/history/ledger/index.d.ts +19 -0
  463. package/dist/with-commit/history/ledger/patch.d.ts +99 -0
  464. package/dist/with-commit/history/ledger/store.d.ts +335 -0
  465. package/dist/with-commit/history/strategy.d.ts +126 -0
  466. package/dist/with-commit/history/time-machine.d.ts +179 -0
  467. package/dist/with-commit/numbering/descriptor.d.ts +27 -0
  468. package/dist/with-commit/numbering/index.d.ts +69 -0
  469. package/dist/with-commit/sequence/active.d.ts +10 -0
  470. package/dist/with-commit/sequence/index.d.ts +150 -0
  471. package/dist/with-commit/sequence/strategy.d.ts +26 -0
  472. package/dist/with-commit/tx/active.d.ts +27 -0
  473. package/dist/with-commit/tx/dry-run.d.ts +29 -0
  474. package/dist/with-commit/tx/elevated-handle.d.ts +58 -0
  475. package/dist/with-commit/tx/index.d.ts +13 -0
  476. package/dist/with-commit/tx/invariants.d.ts +68 -0
  477. package/dist/with-commit/tx/strategy.d.ts +23 -0
  478. package/dist/with-commit/tx/transaction.d.ts +207 -0
  479. package/dist/with-fork/archive/engine.d.ts +71 -0
  480. package/dist/with-fork/archive/index.d.ts +23 -0
  481. package/dist/with-fork/shadow/active.d.ts +6 -0
  482. package/dist/with-fork/shadow/index.d.ts +14 -0
  483. package/dist/with-fork/shadow/strategy.d.ts +28 -0
  484. package/dist/with-fork/shadow/vault-frame.d.ts +93 -0
  485. package/dist/with-fork/snapshots/active.d.ts +20 -0
  486. package/dist/with-fork/snapshots/engine.d.ts +36 -0
  487. package/dist/with-fork/snapshots/index.d.ts +5 -0
  488. package/dist/with-fork/snapshots/noydb-facade.d.ts +64 -0
  489. package/dist/with-fork/snapshots/policy.d.ts +23 -0
  490. package/dist/with-fork/snapshots/scheduler.d.ts +34 -0
  491. package/dist/with-fork/snapshots/strategy.d.ts +48 -0
  492. package/dist/with-formula/computed/index.d.ts +48 -0
  493. package/dist/with-formula/computed/lazy.d.ts +13 -0
  494. package/dist/with-formula/derivations/executor.d.ts +61 -0
  495. package/dist/with-formula/derivations/fanout-sidecar.d.ts +75 -0
  496. package/dist/with-formula/derivations/index.d.ts +6 -0
  497. package/dist/with-formula/derivations/registry.d.ts +67 -0
  498. package/dist/with-formula/derivations/stale.d.ts +39 -0
  499. package/dist/with-formula/derivations/strategy-hash.d.ts +1 -0
  500. package/dist/with-formula/derivations/types.d.ts +248 -0
  501. package/dist/with-formula/derivations/with-derivation.d.ts +10 -0
  502. package/dist/with-formula/derivations/with-rollup.d.ts +34 -0
  503. package/dist/with-formula/materialized-views/dependency-analyzer.d.ts +58 -0
  504. package/dist/with-formula/materialized-views/executor.d.ts +71 -0
  505. package/dist/with-formula/materialized-views/index.d.ts +11 -0
  506. package/dist/with-formula/materialized-views/query-hash.d.ts +23 -0
  507. package/dist/with-formula/materialized-views/registry.d.ts +99 -0
  508. package/dist/with-formula/materialized-views/stale.d.ts +62 -0
  509. package/dist/with-formula/materialized-views/types.d.ts +318 -0
  510. package/dist/with-formula/materialized-views/with-materialized-view.d.ts +24 -0
  511. package/dist/with-formula/overlay-views/index.d.ts +5 -0
  512. package/dist/with-formula/overlay-views/registry.d.ts +42 -0
  513. package/dist/with-formula/overlay-views/types.d.ts +97 -0
  514. package/dist/with-formula/overlay-views/virtual-collection.d.ts +90 -0
  515. package/dist/with-formula/overlay-views/with-overlayed-view.d.ts +9 -0
  516. package/dist/with-lookup/aggregate/active.d.ts +33 -0
  517. package/dist/with-lookup/aggregate/aggregation.d.ts +166 -0
  518. package/dist/with-lookup/aggregate/canonical-key.d.ts +16 -0
  519. package/dist/with-lookup/aggregate/groupby.d.ts +280 -0
  520. package/dist/with-lookup/aggregate/index.d.ts +23 -0
  521. package/dist/with-lookup/aggregate/reducers.d.ts +257 -0
  522. package/dist/with-lookup/aggregate/strategy.d.ts +59 -0
  523. package/dist/with-lookup/embeddings/cosine.d.ts +2 -0
  524. package/dist/with-lookup/embeddings/descriptor.d.ts +8 -0
  525. package/dist/with-lookup/embeddings/index.d.ts +3 -0
  526. package/dist/with-lookup/embeddings/vector-set.d.ts +19 -0
  527. package/dist/with-lookup/indexing/active.d.ts +30 -0
  528. package/dist/with-lookup/indexing/collection-facade.d.ts +120 -0
  529. package/dist/with-lookup/indexing/eager-indexes.d.ts +122 -0
  530. package/dist/with-lookup/indexing/index.d.ts +27 -0
  531. package/dist/with-lookup/indexing/lazy-builder.d.ts +69 -0
  532. package/dist/with-lookup/indexing/persisted-indexes.d.ts +186 -0
  533. package/dist/with-lookup/indexing/strategy.d.ts +56 -0
  534. package/dist/with-lookup/indexing/unique-constraints.d.ts +74 -0
  535. package/dist/with-lookup/search/active.d.ts +10 -0
  536. package/dist/with-lookup/search/build-docs.d.ts +15 -0
  537. package/dist/with-lookup/search/collection-facade.d.ts +123 -0
  538. package/dist/with-lookup/search/fuse.d.ts +22 -0
  539. package/dist/with-lookup/search/index-store.d.ts +19 -0
  540. package/dist/with-lookup/search/index.d.ts +19 -0
  541. package/dist/with-lookup/search/inverted-index.d.ts +47 -0
  542. package/dist/with-lookup/search/persisted-index-store.d.ts +41 -0
  543. package/dist/with-lookup/search/retrieve-types.d.ts +29 -0
  544. package/dist/with-lookup/search/scan.d.ts +28 -0
  545. package/dist/with-lookup/search/segment.d.ts +15 -0
  546. package/dist/with-lookup/search/serialize.d.ts +4 -0
  547. package/dist/with-lookup/search/snippet.d.ts +5 -0
  548. package/dist/with-lookup/search/strategy.d.ts +37 -0
  549. package/dist/with-lookup/search/tokenize.d.ts +12 -0
  550. package/dist/with-party/auth-introspection/index.d.ts +44 -0
  551. package/dist/with-party/broker/active.d.ts +23 -0
  552. package/dist/with-party/broker/index.d.ts +28 -0
  553. package/dist/with-party/broker/seed.d.ts +77 -0
  554. package/dist/with-party/custody/active.d.ts +10 -0
  555. package/dist/with-party/custody/index.d.ts +69 -0
  556. package/dist/with-party/custody/liberate.d.ts +64 -0
  557. package/dist/with-party/custody/strategy.d.ts +48 -0
  558. package/dist/with-party/directory/index.d.ts +11 -0
  559. package/dist/with-party/directory/public-envelope/index.d.ts +12 -0
  560. package/dist/with-party/directory/public-envelope/schema.d.ts +24 -0
  561. package/dist/with-party/directory/public-envelope/storage.d.ts +59 -0
  562. package/dist/with-party/directory/public-envelope/types.d.ts +80 -0
  563. package/dist/with-party/directory/storage.d.ts +33 -0
  564. package/dist/with-party/directory/types.d.ts +43 -0
  565. package/dist/with-party/directory/user-envelope/api.d.ts +201 -0
  566. package/dist/with-party/directory/user-envelope/index.d.ts +12 -0
  567. package/dist/with-party/directory/user-envelope/storage.d.ts +54 -0
  568. package/dist/with-party/directory/visibility.d.ts +47 -0
  569. package/dist/with-party/policy/engine.d.ts +60 -0
  570. package/dist/with-party/policy/index.d.ts +15 -0
  571. package/dist/with-party/policy/noydb-facade.d.ts +39 -0
  572. package/dist/with-party/policy/presets.d.ts +38 -0
  573. package/dist/with-party/policy/storage.d.ts +31 -0
  574. package/dist/with-party/session/active.d.ts +34 -0
  575. package/dist/with-party/session/dev-unlock.d.ts +128 -0
  576. package/dist/with-party/session/index.d.ts +23 -0
  577. package/dist/with-party/session/session-policy.d.ts +92 -0
  578. package/dist/with-party/session/session.d.ts +131 -0
  579. package/dist/with-party/session/strategy.d.ts +42 -0
  580. package/dist/with-party/session/unlock-state.d.ts +47 -0
  581. package/dist/with-party/sync/index.d.ts +31 -0
  582. package/dist/with-party/tab-coordination.d.ts +73 -0
  583. package/dist/with-party/tab-write-relay.d.ts +39 -0
  584. package/dist/with-party/team/active.d.ts +13 -0
  585. package/dist/with-party/team/authenticators.d.ts +95 -0
  586. package/dist/with-party/team/deed.d.ts +97 -0
  587. package/dist/with-party/team/delegation.d.ts +88 -0
  588. package/dist/with-party/team/index.d.ts +38 -0
  589. package/dist/with-party/team/keyring.d.ts +318 -0
  590. package/dist/with-party/team/magic-link-grant.d.ts +152 -0
  591. package/dist/with-party/team/managed-passphrase.d.ts +280 -0
  592. package/dist/with-party/team/noydb-facade.d.ts +484 -0
  593. package/dist/with-party/team/peer-recover.d.ts +81 -0
  594. package/dist/with-party/team/presence.d.ts +81 -0
  595. package/dist/with-party/team/recovery.d.ts +191 -0
  596. package/dist/with-party/team/reserved-secret-collections.d.ts +41 -0
  597. package/dist/with-party/team/rotate-recover.d.ts +275 -0
  598. package/dist/with-party/team/shamir-recovery-provider.d.ts +15 -0
  599. package/dist/with-party/team/strategy.d.ts +9 -0
  600. package/dist/with-party/team/sync-active.d.ts +33 -0
  601. package/dist/with-party/team/sync-credentials.d.ts +113 -0
  602. package/dist/with-party/team/sync-strategy.d.ts +67 -0
  603. package/dist/with-party/team/sync-transaction.d.ts +39 -0
  604. package/dist/with-party/team/sync.d.ts +165 -0
  605. package/dist/with-party/team/tiers.d.ts +39 -0
  606. package/dist/with-party/team/wrapped-deks.d.ts +86 -0
  607. package/dist/with-pod/backup.d.ts +74 -0
  608. package/dist/with-pod/bundle.d.ts +414 -0
  609. package/dist/with-pod/format.d.ts +203 -0
  610. package/dist/with-pod/index.d.ts +20 -0
  611. package/dist/with-pod/pod-store.d.ts +54 -0
  612. package/dist/with-pod/ulid.d.ts +64 -0
  613. package/dist/with-shape/blobs/blob-compaction.d.ts +170 -0
  614. package/dist/with-shape/blobs/blob-set.d.ts +342 -0
  615. package/dist/with-shape/blobs/export-blobs.d.ts +110 -0
  616. package/dist/with-shape/blobs/import-external.d.ts +50 -0
  617. package/dist/with-shape/blobs/mime-magic.d.ts +48 -0
  618. package/dist/with-shape/blobs/object-projection.d.ts +70 -0
  619. package/dist/with-shape/introspection/describe.d.ts +237 -0
  620. package/dist/with-shape/introspection/field-meta.d.ts +61 -0
  621. package/dist/with-shape/introspection/fields.d.ts +14 -0
  622. package/dist/with-shape/introspection/index.d.ts +12 -0
  623. package/dist/with-shape/introspection/json-schema.d.ts +13 -0
  624. package/dist/with-shape/introspection/meta.d.ts +22 -0
  625. package/dist/with-shape/introspection/projection.d.ts +13 -0
  626. package/dist/with-shape/introspection/types.d.ts +154 -0
  627. package/dist/with-shape/introspection/walk.d.ts +50 -0
  628. package/dist/with-shape/links/lazy-handle.d.ts +36 -0
  629. package/dist/with-shape/links/link-set.d.ts +67 -0
  630. package/dist/with-shape/links/names.d.ts +65 -0
  631. package/dist/with-shape/links/vault-facade.d.ts +211 -0
  632. package/dist/with-shape/persisted-schemas/canonicalize.d.ts +11 -0
  633. package/dist/with-shape/persisted-schemas/derive.d.ts +29 -0
  634. package/dist/with-shape/persisted-schemas/index.d.ts +21 -0
  635. package/dist/with-shape/persisted-schemas/register.d.ts +66 -0
  636. package/dist/with-shape/persisted-schemas/storage.d.ts +61 -0
  637. package/dist/with-shape/persisted-schemas/types.d.ts +54 -0
  638. package/dist/with-shape/satellites/dead-filter.d.ts +21 -0
  639. package/dist/with-shape/satellites/declare.d.ts +60 -0
  640. package/dist/with-shape/satellites/existence.d.ts +5 -0
  641. package/dist/with-shape/satellites/fanout.d.ts +37 -0
  642. package/dist/with-shape/satellites/forget.d.ts +47 -0
  643. package/dist/with-shape/satellites/index.d.ts +3 -0
  644. package/dist/with-shape/satellites/joined.d.ts +19 -0
  645. package/dist/with-shape/satellites/marker.d.ts +10 -0
  646. package/dist/with-shape/satellites/post-register.d.ts +6 -0
  647. package/dist/with-shape/satellites/proxy.d.ts +37 -0
  648. package/dist/with-shape/satellites/raw-target.d.ts +14 -0
  649. package/dist/with-shape/satellites/registry.d.ts +19 -0
  650. package/dist/with-shape/satellites/types.d.ts +26 -0
  651. package/dist/with-shape/satellites/validate.d.ts +17 -0
  652. package/dist/with-shape/schema-update/client-registry.d.ts +35 -0
  653. package/dist/with-shape/schema-update/cutover.d.ts +5 -0
  654. package/dist/with-shape/schema-update/delta.d.ts +2 -0
  655. package/dist/with-shape/schema-update/dispatch.d.ts +3 -0
  656. package/dist/with-shape/schema-update/fence-controller.d.ts +62 -0
  657. package/dist/with-shape/schema-update/fence-watcher.d.ts +37 -0
  658. package/dist/with-shape/schema-update/fence.d.ts +15 -0
  659. package/dist/with-shape/schema-update/gate.d.ts +16 -0
  660. package/dist/with-shape/schema-update/index.d.ts +6 -0
  661. package/dist/with-shape/schema-update/store-coordination-provider.d.ts +29 -0
  662. package/dist/with-shape/schema-update/strategies.d.ts +12 -0
  663. package/dist/with-shape/schema-update/types.d.ts +53 -0
  664. package/dist/with-store/index.d.ts +15 -0
  665. package/dist/with-store/lazy/active.d.ts +12 -0
  666. package/dist/with-store/lazy/index.d.ts +14 -0
  667. package/dist/with-store/lazy/strategy.d.ts +9 -0
  668. package/dist/with-store/route-store.d.ts +259 -0
  669. package/dist/with-store/store-middleware.d.ts +189 -0
  670. package/dist/withdraw-accessible-CLMZEHQT.js +28 -0
  671. package/dist/withdraw-accessible-CLMZEHQT.js.map +1 -0
  672. package/package.json +56 -52
  673. package/dist/adapter/index.d.ts +0 -5
  674. package/dist/adapter/index.js +0 -15
  675. package/dist/aggregate/index.d.ts +0 -42
  676. package/dist/api-RW3KP7WU.js +0 -14
  677. package/dist/as/index.d.ts +0 -7
  678. package/dist/at/index.d.ts +0 -5
  679. package/dist/attestation/index.d.ts +0 -20
  680. package/dist/backup-XV3IOEGB.js +0 -217
  681. package/dist/backup-XV3IOEGB.js.map +0 -1
  682. package/dist/blobs/index.d.ts +0 -44
  683. package/dist/bundle/index.d.ts +0 -122
  684. package/dist/bundle-CH-H06dp.d.ts +0 -548
  685. package/dist/by/index.d.ts +0 -1
  686. package/dist/cargo/index.d.ts +0 -9
  687. package/dist/chunk-26LGBE4T.js +0 -42
  688. package/dist/chunk-26LGBE4T.js.map +0 -1
  689. package/dist/chunk-2P2HZEXU.js +0 -233
  690. package/dist/chunk-2P2HZEXU.js.map +0 -1
  691. package/dist/chunk-3YFXJ3ZP.js +0 -97
  692. package/dist/chunk-5LUY7UTV.js +0 -380
  693. package/dist/chunk-5LUY7UTV.js.map +0 -1
  694. package/dist/chunk-5N6CZTCY.js +0 -367
  695. package/dist/chunk-5O3AOPDT.js +0 -992
  696. package/dist/chunk-5O3AOPDT.js.map +0 -1
  697. package/dist/chunk-5R3ERCDH.js +0 -239
  698. package/dist/chunk-5R3ERCDH.js.map +0 -1
  699. package/dist/chunk-5R5JW2JT.js +0 -12502
  700. package/dist/chunk-5R5JW2JT.js.map +0 -1
  701. package/dist/chunk-5TDJ56JE.js +0 -32
  702. package/dist/chunk-5TDJ56JE.js.map +0 -1
  703. package/dist/chunk-62QYRORB.js +0 -320
  704. package/dist/chunk-62QYRORB.js.map +0 -1
  705. package/dist/chunk-6S7T6WC4.js +0 -111
  706. package/dist/chunk-6S7T6WC4.js.map +0 -1
  707. package/dist/chunk-76722EBH.js +0 -451
  708. package/dist/chunk-76722EBH.js.map +0 -1
  709. package/dist/chunk-AIWULCUO.js +0 -68
  710. package/dist/chunk-AIWULCUO.js.map +0 -1
  711. package/dist/chunk-AQTBSL7R.js +0 -181
  712. package/dist/chunk-AQTBSL7R.js.map +0 -1
  713. package/dist/chunk-AXRXJTE2.js +0 -59
  714. package/dist/chunk-AZAOEIKW.js +0 -155
  715. package/dist/chunk-BG3SPSR4.js +0 -53
  716. package/dist/chunk-BG3SPSR4.js.map +0 -1
  717. package/dist/chunk-BGIZAFY7.js +0 -1
  718. package/dist/chunk-CMGR4ZEW.js +0 -209
  719. package/dist/chunk-CWPPNPOH.js +0 -23
  720. package/dist/chunk-DFEMTNPJ.js +0 -1219
  721. package/dist/chunk-DFEMTNPJ.js.map +0 -1
  722. package/dist/chunk-DGDI2D4M.js +0 -79
  723. package/dist/chunk-DGDI2D4M.js.map +0 -1
  724. package/dist/chunk-EIZUR2XW.js +0 -36
  725. package/dist/chunk-FISN7WE4.js +0 -798
  726. package/dist/chunk-FISN7WE4.js.map +0 -1
  727. package/dist/chunk-GYGWYIOZ.js +0 -200
  728. package/dist/chunk-GYGWYIOZ.js.map +0 -1
  729. package/dist/chunk-HCIPRAGS.js +0 -45
  730. package/dist/chunk-I2NOIW44.js +0 -83
  731. package/dist/chunk-I2NOIW44.js.map +0 -1
  732. package/dist/chunk-I3TIKTJO.js +0 -132
  733. package/dist/chunk-I3TIKTJO.js.map +0 -1
  734. package/dist/chunk-IAGBDSCS.js +0 -40
  735. package/dist/chunk-IELYAOGG.js +0 -78
  736. package/dist/chunk-IELYAOGG.js.map +0 -1
  737. package/dist/chunk-IGUYVGGI.js +0 -205
  738. package/dist/chunk-IO6GRPT6.js +0 -34
  739. package/dist/chunk-IPB7FTQX.js +0 -273
  740. package/dist/chunk-IPB7FTQX.js.map +0 -1
  741. package/dist/chunk-ITNUCOXM.js +0 -148
  742. package/dist/chunk-ITNUCOXM.js.map +0 -1
  743. package/dist/chunk-IUEN57TV.js +0 -722
  744. package/dist/chunk-IUEN57TV.js.map +0 -1
  745. package/dist/chunk-JNUWZ6D3.js +0 -57
  746. package/dist/chunk-JNUWZ6D3.js.map +0 -1
  747. package/dist/chunk-K2WCO3NX.js +0 -1
  748. package/dist/chunk-KVOXU4T5.js +0 -30
  749. package/dist/chunk-KXGNJJXB.js +0 -135
  750. package/dist/chunk-LFLXAY2W.js +0 -414
  751. package/dist/chunk-LFLXAY2W.js.map +0 -1
  752. package/dist/chunk-LMTH2RM6.js +0 -129
  753. package/dist/chunk-LV7M27WM.js +0 -702
  754. package/dist/chunk-LV7M27WM.js.map +0 -1
  755. package/dist/chunk-LXQT4WMP.js +0 -684
  756. package/dist/chunk-LXQT4WMP.js.map +0 -1
  757. package/dist/chunk-M2YKN37S.js +0 -524
  758. package/dist/chunk-M2YKN37S.js.map +0 -1
  759. package/dist/chunk-M6OST55S.js +0 -14
  760. package/dist/chunk-MD3Y6J3L.js +0 -278
  761. package/dist/chunk-MD3Y6J3L.js.map +0 -1
  762. package/dist/chunk-MTMJVJ5W.js +0 -73
  763. package/dist/chunk-MTMJVJ5W.js.map +0 -1
  764. package/dist/chunk-NF5JWERG.js +0 -74
  765. package/dist/chunk-PKHL44ER.js +0 -124
  766. package/dist/chunk-PSMV73A5.js +0 -117
  767. package/dist/chunk-Q7SS3IME.js +0 -120
  768. package/dist/chunk-Q7SS3IME.js.map +0 -1
  769. package/dist/chunk-QHJW5EXU.js +0 -54
  770. package/dist/chunk-RUEKROOS.js +0 -80
  771. package/dist/chunk-RUIMKQTA.js +0 -23
  772. package/dist/chunk-RUIMKQTA.js.map +0 -1
  773. package/dist/chunk-SKF73JOP.js +0 -355
  774. package/dist/chunk-SM3AVUHC.js +0 -42
  775. package/dist/chunk-SMXWYP24.js +0 -155
  776. package/dist/chunk-SRB2XEWB.js +0 -148
  777. package/dist/chunk-SRB2XEWB.js.map +0 -1
  778. package/dist/chunk-TA66UMI4.js +0 -123
  779. package/dist/chunk-TEILUWOI.js +0 -664
  780. package/dist/chunk-TEILUWOI.js.map +0 -1
  781. package/dist/chunk-TJYQIGAP.js +0 -82
  782. package/dist/chunk-TJYQIGAP.js.map +0 -1
  783. package/dist/chunk-UAG5KWVA.js +0 -367
  784. package/dist/chunk-UDRIWL7A.js +0 -382
  785. package/dist/chunk-UIU2THRG.js +0 -1937
  786. package/dist/chunk-UIU2THRG.js.map +0 -1
  787. package/dist/chunk-UPJNJGGA.js +0 -572
  788. package/dist/chunk-UPJNJGGA.js.map +0 -1
  789. package/dist/chunk-UV5MFVO3.js +0 -21
  790. package/dist/chunk-V7RWQRG7.js +0 -430
  791. package/dist/chunk-VCTFO5CO.js +0 -71
  792. package/dist/chunk-VFQGRQIH.js +0 -97
  793. package/dist/chunk-VFQGRQIH.js.map +0 -1
  794. package/dist/chunk-WWGT2MDV.js +0 -762
  795. package/dist/chunk-WWGT2MDV.js.map +0 -1
  796. package/dist/chunk-WYSO2NIH.js +0 -30
  797. package/dist/chunk-XXYIOFUB.js +0 -164
  798. package/dist/chunk-Y22T3KQE.js +0 -261
  799. package/dist/chunk-Y22T3KQE.js.map +0 -1
  800. package/dist/chunk-ZCGAHGUS.js +0 -230
  801. package/dist/chunk-ZYUC53LT.js +0 -1370
  802. package/dist/chunk-ZYUC53LT.js.map +0 -1
  803. package/dist/collection-facade-GQAOGJP2.js +0 -33
  804. package/dist/consent/index.d.ts +0 -23
  805. package/dist/crdt/index.d.ts +0 -34
  806. package/dist/decrypt-partition-IHtxEnTi.d.ts +0 -21
  807. package/dist/delegation-UL5HKLER.js +0 -19
  808. package/dist/derivations/index.d.ts +0 -70
  809. package/dist/describe/index.d.ts +0 -1
  810. package/dist/describe/index.js +0 -1
  811. package/dist/describe-aBkJR2sd.d.ts +0 -131
  812. package/dist/dev-unlock-C9Ro3v_O.d.ts +0 -263
  813. package/dist/discriminant-BN9REW3o.d.ts +0 -60
  814. package/dist/enclave-UL5LW66V.js +0 -88
  815. package/dist/executor-2FWQRLMG.js +0 -15
  816. package/dist/executor-QZ7BXICW.js +0 -9
  817. package/dist/executor-Z5ZLJVTV.js +0 -9
  818. package/dist/export-accessible-KRV5W4GH.js +0 -17
  819. package/dist/extract-partition-GLKBOXFQ.js +0 -30
  820. package/dist/fanout-sidecar-GF3DJ6KR.js +0 -71
  821. package/dist/fanout-sidecar-GF3DJ6KR.js.map +0 -1
  822. package/dist/forget/index.d.ts +0 -36
  823. package/dist/guards/index.d.ts +0 -35
  824. package/dist/hash-Cp5uwiox.d.ts +0 -67
  825. package/dist/history/index.d.ts +0 -61
  826. package/dist/i18n/index.d.ts +0 -37
  827. package/dist/in/index.d.ts +0 -5
  828. package/dist/index-B9QdHytu.d.ts +0 -123
  829. package/dist/index-BF9_96A5.d.ts +0 -123
  830. package/dist/index-BzUo1B6n.d.ts +0 -20730
  831. package/dist/indexing/index.d.ts +0 -39
  832. package/dist/issue-Y6UVIR43.js +0 -13
  833. package/dist/kernel/index.d.ts +0 -32
  834. package/dist/kernel/index.js +0 -53
  835. package/dist/ledger-RYI35CDS.js +0 -36
  836. package/dist/liberate-CRPZEV7O.js +0 -18
  837. package/dist/materialized-views/index.d.ts +0 -173
  838. package/dist/mime-magic-CGhw37_E.d.ts +0 -103
  839. package/dist/noydb-367AM4HT.js +0 -50
  840. package/dist/on/index.d.ts +0 -5
  841. package/dist/overlay-views/index.d.ts +0 -98
  842. package/dist/periods/index.d.ts +0 -20
  843. package/dist/pod/index.d.ts +0 -63
  844. package/dist/policy-IXK4FVXP.js +0 -41
  845. package/dist/portability/index.d.ts +0 -20
  846. package/dist/public-envelope-JHDQCPSX.js +0 -32
  847. package/dist/query/index.d.ts +0 -5
  848. package/dist/read-only-facade-5ADRJVTM.js +0 -8
  849. package/dist/registry-45RJNWGU.js +0 -9
  850. package/dist/registry-5GRV5VXI.js +0 -13
  851. package/dist/registry-WEUCHBO4.js +0 -11
  852. package/dist/request-withdrawal-GBPH2FDY.js +0 -25
  853. package/dist/revoke-TUFRGI6S.js +0 -18
  854. package/dist/sealed-record/index.d.ts +0 -69
  855. package/dist/session/index.d.ts +0 -44
  856. package/dist/shadow/index.d.ts +0 -15
  857. package/dist/signer-PNKTBVF7.js +0 -19
  858. package/dist/snapshots/index.d.ts +0 -26
  859. package/dist/stale-3JWHNDIY.js +0 -14
  860. package/dist/store-coordination-provider-3I7XWZZK.js +0 -142
  861. package/dist/subject-index-O75wKshW.d.ts +0 -362
  862. package/dist/sync/index.d.ts +0 -41
  863. package/dist/team/index.d.ts +0 -116
  864. package/dist/tiers/index.d.ts +0 -5
  865. package/dist/to/index.d.ts +0 -5
  866. package/dist/transition-guard-C7ol6oPw.d.ts +0 -165
  867. package/dist/tx/index.d.ts +0 -35
  868. package/dist/ui/index.d.ts +0 -1
  869. package/dist/ulid-DRH25k3y.d.ts +0 -66
  870. package/dist/util/index.d.ts +0 -79
  871. package/dist/vault-diff-B5fYNBL7.d.ts +0 -147
  872. package/dist/with/index.d.ts +0 -38
  873. package/dist/with-materialized-view-6p0Fk8bL.d.ts +0 -27
  874. package/dist/with-overlayed-view-BJ6mXGMd.d.ts +0 -12
  875. package/dist/with-rollup-BvQo3ROo.d.ts +0 -47
  876. package/dist/withdraw-accessible-FFS46EOD.js +0 -22
  877. /package/dist/{adapter/index.js.map → api-YGMINAET.js.map} +0 -0
  878. /package/dist/{chunk-V7RWQRG7.js.map → chunk-3CNQ7FQ3.js.map} +0 -0
  879. /package/dist/{chunk-NF5JWERG.js.map → chunk-3MSQLQNZ.js.map} +0 -0
  880. /package/dist/{chunk-IO6GRPT6.js.map → chunk-4R4Q64W5.js.map} +0 -0
  881. /package/dist/{chunk-SMXWYP24.js.map → chunk-5XIPOCQC.js.map} +0 -0
  882. /package/dist/{chunk-IGUYVGGI.js.map → chunk-6QILBDZU.js.map} +0 -0
  883. /package/dist/{chunk-AZAOEIKW.js.map → chunk-7E67FJ33.js.map} +0 -0
  884. /package/dist/{chunk-PSMV73A5.js.map → chunk-7NS43EXZ.js.map} +0 -0
  885. /package/dist/{chunk-CMGR4ZEW.js.map → chunk-A2Y6YFVN.js.map} +0 -0
  886. /package/dist/{chunk-HCIPRAGS.js.map → chunk-BCYQA5BK.js.map} +0 -0
  887. /package/dist/{chunk-LMTH2RM6.js.map → chunk-CB25ONKC.js.map} +0 -0
  888. /package/dist/{chunk-UV5MFVO3.js.map → chunk-CIKY6I4W.js.map} +0 -0
  889. /package/dist/{chunk-QHJW5EXU.js.map → chunk-D26JB3LZ.js.map} +0 -0
  890. /package/dist/{chunk-SM3AVUHC.js.map → chunk-DIRRS7WP.js.map} +0 -0
  891. /package/dist/{chunk-SKF73JOP.js.map → chunk-H44ZE4IE.js.map} +0 -0
  892. /package/dist/{chunk-UDRIWL7A.js.map → chunk-HFJIGWJC.js.map} +0 -0
  893. /package/dist/{chunk-ZCGAHGUS.js.map → chunk-KPGX66PM.js.map} +0 -0
  894. /package/dist/{chunk-5N6CZTCY.js.map → chunk-MCEKIAO4.js.map} +0 -0
  895. /package/dist/{chunk-CWPPNPOH.js.map → chunk-O2DYPAZY.js.map} +0 -0
  896. /package/dist/{chunk-KVOXU4T5.js.map → chunk-ODJWBC5I.js.map} +0 -0
  897. /package/dist/{chunk-VCTFO5CO.js.map → chunk-OFJ5GPNA.js.map} +0 -0
  898. /package/dist/{chunk-KXGNJJXB.js.map → chunk-PXWVF7MC.js.map} +0 -0
  899. /package/dist/{chunk-IAGBDSCS.js.map → chunk-Q3XSMOZM.js.map} +0 -0
  900. /package/dist/{chunk-AXRXJTE2.js.map → chunk-RKRGDAS7.js.map} +0 -0
  901. /package/dist/{chunk-XXYIOFUB.js.map → chunk-SRVQHVNX.js.map} +0 -0
  902. /package/dist/{chunk-M6OST55S.js.map → chunk-UFILRICG.js.map} +0 -0
  903. /package/dist/{chunk-3YFXJ3ZP.js.map → chunk-UTLEAJXC.js.map} +0 -0
  904. /package/dist/{chunk-TA66UMI4.js.map → chunk-VA4ZWLFY.js.map} +0 -0
  905. /package/dist/{chunk-UAG5KWVA.js.map → chunk-VR24ILCR.js.map} +0 -0
  906. /package/dist/{chunk-WYSO2NIH.js.map → chunk-XHV25KBM.js.map} +0 -0
  907. /package/dist/{chunk-PKHL44ER.js.map → chunk-YSXEFGND.js.map} +0 -0
  908. /package/dist/{chunk-EIZUR2XW.js.map → chunk-YXOUQ2H7.js.map} +0 -0
  909. /package/dist/{chunk-RUEKROOS.js.map → chunk-ZP5PL65C.js.map} +0 -0
  910. /package/dist/{describe → classified}/index.js.map +0 -0
  911. /package/dist/{api-RW3KP7WU.js.map → collection-facade-YE2O4J4O.js.map} +0 -0
  912. /package/dist/{chunk-BGIZAFY7.js.map → computed-W6MVAMWZ.js.map} +0 -0
  913. /package/dist/{chunk-K2WCO3NX.js.map → delegation-OPUU3R2E.js.map} +0 -0
  914. /package/dist/{collection-facade-GQAOGJP2.js.map → derive-BGUHU663.js.map} +0 -0
  915. /package/dist/{delegation-UL5HKLER.js.map → enclave-VXAQD4XJ.js.map} +0 -0
  916. /package/dist/{enclave-UL5LW66V.js.map → executor-GTVSUUBX.js.map} +0 -0
  917. /package/dist/{executor-2FWQRLMG.js.map → executor-GZWMTOXB.js.map} +0 -0
  918. /package/dist/{executor-QZ7BXICW.js.map → executor-XXGS4S3K.js.map} +0 -0
  919. /package/dist/{executor-Z5ZLJVTV.js.map → export-accessible-BMULIOYB.js.map} +0 -0
  920. /package/dist/{export-accessible-KRV5W4GH.js.map → extract-partition-JUQTWDXR.js.map} +0 -0
  921. /package/dist/{extract-partition-GLKBOXFQ.js.map → find-XRGCNGNN.js.map} +0 -0
  922. /package/dist/{issue-Y6UVIR43.js.map → issue-UB6AA5M6.js.map} +0 -0
  923. /package/dist/{kernel → lazy}/index.js.map +0 -0
  924. /package/dist/{ledger-RYI35CDS.js.map → ledger-FU6GH5EH.js.map} +0 -0
  925. /package/dist/{liberate-CRPZEV7O.js.map → liberate-YUN7W5QG.js.map} +0 -0
  926. /package/dist/{noydb-367AM4HT.js.map → link-set-MNADSH5M.js.map} +0 -0
  927. /package/dist/{policy-IXK4FVXP.js.map → noydb-6JLBZU4U.js.map} +0 -0
  928. /package/dist/{public-envelope-JHDQCPSX.js.map → policy-JTFOPPUU.js.map} +0 -0
  929. /package/dist/{read-only-facade-5ADRJVTM.js.map → public-envelope-NJVB7LPA.js.map} +0 -0
  930. /package/dist/{registry-45RJNWGU.js.map → read-only-facade-CHCKSEPD.js.map} +0 -0
  931. /package/dist/{registry-5GRV5VXI.js.map → register-VCKOBWKT.js.map} +0 -0
  932. /package/dist/{registry-WEUCHBO4.js.map → registry-72UKJ2L4.js.map} +0 -0
  933. /package/dist/{request-withdrawal-GBPH2FDY.js.map → registry-BZFLJNEH.js.map} +0 -0
  934. /package/dist/{revoke-TUFRGI6S.js.map → registry-YJEYSYI5.js.map} +0 -0
  935. /package/dist/{signer-PNKTBVF7.js.map → request-withdrawal-6MJRMFHF.js.map} +0 -0
  936. /package/dist/{stale-3JWHNDIY.js.map → revoke-4KUNSVJC.js.map} +0 -0
  937. /package/dist/{withdraw-accessible-FFS46EOD.js.map → satellites/index.js.map} +0 -0
  938. /package/dist/{store-coordination-provider-3I7XWZZK.js.map → store-coordination-provider-HPYVFJCV.js.map} +0 -0
@@ -0,0 +1,66 @@
1
+ /**
2
+ * Orchestrate the derive → hash → skip-or-write cycle for a collection's
3
+ * persisted JSON Schema. Called by the Vault at collection-registration
4
+ * time when the developer opts in via `collection({ persistJsonSchema:
5
+ * true })`.
6
+ *
7
+ * Skip semantics:
8
+ *
9
+ * - Zod validators: skip when the new hash equals the stored hash.
10
+ * - Non-Zod (stub envelopes have hash=null): skip when the stored
11
+ * envelope's `kind` matches the freshly-detected kind (since there's
12
+ * no body to compare yet — a kind change is the only signal).
13
+ *
14
+ * @module
15
+ */
16
+ import type { SchemaUpdateStrategy, UpdateDecision } from '../schema-update/types.js';
17
+ import type { NoydbStore, ClassifiedMarker } from '../../kernel/types.js';
18
+ import type { PersistedSchemaEnvelope } from './types.js';
19
+ import type { PairingMarker } from '../satellites/types.js';
20
+ import type { EnclaveKey } from '../../kernel/enclave/index.js';
21
+ export interface PersistSchemaResult {
22
+ /** True when a fresh envelope was written to storage. */
23
+ readonly written: boolean;
24
+ /** True when an existing envelope matched and the write was skipped. */
25
+ readonly skipped: boolean;
26
+ /** The envelope that was either written or matched. */
27
+ readonly envelope: PersistedSchemaEnvelope;
28
+ /** The update-strategy decision, present when strategies ran. */
29
+ readonly decision?: UpdateDecision;
30
+ }
31
+ export declare function persistSchemaIfNeeded(opts: {
32
+ readonly store: NoydbStore;
33
+ readonly vault: string;
34
+ readonly collectionName: string;
35
+ readonly validator: unknown;
36
+ readonly dek: EnclaveKey;
37
+ readonly strategies?: readonly SchemaUpdateStrategy[];
38
+ }): Promise<PersistSchemaResult>;
39
+ /**
40
+ * Persist (or refresh) the C-A / R10 classified marker into the collection's
41
+ * `_schemas/<collection>` record, preserving any existing derived JSON-Schema
42
+ * body. Idempotent — a no-op when an equivalent marker is already stored.
43
+ * Independent of `persistJsonSchema`: called on the first classified write so a
44
+ * later naive handle can detect the drift cross-session.
45
+ */
46
+ export declare function persistClassifiedMarker(opts: {
47
+ readonly store: NoydbStore;
48
+ readonly vault: string;
49
+ readonly collectionName: string;
50
+ readonly dek: EnclaveKey;
51
+ readonly marker: ClassifiedMarker;
52
+ }): Promise<void>;
53
+ /**
54
+ * Persist (or refresh) the R-S9 satellite pairing marker into the collection's
55
+ * `_schemas/<collection>` record, preserving any existing derived JSON-Schema
56
+ * body. Idempotent — a no-op when an equivalent marker is already stored.
57
+ * Independent of `persistJsonSchema`: called on satellite declaration so a
58
+ * later divergent re-declaration can be detected cross-session.
59
+ */
60
+ export declare function persistSatelliteMarker(opts: {
61
+ readonly store: NoydbStore;
62
+ readonly vault: string;
63
+ readonly collectionName: string;
64
+ readonly dek: EnclaveKey;
65
+ readonly marker: PairingMarker;
66
+ }): Promise<void>;
@@ -0,0 +1,61 @@
1
+ /**
2
+ * Read / write the per-collection persisted-schema envelope. Mirrors the
3
+ * standard noy-db record envelope shape and is **AES-GCM encrypted with
4
+ * the collection's DEK** — the schema body (field names, enum values,
5
+ * constraints) is sensitive metadata, so it gets the same encryption
6
+ * envelope as the records it describes.
7
+ *
8
+ * Storage layout:
9
+ *
10
+ * <vault>/_schemas/<collection> → EncryptedEnvelope
11
+ *
12
+ * The DEK passed to {@link savePersistedSchema} / {@link loadPersistedSchema}
13
+ * is the same key the collection uses for its records.
14
+ *
15
+ * @module
16
+ */
17
+ import { type EnclaveKey } from '../../kernel/enclave/index.js';
18
+ import type { NoydbStore } from '../../kernel/types.js';
19
+ import type { PersistedSchemaEnvelope } from './types.js';
20
+ /** Reserved collection name where persisted schemas live. */
21
+ export declare const SCHEMAS_COLLECTION: "_schemas";
22
+ /**
23
+ * A decrypted persisted-schema read paired with the wrapping envelope's
24
+ * `_v`. The version is the optimistic-concurrency token: pass it back to
25
+ * {@link savePersistedSchema} as `expectedVersion` to make the write a CAS
26
+ * that rejects a stale put (see #583 — the `_schemas` record is shared by
27
+ * the JSON-Schema writer and the classified-marker writer).
28
+ */
29
+ export interface PersistedSchemaEntry {
30
+ /** Wrapping envelope `_v` (0 when no record exists yet). */
31
+ readonly version: number;
32
+ /** Decrypted payload, or `undefined` when absent/corrupt/wrong-DEK. */
33
+ readonly payload: PersistedSchemaEnvelope | undefined;
34
+ }
35
+ /**
36
+ * Read the persisted-schema envelope for one collection together with its
37
+ * wrapping `_v`. The version reflects the raw stored envelope even when the
38
+ * payload cannot be decrypted/parsed (so a CAS still guards a corrupt record
39
+ * rather than silently clobbering it).
40
+ */
41
+ export declare function loadPersistedSchemaEntry(store: NoydbStore, vault: string, collection: string, dek: EnclaveKey): Promise<PersistedSchemaEntry>;
42
+ /**
43
+ * Read and decrypt the persisted-schema envelope for one collection.
44
+ * Returns `undefined` when no envelope has been written or when decryption
45
+ * fails (e.g. wrong DEK passed). Tolerates corrupted records — JSON parse
46
+ * failures surface as `undefined`, mirroring `_meta/handle`'s contract.
47
+ */
48
+ export declare function loadPersistedSchema(store: NoydbStore, vault: string, collection: string, dek: EnclaveKey): Promise<PersistedSchemaEnvelope | undefined>;
49
+ /**
50
+ * Encrypt and persist a schema envelope for one collection. Always
51
+ * overwrites any prior write (callers gate on hash equality before calling
52
+ * to avoid no-op writes).
53
+ *
54
+ * Pass `expectedVersion` — the `version` from {@link loadPersistedSchemaEntry}
55
+ * captured at load time — to make the write an optimistic CAS: on a store with
56
+ * `casAtomic`, `store.put` throws {@link ConflictError} when the record was
57
+ * bumped concurrently, so a lost update on the shared `_schemas` record is
58
+ * rejected instead of silently clobbering the other writer's field (#583).
59
+ * When omitted, keeps the legacy unconditional last-writer-wins behaviour.
60
+ */
61
+ export declare function savePersistedSchema(store: NoydbStore, vault: string, collection: string, dek: EnclaveKey, payload: PersistedSchemaEnvelope, expectedVersion?: number): Promise<void>;
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Persisted-schema envelope shape.
3
+ *
4
+ * Stored encrypted under `_schemas/<collection>` with the same DEK as the
5
+ * collection's records. Auditors who can unlock the collection's data can
6
+ * also read its schema; nothing more.
7
+ *
8
+ * @see docs/superpowers/specs/2026-05-22-schema-dump-design.md
9
+ *
10
+ * @module
11
+ */
12
+ import type { ClassifiedMarker } from '../../kernel/types.js';
13
+ import type { PairingMarker } from '../satellites/types.js';
14
+ /** Family of Standard Schema v1 validator the persisted snapshot was derived from. */
15
+ export type PersistedSchemaKind = 'Zod' | 'Valibot' | 'ArkType' | 'Effect' | 'Unknown';
16
+ /**
17
+ * Plaintext payload encrypted into the `_data` field of the
18
+ * `_schemas/<collection>` envelope. The wrapper `EncryptedEnvelope` adds
19
+ * `_noydb`, `_v`, `_ts`, `_iv`, `_data` per the standard noy-db record
20
+ * format.
21
+ */
22
+ export interface PersistedSchemaEnvelope {
23
+ readonly _noydb_schema: 1;
24
+ /** Detected validator family. */
25
+ readonly kind: PersistedSchemaKind;
26
+ /**
27
+ * JSON Schema (Draft 2020-12) derived from the validator. Null when
28
+ * derivation isn't yet supported for `kind`; in that case `reason` is
29
+ * populated.
30
+ */
31
+ readonly jsonSchema: object | null;
32
+ /** SHA-256 (hex) of the canonicalised JSON Schema, or null when unavailable. */
33
+ readonly hash: string | null;
34
+ /** Human-readable reason when `jsonSchema` is null. */
35
+ readonly reason?: string;
36
+ /** ISO-8601 timestamp of the most recent derivation write. */
37
+ readonly derivedAt: string;
38
+ /**
39
+ * C-A / R10 config-drift marker. Present when the collection declares
40
+ * classified digest-only fields. A handle opened WITHOUT `classifiedFields`
41
+ * (a naive handle, whose codec has `vdigFields === null`) reads this back and
42
+ * refuses to write — a silent plaintext/tag-drop write would corrupt the
43
+ * classified record. Independent of `persistJsonSchema`: a classified
44
+ * collection that never opts into schema persistence still writes this marker.
45
+ */
46
+ readonly classified?: ClassifiedMarker;
47
+ /**
48
+ * R-S9 satellite pairing marker. Present when this collection is declared
49
+ * as a satellite (`satelliteOf`). A later re-declaration of the same
50
+ * satellite must match `(base, fieldsHash, joined)` exactly or is refused —
51
+ * the satellite-pair analogue of {@link classified}'s config-drift guard.
52
+ */
53
+ readonly satellite?: PairingMarker;
54
+ }
@@ -0,0 +1,21 @@
1
+ import type { NoydbStore } from '../../kernel/types.js';
2
+ import type { EnclaveKey } from '../../kernel/enclave/index.js';
3
+ /**
4
+ * Build a live-base id set for every satellite collection detectable from
5
+ * its persisted `_schemas/<name>` pairing marker (#591 Task 10).
6
+ *
7
+ * The bundle-export path (`with-pod/bundle.ts`) has no reachable
8
+ * `SatelliteRegistry` — that registry is private to `Vault` and adding an
9
+ * accessor would grow a kernel file past its line-ceiling ratchet. The
10
+ * marker persisted by `ensureSatelliteMarker` (`_schemas/<satellite>`,
11
+ * decrypted with the satellite collection's own DEK — see
12
+ * `with-shape/persisted-schemas/storage.ts`) is the fallback pairing-info
13
+ * source that's always reachable from just a raw store + a per-collection
14
+ * DEK accessor, so export uses that instead of the in-memory registry.
15
+ *
16
+ * Returns a `Map` from satellite collection name to its base's live id set
17
+ * (existence.ts rule 1: absent or tombstoned base ⇒ not live). Only
18
+ * satellite collections are present as keys — callers should treat a
19
+ * missing key as "not a satellite, don't filter."
20
+ */
21
+ export declare function liveBaseIdSetsForBundle(store: NoydbStore, vaultName: string, collectionNames: readonly string[], getDEK: (collectionName: string) => Promise<EnclaveKey>): Promise<Map<string, Set<string>>>;
@@ -0,0 +1,60 @@
1
+ /**
2
+ * Satellite declaration wiring (#591, archetype-③) — the full body behind
3
+ * `Vault.collection()`'s thin call-site: in-session reconcile (idempotent
4
+ * identical redeclare / R-S9 divergent refusal), sync validation
5
+ * (R-S3/R-S5/R-S8), the R-S7 forget-coverage gate, lazy registry + poison
6
+ * write-gate creation, registration, and the fire-and-forget postRegister
7
+ * (marker persistence + R-S1 cross-check). Kept dependency-narrow: no
8
+ * `Vault` import — the kernel supplies a {@link SatelliteDeclareContext}.
9
+ */
10
+ import type { NoydbStore } from '../../kernel/types.js';
11
+ import type { EnclaveKey } from '../../kernel/enclave/index.js';
12
+ import { SatelliteRegistry } from './registry.js';
13
+ /** The narrow slice of Vault that declaration wiring needs. */
14
+ export interface SatelliteDeclareContext {
15
+ readonly adapter: NoydbStore;
16
+ readonly vaultName: string;
17
+ /** `forgetStrategy.subjects` — collection → subject field (R-S7 gate input). */
18
+ readonly forgetSubjects: Record<string, string>;
19
+ readonly getDEK: (collectionName: string) => Promise<EnclaveKey>;
20
+ /** The base collection's attached Standard Schema validator, if constructed. */
21
+ readonly getBaseSchema: (base: string) => unknown;
22
+ /** The base collection's constructed crdt mode, if any (R-S8 direction i). */
23
+ readonly getBaseCrdt: (base: string) => unknown;
24
+ /** True when `name` is an already-constructed collection (R-S5 joined-name guard). */
25
+ readonly collectionExists: (name: string) => boolean;
26
+ /** Registers the vault-wide poison write-gate; invoked at most once per vault. */
27
+ readonly registerPoisonHook: (hook: (e: {
28
+ readonly vault: string;
29
+ readonly collection: string;
30
+ }) => void) => void;
31
+ /**
32
+ * Iterates the vault's SyncEngine(s) (#591 Task 11) — used to wire the
33
+ * live pair-expander (once per vault, alongside `registerPoisonHook`; the
34
+ * closure captures the registry itself, not a snapshot, so pairs declared
35
+ * later are still picked up by push/pull filters) and to retroactively
36
+ * re-mirror conflict resolvers on every successful pair registration.
37
+ * No-op when sync is not configured.
38
+ */
39
+ readonly forEachSyncEngine: (fn: (engine: PairSyncEngine) => void) => void;
40
+ }
41
+ /** The narrow slice of SyncEngine that satellite declaration wiring drives (#591 Task 11). */
42
+ interface PairSyncEngine {
43
+ setPairExpander(expander: (names: readonly string[]) => readonly string[]): void;
44
+ remirrorPairResolvers(names: readonly string[]): void;
45
+ }
46
+ export interface SatelliteDeclarationOptions {
47
+ readonly satelliteOf: string;
48
+ readonly fields?: readonly string[] | undefined;
49
+ readonly joined?: string | undefined;
50
+ readonly perRecordKeys?: boolean | undefined;
51
+ readonly crdt?: unknown;
52
+ }
53
+ /**
54
+ * Register `collectionName` as a satellite per `options`. Returns the
55
+ * (possibly newly created) registry — the caller stores it back on the vault.
56
+ * A refused declaration throws {@link SatelliteConfigError} and leaves NO
57
+ * side effect (no registry created, no hook registered).
58
+ */
59
+ export declare function declareSatellite(ctx: SatelliteDeclareContext, collectionName: string, options: SatelliteDeclarationOptions, existingRegistry: SatelliteRegistry | null): SatelliteRegistry;
60
+ export {};
@@ -0,0 +1,5 @@
1
+ import type { NoydbStore } from '../../kernel/types.js';
2
+ /** One undecrypted adapter `get` on the base — the store-shape the spec pins (zero extra crypto). */
3
+ export declare function isBaseLive(adapter: NoydbStore, vault: string, base: string, id: string): Promise<boolean>;
4
+ /** The set of base ids that are currently live — used to id-filter satellite `list()` results. */
5
+ export declare function liveBaseIdSet(adapter: NoydbStore, vault: string, base: string): Promise<Set<string>>;
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Fan-out writes for a base↔satellite pair (#591, Task 6): a joined `put`
3
+ * splits the record across both collections and writes base-then-satellite;
4
+ * a pair `delete` removes satellite-then-base. Either function reverts every
5
+ * already-executed leg (best-effort, raw adapter writes) and compensates
6
+ * each reverted collection's cache/dirty-tracking/change-stream on failure.
7
+ *
8
+ * Both legs are driven through `Collection.put`/`.delete` (encryption,
9
+ * ledger, history, cache, sync-dirty, change-emit all fire normally); only
10
+ * the REVERT writes go straight to the raw adapter, mirroring
11
+ * `revertExecuted` (`with-commit/tx/transaction.ts:610`) — re-implemented
12
+ * locally rather than imported, since with-commit is a gated service this
13
+ * always-on satellite path must not depend on.
14
+ *
15
+ * `deps.base()`/`deps.satellite()` may return either a raw `Collection` or
16
+ * one of this package's proxies (`makeSatelliteProxy` / `makeBaseProxy`) —
17
+ * every handle is unwrapped via `RAW_TARGET` before use so fan-out never
18
+ * re-enters a proxy's own `put`/`delete` override. Re-entering would either
19
+ * deadlock (the satellite proxy's `put` takes the same non-reentrant
20
+ * `registry.withPairLock` this module already holds) or recurse forever
21
+ * (the base proxy's `delete` calls straight back into `pairDelete`).
22
+ */
23
+ import type { NoydbStore } from '../../kernel/types.js';
24
+ import type { SatelliteSpec } from './types.js';
25
+ import type { SatelliteRegistry } from './registry.js';
26
+ export interface FanoutDeps {
27
+ readonly spec: SatelliteSpec;
28
+ readonly base: () => unknown;
29
+ readonly satellite: () => unknown;
30
+ readonly adapter: NoydbStore;
31
+ readonly vaultName: string;
32
+ readonly registry: SatelliteRegistry;
33
+ }
34
+ /** Split `record` across the pair by `spec.fields`, base leg first, satellite leg second. */
35
+ export declare function joinedPut(deps: FanoutDeps, id: string, record: Record<string, unknown>): Promise<void>;
36
+ /** Remove both legs of the pair, satellite first, base second. */
37
+ export declare function pairDelete(deps: FanoutDeps, id: string): Promise<void>;
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Forget fan-out (#591, Task 8): expands the base refs resolved from the
3
+ * encrypted subject index with a synthesized same-id ref for every base ref
4
+ * whose collection has a declared satellite.
5
+ *
6
+ * A satellite record is NEVER itself indexed in `_subject_index` (its writes
7
+ * only ever go through `joinedPut`, which never touches the subject-field
8
+ * write hook — see `noydb.ts#registerForgetHooks`), so `lookupSubject` alone
9
+ * would leave the satellite half of a pair permanently un-erasable. The
10
+ * synthesized ref carries `satelliteOf` (the base collection name) so:
11
+ * - `vault.forget()`'s classification line can inherit `perRecordKeys`
12
+ * from the BASE's forget-strategy entry (the satellite itself is never a
13
+ * `subjects` key), and
14
+ * - the synthesized ref's tombstone write can be held to R-S4 fail-loud
15
+ * semantics distinct from a base ref's existing resilient handling.
16
+ *
17
+ * The synthesized ref is INTERLEAVED into the SAME list the caller iterates —
18
+ * immediately BEFORE its base ref, not appended after the whole list — so it
19
+ * traverses every purge stage below the tombstone (history, `_idx`/`_ftindex`,
20
+ * blobs, `_sealed`/`_sealed_cek`, vectors) identically to a base ref — there
21
+ * is no separate satellite-only code path.
22
+ *
23
+ * Ordering is load-bearing (retry black hole, #591 review C1): `vault.forget()`'s
24
+ * per-ref loop removes each ref's subject-index entry (the retry anchor) only
25
+ * at the END of that ref's own iteration. If the satellite ref instead ran
26
+ * AFTER its base ref (as a simple append), an R-S4 abort mid-satellite-ref (or
27
+ * a crash) would leave the base ref already fully processed — including its
28
+ * subject-index entry already removed — so a retried `forget(subjectId)` finds
29
+ * nothing to resolve and returns a clean, empty result while the satellite's
30
+ * heavy data stays un-shredded forever. Interleaving the satellite ref BEFORE
31
+ * its base ref means any R-S4 abort happens before the base's subject-index
32
+ * anchor is touched, so a retry re-discovers the same base ref (and
33
+ * re-synthesizes its satellite ref) until both actually shred.
34
+ */
35
+ import type { SubjectRef } from '../../with-audit/forget/subject-index.js';
36
+ import type { SatelliteRegistry } from './registry.js';
37
+ /** A subject ref synthesized from a base ref via a declared satellite pairing. */
38
+ export interface SatelliteSubjectRef extends SubjectRef {
39
+ readonly satelliteOf: string;
40
+ }
41
+ /**
42
+ * Expand `refs` (as resolved by `lookupSubject`) with one synthesized ref per
43
+ * base ref whose collection has a registered satellite. `registry` may be
44
+ * `null` (no satellite ever declared in this vault) — returns `refs`
45
+ * unchanged, byte-identical to pre-#591 behaviour.
46
+ */
47
+ export declare function expandRefsWithSatellites(refs: readonly SubjectRef[], registry: SatelliteRegistry | null): ReadonlyArray<SubjectRef | SatelliteSubjectRef>;
@@ -0,0 +1,3 @@
1
+ /** Satellite collections barrel — spec/schema types + config error (#591). @module */
2
+ export type { SatelliteSpec, PairingMarker, JoinedHandle } from './types.js';
3
+ export { SatelliteConfigError } from '../../kernel/errors.js';
@@ -0,0 +1,19 @@
1
+ /**
2
+ * JoinedHandle — the full-record access point for a base↔satellite pair
3
+ * declared with `joined:` (#591, Task 7). Deliberately narrow (spec § The
4
+ * model): get/put/delete/list/describe only, never a `Collection<T>` cast —
5
+ * reactive members (`subscribe`, `live`, …) are simply absent from the
6
+ * returned object, not stubbed.
7
+ *
8
+ * Reads compose under existence authority (spec § Convergence & existence
9
+ * authority, rule 1): the base row alone decides whether a record exists at
10
+ * all — `get`/`list` check it via an undecrypted adapter read
11
+ * (`isBaseLive`/`liveBaseIdSet`) before merging in the satellite side, so a
12
+ * base-absent-or-tombstoned id reads as fully gone even if a satellite
13
+ * envelope still lingers. Writes/deletes delegate wholesale to the Task 6
14
+ * fan-out (`joinedPut`/`pairDelete`), which already holds the pair lock and
15
+ * reverts on partial failure — this module adds no write logic of its own.
16
+ */
17
+ import type { JoinedHandle, SatelliteSpec } from './types.js';
18
+ import type { FanoutDeps } from './fanout.js';
19
+ export declare function makeJoinedHandle<T extends Record<string, unknown>>(spec: SatelliteSpec, deps: FanoutDeps): JoinedHandle<T>;
@@ -0,0 +1,10 @@
1
+ import type { NoydbStore } from '../../kernel/types.js';
2
+ import type { EnclaveKey } from '../../kernel/enclave/index.js';
3
+ import type { SatelliteSpec } from './types.js';
4
+ /**
5
+ * Persist-or-reconcile the pairing marker in `_schemas/<satellite>`.
6
+ * First declaration writes { base, fieldsHash, joined }; later declarations
7
+ * must match exactly or are refused (R-S9). Lazy imports keep the satellite
8
+ * spine tree-shakeable (config-drift.ts pattern).
9
+ */
10
+ export declare function ensureSatelliteMarker(store: NoydbStore, vaultName: string, spec: SatelliteSpec, dek: EnclaveKey): Promise<void>;
@@ -0,0 +1,6 @@
1
+ import type { NoydbStore } from '../../kernel/types.js';
2
+ import type { EnclaveKey } from '../../kernel/enclave/index.js';
3
+ import type { SatelliteSpec } from './types.js';
4
+ import type { SatelliteRegistry } from './registry.js';
5
+ /** Async post-registration: R-S9 marker reconcile + R-S1/R-S5 derivable-schema cross-check. Failures poison, never throw. */
6
+ export declare function postRegister(store: NoydbStore, vaultName: string, spec: SatelliteSpec, getDEK: (collectionName: string) => Promise<EnclaveKey>, baseSchema: unknown, registry: SatelliteRegistry): Promise<void>;
@@ -0,0 +1,37 @@
1
+ import { RAW_TARGET } from './raw-target.js';
2
+ import type { SatelliteSpec } from './types.js';
3
+ import type { SatelliteRegistry } from './registry.js';
4
+ export { RAW_TARGET };
5
+ /**
6
+ * Correlates a collection handle's `list()` output with the ids implied by
7
+ * cache-insertion order — `list()` returns bare records (no `id` field
8
+ * unless the caller put one), so ids are recovered positionally against the
9
+ * cache's own key order instead. Read AFTER `target.list()` resolves, so a
10
+ * not-yet-hydrated cache on the first read doesn't race a still-empty key
11
+ * snapshot. Invariant: `list()` must preserve cache-insertion order
12
+ * (collection.ts `list()` maps `[...cache.values()]`) — positional
13
+ * correlation depends on it. Drops any record whose position has no
14
+ * corresponding cache key (should not happen in practice; defensive only).
15
+ * Exported so `joined.ts` (#591, Task 7) can get the same [id, record]
16
+ * correlation for the base side without duplicating this logic.
17
+ */
18
+ export declare function listWithIds(target: any): Promise<Array<[string, unknown]>>;
19
+ /**
20
+ * Wraps a satellite's real `Collection<T>` in a `Proxy` that enforces
21
+ * existence authority (spec § Convergence & existence authority, rule 1)
22
+ * and R-S6 on top of it. Every member not explicitly overridden below
23
+ * falls through to the real collection unchanged — this is why the full
24
+ * ~50-member surface (describe, count, putMany, …) survives without
25
+ * hand-stubbing. Caches nothing: every call re-checks live base state.
26
+ */
27
+ export declare function makeSatelliteProxy(target: any, spec: SatelliteSpec, registry: SatelliteRegistry): any;
28
+ /**
29
+ * Wraps a satellite's BASE collection in a `Proxy` whose overrides are
30
+ * `delete` and `deleteMany` — both routed through `pairDelete` (this task) so
31
+ * removing a base record also removes its satellite row, in order, with
32
+ * revert-on-failure. `satellite()` is a thunk, not a resolved handle: at the
33
+ * moment a base is first requested the paired satellite may not exist yet in
34
+ * some call orders, and `fanout.ts` re-resolves + unwraps it lazily per call
35
+ * anyway.
36
+ */
37
+ export declare function makeBaseProxy(target: any, spec: SatelliteSpec, registry: SatelliteRegistry, satellite: () => unknown): any;
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Escape hatch: `proxied[RAW_TARGET]` returns the unwrapped collection — no
3
+ * existence check, no pair lock, no fan-out. Needed by callers (`fanout.ts`,
4
+ * a proxy's own internals) that already hold the pair mutex themselves;
5
+ * going back through a proxy's `put`/`delete` would re-enter
6
+ * `registry.withPairLock` on the same base and deadlock (non-reentrant —
7
+ * see `registry.ts:withPairLock`) or recurse forever (the base proxy's
8
+ * `delete` calls `pairDelete`, which must not call back into it).
9
+ *
10
+ * Lives in its own module (not `proxy.ts`) so `fanout.ts` can import it
11
+ * without creating a `proxy.ts` ⇄ `fanout.ts` import cycle — `proxy.ts`
12
+ * imports `pairDelete` from `fanout.ts` for `makeBaseProxy`.
13
+ */
14
+ export declare const RAW_TARGET: unique symbol;
@@ -0,0 +1,19 @@
1
+ import type { SatelliteSpec } from './types.js';
2
+ export declare class SatelliteRegistry {
3
+ private readonly byBase;
4
+ private readonly bySat;
5
+ private readonly byJoin;
6
+ private readonly poisoned;
7
+ private readonly locks;
8
+ register(spec: SatelliteSpec): void;
9
+ satelliteOf(base: string): SatelliteSpec | null;
10
+ bySatellite(name: string): SatelliteSpec | null;
11
+ byJoined(name: string): SatelliteSpec | null;
12
+ isPairMember(name: string): boolean;
13
+ allSpecs(): readonly SatelliteSpec[];
14
+ expandNames(names: readonly string[]): string[];
15
+ poison(satellite: string, reason: string): void;
16
+ assertNotPoisoned(satellite: string): void;
17
+ /** Per-base async mutex: chains sections on a stored promise tail. */
18
+ withPairLock<R>(base: string, fn: () => Promise<R>): Promise<R>;
19
+ }
@@ -0,0 +1,26 @@
1
+ import type { CollectionDescription } from '../introspection/describe.js';
2
+ /** One base↔satellite pair. v1: exactly one satellite per base. */
3
+ export interface SatelliteSpec {
4
+ readonly base: string;
5
+ readonly satellite: string;
6
+ readonly fields: readonly string[];
7
+ readonly joined?: string | undefined;
8
+ }
9
+ /** Persisted into `_schemas/<satellite>` under `x-satellite` (R-S9 drift guard). */
10
+ export interface PairingMarker {
11
+ readonly base: string;
12
+ readonly fieldsHash: string;
13
+ readonly joined?: string | undefined;
14
+ }
15
+ /**
16
+ * The full-record handle — deliberately NARROW (spec § The model): never a
17
+ * `Collection<T>` cast. `describe()` works (the @noy-db/ui contract);
18
+ * reactive APIs are absent from the type entirely.
19
+ */
20
+ export interface JoinedHandle<T extends Record<string, unknown> = Record<string, unknown>> {
21
+ get(id: string): Promise<T | null>;
22
+ put(id: string, record: T): Promise<void>;
23
+ delete(id: string): Promise<void>;
24
+ list(): Promise<T[]>;
25
+ describe(): Promise<CollectionDescription>;
26
+ }
@@ -0,0 +1,17 @@
1
+ import type { SatelliteSpec } from './types.js';
2
+ export interface SatelliteDeclarationInput {
3
+ readonly satellite: string;
4
+ readonly satelliteOf: string;
5
+ readonly fields: readonly string[] | undefined;
6
+ readonly joined?: string | undefined;
7
+ /** True when the named base is itself registered as a satellite (R-S3). */
8
+ readonly baseIsSatellite: boolean;
9
+ /** True when the declaring collection (or its base) sets crdtMode (R-S8). */
10
+ readonly crdtMode: boolean;
11
+ /** True when `joined` names an already-declared plain (non-pair) collection (R-S5). */
12
+ readonly joinedCollidesWithCollection: boolean;
13
+ }
14
+ /** Sync declaration refusals R-S3/R-S5/R-S8. Async cross-checks live in registry.ts. */
15
+ export declare function validateSatelliteDeclaration(input: SatelliteDeclarationInput): SatelliteSpec;
16
+ /** Order-insensitive stable hash of the fields list (FNV-1a over the sorted, joined names). */
17
+ export declare function hashFields(fields: readonly string[]): string;
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Schema-cutover client registry. Each client keeps a
3
+ * heartbeat doc at `_meta/schema-fence:client:<clientId>` carrying its
4
+ * liveness (`lastSeen`) and the fence generation it has quiesced for
5
+ * (`quiescedAtVersion`). Plaintext envelope, like the fence doc.
6
+ */
7
+ import type { NoydbStore } from '../../kernel/types.js';
8
+ export interface ClientDoc {
9
+ readonly clientId: string;
10
+ readonly lastSeen: number;
11
+ readonly quiescedAtVersion: number | null;
12
+ /**
13
+ * Session that owns this writer (one user's writers across vaults). Additive
14
+ * and optional so legacy client docs (written without it) keep parsing;
15
+ * readers default it.
16
+ */
17
+ readonly sessionId?: string;
18
+ }
19
+ export declare function writeClientDoc(store: NoydbStore, vault: string, clientId: string, doc: {
20
+ lastSeen: number;
21
+ quiescedAtVersion: number | null;
22
+ sessionId?: string;
23
+ }): Promise<void>;
24
+ export declare function listClientDocs(store: NoydbStore, vault: string): Promise<ClientDoc[]>;
25
+ /**
26
+ * True when every *active* client (lastSeen within staleMs of now) has
27
+ * `quiescedAtVersion === generation`. Stale clients are ignored. An empty
28
+ * active set is vacuously quiesced.
29
+ */
30
+ export declare function activeQuiesced(store: NoydbStore, vault: string, opts: {
31
+ generation: number;
32
+ now: number;
33
+ staleMs: number;
34
+ excludeClientId?: string;
35
+ }): Promise<boolean>;
@@ -0,0 +1,5 @@
1
+ /** The coordinatedCutover update strategy (single-step — no from/to). */
2
+ import type { SchemaUpdateStrategy, TransformFn } from './types.js';
3
+ export declare function coordinatedCutover(opts: {
4
+ readonly transform: TransformFn;
5
+ }): SchemaUpdateStrategy;
@@ -0,0 +1,2 @@
1
+ import type { SchemaDelta } from './types.js';
2
+ export declare function computeSchemaDelta(stored: object, fresh: object, collection: string): SchemaDelta;
@@ -0,0 +1,3 @@
1
+ /** Ordered strategy evaluation: first non-`allow` decision wins. */
2
+ import type { SchemaDelta, SchemaUpdateStrategy, UpdateContext, UpdateDecision } from './types.js';
3
+ export declare function evaluateStrategies(delta: SchemaDelta, strategies: readonly SchemaUpdateStrategy[], ctx: UpdateContext): Promise<UpdateDecision>;
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Vault-level schema-fence controller.
3
+ *
4
+ * Owns the open-time generation snapshot, the pending-cutover registry,
5
+ * and the cutover orchestration. 3a: single-client (the caller is the
6
+ * migrator). 3b: a cooperative ack-barrier — after `draining`, the
7
+ * migrator waits for the active client set (registry heartbeats) to ack
8
+ * the draining generation before transforming. No leader election.
9
+ *
10
+ * The transport is the injected {@link CoordinationProvider} port: the
11
+ * default {@link StoreCoordinationProvider} maps it onto today's
12
+ * `_meta/schema-fence` store ops, so behavior is byte-for-byte the same;
13
+ * `by-tabs` / `by-peer` swap in real-time push transports.
14
+ */
15
+ import { type FenceState } from './fence.js';
16
+ import type { TransformFn } from './types.js';
17
+ import { type CoordinationProvider } from '../../port/by/index.js';
18
+ /** Runs one collection's transform; supplied by the Vault (binds to a Collection). */
19
+ export type RunTransform = (collection: string, transform: TransformFn) => Promise<void>;
20
+ export declare class SchemaFenceController {
21
+ #private;
22
+ constructor(opts: {
23
+ coordination: CoordinationProvider;
24
+ vault: string;
25
+ onFlush: () => Promise<void>;
26
+ /** Stable per-instance id; the migrator excludes itself from the barrier. */
27
+ clientId?: string;
28
+ /**
29
+ * Accepted for wiring symmetry with {@link FenceWatcher}, but the migrator
30
+ * never reports its own presence (it excludes itself from the barrier), so
31
+ * it carries no session of its own.
32
+ */
33
+ sessionId?: string;
34
+ now?: () => number;
35
+ staleMs?: number;
36
+ quiesceTimeoutMs?: number;
37
+ emit?: (e: {
38
+ currentSchemaVersion: number;
39
+ fenceState: FenceState;
40
+ }) => void;
41
+ });
42
+ /** Capture the generation snapshot at vault-open. */
43
+ init(): Promise<void>;
44
+ /** Record a per-collection pending cutover (from a registration `cutover` decision). */
45
+ registerPendingCutover(collection: string, transform: TransformFn): void;
46
+ /** Write-path gate. Throws when behind, fenced, or this collection is cutover-pending. */
47
+ assertWritable(collection: string): Promise<void>;
48
+ /**
49
+ * Admin trigger. Drain → wait for the active set to quiesce (or time out)
50
+ * → migrate each pending transform → bump → complete → normal. The
51
+ * migrator excludes itself from the barrier (it drained synchronously
52
+ * inside {@link runDrainBarrier}). `onPoll` (tests) advances other clients
53
+ * between barrier checks; production falls back to a short real delay.
54
+ */
55
+ runCutover(run: RunTransform, opts?: {
56
+ onPoll?: () => Promise<void>;
57
+ }): Promise<{
58
+ migrated: number;
59
+ }>;
60
+ /** Recover a stuck drain: reset fenceState to normal at the current version (no bump). */
61
+ abort(): Promise<void>;
62
+ }