@noy-db/hub 0.2.0-pre.9 → 0.3.0-pre.10

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 (615) hide show
  1. package/README.md +129 -3
  2. package/dist/aggregate/index.d.ts +5 -2
  3. package/dist/aggregate/index.js +25 -16
  4. package/dist/aggregate/index.js.map +1 -1
  5. package/dist/api-TX2EX2FX.js +20 -0
  6. package/dist/as/index.d.ts +6 -0
  7. package/dist/as/index.js +30 -0
  8. package/dist/at/index.d.ts +4 -0
  9. package/dist/at/index.js +1 -0
  10. package/dist/attestation/index.d.ts +14 -47
  11. package/dist/attestation/index.js +60 -10
  12. package/dist/attestation/index.js.map +1 -1
  13. package/dist/backup-R7NTDFKY.js +225 -0
  14. package/dist/backup-R7NTDFKY.js.map +1 -0
  15. package/dist/blobs/index.d.ts +5 -8
  16. package/dist/blobs/index.js +25 -12
  17. package/dist/blobs/index.js.map +1 -1
  18. package/dist/bundle/index.d.ts +15 -70
  19. package/dist/bundle/index.js +45 -476
  20. package/dist/bundle/index.js.map +1 -1
  21. package/dist/{ulid-CJ8RzRrm.d.ts → bundle-D6GxiUfq.d.ts} +31 -86
  22. package/dist/by/index.d.ts +1 -0
  23. package/dist/by/index.js +11 -0
  24. package/dist/cargo/index.d.ts +7 -0
  25. package/dist/cargo/index.js +95 -0
  26. package/dist/chunk-2OV5NVE7.js +95 -0
  27. package/dist/chunk-2OV5NVE7.js.map +1 -0
  28. package/dist/chunk-2OZXVKVP.js +367 -0
  29. package/dist/chunk-2OZXVKVP.js.map +1 -0
  30. package/dist/{chunk-HNRHLRDC.js → chunk-2REPHKET.js} +6 -5
  31. package/dist/chunk-2REPHKET.js.map +1 -0
  32. package/dist/{chunk-PE2FR4J3.js → chunk-3JXPAHOZ.js} +17 -17
  33. package/dist/chunk-3JXPAHOZ.js.map +1 -0
  34. package/dist/{chunk-H2X3ISXG.js → chunk-3MATJ6O4.js} +7 -7
  35. package/dist/chunk-3MATJ6O4.js.map +1 -0
  36. package/dist/{chunk-PP6W64Y3.js → chunk-3OPY6MK2.js} +132 -3
  37. package/dist/chunk-3OPY6MK2.js.map +1 -0
  38. package/dist/{chunk-T7JEBOGN.js → chunk-3QSIU3UT.js} +49 -71
  39. package/dist/chunk-3QSIU3UT.js.map +1 -0
  40. package/dist/{chunk-ZYWZWG6G.js → chunk-4OMCIY6F.js} +32 -12
  41. package/dist/chunk-4OMCIY6F.js.map +1 -0
  42. package/dist/chunk-4Q6HSHHL.js +90 -0
  43. package/dist/chunk-4Q6HSHHL.js.map +1 -0
  44. package/dist/chunk-5I35DOHK.js +94 -0
  45. package/dist/chunk-5I35DOHK.js.map +1 -0
  46. package/dist/chunk-5VG4IJR7.js +235 -0
  47. package/dist/chunk-5VG4IJR7.js.map +1 -0
  48. package/dist/chunk-5YESYH2C.js +155 -0
  49. package/dist/chunk-5YESYH2C.js.map +1 -0
  50. package/dist/chunk-6G5ORS5D.js +202 -0
  51. package/dist/chunk-6G5ORS5D.js.map +1 -0
  52. package/dist/{chunk-VTKGMEPP.js → chunk-6P5XCKSD.js} +13 -3
  53. package/dist/chunk-6P5XCKSD.js.map +1 -0
  54. package/dist/{chunk-J66GRPNH.js → chunk-6S7T6WC4.js} +2 -2
  55. package/dist/chunk-6S7T6WC4.js.map +1 -0
  56. package/dist/{chunk-U26HQ6KJ.js → chunk-7BWJHO2A.js} +4 -4
  57. package/dist/chunk-7BWJHO2A.js.map +1 -0
  58. package/dist/chunk-7P2SDJG3.js +279 -0
  59. package/dist/chunk-7P2SDJG3.js.map +1 -0
  60. package/dist/chunk-ANB77BVV.js +150 -0
  61. package/dist/chunk-ANB77BVV.js.map +1 -0
  62. package/dist/chunk-AURFOK3D.js +35 -0
  63. package/dist/chunk-AURFOK3D.js.map +1 -0
  64. package/dist/chunk-BKARNZJN.js +382 -0
  65. package/dist/chunk-BKARNZJN.js.map +1 -0
  66. package/dist/{chunk-3BFJOWSU.js → chunk-BQISD5ZV.js} +35 -7
  67. package/dist/chunk-BQISD5ZV.js.map +1 -0
  68. package/dist/{chunk-2GLDA55J.js → chunk-BUAQ7YI3.js} +260 -135
  69. package/dist/chunk-BUAQ7YI3.js.map +1 -0
  70. package/dist/{chunk-2WUSG3IT.js → chunk-CB7CWSKW.js} +5 -5
  71. package/dist/chunk-CB7CWSKW.js.map +1 -0
  72. package/dist/chunk-CHFZDSE4.js +1 -0
  73. package/dist/{aggregate/index.cjs → chunk-DFVUTGT2.js} +206 -222
  74. package/dist/chunk-DFVUTGT2.js.map +1 -0
  75. package/dist/chunk-DJ7KIPLV.js +23 -0
  76. package/dist/chunk-DJ7KIPLV.js.map +1 -0
  77. package/dist/chunk-DSKDQP3G.js +14066 -0
  78. package/dist/chunk-DSKDQP3G.js.map +1 -0
  79. package/dist/{chunk-5T22KDPN.js → chunk-DV4HUP5G.js} +10 -8
  80. package/dist/chunk-DV4HUP5G.js.map +1 -0
  81. package/dist/chunk-EOXAAJTY.js +621 -0
  82. package/dist/chunk-EOXAAJTY.js.map +1 -0
  83. package/dist/chunk-ET67AY6B.js +74 -0
  84. package/dist/chunk-ET67AY6B.js.map +1 -0
  85. package/dist/chunk-F4CEK5YM.js +123 -0
  86. package/dist/chunk-F4CEK5YM.js.map +1 -0
  87. package/dist/chunk-FORYWFN6.js +130 -0
  88. package/dist/chunk-FORYWFN6.js.map +1 -0
  89. package/dist/{chunk-JWRVQKRZ.js → chunk-FRP6D2DM.js} +21 -20
  90. package/dist/chunk-FRP6D2DM.js.map +1 -0
  91. package/dist/chunk-FUOE7UUV.js +341 -0
  92. package/dist/chunk-FUOE7UUV.js.map +1 -0
  93. package/dist/chunk-G4JYND6L.js +42 -0
  94. package/dist/chunk-G4JYND6L.js.map +1 -0
  95. package/dist/{chunk-53XBRIRT.js → chunk-G6XV4H65.js} +9 -9
  96. package/dist/chunk-G6XV4H65.js.map +1 -0
  97. package/dist/chunk-GHVIKOHT.js +1 -0
  98. package/dist/{chunk-PX35GA7L.js → chunk-GNMXXTMN.js} +11 -9
  99. package/dist/chunk-GNMXXTMN.js.map +1 -0
  100. package/dist/chunk-GYGLAVCX.js +19 -0
  101. package/dist/chunk-GYGLAVCX.js.map +1 -0
  102. package/dist/chunk-HPWKV3YB.js +21 -0
  103. package/dist/chunk-HPWKV3YB.js.map +1 -0
  104. package/dist/chunk-HY3AUMFI.js +41 -0
  105. package/dist/chunk-HY3AUMFI.js.map +1 -0
  106. package/dist/chunk-HYR4WZZ3.js +69 -0
  107. package/dist/chunk-HYR4WZZ3.js.map +1 -0
  108. package/dist/chunk-I7FD46FF.js +9 -0
  109. package/dist/chunk-I7FD46FF.js.map +1 -0
  110. package/dist/{chunk-TFBP23BX.js → chunk-ICXIFFYZ.js} +66 -7
  111. package/dist/chunk-ICXIFFYZ.js.map +1 -0
  112. package/dist/{chunk-TV3YZ35S.js → chunk-IGJCYUT5.js} +17 -8
  113. package/dist/chunk-IGJCYUT5.js.map +1 -0
  114. package/dist/{chunk-F3GDRNUT.js → chunk-IVLTXX4W.js} +36 -68
  115. package/dist/chunk-IVLTXX4W.js.map +1 -0
  116. package/dist/{chunk-DONMZAD2.js → chunk-J4LPNIGK.js} +62 -169
  117. package/dist/chunk-J4LPNIGK.js.map +1 -0
  118. package/dist/chunk-JJZ2LW6T.js +36 -0
  119. package/dist/chunk-JJZ2LW6T.js.map +1 -0
  120. package/dist/chunk-JK733I5V.js +23 -0
  121. package/dist/chunk-JK733I5V.js.map +1 -0
  122. package/dist/{chunk-3YPCK6JX.js → chunk-KJ2BCBTL.js} +181 -422
  123. package/dist/chunk-KJ2BCBTL.js.map +1 -0
  124. package/dist/chunk-KNZB6JMR.js +129 -0
  125. package/dist/chunk-KNZB6JMR.js.map +1 -0
  126. package/dist/{chunk-OIF6LZUR.js → chunk-KPZS5QAQ.js} +30 -11
  127. package/dist/chunk-KPZS5QAQ.js.map +1 -0
  128. package/dist/chunk-LB7FD65R.js +163 -0
  129. package/dist/chunk-LB7FD65R.js.map +1 -0
  130. package/dist/{chunk-DO7C2TOG.js → chunk-LEJIKBBB.js} +3 -3
  131. package/dist/{chunk-DO7C2TOG.js.map → chunk-LEJIKBBB.js.map} +1 -1
  132. package/dist/{chunk-O3VZPBZG.js → chunk-LL2NIVUR.js} +56 -13
  133. package/dist/chunk-LL2NIVUR.js.map +1 -0
  134. package/dist/chunk-LP7BEXCT.js +32 -0
  135. package/dist/chunk-LP7BEXCT.js.map +1 -0
  136. package/dist/chunk-MCHVVJIA.js +968 -0
  137. package/dist/chunk-MCHVVJIA.js.map +1 -0
  138. package/dist/chunk-NO272T7Q.js +194 -0
  139. package/dist/chunk-NO272T7Q.js.map +1 -0
  140. package/dist/{chunk-22DWZL57.js → chunk-NUEQU36L.js} +70 -267
  141. package/dist/chunk-NUEQU36L.js.map +1 -0
  142. package/dist/chunk-O45M6LDB.js +38 -0
  143. package/dist/chunk-O45M6LDB.js.map +1 -0
  144. package/dist/chunk-OBKWYKYC.js +117 -0
  145. package/dist/chunk-OBKWYKYC.js.map +1 -0
  146. package/dist/{chunk-DJHHA6XH.js → chunk-OHHKHSJP.js} +50 -20
  147. package/dist/chunk-OHHKHSJP.js.map +1 -0
  148. package/dist/chunk-OT76OZL6.js +45 -0
  149. package/dist/chunk-OT76OZL6.js.map +1 -0
  150. package/dist/chunk-OVYRLHPE.js +150 -0
  151. package/dist/chunk-OVYRLHPE.js.map +1 -0
  152. package/dist/{chunk-ML236QKC.js → chunk-OXCSVM3B.js} +5 -5
  153. package/dist/chunk-OXCSVM3B.js.map +1 -0
  154. package/dist/chunk-P33LUIML.js +205 -0
  155. package/dist/chunk-P33LUIML.js.map +1 -0
  156. package/dist/{chunk-DL3HWOQ5.js → chunk-PLS64NCS.js} +10 -8
  157. package/dist/chunk-PLS64NCS.js.map +1 -0
  158. package/dist/{chunk-SYMWGEET.js → chunk-PS2NEWEX.js} +3 -3
  159. package/dist/chunk-PS2NEWEX.js.map +1 -0
  160. package/dist/chunk-PY4KJPYU.js +9 -0
  161. package/dist/chunk-PY4KJPYU.js.map +1 -0
  162. package/dist/chunk-PZ5AY32C.js +10 -0
  163. package/dist/chunk-QA2KUPCP.js +45 -0
  164. package/dist/chunk-QA2KUPCP.js.map +1 -0
  165. package/dist/chunk-QOC3VYL2.js +30 -0
  166. package/dist/chunk-QOC3VYL2.js.map +1 -0
  167. package/dist/{chunk-BVRYKATC.js → chunk-QSFOZUYL.js} +62 -34
  168. package/dist/chunk-QSFOZUYL.js.map +1 -0
  169. package/dist/chunk-RHK32N73.js +30 -0
  170. package/dist/chunk-RHK32N73.js.map +1 -0
  171. package/dist/{chunk-K3DK3NU5.js → chunk-RW3Y22MW.js} +20 -5
  172. package/dist/chunk-RW3Y22MW.js.map +1 -0
  173. package/dist/{chunk-B6PB7JLN.js → chunk-S7VFUQM2.js} +541 -6
  174. package/dist/chunk-S7VFUQM2.js.map +1 -0
  175. package/dist/chunk-SVLR4POP.js +64 -0
  176. package/dist/chunk-SVLR4POP.js.map +1 -0
  177. package/dist/chunk-T7WSLRAU.js +49 -0
  178. package/dist/chunk-T7WSLRAU.js.map +1 -0
  179. package/dist/{chunk-WPLVTJ5D.js → chunk-TAKWLZZX.js} +285 -63
  180. package/dist/chunk-TAKWLZZX.js.map +1 -0
  181. package/dist/chunk-THNJ3IKU.js +17 -0
  182. package/dist/chunk-THNJ3IKU.js.map +1 -0
  183. package/dist/{chunk-XJFLDA7A.js → chunk-TMBXVJKT.js} +9 -6
  184. package/dist/chunk-TMBXVJKT.js.map +1 -0
  185. package/dist/chunk-TWKKOM55.js +54 -0
  186. package/dist/chunk-TWKKOM55.js.map +1 -0
  187. package/dist/chunk-U3WZCU7E.js +14 -0
  188. package/dist/chunk-U3WZCU7E.js.map +1 -0
  189. package/dist/{chunk-Z6FNBOTC.js → chunk-UF362QVH.js} +15 -17
  190. package/dist/chunk-UF362QVH.js.map +1 -0
  191. package/dist/chunk-UN4FVIBH.js +135 -0
  192. package/dist/chunk-UN4FVIBH.js.map +1 -0
  193. package/dist/chunk-VEAVKDDB.js +29 -0
  194. package/dist/chunk-VEAVKDDB.js.map +1 -0
  195. package/dist/chunk-VEPTFUJY.js +29 -0
  196. package/dist/chunk-VEPTFUJY.js.map +1 -0
  197. package/dist/chunk-VJV7GKQK.js +662 -0
  198. package/dist/chunk-VJV7GKQK.js.map +1 -0
  199. package/dist/{chunk-2QR2PQTT.js → chunk-VQNJ7UZL.js} +5 -3
  200. package/dist/chunk-VQNJ7UZL.js.map +1 -0
  201. package/dist/chunk-VQRAIPYF.js +50 -0
  202. package/dist/chunk-VQRAIPYF.js.map +1 -0
  203. package/dist/{chunk-DFMLEQZB.js → chunk-VRIYFLBA.js} +5 -10
  204. package/dist/chunk-VRIYFLBA.js.map +1 -0
  205. package/dist/chunk-VWM3DAVB.js +265 -0
  206. package/dist/chunk-VWM3DAVB.js.map +1 -0
  207. package/dist/{chunk-NONAAENK.js → chunk-VWRRVE6D.js} +11 -4
  208. package/dist/chunk-VWRRVE6D.js.map +1 -0
  209. package/dist/chunk-VYYM3MEN.js +98 -0
  210. package/dist/chunk-VYYM3MEN.js.map +1 -0
  211. package/dist/chunk-WBJIQSLL.js +167 -0
  212. package/dist/chunk-WBJIQSLL.js.map +1 -0
  213. package/dist/chunk-WIGQB62E.js +164 -0
  214. package/dist/chunk-WIGQB62E.js.map +1 -0
  215. package/dist/{chunk-EMIGCR7X.js → chunk-WXSYDNBT.js} +2 -2
  216. package/dist/chunk-WXSYDNBT.js.map +1 -0
  217. package/dist/chunk-WZSCE6RM.js +466 -0
  218. package/dist/chunk-WZSCE6RM.js.map +1 -0
  219. package/dist/chunk-XGDAPN6M.js +255 -0
  220. package/dist/chunk-XGDAPN6M.js.map +1 -0
  221. package/dist/{chunk-QODLLGQ7.js → chunk-XH7XP3OL.js} +372 -37
  222. package/dist/chunk-XH7XP3OL.js.map +1 -0
  223. package/dist/chunk-XREOISSI.js +40 -0
  224. package/dist/chunk-XREOISSI.js.map +1 -0
  225. package/dist/chunk-XUBPSPKD.js +164 -0
  226. package/dist/chunk-XUBPSPKD.js.map +1 -0
  227. package/dist/chunk-Y3A5CB5G.js +247 -0
  228. package/dist/chunk-Y3A5CB5G.js.map +1 -0
  229. package/dist/{chunk-I5FOWO4J.js → chunk-YCXCR7VG.js} +52 -73
  230. package/dist/chunk-YCXCR7VG.js.map +1 -0
  231. package/dist/{chunk-A3JMGXPG.js → chunk-YMUGBZN2.js} +2 -2
  232. package/dist/chunk-YMUGBZN2.js.map +1 -0
  233. package/dist/chunk-YMVQD5Q5.js +453 -0
  234. package/dist/chunk-YMVQD5Q5.js.map +1 -0
  235. package/dist/chunk-YN5IAHN6.js +32 -0
  236. package/dist/chunk-YN5IAHN6.js.map +1 -0
  237. package/dist/{chunk-FZU343FL.js → chunk-ZJADGNYF.js} +2 -2
  238. package/dist/chunk-ZJADGNYF.js.map +1 -0
  239. package/dist/chunk-ZYJ55N7N.js +86 -0
  240. package/dist/chunk-ZYJ55N7N.js.map +1 -0
  241. package/dist/classified/index.d.ts +16 -0
  242. package/dist/classified/index.js +40 -0
  243. package/dist/classified-marker-H6YSHYNK.js +24 -0
  244. package/dist/classified-marker-H6YSHYNK.js.map +1 -0
  245. package/dist/collection-facade-LVD22JLM.js +39 -0
  246. package/dist/computed-EXDMQODG.js +11 -0
  247. package/dist/consent/index.d.ts +4 -7
  248. package/dist/consent/index.js +13 -5
  249. package/dist/consent/index.js.map +1 -1
  250. package/dist/crdt/index.d.ts +5 -2
  251. package/dist/crdt/index.js +3 -2
  252. package/dist/crdt/index.js.map +1 -1
  253. package/dist/dead-filter-HQIE2YG7.js +28 -0
  254. package/dist/dead-filter-HQIE2YG7.js.map +1 -0
  255. package/dist/decrypt-partition-IHtxEnTi.d.ts +21 -0
  256. package/dist/delegation-BJP73GAP.js +25 -0
  257. package/dist/derivations/index.d.ts +6 -9
  258. package/dist/derivations/index.js +18 -6
  259. package/dist/derive-BME7HDWO.js +21 -0
  260. package/dist/{dev-unlock-B4kDxep_.d.ts → dev-unlock-Bmm2pgJ0.d.ts} +1 -1
  261. package/dist/discriminant-BN9REW3o.d.ts +60 -0
  262. package/dist/enclave-NHORSWSF.js +125 -0
  263. package/dist/executor-FE6X4LFX.js +9 -0
  264. package/dist/executor-KSHKRJXP.js +25 -0
  265. package/dist/executor-ZHTJJICG.js +9 -0
  266. package/dist/export-accessible-DACHM5VT.js +23 -0
  267. package/dist/extract-partition-RNENZZ4T.js +36 -0
  268. package/dist/fanout-sidecar-OFWN3NM7.js +74 -0
  269. package/dist/fanout-sidecar-OFWN3NM7.js.map +1 -0
  270. package/dist/fence-watcher-DHQ775JB.js +69 -0
  271. package/dist/fence-watcher-DHQ775JB.js.map +1 -0
  272. package/dist/find-BNGBJNKP.js +11 -0
  273. package/dist/forget/index.d.ts +36 -0
  274. package/dist/forget/index.js +25 -0
  275. package/dist/forget/index.js.map +1 -0
  276. package/dist/guards/index.d.ts +12 -9
  277. package/dist/guards/index.js +12 -5
  278. package/dist/{hash-DdpVypUp.d.cts → hash-DAJjMsCE.d.ts} +10 -1
  279. package/dist/history/index.d.ts +5 -8
  280. package/dist/history/index.js +25 -12
  281. package/dist/history/index.js.map +1 -1
  282. package/dist/i18n/index.d.ts +25 -8
  283. package/dist/i18n/index.js +137 -29
  284. package/dist/i18n/index.js.map +1 -1
  285. package/dist/in/index.d.ts +4 -0
  286. package/dist/in/index.js +1 -0
  287. package/dist/in/index.js.map +1 -0
  288. package/dist/index-B9QdHytu.d.ts +123 -0
  289. package/dist/index-DjWbxsjb.d.ts +23579 -0
  290. package/dist/index-qwuNvO2B.d.ts +144 -0
  291. package/dist/index.d.ts +1179 -449
  292. package/dist/index.js +2524 -312
  293. package/dist/index.js.map +1 -1
  294. package/dist/indexing/index.d.ts +5 -3
  295. package/dist/indexing/index.js +6 -5
  296. package/dist/indexing/index.js.map +1 -1
  297. package/dist/issue-NDI4CVZU.js +19 -0
  298. package/dist/issue-NDI4CVZU.js.map +1 -0
  299. package/dist/json-schema-I22JCYCG.js +44 -0
  300. package/dist/json-schema-I22JCYCG.js.map +1 -0
  301. package/dist/lazy/index.d.ts +20 -0
  302. package/dist/lazy/index.js +12 -0
  303. package/dist/lazy/index.js.map +1 -0
  304. package/dist/ledger-6NDS2EO4.js +42 -0
  305. package/dist/ledger-6NDS2EO4.js.map +1 -0
  306. package/dist/liberate-HN3RIGIP.js +24 -0
  307. package/dist/liberate-HN3RIGIP.js.map +1 -0
  308. package/dist/link-set-SJB2MVJV.js +31 -0
  309. package/dist/link-set-SJB2MVJV.js.map +1 -0
  310. package/dist/materialized-views/index.d.ts +23 -20
  311. package/dist/materialized-views/index.js +26 -12
  312. package/dist/mime-magic-bBj5OgUC.d.ts +103 -0
  313. package/dist/noydb-BWF6EPIR.js +66 -0
  314. package/dist/noydb-BWF6EPIR.js.map +1 -0
  315. package/dist/on/index.d.ts +4 -0
  316. package/dist/on/index.js +17 -0
  317. package/dist/on/index.js.map +1 -0
  318. package/dist/overlay-views/index.d.ts +26 -11
  319. package/dist/overlay-views/index.js +7 -6
  320. package/dist/periods/index.d.ts +4 -7
  321. package/dist/periods/index.js +27 -9
  322. package/dist/pod/index.d.ts +62 -0
  323. package/dist/pod/index.js +67 -0
  324. package/dist/pod/index.js.map +1 -0
  325. package/dist/policy-WGNAG5H6.js +41 -0
  326. package/dist/policy-WGNAG5H6.js.map +1 -0
  327. package/dist/portability/index.d.ts +19 -0
  328. package/dist/portability/index.js +43 -0
  329. package/dist/portability/index.js.map +1 -0
  330. package/dist/post-register-CWKBQRC7.js +55 -0
  331. package/dist/post-register-CWKBQRC7.js.map +1 -0
  332. package/dist/{public-envelope-BW6OXORV.js → public-envelope-EJLVIFX7.js} +6 -5
  333. package/dist/public-envelope-EJLVIFX7.js.map +1 -0
  334. package/dist/query/index.d.ts +4 -3
  335. package/dist/query/index.js +24 -13
  336. package/dist/read-only-facade-CHCKSEPD.js +8 -0
  337. package/dist/read-only-facade-CHCKSEPD.js.map +1 -0
  338. package/dist/register-SBIX7TVV.js +23 -0
  339. package/dist/register-SBIX7TVV.js.map +1 -0
  340. package/dist/registry-3EQG6OOE.js +18 -0
  341. package/dist/registry-3EQG6OOE.js.map +1 -0
  342. package/dist/registry-CA327ACV.js +9 -0
  343. package/dist/registry-CA327ACV.js.map +1 -0
  344. package/dist/registry-E7OXOTSV.js +19 -0
  345. package/dist/registry-E7OXOTSV.js.map +1 -0
  346. package/dist/registry-VW6P6A3J.js +8 -0
  347. package/dist/registry-VW6P6A3J.js.map +1 -0
  348. package/dist/request-withdrawal-KAH2AAXC.js +31 -0
  349. package/dist/request-withdrawal-KAH2AAXC.js.map +1 -0
  350. package/dist/reveal-R3JLHMUF.js +38 -0
  351. package/dist/reveal-R3JLHMUF.js.map +1 -0
  352. package/dist/revoke-IXLOJ3IH.js +24 -0
  353. package/dist/revoke-IXLOJ3IH.js.map +1 -0
  354. package/dist/satellites/index.d.ts +4 -0
  355. package/dist/satellites/index.js +8 -0
  356. package/dist/satellites/index.js.map +1 -0
  357. package/dist/sealed-record/index.d.ts +68 -0
  358. package/dist/sealed-record/index.js +71 -0
  359. package/dist/sealed-record/index.js.map +1 -0
  360. package/dist/session/index.d.ts +5 -8
  361. package/dist/session/index.js +13 -5
  362. package/dist/session/index.js.map +1 -1
  363. package/dist/shadow/index.d.ts +4 -7
  364. package/dist/shadow/index.js +4 -3
  365. package/dist/shadow/index.js.map +1 -1
  366. package/dist/signer-Y46N2GJ3.js +25 -0
  367. package/dist/signer-Y46N2GJ3.js.map +1 -0
  368. package/dist/snapshots/index.d.ts +5 -8
  369. package/dist/snapshots/index.js +19 -11
  370. package/dist/snapshots/index.js.map +1 -1
  371. package/dist/{stale-6ZDBTQT7.js → stale-Z7IW6RIL.js} +3 -2
  372. package/dist/stale-Z7IW6RIL.js.map +1 -0
  373. package/dist/storage-ADNP2UWI.js +23 -0
  374. package/dist/storage-ADNP2UWI.js.map +1 -0
  375. package/dist/store-coordination-provider-DTDMI6VL.js +142 -0
  376. package/dist/store-coordination-provider-DTDMI6VL.js.map +1 -0
  377. package/dist/subject-index-CyOgGMJL.d.ts +380 -0
  378. package/dist/sync/index.d.ts +3 -6
  379. package/dist/sync/index.js +13 -6
  380. package/dist/sync/index.js.map +1 -1
  381. package/dist/team/index.d.ts +46 -10
  382. package/dist/team/index.js +35 -18
  383. package/dist/tiers/index.d.ts +4 -0
  384. package/dist/tiers/index.js +39 -0
  385. package/dist/tiers/index.js.map +1 -0
  386. package/dist/to/index.d.ts +4 -0
  387. package/dist/to/index.js +16 -0
  388. package/dist/to/index.js.map +1 -0
  389. package/dist/transition-guard-DI-krBsZ.d.ts +165 -0
  390. package/dist/tx/index.d.ts +22 -9
  391. package/dist/tx/index.js +13 -8
  392. package/dist/tx/index.js.map +1 -1
  393. package/dist/ui/index.d.ts +4 -0
  394. package/dist/ui/index.js +1 -0
  395. package/dist/ui/index.js.map +1 -0
  396. package/dist/ulid-DRH25k3y.d.ts +66 -0
  397. package/dist/ulid-PTAIMDG4.js +10 -0
  398. package/dist/ulid-PTAIMDG4.js.map +1 -0
  399. package/dist/util/index.d.ts +2 -0
  400. package/dist/util/index.js +7 -2
  401. package/dist/util/index.js.map +1 -1
  402. package/dist/validators-BUcli5Nh.d.ts +101 -0
  403. package/dist/vault-diff-Z2DUayMe.d.ts +147 -0
  404. package/dist/verify-JPF2YR5E.js +139 -0
  405. package/dist/verify-JPF2YR5E.js.map +1 -0
  406. package/dist/walk-XYA2O3LW.js +241 -0
  407. package/dist/walk-XYA2O3LW.js.map +1 -0
  408. package/dist/with/index.d.ts +37 -0
  409. package/dist/with/index.js +31 -0
  410. package/dist/with/index.js.map +1 -0
  411. package/dist/{with-materialized-view-BLkQxoQN.d.ts → with-materialized-view-BUmzlXue.d.ts} +1 -1
  412. package/dist/{with-overlayed-view-CRsSEwHR.d.ts → with-overlayed-view-m4FaXXTO.d.ts} +2 -3
  413. package/dist/with-rollup-DEKGI9vb.d.ts +47 -0
  414. package/dist/withdraw-accessible-WLV4MTEN.js +28 -0
  415. package/dist/withdraw-accessible-WLV4MTEN.js.map +1 -0
  416. package/dist/zod-HAJM7LMS.js +14763 -0
  417. package/dist/zod-HAJM7LMS.js.map +1 -0
  418. package/package.json +122 -202
  419. package/dist/aggregate/index.cjs.map +0 -1
  420. package/dist/aggregate/index.d.cts +0 -38
  421. package/dist/attestation/index.cjs +0 -305
  422. package/dist/attestation/index.cjs.map +0 -1
  423. package/dist/attestation/index.d.cts +0 -52
  424. package/dist/blobs/index.cjs +0 -1480
  425. package/dist/blobs/index.cjs.map +0 -1
  426. package/dist/blobs/index.d.cts +0 -46
  427. package/dist/bundle/index.cjs +0 -19264
  428. package/dist/bundle/index.cjs.map +0 -1
  429. package/dist/bundle/index.d.cts +0 -176
  430. package/dist/chunk-22DWZL57.js.map +0 -1
  431. package/dist/chunk-2GLDA55J.js.map +0 -1
  432. package/dist/chunk-2QR2PQTT.js.map +0 -1
  433. package/dist/chunk-2WUSG3IT.js.map +0 -1
  434. package/dist/chunk-3BFJOWSU.js.map +0 -1
  435. package/dist/chunk-3YPCK6JX.js.map +0 -1
  436. package/dist/chunk-53XBRIRT.js.map +0 -1
  437. package/dist/chunk-5T22KDPN.js.map +0 -1
  438. package/dist/chunk-5XHKQ56N.js +0 -340
  439. package/dist/chunk-5XHKQ56N.js.map +0 -1
  440. package/dist/chunk-6CME4UEK.js +0 -10329
  441. package/dist/chunk-6CME4UEK.js.map +0 -1
  442. package/dist/chunk-6STK5TQP.js +0 -139
  443. package/dist/chunk-6STK5TQP.js.map +0 -1
  444. package/dist/chunk-A3JMGXPG.js.map +0 -1
  445. package/dist/chunk-B6PB7JLN.js.map +0 -1
  446. package/dist/chunk-BVRYKATC.js.map +0 -1
  447. package/dist/chunk-DE6GKS6G.js +0 -79
  448. package/dist/chunk-DE6GKS6G.js.map +0 -1
  449. package/dist/chunk-DFMLEQZB.js.map +0 -1
  450. package/dist/chunk-DJHHA6XH.js.map +0 -1
  451. package/dist/chunk-DL3HWOQ5.js.map +0 -1
  452. package/dist/chunk-DONMZAD2.js.map +0 -1
  453. package/dist/chunk-EMIGCR7X.js.map +0 -1
  454. package/dist/chunk-F3GDRNUT.js.map +0 -1
  455. package/dist/chunk-FZU343FL.js.map +0 -1
  456. package/dist/chunk-H2X3ISXG.js.map +0 -1
  457. package/dist/chunk-HNRHLRDC.js.map +0 -1
  458. package/dist/chunk-I5FOWO4J.js.map +0 -1
  459. package/dist/chunk-J66GRPNH.js.map +0 -1
  460. package/dist/chunk-JWRVQKRZ.js.map +0 -1
  461. package/dist/chunk-K3DK3NU5.js.map +0 -1
  462. package/dist/chunk-ML236QKC.js.map +0 -1
  463. package/dist/chunk-NONAAENK.js.map +0 -1
  464. package/dist/chunk-O3VZPBZG.js.map +0 -1
  465. package/dist/chunk-OIF6LZUR.js.map +0 -1
  466. package/dist/chunk-OQ6PIGHA.js +0 -19
  467. package/dist/chunk-OQ6PIGHA.js.map +0 -1
  468. package/dist/chunk-PE2FR4J3.js.map +0 -1
  469. package/dist/chunk-PP6W64Y3.js.map +0 -1
  470. package/dist/chunk-PX35GA7L.js.map +0 -1
  471. package/dist/chunk-QEILDE6R.js +0 -793
  472. package/dist/chunk-QEILDE6R.js.map +0 -1
  473. package/dist/chunk-QODLLGQ7.js.map +0 -1
  474. package/dist/chunk-RAZ4OVLL.js +0 -51
  475. package/dist/chunk-RAZ4OVLL.js.map +0 -1
  476. package/dist/chunk-SYMWGEET.js.map +0 -1
  477. package/dist/chunk-T7JEBOGN.js.map +0 -1
  478. package/dist/chunk-TFBP23BX.js.map +0 -1
  479. package/dist/chunk-TV3YZ35S.js.map +0 -1
  480. package/dist/chunk-U26HQ6KJ.js.map +0 -1
  481. package/dist/chunk-UF3BUNQZ.js +0 -1
  482. package/dist/chunk-UMLVJTYV.js +0 -20
  483. package/dist/chunk-UMLVJTYV.js.map +0 -1
  484. package/dist/chunk-VTKGMEPP.js.map +0 -1
  485. package/dist/chunk-W6EQLGMB.js +0 -100
  486. package/dist/chunk-W6EQLGMB.js.map +0 -1
  487. package/dist/chunk-WIRRPTFH.js +0 -17
  488. package/dist/chunk-WIRRPTFH.js.map +0 -1
  489. package/dist/chunk-WPLVTJ5D.js.map +0 -1
  490. package/dist/chunk-XJFLDA7A.js.map +0 -1
  491. package/dist/chunk-Z6FNBOTC.js.map +0 -1
  492. package/dist/chunk-ZYWZWG6G.js.map +0 -1
  493. package/dist/consent/index.cjs +0 -204
  494. package/dist/consent/index.cjs.map +0 -1
  495. package/dist/consent/index.d.cts +0 -25
  496. package/dist/crdt/index.cjs +0 -152
  497. package/dist/crdt/index.cjs.map +0 -1
  498. package/dist/crdt/index.d.cts +0 -30
  499. package/dist/crypto-HTZ4FJOP.js +0 -44
  500. package/dist/delegation-RI54P6I5.js +0 -17
  501. package/dist/derivations/index.cjs +0 -351
  502. package/dist/derivations/index.cjs.map +0 -1
  503. package/dist/derivations/index.d.cts +0 -72
  504. package/dist/dev-unlock-BIoEFbwm.d.cts +0 -263
  505. package/dist/executor-5PNY7LGW.js +0 -8
  506. package/dist/executor-B4QIYGZX.js +0 -8
  507. package/dist/executor-BWXXDQ7K.js +0 -11
  508. package/dist/fanout-sidecar-OKPMMPLG.js +0 -51
  509. package/dist/fanout-sidecar-OKPMMPLG.js.map +0 -1
  510. package/dist/guards/index.cjs +0 -322
  511. package/dist/guards/index.cjs.map +0 -1
  512. package/dist/guards/index.d.cts +0 -31
  513. package/dist/hash-HJqD14vS.d.ts +0 -63
  514. package/dist/history/index.cjs +0 -1222
  515. package/dist/history/index.cjs.map +0 -1
  516. package/dist/history/index.d.cts +0 -63
  517. package/dist/i18n/index.cjs +0 -1100
  518. package/dist/i18n/index.cjs.map +0 -1
  519. package/dist/i18n/index.d.cts +0 -39
  520. package/dist/index-4fBVt8j9.d.cts +0 -2387
  521. package/dist/index-D8I_pyJD.d.ts +0 -2387
  522. package/dist/index.cjs +0 -24487
  523. package/dist/index.cjs.map +0 -1
  524. package/dist/index.d.cts +0 -776
  525. package/dist/indexing/index.cjs +0 -742
  526. package/dist/indexing/index.cjs.map +0 -1
  527. package/dist/indexing/index.d.cts +0 -36
  528. package/dist/issue-VGDPP4B5.js +0 -12
  529. package/dist/lazy-builder-7tIpFyWN.d.ts +0 -304
  530. package/dist/lazy-builder-wY4pMCEe.d.cts +0 -304
  531. package/dist/ledger-TMRZYNVJ.js +0 -33
  532. package/dist/materialized-views/index.cjs +0 -854
  533. package/dist/materialized-views/index.cjs.map +0 -1
  534. package/dist/materialized-views/index.d.cts +0 -186
  535. package/dist/mime-magic-CBBSOkjm.d.cts +0 -50
  536. package/dist/mime-magic-CBBSOkjm.d.ts +0 -50
  537. package/dist/noydb-G725ZSZG.js +0 -34
  538. package/dist/overlay-views/index.cjs +0 -359
  539. package/dist/overlay-views/index.cjs.map +0 -1
  540. package/dist/overlay-views/index.d.cts +0 -82
  541. package/dist/periods/index.cjs +0 -1041
  542. package/dist/periods/index.cjs.map +0 -1
  543. package/dist/periods/index.d.cts +0 -22
  544. package/dist/predicate-BSAGEyu5.d.cts +0 -209
  545. package/dist/predicate-BSAGEyu5.d.ts +0 -209
  546. package/dist/query/index.cjs +0 -2375
  547. package/dist/query/index.cjs.map +0 -1
  548. package/dist/query/index.d.cts +0 -3
  549. package/dist/read-only-facade-ITU6L7BL.js +0 -7
  550. package/dist/registry-3QP3YKQS.js +0 -8
  551. package/dist/registry-DKEXOJVO.js +0 -7
  552. package/dist/registry-OJIOSBV6.js +0 -10
  553. package/dist/registry-USRVT6YF.js +0 -8
  554. package/dist/revoke-JCC7N56X.js +0 -17
  555. package/dist/session/index.cjs +0 -495
  556. package/dist/session/index.cjs.map +0 -1
  557. package/dist/session/index.d.cts +0 -46
  558. package/dist/shadow/index.cjs +0 -133
  559. package/dist/shadow/index.cjs.map +0 -1
  560. package/dist/shadow/index.d.cts +0 -17
  561. package/dist/signer-72QAUSVW.js +0 -18
  562. package/dist/snapshots/index.cjs +0 -937
  563. package/dist/snapshots/index.cjs.map +0 -1
  564. package/dist/snapshots/index.d.cts +0 -28
  565. package/dist/store/index.cjs +0 -1083
  566. package/dist/store/index.cjs.map +0 -1
  567. package/dist/store/index.d.cts +0 -492
  568. package/dist/store/index.d.ts +0 -492
  569. package/dist/store/index.js +0 -37
  570. package/dist/strategy-BSxFXGzb.d.cts +0 -110
  571. package/dist/strategy-BSxFXGzb.d.ts +0 -110
  572. package/dist/strategy-DSTrsZ8t.d.cts +0 -601
  573. package/dist/strategy-DSTrsZ8t.d.ts +0 -601
  574. package/dist/sync/index.cjs +0 -1062
  575. package/dist/sync/index.cjs.map +0 -1
  576. package/dist/sync/index.d.cts +0 -43
  577. package/dist/team/index.cjs +0 -2798
  578. package/dist/team/index.cjs.map +0 -1
  579. package/dist/team/index.d.cts +0 -118
  580. package/dist/tx/index.cjs +0 -544
  581. package/dist/tx/index.cjs.map +0 -1
  582. package/dist/tx/index.d.cts +0 -21
  583. package/dist/types-Df28QFKb.d.ts +0 -12818
  584. package/dist/types-DyXYr8rE.d.cts +0 -12818
  585. package/dist/ulid-COREQ2RQ.js +0 -9
  586. package/dist/ulid-Drr7ykr6.d.cts +0 -603
  587. package/dist/util/index.cjs +0 -230
  588. package/dist/util/index.cjs.map +0 -1
  589. package/dist/util/index.d.cts +0 -77
  590. package/dist/with-derivation-DFnFByiQ.d.ts +0 -13
  591. package/dist/with-derivation-DU3Sjazm.d.cts +0 -13
  592. package/dist/with-guard-ByyxmEe7.d.cts +0 -18
  593. package/dist/with-guard-qube6BMI.d.ts +0 -18
  594. package/dist/with-materialized-view-BmEToIR1.d.cts +0 -27
  595. package/dist/with-overlayed-view-BMsQQbWm.d.cts +0 -13
  596. /package/dist/{chunk-UF3BUNQZ.js.map → api-TX2EX2FX.js.map} +0 -0
  597. /package/dist/{store → as}/index.js.map +0 -0
  598. /package/dist/{crypto-HTZ4FJOP.js.map → at/index.js.map} +0 -0
  599. /package/dist/{delegation-RI54P6I5.js.map → by/index.js.map} +0 -0
  600. /package/dist/{executor-5PNY7LGW.js.map → cargo/index.js.map} +0 -0
  601. /package/dist/{executor-B4QIYGZX.js.map → chunk-CHFZDSE4.js.map} +0 -0
  602. /package/dist/{executor-BWXXDQ7K.js.map → chunk-GHVIKOHT.js.map} +0 -0
  603. /package/dist/{issue-VGDPP4B5.js.map → chunk-PZ5AY32C.js.map} +0 -0
  604. /package/dist/{ledger-TMRZYNVJ.js.map → classified/index.js.map} +0 -0
  605. /package/dist/{noydb-G725ZSZG.js.map → collection-facade-LVD22JLM.js.map} +0 -0
  606. /package/dist/{public-envelope-BW6OXORV.js.map → computed-EXDMQODG.js.map} +0 -0
  607. /package/dist/{read-only-facade-ITU6L7BL.js.map → delegation-BJP73GAP.js.map} +0 -0
  608. /package/dist/{registry-3QP3YKQS.js.map → derive-BME7HDWO.js.map} +0 -0
  609. /package/dist/{registry-DKEXOJVO.js.map → enclave-NHORSWSF.js.map} +0 -0
  610. /package/dist/{registry-OJIOSBV6.js.map → executor-FE6X4LFX.js.map} +0 -0
  611. /package/dist/{registry-USRVT6YF.js.map → executor-KSHKRJXP.js.map} +0 -0
  612. /package/dist/{revoke-JCC7N56X.js.map → executor-ZHTJJICG.js.map} +0 -0
  613. /package/dist/{signer-72QAUSVW.js.map → export-accessible-DACHM5VT.js.map} +0 -0
  614. /package/dist/{stale-6ZDBTQT7.js.map → extract-partition-RNENZZ4T.js.map} +0 -0
  615. /package/dist/{ulid-COREQ2RQ.js.map → find-BNGBJNKP.js.map} +0 -0
