@noy-db/hub 0.5.0 → 0.6.0-pre.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (429) hide show
  1. package/dist/api-67SBPMMH.js +20 -0
  2. package/dist/attestation/index.js +18 -18
  3. package/dist/{backup-ENTZYW37.js → backup-GAYWQAFN.js} +16 -11
  4. package/dist/backup-GAYWQAFN.js.map +1 -0
  5. package/dist/blobs/index.js +20 -20
  6. package/dist/broker/index.js +12 -12
  7. package/dist/bundle-handle-5OUAI7CV.js +36 -0
  8. package/dist/bundle-handle-5OUAI7CV.js.map +1 -0
  9. package/dist/cargo/index.js +36 -36
  10. package/dist/{chunk-V3EGXDFN.js → chunk-24UICKTB.js} +3 -3
  11. package/dist/{chunk-77AEMXFA.js → chunk-24ZLWWEO.js} +1 -1
  12. package/dist/chunk-24ZLWWEO.js.map +1 -0
  13. package/dist/{chunk-6PFST3FC.js → chunk-27TCYH6G.js} +5 -5
  14. package/dist/{chunk-PTSVGKSR.js → chunk-2KIV7BEK.js} +2 -2
  15. package/dist/{chunk-3LYMOSY7.js → chunk-2LGDCNFJ.js} +2 -2
  16. package/dist/{chunk-NWK6SVBM.js → chunk-35EBKWQU.js} +3 -3
  17. package/dist/{chunk-QMCWYN6O.js → chunk-3737A6EA.js} +3 -3
  18. package/dist/{chunk-5UKUOMO6.js → chunk-3CLZY46Y.js} +464 -237
  19. package/dist/chunk-3CLZY46Y.js.map +1 -0
  20. package/dist/{chunk-G7ZIMGPQ.js → chunk-3EO7RZLJ.js} +6 -6
  21. package/dist/{chunk-GYJRDALN.js → chunk-3FSX6LDG.js} +2 -2
  22. package/dist/{chunk-4SG5TOXK.js → chunk-3HYWYLXL.js} +2 -2
  23. package/dist/{chunk-653KOQ7A.js → chunk-3IIPWA75.js} +11 -11
  24. package/dist/{chunk-IQ423YMK.js → chunk-3UK6STWO.js} +3 -3
  25. package/dist/chunk-46V67XP5.js +117 -0
  26. package/dist/chunk-46V67XP5.js.map +1 -0
  27. package/dist/{chunk-F5UWVF6Z.js → chunk-4HDYQL3J.js} +2 -2
  28. package/dist/{chunk-J7YVY7TW.js → chunk-4MQDV3HZ.js} +2 -2
  29. package/dist/{chunk-UC5Y7OEJ.js → chunk-4UVDI4XE.js} +3 -3
  30. package/dist/{chunk-4DGBZEV6.js → chunk-4VCWI42L.js} +2 -2
  31. package/dist/{chunk-GIGLOQL7.js → chunk-747LRSOO.js} +2 -2
  32. package/dist/{chunk-W7C7MMIS.js → chunk-7F4DBNSP.js} +3 -3
  33. package/dist/{chunk-5EKL6BXI.js → chunk-7G6VDWXB.js} +3 -3
  34. package/dist/{chunk-PZRYKOKP.js → chunk-AHLJSVRL.js} +2 -2
  35. package/dist/{chunk-L67H6FAQ.js → chunk-AR2JDFAE.js} +2 -2
  36. package/dist/{chunk-TJOUKMWF.js → chunk-BPTZ4K5L.js} +11 -11
  37. package/dist/{chunk-MFW466PX.js → chunk-CCZJJ4I2.js} +4 -4
  38. package/dist/{chunk-OKBNFUUX.js → chunk-CJ73OLMW.js} +2 -2
  39. package/dist/{chunk-FHK6WWUE.js → chunk-CYQOUTMY.js} +3 -3
  40. package/dist/{chunk-LQVRK2XJ.js → chunk-DCMQR46R.js} +5 -5
  41. package/dist/{chunk-QTMZDMJ6.js → chunk-DG27IUVI.js} +2 -2
  42. package/dist/{chunk-XVK7TULT.js → chunk-DMQCLZ4Z.js} +8 -6
  43. package/dist/chunk-DMQCLZ4Z.js.map +1 -0
  44. package/dist/{chunk-IHYSIPEK.js → chunk-DPJTDNUF.js} +68 -34
  45. package/dist/chunk-DPJTDNUF.js.map +1 -0
  46. package/dist/{chunk-PKBONLCP.js → chunk-E6427JU2.js} +2 -2
  47. package/dist/{chunk-KDWBVCIX.js → chunk-EK7DT5BT.js} +220 -13
  48. package/dist/chunk-EK7DT5BT.js.map +1 -0
  49. package/dist/chunk-EPFF7LOX.js +14 -0
  50. package/dist/chunk-EPFF7LOX.js.map +1 -0
  51. package/dist/{chunk-XID22NOA.js → chunk-F3GVO44K.js} +6 -6
  52. package/dist/{chunk-U2ID5A2I.js → chunk-FAXZQ5UF.js} +2 -2
  53. package/dist/{chunk-P6UIVLZK.js → chunk-FNSMZQS4.js} +2 -2
  54. package/dist/{chunk-NIKQQXI2.js → chunk-FUHKW252.js} +2 -2
  55. package/dist/{chunk-623QEHDB.js → chunk-FY343IZR.js} +8 -8
  56. package/dist/{chunk-KPZS5QAQ.js → chunk-GQ3BX5EA.js} +9 -1
  57. package/dist/chunk-GQ3BX5EA.js.map +1 -0
  58. package/dist/{chunk-7P4LL3JH.js → chunk-GS5RT2KK.js} +4 -4
  59. package/dist/{chunk-IM2KST7E.js → chunk-HFKGIBMD.js} +3 -3
  60. package/dist/{chunk-AR5D76T2.js → chunk-HNGSV2YC.js} +129 -1
  61. package/dist/chunk-HNGSV2YC.js.map +1 -0
  62. package/dist/chunk-HNHCQ556.js +63 -0
  63. package/dist/chunk-HNHCQ556.js.map +1 -0
  64. package/dist/chunk-HS7HNYBD.js +91 -0
  65. package/dist/chunk-HS7HNYBD.js.map +1 -0
  66. package/dist/{chunk-FT5Y4VSP.js → chunk-HVQGCKY4.js} +2 -2
  67. package/dist/{chunk-MYSNNMJ3.js → chunk-HXGUIPQB.js} +3 -3
  68. package/dist/{chunk-GTQF32TP.js → chunk-JEM2IGS3.js} +9 -9
  69. package/dist/chunk-JH3OHQM4.js +260 -0
  70. package/dist/chunk-JH3OHQM4.js.map +1 -0
  71. package/dist/{chunk-ALUVACKT.js → chunk-JIUVJ4M7.js} +2 -2
  72. package/dist/{chunk-NJHQE4LT.js → chunk-JRCYZEHU.js} +2 -2
  73. package/dist/{chunk-G3ORJ3IQ.js → chunk-JSRU5W2M.js} +5 -5
  74. package/dist/{chunk-SBGXQK5I.js → chunk-JXIDGFKS.js} +2 -2
  75. package/dist/{chunk-VYYM3MEN.js → chunk-KHKKD62N.js} +16 -2
  76. package/dist/chunk-KHKKD62N.js.map +1 -0
  77. package/dist/{chunk-FQ5CHJR7.js → chunk-KUDZVJKQ.js} +21 -2
  78. package/dist/chunk-KUDZVJKQ.js.map +1 -0
  79. package/dist/{chunk-MGXUAID4.js → chunk-KZ3KMDN3.js} +2 -2
  80. package/dist/{chunk-HGDXJVK2.js → chunk-LBGPO5RL.js} +6 -6
  81. package/dist/{chunk-F2WWHKO7.js → chunk-LTU4FLHG.js} +57 -27
  82. package/dist/chunk-LTU4FLHG.js.map +1 -0
  83. package/dist/{chunk-CLE3TMIS.js → chunk-MC2LFTQM.js} +5 -2
  84. package/dist/{chunk-ECGDJU5R.js → chunk-MJWCLSQL.js} +17 -8
  85. package/dist/chunk-MJWCLSQL.js.map +1 -0
  86. package/dist/{chunk-EAN4TAPC.js → chunk-MSWYQLMQ.js} +2 -2
  87. package/dist/{chunk-WK7ULBTP.js → chunk-MVOWXQHN.js} +5 -3
  88. package/dist/chunk-MVOWXQHN.js.map +1 -0
  89. package/dist/{chunk-K5OFKXUG.js → chunk-MXZ5TSTR.js} +118 -4
  90. package/dist/chunk-MXZ5TSTR.js.map +1 -0
  91. package/dist/{chunk-OKRXXFZZ.js → chunk-MZ5ZFO2D.js} +3 -3
  92. package/dist/{chunk-RQILGK3N.js → chunk-NQCNSVGI.js} +5 -5
  93. package/dist/{chunk-EFJAAFBW.js → chunk-NQRJ5AJO.js} +2 -2
  94. package/dist/{chunk-Q2SEJMP2.js → chunk-NVU7ZMPN.js} +2 -2
  95. package/dist/{chunk-Y2PTKKIN.js → chunk-OF3L2SD6.js} +2 -2
  96. package/dist/{chunk-MDRCEA56.js → chunk-OMSAULZM.js} +11 -11
  97. package/dist/{chunk-SL3PLML2.js → chunk-OSFPNKY4.js} +3 -3
  98. package/dist/{chunk-XX7YB5BI.js → chunk-P7NGLLUF.js} +5 -5
  99. package/dist/{chunk-QITP2JGX.js → chunk-PGAPBZEK.js} +7 -7
  100. package/dist/{chunk-KJNMTE2W.js → chunk-PP5CO2PR.js} +6 -6
  101. package/dist/{chunk-FZAP4JNC.js → chunk-RLWY6Z44.js} +227 -41
  102. package/dist/chunk-RLWY6Z44.js.map +1 -0
  103. package/dist/{chunk-NG4AQIYJ.js → chunk-ROWL352P.js} +5 -5
  104. package/dist/{chunk-V4O6YZSP.js → chunk-RPXL6KSX.js} +4 -4
  105. package/dist/{chunk-ODCEOSJF.js → chunk-SKONR2OL.js} +3 -3
  106. package/dist/{chunk-RM4FIXY2.js → chunk-SRGJET2F.js} +16 -5
  107. package/dist/chunk-SRGJET2F.js.map +1 -0
  108. package/dist/{chunk-QQL6XPPG.js → chunk-T4GPR2IR.js} +2 -2
  109. package/dist/{chunk-WFYKIDCS.js → chunk-TFZ7LLOQ.js} +88 -30
  110. package/dist/chunk-TFZ7LLOQ.js.map +1 -0
  111. package/dist/{chunk-NMYH55MW.js → chunk-TLNNHG3A.js} +4 -4
  112. package/dist/{chunk-DDB626I7.js → chunk-UHXCLPGC.js} +2 -2
  113. package/dist/{chunk-Q6MXHDSE.js → chunk-V5C5NNBR.js} +4 -4
  114. package/dist/{chunk-ELJOLQIG.js → chunk-VBY6ZLJT.js} +7 -7
  115. package/dist/{chunk-RPWMDIGK.js → chunk-VCETL77O.js} +34 -16
  116. package/dist/chunk-VCETL77O.js.map +1 -0
  117. package/dist/{chunk-IJV56FWY.js → chunk-VJFMXYKP.js} +2 -2
  118. package/dist/{chunk-BFG7LD6Z.js → chunk-VMCCGUQB.js} +2 -2
  119. package/dist/{chunk-PWEMRXPO.js → chunk-W3TVWF6N.js} +2 -2
  120. package/dist/{chunk-4TXO442D.js → chunk-WLYIROCJ.js} +2 -2
  121. package/dist/{chunk-MPW6AHTC.js → chunk-XB7LUDKM.js} +4 -4
  122. package/dist/{chunk-YA7Y3EZP.js → chunk-XBLKM73C.js} +10 -10
  123. package/dist/{chunk-LXRVTJ5D.js → chunk-YAWK6AWF.js} +2 -2
  124. package/dist/{chunk-6RDTG6E5.js → chunk-ZGGVOADG.js} +5 -5
  125. package/dist/{chunk-JLBCK7XM.js → chunk-ZK4CO2KZ.js} +6 -6
  126. package/dist/{chunk-DSDXAKIP.js → chunk-ZVF37PKE.js} +34 -5
  127. package/dist/chunk-ZVF37PKE.js.map +1 -0
  128. package/dist/{chunk-NZEGQWQ5.js → chunk-ZWMO5GL5.js} +5 -5
  129. package/dist/{chunk-4MSNAB64.js → chunk-ZXJXDHNK.js} +4 -4
  130. package/dist/classified/index.js +5 -5
  131. package/dist/{classified-marker-ZALWKOBC.js → classified-marker-MH3ON5OL.js} +3 -3
  132. package/dist/collection-facade-AHT7FATG.js +45 -0
  133. package/dist/{computed-YOQCGUCS.js → computed-6G5M3UPH.js} +3 -3
  134. package/dist/consent/index.js +9 -9
  135. package/dist/cover/index.js +3 -3
  136. package/dist/custody/index.js +11 -11
  137. package/dist/{dead-filter-6DVWST6U.js → dead-filter-U575NGSH.js} +2 -2
  138. package/dist/debug/index.js +1 -1
  139. package/dist/{delegation-WMO3Q3O5.js → delegation-PDYL6RWT.js} +10 -10
  140. package/dist/derivations/index.js +12 -12
  141. package/dist/derive-AKT4KU36.js +22 -0
  142. package/dist/directory/index.js +10 -10
  143. package/dist/{dispatch-VNR3TLBX.js → dispatch-4XIJSFTT.js} +5 -5
  144. package/dist/{dispatch-TKV4UCKB.js → dispatch-N5HGVUGU.js} +18 -18
  145. package/dist/{enclave-YWP3QAIQ.js → enclave-OPK24QDR.js} +13 -9
  146. package/dist/executor-3JZ4POTW.js +28 -0
  147. package/dist/executor-CYJQLKKI.js +9 -0
  148. package/dist/executor-S4QIKEHW.js +9 -0
  149. package/dist/export-accessible-CPTP5STN.js +23 -0
  150. package/dist/extract-partition-TWXPHVU7.js +38 -0
  151. package/dist/{fanout-sidecar-WYXO6QQT.js → fanout-sidecar-T2ZGLQFE.js} +9 -9
  152. package/dist/find-RBBYKXI7.js +11 -0
  153. package/dist/forget/index.js +9 -9
  154. package/dist/guards/index.js +4 -4
  155. package/dist/history/index.js +15 -15
  156. package/dist/i18n/index.js +14 -14
  157. package/dist/index.d.ts +35 -7
  158. package/dist/index.js +276 -201
  159. package/dist/index.js.map +1 -1
  160. package/dist/indexing/index.js +3 -3
  161. package/dist/introspection/index.js +12 -12
  162. package/dist/issue-N74C55X6.js +19 -0
  163. package/dist/kernel/collection.d.ts +10 -2
  164. package/dist/kernel/cutover-transform.d.ts +64 -0
  165. package/dist/kernel/enclave/crypto.d.ts +24 -0
  166. package/dist/kernel/enclave/index.d.ts +2 -1
  167. package/dist/kernel/errors.d.ts +123 -0
  168. package/dist/kernel/noydb.d.ts +10 -1
  169. package/dist/kernel/secret-mode.d.ts +59 -0
  170. package/dist/kernel/types.d.ts +98 -7
  171. package/dist/kernel/validation.d.ts +33 -0
  172. package/dist/kernel/vault.d.ts +18 -6
  173. package/dist/{ledger-BLYDYRTQ.js → ledger-DONWFC5M.js} +11 -11
  174. package/dist/liberate-KICI7AJN.js +24 -0
  175. package/dist/{link-set-7F5ZPDEB.js → link-set-2TTP4VLO.js} +11 -11
  176. package/dist/managed-secret-EAOYWRYF.js +27 -0
  177. package/dist/materialized-views/index.js +24 -24
  178. package/dist/money/index.js +3 -3
  179. package/dist/noydb-6W2XGQCS.js +83 -0
  180. package/dist/overlay-views/index.js +6 -6
  181. package/dist/periods/index.js +16 -16
  182. package/dist/pod/index.js +121 -12
  183. package/dist/policy/index.js +4 -4
  184. package/dist/port/to/index.d.ts +3 -1
  185. package/dist/port/to/locator.d.ts +84 -0
  186. package/dist/port/with/device-seal-strategy.d.ts +16 -0
  187. package/dist/port/with/strategies.d.ts +2 -0
  188. package/dist/portability/index.js +8 -8
  189. package/dist/{post-register-PQSY544J.js → post-register-ORQOQJCS.js} +6 -6
  190. package/dist/query/index.js +4 -4
  191. package/dist/reduce/index.js +4 -4
  192. package/dist/register-LHETZRJM.js +32 -0
  193. package/dist/registry-AMAZ6QRZ.js +19 -0
  194. package/dist/registry-CZVINVQH.js +9 -0
  195. package/dist/registry-IKUR2MXD.js +9 -0
  196. package/dist/registry-JRIN447B.js +18 -0
  197. package/dist/request-withdrawal-2DN2RGCO.js +31 -0
  198. package/dist/{reveal-HY7DZST4.js → reveal-AG4SCHUQ.js} +6 -6
  199. package/dist/revoke-ZX4NM2CJ.js +24 -0
  200. package/dist/satellites/index.js +1 -1
  201. package/dist/schema-update/index.js +6 -6
  202. package/dist/sealed-record/index.js +12 -12
  203. package/dist/search/index.js +4 -4
  204. package/dist/{seed-ALU3BHFS.js → seed-IRCDGIRK.js} +11 -11
  205. package/dist/sequence/index.js +9 -9
  206. package/dist/session/index.js +9 -9
  207. package/dist/shadow/index.js +2 -2
  208. package/dist/signer-7KHD4OL2.js +25 -0
  209. package/dist/snapshots/index.js +10 -10
  210. package/dist/{stale-U3WO5MYN.js → stale-K734VACF.js} +10 -10
  211. package/dist/storage-4H2GF6RQ.js +23 -0
  212. package/dist/{store-coordination-provider-AHGFEMFA.js → store-coordination-provider-4SKLSFUG.js} +3 -3
  213. package/dist/sync/index.js +10 -10
  214. package/dist/team/index.js +27 -15
  215. package/dist/tiers/index.js +10 -10
  216. package/dist/to/index.js +28 -3
  217. package/dist/to/index.js.map +1 -1
  218. package/dist/transactions/index.js +3 -3
  219. package/dist/util/index.js +1 -1
  220. package/dist/{verify-JEIXSK5U.js → verify-RO5RTZOJ.js} +5 -5
  221. package/dist/walk-MQHYNDLZ.js +21 -0
  222. package/dist/with-audit/guards/registry.d.ts +8 -1
  223. package/dist/with-audit/guards/types.d.ts +5 -0
  224. package/dist/with-audit/periods/index.d.ts +1 -1
  225. package/dist/with-audit/periods/periods.d.ts +7 -0
  226. package/dist/with-formula/derivations/registry.d.ts +6 -0
  227. package/dist/with-formula/derivations/types.d.ts +5 -0
  228. package/dist/with-lookup/indexing/eager-indexes.d.ts +10 -0
  229. package/dist/with-party/team/device-seal.d.ts +25 -0
  230. package/dist/with-party/team/echo-ceremony.d.ts +74 -0
  231. package/dist/with-party/team/echo-secret.d.ts +56 -0
  232. package/dist/with-party/team/index.d.ts +8 -0
  233. package/dist/with-party/team/keyring.d.ts +71 -9
  234. package/dist/with-party/team/rotate-recover.d.ts +99 -5
  235. package/dist/with-pod/bundle-handle.d.ts +9 -0
  236. package/dist/with-pod/bundle.d.ts +100 -2
  237. package/dist/with-pod/format.d.ts +92 -1
  238. package/dist/with-pod/index.d.ts +22 -1
  239. package/dist/with-pod/open.d.ts +117 -0
  240. package/dist/with-pod/redirect.d.ts +78 -0
  241. package/dist/with-pod/signature.d.ts +13 -0
  242. package/dist/with-shape/introspection/behaviors.d.ts +100 -0
  243. package/dist/with-shape/introspection/derivation-key.d.ts +17 -0
  244. package/dist/with-shape/introspection/describe.d.ts +36 -0
  245. package/dist/with-shape/introspection/index.d.ts +1 -0
  246. package/dist/with-shape/introspection/subsystem-matrix.d.ts +22 -0
  247. package/dist/with-shape/introspection/types.d.ts +2 -1
  248. package/dist/with-shape/links/names.d.ts +14 -0
  249. package/dist/with-shape/manifest/derive.d.ts +86 -0
  250. package/dist/with-shape/manifest/reserved-collections.d.ts +27 -0
  251. package/dist/with-shape/manifest/storage.d.ts +62 -0
  252. package/dist/with-shape/manifest/sync.d.ts +135 -0
  253. package/dist/with-shape/manifest/types.d.ts +49 -0
  254. package/dist/with-shape/manifest/writer.d.ts +32 -0
  255. package/dist/with-shape/persisted-schemas/field-ids.d.ts +29 -0
  256. package/dist/with-shape/persisted-schemas/register.d.ts +3 -0
  257. package/dist/with-shape/persisted-schemas/types.d.ts +17 -0
  258. package/dist/with-shape/schema-update/fence-controller.d.ts +34 -0
  259. package/dist/with-shape/schema-update/fence.d.ts +9 -0
  260. package/dist/with-shape/schema-update/strategies.d.ts +18 -2
  261. package/dist/with-shape/schema-update/types.d.ts +11 -0
  262. package/dist/with-sync/engine.d.ts +4 -0
  263. package/dist/with-sync/presence.d.ts +31 -1
  264. package/dist/withdraw-accessible-JSDQHXHE.js +28 -0
  265. package/dist/withdraw-accessible-JSDQHXHE.js.map +1 -0
  266. package/package.json +3 -3
  267. package/dist/api-M7REIE7H.js +0 -20
  268. package/dist/backup-ENTZYW37.js.map +0 -1
  269. package/dist/chunk-5UKUOMO6.js.map +0 -1
  270. package/dist/chunk-77AEMXFA.js.map +0 -1
  271. package/dist/chunk-AJAOXFCF.js +0 -129
  272. package/dist/chunk-AJAOXFCF.js.map +0 -1
  273. package/dist/chunk-AR5D76T2.js.map +0 -1
  274. package/dist/chunk-DSDXAKIP.js.map +0 -1
  275. package/dist/chunk-EBETHILL.js +0 -41
  276. package/dist/chunk-EBETHILL.js.map +0 -1
  277. package/dist/chunk-ECGDJU5R.js.map +0 -1
  278. package/dist/chunk-F2WWHKO7.js.map +0 -1
  279. package/dist/chunk-FQ5CHJR7.js.map +0 -1
  280. package/dist/chunk-FUECZSRM.js +0 -23
  281. package/dist/chunk-FUECZSRM.js.map +0 -1
  282. package/dist/chunk-FZAP4JNC.js.map +0 -1
  283. package/dist/chunk-IHYSIPEK.js.map +0 -1
  284. package/dist/chunk-K5OFKXUG.js.map +0 -1
  285. package/dist/chunk-KDWBVCIX.js.map +0 -1
  286. package/dist/chunk-KPZS5QAQ.js.map +0 -1
  287. package/dist/chunk-RM4FIXY2.js.map +0 -1
  288. package/dist/chunk-RPWMDIGK.js.map +0 -1
  289. package/dist/chunk-US2AR4BI.js +0 -25
  290. package/dist/chunk-US2AR4BI.js.map +0 -1
  291. package/dist/chunk-VYYM3MEN.js.map +0 -1
  292. package/dist/chunk-WFYKIDCS.js.map +0 -1
  293. package/dist/chunk-WK7ULBTP.js.map +0 -1
  294. package/dist/chunk-XVK7TULT.js.map +0 -1
  295. package/dist/collection-facade-KI53O6QB.js +0 -45
  296. package/dist/derive-P2NXWUNB.js +0 -22
  297. package/dist/executor-M4ZZNX6S.js +0 -28
  298. package/dist/executor-TI64S4LE.js +0 -9
  299. package/dist/executor-YBK3I2OT.js +0 -9
  300. package/dist/export-accessible-GBLYLGW4.js +0 -23
  301. package/dist/extract-partition-SFV35U2R.js +0 -38
  302. package/dist/find-HUSSZRBR.js +0 -11
  303. package/dist/issue-6TIJYWKS.js +0 -19
  304. package/dist/liberate-TSOW7IG5.js +0 -24
  305. package/dist/noydb-KFN6M6UJ.js +0 -81
  306. package/dist/register-S3ECUZPV.js +0 -25
  307. package/dist/registry-BWD2ED52.js +0 -8
  308. package/dist/registry-FZOHKUME.js +0 -18
  309. package/dist/registry-RISV7IDZ.js +0 -19
  310. package/dist/registry-ZE35A7WC.js +0 -9
  311. package/dist/request-withdrawal-KXVTQKR5.js +0 -31
  312. package/dist/revoke-J473JJ22.js +0 -24
  313. package/dist/signer-XLUKCCH3.js +0 -25
  314. package/dist/storage-IQONEOYY.js +0 -23
  315. package/dist/walk-BF36V4SR.js +0 -21
  316. package/dist/withdraw-accessible-TYTA23XH.js +0 -28
  317. /package/dist/{api-M7REIE7H.js.map → api-67SBPMMH.js.map} +0 -0
  318. /package/dist/{chunk-V3EGXDFN.js.map → chunk-24UICKTB.js.map} +0 -0
  319. /package/dist/{chunk-6PFST3FC.js.map → chunk-27TCYH6G.js.map} +0 -0
  320. /package/dist/{chunk-PTSVGKSR.js.map → chunk-2KIV7BEK.js.map} +0 -0
  321. /package/dist/{chunk-3LYMOSY7.js.map → chunk-2LGDCNFJ.js.map} +0 -0
  322. /package/dist/{chunk-NWK6SVBM.js.map → chunk-35EBKWQU.js.map} +0 -0
  323. /package/dist/{chunk-QMCWYN6O.js.map → chunk-3737A6EA.js.map} +0 -0
  324. /package/dist/{chunk-G7ZIMGPQ.js.map → chunk-3EO7RZLJ.js.map} +0 -0
  325. /package/dist/{chunk-GYJRDALN.js.map → chunk-3FSX6LDG.js.map} +0 -0
  326. /package/dist/{chunk-4SG5TOXK.js.map → chunk-3HYWYLXL.js.map} +0 -0
  327. /package/dist/{chunk-653KOQ7A.js.map → chunk-3IIPWA75.js.map} +0 -0
  328. /package/dist/{chunk-IQ423YMK.js.map → chunk-3UK6STWO.js.map} +0 -0
  329. /package/dist/{chunk-F5UWVF6Z.js.map → chunk-4HDYQL3J.js.map} +0 -0
  330. /package/dist/{chunk-J7YVY7TW.js.map → chunk-4MQDV3HZ.js.map} +0 -0
  331. /package/dist/{chunk-UC5Y7OEJ.js.map → chunk-4UVDI4XE.js.map} +0 -0
  332. /package/dist/{chunk-4DGBZEV6.js.map → chunk-4VCWI42L.js.map} +0 -0
  333. /package/dist/{chunk-GIGLOQL7.js.map → chunk-747LRSOO.js.map} +0 -0
  334. /package/dist/{chunk-W7C7MMIS.js.map → chunk-7F4DBNSP.js.map} +0 -0
  335. /package/dist/{chunk-5EKL6BXI.js.map → chunk-7G6VDWXB.js.map} +0 -0
  336. /package/dist/{chunk-PZRYKOKP.js.map → chunk-AHLJSVRL.js.map} +0 -0
  337. /package/dist/{chunk-L67H6FAQ.js.map → chunk-AR2JDFAE.js.map} +0 -0
  338. /package/dist/{chunk-TJOUKMWF.js.map → chunk-BPTZ4K5L.js.map} +0 -0
  339. /package/dist/{chunk-MFW466PX.js.map → chunk-CCZJJ4I2.js.map} +0 -0
  340. /package/dist/{chunk-OKBNFUUX.js.map → chunk-CJ73OLMW.js.map} +0 -0
  341. /package/dist/{chunk-FHK6WWUE.js.map → chunk-CYQOUTMY.js.map} +0 -0
  342. /package/dist/{chunk-LQVRK2XJ.js.map → chunk-DCMQR46R.js.map} +0 -0
  343. /package/dist/{chunk-QTMZDMJ6.js.map → chunk-DG27IUVI.js.map} +0 -0
  344. /package/dist/{chunk-PKBONLCP.js.map → chunk-E6427JU2.js.map} +0 -0
  345. /package/dist/{chunk-XID22NOA.js.map → chunk-F3GVO44K.js.map} +0 -0
  346. /package/dist/{chunk-U2ID5A2I.js.map → chunk-FAXZQ5UF.js.map} +0 -0
  347. /package/dist/{chunk-P6UIVLZK.js.map → chunk-FNSMZQS4.js.map} +0 -0
  348. /package/dist/{chunk-NIKQQXI2.js.map → chunk-FUHKW252.js.map} +0 -0
  349. /package/dist/{chunk-623QEHDB.js.map → chunk-FY343IZR.js.map} +0 -0
  350. /package/dist/{chunk-7P4LL3JH.js.map → chunk-GS5RT2KK.js.map} +0 -0
  351. /package/dist/{chunk-IM2KST7E.js.map → chunk-HFKGIBMD.js.map} +0 -0
  352. /package/dist/{chunk-FT5Y4VSP.js.map → chunk-HVQGCKY4.js.map} +0 -0
  353. /package/dist/{chunk-MYSNNMJ3.js.map → chunk-HXGUIPQB.js.map} +0 -0
  354. /package/dist/{chunk-GTQF32TP.js.map → chunk-JEM2IGS3.js.map} +0 -0
  355. /package/dist/{chunk-ALUVACKT.js.map → chunk-JIUVJ4M7.js.map} +0 -0
  356. /package/dist/{chunk-NJHQE4LT.js.map → chunk-JRCYZEHU.js.map} +0 -0
  357. /package/dist/{chunk-G3ORJ3IQ.js.map → chunk-JSRU5W2M.js.map} +0 -0
  358. /package/dist/{chunk-SBGXQK5I.js.map → chunk-JXIDGFKS.js.map} +0 -0
  359. /package/dist/{chunk-MGXUAID4.js.map → chunk-KZ3KMDN3.js.map} +0 -0
  360. /package/dist/{chunk-HGDXJVK2.js.map → chunk-LBGPO5RL.js.map} +0 -0
  361. /package/dist/{chunk-CLE3TMIS.js.map → chunk-MC2LFTQM.js.map} +0 -0
  362. /package/dist/{chunk-EAN4TAPC.js.map → chunk-MSWYQLMQ.js.map} +0 -0
  363. /package/dist/{chunk-OKRXXFZZ.js.map → chunk-MZ5ZFO2D.js.map} +0 -0
  364. /package/dist/{chunk-RQILGK3N.js.map → chunk-NQCNSVGI.js.map} +0 -0
  365. /package/dist/{chunk-EFJAAFBW.js.map → chunk-NQRJ5AJO.js.map} +0 -0
  366. /package/dist/{chunk-Q2SEJMP2.js.map → chunk-NVU7ZMPN.js.map} +0 -0
  367. /package/dist/{chunk-Y2PTKKIN.js.map → chunk-OF3L2SD6.js.map} +0 -0
  368. /package/dist/{chunk-MDRCEA56.js.map → chunk-OMSAULZM.js.map} +0 -0
  369. /package/dist/{chunk-SL3PLML2.js.map → chunk-OSFPNKY4.js.map} +0 -0
  370. /package/dist/{chunk-XX7YB5BI.js.map → chunk-P7NGLLUF.js.map} +0 -0
  371. /package/dist/{chunk-QITP2JGX.js.map → chunk-PGAPBZEK.js.map} +0 -0
  372. /package/dist/{chunk-KJNMTE2W.js.map → chunk-PP5CO2PR.js.map} +0 -0
  373. /package/dist/{chunk-NG4AQIYJ.js.map → chunk-ROWL352P.js.map} +0 -0
  374. /package/dist/{chunk-V4O6YZSP.js.map → chunk-RPXL6KSX.js.map} +0 -0
  375. /package/dist/{chunk-ODCEOSJF.js.map → chunk-SKONR2OL.js.map} +0 -0
  376. /package/dist/{chunk-QQL6XPPG.js.map → chunk-T4GPR2IR.js.map} +0 -0
  377. /package/dist/{chunk-NMYH55MW.js.map → chunk-TLNNHG3A.js.map} +0 -0
  378. /package/dist/{chunk-DDB626I7.js.map → chunk-UHXCLPGC.js.map} +0 -0
  379. /package/dist/{chunk-Q6MXHDSE.js.map → chunk-V5C5NNBR.js.map} +0 -0
  380. /package/dist/{chunk-ELJOLQIG.js.map → chunk-VBY6ZLJT.js.map} +0 -0
  381. /package/dist/{chunk-IJV56FWY.js.map → chunk-VJFMXYKP.js.map} +0 -0
  382. /package/dist/{chunk-BFG7LD6Z.js.map → chunk-VMCCGUQB.js.map} +0 -0
  383. /package/dist/{chunk-PWEMRXPO.js.map → chunk-W3TVWF6N.js.map} +0 -0
  384. /package/dist/{chunk-4TXO442D.js.map → chunk-WLYIROCJ.js.map} +0 -0
  385. /package/dist/{chunk-MPW6AHTC.js.map → chunk-XB7LUDKM.js.map} +0 -0
  386. /package/dist/{chunk-YA7Y3EZP.js.map → chunk-XBLKM73C.js.map} +0 -0
  387. /package/dist/{chunk-LXRVTJ5D.js.map → chunk-YAWK6AWF.js.map} +0 -0
  388. /package/dist/{chunk-6RDTG6E5.js.map → chunk-ZGGVOADG.js.map} +0 -0
  389. /package/dist/{chunk-JLBCK7XM.js.map → chunk-ZK4CO2KZ.js.map} +0 -0
  390. /package/dist/{chunk-NZEGQWQ5.js.map → chunk-ZWMO5GL5.js.map} +0 -0
  391. /package/dist/{chunk-4MSNAB64.js.map → chunk-ZXJXDHNK.js.map} +0 -0
  392. /package/dist/{classified-marker-ZALWKOBC.js.map → classified-marker-MH3ON5OL.js.map} +0 -0
  393. /package/dist/{collection-facade-KI53O6QB.js.map → collection-facade-AHT7FATG.js.map} +0 -0
  394. /package/dist/{computed-YOQCGUCS.js.map → computed-6G5M3UPH.js.map} +0 -0
  395. /package/dist/{dead-filter-6DVWST6U.js.map → dead-filter-U575NGSH.js.map} +0 -0
  396. /package/dist/{delegation-WMO3Q3O5.js.map → delegation-PDYL6RWT.js.map} +0 -0
  397. /package/dist/{derive-P2NXWUNB.js.map → derive-AKT4KU36.js.map} +0 -0
  398. /package/dist/{dispatch-VNR3TLBX.js.map → dispatch-4XIJSFTT.js.map} +0 -0
  399. /package/dist/{dispatch-TKV4UCKB.js.map → dispatch-N5HGVUGU.js.map} +0 -0
  400. /package/dist/{enclave-YWP3QAIQ.js.map → enclave-OPK24QDR.js.map} +0 -0
  401. /package/dist/{executor-M4ZZNX6S.js.map → executor-3JZ4POTW.js.map} +0 -0
  402. /package/dist/{executor-TI64S4LE.js.map → executor-CYJQLKKI.js.map} +0 -0
  403. /package/dist/{executor-YBK3I2OT.js.map → executor-S4QIKEHW.js.map} +0 -0
  404. /package/dist/{export-accessible-GBLYLGW4.js.map → export-accessible-CPTP5STN.js.map} +0 -0
  405. /package/dist/{extract-partition-SFV35U2R.js.map → extract-partition-TWXPHVU7.js.map} +0 -0
  406. /package/dist/{fanout-sidecar-WYXO6QQT.js.map → fanout-sidecar-T2ZGLQFE.js.map} +0 -0
  407. /package/dist/{find-HUSSZRBR.js.map → find-RBBYKXI7.js.map} +0 -0
  408. /package/dist/{issue-6TIJYWKS.js.map → issue-N74C55X6.js.map} +0 -0
  409. /package/dist/{ledger-BLYDYRTQ.js.map → ledger-DONWFC5M.js.map} +0 -0
  410. /package/dist/{liberate-TSOW7IG5.js.map → liberate-KICI7AJN.js.map} +0 -0
  411. /package/dist/{link-set-7F5ZPDEB.js.map → link-set-2TTP4VLO.js.map} +0 -0
  412. /package/dist/{noydb-KFN6M6UJ.js.map → managed-secret-EAOYWRYF.js.map} +0 -0
  413. /package/dist/{register-S3ECUZPV.js.map → noydb-6W2XGQCS.js.map} +0 -0
  414. /package/dist/{post-register-PQSY544J.js.map → post-register-ORQOQJCS.js.map} +0 -0
  415. /package/dist/{registry-BWD2ED52.js.map → register-LHETZRJM.js.map} +0 -0
  416. /package/dist/{registry-FZOHKUME.js.map → registry-AMAZ6QRZ.js.map} +0 -0
  417. /package/dist/{registry-RISV7IDZ.js.map → registry-CZVINVQH.js.map} +0 -0
  418. /package/dist/{registry-ZE35A7WC.js.map → registry-IKUR2MXD.js.map} +0 -0
  419. /package/dist/{request-withdrawal-KXVTQKR5.js.map → registry-JRIN447B.js.map} +0 -0
  420. /package/dist/{revoke-J473JJ22.js.map → request-withdrawal-2DN2RGCO.js.map} +0 -0
  421. /package/dist/{reveal-HY7DZST4.js.map → reveal-AG4SCHUQ.js.map} +0 -0
  422. /package/dist/{signer-XLUKCCH3.js.map → revoke-ZX4NM2CJ.js.map} +0 -0
  423. /package/dist/{seed-ALU3BHFS.js.map → seed-IRCDGIRK.js.map} +0 -0
  424. /package/dist/{stale-U3WO5MYN.js.map → signer-7KHD4OL2.js.map} +0 -0
  425. /package/dist/{storage-IQONEOYY.js.map → stale-K734VACF.js.map} +0 -0
  426. /package/dist/{walk-BF36V4SR.js.map → storage-4H2GF6RQ.js.map} +0 -0
  427. /package/dist/{store-coordination-provider-AHGFEMFA.js.map → store-coordination-provider-4SKLSFUG.js.map} +0 -0
  428. /package/dist/{verify-JEIXSK5U.js.map → verify-RO5RTZOJ.js.map} +0 -0
  429. /package/dist/{withdraw-accessible-TYTA23XH.js.map → walk-MQHYNDLZ.js.map} +0 -0
