@noy-db/hub 0.9.0-pre.0 → 0.9.0-pre.2

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 (465) hide show
  1. package/CHANGELOG.md +39 -0
  2. package/dist/api-H4B7ZQXP.js +18 -0
  3. package/dist/as/index.js +10 -10
  4. package/dist/at/index.js +8 -8
  5. package/dist/attestation/index.js +18 -18
  6. package/dist/{backup-7RKNZMQO.js → backup-E3GBMNDA.js} +92 -31
  7. package/dist/backup-E3GBMNDA.js.map +1 -0
  8. package/dist/blobs/index.js +12 -12
  9. package/dist/broker/index.js +13 -13
  10. package/dist/by/index.js +2 -2
  11. package/dist/capsule/contract.js +6 -6
  12. package/dist/capsule/enclave-aes/crypto.d.ts +18 -0
  13. package/dist/capsule/enclave-aes/index.d.ts +2 -2
  14. package/dist/capsule/enclave-aes/index.js +14 -8
  15. package/dist/capsule/enclave-aes/index.js.map +1 -1
  16. package/dist/capsule/index.d.ts +1 -1
  17. package/dist/{capsule-57BDK7LG.js → capsule-YQKQZPH7.js} +14 -8
  18. package/dist/cargo/index.js +35 -35
  19. package/dist/{chunk-AJFPAHMW.js → chunk-27NCEPKM.js} +3 -3
  20. package/dist/{chunk-PGC35KXE.js → chunk-2IASHJPS.js} +2 -2
  21. package/dist/{chunk-NYJBYVBG.js → chunk-2ODEFG6K.js} +4 -4
  22. package/dist/{chunk-7BMOS4JQ.js → chunk-2QH3I7QC.js} +11 -11
  23. package/dist/{chunk-VSUQI5Q6.js → chunk-2RH5SEY7.js} +16 -2
  24. package/dist/chunk-2RH5SEY7.js.map +1 -0
  25. package/dist/{chunk-IVMFIKNA.js → chunk-2T2TGRWE.js} +6 -6
  26. package/dist/{chunk-G66YXUTY.js → chunk-35CNOVQE.js} +3 -3
  27. package/dist/{chunk-OJU67C23.js → chunk-3EXQXOQ2.js} +4 -4
  28. package/dist/{chunk-BJH77UY2.js → chunk-4KYKRYRT.js} +2 -2
  29. package/dist/{chunk-RDOEOPOI.js → chunk-4N4OIVK3.js} +5 -5
  30. package/dist/{chunk-WHOKGHJ3.js → chunk-4WLI37WK.js} +7 -7
  31. package/dist/{chunk-RNACRT5H.js → chunk-52ZFNK46.js} +2 -2
  32. package/dist/{chunk-CB4467G3.js → chunk-5A3HOTP5.js} +33 -7
  33. package/dist/chunk-5A3HOTP5.js.map +1 -0
  34. package/dist/{chunk-QDHHHI5Q.js → chunk-5SMCBPJ2.js} +5 -5
  35. package/dist/{chunk-EMAWOGVH.js → chunk-654RE5YC.js} +3 -3
  36. package/dist/{chunk-FZXRLNJO.js → chunk-6BEBWHNL.js} +3 -3
  37. package/dist/{chunk-EUD3HQM4.js → chunk-6WEPFEMJ.js} +4 -4
  38. package/dist/{chunk-YFFMPZPY.js → chunk-6WIFF46H.js} +2 -2
  39. package/dist/{chunk-ZVSKSUGI.js → chunk-7C7OF26T.js} +5 -5
  40. package/dist/{chunk-QXJXG7DN.js → chunk-7IV7GVOS.js} +5 -5
  41. package/dist/{chunk-MQ7YWBQ5.js → chunk-7JRLCP2J.js} +2 -2
  42. package/dist/{chunk-QSHATAXJ.js → chunk-7ONMS7QI.js} +2 -2
  43. package/dist/{chunk-JBMMWYOH.js → chunk-7UHLO4ZN.js} +35 -2
  44. package/dist/chunk-7UHLO4ZN.js.map +1 -0
  45. package/dist/{chunk-6WS35E6X.js → chunk-A52BK5AY.js} +2 -2
  46. package/dist/{chunk-GOJQ5DZA.js → chunk-AI35LNWQ.js} +4 -4
  47. package/dist/chunk-AI35LNWQ.js.map +1 -0
  48. package/dist/{chunk-XXQ5XIYY.js → chunk-AMSSAOOB.js} +2 -2
  49. package/dist/{chunk-3V6LZHUO.js → chunk-AYOQZJDB.js} +2 -2
  50. package/dist/{chunk-DL6BZKP3.js → chunk-B3B6HV5S.js} +2 -2
  51. package/dist/{chunk-5XONHAFD.js → chunk-B6EWMGFX.js} +2 -2
  52. package/dist/{chunk-6Y5E4SJU.js → chunk-BMAXBTYH.js} +5 -5
  53. package/dist/{chunk-LGGIFKJP.js → chunk-BNYDOF2Q.js} +4 -4
  54. package/dist/{chunk-XXNWU5QZ.js → chunk-BQJ5ORU5.js} +2 -2
  55. package/dist/{chunk-Z3ZXVB2Y.js → chunk-BSEPI3HD.js} +12 -12
  56. package/dist/chunk-BSEPI3HD.js.map +1 -0
  57. package/dist/{chunk-BYHCKX73.js → chunk-CLOSXHR4.js} +3 -3
  58. package/dist/{chunk-5HNW4ZTA.js → chunk-CSAN22QG.js} +6 -6
  59. package/dist/{chunk-TZYTMZZY.js → chunk-DL4GCSTS.js} +10 -10
  60. package/dist/{chunk-EA4VDI5D.js → chunk-DYIR6RC3.js} +4 -4
  61. package/dist/{chunk-PUBI455O.js → chunk-EPPAEGH5.js} +2 -2
  62. package/dist/{chunk-2A56DSRI.js → chunk-EQ6C2ZPT.js} +17 -51
  63. package/dist/chunk-EQ6C2ZPT.js.map +1 -0
  64. package/dist/{chunk-BNFNQNEP.js → chunk-F7X7MPK4.js} +2 -2
  65. package/dist/{chunk-SNM7LSYG.js → chunk-FUHUGKDN.js} +4 -4
  66. package/dist/{chunk-72XBVN4J.js → chunk-FVKQ5QUC.js} +2 -2
  67. package/dist/chunk-FVKQ5QUC.js.map +1 -0
  68. package/dist/{chunk-D4V5JJAK.js → chunk-GHMINSER.js} +4 -4
  69. package/dist/{chunk-APFFJN5T.js → chunk-GLSCL74M.js} +31 -34
  70. package/dist/chunk-GLSCL74M.js.map +1 -0
  71. package/dist/{chunk-XKBTJGFP.js → chunk-GU6QXHPZ.js} +3 -3
  72. package/dist/chunk-GU6QXHPZ.js.map +1 -0
  73. package/dist/{chunk-QGFEBNHO.js → chunk-GZISWBCJ.js} +4 -4
  74. package/dist/{chunk-OM3SEDI4.js → chunk-HTRLQ4ZZ.js} +4 -4
  75. package/dist/{chunk-SWXLZ4HX.js → chunk-ICHHNI5E.js} +8 -8
  76. package/dist/{chunk-K673OO6B.js → chunk-ID4ZBC3X.js} +4 -4
  77. package/dist/{chunk-H3YM66EI.js → chunk-IF2M43G4.js} +2 -2
  78. package/dist/{chunk-QGSNJD3B.js → chunk-IFUYLIEY.js} +2 -2
  79. package/dist/{chunk-D5A3GCZ4.js → chunk-IPF5ORDI.js} +3 -3
  80. package/dist/{delegation-ONLM4JFI.js → chunk-JQMEXCUZ.js} +59 -16
  81. package/dist/chunk-JQMEXCUZ.js.map +1 -0
  82. package/dist/{chunk-TFWFPZRU.js → chunk-K5JNK63R.js} +11 -11
  83. package/dist/{chunk-TFWFPZRU.js.map → chunk-K5JNK63R.js.map} +1 -1
  84. package/dist/{chunk-BVF3SXD7.js → chunk-KBIS64X4.js} +5 -5
  85. package/dist/chunk-L4UL4IAR.js +55 -0
  86. package/dist/chunk-L4UL4IAR.js.map +1 -0
  87. package/dist/{chunk-RIZTZJX6.js → chunk-LJ744WXU.js} +2 -2
  88. package/dist/{chunk-XITHENBI.js → chunk-LMC5L3MM.js} +7 -7
  89. package/dist/{chunk-XITHENBI.js.map → chunk-LMC5L3MM.js.map} +1 -1
  90. package/dist/{chunk-L5A3KR7R.js → chunk-LUQBG637.js} +3 -3
  91. package/dist/{chunk-6QLCS7ET.js → chunk-LZN6DTFI.js} +2 -2
  92. package/dist/{chunk-NIXRB5BP.js → chunk-MMWX5OT5.js} +2 -2
  93. package/dist/{chunk-JA25QG5M.js → chunk-N6EWQ5VB.js} +622 -119
  94. package/dist/chunk-N6EWQ5VB.js.map +1 -0
  95. package/dist/{chunk-UOZOWN73.js → chunk-ND6S2DKC.js} +2 -2
  96. package/dist/{chunk-WFWFXDNS.js → chunk-NHEKQWFI.js} +2 -2
  97. package/dist/{chunk-2ZFD2UJC.js → chunk-NIUHKKMM.js} +9 -9
  98. package/dist/{chunk-XA34THLF.js → chunk-NK4LGBGQ.js} +4 -4
  99. package/dist/{chunk-JSWKVZCR.js → chunk-NUZ7ROUZ.js} +2 -2
  100. package/dist/{chunk-DHU2AQ6T.js → chunk-O3NGOHXQ.js} +2 -2
  101. package/dist/{chunk-ZBUAX4EF.js → chunk-O6VOR4NH.js} +2 -2
  102. package/dist/{chunk-JZ4EDEIP.js → chunk-ODBOHPZU.js} +3 -3
  103. package/dist/{chunk-5UUJE4FP.js → chunk-OK44MD3C.js} +2 -2
  104. package/dist/{chunk-ECGXA4LT.js → chunk-OR3OHKU6.js} +2 -2
  105. package/dist/{chunk-ZWF3EWZA.js → chunk-P6FATPXQ.js} +2 -2
  106. package/dist/{chunk-PCYPXLEX.js → chunk-PBEHTFUG.js} +6 -6
  107. package/dist/{chunk-7CT6SX4M.js → chunk-PFHDQY5L.js} +3 -3
  108. package/dist/{chunk-PTJY5R3O.js → chunk-PIO6NW7O.js} +2 -2
  109. package/dist/{chunk-TMIJAR2X.js → chunk-PREYKC76.js} +3 -3
  110. package/dist/{chunk-ZHQJAV6D.js → chunk-PU5ZEV65.js} +2 -2
  111. package/dist/{chunk-UNSQZSZP.js → chunk-PWAMX5KU.js} +2 -2
  112. package/dist/{chunk-GETUTTZU.js → chunk-PZN76MMV.js} +4 -4
  113. package/dist/{chunk-ABU6A4Z5.js → chunk-Q4DBU5RM.js} +2 -2
  114. package/dist/{chunk-2WJKJZSO.js → chunk-QHG7GQKM.js} +2 -2
  115. package/dist/{chunk-UAKY6E4N.js → chunk-QNOWNCZS.js} +2 -2
  116. package/dist/{chunk-JPSL5GIZ.js → chunk-QQLXKDGC.js} +3 -3
  117. package/dist/{chunk-45VHWE4C.js → chunk-QVUMKG3Z.js} +271 -69
  118. package/dist/chunk-QVUMKG3Z.js.map +1 -0
  119. package/dist/{chunk-OK57EATL.js → chunk-R4GLRJ55.js} +2 -2
  120. package/dist/{chunk-B65CC6Z6.js → chunk-RF5WDM25.js} +2 -2
  121. package/dist/{chunk-G46JSSVX.js → chunk-RKBCUP5D.js} +7 -7
  122. package/dist/{chunk-GCUMOKTN.js → chunk-S2ORTQGS.js} +3 -3
  123. package/dist/{chunk-MRJDLXI3.js → chunk-SVXFCCSX.js} +8 -8
  124. package/dist/{chunk-BUE7R3B5.js → chunk-SXPLIRQH.js} +2 -2
  125. package/dist/{chunk-5LMCVBMY.js → chunk-T5EXREMW.js} +5 -5
  126. package/dist/{chunk-PT2YCQVK.js → chunk-TBVDI3LY.js} +4 -4
  127. package/dist/{chunk-BMHQHH7Q.js → chunk-TLIFNRU5.js} +2 -2
  128. package/dist/{chunk-YKGJ44Z7.js → chunk-TU6ZJTYT.js} +3 -3
  129. package/dist/{chunk-FSQNGPHH.js → chunk-U277K5GR.js} +612 -175
  130. package/dist/chunk-U277K5GR.js.map +1 -0
  131. package/dist/{chunk-55P6OBB7.js → chunk-U43RSPPX.js} +2 -2
  132. package/dist/{chunk-K7RW7FI4.js → chunk-UADW5NOU.js} +5 -5
  133. package/dist/{chunk-GRS2HIV6.js → chunk-UMV5GBTJ.js} +2 -2
  134. package/dist/{chunk-4UIP3QNW.js → chunk-UNAMWK2Q.js} +2 -2
  135. package/dist/{chunk-J4KAPKBJ.js → chunk-UORWAG7K.js} +2 -2
  136. package/dist/{chunk-V55JASXO.js → chunk-UQRKAM2R.js} +3 -3
  137. package/dist/{chunk-2ELOCEXE.js → chunk-URGHKZPL.js} +1 -1
  138. package/dist/chunk-URGHKZPL.js.map +1 -0
  139. package/dist/{chunk-ZMVSKYTJ.js → chunk-VLRY2UH4.js} +10 -10
  140. package/dist/{chunk-SPPOUJLN.js → chunk-VZFTON37.js} +2 -2
  141. package/dist/{chunk-CAD7N6HQ.js → chunk-WIUH6EJ7.js} +10 -10
  142. package/dist/chunk-WIUH6EJ7.js.map +1 -0
  143. package/dist/{chunk-YQFBH5ZJ.js → chunk-WQUIJPN4.js} +3 -3
  144. package/dist/{chunk-4J3MNVVX.js → chunk-WRLWEYHY.js} +7 -1
  145. package/dist/{chunk-4J3MNVVX.js.map → chunk-WRLWEYHY.js.map} +1 -1
  146. package/dist/{chunk-NZULV7LK.js → chunk-WVQDY3UM.js} +4 -4
  147. package/dist/{chunk-3Y5JLSXS.js → chunk-X5RGG3ZW.js} +2 -2
  148. package/dist/{chunk-PFCTSXHU.js → chunk-X6Z2SIRF.js} +2 -2
  149. package/dist/{chunk-UHFGK6YA.js → chunk-XQGKS4OW.js} +3 -3
  150. package/dist/{chunk-L2F3CFCH.js → chunk-Y22JWHCP.js} +4 -4
  151. package/dist/{chunk-C53ER7AG.js → chunk-YVA6UPRN.js} +2 -2
  152. package/dist/{chunk-226V6XXJ.js → chunk-Z2KP6PNF.js} +6 -6
  153. package/dist/{chunk-G5EDYVSE.js → chunk-ZK2WT532.js} +5 -5
  154. package/dist/{chunk-SFCD6OU7.js → chunk-ZNVBCKMV.js} +2 -2
  155. package/dist/{chunk-BU2ABHFW.js → chunk-ZOFNZLAA.js} +4 -4
  156. package/dist/{chunk-X2RP4TO5.js → chunk-ZVJKHGE5.js} +7 -7
  157. package/dist/classified/index.js +5 -5
  158. package/dist/{classified-marker-KHDOYIJB.js → classified-marker-7HXDMYHI.js} +3 -3
  159. package/dist/collection-facade-V63BEBGU.js +41 -0
  160. package/dist/{computed-XMFTHAXV.js → computed-LZLSYOPG.js} +3 -3
  161. package/dist/consent/index.js +8 -8
  162. package/dist/cover/index.js +8 -8
  163. package/dist/custody/index.js +12 -12
  164. package/dist/{dead-filter-CXV5NS67.js → dead-filter-PZIJ4F4G.js} +10 -10
  165. package/dist/debug/index.js +7 -7
  166. package/dist/delegation-7SSGIETH.js +26 -0
  167. package/dist/derivations/index.js +22 -22
  168. package/dist/derive-IMI3BMDS.js +20 -0
  169. package/dist/directory/index.js +9 -9
  170. package/dist/{dispatch-2MQFMEGY.js → dispatch-4BUYPWMJ.js} +19 -19
  171. package/dist/{dispatch-OFDA4WQV.js → dispatch-KOPDDPEQ.js} +5 -5
  172. package/dist/executor-7SY3M6TZ.js +8 -0
  173. package/dist/executor-SNHW4ELF.js +35 -0
  174. package/dist/executor-Z3IKK7G3.js +8 -0
  175. package/dist/export-accessible-O7DIVFUO.js +22 -0
  176. package/dist/extract-partition-ELZEJKXM.js +35 -0
  177. package/dist/{fanout-sidecar-BO67PCPO.js → fanout-sidecar-FYDRL7F3.js} +8 -8
  178. package/dist/find-KWB2RYWJ.js +10 -0
  179. package/dist/forget/index.js +8 -8
  180. package/dist/guards/index.js +4 -4
  181. package/dist/history/index.js +15 -13
  182. package/dist/history/index.js.map +1 -1
  183. package/dist/i18n/index.js +13 -13
  184. package/dist/index.d.ts +3 -2
  185. package/dist/index.js +111 -107
  186. package/dist/index.js.map +1 -1
  187. package/dist/indexing/index.js +5 -5
  188. package/dist/introspection/index.js +10 -10
  189. package/dist/issue-5ZHXK4HJ.js +19 -0
  190. package/dist/kernel/collection.d.ts +85 -6
  191. package/dist/kernel/constants.d.ts +7 -0
  192. package/dist/kernel/errors.d.ts +9 -0
  193. package/dist/kernel/merge-authority.d.ts +5 -1
  194. package/dist/kernel/noydb.d.ts +116 -21
  195. package/dist/kernel/rejection-seal.d.ts +13 -0
  196. package/dist/kernel/sync-wiring.d.ts +55 -0
  197. package/dist/kernel/types.d.ts +366 -8
  198. package/dist/kernel/vault.d.ts +39 -5
  199. package/dist/{ledger-MSJGWKGW.js → ledger-UFJCB6T5.js} +10 -10
  200. package/dist/liberate-OEOSNNFH.js +25 -0
  201. package/dist/{link-set-QXXSPPHL.js → link-set-KMUBFN2L.js} +10 -10
  202. package/dist/{managed-secret-VSK7ANQI.js → managed-secret-H5WYSJ46.js} +9 -9
  203. package/dist/materialized-views/index.js +25 -25
  204. package/dist/{migrate-cek-GEBFYBDC.js → migrate-cek-SPESQAAO.js} +2 -2
  205. package/dist/money/index.js +5 -5
  206. package/dist/noydb-QDZ4QIKO.js +100 -0
  207. package/dist/on/index.js +12 -12
  208. package/dist/overlay-views/index.js +4 -4
  209. package/dist/periods/index.js +11 -11
  210. package/dist/pod/index.js +66 -64
  211. package/dist/{pod-handle-YE7CT66T.js → pod-handle-GJLCOUGK.js} +8 -8
  212. package/dist/policy/index.js +9 -9
  213. package/dist/port/at/index.d.ts +1 -1
  214. package/dist/port/by/index.d.ts +1 -1
  215. package/dist/port/on/index.d.ts +1 -1
  216. package/dist/port/with/admission-authority.d.ts +34 -0
  217. package/dist/port/with/broker-strategy.d.ts +10 -0
  218. package/dist/port/with/rejection-courier.d.ts +37 -0
  219. package/dist/port/with/restore-host.d.ts +33 -0
  220. package/dist/port/with/service-bus.d.ts +18 -0
  221. package/dist/port/with/team-strategy.d.ts +2 -2
  222. package/dist/port/with/write-hooks.d.ts +2 -0
  223. package/dist/portability/index.js +8 -8
  224. package/dist/{post-register-QC5TEAW3.js → post-register-2AC2STHC.js} +6 -6
  225. package/dist/query/all/index.js +15 -15
  226. package/dist/query/index.js +7 -7
  227. package/dist/query/live/index.js +7 -7
  228. package/dist/query/reduce/index.js +10 -10
  229. package/dist/query/relate/index.js +9 -9
  230. package/dist/reduce/index.js +8 -8
  231. package/dist/register-PIORIMMR.js +30 -0
  232. package/dist/registry-BIMICFUH.js +23 -0
  233. package/dist/registry-JGWLW53D.js +35 -0
  234. package/dist/registry-SELCBYEQ.js +8 -0
  235. package/dist/registry-W327UNYH.js +8 -0
  236. package/dist/request-withdrawal-K3SXXODI.js +28 -0
  237. package/dist/restore-to-OOPKLAPU.js +66 -0
  238. package/dist/restore-to-OOPKLAPU.js.map +1 -0
  239. package/dist/{reveal-YQTRNQFH.js → reveal-UAPBG743.js} +7 -7
  240. package/dist/revoke-6AFVXTWF.js +24 -0
  241. package/dist/satellites/index.js +1 -1
  242. package/dist/schema-update/index.js +2 -2
  243. package/dist/sealed-record/index.js +11 -11
  244. package/dist/search/index.js +4 -4
  245. package/dist/{seed-JMQTRKRE.js → seed-BVYDPVIW.js} +33 -18
  246. package/dist/seed-BVYDPVIW.js.map +1 -0
  247. package/dist/sequence/index.js +8 -8
  248. package/dist/session/index.js +8 -8
  249. package/dist/shadow/index.js +2 -2
  250. package/dist/signer-TW5MAQJP.js +23 -0
  251. package/dist/snapshots/index.js +9 -9
  252. package/dist/{stale-SKV33PBU.js → stale-CROGJBIJ.js} +9 -9
  253. package/dist/storage-SO2L2Z5J.js +21 -0
  254. package/dist/{store-coordination-provider-Z6HKPOGM.js → store-coordination-provider-2YD2PTTP.js} +9 -9
  255. package/dist/sync/index.js +16 -16
  256. package/dist/sync/index.js.map +1 -1
  257. package/dist/team/index.js +15 -15
  258. package/dist/tiers/index.js +10 -10
  259. package/dist/to/index.js +2 -2
  260. package/dist/transactions/index.js +3 -3
  261. package/dist/util/index.js +1 -1
  262. package/dist/vault-head/index.js +7 -7
  263. package/dist/{verify-KWQIWLGH.js → verify-QWO5UKD6.js} +7 -7
  264. package/dist/walk-3KEOL7BY.js +20 -0
  265. package/dist/with-audit/guards/types.d.ts +2 -0
  266. package/dist/with-audit/tiers/index.d.ts +5 -5
  267. package/dist/with-commit/history/history.d.ts +16 -0
  268. package/dist/with-commit/history/restore-to.d.ts +40 -0
  269. package/dist/with-party/broker/seed.d.ts +4 -0
  270. package/dist/with-party/custody/strategy.d.ts +2 -2
  271. package/dist/with-party/team/delegation.d.ts +41 -11
  272. package/dist/with-party/team/index.d.ts +2 -0
  273. package/dist/with-party/team/keyring.d.ts +133 -3
  274. package/dist/with-party/team/managed-secret.d.ts +1 -1
  275. package/dist/with-party/team/noydb-facade.d.ts +14 -2
  276. package/dist/with-party/team/roster-tag.d.ts +1 -1
  277. package/dist/with-pod/backup.d.ts +9 -17
  278. package/dist/with-sync/active.d.ts +28 -1
  279. package/dist/with-sync/engine.d.ts +59 -2
  280. package/dist/with-sync/index.d.ts +1 -0
  281. package/dist/with-sync/reserved-mirror.d.ts +27 -4
  282. package/dist/with-sync/strategy.d.ts +2 -0
  283. package/dist/withdraw-accessible-OZU525ND.js +25 -0
  284. package/dist/withdraw-accessible-OZU525ND.js.map +1 -0
  285. package/package.json +3 -3
  286. package/dist/api-MSJXVYQG.js +0 -18
  287. package/dist/backup-7RKNZMQO.js.map +0 -1
  288. package/dist/chunk-2A56DSRI.js.map +0 -1
  289. package/dist/chunk-2ELOCEXE.js.map +0 -1
  290. package/dist/chunk-45VHWE4C.js.map +0 -1
  291. package/dist/chunk-72XBVN4J.js.map +0 -1
  292. package/dist/chunk-APFFJN5T.js.map +0 -1
  293. package/dist/chunk-CAD7N6HQ.js.map +0 -1
  294. package/dist/chunk-CB4467G3.js.map +0 -1
  295. package/dist/chunk-FSQNGPHH.js.map +0 -1
  296. package/dist/chunk-GOJQ5DZA.js.map +0 -1
  297. package/dist/chunk-JA25QG5M.js.map +0 -1
  298. package/dist/chunk-JBMMWYOH.js.map +0 -1
  299. package/dist/chunk-VSUQI5Q6.js.map +0 -1
  300. package/dist/chunk-XKBTJGFP.js.map +0 -1
  301. package/dist/chunk-Z3ZXVB2Y.js.map +0 -1
  302. package/dist/collection-facade-LZIF7GWD.js +0 -41
  303. package/dist/delegation-ONLM4JFI.js.map +0 -1
  304. package/dist/derive-3YSIS36W.js +0 -20
  305. package/dist/executor-E6YDJ7YA.js +0 -8
  306. package/dist/executor-NJX3YQQ4.js +0 -35
  307. package/dist/executor-WWM3DD4P.js +0 -8
  308. package/dist/export-accessible-RLHU5G4W.js +0 -22
  309. package/dist/extract-partition-QII2EDCS.js +0 -35
  310. package/dist/find-6M7GYDUZ.js +0 -10
  311. package/dist/issue-LPEEEMPP.js +0 -19
  312. package/dist/liberate-LEKDYKTC.js +0 -25
  313. package/dist/noydb-F2AUF6KL.js +0 -98
  314. package/dist/register-SN72QALV.js +0 -30
  315. package/dist/registry-253FF7C6.js +0 -35
  316. package/dist/registry-3AZWQTDT.js +0 -23
  317. package/dist/registry-7UEBTHWG.js +0 -8
  318. package/dist/registry-IVJ67NFQ.js +0 -8
  319. package/dist/request-withdrawal-UKVJZKX2.js +0 -28
  320. package/dist/revoke-G2KXJQA5.js +0 -24
  321. package/dist/seed-JMQTRKRE.js.map +0 -1
  322. package/dist/signer-IUIYR3CX.js +0 -23
  323. package/dist/storage-NPBYP2SM.js +0 -21
  324. package/dist/walk-F4OLXI5H.js +0 -20
  325. package/dist/withdraw-accessible-ZKPLZ66E.js +0 -25
  326. /package/dist/{api-MSJXVYQG.js.map → api-H4B7ZQXP.js.map} +0 -0
  327. /package/dist/{capsule-57BDK7LG.js.map → capsule-YQKQZPH7.js.map} +0 -0
  328. /package/dist/{chunk-AJFPAHMW.js.map → chunk-27NCEPKM.js.map} +0 -0
  329. /package/dist/{chunk-PGC35KXE.js.map → chunk-2IASHJPS.js.map} +0 -0
  330. /package/dist/{chunk-NYJBYVBG.js.map → chunk-2ODEFG6K.js.map} +0 -0
  331. /package/dist/{chunk-7BMOS4JQ.js.map → chunk-2QH3I7QC.js.map} +0 -0
  332. /package/dist/{chunk-IVMFIKNA.js.map → chunk-2T2TGRWE.js.map} +0 -0
  333. /package/dist/{chunk-G66YXUTY.js.map → chunk-35CNOVQE.js.map} +0 -0
  334. /package/dist/{chunk-OJU67C23.js.map → chunk-3EXQXOQ2.js.map} +0 -0
  335. /package/dist/{chunk-BJH77UY2.js.map → chunk-4KYKRYRT.js.map} +0 -0
  336. /package/dist/{chunk-RDOEOPOI.js.map → chunk-4N4OIVK3.js.map} +0 -0
  337. /package/dist/{chunk-WHOKGHJ3.js.map → chunk-4WLI37WK.js.map} +0 -0
  338. /package/dist/{chunk-RNACRT5H.js.map → chunk-52ZFNK46.js.map} +0 -0
  339. /package/dist/{chunk-QDHHHI5Q.js.map → chunk-5SMCBPJ2.js.map} +0 -0
  340. /package/dist/{chunk-EMAWOGVH.js.map → chunk-654RE5YC.js.map} +0 -0
  341. /package/dist/{chunk-FZXRLNJO.js.map → chunk-6BEBWHNL.js.map} +0 -0
  342. /package/dist/{chunk-EUD3HQM4.js.map → chunk-6WEPFEMJ.js.map} +0 -0
  343. /package/dist/{chunk-YFFMPZPY.js.map → chunk-6WIFF46H.js.map} +0 -0
  344. /package/dist/{chunk-ZVSKSUGI.js.map → chunk-7C7OF26T.js.map} +0 -0
  345. /package/dist/{chunk-QXJXG7DN.js.map → chunk-7IV7GVOS.js.map} +0 -0
  346. /package/dist/{chunk-MQ7YWBQ5.js.map → chunk-7JRLCP2J.js.map} +0 -0
  347. /package/dist/{chunk-QSHATAXJ.js.map → chunk-7ONMS7QI.js.map} +0 -0
  348. /package/dist/{chunk-6WS35E6X.js.map → chunk-A52BK5AY.js.map} +0 -0
  349. /package/dist/{chunk-XXQ5XIYY.js.map → chunk-AMSSAOOB.js.map} +0 -0
  350. /package/dist/{chunk-3V6LZHUO.js.map → chunk-AYOQZJDB.js.map} +0 -0
  351. /package/dist/{chunk-DL6BZKP3.js.map → chunk-B3B6HV5S.js.map} +0 -0
  352. /package/dist/{chunk-5XONHAFD.js.map → chunk-B6EWMGFX.js.map} +0 -0
  353. /package/dist/{chunk-6Y5E4SJU.js.map → chunk-BMAXBTYH.js.map} +0 -0
  354. /package/dist/{chunk-LGGIFKJP.js.map → chunk-BNYDOF2Q.js.map} +0 -0
  355. /package/dist/{chunk-XXNWU5QZ.js.map → chunk-BQJ5ORU5.js.map} +0 -0
  356. /package/dist/{chunk-BYHCKX73.js.map → chunk-CLOSXHR4.js.map} +0 -0
  357. /package/dist/{chunk-5HNW4ZTA.js.map → chunk-CSAN22QG.js.map} +0 -0
  358. /package/dist/{chunk-TZYTMZZY.js.map → chunk-DL4GCSTS.js.map} +0 -0
  359. /package/dist/{chunk-EA4VDI5D.js.map → chunk-DYIR6RC3.js.map} +0 -0
  360. /package/dist/{chunk-PUBI455O.js.map → chunk-EPPAEGH5.js.map} +0 -0
  361. /package/dist/{chunk-BNFNQNEP.js.map → chunk-F7X7MPK4.js.map} +0 -0
  362. /package/dist/{chunk-SNM7LSYG.js.map → chunk-FUHUGKDN.js.map} +0 -0
  363. /package/dist/{chunk-D4V5JJAK.js.map → chunk-GHMINSER.js.map} +0 -0
  364. /package/dist/{chunk-QGFEBNHO.js.map → chunk-GZISWBCJ.js.map} +0 -0
  365. /package/dist/{chunk-OM3SEDI4.js.map → chunk-HTRLQ4ZZ.js.map} +0 -0
  366. /package/dist/{chunk-SWXLZ4HX.js.map → chunk-ICHHNI5E.js.map} +0 -0
  367. /package/dist/{chunk-K673OO6B.js.map → chunk-ID4ZBC3X.js.map} +0 -0
  368. /package/dist/{chunk-H3YM66EI.js.map → chunk-IF2M43G4.js.map} +0 -0
  369. /package/dist/{chunk-QGSNJD3B.js.map → chunk-IFUYLIEY.js.map} +0 -0
  370. /package/dist/{chunk-D5A3GCZ4.js.map → chunk-IPF5ORDI.js.map} +0 -0
  371. /package/dist/{chunk-BVF3SXD7.js.map → chunk-KBIS64X4.js.map} +0 -0
  372. /package/dist/{chunk-RIZTZJX6.js.map → chunk-LJ744WXU.js.map} +0 -0
  373. /package/dist/{chunk-L5A3KR7R.js.map → chunk-LUQBG637.js.map} +0 -0
  374. /package/dist/{chunk-6QLCS7ET.js.map → chunk-LZN6DTFI.js.map} +0 -0
  375. /package/dist/{chunk-NIXRB5BP.js.map → chunk-MMWX5OT5.js.map} +0 -0
  376. /package/dist/{chunk-UOZOWN73.js.map → chunk-ND6S2DKC.js.map} +0 -0
  377. /package/dist/{chunk-WFWFXDNS.js.map → chunk-NHEKQWFI.js.map} +0 -0
  378. /package/dist/{chunk-2ZFD2UJC.js.map → chunk-NIUHKKMM.js.map} +0 -0
  379. /package/dist/{chunk-XA34THLF.js.map → chunk-NK4LGBGQ.js.map} +0 -0
  380. /package/dist/{chunk-JSWKVZCR.js.map → chunk-NUZ7ROUZ.js.map} +0 -0
  381. /package/dist/{chunk-DHU2AQ6T.js.map → chunk-O3NGOHXQ.js.map} +0 -0
  382. /package/dist/{chunk-ZBUAX4EF.js.map → chunk-O6VOR4NH.js.map} +0 -0
  383. /package/dist/{chunk-JZ4EDEIP.js.map → chunk-ODBOHPZU.js.map} +0 -0
  384. /package/dist/{chunk-5UUJE4FP.js.map → chunk-OK44MD3C.js.map} +0 -0
  385. /package/dist/{chunk-ECGXA4LT.js.map → chunk-OR3OHKU6.js.map} +0 -0
  386. /package/dist/{chunk-ZWF3EWZA.js.map → chunk-P6FATPXQ.js.map} +0 -0
  387. /package/dist/{chunk-PCYPXLEX.js.map → chunk-PBEHTFUG.js.map} +0 -0
  388. /package/dist/{chunk-7CT6SX4M.js.map → chunk-PFHDQY5L.js.map} +0 -0
  389. /package/dist/{chunk-PTJY5R3O.js.map → chunk-PIO6NW7O.js.map} +0 -0
  390. /package/dist/{chunk-TMIJAR2X.js.map → chunk-PREYKC76.js.map} +0 -0
  391. /package/dist/{chunk-ZHQJAV6D.js.map → chunk-PU5ZEV65.js.map} +0 -0
  392. /package/dist/{chunk-UNSQZSZP.js.map → chunk-PWAMX5KU.js.map} +0 -0
  393. /package/dist/{chunk-GETUTTZU.js.map → chunk-PZN76MMV.js.map} +0 -0
  394. /package/dist/{chunk-ABU6A4Z5.js.map → chunk-Q4DBU5RM.js.map} +0 -0
  395. /package/dist/{chunk-2WJKJZSO.js.map → chunk-QHG7GQKM.js.map} +0 -0
  396. /package/dist/{chunk-UAKY6E4N.js.map → chunk-QNOWNCZS.js.map} +0 -0
  397. /package/dist/{chunk-JPSL5GIZ.js.map → chunk-QQLXKDGC.js.map} +0 -0
  398. /package/dist/{chunk-OK57EATL.js.map → chunk-R4GLRJ55.js.map} +0 -0
  399. /package/dist/{chunk-B65CC6Z6.js.map → chunk-RF5WDM25.js.map} +0 -0
  400. /package/dist/{chunk-G46JSSVX.js.map → chunk-RKBCUP5D.js.map} +0 -0
  401. /package/dist/{chunk-GCUMOKTN.js.map → chunk-S2ORTQGS.js.map} +0 -0
  402. /package/dist/{chunk-MRJDLXI3.js.map → chunk-SVXFCCSX.js.map} +0 -0
  403. /package/dist/{chunk-BUE7R3B5.js.map → chunk-SXPLIRQH.js.map} +0 -0
  404. /package/dist/{chunk-5LMCVBMY.js.map → chunk-T5EXREMW.js.map} +0 -0
  405. /package/dist/{chunk-PT2YCQVK.js.map → chunk-TBVDI3LY.js.map} +0 -0
  406. /package/dist/{chunk-BMHQHH7Q.js.map → chunk-TLIFNRU5.js.map} +0 -0
  407. /package/dist/{chunk-YKGJ44Z7.js.map → chunk-TU6ZJTYT.js.map} +0 -0
  408. /package/dist/{chunk-55P6OBB7.js.map → chunk-U43RSPPX.js.map} +0 -0
  409. /package/dist/{chunk-K7RW7FI4.js.map → chunk-UADW5NOU.js.map} +0 -0
  410. /package/dist/{chunk-GRS2HIV6.js.map → chunk-UMV5GBTJ.js.map} +0 -0
  411. /package/dist/{chunk-4UIP3QNW.js.map → chunk-UNAMWK2Q.js.map} +0 -0
  412. /package/dist/{chunk-J4KAPKBJ.js.map → chunk-UORWAG7K.js.map} +0 -0
  413. /package/dist/{chunk-V55JASXO.js.map → chunk-UQRKAM2R.js.map} +0 -0
  414. /package/dist/{chunk-ZMVSKYTJ.js.map → chunk-VLRY2UH4.js.map} +0 -0
  415. /package/dist/{chunk-SPPOUJLN.js.map → chunk-VZFTON37.js.map} +0 -0
  416. /package/dist/{chunk-YQFBH5ZJ.js.map → chunk-WQUIJPN4.js.map} +0 -0
  417. /package/dist/{chunk-NZULV7LK.js.map → chunk-WVQDY3UM.js.map} +0 -0
  418. /package/dist/{chunk-3Y5JLSXS.js.map → chunk-X5RGG3ZW.js.map} +0 -0
  419. /package/dist/{chunk-PFCTSXHU.js.map → chunk-X6Z2SIRF.js.map} +0 -0
  420. /package/dist/{chunk-UHFGK6YA.js.map → chunk-XQGKS4OW.js.map} +0 -0
  421. /package/dist/{chunk-L2F3CFCH.js.map → chunk-Y22JWHCP.js.map} +0 -0
  422. /package/dist/{chunk-C53ER7AG.js.map → chunk-YVA6UPRN.js.map} +0 -0
  423. /package/dist/{chunk-226V6XXJ.js.map → chunk-Z2KP6PNF.js.map} +0 -0
  424. /package/dist/{chunk-G5EDYVSE.js.map → chunk-ZK2WT532.js.map} +0 -0
  425. /package/dist/{chunk-SFCD6OU7.js.map → chunk-ZNVBCKMV.js.map} +0 -0
  426. /package/dist/{chunk-BU2ABHFW.js.map → chunk-ZOFNZLAA.js.map} +0 -0
  427. /package/dist/{chunk-X2RP4TO5.js.map → chunk-ZVJKHGE5.js.map} +0 -0
  428. /package/dist/{classified-marker-KHDOYIJB.js.map → classified-marker-7HXDMYHI.js.map} +0 -0
  429. /package/dist/{collection-facade-LZIF7GWD.js.map → collection-facade-V63BEBGU.js.map} +0 -0
  430. /package/dist/{computed-XMFTHAXV.js.map → computed-LZLSYOPG.js.map} +0 -0
  431. /package/dist/{dead-filter-CXV5NS67.js.map → dead-filter-PZIJ4F4G.js.map} +0 -0
  432. /package/dist/{derive-3YSIS36W.js.map → delegation-7SSGIETH.js.map} +0 -0
  433. /package/dist/{executor-E6YDJ7YA.js.map → derive-IMI3BMDS.js.map} +0 -0
  434. /package/dist/{dispatch-2MQFMEGY.js.map → dispatch-4BUYPWMJ.js.map} +0 -0
  435. /package/dist/{dispatch-OFDA4WQV.js.map → dispatch-KOPDDPEQ.js.map} +0 -0
  436. /package/dist/{executor-NJX3YQQ4.js.map → executor-7SY3M6TZ.js.map} +0 -0
  437. /package/dist/{executor-WWM3DD4P.js.map → executor-SNHW4ELF.js.map} +0 -0
  438. /package/dist/{export-accessible-RLHU5G4W.js.map → executor-Z3IKK7G3.js.map} +0 -0
  439. /package/dist/{extract-partition-QII2EDCS.js.map → export-accessible-O7DIVFUO.js.map} +0 -0
  440. /package/dist/{find-6M7GYDUZ.js.map → extract-partition-ELZEJKXM.js.map} +0 -0
  441. /package/dist/{fanout-sidecar-BO67PCPO.js.map → fanout-sidecar-FYDRL7F3.js.map} +0 -0
  442. /package/dist/{issue-LPEEEMPP.js.map → find-KWB2RYWJ.js.map} +0 -0
  443. /package/dist/{ledger-MSJGWKGW.js.map → issue-5ZHXK4HJ.js.map} +0 -0
  444. /package/dist/{liberate-LEKDYKTC.js.map → ledger-UFJCB6T5.js.map} +0 -0
  445. /package/dist/{link-set-QXXSPPHL.js.map → liberate-OEOSNNFH.js.map} +0 -0
  446. /package/dist/{managed-secret-VSK7ANQI.js.map → link-set-KMUBFN2L.js.map} +0 -0
  447. /package/dist/{noydb-F2AUF6KL.js.map → managed-secret-H5WYSJ46.js.map} +0 -0
  448. /package/dist/{migrate-cek-GEBFYBDC.js.map → migrate-cek-SPESQAAO.js.map} +0 -0
  449. /package/dist/{register-SN72QALV.js.map → noydb-QDZ4QIKO.js.map} +0 -0
  450. /package/dist/{pod-handle-YE7CT66T.js.map → pod-handle-GJLCOUGK.js.map} +0 -0
  451. /package/dist/{post-register-QC5TEAW3.js.map → post-register-2AC2STHC.js.map} +0 -0
  452. /package/dist/{registry-253FF7C6.js.map → register-PIORIMMR.js.map} +0 -0
  453. /package/dist/{registry-3AZWQTDT.js.map → registry-BIMICFUH.js.map} +0 -0
  454. /package/dist/{registry-7UEBTHWG.js.map → registry-JGWLW53D.js.map} +0 -0
  455. /package/dist/{registry-IVJ67NFQ.js.map → registry-SELCBYEQ.js.map} +0 -0
  456. /package/dist/{request-withdrawal-UKVJZKX2.js.map → registry-W327UNYH.js.map} +0 -0
  457. /package/dist/{revoke-G2KXJQA5.js.map → request-withdrawal-K3SXXODI.js.map} +0 -0
  458. /package/dist/{reveal-YQTRNQFH.js.map → reveal-UAPBG743.js.map} +0 -0
  459. /package/dist/{signer-IUIYR3CX.js.map → revoke-6AFVXTWF.js.map} +0 -0
  460. /package/dist/{stale-SKV33PBU.js.map → signer-TW5MAQJP.js.map} +0 -0
  461. /package/dist/{storage-NPBYP2SM.js.map → stale-CROGJBIJ.js.map} +0 -0
  462. /package/dist/{walk-F4OLXI5H.js.map → storage-SO2L2Z5J.js.map} +0 -0
  463. /package/dist/{store-coordination-provider-Z6HKPOGM.js.map → store-coordination-provider-2YD2PTTP.js.map} +0 -0
  464. /package/dist/{verify-KWQIWLGH.js.map → verify-QWO5UKD6.js.map} +0 -0
  465. /package/dist/{withdraw-accessible-ZKPLZ66E.js.map → walk-3KEOL7BY.js.map} +0 -0
