@noy-db/hub 0.2.0-pre.2 → 0.2.0-pre.21

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 (368) hide show
  1. package/README.md +126 -0
  2. package/dist/aggregate/index.cjs +643 -37
  3. package/dist/aggregate/index.cjs.map +1 -1
  4. package/dist/aggregate/index.d.cts +3 -2
  5. package/dist/aggregate/index.d.ts +3 -2
  6. package/dist/aggregate/index.js +9 -8
  7. package/dist/aggregate/index.js.map +1 -1
  8. package/dist/attestation/index.cjs.map +1 -1
  9. package/dist/attestation/index.d.cts +7 -5
  10. package/dist/attestation/index.d.ts +7 -5
  11. package/dist/attestation/index.js +6 -6
  12. package/dist/blobs/index.cjs +509 -22
  13. package/dist/blobs/index.cjs.map +1 -1
  14. package/dist/blobs/index.d.cts +9 -7
  15. package/dist/blobs/index.d.ts +9 -7
  16. package/dist/blobs/index.js +11 -6
  17. package/dist/blobs/index.js.map +1 -1
  18. package/dist/bundle/index.cjs +7886 -841
  19. package/dist/bundle/index.cjs.map +1 -1
  20. package/dist/bundle/index.d.cts +20 -18
  21. package/dist/bundle/index.d.ts +20 -18
  22. package/dist/bundle/index.js +24 -13
  23. package/dist/bundle/index.js.map +1 -1
  24. package/dist/{chunk-PFSNOPBQ.js → chunk-2XA2ZML4.js} +31 -3
  25. package/dist/chunk-2XA2ZML4.js.map +1 -0
  26. package/dist/{chunk-2PAQNPE3.js → chunk-37VGJM3T.js} +37 -2
  27. package/dist/chunk-37VGJM3T.js.map +1 -0
  28. package/dist/{chunk-7BRE6EUA.js → chunk-3HNKR65T.js} +4 -4
  29. package/dist/chunk-3HNKR65T.js.map +1 -0
  30. package/dist/{chunk-Y2RKOPNC.js → chunk-5YTXYPES.js} +46 -10
  31. package/dist/chunk-5YTXYPES.js.map +1 -0
  32. package/dist/{chunk-OVZDFEOR.js → chunk-6QAZ5O6X.js} +2 -2
  33. package/dist/chunk-6QAZ5O6X.js.map +1 -0
  34. package/dist/{chunk-RTZVQAJ7.js → chunk-6QE4DUYC.js} +19 -4
  35. package/dist/chunk-6QE4DUYC.js.map +1 -0
  36. package/dist/{chunk-7Q5PLD5C.js → chunk-7MRT7EPB.js} +3 -3
  37. package/dist/{chunk-E535SAN4.js → chunk-7PH4OPBZ.js} +4258 -520
  38. package/dist/chunk-7PH4OPBZ.js.map +1 -0
  39. package/dist/{chunk-PEULZC6M.js → chunk-A3JMGXPG.js} +8 -1
  40. package/dist/chunk-A3JMGXPG.js.map +1 -0
  41. package/dist/{chunk-UMLVJTYV.js → chunk-ADB7GPM3.js} +7 -4
  42. package/dist/chunk-ADB7GPM3.js.map +1 -0
  43. package/dist/{chunk-G6FRSBKK.js → chunk-AI4USDRI.js} +4 -4
  44. package/dist/chunk-BZW5IL43.js +151 -0
  45. package/dist/chunk-BZW5IL43.js.map +1 -0
  46. package/dist/chunk-C2RJVZZL.js +123 -0
  47. package/dist/chunk-C2RJVZZL.js.map +1 -0
  48. package/dist/{chunk-UND4XIB6.js → chunk-C6W5KVDV.js} +52 -38
  49. package/dist/chunk-C6W5KVDV.js.map +1 -0
  50. package/dist/chunk-CQYEDODS.js +125 -0
  51. package/dist/chunk-CQYEDODS.js.map +1 -0
  52. package/dist/{chunk-NWZ3I6R6.js → chunk-EYK72OTL.js} +5 -5
  53. package/dist/{chunk-7BUTTVMR.js → chunk-F5GWNSE2.js} +2 -2
  54. package/dist/{chunk-AHPFONIL.js → chunk-F5ILTHMU.js} +5 -5
  55. package/dist/{chunk-Q6W2CMEJ.js → chunk-FRRJIUSI.js} +18 -5
  56. package/dist/chunk-FRRJIUSI.js.map +1 -0
  57. package/dist/{chunk-YMYK7US4.js → chunk-GJTKMME7.js} +2 -2
  58. package/dist/chunk-GJTKMME7.js.map +1 -0
  59. package/dist/{chunk-EUYOGYGV.js → chunk-HYJMAV53.js} +6 -6
  60. package/dist/chunk-HYJMAV53.js.map +1 -0
  61. package/dist/{chunk-QPEXPHJR.js → chunk-I3IYTUUI.js} +4 -4
  62. package/dist/{chunk-3QAKZ37R.js → chunk-IVZWHIEK.js} +5 -5
  63. package/dist/{chunk-PLI5TV7N.js → chunk-IW4L4X65.js} +2 -2
  64. package/dist/chunk-IW4L4X65.js.map +1 -0
  65. package/dist/{chunk-3Z2TPHC4.js → chunk-IY24WS2P.js} +69 -5
  66. package/dist/chunk-IY24WS2P.js.map +1 -0
  67. package/dist/{chunk-HXJXPZRE.js → chunk-J6RGRZOY.js} +10 -3
  68. package/dist/chunk-J6RGRZOY.js.map +1 -0
  69. package/dist/{chunk-3S4BJX25.js → chunk-JBBWALNI.js} +2 -2
  70. package/dist/chunk-JBBWALNI.js.map +1 -0
  71. package/dist/{chunk-7Z23ZFLV.js → chunk-JDCPRJVS.js} +5 -5
  72. package/dist/chunk-JDCPRJVS.js.map +1 -0
  73. package/dist/{chunk-243PNUA6.js → chunk-JOK73NDT.js} +3 -3
  74. package/dist/chunk-JTI57WRT.js +164 -0
  75. package/dist/chunk-JTI57WRT.js.map +1 -0
  76. package/dist/{chunk-VRBCTEKQ.js → chunk-JYNH4FIM.js} +233 -11
  77. package/dist/chunk-JYNH4FIM.js.map +1 -0
  78. package/dist/{chunk-TBKOGSYR.js → chunk-KOAJ3TZM.js} +27 -5
  79. package/dist/chunk-KOAJ3TZM.js.map +1 -0
  80. package/dist/{chunk-YTXSFG3C.js → chunk-MBXKRHSS.js} +50 -20
  81. package/dist/chunk-MBXKRHSS.js.map +1 -0
  82. package/dist/{chunk-MUWOSVEP.js → chunk-NSXNXLYM.js} +10 -2
  83. package/dist/chunk-NSXNXLYM.js.map +1 -0
  84. package/dist/{chunk-J4KLMEUL.js → chunk-NV4IHBZS.js} +664 -51
  85. package/dist/chunk-NV4IHBZS.js.map +1 -0
  86. package/dist/{chunk-LRAZDV5X.js → chunk-O5XKZCUD.js} +31 -8
  87. package/dist/chunk-O5XKZCUD.js.map +1 -0
  88. package/dist/{chunk-W3XXT26A.js → chunk-OTWT6BAJ.js} +358 -3
  89. package/dist/chunk-OTWT6BAJ.js.map +1 -0
  90. package/dist/{chunk-XG3PTSCD.js → chunk-PDVP3C2I.js} +1 -1
  91. package/dist/chunk-PDVP3C2I.js.map +1 -0
  92. package/dist/{chunk-GIV6DWBG.js → chunk-S45MDEEF.js} +44 -5
  93. package/dist/chunk-S45MDEEF.js.map +1 -0
  94. package/dist/{chunk-VK5EER6C.js → chunk-SQKAECUL.js} +2 -2
  95. package/dist/{chunk-FAQVNJD4.js → chunk-SQOK5UM6.js} +12 -2
  96. package/dist/{chunk-FAQVNJD4.js.map → chunk-SQOK5UM6.js.map} +1 -1
  97. package/dist/chunk-STNPB3UM.js +9 -0
  98. package/dist/chunk-STNPB3UM.js.map +1 -0
  99. package/dist/{chunk-YS3POABP.js → chunk-TA6HPKWQ.js} +1 -1
  100. package/dist/chunk-TA6HPKWQ.js.map +1 -0
  101. package/dist/{chunk-4HIL6AHQ.js → chunk-TAMRU7A2.js} +4 -4
  102. package/dist/{chunk-QXQRKXCU.js → chunk-TGIJTNM3.js} +2 -2
  103. package/dist/chunk-TNH5SLCD.js +361 -0
  104. package/dist/chunk-TNH5SLCD.js.map +1 -0
  105. package/dist/{chunk-VPSUZLOJ.js → chunk-TYMDCIQM.js} +31 -5
  106. package/dist/chunk-TYMDCIQM.js.map +1 -0
  107. package/dist/chunk-U2XSUCDF.js +524 -0
  108. package/dist/chunk-U2XSUCDF.js.map +1 -0
  109. package/dist/{chunk-3Y53S2SA.js → chunk-UU6M64HI.js} +4 -4
  110. package/dist/{chunk-VCGTOS2A.js → chunk-WE2BUQD2.js} +3 -3
  111. package/dist/chunk-WE2BUQD2.js.map +1 -0
  112. package/dist/{chunk-JYQTXEIO.js → chunk-WWVJXBOT.js} +449 -29
  113. package/dist/chunk-WWVJXBOT.js.map +1 -0
  114. package/dist/chunk-YPIOFSN3.js +129 -0
  115. package/dist/chunk-YPIOFSN3.js.map +1 -0
  116. package/dist/chunk-ZC7J6ZYV.js +7 -0
  117. package/dist/chunk-ZC7J6ZYV.js.map +1 -0
  118. package/dist/{chunk-5ZGZ6HIZ.js → chunk-ZONKSLF2.js} +30 -7
  119. package/dist/chunk-ZONKSLF2.js.map +1 -0
  120. package/dist/consent/index.cjs.map +1 -1
  121. package/dist/consent/index.d.cts +8 -6
  122. package/dist/consent/index.d.ts +8 -6
  123. package/dist/consent/index.js +3 -3
  124. package/dist/{crypto-5ZDIY3NG.js → crypto-456N7UVX.js} +7 -3
  125. package/dist/{delegation-QYXZW25W.js → delegation-DP4COTXB.js} +5 -5
  126. package/dist/derivations/index.cjs +124 -6
  127. package/dist/derivations/index.cjs.map +1 -1
  128. package/dist/derivations/index.d.cts +11 -9
  129. package/dist/derivations/index.d.ts +11 -9
  130. package/dist/derivations/index.js +8 -6
  131. package/dist/{dev-unlock-DQCNDfFp.d.cts → dev-unlock-CY0HIZA0.d.cts} +1 -1
  132. package/dist/{dev-unlock-utkybTKb.d.ts → dev-unlock-CpKSkl2c.d.ts} +1 -1
  133. package/dist/discriminant-BN9REW3o.d.cts +60 -0
  134. package/dist/discriminant-BN9REW3o.d.ts +60 -0
  135. package/dist/errors-Dkc_fi-S.d.cts +1467 -0
  136. package/dist/errors-Dkc_fi-S.d.ts +1467 -0
  137. package/dist/executor-4IEW4KG5.js +8 -0
  138. package/dist/executor-KYJCJCIN.js +12 -0
  139. package/dist/executor-W7VIBOBZ.js +8 -0
  140. package/dist/{fanout-sidecar-VJ52RIEY.js → fanout-sidecar-YXNAEZ33.js} +2 -2
  141. package/dist/fanout-sidecar-YXNAEZ33.js.map +1 -0
  142. package/dist/forget/index.cjs +43 -0
  143. package/dist/forget/index.cjs.map +1 -0
  144. package/dist/forget/index.d.cts +1 -0
  145. package/dist/forget/index.d.ts +1 -0
  146. package/dist/forget/index.js +14 -0
  147. package/dist/guards/index.cjs +144 -4
  148. package/dist/guards/index.cjs.map +1 -1
  149. package/dist/guards/index.d.cts +16 -8
  150. package/dist/guards/index.d.ts +16 -8
  151. package/dist/guards/index.js +13 -7
  152. package/dist/{hash-jDowCrK2.d.cts → hash-BSd0-_L8.d.cts} +1 -1
  153. package/dist/{hash-DcoYWfJ_.d.ts → hash-BnBQx39y.d.ts} +1 -1
  154. package/dist/history/index.cjs +28 -5
  155. package/dist/history/index.cjs.map +1 -1
  156. package/dist/history/index.d.cts +9 -7
  157. package/dist/history/index.d.ts +9 -7
  158. package/dist/history/index.js +9 -7
  159. package/dist/history/index.js.map +1 -1
  160. package/dist/i18n/index.cjs +356 -26
  161. package/dist/i18n/index.cjs.map +1 -1
  162. package/dist/i18n/index.d.cts +8 -6
  163. package/dist/i18n/index.d.ts +8 -6
  164. package/dist/i18n/index.js +36 -15
  165. package/dist/i18n/index.js.map +1 -1
  166. package/dist/index-BMmajblo.d.cts +362 -0
  167. package/dist/index-BMmajblo.d.ts +362 -0
  168. package/dist/{index-BCKdioeh.d.ts → index-Bm9hIY7t.d.ts} +169 -1127
  169. package/dist/{index-BMjrzNZr.d.cts → index-tZqVB9g5.d.cts} +169 -1127
  170. package/dist/index.cjs +10286 -2168
  171. package/dist/index.cjs.map +1 -1
  172. package/dist/index.d.cts +258 -23
  173. package/dist/index.d.ts +258 -23
  174. package/dist/index.js +443 -110
  175. package/dist/index.js.map +1 -1
  176. package/dist/indexing/index.cjs +97 -32
  177. package/dist/indexing/index.cjs.map +1 -1
  178. package/dist/indexing/index.d.cts +3 -3
  179. package/dist/indexing/index.d.ts +3 -3
  180. package/dist/indexing/index.js +4 -4
  181. package/dist/issue-JXC6T2QR.js +12 -0
  182. package/dist/{lazy-builder-Rpd-V3jP.d.ts → lazy-builder-ChSqcF5t.d.ts} +2 -2
  183. package/dist/{lazy-builder-C-rPfWG0.d.cts → lazy-builder-eYZzLEL1.d.cts} +2 -2
  184. package/dist/{ledger-3IU5GMXA.js → ledger-I7JUYP4L.js} +6 -6
  185. package/dist/materialized-views/index.cjs +687 -13
  186. package/dist/materialized-views/index.cjs.map +1 -1
  187. package/dist/materialized-views/index.d.cts +23 -20
  188. package/dist/materialized-views/index.d.ts +23 -20
  189. package/dist/materialized-views/index.js +8 -7
  190. package/dist/mime-magic-BnJCGJzB.d.cts +103 -0
  191. package/dist/mime-magic-CjSyakO4.d.ts +103 -0
  192. package/dist/noydb-ZZCRF6TE.js +38 -0
  193. package/dist/overlay-views/index.cjs +58 -18
  194. package/dist/overlay-views/index.cjs.map +1 -1
  195. package/dist/overlay-views/index.d.cts +32 -12
  196. package/dist/overlay-views/index.d.ts +32 -12
  197. package/dist/overlay-views/index.js +6 -6
  198. package/dist/periods/index.cjs.map +1 -1
  199. package/dist/periods/index.d.cts +8 -6
  200. package/dist/periods/index.d.ts +8 -6
  201. package/dist/periods/index.js +6 -6
  202. package/dist/{predicate-Dnu81tsS.d.cts → predicate-BmhBSPCH.d.cts} +87 -5
  203. package/dist/{predicate-Dnu81tsS.d.ts → predicate-BmhBSPCH.d.ts} +87 -5
  204. package/dist/{public-envelope-U3CMEOMV.js → public-envelope-5XRTUNKF.js} +4 -4
  205. package/dist/query/index.cjs +1438 -130
  206. package/dist/query/index.cjs.map +1 -1
  207. package/dist/query/index.d.cts +4 -3
  208. package/dist/query/index.d.ts +4 -3
  209. package/dist/query/index.js +13 -6
  210. package/dist/read-only-facade-EX6WZZBP.js +7 -0
  211. package/dist/registry-ATRHOG5B.js +8 -0
  212. package/dist/registry-DKEXOJVO.js +7 -0
  213. package/dist/registry-LEHB26TY.js +8 -0
  214. package/dist/{registry-3ALP62P6.js → registry-NWHOLD5M.js} +3 -3
  215. package/dist/{revoke-KY2GB4KP.js → revoke-5IEK22KT.js} +6 -6
  216. package/dist/sealed-record/index.cjs +139 -0
  217. package/dist/sealed-record/index.cjs.map +1 -0
  218. package/dist/sealed-record/index.d.cts +123 -0
  219. package/dist/sealed-record/index.d.ts +123 -0
  220. package/dist/sealed-record/index.js +42 -0
  221. package/dist/sealed-record/index.js.map +1 -0
  222. package/dist/session/index.cjs.map +1 -1
  223. package/dist/session/index.d.cts +9 -7
  224. package/dist/session/index.d.ts +9 -7
  225. package/dist/session/index.js +3 -3
  226. package/dist/shadow/index.cjs.map +1 -1
  227. package/dist/shadow/index.d.cts +8 -6
  228. package/dist/shadow/index.d.ts +8 -6
  229. package/dist/shadow/index.js +2 -2
  230. package/dist/{signer-GRI5TZKH.js → signer-I6YARZQA.js} +5 -5
  231. package/dist/snapshots/index.cjs +937 -0
  232. package/dist/snapshots/index.cjs.map +1 -0
  233. package/dist/snapshots/index.d.cts +30 -0
  234. package/dist/snapshots/index.d.ts +30 -0
  235. package/dist/snapshots/index.js +152 -0
  236. package/dist/snapshots/index.js.map +1 -0
  237. package/dist/{stale-OTOF3FH7.js → stale-CPESGAPL.js} +2 -2
  238. package/dist/stale-CPESGAPL.js.map +1 -0
  239. package/dist/state-vault-JR3CFGNP.js +14 -0
  240. package/dist/state-vault-JR3CFGNP.js.map +1 -0
  241. package/dist/store/index.cjs +8 -0
  242. package/dist/store/index.cjs.map +1 -1
  243. package/dist/store/index.d.cts +15 -6
  244. package/dist/store/index.d.ts +15 -6
  245. package/dist/store/index.js +2 -2
  246. package/dist/{strategy-DSTrsZ8t.d.ts → strategy-54eIwox5.d.ts} +456 -7
  247. package/dist/{strategy-DSTrsZ8t.d.cts → strategy-WtB-jXYv.d.cts} +456 -7
  248. package/dist/sync/index.cjs.map +1 -1
  249. package/dist/sync/index.d.cts +7 -5
  250. package/dist/sync/index.d.ts +7 -5
  251. package/dist/sync/index.js +4 -4
  252. package/dist/team/index.cjs +1 -1
  253. package/dist/team/index.cjs.map +1 -1
  254. package/dist/team/index.d.cts +8 -6
  255. package/dist/team/index.d.ts +8 -6
  256. package/dist/team/index.js +8 -8
  257. package/dist/transition-guard-D4bfIAiW.d.ts +165 -0
  258. package/dist/transition-guard-Dmpqzg-_.d.cts +165 -0
  259. package/dist/tx/index.cjs +155 -5
  260. package/dist/tx/index.cjs.map +1 -1
  261. package/dist/tx/index.d.cts +27 -9
  262. package/dist/tx/index.d.ts +27 -9
  263. package/dist/tx/index.js +61 -4
  264. package/dist/tx/index.js.map +1 -1
  265. package/dist/{types-BoFFiskX.d.ts → types-DLfWFr6U.d.ts} +3997 -1262
  266. package/dist/{types-DJG8HG6F.d.cts → types-DyOI6XZ_.d.cts} +3997 -1262
  267. package/dist/{ulid-BmBgooGm.d.ts → ulid-B2L_aqVA.d.ts} +19 -19
  268. package/dist/{ulid-C7ms9oli.d.cts → ulid-LaxfH2tK.d.cts} +19 -19
  269. package/dist/util/index.cjs +7 -0
  270. package/dist/util/index.cjs.map +1 -1
  271. package/dist/util/index.d.cts +2 -0
  272. package/dist/util/index.d.ts +2 -0
  273. package/dist/util/index.js +5 -1
  274. package/dist/util/index.js.map +1 -1
  275. package/dist/vault-group-BB246VIM.js +804 -0
  276. package/dist/vault-group-BB246VIM.js.map +1 -0
  277. package/dist/{with-materialized-view-CqnRwI2S.d.ts → with-materialized-view-CeZYGJVf.d.cts} +2 -2
  278. package/dist/{with-materialized-view-BbEPFIIJ.d.cts → with-materialized-view-DNULSxoP.d.ts} +2 -2
  279. package/dist/{with-overlayed-view-Ct1fSJt-.d.ts → with-overlayed-view-C9joG7UZ.d.ts} +2 -2
  280. package/dist/{with-overlayed-view-bwlmmFjx.d.cts → with-overlayed-view-kdcPGHih.d.cts} +2 -2
  281. package/dist/with-rollup-DJDbrxjf.d.ts +47 -0
  282. package/dist/with-rollup-s58XAeWO.d.cts +47 -0
  283. package/package.json +35 -4
  284. package/dist/chunk-2PAQNPE3.js.map +0 -1
  285. package/dist/chunk-3S4BJX25.js.map +0 -1
  286. package/dist/chunk-3XHOCQK4.js +0 -118
  287. package/dist/chunk-3XHOCQK4.js.map +0 -1
  288. package/dist/chunk-3Z2TPHC4.js.map +0 -1
  289. package/dist/chunk-5ZGZ6HIZ.js.map +0 -1
  290. package/dist/chunk-7BRE6EUA.js.map +0 -1
  291. package/dist/chunk-7Z23ZFLV.js.map +0 -1
  292. package/dist/chunk-CXSCDO5T.js +0 -51
  293. package/dist/chunk-CXSCDO5T.js.map +0 -1
  294. package/dist/chunk-E535SAN4.js.map +0 -1
  295. package/dist/chunk-EUYOGYGV.js.map +0 -1
  296. package/dist/chunk-GIV6DWBG.js.map +0 -1
  297. package/dist/chunk-HXJXPZRE.js.map +0 -1
  298. package/dist/chunk-J4KLMEUL.js.map +0 -1
  299. package/dist/chunk-JYQTXEIO.js.map +0 -1
  300. package/dist/chunk-LRAZDV5X.js.map +0 -1
  301. package/dist/chunk-MRIBLZL3.js +0 -86
  302. package/dist/chunk-MRIBLZL3.js.map +0 -1
  303. package/dist/chunk-MUWOSVEP.js.map +0 -1
  304. package/dist/chunk-OVZDFEOR.js.map +0 -1
  305. package/dist/chunk-PEULZC6M.js.map +0 -1
  306. package/dist/chunk-PFSNOPBQ.js.map +0 -1
  307. package/dist/chunk-PLI5TV7N.js.map +0 -1
  308. package/dist/chunk-Q6W2CMEJ.js.map +0 -1
  309. package/dist/chunk-RTZVQAJ7.js.map +0 -1
  310. package/dist/chunk-TBKOGSYR.js.map +0 -1
  311. package/dist/chunk-UMLVJTYV.js.map +0 -1
  312. package/dist/chunk-UND4XIB6.js.map +0 -1
  313. package/dist/chunk-VCGTOS2A.js.map +0 -1
  314. package/dist/chunk-VE6YVP32.js +0 -19
  315. package/dist/chunk-VE6YVP32.js.map +0 -1
  316. package/dist/chunk-VPSUZLOJ.js.map +0 -1
  317. package/dist/chunk-VRBCTEKQ.js.map +0 -1
  318. package/dist/chunk-W3XXT26A.js.map +0 -1
  319. package/dist/chunk-XG3PTSCD.js.map +0 -1
  320. package/dist/chunk-Y2RKOPNC.js.map +0 -1
  321. package/dist/chunk-YMYK7US4.js.map +0 -1
  322. package/dist/chunk-YS3POABP.js.map +0 -1
  323. package/dist/chunk-YTXSFG3C.js.map +0 -1
  324. package/dist/executor-AS2IDHKZ.js +0 -11
  325. package/dist/executor-HLXFXNFM.js +0 -8
  326. package/dist/executor-HN6YBHZ5.js +0 -8
  327. package/dist/fanout-sidecar-VJ52RIEY.js.map +0 -1
  328. package/dist/issue-ORP37MVW.js +0 -12
  329. package/dist/mime-magic-CBBSOkjm.d.cts +0 -50
  330. package/dist/mime-magic-CBBSOkjm.d.ts +0 -50
  331. package/dist/noydb-5H3C24GG.js +0 -34
  332. package/dist/read-only-facade-ITU6L7BL.js +0 -7
  333. package/dist/registry-7HE6VJGC.js +0 -8
  334. package/dist/registry-PSIPG2QR.js +0 -8
  335. package/dist/registry-RFGGMVNJ.js +0 -7
  336. package/dist/with-derivation-BKXXa8Vt.d.ts +0 -13
  337. package/dist/with-derivation-BjQ7q4NE.d.cts +0 -13
  338. package/dist/with-guard-C25yNjzd.d.ts +0 -18
  339. package/dist/with-guard-DQme5DKE.d.cts +0 -18
  340. /package/dist/{chunk-7Q5PLD5C.js.map → chunk-7MRT7EPB.js.map} +0 -0
  341. /package/dist/{chunk-G6FRSBKK.js.map → chunk-AI4USDRI.js.map} +0 -0
  342. /package/dist/{chunk-NWZ3I6R6.js.map → chunk-EYK72OTL.js.map} +0 -0
  343. /package/dist/{chunk-7BUTTVMR.js.map → chunk-F5GWNSE2.js.map} +0 -0
  344. /package/dist/{chunk-AHPFONIL.js.map → chunk-F5ILTHMU.js.map} +0 -0
  345. /package/dist/{chunk-QPEXPHJR.js.map → chunk-I3IYTUUI.js.map} +0 -0
  346. /package/dist/{chunk-3QAKZ37R.js.map → chunk-IVZWHIEK.js.map} +0 -0
  347. /package/dist/{chunk-243PNUA6.js.map → chunk-JOK73NDT.js.map} +0 -0
  348. /package/dist/{chunk-VK5EER6C.js.map → chunk-SQKAECUL.js.map} +0 -0
  349. /package/dist/{chunk-4HIL6AHQ.js.map → chunk-TAMRU7A2.js.map} +0 -0
  350. /package/dist/{chunk-QXQRKXCU.js.map → chunk-TGIJTNM3.js.map} +0 -0
  351. /package/dist/{chunk-3Y53S2SA.js.map → chunk-UU6M64HI.js.map} +0 -0
  352. /package/dist/{crypto-5ZDIY3NG.js.map → crypto-456N7UVX.js.map} +0 -0
  353. /package/dist/{delegation-QYXZW25W.js.map → delegation-DP4COTXB.js.map} +0 -0
  354. /package/dist/{executor-AS2IDHKZ.js.map → executor-4IEW4KG5.js.map} +0 -0
  355. /package/dist/{executor-HLXFXNFM.js.map → executor-KYJCJCIN.js.map} +0 -0
  356. /package/dist/{executor-HN6YBHZ5.js.map → executor-W7VIBOBZ.js.map} +0 -0
  357. /package/dist/{issue-ORP37MVW.js.map → forget/index.js.map} +0 -0
  358. /package/dist/{ledger-3IU5GMXA.js.map → issue-JXC6T2QR.js.map} +0 -0
  359. /package/dist/{noydb-5H3C24GG.js.map → ledger-I7JUYP4L.js.map} +0 -0
  360. /package/dist/{public-envelope-U3CMEOMV.js.map → noydb-ZZCRF6TE.js.map} +0 -0
  361. /package/dist/{read-only-facade-ITU6L7BL.js.map → public-envelope-5XRTUNKF.js.map} +0 -0
  362. /package/dist/{registry-3ALP62P6.js.map → read-only-facade-EX6WZZBP.js.map} +0 -0
  363. /package/dist/{registry-7HE6VJGC.js.map → registry-ATRHOG5B.js.map} +0 -0
  364. /package/dist/{registry-PSIPG2QR.js.map → registry-DKEXOJVO.js.map} +0 -0
  365. /package/dist/{registry-RFGGMVNJ.js.map → registry-LEHB26TY.js.map} +0 -0
  366. /package/dist/{revoke-KY2GB4KP.js.map → registry-NWHOLD5M.js.map} +0 -0
  367. /package/dist/{signer-GRI5TZKH.js.map → revoke-5IEK22KT.js.map} +0 -0
  368. /package/dist/{stale-OTOF3FH7.js.map → signer-I6YARZQA.js.map} +0 -0