@@ -2,20 +2,20 @@ import {
2
2
  PresenceHandle,
3
3
  SyncEngine,
4
4
  SyncTransaction
5
- } from "../chunk-WFYKIDCS.js";
5
+ } from "../chunk-TFZ7LLOQ.js";
6
6
  import {
7
7
  NO_SYNC
8
8
  } from "../chunk-55LKVALY.js";
9
- import "../chunk-SBGXQK5I.js";
10
- import "../chunk-623QEHDB.js";
11
- import "../chunk-EFJAAFBW.js";
12
- import "../chunk-MYSNNMJ3.js";
13
- import "../chunk-L67H6FAQ.js";
14
- import "../chunk-GIGLOQL7.js";
9
+ import "../chunk-JXIDGFKS.js";
10
+ import "../chunk-FY343IZR.js";
11
+ import "../chunk-NQRJ5AJO.js";
12
+ import "../chunk-HXGUIPQB.js";
13
+ import "../chunk-AR2JDFAE.js";
14
+ import "../chunk-747LRSOO.js";
15
15
  import "../chunk-LP7BEXCT.js";
16
- import "../chunk-RPWMDIGK.js";
17
- import "../chunk-77AEMXFA.js";
18
- import "../chunk-AR5D76T2.js";
16
+ import "../chunk-VCETL77O.js";
17
+ import "../chunk-24ZLWWEO.js";
18
+ import "../chunk-HNGSV2YC.js";
19
19
  import "../chunk-PZ5AY32C.js";