@@ -1,365 +1,151 @@
1
+ import {
2
+ burnPaperRecoveryEntry,
3
+ loadPaperRecoveryEntries,
4
+ loadShamirRecoveryEntries,
5
+ unwrapDeksFromPaperEntry,
6
+ unwrapDeksFromShamirEntry
7
+ } from "./chunk-P33LUIML.js";
1
8
  import {
2
9
  dekKey
3
- } from "./chunk-U26HQ6KJ.js";
10
+ } from "./chunk-7BWJHO2A.js";
4
11
  import {
5
12
  assertStrongPassphrase,
6
13
  mintKeyringCanary,
7
14
  persistKeyring
8
- } from "./chunk-DONMZAD2.js";
15
+ } from "./chunk-J4LPNIGK.js";
9
16
  import {
10
- NOYDB_FORMAT_VERSION,
11
- NOYDB_KEYRING_VERSION
12
- } from "./chunk-WIRRPTFH.js";
17
+ openEnvelopeJson
18
+ } from "./chunk-MCHVVJIA.js";
13
19
  import {
14
20
  base64ToBuffer,
15
21
  bufferToBase64,
16
- decrypt,
17
22
  deriveKey,
18
23
  encrypt,
19
24
  generateSalt,
20
25
  unwrapKey,
21
26
  wrapKey
22
- } from "./chunk-PP6W64Y3.js";
27
+ } from "./chunk-3OPY6MK2.js";
28
+ import {
29
+ NOYDB_KEYRING_VERSION
30
+ } from "./chunk-YN5IAHN6.js";
23
31
  import {
24
32
  DelegationTargetMissingError,
25
33
  InvalidKeyError,
26
34
  NoAccessError,
27
- NoydbError,
28
35
  PermissionDeniedError,
29
36
  PrivilegeEscalationError,
37
+ RecoveryProfileNotImplementedError,
38
+ TeamNotEnabledError,
30
39
  ValidationError
31
- } from "./chunk-B6PB7JLN.js";
32
-
33
- // src/team/authenticators.ts
34
- async function enrollAuthenticator(store, vault, keyring, options) {
35
- const existing = keyring.authenticators.find((a) => a.id === options.id);
36
- if (existing) {
37
- throw new ValidationError(
38
- `enrollAuthenticator: slot id "${options.id}" already exists in vault "${vault}". Remove the slot first or pick a unique id.`
39
- );
40
- }
41
- const base = {
42
- id: options.id,
43
- method: options.method,
44
- enrolled_at: (/* @__PURE__ */ new Date()).toISOString(),
45
- enrolled_via_tier: options.enrolled_via_tier ?? 1,
46
- meta: options.meta
47
- };
48
- const slot = options.wrapKind === "deks" ? {
49
- ...base,
50
- wrapKind: "deks",
51
- wrapped_deks: options.wrapped_deks,
52
- iv: options.iv
53
- } : {
54
- ...base,
55
- wrapped_kek: options.wrapped_kek
56
- };
57
- const next = appendSlot(keyring, slot);
58
- await persistKeyring(store, vault, next);
59
- return next;
60
- }
61
- async function updateAuthenticator(store, vault, keyring, slotId, options) {
62
- if (options.meta === void 0) {
63
- throw new ValidationError(
64
- `updateAuthenticator: at least one of meta must be provided (slotId: "${slotId}").`
65
- );
66
- }
67
- const idx = keyring.authenticators.findIndex((a) => a.id === slotId);
68
- if (idx === -1) {
69
- throw new NoAccessError(
70
- `updateAuthenticator: slot "${slotId}" not found in vault "${vault}".`
71
- );
72
- }
73
- const existing = keyring.authenticators[idx];
74
- const mergedMeta = { ...existing.meta };
75
- for (const [k, v] of Object.entries(options.meta)) {
76
- if (v === void 0) continue;
77
- if (v === null) {
78
- delete mergedMeta[k];
79
- continue;
80
- }
81
- mergedMeta[k] = v;
82
- }
83
- const next = { ...existing, meta: mergedMeta };
84
- const nextSlots = [...keyring.authenticators];
85
- nextSlots[idx] = next;
86
- const nextKeyring = {
87
- ...keyring,
88
- authenticators: nextSlots
89
- };
90
- await persistKeyring(store, vault, nextKeyring);
91
- return nextKeyring;
92
- }
93
- async function removeAuthenticator(store, vault, keyring, slotId) {
94
- const filtered = keyring.authenticators.filter((a) => a.id !== slotId);
95
- if (filtered.length === keyring.authenticators.length) {
96
- return keyring;
97
- }
98
- const next = {
99
- ...keyring,
100
- authenticators: filtered
101
- };
102
- await persistKeyring(store, vault, next);
103
- return next;
104
- }
105
- function findAuthenticator(keyring, slotId) {
106
- return keyring.authenticators.find((a) => a.id === slotId);
107
- }
108
- function appendSlot(keyring, slot) {
109
- return {
110
- ...keyring,
111
- authenticators: [...keyring.authenticators, slot]
112
- };
113
- }
114
-
115
- // src/policy/errors.ts
116
- var PolicyDeniedError = class extends NoydbError {
117
- gate;
118
- reason;
119
- required;
120
- constructor(gate, reason, required, message) {
121
- super(
122
- "POLICY_DENIED",
123
- message ?? `Gate "${gate}" denied: ${reason}.`
124
- );
125
- this.name = "PolicyDeniedError";
126
- this.gate = gate;
127
- this.reason = reason;
128
- this.required = required;
129
- }
130
- };
131
- var RecoveryNotEnrolledError = class extends NoydbError {
132
- constructor(message = 'Recovery profile not enrolled. Pass `recovery: [{ profile: "paper", codes: 10 }]` to `createNoydb()`, or set `policy.gates["recover-passphrase"].enabled = false` to opt out of recovery (passphrase loss = data loss). See docs/subsystems/session-tiers.md.') {
133
- super("RECOVERY_NOT_ENROLLED", message);
134
- this.name = "RecoveryNotEnrolledError";
135
- }
136
- };
137
- var ManagedRecoveryNotEnrolledError = class extends NoydbError {
138
- vault;
139
- constructor(vault) {
140
- super(
141
- "MANAGED_RECOVERY_NOT_ENROLLED",
142
- `Managed-mode vault "${vault}" requires at least one strong recovery profile (Shamir today; multi-channel / admin-mediated when they ship). Paper alone is NOT strong under managed mode \u2014 losing the paper sheet would mean losing every record permanently. Bootstrap with \`db.openVaultAndEnrollRecovery("${vault}", { recovery: [{ profile: "shamir", k: 2, n: 3 }] })\`, or call \`db.enrollRecovery(vault, { profile: "shamir", k, n })\` separately, then re-attempt \`openVault\`.`
143
- );
144
- this.name = "ManagedRecoveryNotEnrolledError";
145
- this.vault = vault;
146
- }
147
- };
148
- var RecoveryProfileNotImplementedError = class extends NoydbError {
149
- profile;
150
- tracking;
151
- constructor(profile, tracking) {
152
- super(
153
- "RECOVERY_PROFILE_NOT_IMPLEMENTED",
154
- `Recovery profile "${profile}" is not yet implemented in this hub release. Tracking: ${tracking}. Use the "paper" profile via @noy-db/on-recovery in the meantime.`
155
- );
156
- this.name = "RecoveryProfileNotImplementedError";
157
- this.profile = profile;
158
- this.tracking = tracking;
159
- }
160
- };
40
+ } from "./chunk-S7VFUQM2.js";
161
41
 
