@noy-db/hub 0.3.0-pre.9 → 0.3.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 (958) hide show
  1. package/dist/aggregate/index.js +5 -5
  2. package/dist/api-ZGS6LCOF.js +20 -0
  3. package/dist/as/index.js +11 -11
  4. package/dist/attestation/index.js +18 -18
  5. package/dist/backup-BJ57IKAO.js +242 -0
  6. package/dist/backup-BJ57IKAO.js.map +1 -0
  7. package/dist/blobs/index.js +13 -11
  8. package/dist/blobs/index.js.map +1 -1
  9. package/dist/broker/index.js +92 -0
  10. package/dist/broker/index.js.map +1 -0
  11. package/dist/bundle/index.js +25 -22
  12. package/dist/bundle/index.js.map +1 -1
  13. package/dist/by/index.js +2 -2
  14. package/dist/cargo/index.js +31 -32
  15. package/dist/chunk-2NVOWNI3.js +167 -0
  16. package/dist/chunk-2NVOWNI3.js.map +1 -0
  17. package/dist/chunk-3B5VVCNY.js +71 -0
  18. package/dist/chunk-3LQ2YKO4.js +230 -0
  19. package/dist/chunk-3QCRBHCY.js +54 -0
  20. package/dist/chunk-454JXE57.js +1697 -0
  21. package/dist/chunk-454JXE57.js.map +1 -0
  22. package/dist/chunk-4CTHCN4J.js +480 -0
  23. package/dist/chunk-4CTHCN4J.js.map +1 -0
  24. package/dist/chunk-4GPE63GU.js +111 -0
  25. package/dist/chunk-4GPE63GU.js.map +1 -0
  26. package/dist/chunk-4JBYV75E.js +150 -0
  27. package/dist/chunk-4NXKCLLQ.js +97 -0
  28. package/dist/chunk-4VNQOLML.js +29 -0
  29. package/dist/chunk-4VNQOLML.js.map +1 -0
  30. package/dist/chunk-5M5DVGV7.js +69 -0
  31. package/dist/chunk-5O3XF4DV.js +150 -0
  32. package/dist/chunk-5O3XF4DV.js.map +1 -0
  33. package/dist/chunk-5YOLBEQ6.js +30 -0
  34. package/dist/chunk-6CRIV7DE.js +129 -0
  35. package/dist/chunk-6JTIAGHD.js +621 -0
  36. package/dist/chunk-6JTIAGHD.js.map +1 -0
  37. package/dist/chunk-6QTNZJBS.js +255 -0
  38. package/dist/chunk-6T2SCQRU.js +86 -0
  39. package/dist/chunk-7DSTRQIJ.js +45 -0
  40. package/dist/chunk-AUSTCW2X.js +589 -0
  41. package/dist/chunk-B3HJYUOF.js +209 -0
  42. package/dist/chunk-BDVFPG6Y.js +164 -0
  43. package/dist/chunk-BIOUI4HL.js +1554 -0
  44. package/dist/chunk-BIOUI4HL.js.map +1 -0
  45. package/dist/chunk-CAF6WOK7.js +36 -0
  46. package/dist/chunk-CDUQTA3Z.js +381 -0
  47. package/dist/chunk-CDUQTA3Z.js.map +1 -0
  48. package/dist/chunk-CIE2BASH.js +404 -0
  49. package/dist/chunk-CRI4OUV4.js +42 -0
  50. package/dist/chunk-DLG74CNB.js +91 -0
  51. package/dist/chunk-E5ZQT5KX.js +30 -0
  52. package/dist/chunk-E5ZQT5KX.js.map +1 -0
  53. package/dist/chunk-EQO2UVP4.js +247 -0
  54. package/dist/chunk-EQO2UVP4.js.map +1 -0
  55. package/dist/chunk-ERJ7FU55.js +367 -0
  56. package/dist/chunk-EVVGJDRQ.js +205 -0
  57. package/dist/chunk-EVX47VBM.js +74 -0
  58. package/dist/chunk-EVX47VBM.js.map +1 -0
  59. package/dist/chunk-EXK7QRWF.js +59 -0
  60. package/dist/chunk-EYZ6IQ6X.js +202 -0
  61. package/dist/chunk-F64IRYG3.js +45 -0
  62. package/dist/chunk-FHS2HQSH.js +823 -0
  63. package/dist/chunk-FM3G3NOY.js +206 -0
  64. package/dist/chunk-FM3G3NOY.js.map +1 -0
  65. package/dist/chunk-FUG4SFN3.js +36 -0
  66. package/dist/chunk-FUG4SFN3.js.map +1 -0
  67. package/dist/chunk-GKEWXIV5.js +80 -0
  68. package/dist/chunk-GTGPO5KW.js +59 -0
  69. package/dist/chunk-HB3RFQSC.js +95 -0
  70. package/dist/chunk-HDMEGAQE.js +957 -0
  71. package/dist/chunk-HDMEGAQE.js.map +1 -0
  72. package/dist/chunk-HDQIIUPH.js +135 -0
  73. package/dist/chunk-HDQIIUPH.js.map +1 -0
  74. package/dist/chunk-HTJQYHZP.js +344 -0
  75. package/dist/chunk-HTJQYHZP.js.map +1 -0
  76. package/dist/chunk-I6GALP6E.js +99 -0
  77. package/dist/chunk-IGJCYUT5.js +99 -0
  78. package/dist/chunk-IGJCYUT5.js.map +1 -0
  79. package/dist/chunk-IL6POWCW.js +130 -0
  80. package/dist/chunk-IU6SNYX6.js +117 -0
  81. package/dist/chunk-J2ZX2XUV.js +778 -0
  82. package/dist/chunk-JIF24JPM.js +495 -0
  83. package/dist/chunk-JIF24JPM.js.map +1 -0
  84. package/dist/chunk-JK733I5V.js +23 -0
  85. package/dist/chunk-JK733I5V.js.map +1 -0
  86. package/dist/chunk-JKJOGPZN.js +29 -0
  87. package/dist/chunk-JNAI2HN2.js +32 -0
  88. package/dist/chunk-JNAI2HN2.js.map +1 -0
  89. package/dist/chunk-JZUV47FZ.js +41 -0
  90. package/dist/chunk-K5IMOGHB.js +30 -0
  91. package/dist/chunk-KPZS5QAQ.js +151 -0
  92. package/dist/chunk-KPZS5QAQ.js.map +1 -0
  93. package/dist/chunk-KSKBRKGJ.js +291 -0
  94. package/dist/chunk-KSKBRKGJ.js.map +1 -0
  95. package/dist/chunk-LASZKVMO.js +382 -0
  96. package/dist/chunk-LXEXBTKL.js +515 -0
  97. package/dist/chunk-LXEXBTKL.js.map +1 -0
  98. package/dist/chunk-M4CV6BRT.js +524 -0
  99. package/dist/chunk-M4CV6BRT.js.map +1 -0
  100. package/dist/chunk-MEFJPTZ4.js +371 -0
  101. package/dist/chunk-MEFJPTZ4.js.map +1 -0
  102. package/dist/chunk-MV43JSJF.js +265 -0
  103. package/dist/chunk-MV43JSJF.js.map +1 -0
  104. package/dist/chunk-NJ4EOKMB.js +392 -0
  105. package/dist/chunk-NJ4EOKMB.js.map +1 -0
  106. package/dist/chunk-NR5LT5RY.js +135 -0
  107. package/dist/chunk-NWSGI5C7.js +261 -0
  108. package/dist/chunk-OSDB5WW3.js +739 -0
  109. package/dist/chunk-OSDB5WW3.js.map +1 -0
  110. package/dist/chunk-PN2XMATY.js +37 -0
  111. package/dist/chunk-PN2XMATY.js.map +1 -0
  112. package/dist/chunk-Q5VNKNE5.js +70 -0
  113. package/dist/chunk-QLWMEXCT.js +21 -0
  114. package/dist/chunk-QRB7NAOJ.js +123 -0
  115. package/dist/chunk-R4ROFEYC.js +74 -0
  116. package/dist/chunk-RCVJZMFE.js +164 -0
  117. package/dist/chunk-RCVJZMFE.js.map +1 -0
  118. package/dist/chunk-RIX4V2TB.js +367 -0
  119. package/dist/chunk-RYCTDFUX.js +40 -0
  120. package/dist/chunk-RZ5SVOYR.js +155 -0
  121. package/dist/chunk-SLFHQTTW.js +99 -0
  122. package/dist/chunk-SNZ6URZZ.js +2782 -0
  123. package/dist/chunk-SNZ6URZZ.js.map +1 -0
  124. package/dist/chunk-T2FFWNPK.js +75 -0
  125. package/dist/chunk-UNFPPVNI.js +23 -0
  126. package/dist/chunk-VFUPHI2Z.js +333 -0
  127. package/dist/chunk-VFUPHI2Z.js.map +1 -0
  128. package/dist/chunk-VLFCJYTL.js +235 -0
  129. package/dist/chunk-VN3DBQAU.js +124 -0
  130. package/dist/chunk-VYYM3MEN.js +98 -0
  131. package/dist/chunk-VYYM3MEN.js.map +1 -0
  132. package/dist/chunk-VZRODIM3.js +49 -0
  133. package/dist/chunk-W22IKJE2.js +94 -0
  134. package/dist/chunk-X3YYQWOQ.js +155 -0
  135. package/dist/chunk-X7QBD67R.js +14405 -0
  136. package/dist/chunk-X7QBD67R.js.map +1 -0
  137. package/dist/chunk-XDYREZWE.js +1128 -0
  138. package/dist/chunk-XDYREZWE.js.map +1 -0
  139. package/dist/chunk-XWZVFISC.js +720 -0
  140. package/dist/chunk-XWZVFISC.js.map +1 -0
  141. package/dist/chunk-YFXZEAYK.js +85 -0
  142. package/dist/chunk-ZAJAVEXY.js +50 -0
  143. package/dist/chunk-ZICD77GM.js +34 -0
  144. package/dist/chunk-ZJ2AK4V7.js +38 -0
  145. package/dist/chunk-ZUODRVHY.js +14 -0
  146. package/dist/classified/index.js +5 -5
  147. package/dist/classified-marker-CZKA6ITE.js +28 -0
  148. package/dist/classified-marker-CZKA6ITE.js.map +1 -0
  149. package/dist/collection-facade-TLWIPI76.js +44 -0
  150. package/dist/computed-ZIQTYTDI.js +11 -0
  151. package/dist/consent/index.js +9 -9
  152. package/dist/crdt/index.js +1 -1
  153. package/dist/dead-filter-ESOBZZP5.js +28 -0
  154. package/dist/delegation-W7ZV2322.js +25 -0
  155. package/dist/derivations/index.js +12 -12
  156. package/dist/derive-H2BJTLUI.js +21 -0
  157. package/dist/enclave-AP3I5W7O.js +141 -0
  158. package/dist/executor-KGWTNEQD.js +9 -0
  159. package/dist/executor-OVEXR6RT.js +9 -0
  160. package/dist/executor-UNEH5ZYH.js +25 -0
  161. package/dist/export-accessible-PCMXSUZS.js +23 -0
  162. package/dist/extract-partition-SWHFSYJO.js +38 -0
  163. package/dist/fanout-sidecar-A765THMX.js +74 -0
  164. package/dist/find-N6345CNT.js +11 -0
  165. package/dist/forget/index.js +10 -10
  166. package/dist/forget/index.js.map +1 -1
  167. package/dist/guards/index.js +6 -6
  168. package/dist/history/index.js +14 -11
  169. package/dist/history/index.js.map +1 -1
  170. package/dist/i18n/index.js +21 -19
  171. package/dist/i18n/index.js.map +1 -1
  172. package/dist/index.d.ts +307 -1493
  173. package/dist/index.js +309 -190
  174. package/dist/index.js.map +1 -1
  175. package/dist/indexing/index.js +7 -7
  176. package/dist/indexing/index.js.map +1 -1
  177. package/dist/issue-5OKB6I2R.js +19 -0
  178. package/dist/kernel/best-effort-revert.d.ts +52 -0
  179. package/dist/kernel/cache/index.d.ts +10 -0
  180. package/dist/kernel/cache/lru.d.ts +97 -0
  181. package/dist/kernel/cache/policy.d.ts +32 -0
  182. package/dist/kernel/collection-config.d.ts +809 -0
  183. package/dist/kernel/collection.d.ts +1522 -0
  184. package/dist/kernel/constants.d.ts +18 -0
  185. package/dist/kernel/debug.d.ts +25 -0
  186. package/dist/kernel/enclave/broker/proof.d.ts +154 -0
  187. package/dist/kernel/enclave/classify/bidx.d.ts +77 -0
  188. package/dist/kernel/enclave/classify/compare.d.ts +10 -0
  189. package/dist/kernel/enclave/classify/digest.d.ts +8 -0
  190. package/dist/kernel/enclave/classify/find.d.ts +36 -0
  191. package/dist/kernel/enclave/classify/kofn.d.ts +7 -0
  192. package/dist/kernel/enclave/classify/normalize.d.ts +7 -0
  193. package/dist/kernel/enclave/classify/reveal.d.ts +10 -0
  194. package/dist/kernel/enclave/classify/vdig.d.ts +39 -0
  195. package/dist/kernel/enclave/classify/verify.d.ts +36 -0
  196. package/dist/kernel/enclave/classify/write.d.ts +8 -0
  197. package/dist/kernel/enclave/crypto.d.ts +263 -0
  198. package/dist/kernel/enclave/index.d.ts +79 -0
  199. package/dist/kernel/enclave/record-keys/deterministic.d.ts +55 -0
  200. package/dist/kernel/enclave/record-keys/envelope-body.d.ts +79 -0
  201. package/dist/kernel/enclave/record-keys/lifecycle.d.ts +107 -0
  202. package/dist/kernel/enclave/record-keys/record-codec.d.ts +328 -0
  203. package/dist/kernel/enclave/record-keys/sealed-slot.d.ts +14 -0
  204. package/dist/kernel/enclave/record-keys/sealed-slots.d.ts +123 -0
  205. package/dist/kernel/enclave/record-keys/sealing.d.ts +70 -0
  206. package/dist/kernel/enclave/record-keys/tombstone.d.ts +57 -0
  207. package/dist/kernel/env-check.d.ts +1 -0
  208. package/dist/kernel/errors.d.ts +1922 -0
  209. package/dist/kernel/events.d.ts +11 -0
  210. package/dist/kernel/lazy-count.d.ts +13 -0
  211. package/dist/kernel/memory-store.d.ts +17 -0
  212. package/dist/kernel/mutation.d.ts +14 -0
  213. package/dist/kernel/noydb.d.ts +826 -0
  214. package/dist/kernel/paths.d.ts +25 -0
  215. package/dist/kernel/query/builder.d.ts +520 -0
  216. package/dist/kernel/query/index.d.ts +31 -0
  217. package/dist/kernel/query/join.d.ts +205 -0
  218. package/dist/kernel/query/live.d.ts +111 -0
  219. package/dist/kernel/query/predicate.d.ts +139 -0
  220. package/dist/kernel/query/scan-builder.d.ts +334 -0
  221. package/dist/kernel/refs.d.ts +205 -0
  222. package/dist/kernel/schema.d.ts +134 -0
  223. package/dist/kernel/sync-policy.d.ts +188 -0
  224. package/dist/kernel/tier-visibility.d.ts +54 -0
  225. package/dist/kernel/types.d.ts +3239 -0
  226. package/dist/kernel/util/discriminant.d.ts +58 -0
  227. package/dist/kernel/util/index.d.ts +14 -0
  228. package/dist/kernel/util/sanitize-filename.d.ts +75 -0
  229. package/dist/kernel/validation.d.ts +130 -0
  230. package/dist/kernel/vault.d.ts +1740 -0
  231. package/dist/kernel/via/compose.d.ts +144 -0
  232. package/dist/kernel/via/dispatch.d.ts +195 -0
  233. package/dist/kernel/via/graph-wiring.d.ts +145 -0
  234. package/dist/kernel/via/graph.d.ts +166 -0
  235. package/dist/kernel/via/index.d.ts +200 -0
  236. package/dist/kernel/via/pipeline.d.ts +266 -0
  237. package/dist/kernel/via/reconcile.d.ts +153 -0
  238. package/dist/kernel/via/taint-binding.d.ts +66 -0
  239. package/dist/kernel/write-queue.d.ts +46 -0
  240. package/dist/ledger-GFBKVPV4.js +42 -0
  241. package/dist/legacy/bundle.d.ts +30 -0
  242. package/dist/legacy/kernel.d.ts +33 -0
  243. package/dist/liberate-3VDOT4KO.js +24 -0
  244. package/dist/link-set-Z7Q2ASFX.js +31 -0
  245. package/dist/materialized-views/index.js +19 -17
  246. package/dist/noydb-ZCJOYBDI.js +68 -0
  247. package/dist/on/index.js +9 -9
  248. package/dist/overlay-views/index.js +4 -4
  249. package/dist/periods/index.js +12 -12
  250. package/dist/pod/index.js +11 -11
  251. package/dist/policy-Z3RUAIY2.js +41 -0
  252. package/dist/port/as/index.d.ts +26 -0
  253. package/dist/port/at/index.d.ts +18 -0
  254. package/dist/port/by/default-provider.d.ts +9 -0
  255. package/dist/port/by/index.d.ts +17 -0
  256. package/dist/port/by/types.d.ts +86 -0
  257. package/dist/port/in/index.d.ts +21 -0
  258. package/dist/port/on/index.d.ts +27 -0
  259. package/dist/port/to/index.d.ts +19 -0
  260. package/dist/port/ui/index.d.ts +21 -0
  261. package/dist/port/with/blob-strategy.d.ts +98 -0
  262. package/dist/port/with/broker-strategy.d.ts +84 -0
  263. package/dist/port/with/capabilities.d.ts +31 -0
  264. package/dist/port/with/classified-marker.d.ts +9 -0
  265. package/dist/port/with/classified-strategy.d.ts +62 -0
  266. package/dist/port/with/computed-strategy.d.ts +19 -0
  267. package/dist/port/with/i18n-strategy.d.ts +175 -0
  268. package/dist/port/with/index.d.ts +18 -0
  269. package/dist/port/with/lazy-strategy.d.ts +48 -0
  270. package/dist/port/with/lookup-strategy.d.ts +129 -0
  271. package/dist/port/with/service-bus.d.ts +156 -0
  272. package/dist/port/with/team-strategy.d.ts +36 -0
  273. package/dist/port/with/write-hooks.d.ts +34 -0
  274. package/dist/portability/index.js +8 -8
  275. package/dist/post-register-JTH76BLY.js +60 -0
  276. package/dist/post-register-JTH76BLY.js.map +1 -0
  277. package/dist/public-envelope-B4KNWVUA.js +32 -0
  278. package/dist/purge-scope-FGNNLWHD.js +24 -0
  279. package/dist/purge-scope-FGNNLWHD.js.map +1 -0
  280. package/dist/query/index.js +7 -7
  281. package/dist/read-only-facade-CHCKSEPD.js +8 -0
  282. package/dist/register-VAHONCID.js +23 -0
  283. package/dist/registry-7MLVD3VO.js +19 -0
  284. package/dist/registry-EPKPD5SM.js +18 -0
  285. package/dist/registry-P5T7PS2U.js +9 -0
  286. package/dist/request-withdrawal-TI3A5WPS.js +31 -0
  287. package/dist/reveal-DIBHLUZX.js +38 -0
  288. package/dist/reveal-DIBHLUZX.js.map +1 -0
  289. package/dist/revoke-FDRD6GRW.js +24 -0
  290. package/dist/satellites/index.js +1 -1
  291. package/dist/sealed-record/index.js +12 -12
  292. package/dist/seed-Q6M2IZFL.js +231 -0
  293. package/dist/seed-Q6M2IZFL.js.map +1 -0
  294. package/dist/session/index.js +9 -9
  295. package/dist/shadow/index.js +2 -2
  296. package/dist/signer-MUWEIUI6.js +25 -0
  297. package/dist/snapshots/index.js +10 -10
  298. package/dist/stale-OSQ7J3AA.js +29 -0
  299. package/dist/storage-MVFCGEQE.js +23 -0
  300. package/dist/store-coordination-provider-64OEZFGS.js +142 -0
  301. package/dist/sync/index.js +9 -9
  302. package/dist/team/index.js +15 -15
  303. package/dist/tiers/index.js +14 -10
  304. package/dist/to/index.js +1 -2
  305. package/dist/tx/index.js +3 -3
  306. package/dist/util/index.js +1 -1
  307. package/dist/verify-ZASTRNPR.js +140 -0
  308. package/dist/verify-ZASTRNPR.js.map +1 -0
  309. package/dist/via/blob/active.d.ts +34 -0
  310. package/dist/via/blob/binding.d.ts +86 -0
  311. package/dist/via/blob/index.d.ts +34 -0
  312. package/dist/via/classified/active.d.ts +3 -0
  313. package/dist/via/classified/binding.d.ts +83 -0
  314. package/dist/via/classified/config-drift.d.ts +34 -0
  315. package/dist/via/classified/descriptor.d.ts +66 -0
  316. package/dist/via/classified/errors.d.ts +19 -0
  317. package/dist/via/classified/guards.d.ts +23 -0
  318. package/dist/via/classified/index.d.ts +11 -0
  319. package/dist/via/classified/presets.d.ts +65 -0
  320. package/dist/via/classified/resolve.d.ts +9 -0
  321. package/dist/via/classified/strategy.d.ts +11 -0
  322. package/dist/via/classified/validators.d.ts +3 -0
  323. package/dist/via/classified/write.d.ts +4 -0
  324. package/dist/via/computed/binding.d.ts +34 -0
  325. package/dist/via/computed/descriptor.d.ts +35 -0
  326. package/dist/via/i18n/active.d.ts +28 -0
  327. package/dist/via/i18n/binding.d.ts +36 -0
  328. package/dist/via/i18n/core.d.ts +267 -0
  329. package/dist/via/i18n/densify.d.ts +24 -0
  330. package/dist/via/i18n/dictionary.d.ts +200 -0
  331. package/dist/via/i18n/index.d.ts +21 -0
  332. package/dist/via/i18n/policy.d.ts +44 -0
  333. package/dist/via/i18n/script.d.ts +26 -0
  334. package/dist/via/i18n/strategy.d.ts +13 -0
  335. package/dist/via/lookup/active.d.ts +19 -0
  336. package/dist/via/lookup/binding.d.ts +99 -0
  337. package/dist/via/lookup/descriptor.d.ts +123 -0
  338. package/dist/via/lookup/handle.d.ts +220 -0
  339. package/dist/via/lookup/index.d.ts +17 -0
  340. package/dist/via/lookup/registry.d.ts +228 -0
  341. package/dist/via/lookup/snapshot.d.ts +67 -0
  342. package/dist/via/money/arith.d.ts +68 -0
  343. package/dist/via/money/binding.d.ts +21 -0
  344. package/dist/via/money/branded.d.ts +61 -0
  345. package/dist/via/money/descriptor.d.ts +73 -0
  346. package/dist/via/money/fixed-point.d.ts +51 -0
  347. package/dist/via/money/index.d.ts +15 -0
  348. package/dist/via/money/iso4217.d.ts +6 -0
  349. package/dist/via/money/money-reducer.d.ts +33 -0
  350. package/dist/via/money/normalize.d.ts +105 -0
  351. package/dist/via/money/paths.d.ts +61 -0
  352. package/dist/via/money/where.d.ts +127 -0
  353. package/dist/walk-SVNDIZ62.js +241 -0
  354. package/dist/with/index.js +11 -11
  355. package/dist/with-audit/attestation/active.d.ts +10 -0
  356. package/dist/with-audit/attestation/index.d.ts +16 -0
  357. package/dist/with-audit/attestation/issue.d.ts +29 -0
  358. package/dist/with-audit/attestation/revoke.d.ts +15 -0
  359. package/dist/with-audit/attestation/signer.d.ts +33 -0
  360. package/dist/with-audit/attestation/strategy.d.ts +44 -0
  361. package/dist/with-audit/attestation/vault-facade.d.ts +62 -0
  362. package/dist/with-audit/consent/active.d.ts +14 -0
  363. package/dist/with-audit/consent/consent.d.ts +114 -0
  364. package/dist/with-audit/consent/index.d.ts +14 -0
  365. package/dist/with-audit/consent/strategy.d.ts +36 -0
  366. package/dist/with-audit/forget/active.d.ts +31 -0
  367. package/dist/with-audit/forget/index.d.ts +28 -0
  368. package/dist/with-audit/forget/purge-scope.d.ts +54 -0
  369. package/dist/with-audit/forget/strategy.d.ts +199 -0
  370. package/dist/with-audit/forget/subject-index.d.ts +83 -0
  371. package/dist/with-audit/guards/executor.d.ts +26 -0
  372. package/dist/with-audit/guards/immutable-guard.d.ts +63 -0
  373. package/dist/with-audit/guards/index.d.ts +10 -0
  374. package/dist/with-audit/guards/read-only-facade.d.ts +31 -0
  375. package/dist/with-audit/guards/registry.d.ts +83 -0
  376. package/dist/with-audit/guards/transition-guard.d.ts +82 -0
  377. package/dist/with-audit/guards/types.d.ts +134 -0
  378. package/dist/with-audit/guards/with-guard.d.ts +15 -0
  379. package/dist/with-audit/periods/active.d.ts +11 -0
  380. package/dist/with-audit/periods/index.d.ts +18 -0
  381. package/dist/with-audit/periods/periods.d.ts +417 -0
  382. package/dist/with-audit/periods/strategy.d.ts +32 -0
  383. package/dist/with-audit/periods/vault-facade.d.ts +95 -0
  384. package/dist/with-audit/portability/active.d.ts +11 -0
  385. package/dist/with-audit/portability/export-accessible.d.ts +46 -0
  386. package/dist/with-audit/portability/index.d.ts +18 -0
  387. package/dist/with-audit/portability/request-withdrawal.d.ts +85 -0
  388. package/dist/with-audit/portability/strategy.d.ts +31 -0
  389. package/dist/with-audit/portability/withdraw-accessible.d.ts +82 -0
  390. package/dist/with-audit/sealed-record/active.d.ts +9 -0
  391. package/dist/with-audit/sealed-record/index.d.ts +55 -0
  392. package/dist/with-audit/sealed-record/strategy.d.ts +34 -0
  393. package/dist/with-audit/sealed-record/types.d.ts +27 -0
  394. package/dist/with-audit/tiers/active.d.ts +9 -0
  395. package/dist/with-audit/tiers/index.d.ts +394 -0
  396. package/dist/with-audit/tiers/strategy.d.ts +36 -0
  397. package/dist/with-cargo/active.d.ts +11 -0
  398. package/dist/with-cargo/adopt-partition.d.ts +81 -0
  399. package/dist/with-cargo/decrypt-partition.d.ts +19 -0
  400. package/dist/with-cargo/describe-extraction.d.ts +41 -0
  401. package/dist/with-cargo/extract-partition.d.ts +155 -0
  402. package/dist/with-cargo/index.d.ts +33 -0
  403. package/dist/with-cargo/strategy.d.ts +30 -0
  404. package/dist/with-cargo/vault-diff.d.ts +144 -0
  405. package/dist/with-cargo/walk-closure.d.ts +67 -0
  406. package/dist/with-commit/crdt/active.d.ts +25 -0
  407. package/dist/with-commit/crdt/crdt.d.ts +42 -0
  408. package/dist/with-commit/crdt/index.d.ts +16 -0
  409. package/dist/with-commit/crdt/strategy.d.ts +25 -0
  410. package/dist/with-commit/history/active.d.ts +40 -0
  411. package/dist/with-commit/history/diff.d.ts +23 -0
  412. package/dist/with-commit/history/history.d.ts +73 -0
  413. package/dist/with-commit/history/index.d.ts +30 -0
  414. package/dist/with-commit/history/ledger/constants.d.ts +37 -0
  415. package/dist/with-commit/history/ledger/entry.d.ts +195 -0
  416. package/dist/with-commit/history/ledger/hash.d.ts +30 -0
  417. package/dist/with-commit/history/ledger/index.d.ts +19 -0
  418. package/dist/with-commit/history/ledger/patch.d.ts +99 -0
  419. package/dist/with-commit/history/ledger/store.d.ts +356 -0
  420. package/dist/with-commit/history/strategy.d.ts +136 -0
  421. package/dist/with-commit/history/time-machine.d.ts +202 -0
  422. package/dist/with-commit/numbering/descriptor.d.ts +27 -0
  423. package/dist/with-commit/numbering/index.d.ts +69 -0
  424. package/dist/with-commit/sequence/active.d.ts +10 -0
  425. package/dist/with-commit/sequence/index.d.ts +150 -0
  426. package/dist/with-commit/sequence/strategy.d.ts +26 -0
  427. package/dist/with-commit/tx/active.d.ts +27 -0
  428. package/dist/with-commit/tx/dry-run.d.ts +29 -0
  429. package/dist/with-commit/tx/elevated-handle.d.ts +59 -0
  430. package/dist/with-commit/tx/index.d.ts +13 -0
  431. package/dist/with-commit/tx/invariants.d.ts +68 -0
  432. package/dist/with-commit/tx/strategy.d.ts +23 -0
  433. package/dist/with-commit/tx/transaction.d.ts +212 -0
  434. package/dist/with-fork/archive/engine.d.ts +71 -0
  435. package/dist/with-fork/archive/index.d.ts +23 -0
  436. package/dist/with-fork/shadow/active.d.ts +6 -0
  437. package/dist/with-fork/shadow/index.d.ts +14 -0
  438. package/dist/with-fork/shadow/strategy.d.ts +28 -0
  439. package/dist/with-fork/shadow/vault-frame.d.ts +93 -0
  440. package/dist/with-fork/snapshots/active.d.ts +20 -0
  441. package/dist/with-fork/snapshots/engine.d.ts +36 -0
  442. package/dist/with-fork/snapshots/index.d.ts +5 -0
  443. package/dist/with-fork/snapshots/noydb-facade.d.ts +64 -0
  444. package/dist/with-fork/snapshots/policy.d.ts +23 -0
  445. package/dist/with-fork/snapshots/scheduler.d.ts +34 -0
  446. package/dist/with-fork/snapshots/strategy.d.ts +48 -0
  447. package/dist/with-formula/computed/index.d.ts +48 -0
  448. package/dist/with-formula/computed/lazy.d.ts +13 -0
  449. package/dist/with-formula/derivations/executor.d.ts +61 -0
  450. package/dist/with-formula/derivations/fanout-sidecar.d.ts +75 -0
  451. package/dist/with-formula/derivations/index.d.ts +6 -0
  452. package/dist/with-formula/derivations/registry.d.ts +67 -0
  453. package/dist/with-formula/derivations/stale.d.ts +39 -0
  454. package/dist/with-formula/derivations/strategy-hash.d.ts +1 -0
  455. package/dist/with-formula/derivations/types.d.ts +248 -0
  456. package/dist/with-formula/derivations/with-derivation.d.ts +10 -0
  457. package/dist/with-formula/derivations/with-rollup.d.ts +34 -0
  458. package/dist/with-formula/materialized-views/dependency-analyzer.d.ts +58 -0
  459. package/dist/with-formula/materialized-views/executor.d.ts +80 -0
  460. package/dist/with-formula/materialized-views/index.d.ts +11 -0
  461. package/dist/with-formula/materialized-views/query-hash.d.ts +23 -0
  462. package/dist/with-formula/materialized-views/registry.d.ts +99 -0
  463. package/dist/with-formula/materialized-views/stale.d.ts +113 -0
  464. package/dist/with-formula/materialized-views/types.d.ts +318 -0
  465. package/dist/with-formula/materialized-views/with-materialized-view.d.ts +24 -0
  466. package/dist/with-formula/overlay-views/index.d.ts +5 -0
  467. package/dist/with-formula/overlay-views/registry.d.ts +42 -0
  468. package/dist/with-formula/overlay-views/types.d.ts +97 -0
  469. package/dist/with-formula/overlay-views/virtual-collection.d.ts +90 -0
  470. package/dist/with-formula/overlay-views/with-overlayed-view.d.ts +9 -0
  471. package/dist/with-lookup/aggregate/active.d.ts +33 -0
  472. package/dist/with-lookup/aggregate/aggregation.d.ts +166 -0
  473. package/dist/with-lookup/aggregate/canonical-key.d.ts +16 -0
  474. package/dist/with-lookup/aggregate/groupby.d.ts +280 -0
  475. package/dist/with-lookup/aggregate/index.d.ts +23 -0
  476. package/dist/with-lookup/aggregate/reducers.d.ts +257 -0
  477. package/dist/with-lookup/aggregate/strategy.d.ts +59 -0
  478. package/dist/with-lookup/embeddings/cosine.d.ts +2 -0
  479. package/dist/with-lookup/embeddings/descriptor.d.ts +8 -0
  480. package/dist/with-lookup/embeddings/index.d.ts +4 -0
  481. package/dist/with-lookup/embeddings/vec-id.d.ts +47 -0
  482. package/dist/with-lookup/embeddings/vector-set.d.ts +19 -0
  483. package/dist/with-lookup/indexing/active.d.ts +30 -0
  484. package/dist/with-lookup/indexing/collection-facade.d.ts +157 -0
  485. package/dist/with-lookup/indexing/eager-indexes.d.ts +122 -0
  486. package/dist/with-lookup/indexing/index.d.ts +27 -0
  487. package/dist/with-lookup/indexing/lazy-builder.d.ts +102 -0
  488. package/dist/with-lookup/indexing/persisted-indexes.d.ts +229 -0
  489. package/dist/with-lookup/indexing/strategy.d.ts +56 -0
  490. package/dist/with-lookup/indexing/unique-constraints.d.ts +74 -0
  491. package/dist/with-lookup/search/active.d.ts +10 -0
  492. package/dist/with-lookup/search/build-docs.d.ts +15 -0
  493. package/dist/with-lookup/search/collection-facade.d.ts +163 -0
  494. package/dist/with-lookup/search/fuse.d.ts +22 -0
  495. package/dist/with-lookup/search/index-store.d.ts +19 -0
  496. package/dist/with-lookup/search/index.d.ts +19 -0
  497. package/dist/with-lookup/search/inverted-index.d.ts +47 -0
  498. package/dist/with-lookup/search/persisted-index-store.d.ts +121 -0
  499. package/dist/with-lookup/search/retrieve-types.d.ts +29 -0
  500. package/dist/with-lookup/search/scan.d.ts +28 -0
  501. package/dist/with-lookup/search/segment.d.ts +15 -0
  502. package/dist/with-lookup/search/serialize.d.ts +4 -0
  503. package/dist/with-lookup/search/snippet.d.ts +5 -0
  504. package/dist/with-lookup/search/strategy.d.ts +41 -0
  505. package/dist/with-lookup/search/tokenize.d.ts +12 -0
  506. package/dist/with-party/auth-introspection/index.d.ts +44 -0
  507. package/dist/with-party/broker/active.d.ts +23 -0
  508. package/dist/with-party/broker/index.d.ts +28 -0
  509. package/dist/with-party/broker/seed.d.ts +77 -0
  510. package/dist/with-party/custody/active.d.ts +10 -0
  511. package/dist/with-party/custody/index.d.ts +69 -0
  512. package/dist/with-party/custody/liberate.d.ts +64 -0
  513. package/dist/with-party/custody/strategy.d.ts +48 -0
  514. package/dist/with-party/directory/index.d.ts +11 -0
  515. package/dist/with-party/directory/public-envelope/index.d.ts +12 -0
  516. package/dist/with-party/directory/public-envelope/schema.d.ts +24 -0
  517. package/dist/with-party/directory/public-envelope/storage.d.ts +59 -0
  518. package/dist/with-party/directory/public-envelope/types.d.ts +80 -0
  519. package/dist/with-party/directory/storage.d.ts +33 -0
  520. package/dist/with-party/directory/types.d.ts +43 -0
  521. package/dist/with-party/directory/user-envelope/api.d.ts +201 -0
  522. package/dist/with-party/directory/user-envelope/index.d.ts +12 -0
  523. package/dist/with-party/directory/user-envelope/storage.d.ts +54 -0
  524. package/dist/with-party/directory/visibility.d.ts +47 -0
  525. package/dist/with-party/policy/engine.d.ts +60 -0
  526. package/dist/with-party/policy/index.d.ts +15 -0
  527. package/dist/with-party/policy/noydb-facade.d.ts +39 -0
  528. package/dist/with-party/policy/presets.d.ts +38 -0
  529. package/dist/with-party/policy/storage.d.ts +31 -0
  530. package/dist/with-party/session/active.d.ts +34 -0
  531. package/dist/with-party/session/dev-unlock.d.ts +128 -0
  532. package/dist/with-party/session/index.d.ts +23 -0
  533. package/dist/with-party/session/session-policy.d.ts +92 -0
  534. package/dist/with-party/session/session.d.ts +131 -0
  535. package/dist/with-party/session/strategy.d.ts +42 -0
  536. package/dist/with-party/session/unlock-state.d.ts +47 -0
  537. package/dist/with-party/sync/index.d.ts +31 -0
  538. package/dist/with-party/tab-coordination.d.ts +73 -0
  539. package/dist/with-party/tab-write-relay.d.ts +39 -0
  540. package/dist/with-party/team/active.d.ts +13 -0
  541. package/dist/with-party/team/authenticators.d.ts +95 -0
  542. package/dist/with-party/team/deed.d.ts +97 -0
  543. package/dist/with-party/team/delegation.d.ts +88 -0
  544. package/dist/with-party/team/index.d.ts +38 -0
  545. package/dist/with-party/team/keyring.d.ts +318 -0
  546. package/dist/with-party/team/magic-link-grant.d.ts +152 -0
  547. package/dist/with-party/team/managed-passphrase.d.ts +280 -0
  548. package/dist/with-party/team/noydb-facade.d.ts +484 -0
  549. package/dist/with-party/team/peer-recover.d.ts +81 -0
  550. package/dist/with-party/team/presence.d.ts +81 -0
  551. package/dist/with-party/team/recovery.d.ts +191 -0
  552. package/dist/with-party/team/reserved-secret-collections.d.ts +41 -0
  553. package/dist/with-party/team/rotate-recover.d.ts +275 -0
  554. package/dist/with-party/team/shamir-recovery-provider.d.ts +15 -0
  555. package/dist/with-party/team/strategy.d.ts +9 -0
  556. package/dist/with-party/team/sync-active.d.ts +33 -0
  557. package/dist/with-party/team/sync-credentials.d.ts +113 -0
  558. package/dist/with-party/team/sync-strategy.d.ts +67 -0
  559. package/dist/with-party/team/sync-transaction.d.ts +39 -0
  560. package/dist/with-party/team/sync.d.ts +174 -0
  561. package/dist/with-party/team/tiers.d.ts +39 -0
  562. package/dist/with-party/team/wrapped-deks.d.ts +86 -0
  563. package/dist/with-pod/backup.d.ts +74 -0
  564. package/dist/with-pod/bundle.d.ts +414 -0
  565. package/dist/with-pod/format.d.ts +203 -0
  566. package/dist/with-pod/index.d.ts +20 -0
  567. package/dist/with-pod/pod-store.d.ts +54 -0
  568. package/dist/with-pod/ulid.d.ts +64 -0
  569. package/dist/with-shape/blobs/blob-compaction.d.ts +170 -0
  570. package/dist/with-shape/blobs/blob-intent.d.ts +153 -0
  571. package/dist/with-shape/blobs/blob-set.d.ts +1286 -0
  572. package/dist/with-shape/blobs/export-blobs.d.ts +110 -0
  573. package/dist/with-shape/blobs/import-external.d.ts +50 -0
  574. package/dist/with-shape/blobs/mime-magic.d.ts +48 -0
  575. package/dist/with-shape/blobs/object-projection.d.ts +70 -0
  576. package/dist/with-shape/introspection/describe.d.ts +237 -0
  577. package/dist/with-shape/introspection/field-meta.d.ts +61 -0
  578. package/dist/with-shape/introspection/fields.d.ts +14 -0
  579. package/dist/with-shape/introspection/index.d.ts +12 -0
  580. package/dist/with-shape/introspection/json-schema.d.ts +13 -0
  581. package/dist/with-shape/introspection/meta.d.ts +22 -0
  582. package/dist/with-shape/introspection/projection.d.ts +13 -0
  583. package/dist/with-shape/introspection/types.d.ts +154 -0
  584. package/dist/with-shape/introspection/walk.d.ts +50 -0
  585. package/dist/with-shape/links/lazy-handle.d.ts +36 -0
  586. package/dist/with-shape/links/link-set.d.ts +67 -0
  587. package/dist/with-shape/links/names.d.ts +65 -0
  588. package/dist/with-shape/links/vault-facade.d.ts +211 -0
  589. package/dist/with-shape/persisted-schemas/canonicalize.d.ts +11 -0
  590. package/dist/with-shape/persisted-schemas/derive.d.ts +29 -0
  591. package/dist/with-shape/persisted-schemas/index.d.ts +21 -0
  592. package/dist/with-shape/persisted-schemas/register.d.ts +66 -0
  593. package/dist/with-shape/persisted-schemas/storage.d.ts +61 -0
  594. package/dist/with-shape/persisted-schemas/types.d.ts +54 -0
  595. package/dist/with-shape/satellites/dead-filter.d.ts +21 -0
  596. package/dist/with-shape/satellites/declare.d.ts +60 -0
  597. package/dist/with-shape/satellites/existence.d.ts +5 -0
  598. package/dist/with-shape/satellites/fanout.d.ts +38 -0
  599. package/dist/with-shape/satellites/forget.d.ts +47 -0
  600. package/dist/with-shape/satellites/index.d.ts +3 -0
  601. package/dist/with-shape/satellites/joined.d.ts +19 -0
  602. package/dist/with-shape/satellites/marker.d.ts +10 -0
  603. package/dist/with-shape/satellites/migrate-cek.d.ts +26 -0
  604. package/dist/with-shape/satellites/post-register.d.ts +6 -0
  605. package/dist/with-shape/satellites/proxy.d.ts +37 -0
  606. package/dist/with-shape/satellites/raw-target.d.ts +14 -0
  607. package/dist/with-shape/satellites/registry.d.ts +19 -0
  608. package/dist/with-shape/satellites/types.d.ts +37 -0
  609. package/dist/with-shape/satellites/validate.d.ts +17 -0
  610. package/dist/with-shape/schema-update/client-registry.d.ts +35 -0
  611. package/dist/with-shape/schema-update/cutover.d.ts +5 -0
  612. package/dist/with-shape/schema-update/delta.d.ts +2 -0
  613. package/dist/with-shape/schema-update/dispatch.d.ts +3 -0
  614. package/dist/with-shape/schema-update/fence-controller.d.ts +62 -0
  615. package/dist/with-shape/schema-update/fence-watcher.d.ts +37 -0
  616. package/dist/with-shape/schema-update/fence.d.ts +15 -0
  617. package/dist/with-shape/schema-update/gate.d.ts +16 -0
  618. package/dist/with-shape/schema-update/index.d.ts +6 -0
  619. package/dist/with-shape/schema-update/store-coordination-provider.d.ts +29 -0
  620. package/dist/with-shape/schema-update/strategies.d.ts +12 -0
  621. package/dist/with-shape/schema-update/types.d.ts +53 -0
  622. package/dist/with-store/index.d.ts +15 -0
  623. package/dist/with-store/lazy/active.d.ts +12 -0
  624. package/dist/with-store/lazy/index.d.ts +14 -0
  625. package/dist/with-store/lazy/strategy.d.ts +9 -0
  626. package/dist/with-store/route-store.d.ts +259 -0
  627. package/dist/with-store/store-middleware.d.ts +189 -0
  628. package/dist/withdraw-accessible-WZIEVWSR.js +28 -0
  629. package/package.json +47 -55
  630. package/dist/adapter/index.d.ts +0 -4
  631. package/dist/adapter/index.js +0 -15
  632. package/dist/aggregate/index.d.ts +0 -41
  633. package/dist/api-HV4PDUWF.js +0 -20
  634. package/dist/as/index.d.ts +0 -6
  635. package/dist/at/index.d.ts +0 -4
  636. package/dist/attestation/index.d.ts +0 -19
  637. package/dist/backup-ODXO7OGA.js +0 -225
  638. package/dist/backup-ODXO7OGA.js.map +0 -1
  639. package/dist/blobs/index.d.ts +0 -43
  640. package/dist/bundle/index.d.ts +0 -121
  641. package/dist/bundle-DlSxo31R.d.ts +0 -548
  642. package/dist/by/index.d.ts +0 -1
  643. package/dist/cargo/index.d.ts +0 -8
  644. package/dist/chunk-2644KEGW.js +0 -247
  645. package/dist/chunk-2644KEGW.js.map +0 -1
  646. package/dist/chunk-2HVUKRNE.js +0 -21
  647. package/dist/chunk-2KOSJTMU.js +0 -69
  648. package/dist/chunk-2UQ4RMHV.js +0 -167
  649. package/dist/chunk-2UQ4RMHV.js.map +0 -1
  650. package/dist/chunk-2XE6LIXT.js +0 -515
  651. package/dist/chunk-2XE6LIXT.js.map +0 -1
  652. package/dist/chunk-34RRRIC3.js +0 -71
  653. package/dist/chunk-3C5CKXFI.js +0 -621
  654. package/dist/chunk-3C5CKXFI.js.map +0 -1
  655. package/dist/chunk-3I4KYWNP.js +0 -30
  656. package/dist/chunk-42KVY3OC.js +0 -86
  657. package/dist/chunk-4C4WBS4V.js +0 -13822
  658. package/dist/chunk-4C4WBS4V.js.map +0 -1
  659. package/dist/chunk-4G3IT7J7.js +0 -280
  660. package/dist/chunk-4G3IT7J7.js.map +0 -1
  661. package/dist/chunk-4RQ62VSR.js +0 -53
  662. package/dist/chunk-4RQ62VSR.js.map +0 -1
  663. package/dist/chunk-4ZSGSRBI.js +0 -1221
  664. package/dist/chunk-4ZSGSRBI.js.map +0 -1
  665. package/dist/chunk-5GAX2QOH.js +0 -132
  666. package/dist/chunk-5GAX2QOH.js.map +0 -1
  667. package/dist/chunk-5SAZMBW7.js +0 -202
  668. package/dist/chunk-5TZZUL5X.js +0 -30
  669. package/dist/chunk-6CU3FN74.js +0 -777
  670. package/dist/chunk-6G2SCQYS.js +0 -29
  671. package/dist/chunk-6G2SCQYS.js.map +0 -1
  672. package/dist/chunk-6MWUANRF.js +0 -29
  673. package/dist/chunk-6S7T6WC4.js +0 -111
  674. package/dist/chunk-6S7T6WC4.js.map +0 -1
  675. package/dist/chunk-6ULCYCMU.js +0 -74
  676. package/dist/chunk-7HAPHVRJ.js +0 -1695
  677. package/dist/chunk-7HAPHVRJ.js.map +0 -1
  678. package/dist/chunk-7IZQTCTR.js +0 -382
  679. package/dist/chunk-7ZANJ6JZ.js +0 -265
  680. package/dist/chunk-7ZANJ6JZ.js.map +0 -1
  681. package/dist/chunk-A2APWS32.js +0 -150
  682. package/dist/chunk-A2APWS32.js.map +0 -1
  683. package/dist/chunk-A4MAD6PO.js +0 -99
  684. package/dist/chunk-ANDBBA2P.js +0 -36
  685. package/dist/chunk-ANDBBA2P.js.map +0 -1
  686. package/dist/chunk-AUR7MRHA.js +0 -404
  687. package/dist/chunk-AYGZMQP5.js +0 -75
  688. package/dist/chunk-BGIZAFY7.js +0 -1
  689. package/dist/chunk-CJEMA2Z6.js +0 -230
  690. package/dist/chunk-CTSFKDGA.js +0 -40
  691. package/dist/chunk-CU62BBRB.js +0 -1465
  692. package/dist/chunk-CU62BBRB.js.map +0 -1
  693. package/dist/chunk-CWCCYH34.js +0 -23
  694. package/dist/chunk-DEYAO3N6.js +0 -589
  695. package/dist/chunk-DFIBOSOQ.js +0 -85
  696. package/dist/chunk-E5AHO65E.js +0 -150
  697. package/dist/chunk-FC3XK5JT.js +0 -99
  698. package/dist/chunk-FGOGS7CE.js +0 -662
  699. package/dist/chunk-FGOGS7CE.js.map +0 -1
  700. package/dist/chunk-GX2BYNCT.js +0 -117
  701. package/dist/chunk-GZ2MOPVX.js +0 -291
  702. package/dist/chunk-GZ2MOPVX.js.map +0 -1
  703. package/dist/chunk-H57P2SJB.js +0 -126
  704. package/dist/chunk-H57P2SJB.js.map +0 -1
  705. package/dist/chunk-HBTT7YQX.js +0 -94
  706. package/dist/chunk-HOCEGVGQ.js +0 -36
  707. package/dist/chunk-ICV32FPK.js +0 -50
  708. package/dist/chunk-IIP5WFVT.js +0 -462
  709. package/dist/chunk-IIP5WFVT.js.map +0 -1
  710. package/dist/chunk-IUKGIB2Q.js +0 -91
  711. package/dist/chunk-IWTYFS3D.js +0 -129
  712. package/dist/chunk-JC5R7P44.js +0 -355
  713. package/dist/chunk-JC5R7P44.js.map +0 -1
  714. package/dist/chunk-K2WCO3NX.js +0 -1
  715. package/dist/chunk-KBBWY46Y.js +0 -14
  716. package/dist/chunk-KBF5GSGX.js +0 -367
  717. package/dist/chunk-KCG3BHFG.js +0 -99
  718. package/dist/chunk-KCG3BHFG.js.map +0 -1
  719. package/dist/chunk-KNXN47MO.js +0 -155
  720. package/dist/chunk-KWLD2D75.js +0 -38
  721. package/dist/chunk-KXKLKJW4.js +0 -49
  722. package/dist/chunk-KYC4LIEU.js +0 -123
  723. package/dist/chunk-LEOXZY36.js +0 -130
  724. package/dist/chunk-M5I354EE.js +0 -235
  725. package/dist/chunk-MK2BSS44.js +0 -34
  726. package/dist/chunk-MSVY7ULZ.js +0 -70
  727. package/dist/chunk-NNWK3PSY.js +0 -135
  728. package/dist/chunk-NSZ6J5DF.js +0 -59
  729. package/dist/chunk-NUEFXLZU.js +0 -59
  730. package/dist/chunk-NYVQCZ54.js +0 -261
  731. package/dist/chunk-OQAODTYR.js +0 -45
  732. package/dist/chunk-OV4CMJGR.js +0 -164
  733. package/dist/chunk-PEDZFFKW.js +0 -41
  734. package/dist/chunk-PF3FQCCF.js +0 -164
  735. package/dist/chunk-PF3FQCCF.js.map +0 -1
  736. package/dist/chunk-Q2KVKTC2.js +0 -823
  737. package/dist/chunk-QJR3W3MF.js +0 -23
  738. package/dist/chunk-QJR3W3MF.js.map +0 -1
  739. package/dist/chunk-QTXQ6RNZ.js +0 -255
  740. package/dist/chunk-RJ5522XX.js +0 -453
  741. package/dist/chunk-RJ5522XX.js.map +0 -1
  742. package/dist/chunk-RMUXPHIH.js +0 -930
  743. package/dist/chunk-RMUXPHIH.js.map +0 -1
  744. package/dist/chunk-S6AQXDN4.js +0 -155
  745. package/dist/chunk-SSFC3IYA.js +0 -275
  746. package/dist/chunk-SSFC3IYA.js.map +0 -1
  747. package/dist/chunk-SZCHEDML.js +0 -209
  748. package/dist/chunk-TDPEJINP.js +0 -188
  749. package/dist/chunk-TDPEJINP.js.map +0 -1
  750. package/dist/chunk-TQ3REHVF.js +0 -95
  751. package/dist/chunk-TQ3REHVF.js.map +0 -1
  752. package/dist/chunk-UNJU345Q.js +0 -32
  753. package/dist/chunk-UNJU345Q.js.map +0 -1
  754. package/dist/chunk-V7RNIND6.js +0 -265
  755. package/dist/chunk-V7RNIND6.js.map +0 -1
  756. package/dist/chunk-VJ3NQK4K.js +0 -205
  757. package/dist/chunk-WNA6T3MA.js +0 -686
  758. package/dist/chunk-WNA6T3MA.js.map +0 -1
  759. package/dist/chunk-WVCQ75OK.js +0 -124
  760. package/dist/chunk-X66MXMR5.js +0 -42
  761. package/dist/chunk-XHD3L3JO.js +0 -930
  762. package/dist/chunk-XHD3L3JO.js.map +0 -1
  763. package/dist/chunk-XJK2WIYN.js +0 -430
  764. package/dist/chunk-XJK2WIYN.js.map +0 -1
  765. package/dist/chunk-XQ7UYPVN.js +0 -95
  766. package/dist/chunk-Y2OCKFZ3.js +0 -80
  767. package/dist/chunk-YBFOBRTO.js +0 -367
  768. package/dist/chunk-YLN33ADH.js +0 -97
  769. package/dist/chunk-Z5YFRMG5.js +0 -45
  770. package/dist/chunk-ZWQFOXBR.js +0 -54
  771. package/dist/classified/index.d.ts +0 -16
  772. package/dist/classified-marker-IO5EBW7Q.js +0 -24
  773. package/dist/classified-marker-IO5EBW7Q.js.map +0 -1
  774. package/dist/collection-facade-3RAXG2OU.js +0 -38
  775. package/dist/computed-R62HGCO4.js +0 -11
  776. package/dist/consent/index.d.ts +0 -22
  777. package/dist/crdt/index.d.ts +0 -33
  778. package/dist/dead-filter-VNA4M3GP.js +0 -28
  779. package/dist/decrypt-partition-IHtxEnTi.d.ts +0 -21
  780. package/dist/delegation-ZKII5UBI.js +0 -25
  781. package/dist/derivations/index.d.ts +0 -69
  782. package/dist/derive-5D2C3WG4.js +0 -21
  783. package/dist/describe/index.d.ts +0 -4
  784. package/dist/describe/index.js +0 -1
  785. package/dist/dev-unlock-DDTafVO6.d.ts +0 -263
  786. package/dist/discriminant-BN9REW3o.d.ts +0 -60
  787. package/dist/enclave-EUBEJGPG.js +0 -125
  788. package/dist/executor-IL7SRNUZ.js +0 -23
  789. package/dist/executor-OUA2Y6YC.js +0 -9
  790. package/dist/executor-WAEI6PDV.js +0 -9
  791. package/dist/export-accessible-O55RKAGC.js +0 -23
  792. package/dist/extract-partition-VBGCBA6Q.js +0 -36
  793. package/dist/fanout-sidecar-CI5BCMQM.js +0 -74
  794. package/dist/find-FISGUWSK.js +0 -11
  795. package/dist/forget/index.d.ts +0 -36
  796. package/dist/guards/index.d.ts +0 -34
  797. package/dist/hash-DBkZfIBW.d.ts +0 -72
  798. package/dist/history/index.d.ts +0 -60
  799. package/dist/i18n/index.d.ts +0 -56
  800. package/dist/in/index.d.ts +0 -4
  801. package/dist/index-B9QdHytu.d.ts +0 -123
  802. package/dist/index-CyclmyDr.d.ts +0 -122
  803. package/dist/index-DzhNI2vE.d.ts +0 -23260
  804. package/dist/indexing/index.d.ts +0 -38
  805. package/dist/issue-EQAWIYFQ.js +0 -19
  806. package/dist/kernel/index.d.ts +0 -31
  807. package/dist/kernel/index.js +0 -60
  808. package/dist/lazy/index.d.ts +0 -20
  809. package/dist/ledger-AJA2SR3C.js +0 -42
  810. package/dist/liberate-SEGR4JLY.js +0 -24
  811. package/dist/link-set-YBAC2DQT.js +0 -31
  812. package/dist/materialized-views/index.d.ts +0 -182
  813. package/dist/mime-magic-CbV1quyp.d.ts +0 -103
  814. package/dist/noydb-AMEOU456.js +0 -65
  815. package/dist/on/index.d.ts +0 -4
  816. package/dist/overlay-views/index.d.ts +0 -97
  817. package/dist/periods/index.d.ts +0 -19
  818. package/dist/pod/index.d.ts +0 -62
  819. package/dist/policy-SDGRWVIL.js +0 -41
  820. package/dist/portability/index.d.ts +0 -19
  821. package/dist/post-register-MROIUA5O.js +0 -55
  822. package/dist/post-register-MROIUA5O.js.map +0 -1
  823. package/dist/public-envelope-J5PLQOW2.js +0 -32
  824. package/dist/query/index.d.ts +0 -4
  825. package/dist/read-only-facade-UCYNRE56.js +0 -8
  826. package/dist/register-OVJKW7BS.js +0 -23
  827. package/dist/registry-5RJSK5AJ.js +0 -9
  828. package/dist/registry-DQRNTWRL.js +0 -18
  829. package/dist/registry-LTGLERS7.js +0 -19
  830. package/dist/request-withdrawal-27O77D2V.js +0 -31
  831. package/dist/reveal-LT3I2K4P.js +0 -38
  832. package/dist/reveal-LT3I2K4P.js.map +0 -1
  833. package/dist/revoke-4N45G7D2.js +0 -24
  834. package/dist/revoke-4N45G7D2.js.map +0 -1
  835. package/dist/satellites/index.d.ts +0 -4
  836. package/dist/sealed-record/index.d.ts +0 -68
  837. package/dist/session/index.d.ts +0 -43
  838. package/dist/shadow/index.d.ts +0 -14
  839. package/dist/signer-XJCOV7JD.js +0 -25
  840. package/dist/signer-XJCOV7JD.js.map +0 -1
  841. package/dist/snapshots/index.d.ts +0 -25
  842. package/dist/stale-IYYXEH3U.js +0 -14
  843. package/dist/stale-IYYXEH3U.js.map +0 -1
  844. package/dist/storage-Y44CAPE6.js +0 -23
  845. package/dist/storage-Y44CAPE6.js.map +0 -1
  846. package/dist/store-coordination-provider-WKGAE2WI.js +0 -142
  847. package/dist/subject-index-CyOgGMJL.d.ts +0 -380
  848. package/dist/sync/index.d.ts +0 -40
  849. package/dist/team/index.d.ts +0 -154
  850. package/dist/tiers/index.d.ts +0 -4
  851. package/dist/to/index.d.ts +0 -4
  852. package/dist/transition-guard-BOUkzQU4.d.ts +0 -165
  853. package/dist/tx/index.d.ts +0 -34
  854. package/dist/ui/index.d.ts +0 -4
  855. package/dist/ulid-DRH25k3y.d.ts +0 -66
  856. package/dist/util/index.d.ts +0 -79
  857. package/dist/validators-B3SalxlJ.d.ts +0 -101
  858. package/dist/vault-diff-Dt9NkLzw.d.ts +0 -147
  859. package/dist/verify-GH6CWVSW.js +0 -139
  860. package/dist/verify-GH6CWVSW.js.map +0 -1
  861. package/dist/walk-76UCFXYV.js +0 -241
  862. package/dist/with/index.d.ts +0 -37
  863. package/dist/with-materialized-view-BP33v1Z6.d.ts +0 -27
  864. package/dist/with-overlayed-view-DntFpOKN.d.ts +0 -12
  865. package/dist/with-rollup-ClCHO6-4.d.ts +0 -47
  866. package/dist/withdraw-accessible-6J2UH3IN.js +0 -28
  867. package/dist/withdraw-accessible-6J2UH3IN.js.map +0 -1
  868. /package/dist/{adapter/index.js.map → api-ZGS6LCOF.js.map} +0 -0
  869. /package/dist/{chunk-34RRRIC3.js.map → chunk-3B5VVCNY.js.map} +0 -0
  870. /package/dist/{chunk-CJEMA2Z6.js.map → chunk-3LQ2YKO4.js.map} +0 -0
  871. /package/dist/{chunk-ZWQFOXBR.js.map → chunk-3QCRBHCY.js.map} +0 -0
  872. /package/dist/{chunk-E5AHO65E.js.map → chunk-4JBYV75E.js.map} +0 -0
  873. /package/dist/{chunk-YLN33ADH.js.map → chunk-4NXKCLLQ.js.map} +0 -0
  874. /package/dist/{chunk-2KOSJTMU.js.map → chunk-5M5DVGV7.js.map} +0 -0
  875. /package/dist/{chunk-3I4KYWNP.js.map → chunk-5YOLBEQ6.js.map} +0 -0
  876. /package/dist/{chunk-IWTYFS3D.js.map → chunk-6CRIV7DE.js.map} +0 -0
  877. /package/dist/{chunk-QTXQ6RNZ.js.map → chunk-6QTNZJBS.js.map} +0 -0
  878. /package/dist/{chunk-42KVY3OC.js.map → chunk-6T2SCQRU.js.map} +0 -0
  879. /package/dist/{chunk-Z5YFRMG5.js.map → chunk-7DSTRQIJ.js.map} +0 -0
  880. /package/dist/{chunk-DEYAO3N6.js.map → chunk-AUSTCW2X.js.map} +0 -0
  881. /package/dist/{chunk-SZCHEDML.js.map → chunk-B3HJYUOF.js.map} +0 -0
  882. /package/dist/{chunk-OV4CMJGR.js.map → chunk-BDVFPG6Y.js.map} +0 -0
  883. /package/dist/{chunk-HOCEGVGQ.js.map → chunk-CAF6WOK7.js.map} +0 -0
  884. /package/dist/{chunk-AUR7MRHA.js.map → chunk-CIE2BASH.js.map} +0 -0
  885. /package/dist/{chunk-X66MXMR5.js.map → chunk-CRI4OUV4.js.map} +0 -0
  886. /package/dist/{chunk-IUKGIB2Q.js.map → chunk-DLG74CNB.js.map} +0 -0
  887. /package/dist/{chunk-YBFOBRTO.js.map → chunk-ERJ7FU55.js.map} +0 -0
  888. /package/dist/{chunk-VJ3NQK4K.js.map → chunk-EVVGJDRQ.js.map} +0 -0
  889. /package/dist/{chunk-NSZ6J5DF.js.map → chunk-EXK7QRWF.js.map} +0 -0
  890. /package/dist/{chunk-5SAZMBW7.js.map → chunk-EYZ6IQ6X.js.map} +0 -0
  891. /package/dist/{chunk-OQAODTYR.js.map → chunk-F64IRYG3.js.map} +0 -0
  892. /package/dist/{chunk-Q2KVKTC2.js.map → chunk-FHS2HQSH.js.map} +0 -0
  893. /package/dist/{chunk-Y2OCKFZ3.js.map → chunk-GKEWXIV5.js.map} +0 -0
  894. /package/dist/{chunk-NUEFXLZU.js.map → chunk-GTGPO5KW.js.map} +0 -0
  895. /package/dist/{chunk-XQ7UYPVN.js.map → chunk-HB3RFQSC.js.map} +0 -0
  896. /package/dist/{chunk-FC3XK5JT.js.map → chunk-I6GALP6E.js.map} +0 -0
  897. /package/dist/{chunk-LEOXZY36.js.map → chunk-IL6POWCW.js.map} +0 -0
  898. /package/dist/{chunk-GX2BYNCT.js.map → chunk-IU6SNYX6.js.map} +0 -0
  899. /package/dist/{chunk-6CU3FN74.js.map → chunk-J2ZX2XUV.js.map} +0 -0
  900. /package/dist/{chunk-6MWUANRF.js.map → chunk-JKJOGPZN.js.map} +0 -0
  901. /package/dist/{chunk-PEDZFFKW.js.map → chunk-JZUV47FZ.js.map} +0 -0
  902. /package/dist/{chunk-5TZZUL5X.js.map → chunk-K5IMOGHB.js.map} +0 -0
  903. /package/dist/{chunk-7IZQTCTR.js.map → chunk-LASZKVMO.js.map} +0 -0
  904. /package/dist/{chunk-NNWK3PSY.js.map → chunk-NR5LT5RY.js.map} +0 -0
  905. /package/dist/{chunk-NYVQCZ54.js.map → chunk-NWSGI5C7.js.map} +0 -0
  906. /package/dist/{chunk-MSVY7ULZ.js.map → chunk-Q5VNKNE5.js.map} +0 -0
  907. /package/dist/{chunk-2HVUKRNE.js.map → chunk-QLWMEXCT.js.map} +0 -0
  908. /package/dist/{chunk-KYC4LIEU.js.map → chunk-QRB7NAOJ.js.map} +0 -0
  909. /package/dist/{chunk-6ULCYCMU.js.map → chunk-R4ROFEYC.js.map} +0 -0
  910. /package/dist/{chunk-KBF5GSGX.js.map → chunk-RIX4V2TB.js.map} +0 -0
  911. /package/dist/{chunk-CTSFKDGA.js.map → chunk-RYCTDFUX.js.map} +0 -0
  912. /package/dist/{chunk-S6AQXDN4.js.map → chunk-RZ5SVOYR.js.map} +0 -0
  913. /package/dist/{chunk-A4MAD6PO.js.map → chunk-SLFHQTTW.js.map} +0 -0
  914. /package/dist/{chunk-AYGZMQP5.js.map → chunk-T2FFWNPK.js.map} +0 -0
  915. /package/dist/{chunk-CWCCYH34.js.map → chunk-UNFPPVNI.js.map} +0 -0
  916. /package/dist/{chunk-M5I354EE.js.map → chunk-VLFCJYTL.js.map} +0 -0
  917. /package/dist/{chunk-WVCQ75OK.js.map → chunk-VN3DBQAU.js.map} +0 -0
  918. /package/dist/{chunk-KXKLKJW4.js.map → chunk-VZRODIM3.js.map} +0 -0
  919. /package/dist/{chunk-HBTT7YQX.js.map → chunk-W22IKJE2.js.map} +0 -0
  920. /package/dist/{chunk-KNXN47MO.js.map → chunk-X3YYQWOQ.js.map} +0 -0
  921. /package/dist/{chunk-DFIBOSOQ.js.map → chunk-YFXZEAYK.js.map} +0 -0
  922. /package/dist/{chunk-ICV32FPK.js.map → chunk-ZAJAVEXY.js.map} +0 -0
  923. /package/dist/{chunk-MK2BSS44.js.map → chunk-ZICD77GM.js.map} +0 -0
  924. /package/dist/{chunk-KWLD2D75.js.map → chunk-ZJ2AK4V7.js.map} +0 -0
  925. /package/dist/{chunk-KBBWY46Y.js.map → chunk-ZUODRVHY.js.map} +0 -0
  926. /package/dist/{api-HV4PDUWF.js.map → collection-facade-TLWIPI76.js.map} +0 -0
  927. /package/dist/{chunk-BGIZAFY7.js.map → computed-ZIQTYTDI.js.map} +0 -0
  928. /package/dist/{dead-filter-VNA4M3GP.js.map → dead-filter-ESOBZZP5.js.map} +0 -0
  929. /package/dist/{chunk-K2WCO3NX.js.map → delegation-W7ZV2322.js.map} +0 -0
  930. /package/dist/{collection-facade-3RAXG2OU.js.map → derive-H2BJTLUI.js.map} +0 -0
  931. /package/dist/{computed-R62HGCO4.js.map → enclave-AP3I5W7O.js.map} +0 -0
  932. /package/dist/{delegation-ZKII5UBI.js.map → executor-KGWTNEQD.js.map} +0 -0
  933. /package/dist/{derive-5D2C3WG4.js.map → executor-OVEXR6RT.js.map} +0 -0
  934. /package/dist/{describe/index.js.map → executor-UNEH5ZYH.js.map} +0 -0
  935. /package/dist/{enclave-EUBEJGPG.js.map → export-accessible-PCMXSUZS.js.map} +0 -0
  936. /package/dist/{executor-IL7SRNUZ.js.map → extract-partition-SWHFSYJO.js.map} +0 -0
  937. /package/dist/{fanout-sidecar-CI5BCMQM.js.map → fanout-sidecar-A765THMX.js.map} +0 -0
  938. /package/dist/{executor-OUA2Y6YC.js.map → find-N6345CNT.js.map} +0 -0
  939. /package/dist/{executor-WAEI6PDV.js.map → issue-5OKB6I2R.js.map} +0 -0
  940. /package/dist/{export-accessible-O55RKAGC.js.map → ledger-GFBKVPV4.js.map} +0 -0
  941. /package/dist/{extract-partition-VBGCBA6Q.js.map → liberate-3VDOT4KO.js.map} +0 -0
  942. /package/dist/{find-FISGUWSK.js.map → link-set-Z7Q2ASFX.js.map} +0 -0
  943. /package/dist/{issue-EQAWIYFQ.js.map → noydb-ZCJOYBDI.js.map} +0 -0
  944. /package/dist/{kernel/index.js.map → policy-Z3RUAIY2.js.map} +0 -0
  945. /package/dist/{ledger-AJA2SR3C.js.map → public-envelope-B4KNWVUA.js.map} +0 -0
  946. /package/dist/{liberate-SEGR4JLY.js.map → read-only-facade-CHCKSEPD.js.map} +0 -0
  947. /package/dist/{link-set-YBAC2DQT.js.map → register-VAHONCID.js.map} +0 -0
  948. /package/dist/{noydb-AMEOU456.js.map → registry-7MLVD3VO.js.map} +0 -0
  949. /package/dist/{policy-SDGRWVIL.js.map → registry-EPKPD5SM.js.map} +0 -0
  950. /package/dist/{public-envelope-J5PLQOW2.js.map → registry-P5T7PS2U.js.map} +0 -0
  951. /package/dist/{read-only-facade-UCYNRE56.js.map → request-withdrawal-TI3A5WPS.js.map} +0 -0
  952. /package/dist/{register-OVJKW7BS.js.map → revoke-FDRD6GRW.js.map} +0 -0
  953. /package/dist/{registry-5RJSK5AJ.js.map → signer-MUWEIUI6.js.map} +0 -0
  954. /package/dist/{registry-DQRNTWRL.js.map → stale-OSQ7J3AA.js.map} +0 -0
  955. /package/dist/{registry-LTGLERS7.js.map → storage-MVFCGEQE.js.map} +0 -0
  956. /package/dist/{store-coordination-provider-WKGAE2WI.js.map → store-coordination-provider-64OEZFGS.js.map} +0 -0
  957. /package/dist/{walk-76UCFXYV.js.map → walk-SVNDIZ62.js.map} +0 -0
  958. /package/dist/{request-withdrawal-27O77D2V.js.map → withdraw-accessible-WZIEVWSR.js.map} +0 -0