20
20
 
21
21
  // src/with-sync/active.ts
@@ -1,6 +1,8 @@
1
1
  import {
2
+ MemoryDeviceSealProvider,
3
+ beginEchoUnlock,
2
4
  withTeam
3
- } from "../chunk-US2AR4BI.js";
5
+ } from "../chunk-46V67XP5.js";
4
6
  import {
5
7
  NO_TEAM,
6
8
  burnPaperRecoveryEntry,
@@ -29,9 +31,10 @@ import {
29
31
  unwrapMagicLinkGrant,
30
32
  updateAuthenticator,
31
33
  writeMagicLinkGrant
32
- } from "../chunk-IHYSIPEK.js";
33
- import "../chunk-Q2SEJMP2.js";
34
+ } from "../chunk-DPJTDNUF.js";
35
+ import "../chunk-NVU7ZMPN.js";
34
36
  import {
37
+ buildEchoBlock,
35
38
  buildRecipientKeyringFile,
36
39
  changeSecret,
37
40
  createOwnerKeyring,
@@ -45,26 +48,32 @@ import {
45
48
  listUsersWithEnvelopes,
46
49
  loadKeyring,
47
50
  persistKeyring,
51
+ resolveEchoReveal,
48
52
  revoke,
49
- updateKeyringIdentity
50
- } from "../chunk-FZAP4JNC.js";
51
- import "../chunk-6PFST3FC.js";
52
- import "../chunk-PZRYKOKP.js";
53
- import "../chunk-623QEHDB.js";
54
- import "../chunk-EFJAAFBW.js";
55
- import "../chunk-MYSNNMJ3.js";
56
- import "../chunk-L67H6FAQ.js";
57
- import "../chunk-GIGLOQL7.js";
53
+ updateKeyringIdentity,
54
+ verifyPrompt,
55
+ verifyTypedEcho
56
+ } from "../chunk-RLWY6Z44.js";
57
+ import "../chunk-27TCYH6G.js";
58
+ import "../chunk-AHLJSVRL.js";
59
+ import "../chunk-FY343IZR.js";
60
+ import "../chunk-NQRJ5AJO.js";
61
+ import "../chunk-HXGUIPQB.js";
62
+ import "../chunk-AR2JDFAE.js";
63
+ import "../chunk-747LRSOO.js";
58
64
  import "../chunk-LP7BEXCT.js";