162
- // src/team/wrapped-deks.ts
163
- var PBKDF2_ITERATIONS = 6e5;
164
- var SALT_BYTES = 32;
165
- var IV_BYTES = 12;
166
- var subtle = globalThis.crypto.subtle;
167
- async function mintWrappedDeksBlob(deks, credential) {
168
- const salt = crypto.getRandomValues(new Uint8Array(SALT_BYTES));
169
- const iv = crypto.getRandomValues(new Uint8Array(IV_BYTES));
170
- const wrappingKey = await deriveWrappingKey(credential, salt);
171
- const exported = {};
172
- for (const [coll, dek] of deks) {
173
- const raw = await subtle.exportKey("raw", dek);
174
- exported[coll] = bytesToBase64(new Uint8Array(raw));
175
- }
176
- const plaintext = new TextEncoder().encode(JSON.stringify({ deks: exported }));
177
- const ciphertext = await subtle.encrypt(
178
- { name: "AES-GCM", iv },
179
- wrappingKey,
180
- plaintext
181
- );
182
- return {
183
- salt: bytesToBase64(salt),
184
- iv: bytesToBase64(iv),
185
- wrappedDeks: bytesToBase64(new Uint8Array(ciphertext))
186
- };
187
- }
188
- async function unwrapDeksFromBlob(blob, credential) {
189
- const wrappingKey = await deriveWrappingKey(credential, base64ToBytes(blob.salt));
190
- const plaintext = await subtle.decrypt(
191
- { name: "AES-GCM", iv: base64ToBytes(blob.iv) },
192
- wrappingKey,
193
- base64ToBytes(blob.wrappedDeks)
194
- );
195
- const parsed = JSON.parse(new TextDecoder().decode(plaintext));
196
- const deks = /* @__PURE__ */ new Map();
197
- for (const [coll, b64] of Object.entries(parsed.deks)) {
198
- const raw = base64ToBytes(b64);
199
- const key = await subtle.importKey(
200
- "raw",
201
- raw,
202
- { name: "AES-GCM", length: 256 },
203
- true,
204
- ["encrypt", "decrypt"]
205
- );
206
- deks.set(coll, key);
207
- }
208
- return deks;
209
- }
210
- async function deriveWrappingKey(credential, salt) {
211
- const ikm = await subtle.importKey(
212
- "raw",
213
- new TextEncoder().encode(credential),
214
- "PBKDF2",
215
- false,
216
- ["deriveKey"]
217
- );
42
+ // src/with-party/team/magic-link-grant.ts
43
+ var MAGIC_LINK_GRANTS_COLLECTION = "_magic_link_grants";
44
+ var MAGIC_LINK_CONTENT_INFO_PREFIX = "noydb-magic-link-content-v1:";
45
+ var MAGIC_LINK_KEK_INFO_PREFIX = "noydb-magic-link-v1:";
46
+ async function deriveMagicLinkContentKey(serverSecret, token, vault) {
47
+ const subtle = globalThis.crypto.subtle;
48
+ const ikmBytes = serverSecret instanceof Uint8Array ? serverSecret : new TextEncoder().encode(serverSecret);
49
+ const tokenBytes = new TextEncoder().encode(token);
50
+ const saltBuffer = await subtle.digest("SHA-256", tokenBytes);
51
+ const info = new TextEncoder().encode(MAGIC_LINK_CONTENT_INFO_PREFIX + vault);
52
+ const ikm = await subtle.importKey("raw", ikmBytes, "HKDF", false, ["deriveKey"]);
218
53
  return subtle.deriveKey(
219
- {
220
- name: "PBKDF2",
221
- salt,
222
- iterations: PBKDF2_ITERATIONS,
223
- hash: "SHA-256"
224
- },
54
+ { name: "HKDF", hash: "SHA-256", salt: saltBuffer, info },
225
55
  ikm,
226
56
  { name: "AES-GCM", length: 256 },
227
57
  false,
228
58
  ["encrypt", "decrypt"]
229
59
  );
230
60
  }
231
- function bytesToBase64(b) {
232
- let s = "";
233
- for (const x of b) s += String.fromCharCode(x);
234
- return btoa(s);
235
- }
236
- function base64ToBytes(b64) {
237
- const s = atob(b64);
238
- const out = new Uint8Array(s.length);
239
- for (let i = 0; i < s.length; i++) out[i] = s.charCodeAt(i);
240
- return out;
241
- }
242
-
243
- // src/team/recovery.ts
244
- var PAPER_DOC_ID = "recovery-paper";
245
- async function loadPaperRecoveryEntries(store, vault) {
246
- const env = await store.get(vault, "_meta", PAPER_DOC_ID);
247
- if (!env) return [];
248
- try {
249
- const doc = JSON.parse(env._data);
250
- if (doc.profile !== "paper" || !Array.isArray(doc.entries)) return [];
251
- return doc.entries;
252
- } catch {
253
- return [];
61
+ async function writeMagicLinkGrant(store, vault, grantor, contentKey, grantKek, recordId, opts) {
62
+ const collectionName = opts.collection ?? null;
63
+ const sourceKey = collectionName ? dekKey(collectionName, opts.tier) : `__any#${opts.tier}`;
64
+ const sourceDek = grantor.deks.get(sourceKey);
65
+ if (!sourceDek) {
66
+ throw new DelegationTargetMissingError(
67
+ `grantor cannot find tier ${opts.tier} DEK for ${collectionName ?? "(any)"}`
68
+ );
254
69
  }
255
- }
256
- async function savePaperRecoveryEntries(store, vault, entries) {
257
- const doc = {
258
- _noydb_recovery: 1,
259
- profile: "paper",
260
- entries
70
+ const wrappedDek = await wrapKey(sourceDek, grantKek);
71
+ const until = typeof opts.until === "string" ? opts.until : opts.until.toISOString();
72
+ const createdAt = (/* @__PURE__ */ new Date()).toISOString();
73
+ const payload = {
74
+ id: recordId,
75
+ toUser: opts.toUser,
76
+ fromUser: grantor.userId,
77
+ tier: opts.tier,
78
+ collection: collectionName,
79
+ ...opts.record && { record: opts.record },
80
+ until,
81
+ wrappedDek,
82
+ createdAt,
83
+ ...opts.note && { note: opts.note }
261
84
  };
85
+ const { iv, data } = await encrypt(JSON.stringify(payload), contentKey);
262
86
  const envelope = {
263
- _noydb: NOYDB_FORMAT_VERSION,
87
+ _noydb: 1,
264
88
  _v: 1,
265
- _ts: (/* @__PURE__ */ new Date()).toISOString(),
266
- _iv: "",
267
- _data: JSON.stringify(doc)
89
+ _ts: createdAt,
90
+ _iv: iv,
91
+ _data: data,
92
+ _by: grantor.userId
268
93
  };
269
- await store.put(vault, "_meta", PAPER_DOC_ID, envelope);
270
- }
271
- async function burnPaperRecoveryEntry(store, vault, codeId) {
272
- const entries = await loadPaperRecoveryEntries(store, vault);
273
- const remaining = entries.filter((e) => e.codeId !== codeId);
274
- await savePaperRecoveryEntries(store, vault, remaining);
275
- }
276
- async function hasRecoveryEnrolled(store, vault) {
277
- const paper = await loadPaperRecoveryEntries(store, vault);
278
- if (paper.length > 0) return true;
279
- const shamir = await loadShamirRecoveryEntries(store, vault);
280
- return shamir.length > 0;
281
- }
282
- async function hasStrongRecoveryEnrolled(store, vault) {
283
- const shamir = await loadShamirRecoveryEntries(store, vault);
284
- return shamir.length > 0;
94
+ await store.put(vault, MAGIC_LINK_GRANTS_COLLECTION, recordId, envelope);
95
+ return { recordId, payload };
285
96
  }
286
- var SHAMIR_DOC_ID = "recovery-shamir";
287
- async function loadShamirRecoveryEntries(store, vault) {
288
- const env = await store.get(vault, "_meta", SHAMIR_DOC_ID);
289
- if (!env) return [];
97
+ async function readMagicLinkGrantRecord(store, vault, contentKey, recordId) {
98
+ const env = await store.get(vault, MAGIC_LINK_GRANTS_COLLECTION, recordId);
99
+ if (!env) return null;
290
100
  try {
291
- const doc = JSON.parse(env._data);
292
- if (doc.profile !== "shamir" || !Array.isArray(doc.entries)) return [];
293
- return doc.entries;
101
+ const json = await openEnvelopeJson(env, contentKey);
102
+ return JSON.parse(json);
294
103
  } catch {
295
- return [];
104
+ return null;
296
105
  }
297
106
  }
298
- async function saveShamirRecoveryEntries(store, vault, entries) {
299
- const doc = {
300
- _noydb_recovery: 1,
301
- profile: "shamir",
302
- entries
303
- };
304
- const envelope = {
305
- _noydb: NOYDB_FORMAT_VERSION,
306
- _v: 1,
307
- _ts: (/* @__PURE__ */ new Date()).toISOString(),
308
- _iv: "",
309
- _data: JSON.stringify(doc)
310
- };
311
- await store.put(vault, "_meta", SHAMIR_DOC_ID, envelope);
312
- }
313
- async function mintShamirRecoveryEntry(provider, deks, entryId, k, n, label) {
314
- const recoverySecret = crypto.getRandomValues(new Uint8Array(32));
315
- try {
316
- const credential = bytesToBase642(recoverySecret);
317
- const blob = await mintWrappedDeksBlob(deks, credential);
318
- const shareStrings = provider.splitToShares(recoverySecret, k, n);
319
- const entry = {
320
- ...blob,
321
- entryId,
322
- k,
323
- n,
324
- enrolledAt: (/* @__PURE__ */ new Date()).toISOString(),
325
- ...label !== void 0 && { label }
326
- };
327
- return { entry, shareStrings };
328
- } finally {
329
- recoverySecret.fill(0);
107
+ async function listMagicLinkGrants(store, vault, contentKey, token) {
108
+ const ids = await store.list(vault, MAGIC_LINK_GRANTS_COLLECTION);
109
+ const matching = ids.filter((id) => id === token || id.startsWith(`${token}:`));
110
+ const out = [];
111
+ for (const id of matching) {
112
+ const payload = await readMagicLinkGrantRecord(store, vault, contentKey, id);
113
+ if (payload) out.push(payload);
330
114
  }
115
+ return out;
331
116
  }
332
- async function unwrapDeksFromShamirEntry(provider, entry, shareStrings) {
333
- if (shareStrings.length < entry.k) {
334
- throw new Error(
335
- `Insufficient shares: this Shamir entry needs ${entry.k} of ${entry.n}, but ${shareStrings.length} were provided.`
336
- );
337
- }
338
- const secret = provider.combineShares(shareStrings);
339
- try {
340
- return await unwrapDeksFromBlob(entry, bytesToBase642(secret));
341
- } finally {
342
- secret.fill(0);
343
- }
117
+ async function unwrapMagicLinkGrant(payload, grantKek) {
118
+ return unwrapKey(payload.wrappedDek, grantKek);
344
119
  }
345
- function bytesToBase642(b) {
346
- let s = "";
347
- for (const x of b) s += String.fromCharCode(x);
348
- return btoa(s);
120
+ async function revokeMagicLinkGrant(store, vault, token) {
121
+ const ids = await store.list(vault, MAGIC_LINK_GRANTS_COLLECTION);
122
+ const matching = ids.filter((id) => id === token || id.startsWith(`${token}:`));
123
+ for (const id of matching) {
124
+ await store.delete(vault, MAGIC_LINK_GRANTS_COLLECTION, id);
125
+ }
126
+ return matching.length;
349
127
  }
350
- async function mintPaperRecoveryEntry(deks, code, codeId) {
351
- const blob = await mintWrappedDeksBlob(deks, code);
352
- return {
353
- ...blob,
354
- codeId,
355
- enrolledAt: (/* @__PURE__ */ new Date()).toISOString()
356
- };
128
+ function magicLinkGrantRecordId(token, index) {
129
+ return index === 0 ? token : `${token}:${index}`;
357
130
  }
358
- async function unwrapDeksFromPaperEntry(entry, code) {
359
- return unwrapDeksFromBlob(entry, code);
131
+ function isMagicLinkGrantExpired(payload, now = /* @__PURE__ */ new Date()) {
132
+ return payload.until <= now.toISOString();
360
133
  }
361
134
 
362
- // src/team/rotate-recover.ts
135
+ // src/port/with/team-strategy.ts
136
+ var NO_TEAM = {
137
+ async grant() {
138
+ throw new TeamNotEnabledError();
139
+ },
140
+ async revoke() {
141
+ throw new TeamNotEnabledError();
142
+ },
143
+ async rotate() {
144
+ throw new TeamNotEnabledError();
145
+ }
146
+ };
147
+
148
+ // src/with-party/team/rotate-recover.ts
363
149
  async function rotatePassphrase(store, vault, userId, input) {
364
150
  if (!input.allowWeakPassphrase) {
365
151
  assertStrongPassphrase(input.newPassphrase, input.passphrasePolicy);
@@ -631,7 +417,7 @@ async function writeKeyringFile(store, vault, userId, file) {
631
417
  await store.put(vault, "_keyring", userId, envelope);
632
418
  }
633
419
 
634
- // src/team/peer-recover.ts
420
+ // src/with-party/team/peer-recover.ts
635
421
  var ADMIN_RECOVERABLE_TARGETS = ["operator", "viewer", "client", "admin"];
636
422
  function canRecover(callerRole, targetRole) {
637
423
  if (callerRole === "owner") return true;
@@ -697,124 +483,89 @@ async function recoverUser(store, vault, callerKeyring, options) {
697
483
  await store.put(vault, "_keyring", options.userId, envelope);
698
484
  }
699
485
 
700
- // src/team/magic-link-grant.ts
701
- var MAGIC_LINK_GRANTS_COLLECTION = "_magic_link_grants";
702
- var MAGIC_LINK_CONTENT_INFO_PREFIX = "noydb-magic-link-content-v1:";
703
- var MAGIC_LINK_KEK_INFO_PREFIX = "noydb-magic-link-v1:";
704
- async function deriveMagicLinkContentKey(serverSecret, token, vault) {
705
- const subtle2 = globalThis.crypto.subtle;
706
- const ikmBytes = serverSecret instanceof Uint8Array ? serverSecret : new TextEncoder().encode(serverSecret);
707
- const tokenBytes = new TextEncoder().encode(token);
708
- const saltBuffer = await subtle2.digest("SHA-256", tokenBytes);
709
- const info = new TextEncoder().encode(MAGIC_LINK_CONTENT_INFO_PREFIX + vault);
710
- const ikm = await subtle2.importKey("raw", ikmBytes, "HKDF", false, ["deriveKey"]);
711
- return subtle2.deriveKey(
712
- { name: "HKDF", hash: "SHA-256", salt: saltBuffer, info },
713
- ikm,
714
- { name: "AES-GCM", length: 256 },
715
- false,
716
- ["encrypt", "decrypt"]
717
- );
718
- }
719
- async function writeMagicLinkGrant(store, vault, grantor, contentKey, grantKek, recordId, opts) {
720
- const collectionName = opts.collection ?? null;
721
- const sourceKey = collectionName ? dekKey(collectionName, opts.tier) : `__any#${opts.tier}`;
722
- const sourceDek = grantor.deks.get(sourceKey);
723
- if (!sourceDek) {
724
- throw new DelegationTargetMissingError(
725
- `grantor cannot find tier ${opts.tier} DEK for ${collectionName ?? "(any)"}`
486
+ // src/with-party/team/authenticators.ts
487
+ async function enrollAuthenticator(store, vault, keyring, options) {
488
+ const existing = keyring.authenticators.find((a) => a.id === options.id);
489
+ if (existing) {
490
+ throw new ValidationError(
491
+ `enrollAuthenticator: slot id "${options.id}" already exists in vault "${vault}". Remove the slot first or pick a unique id.`
726
492
  );
727
493
  }
728
- const wrappedDek = await wrapKey(sourceDek, grantKek);
729
- const until = typeof opts.until === "string" ? opts.until : opts.until.toISOString();
730
- const createdAt = (/* @__PURE__ */ new Date()).toISOString();
731
- const payload = {
732
- id: recordId,
733
- toUser: opts.toUser,
734
- fromUser: grantor.userId,
735
- tier: opts.tier,
736
- collection: collectionName,
737
- ...opts.record && { record: opts.record },
738
- until,
739
- wrappedDek,
740
- createdAt,
741
- ...opts.note && { note: opts.note }
494
+ const base = {
495
+ id: options.id,
496
+ method: options.method,
497
+ enrolled_at: (/* @__PURE__ */ new Date()).toISOString(),
498
+ enrolled_via_tier: options.enrolled_via_tier ?? 1,
499
+ meta: options.meta
742
500
  };
743
- const { iv, data } = await encrypt(JSON.stringify(payload), contentKey);
744
- const envelope = {
745
- _noydb: 1,
746
- _v: 1,
747
- _ts: createdAt,
748
- _iv: iv,
749
- _data: data,
750
- _by: grantor.userId
501
+ const slot = options.wrapKind === "deks" ? {
502
+ ...base,
503
+ wrapKind: "deks",
504
+ wrapped_deks: options.wrapped_deks,
505
+ iv: options.iv
506
+ } : {
507
+ ...base,
508
+ wrapped_kek: options.wrapped_kek
751
509
  };
752
- await store.put(vault, MAGIC_LINK_GRANTS_COLLECTION, recordId, envelope);
753
- return { recordId, payload };
510
+ const next = appendSlot(keyring, slot);
511
+ await persistKeyring(store, vault, next);
512
+ return next;
754
513
  }
755
- async function readMagicLinkGrantRecord(store, vault, contentKey, recordId) {
756
- const env = await store.get(vault, MAGIC_LINK_GRANTS_COLLECTION, recordId);
757
- if (!env) return null;
758
- try {
759
- const json = await decrypt(env._iv, env._data, contentKey);
760
- return JSON.parse(json);
761
- } catch {
762
- return null;
514
+ async function updateAuthenticator(store, vault, keyring, slotId, options) {
515
+ if (options.meta === void 0) {
516
+ throw new ValidationError(
517
+ `updateAuthenticator: at least one of meta must be provided (slotId: "${slotId}").`
518
+ );
763
519
  }
764
- }
765
- async function listMagicLinkGrants(store, vault, contentKey, token) {
766
- const ids = await store.list(vault, MAGIC_LINK_GRANTS_COLLECTION);
767
- const matching = ids.filter((id) => id === token || id.startsWith(`${token}:`));
768
- const out = [];
769
- for (const id of matching) {
770
- const payload = await readMagicLinkGrantRecord(store, vault, contentKey, id);
771
- if (payload) out.push(payload);
520
+ const idx = keyring.authenticators.findIndex((a) => a.id === slotId);
521
+ if (idx === -1) {
522
+ throw new NoAccessError(
523
+ `updateAuthenticator: slot "${slotId}" not found in vault "${vault}".`
524
+ );
772
525
  }
773
- return out;
774
- }
775
- async function unwrapMagicLinkGrant(payload, grantKek) {
776
- return unwrapKey(payload.wrappedDek, grantKek);
526
+ const existing = keyring.authenticators[idx];
527
+ const mergedMeta = { ...existing.meta };
528
+ for (const [k, v] of Object.entries(options.meta)) {
529
+ if (v === void 0) continue;
530
+ if (v === null) {
531
+ delete mergedMeta[k];
532
+ continue;
533
+ }
534
+ mergedMeta[k] = v;
535
+ }
536
+ const next = { ...existing, meta: mergedMeta };
537
+ const nextSlots = [...keyring.authenticators];
538
+ nextSlots[idx] = next;
539
+ const nextKeyring = {
540
+ ...keyring,
541
+ authenticators: nextSlots
542
+ };
543
+ await persistKeyring(store, vault, nextKeyring);
544
+ return nextKeyring;
777
545
  }
778
- async function revokeMagicLinkGrant(store, vault, token) {
779
- const ids = await store.list(vault, MAGIC_LINK_GRANTS_COLLECTION);
780
- const matching = ids.filter((id) => id === token || id.startsWith(`${token}:`));
781
- for (const id of matching) {
782
- await store.delete(vault, MAGIC_LINK_GRANTS_COLLECTION, id);
546
+ async function removeAuthenticator(store, vault, keyring, slotId) {
547
+ const filtered = keyring.authenticators.filter((a) => a.id !== slotId);
548
+ if (filtered.length === keyring.authenticators.length) {
549
+ return keyring;
783
550
  }
784
- return matching.length;
551
+ const next = {
552
+ ...keyring,
553
+ authenticators: filtered
554
+ };
555
+ await persistKeyring(store, vault, next);
556
+ return next;
785
557
  }
786
- function magicLinkGrantRecordId(token, index) {
787
- return index === 0 ? token : `${token}:${index}`;
558
+ function findAuthenticator(keyring, slotId) {
559
+ return keyring.authenticators.find((a) => a.id === slotId);
788
560
  }
789
- function isMagicLinkGrantExpired(payload, now = /* @__PURE__ */ new Date()) {
790
- return payload.until <= now.toISOString();
561
+ function appendSlot(keyring, slot) {
562
+ return {
563
+ ...keyring,
564
+ authenticators: [...keyring.authenticators, slot]
565
+ };
791
566
  }
792
567
 
793
568
  export {
794
- enrollAuthenticator,
795
- updateAuthenticator,
796
- removeAuthenticator,
797
- findAuthenticator,
798
- PolicyDeniedError,
799
- RecoveryNotEnrolledError,
800
- ManagedRecoveryNotEnrolledError,
801
- RecoveryProfileNotImplementedError,
802
- mintWrappedDeksBlob,
803
- unwrapDeksFromBlob,
804
- loadPaperRecoveryEntries,
805
- savePaperRecoveryEntries,
806
- burnPaperRecoveryEntry,
807
- hasRecoveryEnrolled,
808
- hasStrongRecoveryEnrolled,
809
- loadShamirRecoveryEntries,
810
- saveShamirRecoveryEntries,
811
- mintShamirRecoveryEntry,
812
- unwrapDeksFromShamirEntry,
813
- mintPaperRecoveryEntry,
814
- unwrapDeksFromPaperEntry,
815
- rotatePassphrase,
816
- recoverPassphrase,
817
- recoverUser,
818
569
  MAGIC_LINK_GRANTS_COLLECTION,
819
570
  MAGIC_LINK_CONTENT_INFO_PREFIX,
820
571
  MAGIC_LINK_KEK_INFO_PREFIX,
@@ -825,6 +576,14 @@ export {
825
576
  unwrapMagicLinkGrant,
826
577
  revokeMagicLinkGrant,
827
578
  magicLinkGrantRecordId,
828
- isMagicLinkGrantExpired
579
+ isMagicLinkGrantExpired,
580
+ NO_TEAM,
581
+ rotatePassphrase,
582
+ recoverPassphrase,
583
+ recoverUser,
584
+ enrollAuthenticator,
585
+ updateAuthenticator,
586
+ removeAuthenticator,
587
+ findAuthenticator
829
588
  };
830
- //# sourceMappingURL=chunk-3YPCK6JX.js.map
589
+ //# sourceMappingURL=chunk-KJ2BCBTL.js.map