@noy-db/hub 0.4.0-pre.3 → 0.4.0-pre.5

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 (381) hide show
  1. package/README.md +2 -2
  2. package/dist/aggregate/index.js +4 -4
  3. package/dist/api-22ES33N3.js +20 -0
  4. package/dist/as/index.js +11 -11
  5. package/dist/attestation/index.js +20 -20
  6. package/dist/{backup-JL2GOTYQ.js → backup-YCHAC575.js} +11 -11
  7. package/dist/blobs/index.js +12 -12
  8. package/dist/broker/index.js +12 -12
  9. package/dist/by/index.js +2 -2
  10. package/dist/cargo/index.js +29 -29
  11. package/dist/{chunk-2RMDVWGB.js → chunk-2CRZOVDI.js} +2 -2
  12. package/dist/{chunk-T7S4V52L.js → chunk-2PDBYF2O.js} +4 -4
  13. package/dist/{chunk-WJDYZP3U.js → chunk-3LJYHE7S.js} +36 -36
  14. package/dist/chunk-3LJYHE7S.js.map +1 -0
  15. package/dist/{chunk-CCT4WZI6.js → chunk-3OWYOECI.js} +5 -5
  16. package/dist/chunk-3OWYOECI.js.map +1 -0
  17. package/dist/{chunk-L4OA7G5T.js → chunk-522MBPE5.js} +2 -2
  18. package/dist/{chunk-ZJGZDOQO.js → chunk-5ATANZSW.js} +6 -6
  19. package/dist/{chunk-M25ZIEB2.js → chunk-5HSSTOOG.js} +2 -2
  20. package/dist/{chunk-LLVW4V7R.js → chunk-5WLDZZ6S.js} +3 -3
  21. package/dist/{chunk-7B4GPCX7.js → chunk-6RPWILRH.js} +5 -5
  22. package/dist/{chunk-IGM563N5.js → chunk-6SYOHUHM.js} +6 -6
  23. package/dist/chunk-6SYOHUHM.js.map +1 -0
  24. package/dist/{chunk-HGVFJL63.js → chunk-7BIJS6II.js} +15 -5
  25. package/dist/{chunk-HGVFJL63.js.map → chunk-7BIJS6II.js.map} +1 -1
  26. package/dist/{chunk-KR5EGWI4.js → chunk-7ICV4ASA.js} +5 -5
  27. package/dist/{chunk-J3VW4J4E.js → chunk-7LP7FFJ2.js} +2 -2
  28. package/dist/chunk-7LP7FFJ2.js.map +1 -0
  29. package/dist/{chunk-5P5AAXYA.js → chunk-7U6AB7DZ.js} +7 -7
  30. package/dist/chunk-7U6AB7DZ.js.map +1 -0
  31. package/dist/{chunk-KMONEHDJ.js → chunk-AFAPBZAA.js} +2 -2
  32. package/dist/{chunk-GBEXTC6Z.js → chunk-BAAUFCJK.js} +3 -3
  33. package/dist/chunk-BAAUFCJK.js.map +1 -0
  34. package/dist/{chunk-CGPO3ZYB.js → chunk-BY5YBSXA.js} +2 -2
  35. package/dist/{chunk-3O62PVDW.js → chunk-CJVEAVYH.js} +5 -5
  36. package/dist/chunk-CJVEAVYH.js.map +1 -0
  37. package/dist/{chunk-3XVOLB75.js → chunk-CKUYQO2P.js} +3 -3
  38. package/dist/{chunk-2JZ763FV.js → chunk-D4LAJ737.js} +2 -2
  39. package/dist/{chunk-OOTTXUNV.js → chunk-DYZ5CCVM.js} +2 -2
  40. package/dist/{chunk-LUH2MPEF.js → chunk-EEZCB74X.js} +808 -1175
  41. package/dist/chunk-EEZCB74X.js.map +1 -0
  42. package/dist/{chunk-N4FZ6ITM.js → chunk-EGU4PWQW.js} +2 -2
  43. package/dist/{chunk-JKWNG3TM.js → chunk-FHHYCBBP.js} +2 -2
  44. package/dist/{chunk-UBF7HTOR.js → chunk-FIP7KI2P.js} +40 -40
  45. package/dist/chunk-FIP7KI2P.js.map +1 -0
  46. package/dist/{chunk-N4A3DCBT.js → chunk-FTCGEUOY.js} +8 -8
  47. package/dist/{chunk-5BB3N4KU.js → chunk-G4MFQXYX.js} +2 -2
  48. package/dist/{chunk-PEY6ZTCF.js → chunk-GEEJPID6.js} +9 -9
  49. package/dist/{chunk-PEY6ZTCF.js.map → chunk-GEEJPID6.js.map} +1 -1
  50. package/dist/{chunk-KVHWEPT2.js → chunk-GHEMAVTN.js} +2 -2
  51. package/dist/{chunk-OVFCAS7U.js → chunk-GP54LU5N.js} +9 -9
  52. package/dist/{chunk-XW7NWO4A.js → chunk-GTNRMJYH.js} +2 -2
  53. package/dist/{chunk-J6U4BOKP.js → chunk-HAPY7WFP.js} +12 -12
  54. package/dist/{chunk-GU5AYA2Q.js → chunk-HQKRZIX6.js} +5 -5
  55. package/dist/{chunk-OWE4BNTM.js → chunk-I2XEBEEF.js} +4 -4
  56. package/dist/{chunk-WEC3JGBA.js → chunk-IGLU4ME7.js} +3 -3
  57. package/dist/{chunk-BZK6JEX4.js → chunk-ILM6X6CP.js} +5 -5
  58. package/dist/{chunk-2KL6NDD4.js → chunk-J5TEU77Q.js} +4 -4
  59. package/dist/{chunk-UEO5CHOP.js → chunk-JAMDDLIM.js} +13 -13
  60. package/dist/chunk-JAMDDLIM.js.map +1 -0
  61. package/dist/{chunk-V7RGFJ3Z.js → chunk-JIHH26WQ.js} +6 -6
  62. package/dist/{chunk-XGVDLQJE.js → chunk-JN3SGXJE.js} +3 -3
  63. package/dist/{chunk-XULHFSHO.js → chunk-K4BWPNJO.js} +5 -5
  64. package/dist/chunk-K4BWPNJO.js.map +1 -0
  65. package/dist/{chunk-BZEPJJOK.js → chunk-K7BADAOS.js} +4 -4
  66. package/dist/{chunk-OWLPX2GI.js → chunk-KJTIAECI.js} +17 -17
  67. package/dist/chunk-KJTIAECI.js.map +1 -0
  68. package/dist/{chunk-SN75YVM5.js → chunk-L2CAWCQL.js} +18 -18
  69. package/dist/{chunk-SN75YVM5.js.map → chunk-L2CAWCQL.js.map} +1 -1
  70. package/dist/{chunk-MSO2C3KG.js → chunk-LC7DSMHR.js} +2 -2
  71. package/dist/{chunk-JA5B3SLH.js → chunk-M6QA2KK2.js} +2 -2
  72. package/dist/{chunk-IUIVDVXM.js → chunk-MUPZ6IZX.js} +2 -2
  73. package/dist/{chunk-QAFWRGVD.js → chunk-OGVE4IJW.js} +7 -7
  74. package/dist/{chunk-BCOKZC4B.js → chunk-OHV6T5JB.js} +19 -19
  75. package/dist/chunk-OHV6T5JB.js.map +1 -0
  76. package/dist/{chunk-25ZDB25Z.js → chunk-OMSKGLYA.js} +3 -3
  77. package/dist/chunk-OMSKGLYA.js.map +1 -0
  78. package/dist/{chunk-2U7Y7BNJ.js → chunk-ONB627HU.js} +2 -2
  79. package/dist/{chunk-GYB2QK5H.js → chunk-OWLZONGX.js} +2 -2
  80. package/dist/{chunk-YHPUDB7Q.js → chunk-OWOT7CFC.js} +2 -2
  81. package/dist/{chunk-VEX6G3YL.js → chunk-P4NUJVWL.js} +2 -2
  82. package/dist/{chunk-NM4LVUXH.js → chunk-PTT2NB46.js} +2 -2
  83. package/dist/{chunk-2ITLQZV5.js → chunk-PWWWMRT7.js} +2 -2
  84. package/dist/{chunk-GS3Q2KOZ.js → chunk-QBOQI6PG.js} +2 -2
  85. package/dist/{chunk-JIMEB4C6.js → chunk-QMMOMBH6.js} +4 -4
  86. package/dist/{chunk-QDNVHA2F.js → chunk-QMZ5A6FQ.js} +2 -2
  87. package/dist/{chunk-FLHOTGOO.js → chunk-QVGEVZ5F.js} +3 -3
  88. package/dist/{chunk-AFBJHD55.js → chunk-QZJEYZ4I.js} +5 -5
  89. package/dist/{chunk-V3YB7RGR.js → chunk-R2N37AA6.js} +3 -3
  90. package/dist/{chunk-JLHKBAFY.js → chunk-RWW3I3PO.js} +3 -3
  91. package/dist/{chunk-IGAIOGCN.js → chunk-S4YERMGJ.js} +4 -4
  92. package/dist/{chunk-OGFPMCSP.js → chunk-SBOHNJUD.js} +2 -2
  93. package/dist/{chunk-QXPOEAKR.js → chunk-SC4JLMZI.js} +2 -2
  94. package/dist/{chunk-EDC6MLXV.js → chunk-SEU6QHH4.js} +2 -2
  95. package/dist/{chunk-F4COUZLL.js → chunk-TMR64XPL.js} +2 -2
  96. package/dist/{chunk-DEQ2JTBR.js → chunk-TNATF3HB.js} +3 -3
  97. package/dist/{chunk-GZ2GKOF6.js → chunk-TNJVDG2B.js} +3 -3
  98. package/dist/{chunk-5OZCCLNC.js → chunk-TSNRZSRC.js} +2 -2
  99. package/dist/{chunk-QCUH2G77.js → chunk-UTEATWHO.js} +6 -6
  100. package/dist/{chunk-JA5O7UEZ.js → chunk-UVBHM7AK.js} +6 -6
  101. package/dist/chunk-UVBHM7AK.js.map +1 -0
  102. package/dist/{chunk-HKR25MGX.js → chunk-V5JUAW4M.js} +10 -10
  103. package/dist/chunk-V5JUAW4M.js.map +1 -0
  104. package/dist/{chunk-YGBIBOCR.js → chunk-VEGQYPCP.js} +7 -7
  105. package/dist/{chunk-25G7U6RD.js → chunk-WQN5SM7P.js} +2 -2
  106. package/dist/{chunk-NOT7XA7Q.js → chunk-X3MWEFPT.js} +5 -5
  107. package/dist/chunk-XUFAFHQM.js +78 -0
  108. package/dist/chunk-XUFAFHQM.js.map +1 -0
  109. package/dist/{chunk-MEKAMERX.js → chunk-YCAJDK4O.js} +29 -29
  110. package/dist/chunk-YCAJDK4O.js.map +1 -0
  111. package/dist/{chunk-BVZGNMVM.js → chunk-YFFEF6HR.js} +3 -3
  112. package/dist/{chunk-H4SMS4O2.js → chunk-YJ3TREAC.js} +2 -2
  113. package/dist/{chunk-5SZ24DL5.js → chunk-YQQPNXNO.js} +6 -6
  114. package/dist/{chunk-5BHNQNBI.js → chunk-YTW6ZIPD.js} +1 -1
  115. package/dist/chunk-YTW6ZIPD.js.map +1 -0
  116. package/dist/{chunk-EW4HFWGJ.js → chunk-YWZEDG7F.js} +6 -6
  117. package/dist/{chunk-2VUISNGP.js → chunk-YXIVUWDU.js} +5 -5
  118. package/dist/{chunk-YG2EG6CB.js → chunk-YXZNGHID.js} +4 -4
  119. package/dist/{chunk-QYJIOWKN.js → chunk-YZN6NRTR.js} +9 -9
  120. package/dist/{chunk-IZX3WZBF.js → chunk-YZNKFYDC.js} +4 -4
  121. package/dist/{chunk-E2R5NRZD.js → chunk-Z4D3YGAB.js} +2 -2
  122. package/dist/{chunk-STR7WBOB.js → chunk-ZUDAK436.js} +2 -2
  123. package/dist/{chunk-ITI3SJRB.js → chunk-ZX5FNWH7.js} +2 -2
  124. package/dist/classified/index.js +5 -5
  125. package/dist/{classified-marker-7S5IEP6Q.js → classified-marker-52P3D72W.js} +3 -3
  126. package/dist/collection-facade-XKCFHSLR.js +44 -0
  127. package/dist/{computed-WZNKRLCY.js → computed-33DRJDOC.js} +3 -3
  128. package/dist/consent/index.js +9 -9
  129. package/dist/{cover-B5MY43CK.js → cover-5BSNJREH.js} +4 -4
  130. package/dist/{dead-filter-KRRD57MR.js → dead-filter-JXVCKS6W.js} +2 -2
  131. package/dist/delegation-WWZPEDK2.js +25 -0
  132. package/dist/derivations/index.js +12 -12
  133. package/dist/derive-CWWFEQ4N.js +21 -0
  134. package/dist/dispatch-PKQQFDBT.js +193 -0
  135. package/dist/dispatch-PKQQFDBT.js.map +1 -0
  136. package/dist/dispatch-SMXUO7W5.js +72 -0
  137. package/dist/dispatch-SMXUO7W5.js.map +1 -0
  138. package/dist/{enclave-YFKA3GJT.js → enclave-I5H3GINP.js} +11 -11
  139. package/dist/executor-FCJEH3FU.js +9 -0
  140. package/dist/executor-OHET7TF7.js +9 -0
  141. package/dist/executor-SHYLIBOM.js +26 -0
  142. package/dist/export-accessible-FBL6TDSK.js +23 -0
  143. package/dist/extract-partition-ZYIRYMTI.js +38 -0
  144. package/dist/{fanout-sidecar-HJV3A7PM.js → fanout-sidecar-WWXVHHUH.js} +9 -9
  145. package/dist/find-LEBUXVL7.js +11 -0
  146. package/dist/forget/index.js +9 -9
  147. package/dist/guards/index.js +3 -3
  148. package/dist/history/index.js +12 -12
  149. package/dist/i18n/index.js +14 -14
  150. package/dist/index.d.ts +13 -9
  151. package/dist/index.js +119 -118
  152. package/dist/index.js.map +1 -1
  153. package/dist/indexing/index.js +2 -2
  154. package/dist/issue-F76PAGIR.js +19 -0
  155. package/dist/kernel/collection-config.d.ts +11 -69
  156. package/dist/kernel/collection.d.ts +10 -22
  157. package/dist/kernel/enclave/crypto.d.ts +8 -8
  158. package/dist/kernel/enclave/index.d.ts +2 -2
  159. package/dist/kernel/errors.d.ts +20 -20
  160. package/dist/kernel/noydb.d.ts +43 -103
  161. package/dist/kernel/types.d.ts +82 -41
  162. package/dist/kernel/validation.d.ts +33 -33
  163. package/dist/kernel/vault.d.ts +31 -215
  164. package/dist/kernel/via/dispatch.d.ts +7 -0
  165. package/dist/{ledger-SW6QQOAV.js → ledger-M2BKCNVS.js} +11 -11
  166. package/dist/liberate-ZP7UB57K.js +24 -0
  167. package/dist/{link-set-GNGGCFI4.js → link-set-ZU4E5J5S.js} +11 -11
  168. package/dist/materialized-views/index.js +19 -19
  169. package/dist/noydb-BNDGEK5X.js +71 -0
  170. package/dist/on/index.js +9 -9
  171. package/dist/overlay-views/index.js +4 -4
  172. package/dist/periods/index.js +13 -13
  173. package/dist/pod/index.js +11 -11
  174. package/dist/{policy-EAXSJNOT.js → policy-IY2YEA3A.js} +5 -5
  175. package/dist/port/at/index.d.ts +4 -4
  176. package/dist/port/with/archive-strategy.d.ts +31 -0
  177. package/dist/port/with/collection-options.d.ts +171 -0
  178. package/dist/port/with/strategies.d.ts +134 -0
  179. package/dist/port/with/team-strategy.d.ts +1 -1
  180. package/dist/portability/index.js +8 -8
  181. package/dist/{post-register-A7HCFBP5.js → post-register-XIAHB6KF.js} +6 -6
  182. package/dist/query/index.js +6 -6
  183. package/dist/register-HB4TQZSV.js +23 -0
  184. package/dist/registry-6BMBFEXT.js +19 -0
  185. package/dist/registry-7CZWF3EQ.js +9 -0
  186. package/dist/registry-JOFO7RAH.js +18 -0
  187. package/dist/request-withdrawal-UN3TRHWI.js +31 -0
  188. package/dist/{reveal-PB3YG544.js → reveal-VWXRV2XU.js} +6 -6
  189. package/dist/revoke-OLO2OVR7.js +24 -0
  190. package/dist/satellites/index.js +1 -1
  191. package/dist/sealed-record/index.js +12 -12
  192. package/dist/{seed-EKF4DIBB.js → seed-CDBFOTIK.js} +12 -12
  193. package/dist/seed-CDBFOTIK.js.map +1 -0
  194. package/dist/session/index.js +9 -9
  195. package/dist/shadow/index.js +2 -2
  196. package/dist/signer-MGGKPYAN.js +25 -0
  197. package/dist/snapshots/index.js +10 -10
  198. package/dist/{stale-4UNPHWOU.js → stale-NBROTA66.js} +10 -10
  199. package/dist/storage-3R37QZLA.js +23 -0
  200. package/dist/{store-coordination-provider-3AELCZ4Y.js → store-coordination-provider-P3IU5JHD.js} +3 -3
  201. package/dist/sync/index.js +10 -10
  202. package/dist/team/index.js +20 -20
  203. package/dist/tiers/index.js +10 -10
  204. package/dist/to/index.js +1 -1
  205. package/dist/tx/index.js +3 -3
  206. package/dist/util/index.js +1 -1
  207. package/dist/{verify-MXN66IIH.js → verify-5X37OXRY.js} +5 -5
  208. package/dist/{walk-H4YE52S2.js → walk-E3OVLBFR.js} +11 -11
  209. package/dist/with/index.js +11 -11
  210. package/dist/with-audit/portability/export-accessible.d.ts +4 -4
  211. package/dist/with-audit/portability/request-withdrawal.d.ts +3 -3
  212. package/dist/with-audit/portability/withdraw-accessible.d.ts +2 -2
  213. package/dist/with-audit/sealed-record/strategy.d.ts +1 -1
  214. package/dist/with-cargo/adopt-partition.d.ts +7 -7
  215. package/dist/with-cargo/index.d.ts +1 -1
  216. package/dist/with-commit/history/time-machine.d.ts +2 -2
  217. package/dist/with-formula/derivations/dispatch.d.ts +98 -0
  218. package/dist/with-formula/materialized-views/dispatch.d.ts +75 -0
  219. package/dist/with-party/custody/liberate.d.ts +3 -3
  220. package/dist/with-party/session/dev-unlock.d.ts +2 -2
  221. package/dist/with-party/session/session.d.ts +2 -2
  222. package/dist/with-party/team/deed.d.ts +8 -8
  223. package/dist/with-party/team/index.d.ts +2 -2
  224. package/dist/with-party/team/keyring.d.ts +19 -19
  225. package/dist/with-party/team/{managed-passphrase.d.ts → managed-secret.d.ts} +27 -27
  226. package/dist/with-party/team/noydb-facade.d.ts +41 -41
  227. package/dist/with-party/team/peer-recover.d.ts +13 -13
  228. package/dist/with-party/team/recovery.d.ts +5 -5
  229. package/dist/with-party/team/rotate-recover.d.ts +30 -30
  230. package/dist/with-pod/bundle.d.ts +30 -30
  231. package/dist/with-pod/format.d.ts +2 -2
  232. package/dist/withdraw-accessible-Q2EMATCU.js +28 -0
  233. package/package.json +3 -3
  234. package/dist/api-UPAT2O3M.js +0 -20
  235. package/dist/chunk-25ZDB25Z.js.map +0 -1
  236. package/dist/chunk-3O62PVDW.js.map +0 -1
  237. package/dist/chunk-5BHNQNBI.js.map +0 -1
  238. package/dist/chunk-5P5AAXYA.js.map +0 -1
  239. package/dist/chunk-BCOKZC4B.js.map +0 -1
  240. package/dist/chunk-CCT4WZI6.js.map +0 -1
  241. package/dist/chunk-GBEXTC6Z.js.map +0 -1
  242. package/dist/chunk-HKR25MGX.js.map +0 -1
  243. package/dist/chunk-IGM563N5.js.map +0 -1
  244. package/dist/chunk-J3VW4J4E.js.map +0 -1
  245. package/dist/chunk-JA5O7UEZ.js.map +0 -1
  246. package/dist/chunk-LUH2MPEF.js.map +0 -1
  247. package/dist/chunk-MEKAMERX.js.map +0 -1
  248. package/dist/chunk-OWLPX2GI.js.map +0 -1
  249. package/dist/chunk-UBF7HTOR.js.map +0 -1
  250. package/dist/chunk-UEO5CHOP.js.map +0 -1
  251. package/dist/chunk-WJDYZP3U.js.map +0 -1
  252. package/dist/chunk-XULHFSHO.js.map +0 -1
  253. package/dist/collection-facade-ENLTJZBT.js +0 -44
  254. package/dist/delegation-UT76AQIG.js +0 -25
  255. package/dist/derive-SGRCCKVP.js +0 -21
  256. package/dist/executor-TEZYRDN3.js +0 -9
  257. package/dist/executor-WQQRU6DO.js +0 -9
  258. package/dist/executor-YORMIBWV.js +0 -26
  259. package/dist/export-accessible-HXMKW5LJ.js +0 -23
  260. package/dist/extract-partition-QGQ2R42J.js +0 -38
  261. package/dist/find-VV6PBIHK.js +0 -11
  262. package/dist/issue-7JJ4Z7E2.js +0 -19
  263. package/dist/liberate-FK7JI2QX.js +0 -24
  264. package/dist/noydb-KUX2TJMX.js +0 -70
  265. package/dist/register-YBMRLZLO.js +0 -23
  266. package/dist/registry-3LXKNXWI.js +0 -9
  267. package/dist/registry-4V4YQCXJ.js +0 -19
  268. package/dist/registry-ZULMLCJK.js +0 -18
  269. package/dist/request-withdrawal-SEVUEUDG.js +0 -31
  270. package/dist/revoke-5QULL5GT.js +0 -24
  271. package/dist/seed-EKF4DIBB.js.map +0 -1
  272. package/dist/signer-ZMH35FT4.js +0 -25
  273. package/dist/storage-QOZKQMID.js +0 -23
  274. package/dist/withdraw-accessible-HPOVNG2G.js +0 -28
  275. /package/dist/{api-UPAT2O3M.js.map → api-22ES33N3.js.map} +0 -0
  276. /package/dist/{backup-JL2GOTYQ.js.map → backup-YCHAC575.js.map} +0 -0
  277. /package/dist/{chunk-2RMDVWGB.js.map → chunk-2CRZOVDI.js.map} +0 -0
  278. /package/dist/{chunk-T7S4V52L.js.map → chunk-2PDBYF2O.js.map} +0 -0
  279. /package/dist/{chunk-L4OA7G5T.js.map → chunk-522MBPE5.js.map} +0 -0
  280. /package/dist/{chunk-ZJGZDOQO.js.map → chunk-5ATANZSW.js.map} +0 -0
  281. /package/dist/{chunk-M25ZIEB2.js.map → chunk-5HSSTOOG.js.map} +0 -0
  282. /package/dist/{chunk-LLVW4V7R.js.map → chunk-5WLDZZ6S.js.map} +0 -0
  283. /package/dist/{chunk-7B4GPCX7.js.map → chunk-6RPWILRH.js.map} +0 -0
  284. /package/dist/{chunk-KR5EGWI4.js.map → chunk-7ICV4ASA.js.map} +0 -0
  285. /package/dist/{chunk-KMONEHDJ.js.map → chunk-AFAPBZAA.js.map} +0 -0
  286. /package/dist/{chunk-CGPO3ZYB.js.map → chunk-BY5YBSXA.js.map} +0 -0
  287. /package/dist/{chunk-3XVOLB75.js.map → chunk-CKUYQO2P.js.map} +0 -0
  288. /package/dist/{chunk-2JZ763FV.js.map → chunk-D4LAJ737.js.map} +0 -0
  289. /package/dist/{chunk-OOTTXUNV.js.map → chunk-DYZ5CCVM.js.map} +0 -0
  290. /package/dist/{chunk-N4FZ6ITM.js.map → chunk-EGU4PWQW.js.map} +0 -0
  291. /package/dist/{chunk-JKWNG3TM.js.map → chunk-FHHYCBBP.js.map} +0 -0
  292. /package/dist/{chunk-N4A3DCBT.js.map → chunk-FTCGEUOY.js.map} +0 -0
  293. /package/dist/{chunk-5BB3N4KU.js.map → chunk-G4MFQXYX.js.map} +0 -0
  294. /package/dist/{chunk-KVHWEPT2.js.map → chunk-GHEMAVTN.js.map} +0 -0
  295. /package/dist/{chunk-OVFCAS7U.js.map → chunk-GP54LU5N.js.map} +0 -0
  296. /package/dist/{chunk-XW7NWO4A.js.map → chunk-GTNRMJYH.js.map} +0 -0
  297. /package/dist/{chunk-J6U4BOKP.js.map → chunk-HAPY7WFP.js.map} +0 -0
  298. /package/dist/{chunk-GU5AYA2Q.js.map → chunk-HQKRZIX6.js.map} +0 -0
  299. /package/dist/{chunk-OWE4BNTM.js.map → chunk-I2XEBEEF.js.map} +0 -0
  300. /package/dist/{chunk-WEC3JGBA.js.map → chunk-IGLU4ME7.js.map} +0 -0
  301. /package/dist/{chunk-BZK6JEX4.js.map → chunk-ILM6X6CP.js.map} +0 -0
  302. /package/dist/{chunk-2KL6NDD4.js.map → chunk-J5TEU77Q.js.map} +0 -0
  303. /package/dist/{chunk-V7RGFJ3Z.js.map → chunk-JIHH26WQ.js.map} +0 -0
  304. /package/dist/{chunk-XGVDLQJE.js.map → chunk-JN3SGXJE.js.map} +0 -0
  305. /package/dist/{chunk-BZEPJJOK.js.map → chunk-K7BADAOS.js.map} +0 -0
  306. /package/dist/{chunk-MSO2C3KG.js.map → chunk-LC7DSMHR.js.map} +0 -0
  307. /package/dist/{chunk-JA5B3SLH.js.map → chunk-M6QA2KK2.js.map} +0 -0
  308. /package/dist/{chunk-IUIVDVXM.js.map → chunk-MUPZ6IZX.js.map} +0 -0
  309. /package/dist/{chunk-QAFWRGVD.js.map → chunk-OGVE4IJW.js.map} +0 -0
  310. /package/dist/{chunk-2U7Y7BNJ.js.map → chunk-ONB627HU.js.map} +0 -0
  311. /package/dist/{chunk-GYB2QK5H.js.map → chunk-OWLZONGX.js.map} +0 -0
  312. /package/dist/{chunk-YHPUDB7Q.js.map → chunk-OWOT7CFC.js.map} +0 -0
  313. /package/dist/{chunk-VEX6G3YL.js.map → chunk-P4NUJVWL.js.map} +0 -0
  314. /package/dist/{chunk-NM4LVUXH.js.map → chunk-PTT2NB46.js.map} +0 -0
  315. /package/dist/{chunk-2ITLQZV5.js.map → chunk-PWWWMRT7.js.map} +0 -0
  316. /package/dist/{chunk-GS3Q2KOZ.js.map → chunk-QBOQI6PG.js.map} +0 -0
  317. /package/dist/{chunk-JIMEB4C6.js.map → chunk-QMMOMBH6.js.map} +0 -0
  318. /package/dist/{chunk-QDNVHA2F.js.map → chunk-QMZ5A6FQ.js.map} +0 -0
  319. /package/dist/{chunk-FLHOTGOO.js.map → chunk-QVGEVZ5F.js.map} +0 -0
  320. /package/dist/{chunk-AFBJHD55.js.map → chunk-QZJEYZ4I.js.map} +0 -0
  321. /package/dist/{chunk-V3YB7RGR.js.map → chunk-R2N37AA6.js.map} +0 -0
  322. /package/dist/{chunk-JLHKBAFY.js.map → chunk-RWW3I3PO.js.map} +0 -0
  323. /package/dist/{chunk-IGAIOGCN.js.map → chunk-S4YERMGJ.js.map} +0 -0
  324. /package/dist/{chunk-OGFPMCSP.js.map → chunk-SBOHNJUD.js.map} +0 -0
  325. /package/dist/{chunk-QXPOEAKR.js.map → chunk-SC4JLMZI.js.map} +0 -0
  326. /package/dist/{chunk-EDC6MLXV.js.map → chunk-SEU6QHH4.js.map} +0 -0
  327. /package/dist/{chunk-F4COUZLL.js.map → chunk-TMR64XPL.js.map} +0 -0
  328. /package/dist/{chunk-DEQ2JTBR.js.map → chunk-TNATF3HB.js.map} +0 -0
  329. /package/dist/{chunk-GZ2GKOF6.js.map → chunk-TNJVDG2B.js.map} +0 -0
  330. /package/dist/{chunk-5OZCCLNC.js.map → chunk-TSNRZSRC.js.map} +0 -0
  331. /package/dist/{chunk-QCUH2G77.js.map → chunk-UTEATWHO.js.map} +0 -0
  332. /package/dist/{chunk-YGBIBOCR.js.map → chunk-VEGQYPCP.js.map} +0 -0
  333. /package/dist/{chunk-25G7U6RD.js.map → chunk-WQN5SM7P.js.map} +0 -0
  334. /package/dist/{chunk-NOT7XA7Q.js.map → chunk-X3MWEFPT.js.map} +0 -0
  335. /package/dist/{chunk-BVZGNMVM.js.map → chunk-YFFEF6HR.js.map} +0 -0
  336. /package/dist/{chunk-H4SMS4O2.js.map → chunk-YJ3TREAC.js.map} +0 -0
  337. /package/dist/{chunk-5SZ24DL5.js.map → chunk-YQQPNXNO.js.map} +0 -0
  338. /package/dist/{chunk-EW4HFWGJ.js.map → chunk-YWZEDG7F.js.map} +0 -0
  339. /package/dist/{chunk-2VUISNGP.js.map → chunk-YXIVUWDU.js.map} +0 -0
  340. /package/dist/{chunk-YG2EG6CB.js.map → chunk-YXZNGHID.js.map} +0 -0
  341. /package/dist/{chunk-QYJIOWKN.js.map → chunk-YZN6NRTR.js.map} +0 -0
  342. /package/dist/{chunk-IZX3WZBF.js.map → chunk-YZNKFYDC.js.map} +0 -0
  343. /package/dist/{chunk-E2R5NRZD.js.map → chunk-Z4D3YGAB.js.map} +0 -0
  344. /package/dist/{chunk-STR7WBOB.js.map → chunk-ZUDAK436.js.map} +0 -0
  345. /package/dist/{chunk-ITI3SJRB.js.map → chunk-ZX5FNWH7.js.map} +0 -0
  346. /package/dist/{classified-marker-7S5IEP6Q.js.map → classified-marker-52P3D72W.js.map} +0 -0
  347. /package/dist/{collection-facade-ENLTJZBT.js.map → collection-facade-XKCFHSLR.js.map} +0 -0
  348. /package/dist/{computed-WZNKRLCY.js.map → computed-33DRJDOC.js.map} +0 -0
  349. /package/dist/{cover-B5MY43CK.js.map → cover-5BSNJREH.js.map} +0 -0
  350. /package/dist/{dead-filter-KRRD57MR.js.map → dead-filter-JXVCKS6W.js.map} +0 -0
  351. /package/dist/{delegation-UT76AQIG.js.map → delegation-WWZPEDK2.js.map} +0 -0
  352. /package/dist/{derive-SGRCCKVP.js.map → derive-CWWFEQ4N.js.map} +0 -0
  353. /package/dist/{enclave-YFKA3GJT.js.map → enclave-I5H3GINP.js.map} +0 -0
  354. /package/dist/{executor-TEZYRDN3.js.map → executor-FCJEH3FU.js.map} +0 -0
  355. /package/dist/{executor-WQQRU6DO.js.map → executor-OHET7TF7.js.map} +0 -0
  356. /package/dist/{executor-YORMIBWV.js.map → executor-SHYLIBOM.js.map} +0 -0
  357. /package/dist/{export-accessible-HXMKW5LJ.js.map → export-accessible-FBL6TDSK.js.map} +0 -0
  358. /package/dist/{extract-partition-QGQ2R42J.js.map → extract-partition-ZYIRYMTI.js.map} +0 -0
  359. /package/dist/{fanout-sidecar-HJV3A7PM.js.map → fanout-sidecar-WWXVHHUH.js.map} +0 -0
  360. /package/dist/{find-VV6PBIHK.js.map → find-LEBUXVL7.js.map} +0 -0
  361. /package/dist/{issue-7JJ4Z7E2.js.map → issue-F76PAGIR.js.map} +0 -0
  362. /package/dist/{ledger-SW6QQOAV.js.map → ledger-M2BKCNVS.js.map} +0 -0
  363. /package/dist/{liberate-FK7JI2QX.js.map → liberate-ZP7UB57K.js.map} +0 -0
  364. /package/dist/{link-set-GNGGCFI4.js.map → link-set-ZU4E5J5S.js.map} +0 -0
  365. /package/dist/{noydb-KUX2TJMX.js.map → noydb-BNDGEK5X.js.map} +0 -0
  366. /package/dist/{policy-EAXSJNOT.js.map → policy-IY2YEA3A.js.map} +0 -0
  367. /package/dist/{post-register-A7HCFBP5.js.map → post-register-XIAHB6KF.js.map} +0 -0
  368. /package/dist/{register-YBMRLZLO.js.map → register-HB4TQZSV.js.map} +0 -0
  369. /package/dist/{registry-3LXKNXWI.js.map → registry-6BMBFEXT.js.map} +0 -0
  370. /package/dist/{registry-4V4YQCXJ.js.map → registry-7CZWF3EQ.js.map} +0 -0
  371. /package/dist/{registry-ZULMLCJK.js.map → registry-JOFO7RAH.js.map} +0 -0
  372. /package/dist/{request-withdrawal-SEVUEUDG.js.map → request-withdrawal-UN3TRHWI.js.map} +0 -0
  373. /package/dist/{reveal-PB3YG544.js.map → reveal-VWXRV2XU.js.map} +0 -0
  374. /package/dist/{revoke-5QULL5GT.js.map → revoke-OLO2OVR7.js.map} +0 -0
  375. /package/dist/{signer-ZMH35FT4.js.map → signer-MGGKPYAN.js.map} +0 -0
  376. /package/dist/{stale-4UNPHWOU.js.map → stale-NBROTA66.js.map} +0 -0
  377. /package/dist/{storage-QOZKQMID.js.map → storage-3R37QZLA.js.map} +0 -0
  378. /package/dist/{store-coordination-provider-3AELCZ4Y.js.map → store-coordination-provider-P3IU5JHD.js.map} +0 -0
  379. /package/dist/{verify-MXN66IIH.js.map → verify-5X37OXRY.js.map} +0 -0
  380. /package/dist/{walk-H4YE52S2.js.map → walk-E3OVLBFR.js.map} +0 -0
  381. /package/dist/{withdraw-accessible-HPOVNG2G.js.map → withdraw-accessible-Q2EMATCU.js.map} +0 -0