59
- import "../chunk-RPWMDIGK.js";
60
- import "../chunk-77AEMXFA.js";
65
+ import "../chunk-VCETL77O.js";
66
+ import "../chunk-24ZLWWEO.js";
61
67
  import {
62
68
  TeamNotEnabledError
63
- } from "../chunk-AR5D76T2.js";
69
+ } from "../chunk-HNGSV2YC.js";
64
70
  import "../chunk-PZ5AY32C.js";
65
71
  export {
72
+ MemoryDeviceSealProvider,
66
73
  NO_TEAM,
67
74
  TeamNotEnabledError,
75
+ beginEchoUnlock,
76
+ buildEchoBlock,
68
77
  buildRecipientKeyringFile,
69
78
  burnPaperRecoveryEntry,
70
79
  changeSecret,
@@ -96,6 +105,7 @@ export {
96
105
  recoverSecret,
97
106
  recoverUser,
98
107
  removeAuthenticator,
108
+ resolveEchoReveal,
99
109
  revoke,
100
110
  revokeMagicLinkGrant,
101
111
  rotateSecret,
@@ -105,6 +115,8 @@ export {
105
115
  unwrapMagicLinkGrant,
106
116
  updateAuthenticator,
107
117
  updateKeyringIdentity,
118
+ verifyPrompt,
119
+ verifyTypedEcho,
108
120
  withTeam,
109
121
  writeMagicLinkGrant
110
122
  };
@@ -11,19 +11,19 @@ import {
11
11
  putAtTier,
12
12
  syncDerivedOutputs,
13
13
  withTiers
14
- } from "../chunk-QITP2JGX.js";
15
- import "../chunk-PZRYKOKP.js";
16
- import "../chunk-623QEHDB.js";
17
- import "../chunk-EFJAAFBW.js";
18
- import "../chunk-MYSNNMJ3.js";
19
- import "../chunk-L67H6FAQ.js";
20
- import "../chunk-GIGLOQL7.js";
14
+ } from "../chunk-PGAPBZEK.js";
15
+ import "../chunk-AHLJSVRL.js";
16
+ import "../chunk-FY343IZR.js";
17
+ import "../chunk-NQRJ5AJO.js";
18
+ import "../chunk-HXGUIPQB.js";
19
+ import "../chunk-AR2JDFAE.js";
20
+ import "../chunk-747LRSOO.js";
21
21
  import "../chunk-LP7BEXCT.js";
22
- import "../chunk-RPWMDIGK.js";
23
- import "../chunk-77AEMXFA.js";
22
+ import "../chunk-VCETL77O.js";
23
+ import "../chunk-24ZLWWEO.js";
24
24
  import {
25
25
  TiersNotEnabledError
26
- } from "../chunk-AR5D76T2.js";
26
+ } from "../chunk-HNGSV2YC.js";
27
27
  import "../chunk-PZ5AY32C.js";
