@noy-db/hub 0.3.0-pre.8 → 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 (955) hide show
  1. package/dist/aggregate/index.js +9 -8
  2. package/dist/aggregate/index.js.map +1 -1
  3. package/dist/api-ZGS6LCOF.js +20 -0
  4. package/dist/as/index.js +11 -11
  5. package/dist/attestation/index.js +18 -18
  6. package/dist/backup-BJ57IKAO.js +242 -0
  7. package/dist/backup-BJ57IKAO.js.map +1 -0
  8. package/dist/blobs/index.js +13 -11
  9. package/dist/blobs/index.js.map +1 -1
  10. package/dist/broker/index.js +92 -0
  11. package/dist/broker/index.js.map +1 -0
  12. package/dist/bundle/index.js +25 -22
  13. package/dist/bundle/index.js.map +1 -1
  14. package/dist/by/index.js +2 -2
  15. package/dist/cargo/index.js +31 -31
  16. package/dist/chunk-2NVOWNI3.js +167 -0
  17. package/dist/chunk-2NVOWNI3.js.map +1 -0
  18. package/dist/chunk-3B5VVCNY.js +71 -0
  19. package/dist/chunk-3LQ2YKO4.js +230 -0
  20. package/dist/chunk-3QCRBHCY.js +54 -0
  21. package/dist/chunk-454JXE57.js +1697 -0
  22. package/dist/chunk-454JXE57.js.map +1 -0
  23. package/dist/chunk-4CTHCN4J.js +480 -0
  24. package/dist/chunk-4CTHCN4J.js.map +1 -0
  25. package/dist/chunk-4GPE63GU.js +111 -0
  26. package/dist/chunk-4GPE63GU.js.map +1 -0
  27. package/dist/chunk-4JBYV75E.js +150 -0
  28. package/dist/chunk-4NXKCLLQ.js +97 -0
  29. package/dist/chunk-4VNQOLML.js +29 -0
  30. package/dist/chunk-4VNQOLML.js.map +1 -0
  31. package/dist/chunk-5M5DVGV7.js +69 -0
  32. package/dist/chunk-5O3XF4DV.js +150 -0
  33. package/dist/chunk-5O3XF4DV.js.map +1 -0
  34. package/dist/chunk-5YOLBEQ6.js +30 -0
  35. package/dist/chunk-6CRIV7DE.js +129 -0
  36. package/dist/chunk-6JTIAGHD.js +621 -0
  37. package/dist/chunk-6JTIAGHD.js.map +1 -0
  38. package/dist/chunk-6QTNZJBS.js +255 -0
  39. package/dist/chunk-6T2SCQRU.js +86 -0
  40. package/dist/chunk-7DSTRQIJ.js +45 -0
  41. package/dist/chunk-AUSTCW2X.js +589 -0
  42. package/dist/chunk-B3HJYUOF.js +209 -0
  43. package/dist/chunk-BDVFPG6Y.js +164 -0
  44. package/dist/chunk-BIOUI4HL.js +1554 -0
  45. package/dist/chunk-BIOUI4HL.js.map +1 -0
  46. package/dist/chunk-CAF6WOK7.js +36 -0
  47. package/dist/chunk-CDUQTA3Z.js +381 -0
  48. package/dist/chunk-CDUQTA3Z.js.map +1 -0
  49. package/dist/chunk-CIE2BASH.js +404 -0
  50. package/dist/chunk-CRI4OUV4.js +42 -0
  51. package/dist/chunk-DLG74CNB.js +91 -0
  52. package/dist/chunk-E5ZQT5KX.js +30 -0
  53. package/dist/chunk-E5ZQT5KX.js.map +1 -0
  54. package/dist/chunk-EQO2UVP4.js +247 -0
  55. package/dist/chunk-EQO2UVP4.js.map +1 -0
  56. package/dist/chunk-ERJ7FU55.js +367 -0
  57. package/dist/chunk-EVVGJDRQ.js +205 -0
  58. package/dist/chunk-EVX47VBM.js +74 -0
  59. package/dist/chunk-EVX47VBM.js.map +1 -0
  60. package/dist/chunk-EXK7QRWF.js +59 -0
  61. package/dist/chunk-EYZ6IQ6X.js +202 -0
  62. package/dist/chunk-F64IRYG3.js +45 -0
  63. package/dist/chunk-FHS2HQSH.js +823 -0
  64. package/dist/chunk-FM3G3NOY.js +206 -0
  65. package/dist/chunk-FM3G3NOY.js.map +1 -0
  66. package/dist/chunk-FUG4SFN3.js +36 -0
  67. package/dist/chunk-FUG4SFN3.js.map +1 -0
  68. package/dist/chunk-GKEWXIV5.js +80 -0
  69. package/dist/chunk-GTGPO5KW.js +59 -0
  70. package/dist/chunk-HB3RFQSC.js +95 -0
  71. package/dist/chunk-HDMEGAQE.js +957 -0
  72. package/dist/chunk-HDMEGAQE.js.map +1 -0
  73. package/dist/chunk-HDQIIUPH.js +135 -0
  74. package/dist/chunk-HDQIIUPH.js.map +1 -0
  75. package/dist/chunk-HTJQYHZP.js +344 -0
  76. package/dist/chunk-HTJQYHZP.js.map +1 -0
  77. package/dist/chunk-I6GALP6E.js +99 -0
  78. package/dist/chunk-IGJCYUT5.js +99 -0
  79. package/dist/chunk-IGJCYUT5.js.map +1 -0
  80. package/dist/chunk-IL6POWCW.js +130 -0
  81. package/dist/chunk-IU6SNYX6.js +117 -0
  82. package/dist/chunk-J2ZX2XUV.js +778 -0
  83. package/dist/chunk-JIF24JPM.js +495 -0
  84. package/dist/chunk-JIF24JPM.js.map +1 -0
  85. package/dist/chunk-JK733I5V.js +23 -0
  86. package/dist/chunk-JK733I5V.js.map +1 -0
  87. package/dist/chunk-JKJOGPZN.js +29 -0
  88. package/dist/chunk-JNAI2HN2.js +32 -0
  89. package/dist/chunk-JNAI2HN2.js.map +1 -0
  90. package/dist/chunk-JZUV47FZ.js +41 -0
  91. package/dist/chunk-K5IMOGHB.js +30 -0
  92. package/dist/chunk-KPZS5QAQ.js +151 -0
  93. package/dist/chunk-KPZS5QAQ.js.map +1 -0
  94. package/dist/chunk-KSKBRKGJ.js +291 -0
  95. package/dist/chunk-KSKBRKGJ.js.map +1 -0
  96. package/dist/chunk-LASZKVMO.js +382 -0
  97. package/dist/chunk-LXEXBTKL.js +515 -0
  98. package/dist/chunk-LXEXBTKL.js.map +1 -0
  99. package/dist/chunk-M4CV6BRT.js +524 -0
  100. package/dist/chunk-M4CV6BRT.js.map +1 -0
  101. package/dist/chunk-MEFJPTZ4.js +371 -0
  102. package/dist/chunk-MEFJPTZ4.js.map +1 -0
  103. package/dist/chunk-MV43JSJF.js +265 -0
  104. package/dist/chunk-MV43JSJF.js.map +1 -0
  105. package/dist/chunk-NJ4EOKMB.js +392 -0
  106. package/dist/chunk-NJ4EOKMB.js.map +1 -0
  107. package/dist/chunk-NR5LT5RY.js +135 -0
  108. package/dist/chunk-NWSGI5C7.js +261 -0
  109. package/dist/chunk-NWSGI5C7.js.map +1 -0
  110. package/dist/chunk-OSDB5WW3.js +739 -0
  111. package/dist/chunk-OSDB5WW3.js.map +1 -0
  112. package/dist/chunk-PN2XMATY.js +37 -0
  113. package/dist/chunk-PN2XMATY.js.map +1 -0
  114. package/dist/chunk-Q5VNKNE5.js +70 -0
  115. package/dist/chunk-QLWMEXCT.js +21 -0
  116. package/dist/chunk-QRB7NAOJ.js +123 -0
  117. package/dist/chunk-R4ROFEYC.js +74 -0
  118. package/dist/chunk-RCVJZMFE.js +164 -0
  119. package/dist/chunk-RCVJZMFE.js.map +1 -0
  120. package/dist/chunk-RIX4V2TB.js +367 -0
  121. package/dist/chunk-RYCTDFUX.js +40 -0
  122. package/dist/chunk-RZ5SVOYR.js +155 -0
  123. package/dist/chunk-SLFHQTTW.js +99 -0
  124. package/dist/chunk-SNZ6URZZ.js +2782 -0
  125. package/dist/chunk-SNZ6URZZ.js.map +1 -0
  126. package/dist/chunk-T2FFWNPK.js +75 -0
  127. package/dist/chunk-T2FFWNPK.js.map +1 -0
  128. package/dist/chunk-UNFPPVNI.js +23 -0
  129. package/dist/chunk-VFUPHI2Z.js +333 -0
  130. package/dist/chunk-VFUPHI2Z.js.map +1 -0
  131. package/dist/chunk-VLFCJYTL.js +235 -0
  132. package/dist/chunk-VN3DBQAU.js +124 -0
  133. package/dist/chunk-VYYM3MEN.js +98 -0
  134. package/dist/chunk-VYYM3MEN.js.map +1 -0
  135. package/dist/chunk-VZRODIM3.js +49 -0
  136. package/dist/chunk-W22IKJE2.js +94 -0
  137. package/dist/chunk-X3YYQWOQ.js +155 -0
  138. package/dist/chunk-X7QBD67R.js +14405 -0
  139. package/dist/chunk-X7QBD67R.js.map +1 -0
  140. package/dist/chunk-XDYREZWE.js +1128 -0
  141. package/dist/chunk-XDYREZWE.js.map +1 -0
  142. package/dist/chunk-XWZVFISC.js +720 -0
  143. package/dist/chunk-XWZVFISC.js.map +1 -0
  144. package/dist/chunk-YFXZEAYK.js +85 -0
  145. package/dist/chunk-ZAJAVEXY.js +50 -0
  146. package/dist/chunk-ZICD77GM.js +34 -0
  147. package/dist/chunk-ZJ2AK4V7.js +38 -0
  148. package/dist/chunk-ZJ2AK4V7.js.map +1 -0
  149. package/dist/chunk-ZUODRVHY.js +14 -0
  150. package/dist/classified/index.js +5 -3
  151. package/dist/classified-marker-CZKA6ITE.js +28 -0
  152. package/dist/classified-marker-CZKA6ITE.js.map +1 -0
  153. package/dist/collection-facade-TLWIPI76.js +44 -0
  154. package/dist/computed-ZIQTYTDI.js +11 -0
  155. package/dist/consent/index.js +9 -9
  156. package/dist/crdt/index.js +1 -1
  157. package/dist/dead-filter-ESOBZZP5.js +28 -0
  158. package/dist/delegation-W7ZV2322.js +25 -0
  159. package/dist/derivations/index.js +12 -11
  160. package/dist/derive-H2BJTLUI.js +21 -0
  161. package/dist/enclave-AP3I5W7O.js +141 -0
  162. package/dist/executor-KGWTNEQD.js +9 -0
  163. package/dist/executor-OVEXR6RT.js +9 -0
  164. package/dist/executor-UNEH5ZYH.js +25 -0
  165. package/dist/export-accessible-PCMXSUZS.js +23 -0
  166. package/dist/extract-partition-SWHFSYJO.js +38 -0
  167. package/dist/fanout-sidecar-A765THMX.js +74 -0
  168. package/dist/find-N6345CNT.js +11 -0
  169. package/dist/forget/index.js +10 -10
  170. package/dist/forget/index.js.map +1 -1
  171. package/dist/guards/index.js +6 -6
  172. package/dist/history/index.js +14 -11
  173. package/dist/history/index.js.map +1 -1
  174. package/dist/i18n/index.js +50 -37
  175. package/dist/i18n/index.js.map +1 -1
  176. package/dist/index.d.ts +307 -1459
  177. package/dist/index.js +595 -198
  178. package/dist/index.js.map +1 -1
  179. package/dist/indexing/index.js +7 -7
  180. package/dist/indexing/index.js.map +1 -1
  181. package/dist/issue-5OKB6I2R.js +19 -0
  182. package/dist/kernel/best-effort-revert.d.ts +52 -0
  183. package/dist/kernel/cache/index.d.ts +10 -0
  184. package/dist/kernel/cache/lru.d.ts +97 -0
  185. package/dist/kernel/cache/policy.d.ts +32 -0
  186. package/dist/kernel/collection-config.d.ts +809 -0
  187. package/dist/kernel/collection.d.ts +1522 -0
  188. package/dist/kernel/constants.d.ts +18 -0
  189. package/dist/kernel/debug.d.ts +25 -0
  190. package/dist/kernel/enclave/broker/proof.d.ts +154 -0
  191. package/dist/kernel/enclave/classify/bidx.d.ts +77 -0
  192. package/dist/kernel/enclave/classify/compare.d.ts +10 -0
  193. package/dist/kernel/enclave/classify/digest.d.ts +8 -0
  194. package/dist/kernel/enclave/classify/find.d.ts +36 -0
  195. package/dist/kernel/enclave/classify/kofn.d.ts +7 -0
  196. package/dist/kernel/enclave/classify/normalize.d.ts +7 -0
  197. package/dist/kernel/enclave/classify/reveal.d.ts +10 -0
  198. package/dist/kernel/enclave/classify/vdig.d.ts +39 -0
  199. package/dist/kernel/enclave/classify/verify.d.ts +36 -0
  200. package/dist/kernel/enclave/classify/write.d.ts +8 -0
  201. package/dist/kernel/enclave/crypto.d.ts +263 -0
  202. package/dist/kernel/enclave/index.d.ts +79 -0
  203. package/dist/kernel/enclave/record-keys/deterministic.d.ts +55 -0
  204. package/dist/kernel/enclave/record-keys/envelope-body.d.ts +79 -0
  205. package/dist/kernel/enclave/record-keys/lifecycle.d.ts +107 -0
  206. package/dist/kernel/enclave/record-keys/record-codec.d.ts +328 -0
  207. package/dist/kernel/enclave/record-keys/sealed-slot.d.ts +14 -0
  208. package/dist/kernel/enclave/record-keys/sealed-slots.d.ts +123 -0
  209. package/dist/kernel/enclave/record-keys/sealing.d.ts +70 -0
  210. package/dist/kernel/enclave/record-keys/tombstone.d.ts +57 -0
  211. package/dist/kernel/env-check.d.ts +1 -0
  212. package/dist/kernel/errors.d.ts +1922 -0
  213. package/dist/kernel/events.d.ts +11 -0
  214. package/dist/kernel/lazy-count.d.ts +13 -0
  215. package/dist/kernel/memory-store.d.ts +17 -0
  216. package/dist/kernel/mutation.d.ts +14 -0
  217. package/dist/kernel/noydb.d.ts +826 -0
  218. package/dist/kernel/paths.d.ts +25 -0
  219. package/dist/kernel/query/builder.d.ts +520 -0
  220. package/dist/kernel/query/index.d.ts +31 -0
  221. package/dist/kernel/query/join.d.ts +205 -0
  222. package/dist/kernel/query/live.d.ts +111 -0
  223. package/dist/kernel/query/predicate.d.ts +139 -0
  224. package/dist/kernel/query/scan-builder.d.ts +334 -0
  225. package/dist/kernel/refs.d.ts +205 -0
  226. package/dist/kernel/schema.d.ts +134 -0
  227. package/dist/kernel/sync-policy.d.ts +188 -0
  228. package/dist/kernel/tier-visibility.d.ts +54 -0
  229. package/dist/kernel/types.d.ts +3239 -0
  230. package/dist/kernel/util/discriminant.d.ts +58 -0
  231. package/dist/kernel/util/index.d.ts +14 -0
  232. package/dist/kernel/util/sanitize-filename.d.ts +75 -0
  233. package/dist/kernel/validation.d.ts +130 -0
  234. package/dist/kernel/vault.d.ts +1740 -0
  235. package/dist/kernel/via/compose.d.ts +144 -0
  236. package/dist/kernel/via/dispatch.d.ts +195 -0
  237. package/dist/kernel/via/graph-wiring.d.ts +145 -0
  238. package/dist/kernel/via/graph.d.ts +166 -0
  239. package/dist/kernel/via/index.d.ts +200 -0
  240. package/dist/kernel/via/pipeline.d.ts +266 -0
  241. package/dist/kernel/via/reconcile.d.ts +153 -0
  242. package/dist/kernel/via/taint-binding.d.ts +66 -0
  243. package/dist/kernel/write-queue.d.ts +46 -0
  244. package/dist/ledger-GFBKVPV4.js +42 -0
  245. package/dist/legacy/bundle.d.ts +30 -0
  246. package/dist/legacy/kernel.d.ts +33 -0
  247. package/dist/liberate-3VDOT4KO.js +24 -0
  248. package/dist/link-set-Z7Q2ASFX.js +31 -0
  249. package/dist/materialized-views/index.js +19 -15
  250. package/dist/noydb-ZCJOYBDI.js +68 -0
  251. package/dist/on/index.js +9 -9
  252. package/dist/overlay-views/index.js +4 -4
  253. package/dist/periods/index.js +12 -12
  254. package/dist/pod/index.js +11 -11
  255. package/dist/policy-Z3RUAIY2.js +41 -0
  256. package/dist/port/as/index.d.ts +26 -0
  257. package/dist/port/at/index.d.ts +18 -0
  258. package/dist/port/by/default-provider.d.ts +9 -0
  259. package/dist/port/by/index.d.ts +17 -0
  260. package/dist/port/by/types.d.ts +86 -0
  261. package/dist/port/in/index.d.ts +21 -0
  262. package/dist/port/on/index.d.ts +27 -0
  263. package/dist/port/to/index.d.ts +19 -0
  264. package/dist/port/ui/index.d.ts +21 -0
  265. package/dist/port/with/blob-strategy.d.ts +98 -0
  266. package/dist/port/with/broker-strategy.d.ts +84 -0
  267. package/dist/port/with/capabilities.d.ts +31 -0
  268. package/dist/port/with/classified-marker.d.ts +9 -0
  269. package/dist/port/with/classified-strategy.d.ts +62 -0
  270. package/dist/port/with/computed-strategy.d.ts +19 -0
  271. package/dist/port/with/i18n-strategy.d.ts +175 -0
  272. package/dist/port/with/index.d.ts +18 -0
  273. package/dist/port/with/lazy-strategy.d.ts +48 -0
  274. package/dist/port/with/lookup-strategy.d.ts +129 -0
  275. package/dist/port/with/service-bus.d.ts +156 -0
  276. package/dist/port/with/team-strategy.d.ts +36 -0
  277. package/dist/port/with/write-hooks.d.ts +34 -0
  278. package/dist/portability/index.js +8 -8
  279. package/dist/post-register-JTH76BLY.js +60 -0
  280. package/dist/post-register-JTH76BLY.js.map +1 -0
  281. package/dist/public-envelope-B4KNWVUA.js +32 -0
  282. package/dist/purge-scope-FGNNLWHD.js +24 -0
  283. package/dist/purge-scope-FGNNLWHD.js.map +1 -0
  284. package/dist/query/index.js +9 -6
  285. package/dist/read-only-facade-CHCKSEPD.js +8 -0
  286. package/dist/register-VAHONCID.js +23 -0
  287. package/dist/registry-7MLVD3VO.js +19 -0
  288. package/dist/registry-EPKPD5SM.js +18 -0
  289. package/dist/registry-P5T7PS2U.js +9 -0
  290. package/dist/request-withdrawal-TI3A5WPS.js +31 -0
  291. package/dist/reveal-DIBHLUZX.js +38 -0
  292. package/dist/reveal-DIBHLUZX.js.map +1 -0
  293. package/dist/revoke-FDRD6GRW.js +24 -0
  294. package/dist/satellites/index.js +1 -1
  295. package/dist/sealed-record/index.js +12 -12
  296. package/dist/seed-Q6M2IZFL.js +231 -0
  297. package/dist/seed-Q6M2IZFL.js.map +1 -0
  298. package/dist/session/index.js +9 -9
  299. package/dist/shadow/index.js +2 -2
  300. package/dist/signer-MUWEIUI6.js +25 -0
  301. package/dist/snapshots/index.js +10 -10
  302. package/dist/stale-OSQ7J3AA.js +29 -0
  303. package/dist/storage-MVFCGEQE.js +23 -0
  304. package/dist/store-coordination-provider-64OEZFGS.js +142 -0
  305. package/dist/sync/index.js +9 -9
  306. package/dist/team/index.js +15 -15
  307. package/dist/tiers/index.js +14 -10
  308. package/dist/to/index.js +1 -2
  309. package/dist/tx/index.js +3 -3
  310. package/dist/util/index.js +1 -1
  311. package/dist/verify-ZASTRNPR.js +140 -0
  312. package/dist/verify-ZASTRNPR.js.map +1 -0
  313. package/dist/via/blob/active.d.ts +34 -0
  314. package/dist/via/blob/binding.d.ts +86 -0
  315. package/dist/via/blob/index.d.ts +34 -0
  316. package/dist/via/classified/active.d.ts +3 -0
  317. package/dist/via/classified/binding.d.ts +83 -0
  318. package/dist/via/classified/config-drift.d.ts +34 -0
  319. package/dist/via/classified/descriptor.d.ts +66 -0
  320. package/dist/via/classified/errors.d.ts +19 -0
  321. package/dist/via/classified/guards.d.ts +23 -0
  322. package/dist/via/classified/index.d.ts +11 -0
  323. package/dist/via/classified/presets.d.ts +65 -0
  324. package/dist/via/classified/resolve.d.ts +9 -0
  325. package/dist/via/classified/strategy.d.ts +11 -0
  326. package/dist/via/classified/validators.d.ts +3 -0
  327. package/dist/via/classified/write.d.ts +4 -0
  328. package/dist/via/computed/binding.d.ts +34 -0
  329. package/dist/via/computed/descriptor.d.ts +35 -0
  330. package/dist/via/i18n/active.d.ts +28 -0
  331. package/dist/via/i18n/binding.d.ts +36 -0
  332. package/dist/via/i18n/core.d.ts +267 -0
  333. package/dist/via/i18n/densify.d.ts +24 -0
  334. package/dist/via/i18n/dictionary.d.ts +200 -0
  335. package/dist/via/i18n/index.d.ts +21 -0
  336. package/dist/via/i18n/policy.d.ts +44 -0
  337. package/dist/via/i18n/script.d.ts +26 -0
  338. package/dist/via/i18n/strategy.d.ts +13 -0
  339. package/dist/via/lookup/active.d.ts +19 -0
  340. package/dist/via/lookup/binding.d.ts +99 -0
  341. package/dist/via/lookup/descriptor.d.ts +123 -0
  342. package/dist/via/lookup/handle.d.ts +220 -0
  343. package/dist/via/lookup/index.d.ts +17 -0
  344. package/dist/via/lookup/registry.d.ts +228 -0
  345. package/dist/via/lookup/snapshot.d.ts +67 -0
  346. package/dist/via/money/arith.d.ts +68 -0
  347. package/dist/via/money/binding.d.ts +21 -0
  348. package/dist/via/money/branded.d.ts +61 -0
  349. package/dist/via/money/descriptor.d.ts +73 -0
  350. package/dist/via/money/fixed-point.d.ts +51 -0
  351. package/dist/via/money/index.d.ts +15 -0
  352. package/dist/via/money/iso4217.d.ts +6 -0
  353. package/dist/via/money/money-reducer.d.ts +33 -0
  354. package/dist/via/money/normalize.d.ts +105 -0
  355. package/dist/via/money/paths.d.ts +61 -0
  356. package/dist/via/money/where.d.ts +127 -0
  357. package/dist/walk-SVNDIZ62.js +241 -0
  358. package/dist/with/index.js +11 -11
  359. package/dist/with-audit/attestation/active.d.ts +10 -0
  360. package/dist/with-audit/attestation/index.d.ts +16 -0
  361. package/dist/with-audit/attestation/issue.d.ts +29 -0
  362. package/dist/with-audit/attestation/revoke.d.ts +15 -0
  363. package/dist/with-audit/attestation/signer.d.ts +33 -0
  364. package/dist/with-audit/attestation/strategy.d.ts +44 -0
  365. package/dist/with-audit/attestation/vault-facade.d.ts +62 -0
  366. package/dist/with-audit/consent/active.d.ts +14 -0
  367. package/dist/with-audit/consent/consent.d.ts +114 -0
  368. package/dist/with-audit/consent/index.d.ts +14 -0
  369. package/dist/with-audit/consent/strategy.d.ts +36 -0
  370. package/dist/with-audit/forget/active.d.ts +31 -0
  371. package/dist/with-audit/forget/index.d.ts +28 -0
  372. package/dist/with-audit/forget/purge-scope.d.ts +54 -0
  373. package/dist/with-audit/forget/strategy.d.ts +199 -0
  374. package/dist/with-audit/forget/subject-index.d.ts +83 -0
  375. package/dist/with-audit/guards/executor.d.ts +26 -0
  376. package/dist/with-audit/guards/immutable-guard.d.ts +63 -0
  377. package/dist/with-audit/guards/index.d.ts +10 -0
  378. package/dist/with-audit/guards/read-only-facade.d.ts +31 -0
  379. package/dist/with-audit/guards/registry.d.ts +83 -0
  380. package/dist/with-audit/guards/transition-guard.d.ts +82 -0
  381. package/dist/with-audit/guards/types.d.ts +134 -0
  382. package/dist/with-audit/guards/with-guard.d.ts +15 -0
  383. package/dist/with-audit/periods/active.d.ts +11 -0
  384. package/dist/with-audit/periods/index.d.ts +18 -0
  385. package/dist/with-audit/periods/periods.d.ts +417 -0
  386. package/dist/with-audit/periods/strategy.d.ts +32 -0
  387. package/dist/with-audit/periods/vault-facade.d.ts +95 -0
  388. package/dist/with-audit/portability/active.d.ts +11 -0
  389. package/dist/with-audit/portability/export-accessible.d.ts +46 -0
  390. package/dist/with-audit/portability/index.d.ts +18 -0
  391. package/dist/with-audit/portability/request-withdrawal.d.ts +85 -0
  392. package/dist/with-audit/portability/strategy.d.ts +31 -0
  393. package/dist/with-audit/portability/withdraw-accessible.d.ts +82 -0
  394. package/dist/with-audit/sealed-record/active.d.ts +9 -0
  395. package/dist/with-audit/sealed-record/index.d.ts +55 -0
  396. package/dist/with-audit/sealed-record/strategy.d.ts +34 -0
  397. package/dist/with-audit/sealed-record/types.d.ts +27 -0
  398. package/dist/with-audit/tiers/active.d.ts +9 -0
  399. package/dist/with-audit/tiers/index.d.ts +394 -0
  400. package/dist/with-audit/tiers/strategy.d.ts +36 -0
  401. package/dist/with-cargo/active.d.ts +11 -0
  402. package/dist/with-cargo/adopt-partition.d.ts +81 -0
  403. package/dist/with-cargo/decrypt-partition.d.ts +19 -0
  404. package/dist/with-cargo/describe-extraction.d.ts +41 -0
  405. package/dist/with-cargo/extract-partition.d.ts +155 -0
  406. package/dist/with-cargo/index.d.ts +33 -0
  407. package/dist/with-cargo/strategy.d.ts +30 -0
  408. package/dist/with-cargo/vault-diff.d.ts +144 -0
  409. package/dist/with-cargo/walk-closure.d.ts +67 -0
  410. package/dist/with-commit/crdt/active.d.ts +25 -0
  411. package/dist/with-commit/crdt/crdt.d.ts +42 -0
  412. package/dist/with-commit/crdt/index.d.ts +16 -0
  413. package/dist/with-commit/crdt/strategy.d.ts +25 -0
  414. package/dist/with-commit/history/active.d.ts +40 -0
  415. package/dist/with-commit/history/diff.d.ts +23 -0
  416. package/dist/with-commit/history/history.d.ts +73 -0
  417. package/dist/with-commit/history/index.d.ts +30 -0
  418. package/dist/with-commit/history/ledger/constants.d.ts +37 -0
  419. package/dist/with-commit/history/ledger/entry.d.ts +195 -0
  420. package/dist/with-commit/history/ledger/hash.d.ts +30 -0
  421. package/dist/with-commit/history/ledger/index.d.ts +19 -0
  422. package/dist/with-commit/history/ledger/patch.d.ts +99 -0
  423. package/dist/with-commit/history/ledger/store.d.ts +356 -0
  424. package/dist/with-commit/history/strategy.d.ts +136 -0
  425. package/dist/with-commit/history/time-machine.d.ts +202 -0
  426. package/dist/with-commit/numbering/descriptor.d.ts +27 -0
  427. package/dist/with-commit/numbering/index.d.ts +69 -0
  428. package/dist/with-commit/sequence/active.d.ts +10 -0
  429. package/dist/with-commit/sequence/index.d.ts +150 -0
  430. package/dist/with-commit/sequence/strategy.d.ts +26 -0
  431. package/dist/with-commit/tx/active.d.ts +27 -0
  432. package/dist/with-commit/tx/dry-run.d.ts +29 -0
  433. package/dist/with-commit/tx/elevated-handle.d.ts +59 -0
  434. package/dist/with-commit/tx/index.d.ts +13 -0
  435. package/dist/with-commit/tx/invariants.d.ts +68 -0
  436. package/dist/with-commit/tx/strategy.d.ts +23 -0
  437. package/dist/with-commit/tx/transaction.d.ts +212 -0
  438. package/dist/with-fork/archive/engine.d.ts +71 -0
  439. package/dist/with-fork/archive/index.d.ts +23 -0
  440. package/dist/with-fork/shadow/active.d.ts +6 -0
  441. package/dist/with-fork/shadow/index.d.ts +14 -0
  442. package/dist/with-fork/shadow/strategy.d.ts +28 -0
  443. package/dist/with-fork/shadow/vault-frame.d.ts +93 -0
  444. package/dist/with-fork/snapshots/active.d.ts +20 -0
  445. package/dist/with-fork/snapshots/engine.d.ts +36 -0
  446. package/dist/with-fork/snapshots/index.d.ts +5 -0
  447. package/dist/with-fork/snapshots/noydb-facade.d.ts +64 -0
  448. package/dist/with-fork/snapshots/policy.d.ts +23 -0
  449. package/dist/with-fork/snapshots/scheduler.d.ts +34 -0
  450. package/dist/with-fork/snapshots/strategy.d.ts +48 -0
  451. package/dist/with-formula/computed/index.d.ts +48 -0
  452. package/dist/with-formula/computed/lazy.d.ts +13 -0
  453. package/dist/with-formula/derivations/executor.d.ts +61 -0
  454. package/dist/with-formula/derivations/fanout-sidecar.d.ts +75 -0
  455. package/dist/with-formula/derivations/index.d.ts +6 -0
  456. package/dist/with-formula/derivations/registry.d.ts +67 -0
  457. package/dist/with-formula/derivations/stale.d.ts +39 -0
  458. package/dist/with-formula/derivations/strategy-hash.d.ts +1 -0
  459. package/dist/with-formula/derivations/types.d.ts +248 -0
  460. package/dist/with-formula/derivations/with-derivation.d.ts +10 -0
  461. package/dist/with-formula/derivations/with-rollup.d.ts +34 -0
  462. package/dist/with-formula/materialized-views/dependency-analyzer.d.ts +58 -0
  463. package/dist/with-formula/materialized-views/executor.d.ts +80 -0
  464. package/dist/with-formula/materialized-views/index.d.ts +11 -0
  465. package/dist/with-formula/materialized-views/query-hash.d.ts +23 -0
  466. package/dist/with-formula/materialized-views/registry.d.ts +99 -0
  467. package/dist/with-formula/materialized-views/stale.d.ts +113 -0
  468. package/dist/with-formula/materialized-views/types.d.ts +318 -0
  469. package/dist/with-formula/materialized-views/with-materialized-view.d.ts +24 -0
  470. package/dist/with-formula/overlay-views/index.d.ts +5 -0
  471. package/dist/with-formula/overlay-views/registry.d.ts +42 -0
  472. package/dist/with-formula/overlay-views/types.d.ts +97 -0
  473. package/dist/with-formula/overlay-views/virtual-collection.d.ts +90 -0
  474. package/dist/with-formula/overlay-views/with-overlayed-view.d.ts +9 -0
  475. package/dist/with-lookup/aggregate/active.d.ts +33 -0
  476. package/dist/with-lookup/aggregate/aggregation.d.ts +166 -0
  477. package/dist/with-lookup/aggregate/canonical-key.d.ts +16 -0
  478. package/dist/with-lookup/aggregate/groupby.d.ts +280 -0
  479. package/dist/with-lookup/aggregate/index.d.ts +23 -0
  480. package/dist/with-lookup/aggregate/reducers.d.ts +257 -0
  481. package/dist/with-lookup/aggregate/strategy.d.ts +59 -0
  482. package/dist/with-lookup/embeddings/cosine.d.ts +2 -0
  483. package/dist/with-lookup/embeddings/descriptor.d.ts +8 -0
  484. package/dist/with-lookup/embeddings/index.d.ts +4 -0
  485. package/dist/with-lookup/embeddings/vec-id.d.ts +47 -0
  486. package/dist/with-lookup/embeddings/vector-set.d.ts +19 -0
  487. package/dist/with-lookup/indexing/active.d.ts +30 -0
  488. package/dist/with-lookup/indexing/collection-facade.d.ts +157 -0
  489. package/dist/with-lookup/indexing/eager-indexes.d.ts +122 -0
  490. package/dist/with-lookup/indexing/index.d.ts +27 -0
  491. package/dist/with-lookup/indexing/lazy-builder.d.ts +102 -0
  492. package/dist/with-lookup/indexing/persisted-indexes.d.ts +229 -0
  493. package/dist/with-lookup/indexing/strategy.d.ts +56 -0
  494. package/dist/with-lookup/indexing/unique-constraints.d.ts +74 -0
  495. package/dist/with-lookup/search/active.d.ts +10 -0
  496. package/dist/with-lookup/search/build-docs.d.ts +15 -0
  497. package/dist/with-lookup/search/collection-facade.d.ts +163 -0
  498. package/dist/with-lookup/search/fuse.d.ts +22 -0
  499. package/dist/with-lookup/search/index-store.d.ts +19 -0
  500. package/dist/with-lookup/search/index.d.ts +19 -0
  501. package/dist/with-lookup/search/inverted-index.d.ts +47 -0
  502. package/dist/with-lookup/search/persisted-index-store.d.ts +121 -0
  503. package/dist/with-lookup/search/retrieve-types.d.ts +29 -0
  504. package/dist/with-lookup/search/scan.d.ts +28 -0
  505. package/dist/with-lookup/search/segment.d.ts +15 -0
  506. package/dist/with-lookup/search/serialize.d.ts +4 -0
  507. package/dist/with-lookup/search/snippet.d.ts +5 -0
  508. package/dist/with-lookup/search/strategy.d.ts +41 -0
  509. package/dist/with-lookup/search/tokenize.d.ts +12 -0
  510. package/dist/with-party/auth-introspection/index.d.ts +44 -0
  511. package/dist/with-party/broker/active.d.ts +23 -0
  512. package/dist/with-party/broker/index.d.ts +28 -0
  513. package/dist/with-party/broker/seed.d.ts +77 -0
  514. package/dist/with-party/custody/active.d.ts +10 -0
  515. package/dist/with-party/custody/index.d.ts +69 -0
  516. package/dist/with-party/custody/liberate.d.ts +64 -0
  517. package/dist/with-party/custody/strategy.d.ts +48 -0
  518. package/dist/with-party/directory/index.d.ts +11 -0
  519. package/dist/with-party/directory/public-envelope/index.d.ts +12 -0
  520. package/dist/with-party/directory/public-envelope/schema.d.ts +24 -0
  521. package/dist/with-party/directory/public-envelope/storage.d.ts +59 -0
  522. package/dist/with-party/directory/public-envelope/types.d.ts +80 -0
  523. package/dist/with-party/directory/storage.d.ts +33 -0
  524. package/dist/with-party/directory/types.d.ts +43 -0
  525. package/dist/with-party/directory/user-envelope/api.d.ts +201 -0
  526. package/dist/with-party/directory/user-envelope/index.d.ts +12 -0
  527. package/dist/with-party/directory/user-envelope/storage.d.ts +54 -0
  528. package/dist/with-party/directory/visibility.d.ts +47 -0
  529. package/dist/with-party/policy/engine.d.ts +60 -0
  530. package/dist/with-party/policy/index.d.ts +15 -0
  531. package/dist/with-party/policy/noydb-facade.d.ts +39 -0
  532. package/dist/with-party/policy/presets.d.ts +38 -0
  533. package/dist/with-party/policy/storage.d.ts +31 -0
  534. package/dist/with-party/session/active.d.ts +34 -0
  535. package/dist/with-party/session/dev-unlock.d.ts +128 -0
  536. package/dist/with-party/session/index.d.ts +23 -0
  537. package/dist/with-party/session/session-policy.d.ts +92 -0
  538. package/dist/with-party/session/session.d.ts +131 -0
  539. package/dist/with-party/session/strategy.d.ts +42 -0
  540. package/dist/with-party/session/unlock-state.d.ts +47 -0
  541. package/dist/with-party/sync/index.d.ts +31 -0
  542. package/dist/with-party/tab-coordination.d.ts +73 -0
  543. package/dist/with-party/tab-write-relay.d.ts +39 -0
  544. package/dist/with-party/team/active.d.ts +13 -0
  545. package/dist/with-party/team/authenticators.d.ts +95 -0
  546. package/dist/with-party/team/deed.d.ts +97 -0
  547. package/dist/with-party/team/delegation.d.ts +88 -0
  548. package/dist/with-party/team/index.d.ts +38 -0
  549. package/dist/with-party/team/keyring.d.ts +318 -0
  550. package/dist/with-party/team/magic-link-grant.d.ts +152 -0
  551. package/dist/with-party/team/managed-passphrase.d.ts +280 -0
  552. package/dist/with-party/team/noydb-facade.d.ts +484 -0
  553. package/dist/with-party/team/peer-recover.d.ts +81 -0
  554. package/dist/with-party/team/presence.d.ts +81 -0
  555. package/dist/with-party/team/recovery.d.ts +191 -0
  556. package/dist/with-party/team/reserved-secret-collections.d.ts +41 -0
  557. package/dist/with-party/team/rotate-recover.d.ts +275 -0
  558. package/dist/with-party/team/shamir-recovery-provider.d.ts +15 -0
  559. package/dist/with-party/team/strategy.d.ts +9 -0
  560. package/dist/with-party/team/sync-active.d.ts +33 -0
  561. package/dist/with-party/team/sync-credentials.d.ts +113 -0
  562. package/dist/with-party/team/sync-strategy.d.ts +67 -0
  563. package/dist/with-party/team/sync-transaction.d.ts +39 -0
  564. package/dist/with-party/team/sync.d.ts +174 -0
  565. package/dist/with-party/team/tiers.d.ts +39 -0
  566. package/dist/with-party/team/wrapped-deks.d.ts +86 -0
  567. package/dist/with-pod/backup.d.ts +74 -0
  568. package/dist/with-pod/bundle.d.ts +414 -0
  569. package/dist/with-pod/format.d.ts +203 -0
  570. package/dist/with-pod/index.d.ts +20 -0
  571. package/dist/with-pod/pod-store.d.ts +54 -0
  572. package/dist/with-pod/ulid.d.ts +64 -0
  573. package/dist/with-shape/blobs/blob-compaction.d.ts +170 -0
  574. package/dist/with-shape/blobs/blob-intent.d.ts +153 -0
  575. package/dist/with-shape/blobs/blob-set.d.ts +1286 -0
  576. package/dist/with-shape/blobs/export-blobs.d.ts +110 -0
  577. package/dist/with-shape/blobs/import-external.d.ts +50 -0
  578. package/dist/with-shape/blobs/mime-magic.d.ts +48 -0
  579. package/dist/with-shape/blobs/object-projection.d.ts +70 -0
  580. package/dist/with-shape/introspection/describe.d.ts +237 -0
  581. package/dist/with-shape/introspection/field-meta.d.ts +61 -0
  582. package/dist/with-shape/introspection/fields.d.ts +14 -0
  583. package/dist/with-shape/introspection/index.d.ts +12 -0
  584. package/dist/with-shape/introspection/json-schema.d.ts +13 -0
  585. package/dist/with-shape/introspection/meta.d.ts +22 -0
  586. package/dist/with-shape/introspection/projection.d.ts +13 -0
  587. package/dist/with-shape/introspection/types.d.ts +154 -0
  588. package/dist/with-shape/introspection/walk.d.ts +50 -0
  589. package/dist/with-shape/links/lazy-handle.d.ts +36 -0
  590. package/dist/with-shape/links/link-set.d.ts +67 -0
  591. package/dist/with-shape/links/names.d.ts +65 -0
  592. package/dist/with-shape/links/vault-facade.d.ts +211 -0
  593. package/dist/with-shape/persisted-schemas/canonicalize.d.ts +11 -0
  594. package/dist/with-shape/persisted-schemas/derive.d.ts +29 -0
  595. package/dist/with-shape/persisted-schemas/index.d.ts +21 -0
  596. package/dist/with-shape/persisted-schemas/register.d.ts +66 -0
  597. package/dist/with-shape/persisted-schemas/storage.d.ts +61 -0
  598. package/dist/with-shape/persisted-schemas/types.d.ts +54 -0
  599. package/dist/with-shape/satellites/dead-filter.d.ts +21 -0
  600. package/dist/with-shape/satellites/declare.d.ts +60 -0
  601. package/dist/with-shape/satellites/existence.d.ts +5 -0
  602. package/dist/with-shape/satellites/fanout.d.ts +38 -0
  603. package/dist/with-shape/satellites/forget.d.ts +47 -0
  604. package/dist/with-shape/satellites/index.d.ts +3 -0
  605. package/dist/with-shape/satellites/joined.d.ts +19 -0
  606. package/dist/with-shape/satellites/marker.d.ts +10 -0
  607. package/dist/with-shape/satellites/migrate-cek.d.ts +26 -0
  608. package/dist/with-shape/satellites/post-register.d.ts +6 -0
  609. package/dist/with-shape/satellites/proxy.d.ts +37 -0
  610. package/dist/with-shape/satellites/raw-target.d.ts +14 -0
  611. package/dist/with-shape/satellites/registry.d.ts +19 -0
  612. package/dist/with-shape/satellites/types.d.ts +37 -0
  613. package/dist/with-shape/satellites/validate.d.ts +17 -0
  614. package/dist/with-shape/schema-update/client-registry.d.ts +35 -0
  615. package/dist/with-shape/schema-update/cutover.d.ts +5 -0
  616. package/dist/with-shape/schema-update/delta.d.ts +2 -0
  617. package/dist/with-shape/schema-update/dispatch.d.ts +3 -0
  618. package/dist/with-shape/schema-update/fence-controller.d.ts +62 -0
  619. package/dist/with-shape/schema-update/fence-watcher.d.ts +37 -0
  620. package/dist/with-shape/schema-update/fence.d.ts +15 -0
  621. package/dist/with-shape/schema-update/gate.d.ts +16 -0
  622. package/dist/with-shape/schema-update/index.d.ts +6 -0
  623. package/dist/with-shape/schema-update/store-coordination-provider.d.ts +29 -0
  624. package/dist/with-shape/schema-update/strategies.d.ts +12 -0
  625. package/dist/with-shape/schema-update/types.d.ts +53 -0
  626. package/dist/with-store/index.d.ts +15 -0
  627. package/dist/with-store/lazy/active.d.ts +12 -0
  628. package/dist/with-store/lazy/index.d.ts +14 -0
  629. package/dist/with-store/lazy/strategy.d.ts +9 -0
  630. package/dist/with-store/route-store.d.ts +259 -0
  631. package/dist/with-store/store-middleware.d.ts +189 -0
  632. package/dist/withdraw-accessible-WZIEVWSR.js +28 -0
  633. package/package.json +47 -55
  634. package/dist/adapter/index.d.ts +0 -5
  635. package/dist/adapter/index.js +0 -15
  636. package/dist/aggregate/index.d.ts +0 -42
  637. package/dist/api-JDWL67WL.js +0 -20
  638. package/dist/as/index.d.ts +0 -7
  639. package/dist/at/index.d.ts +0 -5
  640. package/dist/attestation/index.d.ts +0 -20
  641. package/dist/backup-WRGNTGJF.js +0 -225
  642. package/dist/backup-WRGNTGJF.js.map +0 -1
  643. package/dist/blobs/index.d.ts +0 -44
  644. package/dist/bundle/index.d.ts +0 -122
  645. package/dist/bundle-DzWtVw7w.d.ts +0 -548
  646. package/dist/by/index.d.ts +0 -1
  647. package/dist/cargo/index.d.ts +0 -9
  648. package/dist/chunk-25G7PUTA.js +0 -235
  649. package/dist/chunk-26FSVNBL.js +0 -34
  650. package/dist/chunk-2PJB6H3H.js +0 -167
  651. package/dist/chunk-2PJB6H3H.js.map +0 -1
  652. package/dist/chunk-37JZR7CY.js +0 -91
  653. package/dist/chunk-3KBK5LU4.js +0 -117
  654. package/dist/chunk-3YKBGS3I.js +0 -686
  655. package/dist/chunk-3YKBGS3I.js.map +0 -1
  656. package/dist/chunk-44DV37ZV.js +0 -75
  657. package/dist/chunk-44DV37ZV.js.map +0 -1
  658. package/dist/chunk-47C4CI7R.js +0 -108
  659. package/dist/chunk-47C4CI7R.js.map +0 -1
  660. package/dist/chunk-4VDFUBTS.js +0 -275
  661. package/dist/chunk-4VDFUBTS.js.map +0 -1
  662. package/dist/chunk-55LSDABW.js +0 -94
  663. package/dist/chunk-56JB2BGI.js +0 -13003
  664. package/dist/chunk-56JB2BGI.js.map +0 -1
  665. package/dist/chunk-5GQE5IDB.js +0 -513
  666. package/dist/chunk-5GQE5IDB.js.map +0 -1
  667. package/dist/chunk-5HRJQSKN.js +0 -202
  668. package/dist/chunk-5HZULLHE.js +0 -404
  669. package/dist/chunk-5JQMX2EH.js +0 -50
  670. package/dist/chunk-5UOPIPZC.js +0 -95
  671. package/dist/chunk-5YBUFCFF.js +0 -135
  672. package/dist/chunk-62APEMF3.js +0 -280
  673. package/dist/chunk-62APEMF3.js.map +0 -1
  674. package/dist/chunk-6P5AJ2ZS.js +0 -120
  675. package/dist/chunk-6P5AJ2ZS.js.map +0 -1
  676. package/dist/chunk-6PALJTC2.js +0 -430
  677. package/dist/chunk-6PALJTC2.js.map +0 -1
  678. package/dist/chunk-6S7T6WC4.js +0 -111
  679. package/dist/chunk-6S7T6WC4.js.map +0 -1
  680. package/dist/chunk-6Z435B6N.js +0 -1656
  681. package/dist/chunk-6Z435B6N.js.map +0 -1
  682. package/dist/chunk-723XB5NX.js +0 -86
  683. package/dist/chunk-7CZ6YXMO.js +0 -124
  684. package/dist/chunk-7KTL4RHZ.js +0 -120
  685. package/dist/chunk-7KTL4RHZ.js.map +0 -1
  686. package/dist/chunk-7TAV3BFQ.js +0 -766
  687. package/dist/chunk-7TAV3BFQ.js.map +0 -1
  688. package/dist/chunk-BASCPHNM.js +0 -380
  689. package/dist/chunk-BASCPHNM.js.map +0 -1
  690. package/dist/chunk-BGIZAFY7.js +0 -1
  691. package/dist/chunk-BJ2XF2RC.js +0 -823
  692. package/dist/chunk-BM6E4MUT.js +0 -881
  693. package/dist/chunk-BM6E4MUT.js.map +0 -1
  694. package/dist/chunk-BTFTHF6Q.js +0 -42
  695. package/dist/chunk-C4NOLA5X.js +0 -132
  696. package/dist/chunk-C4NOLA5X.js.map +0 -1
  697. package/dist/chunk-CHK5VVMI.js +0 -155
  698. package/dist/chunk-DCVVCJVB.js +0 -45
  699. package/dist/chunk-EU7HDMT3.js +0 -54
  700. package/dist/chunk-F3EKFGUS.js +0 -99
  701. package/dist/chunk-FCOZ7DEC.js +0 -355
  702. package/dist/chunk-FCOZ7DEC.js.map +0 -1
  703. package/dist/chunk-FWART3VA.js +0 -205
  704. package/dist/chunk-FZK3JJJK.js +0 -150
  705. package/dist/chunk-GDOOG5YQ.js +0 -382
  706. package/dist/chunk-GLVXQU3E.js +0 -155
  707. package/dist/chunk-HU55NPHZ.js +0 -80
  708. package/dist/chunk-I6JJ6VJS.js +0 -97
  709. package/dist/chunk-I6URUNTD.js +0 -59
  710. package/dist/chunk-IARAK3PK.js +0 -14
  711. package/dist/chunk-II6DLDZM.js +0 -30
  712. package/dist/chunk-J5YUA6JB.js +0 -23
  713. package/dist/chunk-J7OH6R4K.js +0 -49
  714. package/dist/chunk-K2WCO3NX.js +0 -1
  715. package/dist/chunk-L6Q5NA22.js +0 -40
  716. package/dist/chunk-LFGJG4XZ.js +0 -30
  717. package/dist/chunk-M3OYTM5Z.js +0 -85
  718. package/dist/chunk-MOQ5M46U.js +0 -209
  719. package/dist/chunk-NTPWQH4S.js +0 -589
  720. package/dist/chunk-OJ64XMPJ.js +0 -1434
  721. package/dist/chunk-OJ64XMPJ.js.map +0 -1
  722. package/dist/chunk-OWGAXPRE.js +0 -129
  723. package/dist/chunk-P2PEPSPK.js +0 -230
  724. package/dist/chunk-P6TZ3IVN.js +0 -453
  725. package/dist/chunk-P6TZ3IVN.js.map +0 -1
  726. package/dist/chunk-PAJCRV7O.js +0 -123
  727. package/dist/chunk-PMMV5SQC.js +0 -416
  728. package/dist/chunk-PMMV5SQC.js.map +0 -1
  729. package/dist/chunk-PPPZIBKY.js +0 -261
  730. package/dist/chunk-PPPZIBKY.js.map +0 -1
  731. package/dist/chunk-PVC2FBCQ.js +0 -45
  732. package/dist/chunk-PYIUDUGS.js +0 -36
  733. package/dist/chunk-QABECTNN.js +0 -255
  734. package/dist/chunk-QYMMMKOO.js +0 -164
  735. package/dist/chunk-R4IVPJHN.js +0 -130
  736. package/dist/chunk-REWTMYSF.js +0 -32
  737. package/dist/chunk-REWTMYSF.js.map +0 -1
  738. package/dist/chunk-RNYDHIQL.js +0 -367
  739. package/dist/chunk-RUIMKQTA.js +0 -23
  740. package/dist/chunk-RUIMKQTA.js.map +0 -1
  741. package/dist/chunk-TCGVRKOS.js +0 -367
  742. package/dist/chunk-TIAYXOEI.js +0 -99
  743. package/dist/chunk-TQ3REHVF.js +0 -95
  744. package/dist/chunk-TQ3REHVF.js.map +0 -1
  745. package/dist/chunk-TUL5YQWF.js +0 -777
  746. package/dist/chunk-U7LV2DUN.js +0 -74
  747. package/dist/chunk-UB3XHGFG.js +0 -181
  748. package/dist/chunk-UB3XHGFG.js.map +0 -1
  749. package/dist/chunk-UMH35AQV.js +0 -70
  750. package/dist/chunk-UWZ7O4NR.js +0 -29
  751. package/dist/chunk-V76PHWLE.js +0 -41
  752. package/dist/chunk-VFQOE76I.js +0 -69
  753. package/dist/chunk-VIWOGJ2O.js +0 -71
  754. package/dist/chunk-VK6OC22R.js +0 -37
  755. package/dist/chunk-VK6OC22R.js.map +0 -1
  756. package/dist/chunk-VVLOWY74.js +0 -150
  757. package/dist/chunk-VVLOWY74.js.map +0 -1
  758. package/dist/chunk-W3JABOVB.js +0 -53
  759. package/dist/chunk-W3JABOVB.js.map +0 -1
  760. package/dist/chunk-WPNP3NF5.js +0 -1221
  761. package/dist/chunk-WPNP3NF5.js.map +0 -1
  762. package/dist/chunk-X5QZAJDB.js +0 -59
  763. package/dist/chunk-X6VNIRHS.js +0 -239
  764. package/dist/chunk-X6VNIRHS.js.map +0 -1
  765. package/dist/chunk-XBPUVQDO.js +0 -664
  766. package/dist/chunk-XBPUVQDO.js.map +0 -1
  767. package/dist/chunk-XW5LZYV4.js +0 -21
  768. package/dist/chunk-YTCCC6NG.js +0 -320
  769. package/dist/chunk-YTCCC6NG.js.map +0 -1
  770. package/dist/classified/index.d.ts +0 -17
  771. package/dist/collection-facade-EJVIN2BY.js +0 -39
  772. package/dist/computed-6FOFXQPE.js +0 -11
  773. package/dist/config-drift-RFEVGBKR.js +0 -24
  774. package/dist/config-drift-RFEVGBKR.js.map +0 -1
  775. package/dist/consent/index.d.ts +0 -23
  776. package/dist/crdt/index.d.ts +0 -34
  777. package/dist/dead-filter-RHMNYOXP.js +0 -28
  778. package/dist/decrypt-partition-IHtxEnTi.d.ts +0 -21
  779. package/dist/delegation-IHXOASHV.js +0 -25
  780. package/dist/derivations/index.d.ts +0 -70
  781. package/dist/derive-CD3ZVIXK.js +0 -21
  782. package/dist/describe/index.d.ts +0 -1
  783. package/dist/describe/index.js +0 -1
  784. package/dist/describe-C6iHNlqJ.d.ts +0 -162
  785. package/dist/dev-unlock-wgQ7Ci5I.d.ts +0 -263
  786. package/dist/discriminant-BN9REW3o.d.ts +0 -60
  787. package/dist/enclave-KGEUW2GL.js +0 -123
  788. package/dist/executor-EUPYHCLU.js +0 -9
  789. package/dist/executor-KZ4B3PRT.js +0 -9
  790. package/dist/executor-MHUM2VZK.js +0 -21
  791. package/dist/export-accessible-Z3NSZZHN.js +0 -23
  792. package/dist/extract-partition-VSKT35JG.js +0 -36
  793. package/dist/fanout-sidecar-NBDKKCHT.js +0 -74
  794. package/dist/find-OH4BEULF.js +0 -11
  795. package/dist/forget/index.d.ts +0 -36
  796. package/dist/guards/index.d.ts +0 -35
  797. package/dist/hash-CwHnoKyW.d.ts +0 -72
  798. package/dist/history/index.d.ts +0 -61
  799. package/dist/i18n/index.d.ts +0 -37
  800. package/dist/in/index.d.ts +0 -5
  801. package/dist/index-B9QdHytu.d.ts +0 -123
  802. package/dist/index-CTvUp94-.d.ts +0 -123
  803. package/dist/index-Dn5GzPg_.d.ts +0 -22138
  804. package/dist/indexing/index.d.ts +0 -39
  805. package/dist/issue-AEOL6RXA.js +0 -19
  806. package/dist/kernel/index.d.ts +0 -32
  807. package/dist/kernel/index.js +0 -59
  808. package/dist/lazy/index.d.ts +0 -21
  809. package/dist/ledger-3LR3YO2W.js +0 -42
  810. package/dist/liberate-XSEPRWEA.js +0 -24
  811. package/dist/link-set-NSUIX6BR.js +0 -31
  812. package/dist/materialized-views/index.d.ts +0 -173
  813. package/dist/mime-magic-CYbFNQ4h.d.ts +0 -103
  814. package/dist/noydb-POVTIVQ6.js +0 -62
  815. package/dist/on/index.d.ts +0 -5
  816. package/dist/overlay-views/index.d.ts +0 -98
  817. package/dist/periods/index.d.ts +0 -20
  818. package/dist/pod/index.d.ts +0 -63
  819. package/dist/policy-Y7HL2KGA.js +0 -41
  820. package/dist/portability/index.d.ts +0 -20
  821. package/dist/post-register-KOFRTCDD.js +0 -55
  822. package/dist/post-register-KOFRTCDD.js.map +0 -1
  823. package/dist/public-envelope-NC7SPNMV.js +0 -32
  824. package/dist/query/index.d.ts +0 -5
  825. package/dist/read-only-facade-5ADRJVTM.js +0 -8
  826. package/dist/register-3D6R2MKN.js +0 -23
  827. package/dist/registry-AI4E46PD.js +0 -19
  828. package/dist/registry-HSNQ4NBP.js +0 -9
  829. package/dist/registry-WIX6QCV5.js +0 -17
  830. package/dist/request-withdrawal-GU4XS2R5.js +0 -31
  831. package/dist/reveal-5Y777N5Q.js +0 -38
  832. package/dist/reveal-5Y777N5Q.js.map +0 -1
  833. package/dist/revoke-ZFETCLYV.js +0 -24
  834. package/dist/revoke-ZFETCLYV.js.map +0 -1
  835. package/dist/satellites/index.d.ts +0 -5
  836. package/dist/sealed-record/index.d.ts +0 -69
  837. package/dist/session/index.d.ts +0 -44
  838. package/dist/shadow/index.d.ts +0 -15
  839. package/dist/signer-GAIMQQ2J.js +0 -25
  840. package/dist/signer-GAIMQQ2J.js.map +0 -1
  841. package/dist/snapshots/index.d.ts +0 -26
  842. package/dist/stale-77LP2EEF.js +0 -14
  843. package/dist/stale-77LP2EEF.js.map +0 -1
  844. package/dist/storage-KEXIXLGM.js +0 -23
  845. package/dist/storage-KEXIXLGM.js.map +0 -1
  846. package/dist/store-coordination-provider-NJDDZ264.js +0 -142
  847. package/dist/subject-index-O75wKshW.d.ts +0 -362
  848. package/dist/sync/index.d.ts +0 -41
  849. package/dist/team/index.d.ts +0 -155
  850. package/dist/tiers/index.d.ts +0 -5
  851. package/dist/to/index.d.ts +0 -5
  852. package/dist/transition-guard-D5RLJv8S.d.ts +0 -165
  853. package/dist/tx/index.d.ts +0 -35
  854. package/dist/ui/index.d.ts +0 -1
  855. package/dist/ulid-DRH25k3y.d.ts +0 -66
  856. package/dist/util/index.d.ts +0 -79
  857. package/dist/validators-C3lrVF-c.d.ts +0 -101
  858. package/dist/vault-diff-_LSIcOMv.d.ts +0 -147
  859. package/dist/verify-CAYGXYNO.js +0 -139
  860. package/dist/verify-CAYGXYNO.js.map +0 -1
  861. package/dist/walk-SMAE4IEI.js +0 -241
  862. package/dist/with/index.d.ts +0 -38
  863. package/dist/with-materialized-view-Xv1-9Bh0.d.ts +0 -27
  864. package/dist/with-overlayed-view-CuWhq_-C.d.ts +0 -12
  865. package/dist/with-rollup-K_iwal4b.d.ts +0 -47
  866. package/dist/withdraw-accessible-Q7BULAN5.js +0 -28
  867. package/dist/withdraw-accessible-Q7BULAN5.js.map +0 -1
  868. /package/dist/{adapter/index.js.map → api-ZGS6LCOF.js.map} +0 -0
  869. /package/dist/{chunk-VIWOGJ2O.js.map → chunk-3B5VVCNY.js.map} +0 -0
  870. /package/dist/{chunk-P2PEPSPK.js.map → chunk-3LQ2YKO4.js.map} +0 -0
  871. /package/dist/{chunk-EU7HDMT3.js.map → chunk-3QCRBHCY.js.map} +0 -0
  872. /package/dist/{chunk-FZK3JJJK.js.map → chunk-4JBYV75E.js.map} +0 -0
  873. /package/dist/{chunk-I6JJ6VJS.js.map → chunk-4NXKCLLQ.js.map} +0 -0
  874. /package/dist/{chunk-VFQOE76I.js.map → chunk-5M5DVGV7.js.map} +0 -0
  875. /package/dist/{chunk-LFGJG4XZ.js.map → chunk-5YOLBEQ6.js.map} +0 -0
  876. /package/dist/{chunk-OWGAXPRE.js.map → chunk-6CRIV7DE.js.map} +0 -0
  877. /package/dist/{chunk-QABECTNN.js.map → chunk-6QTNZJBS.js.map} +0 -0
  878. /package/dist/{chunk-723XB5NX.js.map → chunk-6T2SCQRU.js.map} +0 -0
  879. /package/dist/{chunk-PVC2FBCQ.js.map → chunk-7DSTRQIJ.js.map} +0 -0
  880. /package/dist/{chunk-NTPWQH4S.js.map → chunk-AUSTCW2X.js.map} +0 -0
  881. /package/dist/{chunk-MOQ5M46U.js.map → chunk-B3HJYUOF.js.map} +0 -0
  882. /package/dist/{chunk-QYMMMKOO.js.map → chunk-BDVFPG6Y.js.map} +0 -0
  883. /package/dist/{chunk-PYIUDUGS.js.map → chunk-CAF6WOK7.js.map} +0 -0
  884. /package/dist/{chunk-5HZULLHE.js.map → chunk-CIE2BASH.js.map} +0 -0
  885. /package/dist/{chunk-BTFTHF6Q.js.map → chunk-CRI4OUV4.js.map} +0 -0
  886. /package/dist/{chunk-37JZR7CY.js.map → chunk-DLG74CNB.js.map} +0 -0
  887. /package/dist/{chunk-TCGVRKOS.js.map → chunk-ERJ7FU55.js.map} +0 -0
  888. /package/dist/{chunk-FWART3VA.js.map → chunk-EVVGJDRQ.js.map} +0 -0
  889. /package/dist/{chunk-X5QZAJDB.js.map → chunk-EXK7QRWF.js.map} +0 -0
  890. /package/dist/{chunk-5HRJQSKN.js.map → chunk-EYZ6IQ6X.js.map} +0 -0
  891. /package/dist/{chunk-DCVVCJVB.js.map → chunk-F64IRYG3.js.map} +0 -0
  892. /package/dist/{chunk-BJ2XF2RC.js.map → chunk-FHS2HQSH.js.map} +0 -0
  893. /package/dist/{chunk-HU55NPHZ.js.map → chunk-GKEWXIV5.js.map} +0 -0
  894. /package/dist/{chunk-I6URUNTD.js.map → chunk-GTGPO5KW.js.map} +0 -0
  895. /package/dist/{chunk-5UOPIPZC.js.map → chunk-HB3RFQSC.js.map} +0 -0
  896. /package/dist/{chunk-F3EKFGUS.js.map → chunk-I6GALP6E.js.map} +0 -0
  897. /package/dist/{chunk-R4IVPJHN.js.map → chunk-IL6POWCW.js.map} +0 -0
  898. /package/dist/{chunk-3KBK5LU4.js.map → chunk-IU6SNYX6.js.map} +0 -0
  899. /package/dist/{chunk-TUL5YQWF.js.map → chunk-J2ZX2XUV.js.map} +0 -0
  900. /package/dist/{chunk-UWZ7O4NR.js.map → chunk-JKJOGPZN.js.map} +0 -0
  901. /package/dist/{chunk-V76PHWLE.js.map → chunk-JZUV47FZ.js.map} +0 -0
  902. /package/dist/{chunk-II6DLDZM.js.map → chunk-K5IMOGHB.js.map} +0 -0
  903. /package/dist/{chunk-GDOOG5YQ.js.map → chunk-LASZKVMO.js.map} +0 -0
  904. /package/dist/{chunk-5YBUFCFF.js.map → chunk-NR5LT5RY.js.map} +0 -0
  905. /package/dist/{chunk-UMH35AQV.js.map → chunk-Q5VNKNE5.js.map} +0 -0
  906. /package/dist/{chunk-XW5LZYV4.js.map → chunk-QLWMEXCT.js.map} +0 -0
  907. /package/dist/{chunk-PAJCRV7O.js.map → chunk-QRB7NAOJ.js.map} +0 -0
  908. /package/dist/{chunk-U7LV2DUN.js.map → chunk-R4ROFEYC.js.map} +0 -0
  909. /package/dist/{chunk-RNYDHIQL.js.map → chunk-RIX4V2TB.js.map} +0 -0
  910. /package/dist/{chunk-L6Q5NA22.js.map → chunk-RYCTDFUX.js.map} +0 -0
  911. /package/dist/{chunk-CHK5VVMI.js.map → chunk-RZ5SVOYR.js.map} +0 -0
  912. /package/dist/{chunk-TIAYXOEI.js.map → chunk-SLFHQTTW.js.map} +0 -0
  913. /package/dist/{chunk-J5YUA6JB.js.map → chunk-UNFPPVNI.js.map} +0 -0
  914. /package/dist/{chunk-25G7PUTA.js.map → chunk-VLFCJYTL.js.map} +0 -0
  915. /package/dist/{chunk-7CZ6YXMO.js.map → chunk-VN3DBQAU.js.map} +0 -0
  916. /package/dist/{chunk-J7OH6R4K.js.map → chunk-VZRODIM3.js.map} +0 -0
  917. /package/dist/{chunk-55LSDABW.js.map → chunk-W22IKJE2.js.map} +0 -0
  918. /package/dist/{chunk-GLVXQU3E.js.map → chunk-X3YYQWOQ.js.map} +0 -0
  919. /package/dist/{chunk-M3OYTM5Z.js.map → chunk-YFXZEAYK.js.map} +0 -0
  920. /package/dist/{chunk-5JQMX2EH.js.map → chunk-ZAJAVEXY.js.map} +0 -0
  921. /package/dist/{chunk-26FSVNBL.js.map → chunk-ZICD77GM.js.map} +0 -0
  922. /package/dist/{chunk-IARAK3PK.js.map → chunk-ZUODRVHY.js.map} +0 -0
  923. /package/dist/{api-JDWL67WL.js.map → collection-facade-TLWIPI76.js.map} +0 -0
  924. /package/dist/{chunk-BGIZAFY7.js.map → computed-ZIQTYTDI.js.map} +0 -0
  925. /package/dist/{dead-filter-RHMNYOXP.js.map → dead-filter-ESOBZZP5.js.map} +0 -0
  926. /package/dist/{chunk-K2WCO3NX.js.map → delegation-W7ZV2322.js.map} +0 -0
  927. /package/dist/{collection-facade-EJVIN2BY.js.map → derive-H2BJTLUI.js.map} +0 -0
  928. /package/dist/{computed-6FOFXQPE.js.map → enclave-AP3I5W7O.js.map} +0 -0
  929. /package/dist/{delegation-IHXOASHV.js.map → executor-KGWTNEQD.js.map} +0 -0
  930. /package/dist/{derive-CD3ZVIXK.js.map → executor-OVEXR6RT.js.map} +0 -0
  931. /package/dist/{describe/index.js.map → executor-UNEH5ZYH.js.map} +0 -0
  932. /package/dist/{enclave-KGEUW2GL.js.map → export-accessible-PCMXSUZS.js.map} +0 -0
  933. /package/dist/{executor-EUPYHCLU.js.map → extract-partition-SWHFSYJO.js.map} +0 -0
  934. /package/dist/{fanout-sidecar-NBDKKCHT.js.map → fanout-sidecar-A765THMX.js.map} +0 -0
  935. /package/dist/{executor-KZ4B3PRT.js.map → find-N6345CNT.js.map} +0 -0
  936. /package/dist/{executor-MHUM2VZK.js.map → issue-5OKB6I2R.js.map} +0 -0
  937. /package/dist/{export-accessible-Z3NSZZHN.js.map → ledger-GFBKVPV4.js.map} +0 -0
  938. /package/dist/{extract-partition-VSKT35JG.js.map → liberate-3VDOT4KO.js.map} +0 -0
  939. /package/dist/{find-OH4BEULF.js.map → link-set-Z7Q2ASFX.js.map} +0 -0
  940. /package/dist/{issue-AEOL6RXA.js.map → noydb-ZCJOYBDI.js.map} +0 -0
  941. /package/dist/{kernel/index.js.map → policy-Z3RUAIY2.js.map} +0 -0
  942. /package/dist/{ledger-3LR3YO2W.js.map → public-envelope-B4KNWVUA.js.map} +0 -0
  943. /package/dist/{liberate-XSEPRWEA.js.map → read-only-facade-CHCKSEPD.js.map} +0 -0
  944. /package/dist/{link-set-NSUIX6BR.js.map → register-VAHONCID.js.map} +0 -0
  945. /package/dist/{noydb-POVTIVQ6.js.map → registry-7MLVD3VO.js.map} +0 -0
  946. /package/dist/{policy-Y7HL2KGA.js.map → registry-EPKPD5SM.js.map} +0 -0
  947. /package/dist/{public-envelope-NC7SPNMV.js.map → registry-P5T7PS2U.js.map} +0 -0
  948. /package/dist/{read-only-facade-5ADRJVTM.js.map → request-withdrawal-TI3A5WPS.js.map} +0 -0
  949. /package/dist/{register-3D6R2MKN.js.map → revoke-FDRD6GRW.js.map} +0 -0
  950. /package/dist/{registry-AI4E46PD.js.map → signer-MUWEIUI6.js.map} +0 -0
  951. /package/dist/{registry-HSNQ4NBP.js.map → stale-OSQ7J3AA.js.map} +0 -0
  952. /package/dist/{registry-WIX6QCV5.js.map → storage-MVFCGEQE.js.map} +0 -0
  953. /package/dist/{store-coordination-provider-NJDDZ264.js.map → store-coordination-provider-64OEZFGS.js.map} +0 -0
  954. /package/dist/{walk-SMAE4IEI.js.map → walk-SVNDIZ62.js.map} +0 -0
  955. /package/dist/{request-withdrawal-GU4XS2R5.js.map → withdraw-accessible-WZIEVWSR.js.map} +0 -0