@@ -1,8 +1,5 @@
1
1
  import type { NoydbOptions, NoydbEventMap, GrantOptions, RevokeOptions, UpdateUserOptions, UserInfo, PushResult, PullResult, PushOptions, PullOptions, SyncStatus, NoydbStore, AccessibleVault, ListAccessibleVaultsOptions, QueryAcrossOptions, QueryAcrossResult, TranslatorAuditEntry, WriteConflict, UserApiFactory, ActiveTier, FactorProofBundle, GateName, VaultPolicy } from './types.js';
2
- import type { PassphrasePolicy } from './validation.js';
3
- import { type RotatePassphraseInput, type RecoverPassphraseInput, type RecoverPassphraseResult, type RotateRecoveryOptions, type RotateRecoveryResult, type EnrollRecoveryResult, type RecoveryEnrollmentInput, type RecoveryProof } from '../with-party/team/rotate-recover.js';
4
- import type { RecoverUserOptions } from '../with-party/team/peer-recover.js';
5
- import { type PaperRecoveryEntry, type ShamirRecoveryEntry } from '../with-party/team/recovery.js';
2
+ import type { SecretPolicy } from './validation.js';
6
3
  import { type CoordinationProvider } from '../port/by/default-provider.js';
7
4
  import type { Cover } from '../with-party/directory/cover/types.js';