28
28
  export {
29
29
  NO_TIERS,
package/dist/to/index.js CHANGED
@@ -1,16 +1,41 @@
1
1
  import {
2
2
  BundleVersionConflictError,
3
3
  ConflictError,
4
+ DuplicateStoreKindError,
4
5
  NetworkError,
5
6
  PodVersionConflictError,
6
- StoreCapabilityError
7
- } from "../chunk-AR5D76T2.js";
7
+ StoreCapabilityError,
8
+ UnknownStoreKindError
9
+ } from "../chunk-HNGSV2YC.js";
8
10
  import "../chunk-PZ5AY32C.js";
11
+
12
+ // src/port/to/locator.ts
13
+ function createStoreLocator() {
14
+ const factories = /* @__PURE__ */ new Map();
15
+ return {
16
+ register(kind, factory) {
17
+ if (factories.has(kind)) {
18
+ throw new DuplicateStoreKindError(kind);
19
+ }
20
+ factories.set(kind, factory);
21
+ },
22
+ resolve(descriptor, opts = {}) {
23
+ const factory = factories.get(descriptor.kind);
24
+ if (!factory) {
25
+ throw new UnknownStoreKindError(descriptor.kind, [...factories.keys()].sort());
26
+ }
27
+ return factory(descriptor, opts);
28
+ }
29
+ };
30
+ }
9
31
  export {
10
32
  BundleVersionConflictError,
11
33
  ConflictError,
34
+ DuplicateStoreKindError,
12
35
  NetworkError,
13
36
  PodVersionConflictError,
14
- StoreCapabilityError
37
+ StoreCapabilityError,
38
+ UnknownStoreKindError,
39
+ createStoreLocator
15
40
  };