@@ -8,15 +8,15 @@ import {
8
8
  decodeIdxId,
9
9
  encodeIdxId,
10
10
  isIdxId
11
- } from "../chunk-NYJBYVBG.js";
11
+ } from "../chunk-2ODEFG6K.js";
12
12
  import {
13
13
  CollectionIndexes
14
- } from "../chunk-3V6LZHUO.js";
14
+ } from "../chunk-AYOQZJDB.js";
15
15
  import "../chunk-SUZKW6UR.js";
16
16
  import "../chunk-4CFHL5RY.js";
17
- import "../chunk-BUE7R3B5.js";
18
- import "../chunk-PTJY5R3O.js";
19
- import "../chunk-VSUQI5Q6.js";
17
+ import "../chunk-SXPLIRQH.js";
18
+ import "../chunk-PIO6NW7O.js";
19
+ import "../chunk-2RH5SEY7.js";
20
20
 
21
21
  // src/with-lookup/indexing/active.ts
22
22
  function withIndexing() {
@@ -1,7 +1,7 @@
1
1
  import "../chunk-2DX4JCRI.js";
2
2
  import {
3
3
  dumpVaultSchema
4
- } from "../chunk-EMAWOGVH.js";
4
+ } from "../chunk-654RE5YC.js";
5
5
  import {
6
6
  applyListProjection
7
7
  } from "../chunk-VG2ZSFYD.js";