@@ -1,777 +0,0 @@
1
- import {
2
- deleteUserEnvelope,
3
- deleteUserVisibility,
4
- loadUserEnvelope,
5
- readDirectoryConfig,
6
- readUserVisibility,
7
- saveUserEnvelope
8
- } from "./chunk-FZK3JJJK.js";
9
- import {
10
- NOYDB_FORMAT_VERSION,
11
- NOYDB_KEYRING_VERSION
12
- } from "./chunk-REWTMYSF.js";
13
- import {
14
- base64ToBuffer,
15
- bufferToBase64,
16
- decrypt,
17
- deriveKey,
18
- encrypt,
19
- generateDEK,
20
- generateSalt,
21
- unwrapKey,
22
- wrapKey
23
- } from "./chunk-5HZULLHE.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-OJ64XMPJ.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
- isSecretBearingReservedCollection,
756
- mintKeyringCanary,
757
- loadKeyring,
758
- assertKeyringOpenAllowed,
759
- createOwnerKeyring,
760
- grant,
761
- revoke,
762
- updateKeyringIdentity,
763
- rotateKeys,
764
- changeSecret,
765
- buildRecipientKeyringFile,
766
- listUsers,
767
- listUsersWithEnvelopes,
768
- ensureCollectionDEK,
769
- hasWritePermission,
770
- hasAccess,
771
- persistKeyring,
772
- hasExportCapability,
773
- evaluateExportCapability,
774
- hasImportCapability,
775
- evaluateImportCapability
776
- };
777
- //# sourceMappingURL=chunk-TUL5YQWF.js.map