16
41
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
1
+ {"version":3,"sources":["../../src/port/to/locator.ts"],"sourcesContent":["/**\n * The Locator seam (#945 Task 1): a serializable, CREDENTIALLESS store\n * descriptor plus a factory registry that reconstructs a `NoydbStore` from\n * data.\n *\n * A `StoreDescriptor` is the pod-portable \"what store and where\" — kind,\n * broad topology class, and a kind-specific serializable address/options\n * bag. It is deliberately dumb data: no field on it is ever typed as a\n * function, a `StoreCredentialSource`, or a `StoreCredentials` value, so a\n * descriptor can be written into a pod / manifest / sync payload without an\n * audit for leaked secrets. Anything that must resolve device-side or\n * user-side — a short-lived credential, a device-local directory override,\n * a mounted drive handle — travels out-of-band via `resolve()`'s `opts`,\n * never through the descriptor itself.\n *\n * This module is pure TypeScript: no imports beyond the kernel's own types\n * and errors, no Node built-ins, no crypto. It adds zero runtime\n * dependencies to `@noy-db/hub/to`.\n */\nimport type { NoydbStore, StoreCredentialSource } from '../../kernel/types.js'\nimport { DuplicateStoreKindError, UnknownStoreKindError } from '../../kernel/errors.js'\n\n/**\n * The broad topology bucket a store descriptor's kind falls into —\n * used by callers/UI to group or filter descriptors without knowing every\n * concrete `kind` string.\n */\nexport type StoreClass = 'local' | 'browser' | 'lan' | 'cloud'\n\n/**\n * A serializable, CREDENTIALLESS description of a store instance: enough\n * data to reconstruct a `NoydbStore` via a registered `StoreFactory`, and\n * safe to persist or transmit as-is.\n *\n * CREDENTIALLESS BY CONSTRUCTION: no field here may be typed as a function,\n * a `StoreCredentialSource`, or a `StoreCredentials` value. Credentials\n * NEVER ride the descriptor — they are supplied separately (as a\n * `StoreCredentialSource`) to `StoreLocator.resolve()` at resolve time.\n */\nexport interface StoreDescriptor {\n /** The registered factory key (e.g. `'file'`, `'aws-s3'`, `'webdav'`). */\n readonly kind: string\n /** The broad topology bucket this kind falls into. */\n readonly class: StoreClass\n /** Kind-specific serializable location (e.g. `{ dir }`, `{ bucket, region }`). */\n readonly address: unknown\n /** Kind-specific serializable tuning options. */\n readonly options?: unknown\n}\n\n/**\n * A kind-specific, device-local supplement to a `StoreDescriptor` — a\n * directory override, a mount point, a drive handle — that is resolved\n * device-side and never carried inside a pod alongside the descriptor.\n */\nexport type StoreBinding = unknown\n\n/**\n * Reconstructs a live `NoydbStore` from a `StoreDescriptor`. Registered\n * against a `StoreLocator` under the descriptor's `kind`.\n */\nexport type StoreFactory = (\n descriptor: StoreDescriptor,\n opts: { binding?: StoreBinding; credentials?: StoreCredentialSource },\n) => NoydbStore | Promise<NoydbStore>\n\n/** A registry of `StoreFactory`s, keyed by `StoreDescriptor.kind`. */\nexport interface StoreLocator {\n /** Register a factory for `kind`. Throws if `kind` is already registered. */\n register(kind: string, factory: StoreFactory): void\n /** Resolve `descriptor` to a live store via its kind's registered factory. */\n resolve(\n descriptor: StoreDescriptor,\n opts?: { binding?: StoreBinding; credentials?: StoreCredentialSource },\n ): NoydbStore | Promise<NoydbStore>\n}\n\n/**\n * Creates a fresh, empty `StoreLocator`.\n *\n * DUPLICATE REGISTRATION: `register()` throws if `kind` is already\n * registered, rather than silently overwriting it (last-wins). A\n * composition root that registers the same kind twice is almost always a\n * mistake — a copy-pasted setup block, two satellite packages fighting\n * over the same kind string — and last-wins would hide it behind whichever\n * registration happened to run last. This mirrors the\n * `DuplicateBehaviorNameError` philosophy (#947): fail loudly at the\n * mistake's source instead of silently at some unrelated `resolve()` call\n * later.\n */\nexport function createStoreLocator(): StoreLocator {\n const factories = new Map<string, StoreFactory>()\n\n return {\n register(kind, factory) {\n if (factories.has(kind)) {\n throw new DuplicateStoreKindError(kind)\n }\n factories.set(kind, factory)\n },\n resolve(descriptor, opts = {}) {\n const factory = factories.get(descriptor.kind)\n if (!factory) {\n throw new UnknownStoreKindError(descriptor.kind, [...factories.keys()].sort())\n }\n return factory(descriptor, opts)\n },\n }\n}\n"],"mappings":";;;;;;;;;;;;AA0FO,SAAS,qBAAmC;AACjD,QAAM,YAAY,oBAAI,IAA0B;AAEhD,SAAO;AAAA,IACL,SAAS,MAAM,SAAS;AACtB,UAAI,UAAU,IAAI,IAAI,GAAG;AACvB,cAAM,IAAI,wBAAwB,IAAI;AAAA,MACxC;AACA,gBAAU,IAAI,MAAM,OAAO;AAAA,IAC7B;AAAA,IACA,QAAQ,YAAY,OAAO,CAAC,GAAG;AAC7B,YAAM,UAAU,UAAU,IAAI,WAAW,IAAI;AAC7C,UAAI,CAAC,SAAS;AACZ,cAAM,IAAI,sBAAsB,WAAW,MAAM,CAAC,GAAG,UAAU,KAAK,CAAC,EAAE,KAAK,CAAC;AAAA,MAC/E;AACA,aAAO,QAAQ,YAAY,IAAI;AAAA,IACjC;AAAA,EACF;AACF;","names":[]}
@@ -3,16 +3,16 @@ import {
3
3
  TxContext,
4
4
  TxVault,
5
5
  runTransaction
6
- } from "../chunk-NWK6SVBM.js";
6
+ } from "../chunk-35EBKWQU.js";
7
7
  import {
8
8
  lazy
9
9
  } from "../chunk-5D2ALSM5.js";
10
10
  import "../chunk-ZJADGNYF.js";
11
- import "../chunk-AR5D76T2.js";
11
+ import "../chunk-HNGSV2YC.js";
12
12
  import "../chunk-PZ5AY32C.js";
13
13
 
14
14
  // src/with-commit/tx/dry-run.ts
15
- var loadGuardExecutor = lazy(() => import("../executor-YBK3I2OT.js"));
15
+ var loadGuardExecutor = lazy(() => import("../executor-CYJQLKKI.js"));
16
16
  var SEP = " ";
17
17
  var keyOf = (op) => `${op.vaultName}${SEP}${op.collectionName}${SEP}${op.id}`;
18
18
  async function runDryRun(db, fn) {
@@ -3,7 +3,7 @@ import {
3
3
  } from "../chunk-PY4KJPYU.js";
4
4
  import {
5
5
  FilenameSanitizationError
6
- } from "../chunk-AR5D76T2.js";
6
+ } from "../chunk-HNGSV2YC.js";
7
7
  import "../chunk-PZ5AY32C.js";
8
8
 
9
9
  // src/kernel/util/sanitize-filename.ts
@@ -2,10 +2,10 @@ import {
2
2
  blindedEqual,
3
3
  evaluateKofN,
4
4
  openVdigPayload
5
- } from "./chunk-MYSNNMJ3.js";
5
+ } from "./chunk-HXGUIPQB.js";
6
6
  import {
7
7
  dualReadSealedSlot
8
- } from "./chunk-L67H6FAQ.js";
8
+ } from "./chunk-AR2JDFAE.js";
9
9
  import {
10
10
  VDIG_ITERATIONS,
11
11
  normalizeForVerify,
@@ -14,11 +14,11 @@ import {
14
14
  import {
15
15
  base64ToBuffer,
16
16
  generateSalt
17
- } from "./chunk-RPWMDIGK.js";
17
+ } from "./chunk-VCETL77O.js";
18
18
  import {
19
19
  ClassifiedConfigError,
20
20
  ClassifiedVerifyError
21
- } from "./chunk-AR5D76T2.js";
21
+ } from "./chunk-HNGSV2YC.js";
22
22
  import "./chunk-PZ5AY32C.js";