8
5
  import type { SetCoverInput } from '../with-party/directory/cover/schema.js';
@@ -13,9 +10,6 @@ import { WriteHookRegistry, type WriteHook, type Unsubscribe } from '../port/wit
13
10
  import { ServiceBus } from '../port/with/service-bus.js';
14
11
  import { type TabCoordinationOptions, type TabRole, type TabPresence } from '../with-party/tab-coordination.js';
15
12
  import type { UnlockedKeyring } from '../with-party/team/keyring.js';
16
- import { type EnrollAuthenticatorOptions, type UpdateAuthenticatorOptions } from '../with-party/team/authenticators.js';
17
- import { type QuickUnlockState } from '../with-party/session/unlock-state.js';
18
- import type { KeyringAuthenticator } from './types.js';
19
13
  import type { SyncEngine } from '../with-party/team/sync.js';
20
14
  import type { SyncTransaction } from '../with-party/team/sync-transaction.js';
21
15
  import { type SnapshotMeta } from '../with-fork/snapshots/strategy.js';
@@ -24,6 +18,7 @@ import { TxContext } from '../with-commit/tx/transaction.js';
24
18
  import type { DryRunResult } from '../with-commit/tx/dry-run.js';
25
19
  import { type ForgetStrategy } from '../with-audit/forget/strategy.js';