@@ -0,0 +1,778 @@
1
+ import {
2
+ deleteUserEnvelope,
3
+ deleteUserVisibility,
4
+ loadUserEnvelope,
5
+ readDirectoryConfig,
6
+ readUserVisibility,
7
+ saveUserEnvelope
8
+ } from "./chunk-4JBYV75E.js";
9
+ import {
10
+ base64ToBuffer,
11
+ bufferToBase64,
12
+ decrypt,
13
+ deriveKey,
14
+ encrypt,
15
+ generateDEK,
16
+ generateSalt,
17
+ unwrapKey,
18
+ wrapKey
19
+ } from "./chunk-CIE2BASH.js";
20
+ import {
21
+ NOYDB_FORMAT_VERSION,
22
+ NOYDB_KEYRING_VERSION
23
+ } from "./chunk-JNAI2HN2.js";
24
+ import {
25
+ DirectoryDisabledError,
26
+ InvalidKeyError,
27
+ KeyringCorruptError,
28
+ KeyringExpiredError,
29
+ NoAccessError,
30
+ NoydbError,
31
+ PermissionDeniedError,
32
+ PrivilegeEscalationError,
33
+ USER_ENVELOPE_COLLECTION,
34
+ ValidationError
35
+ } from "./chunk-BIOUI4HL.js";
36
+
37
+ // src/kernel/validation.ts
38
+ var WeakPassphraseError = class extends NoydbError {
39
+ reason;
40
+ suggestion;
41
+ constructor(reason, suggestion) {
42
+ super("WEAK_PASSPHRASE", `Weak passphrase (${reason}). ${suggestion}`);
43
+ this.name = "WeakPassphraseError";
44
+ this.reason = reason;
45
+ this.suggestion = suggestion;
46
+ }
47
+ };
48
+ var DEFAULT_MIN_WORDS = 6;
49
+ var DEFAULT_MIN_WORD_LENGTH = 3;
50
+ var SUGGESTIONS = {
51
+ empty: "Provide a phrase of at least 6 lowercase words separated by single spaces.",
52
+ "invalid-chars": "Use only lowercase letters [a-z] and single spaces. No punctuation, symbols, digits, or uppercase.",
53
+ "leading-or-trailing-space": "Trim leading and trailing spaces.",
54
+ "double-space": "Use exactly one space between words.",
55
+ "too-few-words": 'Use at least 6 words by default (8 under strict policy). Example: "correct horse battery staple printer toaster".',
56
+ "word-too-short": 'Each word must be at least 3 characters. Drop short fillers like "a", "is", "of".',
57
+ "repeated-adjacent": "Avoid repeating the same word twice in a row."
58
+ };
59
+ function validatePassphrase(s, opts) {
60
+ if (opts?.customValidator) {
61
+ return opts.customValidator(s);
62
+ }
63
+ const minWords = opts?.minWords ?? DEFAULT_MIN_WORDS;
64
+ const minWordLength = opts?.minWordLength ?? DEFAULT_MIN_WORD_LENGTH;
65
+ const rejectRepeated = opts?.rejectRepeatedAdjacent ?? true;
66
+ if (s.length === 0) {
67
+ return { ok: false, reason: "empty" };
68
+ }
69
+ if (s !== s.trim()) {
70
+ return { ok: false, reason: "leading-or-trailing-space" };
71
+ }
72
+ if (s.includes(" ")) {
73
+ return { ok: false, reason: "double-space" };
74
+ }
75
+ const charPattern = opts?.pattern ?? /^[a-z]+( [a-z]+)*$/;
76
+ if (!charPattern.test(s)) {
77
+ return { ok: false, reason: "invalid-chars" };
78
+ }
79
+ const words = s.split(" ");
80
+ if (words.length < minWords) {
81
+ return { ok: false, reason: "too-few-words", minimum: minWords, got: words.length };
82
+ }
83
+ for (const w of words) {
84
+ if (w.length < minWordLength) {
85
+ return { ok: false, reason: "word-too-short", minimum: minWordLength, got: w.length };
86
+ }
87
+ }
88
+ if (rejectRepeated) {
89
+ for (let i = 1; i < words.length; i++) {
90
+ if (words[i] === words[i - 1]) {
91
+ return { ok: false, reason: "repeated-adjacent" };
92
+ }
93
+ }
94
+ }
95
+ return { ok: true, words: words.length };
96
+ }
97
+ function assertStrongPassphrase(s, opts) {
98
+ if (opts?.allowWeakPassphrase) return;
99
+ const result = validatePassphrase(s, opts);
100
+ if (result.ok) return;
101
+ throw new WeakPassphraseError(result.reason, SUGGESTIONS[result.reason]);
102
+ }
103
+ function estimateEntropy(passphrase) {
104
+ const result = validatePassphrase(passphrase);
105
+ if (!result.ok) return 0;
106
+ return Math.round(result.words * Math.log2(7776));
107
+ }
108
+
109
+ // src/with-party/team/reserved-secret-collections.ts
110
+ var SYNC_CREDENTIALS_COLLECTION = "_sync_credentials";
111
+ var BROKER_COLLECTION = "_broker";
112
+ var SECRET_BEARING_RESERVED_COLLECTIONS = /* @__PURE__ */ new Set([
113
+ SYNC_CREDENTIALS_COLLECTION,
114
+ BROKER_COLLECTION
115
+ ]);
116
+ function isSecretBearingReservedCollection(name) {
117
+ return SECRET_BEARING_RESERVED_COLLECTIONS.has(name);
118
+ }
119
+
120
+ // src/with-party/team/keyring.ts
121
+ var ADMIN_GRANTABLE_TARGETS = ["operator", "viewer", "client", "admin"];
122
+ function canGrant(callerRole, targetRole) {
123
+ if (callerRole === "owner") return true;
124
+ if (callerRole === "custodian") return false;
125
+ if (callerRole === "admin") return ADMIN_GRANTABLE_TARGETS.includes(targetRole);
126
+ return false;
127
+ }
128
+ function canRevoke(callerRole, targetRole) {
129
+ if (targetRole === "owner") return false;
130
+ if (callerRole === "owner") return true;
131
+ if (callerRole === "custodian") return false;
132
+ if (callerRole === "admin") return ADMIN_GRANTABLE_TARGETS.includes(targetRole);
133
+ return false;
134
+ }
135
+ function canUpdateRole(callerRole, targetRole) {
136
+ if (callerRole === "owner") return true;
137
+ if (callerRole === "admin") return ADMIN_GRANTABLE_TARGETS.includes(targetRole);
138
+ return false;
139
+ }
140
+ var CANARY_PLAINTEXT_BYTES = new Uint8Array(32);
141
+ var canaryKeyPromise = null;
142
+ function getCanaryKey() {
143
+ if (canaryKeyPromise === null) {
144
+ canaryKeyPromise = globalThis.crypto.subtle.importKey(
145
+ "raw",
146
+ CANARY_PLAINTEXT_BYTES,
147
+ { name: "AES-GCM", length: 256 },
148
+ true,
149
+ // extractable so AES-KW can wrap it
150
+ ["encrypt", "decrypt"]
151
+ );
152
+ }
153
+ return canaryKeyPromise;
154
+ }
155
+ async function mintKeyringCanary(kek) {
156
+ const canaryKey = await getCanaryKey();
157
+ return wrapKey(canaryKey, kek);
158
+ }
159
+ async function verifyKeyringCanary(wrappedCanary, kek) {
160
+ try {
161
+ await unwrapKey(wrappedCanary, kek);
162
+ return true;
163
+ } catch {
164
+ return false;
165
+ }
166
+ }
167
+ async function loadKeyring(adapter, vault, userId, passphrase) {
168
+ const envelope = await adapter.get(vault, "_keyring", userId);
169
+ if (!envelope) {
170
+ throw new NoAccessError(`No keyring found for user "${userId}" in vault "${vault}"`);
171
+ }
172
+ const keyringFile = JSON.parse(envelope._data);
173
+ if (keyringFile.expires_at !== void 0) {
174
+ const cutoff = Date.parse(keyringFile.expires_at);
175
+ if (Number.isFinite(cutoff) && Date.now() >= cutoff) {
176
+ throw new KeyringExpiredError({ userId: keyringFile.user_id, expiresAt: keyringFile.expires_at });
177
+ }
178
+ }
179
+ const salt = base64ToBuffer(keyringFile.salt);
180
+ const kek = await deriveKey(passphrase, salt);
181
+ const canaryOk = keyringFile.canary !== void 0 ? await verifyKeyringCanary(keyringFile.canary, kek) : null;
182
+ const deks = /* @__PURE__ */ new Map();
183
+ const failedCollections = [];
184
+ let firstUnwrapError = null;
185
+ for (const [collName, wrappedDek] of Object.entries(keyringFile.deks)) {
186
+ try {
187
+ const dek = await unwrapKey(wrappedDek, kek);
188
+ deks.set(collName, dek);
189
+ } catch (err) {
190
+ failedCollections.push(collName);
191
+ if (firstUnwrapError === null) firstUnwrapError = err;
192
+ }
193
+ }
194
+ if (canaryOk === true) {
195
+ if (failedCollections.length > 0) {
196
+ throw new KeyringCorruptError({ failedCollections, intactCount: deks.size });
197
+ }
198
+ } else if (canaryOk === false) {
199
+ if (deks.size > 0) {
200
+ throw new KeyringCorruptError({
201
+ failedCollections: [...failedCollections, "_canary"],
202
+ intactCount: deks.size
203
+ });
204
+ }
205
+ throw firstUnwrapError instanceof Error ? firstUnwrapError : new InvalidKeyError();
206
+ } else {
207
+ if (failedCollections.length > 0) {
208
+ if (deks.size > 0) {
209
+ throw new KeyringCorruptError({ failedCollections, intactCount: deks.size });
210
+ }
211
+ throw firstUnwrapError instanceof Error ? firstUnwrapError : new InvalidKeyError();
212
+ }
213
+ }
214
+ return {
215
+ userId: keyringFile.user_id,
216
+ displayName: keyringFile.display_name,
217
+ role: keyringFile.role,
218
+ permissions: keyringFile.permissions,
219
+ deks,
220
+ kek,
221
+ salt,
222
+ authenticators: keyringFile.authenticators ?? [],
223
+ ...keyringFile.export_capability !== void 0 && { exportCapability: keyringFile.export_capability },
224
+ ...keyringFile.import_capability !== void 0 && { importCapability: keyringFile.import_capability },
225
+ ...keyringFile.policy !== void 0 && { policy: keyringFile.policy }
226
+ };
227
+ }
228
+ async function assertKeyringOpenAllowed(store, vault, userId, create) {
229
+ const keyringUsers = await store.list(vault, "_keyring");
230
+ if (keyringUsers.includes(userId)) return;
231
+ if (!create) {
232
+ throw new NoAccessError(`Vault "${vault}" not opened: create disabled and no keyring for "${userId}".`);
233
+ }
234
+ if (keyringUsers.length > 0) {
235
+ throw new NoAccessError(
236
+ `No keyring for user "${userId}" in vault "${vault}" (held by other principals) \u2014 refusing to self-provision.`
237
+ );
238
+ }
239
+ }
240
+ async function createOwnerKeyring(adapter, vault, userId, passphrase, passphraseOpts) {
241
+ if (passphraseOpts?.validate && !passphraseOpts.allowWeakPassphrase) {
242
+ assertStrongPassphrase(passphrase, passphraseOpts);
243
+ }
244
+ const salt = generateSalt();
245
+ const kek = await deriveKey(passphrase, salt);
246
+ const userEnvelopeDek = await generateDEK();
247
+ const wrappedUserEnvelopeDek = await wrapKey(userEnvelopeDek, kek);
248
+ const canary = await mintKeyringCanary(kek);
249
+ const keyringFile = {
250
+ _noydb_keyring: NOYDB_KEYRING_VERSION,
251
+ user_id: userId,
252
+ display_name: userId,
253
+ role: "owner",
254
+ permissions: {},
255
+ deks: { [USER_ENVELOPE_COLLECTION]: wrappedUserEnvelopeDek },
256
+ salt: bufferToBase64(salt),
257
+ created_at: (/* @__PURE__ */ new Date()).toISOString(),
258
+ granted_by: userId,
259
+ canary
260
+ };
261
+ await writeKeyringFile(adapter, vault, userId, keyringFile);
262
+ return {
263
+ userId,
264
+ displayName: userId,
265
+ role: "owner",
266
+ permissions: {},
267
+ deks: /* @__PURE__ */ new Map([[USER_ENVELOPE_COLLECTION, userEnvelopeDek]]),
268
+ kek,
269
+ salt,
270
+ authenticators: []
271
+ };
272
+ }
273
+ async function grant(adapter, vault, callerKeyring, options) {
274
+ if (!callerKeyring.kek) {
275
+ throw new ValidationError(
276
+ "grant: caller keyring has no KEK \u2014 tier-2 wrap-DEKs and tier-3 PIN-resume sessions cannot grant access to other users. Re-authenticate at tier 1 (passphrase) before granting."
277
+ );
278
+ }
279
+ if (!canGrant(callerKeyring.role, options.role)) {
280
+ throw new PermissionDeniedError(
281
+ `Role "${callerKeyring.role}" cannot grant role "${options.role}"`
282
+ );
283
+ }
284
+ if (options.validatePassphrase && !options.allowWeakPassphrase) {
285
+ assertStrongPassphrase(options.passphrase);
286
+ }
287
+ const permissions = resolvePermissions(options.role, options.permissions);
288
+ const newSalt = generateSalt();
289
+ const newKek = await deriveKey(options.passphrase, newSalt);
290
+ const granteeMayHoldSecrets = options.role === "owner" || options.role === "admin";
291
+ const wrappedDeks = {};
292
+ for (const collName of Object.keys(permissions)) {
293
+ if (isSecretBearingReservedCollection(collName) && !granteeMayHoldSecrets) continue;
294
+ const dek = callerKeyring.deks.get(collName);
295
+ if (dek) {
296
+ wrappedDeks[collName] = await wrapKey(dek, newKek);
297
+ }
298
+ }
299
+ if (options.role === "owner" || options.role === "admin" || options.role === "custodian" || options.role === "viewer") {
300
+ for (const [collName, dek] of callerKeyring.deks) {
301
+ if (collName in wrappedDeks) continue;
302
+ if (isSecretBearingReservedCollection(collName) && !granteeMayHoldSecrets) continue;
303
+ wrappedDeks[collName] = await wrapKey(dek, newKek);
304
+ }
305
+ }
306
+ for (const [collName, dek] of callerKeyring.deks) {
307
+ if (!collName.startsWith("_") || collName in wrappedDeks) continue;
308
+ if (isSecretBearingReservedCollection(collName) && !granteeMayHoldSecrets) continue;
309
+ wrappedDeks[collName] = await wrapKey(dek, newKek);
310
+ }
311
+ for (const collName of Object.keys(wrappedDeks)) {
312
+ if (!callerKeyring.deks.has(collName)) {
313
+ throw new PrivilegeEscalationError(collName);
314
+ }
315
+ }
316
+ const canary = await mintKeyringCanary(newKek);
317
+ const keyringFile = {
318
+ _noydb_keyring: NOYDB_KEYRING_VERSION,
319
+ user_id: options.userId,
320
+ display_name: options.displayName,
321
+ role: options.role,
322
+ permissions,
323
+ deks: wrappedDeks,
324
+ salt: bufferToBase64(newSalt),
325
+ created_at: (/* @__PURE__ */ new Date()).toISOString(),
326
+ granted_by: callerKeyring.userId,
327
+ canary,
328
+ ...options.exportCapability !== void 0 && { export_capability: options.exportCapability },
329
+ ...options.importCapability !== void 0 && { import_capability: options.importCapability }
330
+ };
331
+ await writeKeyringFile(adapter, vault, options.userId, keyringFile);
332
+ const userEnvelopeDek = callerKeyring.deks.get(USER_ENVELOPE_COLLECTION);
333
+ if (userEnvelopeDek) {
334
+ const initialPayload = options.initialProfile ?? {};
335
+ await saveUserEnvelope(
336
+ adapter,
337
+ vault,
338
+ options.userId,
339
+ initialPayload,
340
+ userEnvelopeDek
341
+ );
342
+ }
343
+ }
344
+ async function findAdminDescendants(adapter, vault, rootUserId) {
345
+ const allUserIds = await adapter.list(vault, "_keyring");
346
+ const childrenByParent = /* @__PURE__ */ new Map();
347
+ for (const userId of allUserIds) {
348
+ const env = await adapter.get(vault, "_keyring", userId);
349
+ if (!env) continue;
350
+ const kf = JSON.parse(env._data);
351
+ if (kf.role !== "admin") continue;
352
+ if (kf.user_id === rootUserId) continue;
353
+ const list = childrenByParent.get(kf.granted_by) ?? [];
354
+ list.push(kf.user_id);
355
+ childrenByParent.set(kf.granted_by, list);
356
+ }
357
+ const visited = /* @__PURE__ */ new Set();
358
+ const order = [];
359
+ const stack = [...childrenByParent.get(rootUserId) ?? []];
360
+ while (stack.length > 0) {
361
+ const next = stack.pop();
362
+ if (visited.has(next)) continue;
363
+ visited.add(next);
364
+ order.push(next);
365
+ for (const grandchild of childrenByParent.get(next) ?? []) {
366
+ if (!visited.has(grandchild)) stack.push(grandchild);
367
+ }
368
+ }
369
+ return order;
370
+ }
371
+ async function revoke(adapter, vault, callerKeyring, options) {
372
+ const targetEnvelope = await adapter.get(vault, "_keyring", options.userId);
373
+ if (!targetEnvelope) {
374
+ throw new NoAccessError(`User "${options.userId}" has no keyring in vault "${vault}"`);
375
+ }
376
+ const targetKeyring = JSON.parse(targetEnvelope._data);
377
+ if (!canRevoke(callerKeyring.role, targetKeyring.role)) {
378
+ throw new PermissionDeniedError(
379
+ `Role "${callerKeyring.role}" cannot revoke role "${targetKeyring.role}"`
380
+ );
381
+ }
382
+ const cascadeMode = options.cascade ?? "strict";
383
+ const usersToRevoke = [options.userId];
384
+ const affectedCollections = new Set(Object.keys(targetKeyring.deks));
385
+ if (targetKeyring.role === "admin") {
386
+ const descendants = await findAdminDescendants(adapter, vault, options.userId);
387
+ if (descendants.length > 0) {
388
+ if (cascadeMode === "warn") {
389
+ console.warn(
390
+ `[noy-db] revoke(${options.userId}): cascade='warn' \u2014 leaving ${descendants.length} descendant admin(s) in place: ${descendants.join(", ")}. These admins were granted by the revoked user (transitively) and will become orphans in the delegation tree.`
391
+ );
392
+ } else {
393
+ for (const userId of descendants) {
394
+ const descEnv = await adapter.get(vault, "_keyring", userId);
395
+ if (!descEnv) continue;
396
+ const descKf = JSON.parse(descEnv._data);
397
+ usersToRevoke.push(userId);
398
+ for (const c of Object.keys(descKf.deks)) affectedCollections.add(c);
399
+ }
400
+ }
401
+ }
402
+ }
403
+ for (const userId of usersToRevoke) {
404
+ await adapter.delete(vault, "_keyring", userId);
405
+ await deleteUserEnvelope(adapter, vault, userId);
406
+ await deleteUserVisibility(adapter, vault, userId);
407
+ }
408
+ if (options.rotateKeys !== false && affectedCollections.size > 0) {
409
+ await rotateKeys(adapter, vault, callerKeyring, [...affectedCollections]);
410
+ }
411
+ }
412
+ async function updateKeyringIdentity(adapter, vault, callerKeyring, options) {
413
+ if (options.role === void 0 && options.displayName === void 0 && options.permissions === void 0) {
414
+ throw new ValidationError(
415
+ `updateUser: at least one of role / displayName / permissions must be provided (userId: "${options.userId}").`
416
+ );
417
+ }
418
+ const env = await adapter.get(vault, "_keyring", options.userId);
419
+ if (!env) {
420
+ throw new NoAccessError(
421
+ `updateUser: user "${options.userId}" has no keyring in vault "${vault}".`
422
+ );
423
+ }
424
+ const target = JSON.parse(env._data);
425
+ if (!canUpdateRole(callerKeyring.role, target.role)) {
426
+ throw new PermissionDeniedError(
427
+ `Role "${callerKeyring.role}" cannot update a keyring with role "${target.role}"`
428
+ );
429
+ }
430
+ if (options.role !== void 0 && options.role !== target.role && !canUpdateRole(callerKeyring.role, options.role)) {
431
+ throw new PermissionDeniedError(
432
+ `Role "${callerKeyring.role}" cannot promote target to role "${options.role}"`
433
+ );
434
+ }
435
+ const next = {
436
+ ...target,
437
+ ...options.role !== void 0 && { role: options.role },
438
+ ...options.displayName !== void 0 && {
439
+ // null clears the field (stored as ""); a string sets it.
440
+ display_name: options.displayName ?? ""
441
+ },
442
+ ...options.permissions !== void 0 && { permissions: options.permissions }
443
+ };
444
+ await writeKeyringFile(adapter, vault, options.userId, next);
445
+ }
446
+ async function rotateKeys(adapter, vault, callerKeyring, collections) {
447
+ if (callerKeyring.role === "custodian") {
448
+ throw new PermissionDeniedError(
449
+ "custodian cannot rotate keys (FR-6: re-key is an owner-only meta-capability; use the Deed owner)"
450
+ );
451
+ }
452
+ const newDeks = /* @__PURE__ */ new Map();
453
+ for (const collName of collections) {
454
+ newDeks.set(collName, await generateDEK());
455
+ }
456
+ for (const collName of collections) {
457
+ const oldDek = callerKeyring.deks.get(collName);
458
+ const newDek = newDeks.get(collName);
459
+ if (!oldDek) continue;
460
+ const ids = await adapter.list(vault, collName);
461
+ for (const id of ids) {
462
+ const envelope = await adapter.get(vault, collName, id);
463
+ if (!envelope || !envelope._iv) continue;
464
+ const plaintext = await decrypt(envelope._iv, envelope._data, oldDek);
465
+ const { iv, data } = await encrypt(plaintext, newDek);
466
+ const newEnvelope = {
467
+ _noydb: NOYDB_FORMAT_VERSION,
468
+ _v: envelope._v,
469
+ _ts: (/* @__PURE__ */ new Date()).toISOString(),
470
+ _iv: iv,
471
+ _data: data
472
+ };
473
+ await adapter.put(vault, collName, id, newEnvelope);
474
+ }
475
+ }
476
+ for (const [collName, newDek] of newDeks) {
477
+ callerKeyring.deks.set(collName, newDek);
478
+ }
479
+ await persistKeyring(adapter, vault, callerKeyring);
480
+ const userIds = await adapter.list(vault, "_keyring");
481
+ for (const userId of userIds) {
482
+ if (userId === callerKeyring.userId) continue;
483
+ const userEnvelope = await adapter.get(vault, "_keyring", userId);
484
+ if (!userEnvelope) continue;
485
+ const userKeyringFile = JSON.parse(userEnvelope._data);
486
+ const updatedDeks = { ...userKeyringFile.deks };
487
+ for (const collName of collections) {
488
+ delete updatedDeks[collName];
489
+ }
490
+ const updatedPermissions = { ...userKeyringFile.permissions };
491
+ for (const collName of collections) {
492
+ delete updatedPermissions[collName];
493
+ }
494
+ const updatedKeyring = {
495
+ ...userKeyringFile,
496
+ deks: updatedDeks,
497
+ permissions: updatedPermissions
498
+ };
499
+ await writeKeyringFile(adapter, vault, userId, updatedKeyring);
500
+ }
501
+ }
502
+ async function changeSecret(adapter, vault, keyring, newPassphrase, passphraseOpts) {
503
+ if (!passphraseOpts?.allowWeakPassphrase) {
504
+ assertStrongPassphrase(newPassphrase, passphraseOpts);
505
+ }
506
+ const newSalt = generateSalt();
507
+ const newKek = await deriveKey(newPassphrase, newSalt);
508
+ const wrappedDeks = {};
509
+ for (const [collName, dek] of keyring.deks) {
510
+ wrappedDeks[collName] = await wrapKey(dek, newKek);
511
+ }
512
+ const canary = await mintKeyringCanary(newKek);
513
+ const keyringFile = {
514
+ _noydb_keyring: NOYDB_KEYRING_VERSION,
515
+ user_id: keyring.userId,
516
+ display_name: keyring.displayName,
517
+ role: keyring.role,
518
+ permissions: keyring.permissions,
519
+ deks: wrappedDeks,
520
+ salt: bufferToBase64(newSalt),
521
+ created_at: (/* @__PURE__ */ new Date()).toISOString(),
522
+ granted_by: keyring.userId,
523
+ canary
524
+ };
525
+ await writeKeyringFile(adapter, vault, keyring.userId, keyringFile);
526
+ return {
527
+ userId: keyring.userId,
528
+ displayName: keyring.displayName,
529
+ role: keyring.role,
530
+ permissions: keyring.permissions,
531
+ deks: keyring.deks,
532
+ // Same DEKs, different wrapping
533
+ kek: newKek,
534
+ salt: newSalt,
535
+ // Tier-2 slots are NOT preserved through `changeSecret` —
536
+ // each slot wraps the OLD KEK, so the new keyring has no
537
+ // authenticator slots until the user re-enrolls. The higher-level
538
+ // `db.rotatePassphrase()` preserves slots by rewrapping the
539
+ // KEK reference, not the KEK itself.
540
+ authenticators: [],
541
+ ...keyring.policy !== void 0 && { policy: keyring.policy }
542
+ };
543
+ }
544
+ async function buildRecipientKeyringFile(callerKeyring, recipient) {
545
+ if (!callerKeyring.kek) {
546
+ throw new ValidationError(
547
+ "buildRecipientKeyringFile: caller keyring has no KEK \u2014 tier-2 wrap-DEKs and tier-3 PIN-resume sessions cannot create bundle recipients. Re-authenticate at tier 1 (passphrase) before building a bundle."
548
+ );
549
+ }
550
+ const role = recipient.role ?? "viewer";
551
+ const permissions = resolvePermissions(role, recipient.permissions);
552
+ const newSalt = generateSalt();
553
+ const newKek = await deriveKey(recipient.passphrase, newSalt);
554
+ const wrappedDeks = {};
555
+ for (const collName of Object.keys(permissions)) {
556
+ const dek = callerKeyring.deks.get(collName);
557
+ if (dek) {
558
+ wrappedDeks[collName] = await wrapKey(dek, newKek);
559
+ }
560
+ }
561
+ if (role === "owner" || role === "admin" || role === "custodian" || role === "viewer") {
562
+ for (const [collName, dek] of callerKeyring.deks) {
563
+ if (!(collName in wrappedDeks)) {
564
+ wrappedDeks[collName] = await wrapKey(dek, newKek);
565
+ }
566
+ }
567
+ }
568
+ for (const [collName, dek] of callerKeyring.deks) {
569
+ if (collName.startsWith("_") && !(collName in wrappedDeks)) {
570
+ wrappedDeks[collName] = await wrapKey(dek, newKek);
571
+ }
572
+ }
573
+ for (const collName of Object.keys(wrappedDeks)) {
574
+ if (!callerKeyring.deks.has(collName)) {
575
+ throw new PrivilegeEscalationError(collName);
576
+ }
577
+ }
578
+ const canary = await mintKeyringCanary(newKek);
579
+ return {
580
+ _noydb_keyring: NOYDB_KEYRING_VERSION,
581
+ user_id: recipient.id,
582
+ display_name: recipient.displayName ?? recipient.id,
583
+ role,
584
+ permissions,
585
+ deks: wrappedDeks,
586
+ salt: bufferToBase64(newSalt),
587
+ created_at: (/* @__PURE__ */ new Date()).toISOString(),
588
+ granted_by: callerKeyring.userId,
589
+ canary,
590
+ ...recipient.exportCapability !== void 0 ? { export_capability: recipient.exportCapability } : {},
591
+ ...recipient.importCapability !== void 0 ? { import_capability: recipient.importCapability } : {},
592
+ ...recipient.expiresAt !== void 0 ? { expires_at: recipient.expiresAt } : {}
593
+ };
594
+ }
595
+ async function listUsers(adapter, vault) {
596
+ const userIds = await adapter.list(vault, "_keyring");
597
+ const users = [];
598
+ for (const userId of userIds) {
599
+ const envelope = await adapter.get(vault, "_keyring", userId);
600
+ if (!envelope) continue;
601
+ const kf = JSON.parse(envelope._data);
602
+ users.push({
603
+ userId: kf.user_id,
604
+ displayName: kf.display_name,
605
+ role: kf.role,
606
+ permissions: kf.permissions,
607
+ createdAt: kf.created_at,
608
+ grantedBy: kf.granted_by
609
+ });
610
+ }
611
+ return users;
612
+ }
613
+ async function listUsersWithEnvelopes(adapter, vault, userEnvelopeDek, callerRole, options = {}) {
614
+ const isPrivileged = callerRole === "owner" || callerRole === "admin";
615
+ const dirConfig = await readDirectoryConfig(adapter, vault);
616
+ if (dirConfig?.enabled === false && !isPrivileged) {
617
+ throw new DirectoryDisabledError(vault);
618
+ }
619
+ if (options.includeHidden && !isPrivileged) {
620
+ throw new PermissionDeniedError(
621
+ "Permission denied \u2014 listUsersWithEnvelopes({ includeHidden: true }) requires owner or admin role"
622
+ );
623
+ }
624
+ const users = await listUsers(adapter, vault);
625
+ const out = [];
626
+ for (const user of users) {
627
+ if (!options.includeHidden) {
628
+ const visibility = await readUserVisibility(adapter, vault, user.userId);
629
+ if (visibility?.hidden) continue;
630
+ }
631
+ const envelope = await loadUserEnvelope(
632
+ adapter,
633
+ vault,
634
+ user.userId,
635
+ userEnvelopeDek
636
+ );
637
+ out.push({ user, envelope });
638
+ }
639
+ return out;
640
+ }
641
+ async function ensureCollectionDEK(adapter, vault, keyring) {
642
+ const inFlight = /* @__PURE__ */ new Map();
643
+ return async (collectionName) => {
644
+ const existing = keyring.deks.get(collectionName);
645
+ if (existing) return existing;
646
+ const pending = inFlight.get(collectionName);
647
+ if (pending) return pending;
648
+ const promise = (async () => {
649
+ const dek = await generateDEK();
650
+ keyring.deks.set(collectionName, dek);
651
+ await persistKeyring(adapter, vault, keyring);
652
+ return dek;
653
+ })();
654
+ inFlight.set(collectionName, promise);
655
+ try {
656
+ return await promise;
657
+ } finally {
658
+ inFlight.delete(collectionName);
659
+ }
660
+ };
661
+ }
662
+ function hasWritePermission(keyring, collectionName) {
663
+ if (keyring.role === "owner" || keyring.role === "admin" || keyring.role === "custodian") return true;
664
+ if (keyring.role === "viewer" || keyring.role === "client") return false;
665
+ return keyring.permissions[collectionName] === "rw";
666
+ }
667
+ function hasAccess(keyring, collectionName) {
668
+ if (keyring.role === "owner" || keyring.role === "admin" || keyring.role === "custodian" || keyring.role === "viewer")
669
+ return true;
670
+ return collectionName in keyring.permissions;
671
+ }
672
+ async function persistKeyring(adapter, vault, keyring) {
673
+ if (!keyring.kek) {
674
+ throw new ValidationError(
675
+ "persistKeyring: keyring.kek is null \u2014 cannot wrap DEKs without the KEK. This typically means the keyring was opened via tier-3 PIN resume, session restore, or a wrap-DEKs tier-2 unlock. Re-authenticate at tier 1 (passphrase) before persisting."
676
+ );
677
+ }
678
+ const wrappedDeks = {};
679
+ for (const [collName, dek] of keyring.deks) {
680
+ wrappedDeks[collName] = await wrapKey(dek, keyring.kek);
681
+ }
682
+ const canary = await mintKeyringCanary(keyring.kek);
683
+ const keyringFile = {
684
+ _noydb_keyring: NOYDB_KEYRING_VERSION,
685
+ user_id: keyring.userId,
686
+ display_name: keyring.displayName,
687
+ role: keyring.role,
688
+ permissions: keyring.permissions,
689
+ deks: wrappedDeks,
690
+ salt: bufferToBase64(keyring.salt),
691
+ created_at: (/* @__PURE__ */ new Date()).toISOString(),
692
+ granted_by: keyring.userId,
693
+ canary,
694
+ ...keyring.exportCapability !== void 0 && { export_capability: keyring.exportCapability },
695
+ ...keyring.importCapability !== void 0 && { import_capability: keyring.importCapability },
696
+ ...keyring.authenticators.length > 0 && { authenticators: keyring.authenticators },
697
+ ...keyring.policy !== void 0 && { policy: keyring.policy }
698
+ };
699
+ await writeKeyringFile(adapter, vault, keyring.userId, keyringFile);
700
+ }
701
+ function defaultBundleCapability(role) {
702
+ return role === "owner" || role === "admin";
703
+ }
704
+ function hasExportCapability(keyring, tier, format) {
705
+ const cap = keyring.exportCapability;
706
+ if (tier === "plaintext") {
707
+ const allowed = cap?.plaintext ?? [];
708
+ return allowed.includes("*") || format !== void 0 && allowed.includes(format);
709
+ }
710
+ return cap?.bundle ?? defaultBundleCapability(keyring.role);
711
+ }
712
+ function evaluateExportCapability(capability, role, tier, format) {
713
+ if (tier === "plaintext") {
714
+ const allowed = capability?.plaintext ?? [];
715
+ return allowed.includes("*") || format !== void 0 && allowed.includes(format);
716
+ }
717
+ return capability?.bundle ?? defaultBundleCapability(role);
718
+ }
719
+ function hasImportCapability(keyring, tier, format) {
720
+ const cap = keyring.importCapability;
721
+ if (tier === "plaintext") {
722
+ const allowed = cap?.plaintext ?? [];
723
+ return allowed.includes("*") || format !== void 0 && allowed.includes(format);
724
+ }
725
+ return cap?.bundle === true;
726
+ }
727
+ function evaluateImportCapability(capability, _role, tier, format) {
728
+ if (tier === "plaintext") {
729
+ const allowed = capability?.plaintext ?? [];
730
+ return allowed.includes("*") || format !== void 0 && allowed.includes(format);
731
+ }
732
+ return capability?.bundle === true;
733
+ }
734
+ function resolvePermissions(role, explicit) {
735
+ if (role === "owner" || role === "admin" || role === "custodian" || role === "viewer") return {};
736
+ return explicit ?? {};
737
+ }
738
+ async function writeKeyringFile(adapter, vault, userId, keyringFile) {
739
+ const envelope = {
740
+ _noydb: 1,
741
+ _v: 1,
742
+ _ts: (/* @__PURE__ */ new Date()).toISOString(),
743
+ _iv: "",
744
+ _data: JSON.stringify(keyringFile)
745
+ };
746
+ await adapter.put(vault, "_keyring", userId, envelope);
747
+ }
748
+
749
+ export {
750
+ WeakPassphraseError,
751
+ validatePassphrase,
752
+ assertStrongPassphrase,
753
+ estimateEntropy,
754
+ SYNC_CREDENTIALS_COLLECTION,
755
+ BROKER_COLLECTION,
756
+ isSecretBearingReservedCollection,
757
+ mintKeyringCanary,
758
+ loadKeyring,
759
+ assertKeyringOpenAllowed,
760
+ createOwnerKeyring,
761
+ grant,
762
+ revoke,
763
+ updateKeyringIdentity,
764
+ rotateKeys,
765
+ changeSecret,
766
+ buildRecipientKeyringFile,
767
+ listUsers,
768
+ listUsersWithEnvelopes,
769
+ ensureCollectionDEK,
770
+ hasWritePermission,
771
+ hasAccess,
772
+ persistKeyring,
773
+ hasExportCapability,
774
+ evaluateExportCapability,
775
+ hasImportCapability,
776
+ evaluateImportCapability
777
+ };
778
+ //# sourceMappingURL=chunk-J2ZX2XUV.js.map