23
23
 
24
24
  // src/kernel/enclave/classify/verify.ts
@@ -137,4 +137,4 @@ export {
137
137
  verifyDigestField,
138
138
  verifyTextField
139
139
  };
140
- //# sourceMappingURL=verify-JEIXSK5U.js.map
140
+ //# sourceMappingURL=verify-RO5RTZOJ.js.map
@@ -0,0 +1,21 @@
1
+ import {
2
+ dumpVaultSchema
3
+ } from "./chunk-MJWCLSQL.js";
4
+ import "./chunk-KHKKD62N.js";
5
+ import "./chunk-2LGDCNFJ.js";
6
+ import "./chunk-Y2NBBT6K.js";
7
+ import "./chunk-V5C5NNBR.js";
8
+ import "./chunk-FY343IZR.js";
9
+ import "./chunk-NQRJ5AJO.js";
10
+ import "./chunk-HXGUIPQB.js";
11
+ import "./chunk-AR2JDFAE.js";
12
+ import "./chunk-747LRSOO.js";
13
+ import "./chunk-LP7BEXCT.js";
14
+ import "./chunk-VCETL77O.js";
15
+ import "./chunk-24ZLWWEO.js";
16
+ import "./chunk-HNGSV2YC.js";
17
+ import "./chunk-PZ5AY32C.js";
18
+ export {
19
+ dumpVaultSchema
20
+ };
21
+ //# sourceMappingURL=walk-MQHYNDLZ.js.map
@@ -24,9 +24,14 @@ type AnyGuard = GuardSpec<Record<string, unknown>>;
24
24
  type AnyChange = GuardChange<Record<string, unknown>>;