26
20
  import { type CustodyStrategy } from '../with-party/custody/strategy.js';
21
+ import { TeamFacade } from '../with-party/team/noydb-facade.js';
27
22
  /** NoydbOptions with the store resolved to a non-optional value (internal use only). */
28
23
  type ResolvedNoydbOptions = NoydbOptions & {
29
24
  readonly store: NoydbStore;
@@ -56,7 +51,7 @@ export declare class Noydb {
56
51
  private readonly keyringCache;
57
52
  private readonly syncEngines;
58
53
  /**
59
- * Per-vault active session tier — defaults to `1` after a passphrase
54
+ * Per-vault active session tier — defaults to `1` after a secret
60
55
  * unlock; tier-2 / tier-3 unlocks downgrade it. Used by
61
56
  * {@link checkGate} to evaluate `gate.minTier`.
62
57
  */
@@ -84,26 +79,38 @@ export declare class Noydb {
84
79
  private writeRelay;
85
80
  /** Per-vault policy enforcers. */
86
81
  private readonly policyEnforcers;
87
- private readonly txStrategy;
88
- private readonly forgetStrategy;
89
82
  /**
90
- * Opt-in sovereign-custody (FR-6) strategy — `NO_CUSTODY` (throwing) unless
91
- * `withCustody()` was passed. Public so `Vault` routes `vault.custody.liberate`
92
- * through it; grant/revoke route through it from this class. @internal
83
+ * Every opt-in service, resolved once (#838). Shared by reference with each
84
+ * `Vault` this instance opens and, through them, every `Collection` — so
85
+ * there is exactly one resolution and no construction path can disagree
86
+ * about which services are enabled (the #834 bug class).
93
87
  */
94
- readonly custodyStrategy: CustodyStrategy;
88
+ private readonly strategies;
95
89
  /**
96
- * Opt-in multi-user team strategy (#267 keyring-grant → team split) —
97
- * `NO_TEAM` (throwing) unless `withTeam()` was passed; the keyring
98
- * engines are linked only by the active strategy, not by this file. */
99
- private readonly teamStrategy;
100
- private readonly sessionStrategy;
101
- private readonly syncStrategy;
90
+ * Opt-in sovereign-custody (FR-6) strategy — `NO_CUSTODY` (throwing) unless
91
+ * `withCustody()` was passed. Kept as a public accessor because `Vault`
92
+ * routes `vault.custody.liberate` through `this.noydb.custodyStrategy`.
93
+ * @internal
94
+ */
95
+ get custodyStrategy(): CustodyStrategy;
102
96
  private readonly snapshots;
103
97
  private readonly policyManager;
104
98
  /** Pre-resolved policy-gate engine function (mirrors `coordinationProvider`/`userApiFactory` above). */
105
99
  private readonly policyCheckGate;
106
- private readonly team;
100
+ /**
101
+ * Credential and multi-user operations — enrolment, secret rotation,
102
+ * recovery, quick-unlock (#846).
103
+ *
104
+ * Public because 23 methods on this class did nothing but restate a
105
+ * TeamFacade signature and forward to it, so every signature had to be
106
+ * hand-kept in sync with its counterpart. `db.team.rotateSecret(…)`
107
+ * reads the same and has one source of truth.
108
+ *
109
+ * A getter, not a field, so it appears in the prototype-based kernel API
110
+ * manifest — an instance field is invisible to it (the same reason
111
+ * `custodyStrategy` became one in #838).
112
+ */
113
+ get team(): TeamFacade;
107
114
  /**
108
115
  * Currently-running multi-record transaction, set by
109
116
  * `runTransaction` at the start of Phase 2 (commit) and cleared in
@@ -282,9 +289,9 @@ export declare class Noydb {
282
289
  *
283
290
  * The walk is a two-step pipeline: first ask the adapter for the
284
291
  * universe of compartments it stores, then for each one attempt to
285
- * load the calling user's keyring with the in-memory passphrase.
292
+ * load the calling user's keyring with the in-memory secret.
286
293
  * Compartments where the user has no keyring file (`NoAccessError`)
287
- * or where the passphrase doesn't unwrap (`InvalidKeyError`) are
294
+ * or where the secret doesn't unwrap (`InvalidKeyError`) are
288
295
  * silently dropped from the result — the existence of those
289
296
  * compartments is **not** confirmed in the return value.
290
297
  *
@@ -305,15 +312,15 @@ export declare class Noydb {
305
312
  * **Known edge case.** A vault whose keyring file
306
313
  * happens to have an empty wrapped-DEKs map (because the owner
307
314
  * granted access before any collection was created) will pass the
308
- * `loadKeyring` probe with *any* passphrase — there are no DEKs to
315
+ * `loadKeyring` probe with *any* secret — there are no DEKs to
309
316
  * unwrap, so the integrity-checked unwrap that normally rejects
310
- * wrong passphrases never runs. The result is that an unrelated
317
+ * wrong secrets never runs. The result is that an unrelated
311
318
  * principal who happens to know the user-id and the vault
312
319
  * name can show up in `listAccessibleVaults()` as having
313
320
  * access to that empty vault. They cannot read any actual
314
321
  * data (their DEK set is empty), so this is a metadata leak
315
322
  * (vault name + user-id), not a content leak. Hardening this
316
- * via a passphrase canary in the keyring file is a deferred
323
+ * via a secret canary in the keyring file is a deferred
317
324
  * follow-up.
318
325
  *
319
326
  * **Cost.** O(compartments × keyring-load) — one `loadKeyring`
@@ -406,15 +413,15 @@ export declare class Noydb {
406
413
  */
407
414
  _resolveBackend(vaultId: string): NoydbStore;
408
415
  /**
409
- * Change the current user's passphrase for a vault.
416
+ * Change the current user's secret for a vault.
410
417
  *
411
- * Validates the new passphrase against the strength rules. Pass
412
- * `{ allowWeakPassphrase: true }` to skip — typically only useful for
413
- * fixtures and migrations. Pass a `PassphrasePolicy` to override the
418
+ * Validates the new secret against the strength rules. Pass
419
+ * `{ allowWeakSecret: true }` to skip — typically only useful for
420
+ * fixtures and migrations. Pass a `SecretPolicy` to override the
414
421
  * default rules (e.g. consumer-tunable `pattern` / `customValidator`).
415
422
  */
416
- changeSecret(vault: string, newPassphrase: string, options?: PassphrasePolicy & {
417
- allowWeakPassphrase?: boolean;
423
+ changeSecret(vault: string, newSecret: string, options?: SecretPolicy & {
424
+ allowWeakSecret?: boolean;
418
425
  }): Promise<void>;
419
426
  /** Push local changes to remote for a vault. */
420
427
  push(vault: string, options?: PushOptions): Promise<PushResult>;
@@ -672,7 +679,7 @@ export declare class Noydb {
672
679
  * denial; resolves with `void` on success.
673
680
  *
674
681
  * @param vault The vault whose policy applies.
675
- * @param gate Gate name — built-in (e.g. `'rotate-passphrase'`)
682
+ * @param gate Gate name — built-in (e.g. `'rotate-secret'`)
676
683
  * or app-defined (`app:*`).
677
684
  * @param presented Caller-supplied factor proofs.
678
685
  */
@@ -687,12 +694,12 @@ export declare class Noydb {
687
694
  * Two enforcement modes:
688
695
  *
689
696
  * 1. **Managed-mode mandatory strong-recovery.** When
690
- * `passphraseMode === 'managed'`, the vault MUST have at least
697
+ * `secretMode === 'managed'`, the vault MUST have at least
691
698
  * one **strong** recovery profile (Shamir today). Paper alone is
692
699
  * rejected because under managed mode the user has no memorized
693
- * passphrase, so losing the paper sheet = losing every record.
700
+ * secret, so losing the paper sheet = losing every record.
694
701
  * This check is unconditional — independent of `requireRecovery`
695
- * and the `recover-passphrase` gate.
702
+ * and the `recover-secret` gate.
696
703
  *
697
704
  * 2. **Opt-in strict mandatory-recovery.** When
698
705
  * `requireRecovery: true` is set on createNoydb (and the gate is
@@ -711,26 +718,6 @@ export declare class Noydb {
711
718
  * @internal
712
719
  */
713
720
  _setActiveTier(vault: string, tier: ActiveTier): void;
714
- /** Add a tier-2 authenticator slot — see {@link TeamFacade.enrollAuthenticator}. */
715
- enrollAuthenticator(vault: string, options: EnrollAuthenticatorOptions, factors?: FactorProofBundle): Promise<void>;
716
- /** Remove a tier-2 authenticator slot — see {@link TeamFacade.removeAuthenticator}. */
717
- removeAuthenticator(vault: string, slotId: string, factors?: FactorProofBundle): Promise<void>;
718
- /** Read the slot list for a vault — see {@link TeamFacade.listAuthenticators}. */
719
- listAuthenticators(vault: string): Promise<ReadonlyArray<KeyringAuthenticator>>;
720
- /** Mutate an authenticator slot's `meta` — see {@link TeamFacade.updateAuthenticator}. */
721
- updateAuthenticator(vault: string, slotId: string, options: UpdateAuthenticatorOptions, factors?: FactorProofBundle): Promise<void>;
722
- /** Native WebAuthn enrollment — see {@link TeamFacade.enrollWebAuthn}. */
723
- enrollWebAuthn(vault: string, ceremony: (keyring: UnlockedKeyring) => Promise<EnrollAuthenticatorOptions>, factors?: FactorProofBundle): Promise<{
724
- credentialId: string;
725
- }>;
726
- /** List webauthn-method slots — see {@link TeamFacade.listWebAuthnSlots}. */
727
- listWebAuthnSlots(vault: string): Promise<ReadonlyArray<{
728
- id: string;
729
- enrolledAt: string;
730
- credentialId: string;
731
- }>>;
732
- /** Unlock via a tier-2 authenticator slot — see {@link TeamFacade.unlockViaAuthenticator}. */
733
- unlockViaAuthenticator(vault: string, slotId: string, verify: (slot: KeyringAuthenticator) => Promise<UnlockedKeyring>): Promise<UnlockedKeyring>;
734
721
  /**
735
722
  * Set the owner-curated cover for a vault. Throws
736
723
  * `ValidationError` if the developer did not opt the hub into
@@ -760,53 +747,6 @@ export declare class Noydb {
760
747
  getCover(vault: string, opts?: {
761
748
  readonly locale?: string;
762
749
  }): Promise<Cover | undefined>;
763
- /** English summary of the configured auth model — see {@link TeamFacade.describeAuthConfig}. */
764
- describeAuthConfig(vault: string): Promise<string>;
765
- /** Mermaid `flowchart TB` source for the auth graph — see {@link TeamFacade.diagramAuthConfig}. */
766
- diagramAuthConfig(vault: string): Promise<string>;
767
- /** Per-user enrollment summary — see {@link TeamFacade.describeUserAuth}. */
768
- describeUserAuth(vault: string, userId: string, factors?: FactorProofBundle): Promise<string>;
769
- /** Bulk per-user enrollment summary — see {@link TeamFacade.describeAllUsersAuth}. */
770
- describeAllUsersAuth(vault: string, factors?: FactorProofBundle): Promise<Array<{
771
- userId: string;
772
- description: string;
773
- }>>;
774
- /** Rotate the user's passphrase (user remembers old) — see {@link TeamFacade.rotatePassphrase}. */
775
- rotatePassphrase(vault: string, input: RotatePassphraseInput, factors?: FactorProofBundle): Promise<void>;
776
- /** Reset the passphrase using a recovery proof — see {@link TeamFacade.recoverPassphrase}. */
777
- recoverPassphrase(vault: string, input: RecoverPassphraseInput, factors?: FactorProofBundle): Promise<RecoverPassphraseResult>;
778
- /** Deliberate paper/Shamir recovery-code regeneration — see {@link TeamFacade.rotateRecovery}. */
779
- rotateRecovery(vault: string, options: RotateRecoveryOptions, factors?: FactorProofBundle): Promise<RotateRecoveryResult>;
780
- /** Atomic create-and-enroll for managed-mode vaults — see {@link TeamFacade.openVaultAndEnrollRecovery}. */
781
- openVaultAndEnrollRecovery(vault: string, opts: {
782
- readonly recovery: ReadonlyArray<RecoveryEnrollmentInput>;
783
- readonly locale?: string;
784
- }): Promise<{
785
- readonly vault: Vault;
786
- readonly recoveryEnrollments: ReadonlyArray<EnrollRecoveryResult>;
787
- }>;
788
- /** Recovery flow under managed-passphrase mode — see {@link TeamFacade.recoverManagedPassphrase}. */
789
- recoverManagedPassphrase(vault: string, options: {
790
- readonly recoveryProof: RecoveryProof;
791
- readonly passphrasePolicy?: PassphrasePolicy;
792
- }): Promise<void>;
793
- /** Atomic peer-recovery of an existing user's keyring — see {@link TeamFacade.recoverUser}. */
794
- recoverUser(vault: string, options: RecoverUserOptions, factors?: FactorProofBundle): Promise<void>;
795
- /** Persist a recovery enrollment (paper or Shamir) — see {@link TeamFacade.enrollRecovery}. */
796
- enrollRecovery(vault: string, enrollment: RecoveryEnrollmentInput): Promise<EnrollRecoveryResult>;
797
- /** Read the persisted recovery entries (paper + Shamir) — see {@link TeamFacade.listRecoveryEntries}. */
798
- listRecoveryEntries(vault: string): Promise<{
799
- paper: ReadonlyArray<PaperRecoveryEntry>;
800
- shamir: ReadonlyArray<ShamirRecoveryEntry>;
801
- }>;
802
- /** Register a tier-3 quick-unlock state — see {@link TeamFacade.enrollUnlock}. */
803
- enrollUnlock(vault: string, state: QuickUnlockState, factors?: FactorProofBundle): Promise<void>;
804
- /** Resume a session via the registered tier-3 state — see {@link TeamFacade.unlockViaPin}. */
805
- unlockViaPin(vault: string, resume: (state: QuickUnlockState) => Promise<UnlockedKeyring>): Promise<UnlockedKeyring | undefined>;
806
- /** Drop the tier-3 state for a vault — see {@link TeamFacade.clearQuickUnlock}. */
807
- clearQuickUnlock(vault: string): void;
808
- /** Public defensive-copy accessor for the unlocked keyring — see {@link TeamFacade.getKeyring}. */
809
- getKeyring(vault: string): Promise<UnlockedKeyring>;
810
750
  /**
811
751
  * Live-reference variant used by the hub's own code paths. Internal
812
752
  * mutations on `deks` (e.g. {@link ensureCollectionDEK} adding a
@@ -55,11 +55,11 @@ import type { SyncStrategy } from '../with-party/team/sync-strategy.js';
55
55
  import type { GuardStrategyHandleAny } from '../with-audit/guards/types.js';
56
56
  import type { DerivationStrategyHandle } from '../with-formula/derivations/types.js';
57
57
  import type { UnlockedKeyring } from '../with-party/team/keyring.js';
58
- import type { PassphrasePolicy } from './validation.js';
58
+ import type { SecretPolicy } from './validation.js';
59
59
  import type { CoverSchema } from '../with-party/directory/cover/types.js';
60
60
  import type { MaterializedViewStrategyHandle } from '../with-formula/materialized-views/types.js';
61
61
  import type { OverlayedViewStrategyHandle } from '../with-formula/overlay-views/types.js';
62
- import type { SealingKeyProvider, RecipientHint } from '../with-party/team/managed-passphrase.js';
62
+ import type { SealingKeyProvider, RecipientHint } from '../with-party/team/managed-secret.js';
63
63
  import type { ShamirRecoveryProvider } from '../with-party/team/shamir-recovery-provider.js';
64
64
  import type { ObjectProjection } from '../with-shape/blobs/object-projection.js';
65
65
  import type { CoordinationProvider } from '../port/by/types.js';
@@ -755,7 +755,7 @@ export type VaultPolicyOnDisk = Record<string, unknown>;
755
755
  * - `paper` — `on-recovery` codes (the standard end-to-end profile).
756
756
  * - `shamir` / `multi-channel` / `admin-mediated` — API surface ships;
757
757
  * per-profile dispatch lands in follow-up issues. Calling
758
- * `db.recoverPassphrase` against these throws
758
+ * `db.recoverSecret` against these throws
759
759
  * {@link RecoveryProfileNotImplementedError}.
760
760
  */
761
761
  export type RecoveryEnrollment = {
@@ -837,7 +837,7 @@ export interface KeyringAuthenticatorWrappingKEK extends KeyringAuthenticatorBas
837
837
  *
838
838
  * Trade-off: a slot of this kind reconstructs `UnlockedKeyring` with
839
839
  * `kek: null` after unlock. That is semantically correct for tier-2
840
- * (sensitive ops like `enrollAuthenticator` / `rotatePassphrase`
840
+ * (sensitive ops like `enrollAuthenticator` / `rotateSecret`
841
841
  * require a tier-1 unlock anyway) and matches how `@noy-db/on-pin`
842
842
  * already behaves at tier 3.
843
843
  *
@@ -877,12 +877,12 @@ export interface KeyringFile {
877
877
  readonly created_at: string;
878
878
  readonly granted_by: string;
879
879
  /**
880
- * Passphrase canary — base64 AES-KW-wrapped form of a known constant
880
+ * Secret canary — base64 AES-KW-wrapped form of a known constant
881
881
  * 256-bit value, wrapped under the keyring's KEK.
882
882
  *
883
883
  * Optional: older keyrings load with no canary and fall back to
884
884
  * the multi-DEK corruption heuristic. Newer keyrings
885
- * carry one and let `loadKeyring` distinguish wrong-passphrase
885
+ * carry one and let `loadKeyring` distinguish wrong-secret
886
886
  * from corruption even when ALL DEKs (including a single-DEK keyring's
887
887
  * sole DEK) are corrupted.
888
888
  *
@@ -1395,7 +1395,7 @@ export interface GrantOptions {
1395
1395
  readonly userId: string;
1396
1396
  readonly displayName: string;
1397
1397
  readonly role: Role;
1398
- readonly passphrase: string;
1398
+ readonly secret: string;
1399
1399
  readonly permissions?: Permissions;
1400
1400
  /**
1401
1401
  * Optional `@noy-db/as-*` export capability. Omit or
@@ -1412,9 +1412,9 @@ export interface GrantOptions {
1412
1412
  /**
1413
1413
  * Skip phrase-format strength validation (issue #7). Defaults to
1414
1414
  * false — `grant()` rejects phrases that don't meet the configured
1415
- * `PassphrasePolicy`. Test fixtures and CLI scripts pass `true`.
1415
+ * `SecretPolicy`. Test fixtures and CLI scripts pass `true`.
1416
1416
  */
1417
- readonly allowWeakPassphrase?: boolean;
1417
+ readonly allowWeakSecret?: boolean;
1418
1418
  /**
1419
1419
  * Initial user-envelope payload for the new principal. Sealed under
1420
1420
  * the same vault DEK (the reserved `_users` collection's DEK) and
@@ -1612,7 +1612,7 @@ export interface SessionPolicy {
1612
1612
  readonly absoluteTimeoutMs?: number;
1613
1613
  /**
1614
1614
  * Operations that require the user to re-authenticate (re-enter their
1615
- * passphrase or perform a fresh WebAuthn assertion) before proceeding,
1615
+ * secret or perform a fresh WebAuthn assertion) before proceeding,
1616
1616
  * even if the session is still alive.
1617
1617
  *
1618
1618
  * Common pattern: `requireReAuthFor: ['export', 'grant']` — allow
@@ -2400,7 +2400,7 @@ export interface NoydbOptions {
2400
2400
  * throw `TeamNotEnabledError` and the keyring grant/revoke/rotate engines
2401
2401
  * are reached only via opt-in — the always-on floor is single-user.
2402
2402
  * Single-user primitives (owner keyring, unlock, `listUsers`,
2403
- * `updateUser`, passphrase rotate/recover) stay ungated, as does the
2403
+ * `updateUser`, secret rotate/recover) stay ungated, as does the
2404
2404
  * `createDeedOwner` free function (no createNoydb instance to gate
2405
2405
  * against).
2406
2406
  */
@@ -2484,12 +2484,12 @@ export interface NoydbOptions {
2484
2484
  readonly sync?: NoydbStore | SyncTarget | SyncTarget[];
2485
2485
  /** User identifier. */
2486
2486
  readonly user: string;
2487
- /** Passphrase for key derivation. Required unless encrypt is false or `getKeyring` is provided. */
2487
+ /** Secret for key derivation. Required unless encrypt is false or `getKeyring` is provided. */
2488
2488
  readonly secret?: string;
2489
2489
  /**
2490
2490
  * Optional callback that returns an unlocked keyring for a given vault.
2491
2491
  * Use this to plug in WebAuthn / OIDC / Shamir / any unlock path that
2492
- * produces an `UnlockedKeyring` outside the passphrase model.
2492
+ * produces an `UnlockedKeyring` outside the secret model.
2493
2493
  *
2494
2494
  * When set, `secret` MUST NOT also be set — `createNoydb` throws if both
2495
2495
  * are supplied. When neither is set (and `encrypt !== false`), `createNoydb`
@@ -2517,32 +2517,32 @@ export interface NoydbOptions {
2517
2517
  * ```
2518
2518
  *
2519
2519
  * Note: this callback is responsible for both the "open existing vault"
2520
- * and the "create new vault" cases. Unlike the passphrase path, there is
2520
+ * and the "create new vault" cases. Unlike the secret path, there is
2521
2521
  * no automatic `NoAccessError` → `createOwnerKeyring` fallback, because
2522
2522
  * the callback owner has the UI context to decide which path to run.
2523
- * For first-time bootstrap, use a passphrase or recovery code, enroll
2523
+ * For first-time bootstrap, use a secret or recovery code, enroll
2524
2524
  * WebAuthn from the unlocked keyring, then swap to `getKeyring` on
2525
2525
  * subsequent sessions.
2526
2526
  */
2527
2527
  readonly getKeyring?: (vault: string) => Promise<UnlockedKeyring>;
2528
2528
  /**
2529
- * Passphrase mode. Default `'standard'`.
2529
+ * Secret mode. Default `'standard'`.
2530
2530
  *
2531
2531
  * - `'standard'` — the legacy flow. `secret` supplies the
2532
- * plaintext passphrase, the user knows it, and the policy gate
2533
- * `rotate-passphrase` is enabled.
2532
+ * plaintext secret, the user knows it, and the policy gate
2533
+ * `rotate-secret` is enabled.
2534
2534
  * - `'managed'` — rubber-hose-resistant mode. Hub generates a
2535
- * 256-bit random passphrase at first open and seals it under
2535
+ * 256-bit random secret at first open and seals it under
2536
2536
  * the provided `sealingKey`. The user never sees or types the
2537
- * passphrase, defeating the $5-wrench attack. Mutually
2537
+ * secret, defeating the $5-wrench attack. Mutually
2538
2538
  * exclusive with `secret` and `getKeyring`.
2539
2539
  *
2540
- * @see https://github.com/vLannaAi/noy-db-docs/blob/main/content/docs/services/session-tiers.md → Managed-passphrase mode
2540
+ * @see https://github.com/vLannaAi/noy-db-docs/blob/main/content/docs/services/session-tiers.md → Managed-secret mode
2541
2541
  */
2542
- readonly passphraseMode?: 'standard' | 'managed';
2542
+ readonly secretMode?: 'standard' | 'managed';
2543
2543
  /**
2544
2544
  * Provider that seals/unseals the auto-generated managed-mode
2545
- * passphrase. Required when `passphraseMode === 'managed'`; ignored
2545
+ * secret. Required when `secretMode === 'managed'`; ignored
2546
2546
  * otherwise. Implementations live in per-platform packages
2547
2547
  * (`@noy-db/seal-macos-keychain`, `@noy-db/seal-wincred`,
2548
2548
  * `@noy-db/seal-libsecret`, `@noy-db/seal-aws-kms`, …).
@@ -2591,17 +2591,17 @@ export interface NoydbOptions {
2591
2591
  */
2592
2592
  readonly sessionPolicy?: SessionPolicy;
2593
2593
  /**
2594
- * Validate passphrase strength against the phrase format
2594
+ * Validate secret strength against the phrase format
2595
2595
  * on first-time keyring creation. When
2596
- * `true`, weak phrases throw {@link WeakPassphraseError} from
2597
- * `createNoydb()` / `db.rotatePassphrase()`. Default: `false` for
2596
+ * `true`, weak phrases throw {@link WeakSecretError} from
2597
+ * `createNoydb()` / `db.team.rotateSecret()`. Default: `false` for
2598
2598
  * back-compat; planned to flip to `true` in a future major release.
2599
2599
  */
2600
- readonly validatePassphrase?: boolean;
2600
+ readonly validateSecret?: boolean;
2601
2601
  /**
2602
2602
  * Vault-level policy gate document. When present, the hub
2603
2603
  * persists the merged policy at `_meta/policy` on first-time vault
2604
- * creation and gates sensitive operations (`db.rotatePassphrase`,
2604
+ * creation and gates sensitive operations (`db.rotateSecret`,
2605
2605
  * `db.export*`, …) against it. Omitted ⇒ the engine uses
2606
2606
  * {@link PERSONAL_POLICY}. Use {@link STRICT_POLICY} for regulated
2607
2607
  * deployments.
@@ -2616,11 +2616,11 @@ export interface NoydbOptions {
2616
2616
  readonly policy?: VaultPolicy;
2617
2617
  /**
2618
2618
  * Mandatory recovery profile enrollment. Vaults with
2619
- * `recover-passphrase` enabled MUST register at least one profile
2619
+ * `recover-secret` enabled MUST register at least one profile
2620
2620
  * before being production-ready, otherwise `createNoydb()` throws
2621
2621
  * {@link RecoveryNotEnrolledError}. Set
2622
- * `policy.gates['recover-passphrase'].enabled = false` to
2623
- * deliberately opt out of recovery (passphrase loss = data loss).
2622
+ * `policy.gates['recover-secret'].enabled = false` to
2623
+ * deliberately opt out of recovery (secret loss = data loss).
2624
2624
  *
2625
2625
  * The `'paper'` profile is supported end-to-end. Other
2626
2626
  * profiles ship the API shape and throw
@@ -2647,7 +2647,7 @@ export interface NoydbOptions {
2647
2647
  * data records but not the keyring row, or a WebAuthn credential was rotated).
2648
2648
  * **All previously encrypted data is unrecoverable after a reset.**
2649
2649
  *
2650
- * Only applies to the passphrase (`secret`) path. When `getKeyring` is used,
2650
+ * Only applies to the secret (`secret`) path. When `getKeyring` is used,
2651
2651
  * the callback is responsible for handling stale-keyring detection itself.
2652
2652
  */
2653
2653
  readonly onInvalidKey?: 'error' | 'reset';
@@ -3037,7 +3037,7 @@ export interface WarningRules {
3037
3037
  }
3038
3038
  /**
3039
3039
  * Policy applied to one named gate. `enabled: false` disables the
3040
- * action entirely (useful in managed-passphrase mode where rotation is
3040
+ * action entirely (useful in managed-secret mode where rotation is
3041
3041
  * impossible by construction).
3042
3042
  */
3043
3043
  export interface GatePolicy {
@@ -3053,11 +3053,11 @@ export interface GatePolicy {
3053
3053
  * and use the same engine; the engine treats unknown names with no
3054
3054
  * configured policy as "no gate" (no-op).
3055
3055
  */
3056
- export type BuiltInGateName = 'rotate-passphrase' | 'recover-passphrase' | 'enroll-authenticator' | 'remove-authenticator'
3056
+ export type BuiltInGateName = 'rotate-secret' | 'recover-secret' | 'enroll-authenticator' | 'remove-authenticator'
3057
3057
  /**
3058
3058
  * Authorize a deliberate paper-recovery-code regeneration —
3059
- * `db.rotateRecovery`. Symmetric to `rotate-passphrase` for
3060
- * the case where the user remembers their passphrase but wants a
3059
+ * `db.rotateRecovery`. Symmetric to `rotate-secret` for
3060
+ * the case where the user remembers their secret but wants a
3061
3061
  * fresh sheet (lost the printout, suspect compromise of the off-site
3062
3062
  * copy). PERSONAL allows tier-1; STRICT requires an off-device
3063
3063
  * factor so a stolen unlocked laptop cannot silently mint a new
@@ -3080,7 +3080,7 @@ export type BuiltInGateName = 'rotate-passphrase' | 'recover-passphrase' | 'enro
3080
3080
  /**
3081
3081
  * Authorize an atomic peer-recovery — `db.recoverUser`.
3082
3082
  * Distinct from `revoke-user` because peer-recovery is intentional
3083
- * re-issuance of someone's keyring under a temp passphrase, NOT
3083
+ * re-issuance of someone's keyring under a temp secret, NOT
3084
3084
  * removal. Allows owner→owner natively (matches the threat model:
3085
3085
  * a co-owner explicitly recovering another co-owner). Ships with a
3086
3086
  * factor-proof default in `STRICT_POLICY` so the issuer must
@@ -3139,12 +3139,12 @@ export type BuiltInGateName = 'rotate-passphrase' | 'recover-passphrase' | 'enro
3139
3139
  export type GateName = BuiltInGateName | `app:${string}`;
3140
3140
  /**
3141
3141
  * Top-level policy object. Persisted at `_meta/policy` once at vault
3142
- * creation. The `passphrase` block configures the strength rules
3143
- * applied at every passphrase ingress; `gates` configures
3142
+ * creation. The `secret` block configures the strength rules
3143
+ * applied at every secret ingress; `gates` configures
3144
3144
  * the action-level requirements.
3145
3145
  */
3146
3146
  export interface VaultPolicy {
3147
- readonly passphrase?: PassphrasePolicy;
3147
+ readonly secret?: SecretPolicy;
3148
3148
  readonly gates: Partial<Record<GateName, GatePolicy>>;
3149
3149
  }
3150
3150
  /** Concrete proof an actor presents to {@link checkGate}. */
@@ -3160,7 +3160,7 @@ export interface FactorProof {
3160
3160
  * Noydb method. Used as the optional last parameter of every method
3161
3161
  * that runs through `checkGate`: `db.grant`, `db.revoke`, `db.updateUser`,
3162
3162
  * `db.enrollAuthenticator`, `db.removeAuthenticator`, `db.updateAuthenticator`,
3163
- * `db.enrollWebAuthn`, `db.rotatePassphrase`, `db.recoverPassphrase`,
3163
+ * `db.enrollWebAuthn`, `db.rotateSecret`, `db.recoverSecret`,
3164
3164
  * `db.recoverUser`, `db.enrollUnlock`, `db.describeUserAuth`,
3165
3165
  * `db.describeAllUsersAuth`.
3166
3166
  *
@@ -3286,4 +3286,45 @@ export interface NoydbPolicyDeps {
3286
3286
  * synchronously — mirrors {@link UserApiFactory}.
3287
3287
  */
3288
3288
  export type NoydbPolicyFactory = (deps: NoydbPolicyDeps) => NoydbPolicyApi;
3289
+ /**
3290
+ * Named field-set declarations for a collection's type-level shape (#839).
3291
+ *
3292
+ * Replaces the positional `Collection<T, S, Q, M>` tail at every surface a
3293
+ * consumer touches. The positional form was unreadable and unsafe: `Q` and `M`
3294
+ * are both `keyof T & string`, so swapping them type-checked silently, and
3295
+ * reaching `M` meant writing placeholders —
3296
+ * `collection<Sale, never, never, 'amount' | 'tax'>`.
3297
+ *
3298
+ * ```ts
3299
+ * vault.collection<Sale, { money: 'amount' | 'tax' }>('sales')
3300
+ * vault.collection<Invoice, { sensitive: 'ssn'; indexed: 'clientId' }>('invoices')
3301
+ * ```
3302
+ *
3303
+ * Every member is optional; omitting one keeps that axis permissive, which is
3304
+ * what the `[X] extends [never]` guards in {@link QueryField} /
3305
+ * {@link IndexFieldName} encode. Those guards are NOT removable — they are the
3306
+ * difference between "no indexes declared, so `where()` accepts any field" and
3307
+ * "indexes declared, so `where()` is restricted to them" — so they are
3308
+ * re-expressed against this shape rather than dropped.
3309
+ */
3310
+ export interface CollectionShape<T> {
3311
+ /** Fields sealed at rest; reads return {@link Sealed} handles. */
3312
+ readonly sensitive?: keyof T & string;
3313
+ /** Fields carrying a declared secondary index; narrows `where()` / `orderBy()`. */
3314
+ readonly indexed?: keyof T & string;
3315
+ /** Fields carrying a money descriptor. */
3316
+ readonly money?: keyof T & string;
3317
+ }
3318
+ /** The `sensitive` field set of a {@link CollectionShape}, or `never` if unset. */
3319
+ export type SensitiveOf<T, O> = O extends {
3320
+ sensitive: infer S;
3321
+ } ? (S & keyof T & string) : never;
3322
+ /** The `indexed` field set of a {@link CollectionShape}, or `never` if unset. */
3323
+ export type IndexedOf<T, O> = O extends {
3324
+ indexed: infer Q;
3325
+ } ? (Q & keyof T & string) : never;
3326
+ /** The `money` field set of a {@link CollectionShape}, or `never` if unset. */
3327
+ export type MoneyOf<T, O> = O extends {
3328
+ money: infer M;
3329
+ } ? (M & keyof T & string) : never;
3289
3330
  export {};