@@ -0,0 +1,123 @@
1
+ export { q as SealedRecordExpiredError, r as SealedRecordMismatchError } from '../errors-Dkc_fi-S.cjs';
2
+
3
+ /**
4
+ * Wire + binding types for record-scoped CEK sealing (#306 slices 2-3).
5
+ *
6
+ * A vault owner who holds the collection DEK can **seal a single record's
7
+ * content-encryption key (CEK)** to an `at-*` host (e.g. a KMS-backed
8
+ * {@link RecipientSealer}) so that host — and only that host — can decrypt
9
+ * exactly that one record, with no access to the vault DEK and no ability to
10
+ * read any other record. This is the record-granular counterpart to the
11
+ * bundle-granular sealed-credential delivery (`SealedEnvelope`).
12
+ *
13
+ * Two shapes live here:
14
+ *
15
+ * - {@link SealedCekDeliveryEnvelope} — the **thin delivery envelope** the
16
+ * grantor writes to `_sealed_cek/<collection>/<id>/<pid>`. It carries only
17
+ * routing metadata (`pid`, `expiresAt`) in the clear plus the opaque sealed
18
+ * `payload`. The `expiresAt` here is a *fast-path* hint; the authoritative
19
+ * expiry lives INSIDE the sealed payload (see below).
20
+ *
21
+ * - {@link SealedCekBinding} — the plaintext struct that is sealed for the
22
+ * host. It binds the CEK to its `{collection, id}` and an authoritative
23
+ * `expiresAt`, so a host cannot take a CEK sealed for record A and apply it
24
+ * to record B's envelope (mismatch is rejected), nor read past expiry. The
25
+ * binding is the security boundary; the delivery envelope is just transport.
26
+ *
27
+ * @module
28
+ */
29
+ /**
30
+ * Thin delivery envelope persisted at
31
+ * `_sealed_cek/<collection>/<id>/<pid>`. The grantor writes one per
32
+ * (record, recipient host) pair. `payload` is the base64 of the bytes returned
33
+ * by {@link RecipientSealer.sealForRecipient} over a UTF-8
34
+ * `JSON.stringify({@link SealedCekBinding})`.
35
+ *
36
+ * `expiresAt` is duplicated here for a cheap pre-unseal reject, but is NOT
37
+ * authoritative — the binding inside `payload` carries the expiry the host
38
+ * verifies after unsealing, so a tampered delivery envelope cannot extend a
39
+ * grant.
40
+ */
41
+ interface SealedCekDeliveryEnvelope {
42
+ /** Envelope schema version. */
43
+ readonly v: 1;
44
+ /** Magic marker for forensics + format detection. */
45
+ readonly _noydb_sealed_cek: 1;
46
+ /** Recipient host provider id; matches the sealer's `.id` / hint `pid`. */
47
+ readonly pid: string;
48
+ /** base64 of the sealed {@link SealedCekBinding} bytes. */
49
+ readonly payload: string;
50
+ /** Fast-path expiry hint (ISO 8601). Authoritative copy is inside `payload`. */
51
+ readonly expiresAt: string;
52
+ }
53
+ /**
54
+ * The plaintext struct sealed for the recipient host. After the host unseals
55
+ * `SealedCekDeliveryEnvelope.payload` it parses this and MUST verify:
56
+ * - `collection` + `id` match the record envelope it is decrypting, and
57
+ * - `expiresAt` has not passed (authoritative expiry check).
58
+ *
59
+ * `cek` is the base64 of the raw 32-byte AES-256-GCM record CEK.
60
+ */
61
+ interface SealedCekBinding {
62
+ /** Collection the CEK belongs to. */
63
+ readonly collection: string;
64
+ /** Record id the CEK belongs to. */
65
+ readonly id: string;
66
+ /** base64 of the raw AES-256-GCM CEK bytes. */
67
+ readonly cek: string;
68
+ /** Authoritative expiry (ISO 8601). */
69
+ readonly expiresAt: string;
70
+ }
71
+
72
+ /**
73
+ * `@noy-db/hub/sealed-record` — host-side opener for record-scoped CEK
74
+ * sealing (#306 slices 2-3).
75
+ *
76
+ * The **grantor** side (sealing a record's CEK to a host, revoking, and hard
77
+ * rotation) lives on `Vault` (`vault.sealRecordToHost` /
78
+ * `vault.revokeSealedRecord` / `vault.rotateRecordCek`) because it needs the
79
+ * collection DEK. This subpath exposes the **recipient host** side:
80
+ * {@link openSealedRecord} reconstructs a single record's plaintext from
81
+ * (a) the sealed-CEK delivery envelope, (b) the record's encrypted envelope
82
+ * body, and (c) the host's own unsealer — and **nothing else**. The host never
83
+ * touches a vault DEK and can decrypt exactly the one bound record.
84
+ *
85
+ * @module
86
+ */
87
+
88
+ /**
89
+ * Host-side: decrypt a single record whose CEK was sealed to this host by a
90
+ * vault grantor via `vault.sealRecordToHost()`.
91
+ *
92
+ * Verification order (security-critical — do NOT reorder past the unseal):
93
+ * 1. **Fast-path expiry** — reject on the delivery envelope's clear-text
94
+ * `expiresAt` before doing any (potentially expensive) unseal work. This is
95
+ * a hint only.
96
+ * 2. **Unseal** the `payload` with the host's `recipientSealer.unseal` →
97
+ * parse the {@link SealedCekBinding}.
98
+ * 3. **Binding match** — the binding's `{collection, id}` MUST equal the
99
+ * expected pair, else {@link SealedRecordMismatchError}. This is the
100
+ * host-denial boundary (a CEK sealed for record A cannot open record B).
101
+ * 4. **Authoritative expiry** — re-check `binding.expiresAt` (the copy that
102
+ * cannot be forged by editing the delivery envelope), else
103
+ * {@link SealedRecordExpiredError}.
104
+ * 5. **Decrypt** the record body under the unsealed CEK. A CEK from a
105
+ * PRE-rotation seal applied to a POST-rotation live envelope passes (1)-(4)
106
+ * but fails the AES-GCM auth tag → `TamperedError` from `decrypt`.
107
+ *
108
+ * @param sealedCekEnvelope The `SealedCekDeliveryEnvelope` written by the grantor.
109
+ * @param recordEnvelope The record's `{ _iv, _data }` (the encrypted body).
110
+ * @param recipientSealer The host's unsealer (`{ unseal(bytes) }`) — e.g. a
111
+ * KMS-backed sealer or `MemoryRecipientSealer`.
112
+ * @param expectedCollection Collection the caller believes `recordEnvelope` is in.
113
+ * @param expectedId Record id the caller believes `recordEnvelope` is.
114
+ * @returns The decrypted record body as a JSON string.
115
+ */
116
+ declare function openSealedRecord(sealedCekEnvelope: SealedCekDeliveryEnvelope, recordEnvelope: {
117
+ readonly _iv: string;
118
+ readonly _data: string;
119
+ }, recipientSealer: {
120
+ unseal(bytes: Uint8Array): Promise<Uint8Array>;
121
+ }, expectedCollection: string, expectedId: string): Promise<string>;
122
+
123
+ export { type SealedCekBinding, type SealedCekDeliveryEnvelope, openSealedRecord };
@@ -0,0 +1,123 @@
1
+ export { q as SealedRecordExpiredError, r as SealedRecordMismatchError } from '../errors-Dkc_fi-S.js';
2
+
3
+ /**
4
+ * Wire + binding types for record-scoped CEK sealing (#306 slices 2-3).
5
+ *
6
+ * A vault owner who holds the collection DEK can **seal a single record's
7
+ * content-encryption key (CEK)** to an `at-*` host (e.g. a KMS-backed
8
+ * {@link RecipientSealer}) so that host — and only that host — can decrypt
9
+ * exactly that one record, with no access to the vault DEK and no ability to
10
+ * read any other record. This is the record-granular counterpart to the
11
+ * bundle-granular sealed-credential delivery (`SealedEnvelope`).
12
+ *
13
+ * Two shapes live here:
14
+ *
15
+ * - {@link SealedCekDeliveryEnvelope} — the **thin delivery envelope** the
16
+ * grantor writes to `_sealed_cek/<collection>/<id>/<pid>`. It carries only
17
+ * routing metadata (`pid`, `expiresAt`) in the clear plus the opaque sealed
18
+ * `payload`. The `expiresAt` here is a *fast-path* hint; the authoritative
19
+ * expiry lives INSIDE the sealed payload (see below).
20
+ *
21
+ * - {@link SealedCekBinding} — the plaintext struct that is sealed for the
22
+ * host. It binds the CEK to its `{collection, id}` and an authoritative
23
+ * `expiresAt`, so a host cannot take a CEK sealed for record A and apply it
24
+ * to record B's envelope (mismatch is rejected), nor read past expiry. The
25
+ * binding is the security boundary; the delivery envelope is just transport.
26
+ *
27
+ * @module
28
+ */
29
+ /**
30
+ * Thin delivery envelope persisted at
31
+ * `_sealed_cek/<collection>/<id>/<pid>`. The grantor writes one per
32
+ * (record, recipient host) pair. `payload` is the base64 of the bytes returned
33
+ * by {@link RecipientSealer.sealForRecipient} over a UTF-8
34
+ * `JSON.stringify({@link SealedCekBinding})`.
35
+ *
36
+ * `expiresAt` is duplicated here for a cheap pre-unseal reject, but is NOT
37
+ * authoritative — the binding inside `payload` carries the expiry the host
38
+ * verifies after unsealing, so a tampered delivery envelope cannot extend a
39
+ * grant.
40
+ */
41
+ interface SealedCekDeliveryEnvelope {
42
+ /** Envelope schema version. */
43
+ readonly v: 1;
44
+ /** Magic marker for forensics + format detection. */
45
+ readonly _noydb_sealed_cek: 1;
46
+ /** Recipient host provider id; matches the sealer's `.id` / hint `pid`. */
47
+ readonly pid: string;
48
+ /** base64 of the sealed {@link SealedCekBinding} bytes. */
49
+ readonly payload: string;
50
+ /** Fast-path expiry hint (ISO 8601). Authoritative copy is inside `payload`. */
51
+ readonly expiresAt: string;
52
+ }
53
+ /**
54
+ * The plaintext struct sealed for the recipient host. After the host unseals
55
+ * `SealedCekDeliveryEnvelope.payload` it parses this and MUST verify:
56
+ * - `collection` + `id` match the record envelope it is decrypting, and
57
+ * - `expiresAt` has not passed (authoritative expiry check).
58
+ *
59
+ * `cek` is the base64 of the raw 32-byte AES-256-GCM record CEK.
60
+ */
61
+ interface SealedCekBinding {
62
+ /** Collection the CEK belongs to. */
63
+ readonly collection: string;
64
+ /** Record id the CEK belongs to. */
65
+ readonly id: string;
66
+ /** base64 of the raw AES-256-GCM CEK bytes. */
67
+ readonly cek: string;
68
+ /** Authoritative expiry (ISO 8601). */
69
+ readonly expiresAt: string;
70
+ }
71
+
72
+ /**
73
+ * `@noy-db/hub/sealed-record` — host-side opener for record-scoped CEK
74
+ * sealing (#306 slices 2-3).
75
+ *
76
+ * The **grantor** side (sealing a record's CEK to a host, revoking, and hard
77
+ * rotation) lives on `Vault` (`vault.sealRecordToHost` /
78
+ * `vault.revokeSealedRecord` / `vault.rotateRecordCek`) because it needs the
79
+ * collection DEK. This subpath exposes the **recipient host** side:
80
+ * {@link openSealedRecord} reconstructs a single record's plaintext from
81
+ * (a) the sealed-CEK delivery envelope, (b) the record's encrypted envelope
82
+ * body, and (c) the host's own unsealer — and **nothing else**. The host never
83
+ * touches a vault DEK and can decrypt exactly the one bound record.
84
+ *
85
+ * @module
86
+ */
87
+
88
+ /**
89
+ * Host-side: decrypt a single record whose CEK was sealed to this host by a
90
+ * vault grantor via `vault.sealRecordToHost()`.
91
+ *
92
+ * Verification order (security-critical — do NOT reorder past the unseal):
93
+ * 1. **Fast-path expiry** — reject on the delivery envelope's clear-text
94
+ * `expiresAt` before doing any (potentially expensive) unseal work. This is
95
+ * a hint only.
96
+ * 2. **Unseal** the `payload` with the host's `recipientSealer.unseal` →
97
+ * parse the {@link SealedCekBinding}.
98
+ * 3. **Binding match** — the binding's `{collection, id}` MUST equal the
99
+ * expected pair, else {@link SealedRecordMismatchError}. This is the
100
+ * host-denial boundary (a CEK sealed for record A cannot open record B).
101
+ * 4. **Authoritative expiry** — re-check `binding.expiresAt` (the copy that
102
+ * cannot be forged by editing the delivery envelope), else
103
+ * {@link SealedRecordExpiredError}.
104
+ * 5. **Decrypt** the record body under the unsealed CEK. A CEK from a
105
+ * PRE-rotation seal applied to a POST-rotation live envelope passes (1)-(4)
106
+ * but fails the AES-GCM auth tag → `TamperedError` from `decrypt`.
107
+ *
108
+ * @param sealedCekEnvelope The `SealedCekDeliveryEnvelope` written by the grantor.
109
+ * @param recordEnvelope The record's `{ _iv, _data }` (the encrypted body).
110
+ * @param recipientSealer The host's unsealer (`{ unseal(bytes) }`) — e.g. a
111
+ * KMS-backed sealer or `MemoryRecipientSealer`.
112
+ * @param expectedCollection Collection the caller believes `recordEnvelope` is in.
113
+ * @param expectedId Record id the caller believes `recordEnvelope` is.
114
+ * @returns The decrypted record body as a JSON string.
115
+ */
116
+ declare function openSealedRecord(sealedCekEnvelope: SealedCekDeliveryEnvelope, recordEnvelope: {
117
+ readonly _iv: string;
118
+ readonly _data: string;
119
+ }, recipientSealer: {
120
+ unseal(bytes: Uint8Array): Promise<Uint8Array>;
121
+ }, expectedCollection: string, expectedId: string): Promise<string>;
122
+
123
+ export { type SealedCekBinding, type SealedCekDeliveryEnvelope, openSealedRecord };
@@ -0,0 +1,42 @@
1
+ import {
2
+ base64ToBuffer,
3
+ decrypt
4
+ } from "../chunk-37VGJM3T.js";
5
+ import {
6
+ SealedRecordExpiredError,
7
+ SealedRecordMismatchError
8
+ } from "../chunk-OTWT6BAJ.js";
9
+
10
+ // src/sealed-record/index.ts
11
+ var subtle = globalThis.crypto.subtle;
12
+ async function openSealedRecord(sealedCekEnvelope, recordEnvelope, recipientSealer, expectedCollection, expectedId) {
13
+ if (Date.parse(sealedCekEnvelope.expiresAt) <= Date.now()) {
14
+ throw new SealedRecordExpiredError(sealedCekEnvelope.expiresAt);
15
+ }
16
+ const payloadBytes = base64ToBuffer(sealedCekEnvelope.payload);
17
+ const openedBytes = await recipientSealer.unseal(payloadBytes);
18
+ const binding = JSON.parse(new TextDecoder().decode(openedBytes));
19
+ if (binding.collection !== expectedCollection || binding.id !== expectedId) {
20
+ throw new SealedRecordMismatchError(
21
+ { collection: expectedCollection, id: expectedId },
22
+ { collection: binding.collection, id: binding.id }
23
+ );
24
+ }
25
+ if (Date.parse(binding.expiresAt) <= Date.now()) {
26
+ throw new SealedRecordExpiredError(binding.expiresAt);
27
+ }
28
+ const cek = await subtle.importKey(
29
+ "raw",
30
+ base64ToBuffer(binding.cek),
31
+ { name: "AES-GCM", length: 256 },
32
+ false,
33
+ ["decrypt"]
34
+ );
35
+ return decrypt(recordEnvelope._iv, recordEnvelope._data, cek);
36
+ }
37
+ export {
38
+ SealedRecordExpiredError,
39
+ SealedRecordMismatchError,
40
+ openSealedRecord
41
+ };
42
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/sealed-record/index.ts"],"sourcesContent":["/**\n * `@noy-db/hub/sealed-record` — host-side opener for record-scoped CEK\n * sealing (#306 slices 2-3).\n *\n * The **grantor** side (sealing a record's CEK to a host, revoking, and hard\n * rotation) lives on `Vault` (`vault.sealRecordToHost` /\n * `vault.revokeSealedRecord` / `vault.rotateRecordCek`) because it needs the\n * collection DEK. This subpath exposes the **recipient host** side:\n * {@link openSealedRecord} reconstructs a single record's plaintext from\n * (a) the sealed-CEK delivery envelope, (b) the record's encrypted envelope\n * body, and (c) the host's own unsealer — and **nothing else**. The host never\n * touches a vault DEK and can decrypt exactly the one bound record.\n *\n * @module\n */\n\nimport { decrypt, base64ToBuffer } from '../crypto.js'\nimport {\n SealedRecordExpiredError,\n SealedRecordMismatchError,\n} from '../errors.js'\nimport type {\n SealedCekDeliveryEnvelope,\n SealedCekBinding,\n} from './types.js'\n\nexport type { SealedCekDeliveryEnvelope, SealedCekBinding } from './types.js'\nexport { SealedRecordExpiredError, SealedRecordMismatchError } from '../errors.js'\n\nconst subtle = globalThis.crypto.subtle\n\n/**\n * Host-side: decrypt a single record whose CEK was sealed to this host by a\n * vault grantor via `vault.sealRecordToHost()`.\n *\n * Verification order (security-critical — do NOT reorder past the unseal):\n * 1. **Fast-path expiry** — reject on the delivery envelope's clear-text\n * `expiresAt` before doing any (potentially expensive) unseal work. This is\n * a hint only.\n * 2. **Unseal** the `payload` with the host's `recipientSealer.unseal` →\n * parse the {@link SealedCekBinding}.\n * 3. **Binding match** — the binding's `{collection, id}` MUST equal the\n * expected pair, else {@link SealedRecordMismatchError}. This is the\n * host-denial boundary (a CEK sealed for record A cannot open record B).\n * 4. **Authoritative expiry** — re-check `binding.expiresAt` (the copy that\n * cannot be forged by editing the delivery envelope), else\n * {@link SealedRecordExpiredError}.\n * 5. **Decrypt** the record body under the unsealed CEK. A CEK from a\n * PRE-rotation seal applied to a POST-rotation live envelope passes (1)-(4)\n * but fails the AES-GCM auth tag → `TamperedError` from `decrypt`.\n *\n * @param sealedCekEnvelope The `SealedCekDeliveryEnvelope` written by the grantor.\n * @param recordEnvelope The record's `{ _iv, _data }` (the encrypted body).\n * @param recipientSealer The host's unsealer (`{ unseal(bytes) }`) — e.g. a\n * KMS-backed sealer or `MemoryRecipientSealer`.\n * @param expectedCollection Collection the caller believes `recordEnvelope` is in.\n * @param expectedId Record id the caller believes `recordEnvelope` is.\n * @returns The decrypted record body as a JSON string.\n */\nexport async function openSealedRecord(\n sealedCekEnvelope: SealedCekDeliveryEnvelope,\n recordEnvelope: { readonly _iv: string; readonly _data: string },\n recipientSealer: { unseal(bytes: Uint8Array): Promise<Uint8Array> },\n expectedCollection: string,\n expectedId: string,\n): Promise<string> {\n // (1) Fast-path expiry on the (unauthenticated) delivery envelope.\n if (Date.parse(sealedCekEnvelope.expiresAt) <= Date.now()) {\n throw new SealedRecordExpiredError(sealedCekEnvelope.expiresAt)\n }\n\n // (2) Unseal → parse binding.\n const payloadBytes = base64ToBuffer(sealedCekEnvelope.payload)\n const openedBytes = await recipientSealer.unseal(payloadBytes)\n const binding = JSON.parse(new TextDecoder().decode(openedBytes)) as SealedCekBinding\n\n // (3) Binding match — host-denial boundary.\n if (binding.collection !== expectedCollection || binding.id !== expectedId) {\n throw new SealedRecordMismatchError(\n { collection: expectedCollection, id: expectedId },\n { collection: binding.collection, id: binding.id },\n )\n }\n\n // (4) Authoritative expiry — the copy that cannot be forged on the envelope.\n if (Date.parse(binding.expiresAt) <= Date.now()) {\n throw new SealedRecordExpiredError(binding.expiresAt)\n }\n\n // (5) Import the raw CEK + decrypt the body. Wrong-key (pre-rotation CEK vs\n // post-rotation body) surfaces as TamperedError from decrypt's GCM tag check.\n const cek = await subtle.importKey(\n 'raw',\n base64ToBuffer(binding.cek) as BufferSource,\n { name: 'AES-GCM', length: 256 },\n false,\n ['decrypt'],\n )\n return decrypt(recordEnvelope._iv, recordEnvelope._data, cek)\n}\n"],"mappings":";;;;;;;;;;AA6BA,IAAM,SAAS,WAAW,OAAO;AA8BjC,eAAsB,iBACpB,mBACA,gBACA,iBACA,oBACA,YACiB;AAEjB,MAAI,KAAK,MAAM,kBAAkB,SAAS,KAAK,KAAK,IAAI,GAAG;AACzD,UAAM,IAAI,yBAAyB,kBAAkB,SAAS;AAAA,EAChE;AAGA,QAAM,eAAe,eAAe,kBAAkB,OAAO;AAC7D,QAAM,cAAc,MAAM,gBAAgB,OAAO,YAAY;AAC7D,QAAM,UAAU,KAAK,MAAM,IAAI,YAAY,EAAE,OAAO,WAAW,CAAC;AAGhE,MAAI,QAAQ,eAAe,sBAAsB,QAAQ,OAAO,YAAY;AAC1E,UAAM,IAAI;AAAA,MACR,EAAE,YAAY,oBAAoB,IAAI,WAAW;AAAA,MACjD,EAAE,YAAY,QAAQ,YAAY,IAAI,QAAQ,GAAG;AAAA,IACnD;AAAA,EACF;AAGA,MAAI,KAAK,MAAM,QAAQ,SAAS,KAAK,KAAK,IAAI,GAAG;AAC/C,UAAM,IAAI,yBAAyB,QAAQ,SAAS;AAAA,EACtD;AAIA,QAAM,MAAM,MAAM,OAAO;AAAA,IACvB;AAAA,IACA,eAAe,QAAQ,GAAG;AAAA,IAC1B,EAAE,MAAM,WAAW,QAAQ,IAAI;AAAA,IAC/B;AAAA,IACA,CAAC,SAAS;AAAA,EACZ;AACA,SAAO,QAAQ,eAAe,KAAK,eAAe,OAAO,GAAG;AAC9D;","names":[]}