@@ -12,17 +12,17 @@ import {
12
12
  import {
13
13
  jsonSchemaToFields
14
14
  } from "../chunk-VYYM3MEN.js";
15
- import "../chunk-J4KAPKBJ.js";
15
+ import "../chunk-UORWAG7K.js";
16
16
  import "../chunk-Y2NBBT6K.js";
17
- import "../chunk-H3YM66EI.js";
18
- import "../chunk-4J3MNVVX.js";
19
- import "../chunk-ZBUAX4EF.js";
20
- import "../chunk-SPPOUJLN.js";
17
+ import "../chunk-IF2M43G4.js";
18
+ import "../chunk-WRLWEYHY.js";
19
+ import "../chunk-O6VOR4NH.js";
20
+ import "../chunk-VZFTON37.js";
21
21
  import "../chunk-NH2UOV3B.js";
22
- import "../chunk-OM3SEDI4.js";
23
- import "../chunk-PUBI455O.js";
24
- import "../chunk-2ELOCEXE.js";
25
- import "../chunk-VSUQI5Q6.js";
22
+ import "../chunk-HTRLQ4ZZ.js";
23
+ import "../chunk-EPPAEGH5.js";
24
+ import "../chunk-URGHKZPL.js";
25
+ import "../chunk-2RH5SEY7.js";
26
26
  export {
27
27
  FieldMetaUnknownFieldError,
28
28
  applyListProjection,
@@ -0,0 +1,19 @@
1
+ import {
2
+ issueAttestationCore
3
+ } from "./chunk-5SMCBPJ2.js";
4
+ import "./chunk-B6EWMGFX.js";
5
+ import "./chunk-IPF5ORDI.js";
6
+ import "./chunk-GMKGGY7V.js";
7
+ import "./chunk-4AOERLTV.js";
8
+ import "./chunk-WRLWEYHY.js";
9
+ import "./chunk-O6VOR4NH.js";
10
+ import "./chunk-VZFTON37.js";
11
+ import "./chunk-NH2UOV3B.js";
12
+ import "./chunk-HTRLQ4ZZ.js";
13
+ import "./chunk-EPPAEGH5.js";
14
+ import "./chunk-URGHKZPL.js";
15
+ import "./chunk-2RH5SEY7.js";
16
+ export {
17
+ issueAttestationCore
18
+ };
19
+ //# sourceMappingURL=issue-5ZHXK4HJ.js.map
@@ -666,6 +666,38 @@ export declare class Collection<T, S extends keyof T = never, Q extends keyof T
666
666
  * never half-writes the receiver.
667
667
  */
668
668
  validateInput(record: T): Promise<T>;
669
+ /**
670
+ * core#74 — ADMISSION of a record arriving by sync. Runs the same
671
+ * `beforePut` gate bus (guards, periods) and `db.onBeforeWrite` hooks a
672
+ * local `put` runs, on the DECRYPTED incoming record against this device's
673
+ * current state, with `origin: 'sync-apply'`. A throw is a refusal; the
674
+ * engine parks the envelope and leaves the local copy untouched.
675
+ *
676
+ * Not gated, deliberately: tombstones and delete markers (erasure wins, as
677
+ * on every other path), elevated envelopes (#707 — invisible to gate
678
+ * handlers), and a record this session holds no key for (it cannot judge;
679
+ * the merge authority's stated residue, #1042). Schema validation does not
680
+ * run — the writer validated. Zero cost when nothing is registered.
681
+ * @internal
682
+ */
683
+ /**
684
+ * @internal core#74 — judge a record against THIS device's gates and hooks.
685
+ *
686
+ * ⚠️ core#108: under `'push-recheck'` the record is already in the local
687
+ * store, so `resolveGatePrior` returns the record itself and `existing`
688
+ * equals `incoming` — the state it was written over is gone and cannot be
689
+ * reconstructed. That makes the re-check sound for rules that read AMBIENT
690
+ * state (a closed period, a revoked clearance) and degenerate for rules
691
+ * that compare against a prior, which see a no-op diff and pass. Widening
692
+ * it would need the pre-write snapshot kept in the dirty log, which is a
693
+ * different feature; do not "fix" it by synthesising a prior here.
694
+ */
695
+ _admitRemote(id: string, envelope: EncryptedEnvelope, origin?: 'sync-apply' | 'push-recheck'): Promise<{
696
+ admitted: true;
697
+ } | {
698
+ admitted: false;
699
+ reason: string;
700
+ }>;
669
701
  /**
670
702
  * Resolve the prior record as REAL VALUES for the eager write/delete paths
671
703
  * (history snapshot, ledger patch, index upkeep). The eager cache holds
@@ -739,7 +771,7 @@ export declare class Collection<T, S extends keyof T = never, Q extends keyof T
739
771
  * @internal `wave` (#638 Task 4): when present (the sync/cutover/restore dispatch wave),
740
772
  * an eager MV already refreshed this wave is skipped (per-target dedup, keyed on spec name).
741
773
  */
742
- dispatchMaterializedViews(id: string, record: T, wave?: WaveContext): Promise<void>;
774
+ _dispatchMaterializedViews(id: string, record: T, wave?: WaveContext): Promise<void>;
743
775
  /**
744
776
  * Fire registered derivation strategies for this source collection.
745
777
  * Eager mode runs `derive` inline and writes each output via the
@@ -784,7 +816,7 @@ export declare class Collection<T, S extends keyof T = never, Q extends keyof T
784
816
  * and from `forgetDerivedFanout` (#638 Task 6), which needs the per-target outcome to fill
785
817
  * `ForgetResult.derivedAggregatesRecomputed`/`derivedResidueFrozen`). `wave` (#640): per-target dedup for the sync-apply path; `undefined` on local-delete (byte-identical).
786
818
  */
787
- dispatchRollupsOnDelete(id: string, deleted: T, wave?: WaveContext): Promise<ReadonlyArray<{
819
+ _dispatchRollupsOnDelete(id: string, deleted: T, wave?: WaveContext): Promise<ReadonlyArray<{
788
820
  readonly into: string;
789
821
  readonly parentId: string;
790
822
  readonly outcome: RollupOutcome;
@@ -793,9 +825,9 @@ export declare class Collection<T, S extends keyof T = never, Q extends keyof T
793
825
  _recomputeDeletedRollups(intents: readonly RollupDeleteIntent[], wave: WaveContext): Promise<void>;
794
826
  /** @internal `wave` (#638 Task 4) — threaded to `recomputeRollup` for the sync/cutover/restore
795
827
  * dispatch wave's per-target dedup; `undefined` on the local-write path (byte-identical). */
796
- dispatchDerivations(id: string, record: T, version: number, wave?: WaveContext, prior?: Record<string, unknown> | null): Promise<void>;
828
+ _dispatchDerivations(id: string, record: T, version: number, wave?: WaveContext, prior?: Record<string, unknown> | null): Promise<void>;
797
829
  /** @internal — trigger fan-out for a deleted parent (#1249); see dispatch.ts. */
798
- dispatchTriggerDerivationsOnDelete(id: string, deleted: T): Promise<void>;
830
+ _dispatchTriggerDerivationsOnDelete(id: string, deleted: T): Promise<void>;
799
831
  /**
800
832
  * Delete a record by ID. Runs inside the hub's write-queue tracker
801
833
  * so `hub.writeQueue.pending` reflects this write.
@@ -936,7 +968,7 @@ export declare class Collection<T, S extends keyof T = never, Q extends keyof T
936
968
  * erasure too — forget()'s fanout, GDPR residue. A delete-of-absent contributes 0 either way.
937
969
  * @internal
938
970
  */
939
- dispatchArrayDerivationsOnDelete(id: string, eraseRecordShapeToo?: boolean): Promise<number>;
971
+ _dispatchArrayDerivationsOnDelete(id: string, eraseRecordShapeToo?: boolean): Promise<number>;
940
972
  /**
941
973
  * Mirror of {@link dispatchMaterializedViews} for the delete/forget path — no `_materializedFrom`
942
974
  * skip (record's gone); the `internal` gate at `_doDelete` is the recursion guard. Returns the
@@ -946,7 +978,7 @@ export declare class Collection<T, S extends keyof T = never, Q extends keyof T
946
978
  * manual serves empty until `refreshView()`. `residueUndecodable`/`residueDeclined` (#776/#785) carry `outputCollection:id` entries whose ownership stamp `invalidateMVAtRest` could not decode, resp. decoded+stamp-matched but declined erasure — surfaced, not erased.
947
979
  * @internal
948
980
  */
949
- dispatchMaterializedViewsOnDelete(id: string): Promise<{
981
+ _dispatchMaterializedViewsOnDelete(id: string): Promise<{
950
982
  deleted: number;
951
983
  residueUndecodable: string[];
952
984
  residueDeclined: string[];
@@ -962,6 +994,35 @@ export declare class Collection<T, S extends keyof T = never, Q extends keyof T
962
994
  * each record is locale-resolved before being returned.
963
995
  */
964
996
  list(locale?: LocaleReadOptions): Promise<T[]>;
997
+ /**
998
+ * @internal core#122 — forget everything read from the store, so the next
999
+ * read re-hydrates.
1000
+ *
1001
+ * ⭐ Why this is needed even though the vault drops its collection cache on
1002
+ * restore: `vault.collection(name)` hands back the instance FROM that cache,
1003
+ * so a handle the caller is already holding IS one of the objects in it.
1004
+ * Dropping the map makes the NEXT `vault.collection()` build a fresh
1005
+ * instance and leaves the caller's handle answering from its own pre-restore
1006
+ * cache — correct for the next caller, invisible to the current one, and the
1007
+ * natural shape of restore code holds the handle across the load.
1008
+ *
1009
+ * ⛔ Not a general "refresh": it deliberately does NOT re-read here. The
1010
+ * next read pays for it, so a restore that touches fifty collections does
1011
+ * not hydrate fifty times for a caller who will look at one.
1012
+ */
1013
+ _invalidateAfterRestore(): void;
1014
+ /**
1015
+ * core#103 — `list()` with the hub-assigned id alongside each record.
1016
+ *
1017
+ * ⭐ The id is not derivable from a record, so a caller keyed on it
1018
+ * previously had to `get()` per row after `list()`. Tuple order mirrors
1019
+ * `putMany`: `[id, record]` reads the same going in and coming out.
1020
+ *
1021
+ * Same eager-mode requirement and the same locale/Via pipeline as `list()`
1022
+ * — deliberately, so the two cannot drift into answering differently about
1023
+ * the same collection. `list()` is unchanged.
1024
+ */
1025
+ listEntries(locale?: LocaleReadOptions): Promise<Array<readonly [id: string, record: T]>>;
965
1026
  /**
966
1027
  * Scan-mode full-text search over a plain-text `field`. Decrypts the
967
1028
  * collection in memory and ranks records by BM25 against the tokenized query.
@@ -1200,6 +1261,24 @@ export declare class Collection<T, S extends keyof T = never, Q extends keyof T
1200
1261
  items: T[];
1201
1262
  nextCursor: string | null;
1202
1263
  }>;
1264
+ /**
1265
+ * core#103 — `listPage()` with the hub-assigned id alongside each record.
1266
+ *
1267
+ * ⭐ The id is not derivable from the record. An app that stores its own key
1268
+ * in a field is fine; one that relies on the id hub assigned had no bulk
1269
+ * read that returned it and had to `get()` per row to find out — which is
1270
+ * the shape pilot-1 hit writing a rule keyed on the record id.
1271
+ *
1272
+ * Tuple order mirrors `putMany`, so `[id, record]` reads the same way going
1273
+ * in and coming out. `listPage()` is unchanged and delegates here.
1274
+ */
1275
+ listPageEntries(opts?: {
1276
+ cursor?: string;
1277
+ limit?: number;
1278
+ }): Promise<{
1279
+ items: Array<readonly [id: string, record: T]>;
1280
+ nextCursor: string | null;
1281
+ }>;
1203
1282
  /**
1204
1283
  * Stream every record in the collection page-by-page as an async
1205
1284
  * iterable, with chainable `.where()` / `.filter()` clauses and a
@@ -52,3 +52,10 @@ export declare const ROSTER_KEY_ID = "_roster";
52
52
  * of rewriting every chunk and index row on every revocation.
53
53
  */
54
54
  export declare const BLOB_ADDRESS_KEY_ID = "_blob_addr";
55
+ /**
56
+ * core#96 — the DEK-map slot holding a member's INBOX KEY: the AES key that
57
+ * seals the private half of their inbox key pair (`KeyringFile.inbox_key`).
58
+ * A reserved key, not a collection — never propagated to a grantee (it is
59
+ * per member), never rotated, stripped by `revoke` the way `_roster` is.
60
+ */
61
+ export declare const INBOX_KEY_ID = "_inbox_key";
@@ -622,6 +622,15 @@ export declare class DuplicateStoreKindError extends NoydbError {
622
622
  readonly kind: string;
623
623
  constructor(kind: string);
624
624
  }
625
+ /**
626
+ * core#96 — `updateUser` needs to deliver a DEK to a member whose keyring has
627
+ * no inbox key pair (written before inboxes existed), or the caller is not
628
+ * cleared to amend. The member can still be re-granted with a fresh secret.
629
+ */
630
+ export declare class MemberInboxMissingError extends NoydbError {
631
+ readonly userId: string;
632
+ constructor(userId: string, message?: string);
633
+ }
625
634
  export declare class PrivilegeEscalationError extends NoydbError {
626
635
  readonly offendingCollection: string;
627
636
  constructor(offendingCollection: string, message?: string);
@@ -15,11 +15,15 @@ import type { EnclaveKey } from '../capsule/index.js';
15
15
  */
16
16
  export declare function buildMergeAuthority(
17
17
  /**
18
+ * A GETTER for the DEK map (core#100): the vault reloads its keyring in
19
+ * place after a pull that replaced its file (core#82) — a delivered DEK, a
20
+ * rotation — and an authority that captured the object at wiring kept
21
+ * verifying with the map that no longer opened the records.
18
22
  * Just the DEK map, not the whole keyring. `port-layering` refused a type
19
23
  * import of `UnlockedKeyring` from `with-party` — correctly, and the narrower
20
24
  * shape is better anyway: this needs to look up keys, not to know what a
21
25
  * keyring is.
22
26
  */
23
- keyring: {
27
+ keyring: () => {
24
28
  readonly deks: ReadonlyMap<string, EnclaveKey>;
25
29
  }): MergeAuthority;
@@ -1,5 +1,5 @@
1
- import type { RotateResult, RosterVerifyResult, QuarantineResult } from '../with-party/team/keyring.js';
2
- import type { NoydbOptions, NoydbEventMap, GrantOptions, RevokeOptions, UpdateUserOptions, UserInfo, PushResult, PullResult, RealignResult, PushOptions, PullOptions, SyncStatus, SyncTargetInfo, SyncTargetStatus, NoydbStore, AccessibleVault, ListAccessibleVaultsOptions, QueryAcrossOptions, QueryAcrossResult, TranslatorAuditEntry, WriteConflict, UserApiFactory, ActiveTier, FactorProofBundle, GateName, VaultPolicy } from './types.js';
1
+ import type { RotateResult, RevokeResult, RosterVerifyResult, QuarantineResult } from '../with-party/team/keyring.js';
2
+ import type { NoydbOptions, NoydbEventMap, GrantOptions, RevokeOptions, UpdateUserOptions, UserInfo, PushResult, PullResult, RealignResult, PushOptions, PullOptions, SyncStatus, SyncTarget, SyncTargetInfo, SyncTargetStatus, NoydbStore, AccessibleVault, ListAccessibleVaultsOptions, QueryAcrossOptions, QueryAcrossResult, TranslatorAuditEntry, WriteConflict, UserApiFactory, ActiveTier, FactorProofBundle, GateName, VaultPolicy, SyncRejectedApi, ReplaceRemoteResult } from './types.js';
3
3
  import type { SecretPolicy } from './validation.js';
4
4
  import { type NoydbMesh } from '../port/by/default-provider.js';
5
5
  import type { Cover } from '../with-party/directory/cover/types.js';
@@ -51,6 +51,8 @@ export declare class Noydb {
51
51
  private readonly vaultOpening;
52
52
  private readonly keyringCache;
53
53
  private readonly syncEngines;
54
+ /** core#90 — conflict resolvers registered per vault, replayed onto a target attached after open. */
55
+ private readonly conflictResolvers;
54
56
  /**
55
57
  * Per-vault active session tier — defaults to `1` after a secret
56
58
  * unlock; tier-2 / tier-3 unlocks downgrade it. Used by
@@ -90,10 +92,10 @@ export declare class Noydb {
90
92
  /**
91
93
  * Opt-in sovereign-custody (FR-6) strategy — `NO_CUSTODY` (throwing) unless
92
94
  * `withCustody()` was passed. Kept as a public accessor because `Vault`
93
- * routes `vault.custody.liberate` through `this.noydb.custodyStrategy`.
95
+ * routes `vault.custody.liberate` through `this.noydb._custodyStrategy`.
94
96
  * @internal
95
97
  */
96
- get custodyStrategy(): CustodyStrategy;
98
+ get _custodyStrategy(): CustodyStrategy;
97
99
  private readonly snapshots;
98
100
  private readonly policyManager;
99
101
  /** Pre-resolved policy-gate engine function (mirrors `meshPort`/`userApiFactory` above). */
@@ -176,6 +178,13 @@ export declare class Noydb {
176
178
  /**
177
179
  * Grant access to a user for a vault.
178
180
  *
181
+ * ⚠️ On an EXISTING user this RE-KEYS them: a new KEK from `secret`,
182
+ * authenticator slots dropped, the file overwritten. So it needs the
183
+ * member's CURRENT secret — after `acceptInvite` or `rotateSecret` an
184
+ * owner never holds it, and a re-grant with a stale one locks the member
185
+ * out. To change what an existing member may do, use `updateUser`
186
+ * (core#96); re-grant only to re-key, with a fresh temporary secret.
187
+ *
179
188
  * Gated by `enroll-user`. `STRICT_POLICY` requires a TOTP / email-OTP
180
189
  * factor proof so the operator affirmatively re-asserts identity at
181
190
  * the moment of grant; `PERSONAL_POLICY` accepts a tier-1 unlock alone.
@@ -220,23 +229,37 @@ export declare class Noydb {
220
229
  revokeCustodian(vault: string, options: RevokeOptions, factors?: FactorProofBundle): Promise<void>;
221
230
  /** @internal — revoke-custodian engine, reached only via withCustody().
222
231
  * Mirrors `_grantCustodianImpl` (#267: engine passed in). */
223
- _revokeCustodianImpl(engine: (adapter: NoydbStore, vault: string, callerKeyring: UnlockedKeyring, options: RevokeOptions) => Promise<void>, vault: string, options: RevokeOptions, factors?: FactorProofBundle): Promise<void>;
224
- /**
225
- * Mutate post-grant identity fields on an existing keyring — `role`,
226
- * `displayName`, and/or `permissions`. Pure plaintext-header rewrite:
227
- * no DEK rewrap, no KEK required, no authenticator slots touched.
228
- * Tier-2 enrollments and recovery codes survive.
232
+ _revokeCustodianImpl(engine: (adapter: NoydbStore, vault: string, callerKeyring: UnlockedKeyring, options: RevokeOptions) => Promise<RevokeResult>, vault: string, options: RevokeOptions, factors?: FactorProofBundle): Promise<void>;
233
+ /**
234
+ * Change what an EXISTING member may do — `role`, `displayName`, and/or
235
+ * `permissions` — without holding their secret. The member's KEK, salt
236
+ * and authenticator slots are untouched; tier-2 enrollments and recovery
237
+ * codes survive.
238
+ *
239
+ * core#96 — the keys follow the header. A change that widens access
240
+ * delivers the DEKs the member lacks through their keyring INBOX
241
+ * (sealed to a per-member key pair only their KEK opens; drained at
242
+ * their next tier-1 unlock, or at the next pull of an open session). A
243
+ * change that narrows access drops the DEKs and rotates those
244
+ * collections, as a narrowing `grant` does (#1097). A role change
245
+ * re-registers the member with a configured broker host under a fresh
246
+ * `_broker_member` key. This is the widening path: `db.grant` on an
247
+ * existing user RE-KEYS them from `secret`, so it needs their CURRENT
248
+ * secret — after `acceptInvite` or `rotateSecret` an owner never holds it.
229
249
  *
230
250
  * Different from `db.revoke + db.grant`:
231
251
  *
232
- * - Same `userId`, same DEK wrappings, same `granted_by`, same
233
- * `_users/<keyringId>` envelope. Only the specified header
234
- * fields move. Last-write-wins via the standard keyring put.
252
+ * - Same `userId`, same KEK, same `granted_by`, same
253
+ * `_users/<keyringId>` envelope. Last-write-wins via the standard
254
+ * keyring put.
235
255
  * - No cascade on role demotion (admins demoted to operator keep
236
256
  * the keyrings they previously granted; the cascade rules are
237
257
  * a `db.revoke` concern, not `db.updateUser`).
238
258
  * - Tier-2 slots NOT dropped — the wrapping is unaffected.
239
259
  *
260
+ * @throws `MemberInboxMissingError` when a DEK must be delivered to a
261
+ * member whose keyring predates inboxes — re-grant them once.
262
+ *
240
263
  * Role-elevation guard: BOTH the old and new role must satisfy
241
264
  * `db.grant`'s hierarchy. Owner can do anything; admin manages
242
265
  * admin/operator/viewer/client laterally; admin cannot promote to
@@ -257,6 +280,46 @@ export declare class Noydb {
257
280
  * }, { factors: [{ kind: 'totp' }] })
258
281
  * ```
259
282
  *
283
+ * ## ⚠️ A NARROWING DOES NOT REACH A SESSION THAT IS ALREADY OPEN
284
+ *
285
+ * This writes the target's keyring. It cannot reach into a `Noydb` the
286
+ * target already has open: an eager collection holds the records it
287
+ * hydrated, and nothing polls the keyring, so that session keeps serving
288
+ * rows it read while it still had the key. A FRESH open throws
289
+ * `NoAccessError` correctly (core#101), and so does that session for any
290
+ * collection it had not already hydrated.
291
+ *
292
+ * ⭐ A long-lived admin console — one holding a vault open while changing
293
+ * somebody's permissions — must RE-OPEN the affected session rather than
294
+ * expect its next read to start failing.
295
+ *
296
+ * ## What the window is, MEASURED — it is narrower than it sounds
297
+ *
298
+ * The consumer building that console asked the two questions a security
299
+ * reviewer asks, and reasoning would have got both wrong in the cautious
300
+ * direction. Measured on a synced vault, after `updateUser` narrowed the
301
+ * member away and `rotate()` re-keyed:
302
+ *
303
+ * 1. **Records arriving AFTER the narrowing are not readable.** A `pull()`
304
+ * into the open session brings the new roster, the session reloads its
305
+ * keyring, and reads then throw `NoAccessError` — including for rows it
306
+ * had already cached. ⭐ So with sync on, the window CLOSES at the next
307
+ * pull; it is not open until re-open.
308
+ * 2. **Writes are refused locally.** `put()` throws `ReadOnlyError` on the
309
+ * narrowed collection — the record is never encrypted, never queued, and
310
+ * `push()` carries nothing. Nothing reaches the remote to be judged, so
311
+ * this does not even rest on the admission gate (core#74).
312
+ *
313
+ * ⛔ So it is not a confidentiality hole and not a write hole: no access is
314
+ * gained, nothing new becomes readable, and nothing can be written. What
315
+ * survives is a read of rows the session ALREADY HELD, on a device with no
316
+ * sync or one that has not pulled since.
317
+ *
318
+ * ⚠️ Which is still the window that matters when a narrowing is
319
+ * security-motivated rather than administrative — a departing member, a
320
+ * suspected device. `rotate()` is the answer there and a console should
321
+ * REQUIRE it for that case rather than offer it.
322
+ *
260
323
  * @throws `NoAccessError` when no keyring exists for the target.
261
324
  * @throws `PermissionDeniedError` when the role hierarchy rejects.
262
325
  * @throws `ValidationError` when no field is provided.
@@ -291,6 +354,14 @@ export declare class Noydb {
291
354
  * reaching into internals. See `noy-db rotate` for the CLI wrapper.
292
355
  * Opt-in (#267): throws {@link TeamNotEnabledError} without `withTeam()`.
293
356
  */
357
+ /**
358
+ * core#74 — the records this device's admission gate refused on pull
359
+ * (`PullResult.rejected`, `sync:rejected`), parked under `_sync_rejected`
360
+ * with the envelope intact. `list()` them; `readmit()` applies one after all
361
+ * (bypassing the gate); `discard()` drops the parking record. Per device:
362
+ * a refusal is local to the device that judged it.
363
+ */
364
+ rejected(vault: string): SyncRejectedApi;
294
365
  rotate(vault: string, collections: string[]): Promise<RotateResult>;
295
366
  /**
296
367
  * Verify every `_keyring` file in the vault. Read-only (#1121).
@@ -423,9 +494,13 @@ export declare class Noydb {
423
494
  */
424
495
  queryAcross<T>(vaultIds: string[], fn: (vault: Vault) => Promise<T>, options?: QueryAcrossOptions): Promise<QueryAcrossResult<T>[]>;
425
496
  /**
426
- * @internal True once `close()` has been called. Read by outward
427
- * orchestration frameworks whose entry points can't see the private
428
- * `closed` field.
497
+ * True once `close()` has been called.
498
+ *
499
+ * ⭐ NOT `@internal`, and core#128 removed that tag rather than `_`-prefixing
500
+ * this: the doc's own reason — "read by outward orchestration frameworks
501
+ * whose entry points can't see the private `closed` field" — IS a public
502
+ * contract. Prefixing it would have broken the readers it exists for. The
503
+ * tag was the defect, not the name.
429
504
  */
430
505
  get isClosed(): boolean;
431
506
  /**
@@ -460,6 +535,18 @@ export declare class Noydb {
460
535
  pull(vault: string, options?: PullOptions): Promise<PullResult>;
461
536
  /** core#82 — replace every local envelope that fails to authenticate with the primary target's healthy copy; see `SyncEngine.realign`. */
462
537
  realign(vault: string): Promise<RealignResult>;
538
+ /**
539
+ * core#72 — make THIS device's vault authoritative on its primary target:
540
+ * every local record is written unconditionally (re-versioned above the
541
+ * target's copy where the target moved on), every id the target holds that
542
+ * the local vault does not gets a delete marker, the reserved collections
543
+ * are mirrored, and a new restore EPOCH is written on the target. Every
544
+ * other device's next pull crosses that epoch: its unpushed edits are parked
545
+ * (`db.rejected(vault)`, reason `restore-epoch`), its dirty log dropped, the
546
+ * target adopted wholesale. The act of a restore (`vault.load` then this), or
547
+ * of declaring one replica the truth. Owner/admin, ledgered by the pushes.
548
+ */
549
+ replaceRemote(vault: string): Promise<ReplaceRemoteResult>;
463
550
  /**
464
551
  * Bidirectional sync: pull then push for all targets.
465
552
  * `sync-peer` targets do pull+push; `backup`/`archive` targets do push-only.
@@ -525,7 +612,7 @@ export declare class Noydb {
525
612
  get store(): NoydbStore;
526
613
  /**
527
614
  * Currently-running multi-record transaction, or `null` outside
528
- * Phase 2. `Collection.dispatchDerivations` consults this so a
615
+ * Phase 2. `Collection._dispatchDerivations` consults this so a
529
616
  * recursive derived-output write inside `Collection.put` can register
530
617
  * its envelope onto `ctx._executed` and roll back with the main
531
618
  * staged ops on mid-batch failure.
@@ -582,6 +669,8 @@ export declare class Noydb {
582
669
  */
583
670
  listSyncTargets(vault: string): SyncTargetInfo[];
584
671
  private getSyncEngine;
672
+ /** core#90 — attach a sync target to an OPEN vault (primary when it had none, else keyed by position); records written before it are sent by `push({ full: true })`. Rationale in `kernel/sync-wiring.ts`. */
673
+ attachSyncTarget(vault: string, target: NoydbStore | SyncTarget): Promise<void>;
585
674
  _forEachSyncEngine(vault: string, fn: (engine: SyncEngine) => void): void;
586
675
  on<K extends keyof NoydbEventMap>(event: K, handler: (data: NoydbEventMap[K]) => void): void;
587
676
  off<K extends keyof NoydbEventMap>(event: K, handler: (data: NoydbEventMap[K]) => void): void;
@@ -641,9 +730,15 @@ export declare class Noydb {
641
730
  /** @internal Session that owns this instance's writers. */
642
731
  get _sessionId(): string;
643
732
  /**
644
- * @internal Drain-barrier coordination transport for the schema fence.
645
- * The default store-backed provider reproduces today's fence behavior; a
646
- * `by-*` real-time transport is injected via `mesh`.
733
+ * Drain-barrier coordination transport for the schema fence. The default
734
+ * store-backed provider reproduces today's fence behavior; a `by-*`
735
+ * real-time transport is injected via the `mesh` option.
736
+ *
737
+ * ⭐ NOT `@internal`, and core#128 removed that tag rather than
738
+ * `_`-prefixing this. `db.mesh` is documented as a public handle in
739
+ * `port/by/index.ts` — "a `Noydb` handle (`db.mesh`) without ever naming a
740
+ * `by-*` pack" — and `createNoydb({ mesh })` is a public option. The tag
741
+ * contradicted both; prefixing would have broken the documented handle.
647
742
  */
648
743
  get mesh(): NoydbMesh;
649
744
  /**
@@ -689,7 +784,7 @@ export declare class Noydb {
689
784
  *
690
785
  * @internal — not part of the public API surface
691
786
  */
692
- invokeTranslator(text: string, from: string, to: string, field: string, collection: string): Promise<string>;
787
+ _invokeTranslator(text: string, from: string, to: string, field: string, collection: string): Promise<string>;
693
788
  /**
694
789
  * Read the active policy for a vault. Loads from `_meta/policy` on
695
790
  * first call; subsequent calls hit the in-memory cache. Throws
@@ -0,0 +1,13 @@
1
+ import type { EnclaveKey } from '../capsule/index.js';
2
+ import type { EncryptedEnvelope, SyncRejection } from './types.js';
3
+ /** core#107 — where replicated refusals live. Reserved, declared in `reserved-mirror.ts`. */
4
+ export declare const REJECTIONS_COLLECTION = "_sync_rejections";
5
+ /** `<collection>::<id>` — one live refusal per record, newer `_v` supersedes. */
6
+ export declare const rejectionKey: (collection: string, id: string) => string;
7
+ export declare function sealRejection(collection: string, id: string, rejection: SyncRejection, dek: EnclaveKey, version: number): Promise<EncryptedEnvelope>;
8
+ /**
9
+ * `null` when this device cannot open it. Never throws: a member who does not
10
+ * hold the collection's DEK receives the envelope like everybody else (the
11
+ * mirror is DEK-free and copies it unconditionally) and must skip it quietly.
12
+ */
13
+ export declare function openRejection(collection: string, id: string, envelope: EncryptedEnvelope, dek: EnclaveKey): Promise<SyncRejection | null>;
@@ -0,0 +1,55 @@
1
+ /**
2
+ * The vault-side seams every sync engine of a vault is wired with — at
3
+ * `openVault()` and again on `attachSyncTarget()` (core#90). One function so
4
+ * the two paths cannot drift: `sync` used to be construction-only, which forced
5
+ * pilot-1's direct cloud shape (a target whose credentials come from
6
+ * `vault.broker()`, reachable only once the vault is open) into a two-phase
7
+ * open with a reconstruct in between. Attaching after open needs exactly the
8
+ * wiring open does, plus a replay of the conflict resolvers collections
9
+ * registered before the target existed — hence `conflictResolvers` on the host.
10
+ *
11
+ * @internal
12
+ */
13
+ import type { Vault } from './vault.js';
14
+ import type { CollectionConflictResolver, EncryptedEnvelope, SyncRejection } from './types.js';
15
+ type WiredEngine = {
16
+ setCacheInvalidator(fn: (collection: string, id: string, action: 'put' | 'delete') => Promise<void>): void;
17
+ setGraphBatchController(c: {
18
+ begin(): void;
19
+ flush(): Promise<void>;
20
+ }): void;
21
+ setReservedLookupSource(s: {
22
+ collections(): readonly string[];
23
+ }): void;
24
+ setReservedDictExpander(fn: (names: readonly string[]) => readonly string[]): void;
25
+ setPeriodPullSource(s: {
26
+ periods(): Promise<readonly unknown[]>;
27
+ }): void;
28
+ setRosterReload(seam: {
29
+ userId: string;
30
+ reload: () => Promise<void>;
31
+ }): void;
32
+ setAdmission(a: {
33
+ admit(collection: string, id: string, envelope: EncryptedEnvelope, origin?: 'sync-apply' | 'push-recheck'): Promise<{
34
+ admitted: true;
35
+ } | {
36
+ admitted: false;
37
+ reason: string;
38
+ }>;
39
+ }): void;
40
+ setRejectionCourier(c: {
41
+ seal(collection: string, id: string, rejection: SyncRejection, version: number): Promise<EncryptedEnvelope | null>;
42
+ open(collection: string, id: string, envelope: EncryptedEnvelope): Promise<SyncRejection | null>;
43
+ }): void;
44
+ setCollectionNames(fn: () => readonly string[]): void;
45
+ registerConflictResolver(name: string, resolver: CollectionConflictResolver): void;
46
+ };
47
+ export interface EngineWiringHost {
48
+ readonly user: string;
49
+ readonly keyringCache: ReadonlyMap<string, {
50
+ readonly deks: ReadonlyMap<string, unknown>;
51
+ }>;
52
+ readonly conflictResolvers: ReadonlyMap<string, ReadonlyMap<string, CollectionConflictResolver>>;
53
+ }
54
+ export declare function wireEngine(host: EngineWiringHost, name: string, comp: Vault, engine: WiredEngine): void;
55
+ export {};