25
25
  export declare class GuardRegistry {
26
26
  private readonly _byCollection;
27
+ private readonly _byName;
27
28
  private _amendmentChanges;
28
29
  private _amendmentMeta;
29
- /** Register a guard. Multiple guards per collection are allowed. */
30
+ /**
31
+ * Register a guard. Multiple guards per collection are allowed. If
32
+ * `spec.name` is given and already registered by another guard in this
33
+ * vault, throws {@link DuplicateBehaviorNameError} before indexing.
34
+ */
30
35
  register<T extends Record<string, unknown>>(spec: GuardSpec<T>): void;
31
36
  /** All guards registered against `collection` in registration order. */
32
37
  guardsFor(collection: string): ReadonlyArray<AnyGuard>;
@@ -35,6 +40,8 @@ export declare class GuardRegistry {
35
40
  collection: string;
36
41
  count: number;
37
42
  }[];
43
+ /** Every registered guard spec, in registration order. Used by `Vault.listBehaviors()` (#947). */
44
+ all(): ReadonlyArray<AnyGuard>;
38
45
  /**
39
46
  * Run every guard's `check` for this collection. First throw wins —
40
47
  * remaining guards are not invoked. Guards without a `check` skip.
@@ -76,6 +76,11 @@ export interface GuardStrategyAny {
76
76
  /** Public registration shape. See `withGuard()`. */
77
77
  export interface GuardSpec<T extends Record<string, unknown>> {
78
78
  collection: string;
79
+ /**
80
+ * Optional stable per-vault identifier; the behavior manifest
81
+ * references behaviors by this name. Must be unique within a vault.
82
+ */
83
+ readonly name?: string;
79
84
  /**
80
85
  * Fires on `Collection.put` (insert + update). The `incoming` argument
81
86
  * is the record being written. Throw to cancel the put.
@@ -14,7 +14,7 @@
14
14
  */
15
15
  export { withPeriods } from './active.js';
16
16
  export type { PeriodsStrategy } from './strategy.js';
17
- export { PERIODS_COLLECTION, PERIOD_FREEZES_COLLECTION, PERIOD_ARCHIVES_COLLECTION, PERIOD_TARGET_PURGES_COLLECTION, periodExclusiveUpperBound, loadPeriods, chainAnchor, assertTsWritable, validatePeriodName, appendPeriodLedgerEntry, } from './periods.js';
17
+ export { PERIODS_COLLECTION, PERIOD_FREEZES_COLLECTION, PERIOD_ARCHIVES_COLLECTION, PERIOD_TARGET_PURGES_COLLECTION, periodExclusiveUpperBound, loadPeriods, chainAnchor, assertTsWritable, validatePeriodName, appendPeriodLedgerEntry, purgeMarkersOn, } from './periods.js';
18
18
  export type { PeriodRecord, PeriodFreezeRecord, PeriodArchiveRecord, PeriodTargetPurgeRecord, TargetPurgeCount, ClosePeriodOptions, OpenPeriodOptions, CarryForwardContext, ReadOnlyCollection, } from './periods.js';
19
19
  /** The un-opted-in stub for this service — exported so callers can compare against it (#844). */
20
20
  export { NO_PERIODS } from './strategy.js';
@@ -400,3 +400,10 @@ export declare function validatePeriodName(name: string, existing: readonly Peri
400
400
  * @internal
401
401
  */
402
402
  export declare function appendPeriodLedgerEntry(ledger: LedgerStore | null, actor: string, envelope: EncryptedEnvelope, name: string, collection?: string): Promise<void>;
403
+ /**
404
+ * @internal #615. Sweep delete markers with `_ts < before` off ANY store
405
+ * (the vault's local adapter, or a push-only sync target). Returns the count
406
+ * removed. Shared by `vault._purgeDeleteMarkers` (local) and
407
+ * `vault._purgePeriodTargets` (push-only targets).
408
+ */
409
+ export declare function purgeMarkersOn(store: NoydbStore, vault: string, before: string, collections?: string[]): Promise<number>;
@@ -13,6 +13,12 @@ interface RegisteredStrategy {
13
13
  export declare class DerivationRegistry {
14
14
  private readonly _bySource;
15
15
  private readonly _byOutput;
16
+ private readonly _byName;
17
+ /**
18
+ * Register a derivation strategy. If `spec.name` is given and already
19
+ * registered by another derivation in this vault, throws
20
+ * {@link DuplicateBehaviorNameError} before indexing.
21
+ */
16
22
  register(spec: DerivationSpec<any, any>): Promise<void>;
17
23
  strategiesForSource(source: string): ReadonlyArray<RegisteredStrategy>;
18
24
  strategiesProducingOutput(collection: string): ReadonlyArray<RegisteredStrategy>;
@@ -122,6 +122,11 @@ export type OutputSpec = RecordOutputSpec | ArrayOutputSpec;
122
122
  export interface DerivationSpec<TSource extends Record<string, unknown>, TOutputs extends Record<string, Record<string, unknown> | ReadonlyArray<Record<string, unknown>>>> {
123
123
  /** Source collection name. */
124
124
  source: string;
125
+ /**
126
+ * Optional stable per-vault identifier; the behavior manifest
127
+ * references behaviors by this name. Must be unique within a vault.
128
+ */
129
+ readonly name?: string;
125
130
  /**
126
131
  * Additional collections whose writes ALSO re-fire this derivation.
127
132
  * By default only writes to the single declared
@@ -32,6 +32,16 @@ export type IndexDef = string | {
32
32
  readonly fields: readonly string[];
33
33
  readonly unique?: boolean;
34
34
  } | readonly string[];
35
+ /**
36
+ * Normalize a declared `IndexDef[]` into a uniform `{ fields, unique? }`
37
+ * shape: `string` → `{fields:[s]}`, `string[]` → `{fields}`, object →
38
+ * passthrough. Pure — used by `Collection`'s sensitive-field leak check
39
+ * and by `getDeclaredIndexes()` (introspection).
40
+ */
41
+ export declare function normalizeIndexDefs(defs: readonly IndexDef[]): ReadonlyArray<{
42
+ readonly fields: readonly string[];
43
+ readonly unique?: boolean;
44
+ }>;
35
45
  /**
36
46
  * Internal representation of a built hash index.
37
47
  *
@@ -0,0 +1,25 @@
1
+ import type { DeviceSealProvider } from '../../port/with/device-seal-strategy.js';
2
+ /**
3
+ * Device-local sealer for the echo reveal-blob (spec decision 5).
4
+ * DISTINCT from `SealingKeyProvider` (managed-secret mode, which seals
5
+ * the WHOLE secret): this seals only the echo part, and only so an
6
+ * enrolled device can display it during the unlock ceremony. The
7
+ * sealed bytes may sit in the (untrusted) keyring file — attacker-B
8
+ * resistance comes from `unseal` requiring this device's key store.
9
+ *
10
+ * The interface itself is declared on the `/with` port
11
+ * ({@link DeviceSealProvider} from `port/with/device-seal-strategy.js`)
12
+ * so the kernel spine can reference it without a static spine→service
13
+ * import; re-exported here as the canonical consumer-facing home.
14
+ */
15
+ export type { DeviceSealProvider };
16
+ /** In-memory test provider — AES-GCM under a per-instance random key. */
17
+ export declare class MemoryDeviceSealProvider implements DeviceSealProvider {
18
+ readonly id: string;
19
+ private readonly keyPromise;
20
+ constructor(opts: {
21
+ id: string;
22
+ });
23
+ seal(plain: Uint8Array): Promise<Uint8Array>;
24
+ unseal(sealed: Uint8Array): Promise<Uint8Array>;
25
+ }
@@ -0,0 +1,74 @@
1
+ /**
2
+ * `beginEchoUnlock` — the interactive ceremony API (spec
3
+ * docs/superpowers/specs/2026-08-02-echo-secret-design.md, #940, Task 6).
4
+ *
5
+ * Split out of `echo-secret.ts` (which owns only the block builders +
6
+ * verifiers) because this module orchestrates BOTH `echo-secret.ts`
7
+ * (`verifyPrompt`/`resolveEchoReveal`/`verifyTypedEcho`) AND `keyring.ts`
8
+ * (`loadKeyring`) — and `keyring.ts` itself imports `buildEchoBlock` from
9
+ * `echo-secret.ts`. Keeping the ceremony here instead of inside
10
+ * `echo-secret.ts` yields a clean DAG (`echo-ceremony.ts` → {`echo-secret.ts`,
11
+ * `keyring.ts`}; `keyring.ts` → `echo-secret.ts`) instead of a two-file
12
+ * cycle, and restores `echo-secret.ts`'s documented charter (builders +
13
+ * verifiers only).
14
+ *
15
+ * @module
16
+ */
17
+ import type { NoydbStore } from '../../kernel/types.js';
18
+ import type { DeviceSealProvider } from './device-seal.js';
19
+ import { type UnlockedKeyring } from './keyring.js';
20
+ /** Options for {@link beginEchoUnlock}. */
21
+ export interface BeginEchoUnlockOptions {
22
+ readonly userId: string;
23
+ readonly prompt: string;
24
+ readonly deviceSeal?: DeviceSealProvider;
25
+ }
26
+ /**
27
+ * A prompt-verified, in-progress echo unlock. Stateless w.r.t. attempts —
28
+ * `complete()` may be called more than once (e.g. retry after a wrong key).
29
+ */
30
+ export interface EchoCeremony {
31
+ /**
32
+ * Echo to display for owner recognition; null ⇒ degraded: ask the owner to
33
+ * TYPE it.
34
+ *
35
+ * Conforming-player contract (spec
36
+ * docs/superpowers/specs/2026-08-02-echo-secret-design.md, "Ceremony"):
37
+ * when the owner does NOT recognize the revealed echo, the player MUST show
38
+ * a hard phishing warning — do not continue, open the official app, rotate
39
+ * the secret immediately — MUST NOT offer any skip or
40
+ * "verification unavailable" fallback, and MUST simply abandon the ceremony
41
+ * by never calling {@link EchoCeremony.complete}. The kernel cannot enforce
42
+ * this terminal state; it is the player's obligation.
43
+ */
44
+ readonly reveal: string | null;
45
+ readonly maskHint: string | undefined;
46
+ /** Complete the ceremony. `echo` is REQUIRED when `reveal` is null. */
47
+ complete(input: {
48
+ readonly echo?: string;
49
+ readonly key: string;
50
+ }): Promise<UnlockedKeyring>;
51
+ }
52
+ /**
53
+ * Begin the interactive anti-phishing unlock ceremony (spec decision 4):
54
+ * prompt → echo reveal → key. Fetches and parses the `_keyring/{userId}`
55
+ * row (same store path as `loadKeyring`), verifies the prompt, and resolves
56
+ * the echo for display (or degrades to the typed-echo path when the reveal
57
+ * cannot be resolved — sealed reveal under a foreign device).
58
+ *
59
+ * Conforming-player contract (spec
60
+ * docs/superpowers/specs/2026-08-02-echo-secret-design.md): an owner who does
61
+ * not recognize `ceremony.reveal` is looking at a phish. The player MUST then
62
+ * show a hard warning (stop, open the official app, rotate the secret now),
63
+ * MUST NOT offer a skip / "verification unavailable" fallback or any
64
+ * single-field secret entry, and MUST abandon the ceremony without calling
65
+ * `complete()`.
66
+ *
67
+ * @throws NoAccessError when no keyring exists for `userId` (mirrors
68
+ * `loadKeyring`'s missing-row error).
69
+ * @throws KeyringExpiredError when the slot is past its `expires_at` —
70
+ * checked before the prompt is verified, so an expired slot never reveals.
71
+ * @throws ValidationError when the keyring is not an echo keyring.
72
+ * @throws WrongPromptError when the prompt fails its verifier.
73
+ */
74
+ export declare function beginEchoUnlock(store: NoydbStore, vault: string, opts: BeginEchoUnlockOptions): Promise<EchoCeremony>;
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Echo-block builders + verifiers (spec
3
+ * docs/superpowers/specs/2026-08-02-echo-secret-design.md, #940).
4
+ *
5
+ * Builds and verifies the on-keyring {@link KeyringEchoBlock} declaration
6
+ * for the 3-part echo ceremony (prompt → echo → key). This module owns:
7
+ *
8
+ * - Minting the prompt/echo canary verifiers (the "canary trick": AES-KW
9
+ * wrap a constant 32-byte key under `deriveSecretKey(part, salt, …)`;
10
+ * verify = unwrap succeeds).
11
+ * - Building the reveal blob per the hybrid reveal policy (spec decision
12
+ * 4): `portable` (AES-GCM under the prompt, own salt), `sealed`
13
+ * (opaque to hub, unsealed only by the enrolling device's
14
+ * {@link DeviceSealProvider}), or `none`.
15
+ * - Resolving the echo for display (`resolveEchoReveal`, `null` ⇒
16
+ * degraded typed-echo path) and verifying a typed echo
17
+ * (`verifyTypedEcho`) for that degraded path.
18
+ *
19
+ * Deriving the actual KEK from all three parts together is
20
+ * `deriveEchoKey`/`encodeEchoParts` (`kernel/enclave/crypto.ts`) — a
21
+ * separate concern from this module's per-part verifiers.
22
+ *
23
+ * Known, accepted disclosure: `prompt_verifier` and `echo_verifier` are
24
+ * offline brute-force oracles for anyone holding the keyring file (600K
25
+ * PBKDF2 per guess), and the `sealed` reveal blob is unpadded so its length
26
+ * discloses the echo's UTF-8 byte length — see the threat model in
27
+ * `docs/superpowers/specs/2026-08-02-echo-secret-design.md`.
28
+ *
29
+ * @module
30
+ */
31
+ import { type EchoSecretParts } from '../../kernel/enclave/index.js';
32
+ import type { KeyringEchoBlock } from '../../kernel/types.js';
33
+ import type { DeviceSealProvider } from './device-seal.js';
34
+ /** Same iteration floor as the KEK (spec resolved question 1). */
35
+ export declare const ECHO_KDF_ITERATIONS = 600000;
36
+ export type EchoRevealChoice = {
37
+ readonly kind: 'portable';
38
+ } | {
39
+ readonly kind: 'sealed';
40
+ readonly deviceSeal: DeviceSealProvider;
41
+ } | {
42
+ readonly kind: 'none';
43
+ };
44
+ /** Build the on-keyring echo declaration for a fresh enrollment. */
45
+ export declare function buildEchoBlock(parts: EchoSecretParts, reveal: EchoRevealChoice, maskHint?: string): Promise<KeyringEchoBlock>;
46
+ export declare function verifyPrompt(block: KeyringEchoBlock, prompt: string): Promise<boolean>;
47
+ /**
48
+ * Resolve the echo for display. `null` ⇒ degraded path: the player
49
+ * must ask the owner to TYPE the echo (verify via {@link verifyTypedEcho}).
50
+ * Callers MUST verify the prompt first — this assumes it.
51
+ *
52
+ * @throws WrongPromptError when the prompt cannot open the portable reveal
53
+ * (callers should verifyPrompt first for a boolean check).
54
+ */
55
+ export declare function resolveEchoReveal(block: KeyringEchoBlock, prompt: string, deviceSeal?: DeviceSealProvider): Promise<string | null>;
56
+ export declare function verifyTypedEcho(block: KeyringEchoBlock, echo: string): Promise<boolean>;
@@ -32,4 +32,12 @@ export type { WrappedDeksBlob } from './wrapped-deks.js';
32
32
  export { writeMagicLinkGrant, readMagicLinkGrantRecord, listMagicLinkGrants, unwrapMagicLinkGrant, revokeMagicLinkGrant, deriveMagicLinkContentKey, magicLinkGrantRecordId, isMagicLinkGrantExpired, } from './magic-link-grant.js';
33
33
  export { hasExportCapability, evaluateExportCapability, } from './keyring.js';
34
34
  export { hasImportCapability, evaluateImportCapability, } from './keyring.js';
35
+ export { buildEchoBlock, verifyPrompt, resolveEchoReveal, verifyTypedEcho, } from './echo-secret.js';
36
+ export type { EchoRevealChoice } from './echo-secret.js';
37
+ export { beginEchoUnlock } from './echo-ceremony.js';
38
+ export type { BeginEchoUnlockOptions, EchoCeremony } from './echo-ceremony.js';
39
+ export { MemoryDeviceSealProvider } from './device-seal.js';
40
+ export type { DeviceSealProvider } from './device-seal.js';
41
+ export type { EchoSecretParts } from '../../kernel/enclave/index.js';
42
+ export type { KeyringEchoBlock, NoydbStore } from '../../kernel/types.js';
35
43
  export { describeAuthConfig, diagramAuthConfig, describeUserAuth, describeAllUsersAuth, } from '../auth-introspection/index.js';