@noy-db/hub 0.2.0-pre.16 → 0.2.0-pre.18
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.
- package/dist/aggregate/index.cjs.map +1 -1
- package/dist/aggregate/index.d.cts +3 -2
- package/dist/aggregate/index.d.ts +3 -2
- package/dist/aggregate/index.js +4 -4
- package/dist/attestation/index.cjs.map +1 -1
- package/dist/attestation/index.d.cts +5 -3
- package/dist/attestation/index.d.ts +5 -3
- package/dist/attestation/index.js +6 -6
- package/dist/blobs/index.cjs +226 -11
- package/dist/blobs/index.cjs.map +1 -1
- package/dist/blobs/index.d.cts +6 -4
- package/dist/blobs/index.d.ts +6 -4
- package/dist/blobs/index.js +6 -5
- package/dist/blobs/index.js.map +1 -1
- package/dist/bundle/index.cjs +2065 -352
- package/dist/bundle/index.cjs.map +1 -1
- package/dist/bundle/index.d.cts +7 -5
- package/dist/bundle/index.d.ts +7 -5
- package/dist/bundle/index.js +21 -10
- package/dist/bundle/index.js.map +1 -1
- package/dist/{chunk-6RR3MNMG.js → chunk-2U226RDC.js} +3 -3
- package/dist/{chunk-L2BNJ6HM.js → chunk-32XVU2LT.js} +3 -3
- package/dist/{chunk-X73VS74Y.js → chunk-33DAO2XG.js} +2 -2
- package/dist/chunk-45643PAU.js +151 -0
- package/dist/chunk-45643PAU.js.map +1 -0
- package/dist/{chunk-QSUK7YWK.js → chunk-4UI5T3K7.js} +4 -4
- package/dist/{chunk-G4SCICH5.js → chunk-5KKNBDCT.js} +2 -2
- package/dist/{chunk-DUREQF5W.js → chunk-647TFNYL.js} +34 -8
- package/dist/chunk-647TFNYL.js.map +1 -0
- package/dist/{chunk-E2CDVKMH.js → chunk-6FHCU3QO.js} +5 -5
- package/dist/{chunk-F4OJZIWQ.js → chunk-6Q5XRLKG.js} +4 -4
- package/dist/{chunk-HOR4R722.js → chunk-6XEGHIBA.js} +30 -4
- package/dist/chunk-6XEGHIBA.js.map +1 -0
- package/dist/{chunk-4TBBMHVC.js → chunk-6YEC7LLO.js} +2 -2
- package/dist/{chunk-ZNQYHJXX.js → chunk-AB7JF2KF.js} +2 -2
- package/dist/{chunk-UMLVJTYV.js → chunk-ADB7GPM3.js} +7 -4
- package/dist/chunk-ADB7GPM3.js.map +1 -0
- package/dist/{chunk-XL35NSEN.js → chunk-BUBJYIZ7.js} +3 -3
- package/dist/chunk-C2OYWD5S.js +125 -0
- package/dist/chunk-C2OYWD5S.js.map +1 -0
- package/dist/{chunk-KABJXG2F.js → chunk-CMISAJAE.js} +195 -17
- package/dist/chunk-CMISAJAE.js.map +1 -0
- package/dist/{chunk-3YWP3WBP.js → chunk-DKMPR76W.js} +5 -5
- package/dist/{chunk-BI6ETQPF.js → chunk-DR5I7Q6N.js} +4 -4
- package/dist/{chunk-667MB6AH.js → chunk-F2IJ2HGD.js} +1370 -232
- package/dist/chunk-F2IJ2HGD.js.map +1 -0
- package/dist/{chunk-6H2ZUNR7.js → chunk-FQRAYDS4.js} +4 -4
- package/dist/{chunk-535SSHBS.js → chunk-HMFC6M2G.js} +99 -2
- package/dist/chunk-HMFC6M2G.js.map +1 -0
- package/dist/{chunk-TS26M2SB.js → chunk-HOO5I3VG.js} +2 -2
- package/dist/{chunk-OMAMZKKD.js → chunk-HWK75CYX.js} +2 -2
- package/dist/{chunk-TKIY625R.js → chunk-HZOEBM67.js} +2 -2
- package/dist/{chunk-DLZ2ONOD.js → chunk-IQ4GMEYZ.js} +6 -6
- package/dist/{chunk-XWH4MXIU.js → chunk-K3NYRK7U.js} +2 -2
- package/dist/{chunk-7BQ4QWYX.js → chunk-KOURQXIU.js} +23 -6
- package/dist/chunk-KOURQXIU.js.map +1 -0
- package/dist/{chunk-7Z7KSVA5.js → chunk-KQ523X3A.js} +15 -2
- package/dist/chunk-KQ523X3A.js.map +1 -0
- package/dist/{chunk-JD3OZAI4.js → chunk-KTZ2MHQK.js} +2 -2
- package/dist/{chunk-F3BPIPLS.js → chunk-LGPSCKWZ.js} +1 -1
- package/dist/chunk-LGPSCKWZ.js.map +1 -0
- package/dist/{chunk-SCJPI4Z5.js → chunk-LQ3GD5LL.js} +5 -5
- package/dist/{chunk-AAVWKNZW.js → chunk-M3H7VSRV.js} +2 -2
- package/dist/{chunk-BR3AMFGS.js → chunk-MGB67HKX.js} +5 -5
- package/dist/{chunk-GNI5STXQ.js → chunk-P57D4KBG.js} +52 -38
- package/dist/chunk-P57D4KBG.js.map +1 -0
- package/dist/{chunk-Z6FNBOTC.js → chunk-PDVP3C2I.js} +1 -1
- package/dist/{chunk-Z6FNBOTC.js.map → chunk-PDVP3C2I.js.map} +1 -1
- package/dist/{chunk-OB2ZJQ2D.js → chunk-PGVEL5IZ.js} +3 -3
- package/dist/{chunk-YULZKK4F.js → chunk-QJKZ5WUP.js} +37 -2
- package/dist/chunk-QJKZ5WUP.js.map +1 -0
- package/dist/{chunk-BQ65SS5A.js → chunk-QPJ7Z4L3.js} +2 -2
- package/dist/{chunk-CZI2A4MQ.js → chunk-RQFG2YSV.js} +3 -3
- package/dist/{chunk-CJORTUJ2.js → chunk-RZWQNMMP.js} +2 -2
- package/dist/{chunk-FFXM3ZIF.js → chunk-T4T5I5L6.js} +3 -3
- package/dist/{chunk-QVIEAYTP.js → chunk-TFAN3NFD.js} +3 -3
- package/dist/{chunk-Z4DO7YSI.js → chunk-TPOHMOGX.js} +2 -2
- package/dist/{chunk-VLMPU56Q.js → chunk-TTS3RWL5.js} +2 -2
- package/dist/{chunk-IXBIFDEW.js → chunk-VVDSDOVV.js} +4 -4
- package/dist/{chunk-FWPKCXTN.js → chunk-WZCG3EZ6.js} +2 -2
- package/dist/{chunk-HBXJ37ZY.js → chunk-Y5XVB75E.js} +4 -4
- package/dist/chunk-YWYW2YNO.js +129 -0
- package/dist/chunk-YWYW2YNO.js.map +1 -0
- package/dist/{chunk-IQLVUT37.js → chunk-Z3BE5BRK.js} +2 -2
- package/dist/{chunk-42FEUPZQ.js → chunk-Z3I2WNGF.js} +58 -3
- package/dist/chunk-Z3I2WNGF.js.map +1 -0
- package/dist/{state-vault-TMXZRTY5.js → chunk-ZJ67TB4S.js} +24 -7
- package/dist/chunk-ZJ67TB4S.js.map +1 -0
- package/dist/consent/index.cjs.map +1 -1
- package/dist/consent/index.d.cts +6 -4
- package/dist/consent/index.d.ts +6 -4
- package/dist/consent/index.js +3 -3
- package/dist/{crypto-QXQOHMHF.js → crypto-FNK3XPCS.js} +7 -3
- package/dist/{delegation-NIQ43IPU.js → delegation-FMXNUWE6.js} +5 -5
- package/dist/derivations/index.cjs +82 -2
- package/dist/derivations/index.cjs.map +1 -1
- package/dist/derivations/index.d.cts +7 -5
- package/dist/derivations/index.d.ts +7 -5
- package/dist/derivations/index.js +8 -6
- package/dist/{dev-unlock-8XzcD2Z4.d.cts → dev-unlock-3_2b_vo6.d.cts} +1 -1
- package/dist/{dev-unlock-DR3upLd1.d.ts → dev-unlock-BMvwPr_E.d.ts} +1 -1
- package/dist/{strategy-BtW8fAjz.d.cts → errors-DUTlAt3Y.d.cts} +113 -727
- package/dist/{strategy-BtW8fAjz.d.ts → errors-DUTlAt3Y.d.ts} +113 -727
- package/dist/executor-IZ2NVXCY.js +11 -0
- package/dist/executor-THSEYEJG.js +8 -0
- package/dist/executor-WLFDUTOM.js +8 -0
- package/dist/{fanout-sidecar-67CMI3UT.js → fanout-sidecar-JGHXAJO5.js} +2 -2
- package/dist/forget/index.cjs +43 -0
- package/dist/forget/index.cjs.map +1 -0
- package/dist/forget/index.d.cts +1 -0
- package/dist/forget/index.d.ts +1 -0
- package/dist/forget/index.js +14 -0
- package/dist/guards/index.cjs +80 -3
- package/dist/guards/index.cjs.map +1 -1
- package/dist/guards/index.d.cts +7 -5
- package/dist/guards/index.d.ts +7 -5
- package/dist/guards/index.js +10 -6
- package/dist/{hash-CDjye9KV.d.ts → hash-BThBJFO1.d.ts} +1 -1
- package/dist/{hash-DuQ88_5W.d.cts → hash-BnWnL9bQ.d.cts} +1 -1
- package/dist/history/index.cjs +27 -4
- package/dist/history/index.cjs.map +1 -1
- package/dist/history/index.d.cts +7 -5
- package/dist/history/index.d.ts +7 -5
- package/dist/history/index.js +9 -7
- package/dist/history/index.js.map +1 -1
- package/dist/i18n/index.cjs +53 -0
- package/dist/i18n/index.cjs.map +1 -1
- package/dist/i18n/index.d.cts +6 -4
- package/dist/i18n/index.d.ts +6 -4
- package/dist/i18n/index.js +16 -8
- package/dist/i18n/index.js.map +1 -1
- package/dist/index-C-SSRIxP.d.cts +348 -0
- package/dist/index-C-SSRIxP.d.ts +348 -0
- package/dist/{index-C8Bk3-VF.d.cts → index-C6lgoUhK.d.cts} +47 -2
- package/dist/{index-nP99bXLg.d.ts → index-DP1JTWHZ.d.ts} +47 -2
- package/dist/index.cjs +3280 -1208
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +15 -12
- package/dist/index.d.ts +15 -12
- package/dist/index.js +149 -107
- package/dist/index.js.map +1 -1
- package/dist/indexing/index.cjs.map +1 -1
- package/dist/indexing/index.js +4 -4
- package/dist/issue-R2MWQO6K.js +12 -0
- package/dist/{ledger-A3LL253R.js → ledger-GXC2YA3A.js} +6 -6
- package/dist/materialized-views/index.cjs.map +1 -1
- package/dist/materialized-views/index.d.cts +7 -5
- package/dist/materialized-views/index.d.ts +7 -5
- package/dist/materialized-views/index.js +12 -12
- package/dist/noydb-RJL6FQ4B.js +37 -0
- package/dist/overlay-views/index.cjs.map +1 -1
- package/dist/overlay-views/index.d.cts +7 -5
- package/dist/overlay-views/index.d.ts +7 -5
- package/dist/overlay-views/index.js +4 -4
- package/dist/periods/index.cjs.map +1 -1
- package/dist/periods/index.d.cts +6 -4
- package/dist/periods/index.d.ts +6 -4
- package/dist/periods/index.js +6 -6
- package/dist/{public-envelope-YP2UWMLG.js → public-envelope-HXOFHY4N.js} +4 -4
- package/dist/query/index.cjs +30 -4
- package/dist/query/index.cjs.map +1 -1
- package/dist/query/index.d.cts +3 -2
- package/dist/query/index.d.ts +3 -2
- package/dist/query/index.js +6 -6
- package/dist/read-only-facade-EX6WZZBP.js +7 -0
- package/dist/registry-3T2RZC5A.js +8 -0
- package/dist/registry-DMS7OKBM.js +8 -0
- package/dist/{registry-UTA4CLQS.js → registry-WVXO6NH5.js} +3 -3
- package/dist/{revoke-HNMQZSCL.js → revoke-7LCWE2AH.js} +6 -6
- package/dist/sealed-record/index.cjs +139 -0
- package/dist/sealed-record/index.cjs.map +1 -0
- package/dist/sealed-record/index.d.cts +123 -0
- package/dist/sealed-record/index.d.ts +123 -0
- package/dist/sealed-record/index.js +42 -0
- package/dist/sealed-record/index.js.map +1 -0
- package/dist/session/index.cjs.map +1 -1
- package/dist/session/index.d.cts +7 -5
- package/dist/session/index.d.ts +7 -5
- package/dist/session/index.js +3 -3
- package/dist/shadow/index.cjs.map +1 -1
- package/dist/shadow/index.d.cts +6 -4
- package/dist/shadow/index.d.ts +6 -4
- package/dist/shadow/index.js +2 -2
- package/dist/{signer-DCMNKXSF.js → signer-HAVDLGOK.js} +5 -5
- package/dist/snapshots/index.cjs.map +1 -1
- package/dist/snapshots/index.d.cts +6 -4
- package/dist/snapshots/index.d.ts +6 -4
- package/dist/snapshots/index.js +4 -4
- package/dist/{stale-W5PQTRYH.js → stale-PGTEGJDI.js} +2 -2
- package/dist/stale-PGTEGJDI.js.map +1 -0
- package/dist/state-vault-QKQKN3H3.js +14 -0
- package/dist/state-vault-QKQKN3H3.js.map +1 -0
- package/dist/store/index.cjs.map +1 -1
- package/dist/store/index.d.cts +6 -4
- package/dist/store/index.d.ts +6 -4
- package/dist/store/index.js +2 -2
- package/dist/strategy-Diwh5lzS.d.ts +739 -0
- package/dist/strategy-nuyN8K5N.d.cts +739 -0
- package/dist/sync/index.cjs.map +1 -1
- package/dist/sync/index.d.cts +5 -3
- package/dist/sync/index.d.ts +5 -3
- package/dist/sync/index.js +4 -4
- package/dist/team/index.cjs.map +1 -1
- package/dist/team/index.d.cts +6 -4
- package/dist/team/index.d.ts +6 -4
- package/dist/team/index.js +8 -8
- package/dist/transition-guard--t3exQHF.d.cts +165 -0
- package/dist/transition-guard-BlI9Oy5K.d.ts +165 -0
- package/dist/tx/index.cjs.map +1 -1
- package/dist/tx/index.d.cts +6 -4
- package/dist/tx/index.d.ts +6 -4
- package/dist/tx/index.js +3 -3
- package/dist/{types-Bze6vkwm.d.cts → types-BpLPqyaO.d.cts} +1264 -513
- package/dist/{types-DrmBTscX.d.ts → types-Diqc2caK.d.ts} +1264 -513
- package/dist/{ulid-DbBVrNSt.d.ts → ulid-B1zNV8r9.d.ts} +1 -1
- package/dist/{ulid-DfZlAh0u.d.cts → ulid-DNiRB4Mx.d.cts} +1 -1
- package/dist/util/index.cjs.map +1 -1
- package/dist/util/index.js +1 -1
- package/dist/{vault-group-DX2HFQMX.js → vault-group-DPZVFRI5.js} +182 -6
- package/dist/vault-group-DPZVFRI5.js.map +1 -0
- package/dist/{with-materialized-view--4PsvMDu.d.cts → with-materialized-view-BdH_A_r6.d.cts} +1 -1
- package/dist/{with-materialized-view-QT1Tp7NO.d.ts → with-materialized-view-CzAgp_HJ.d.ts} +1 -1
- package/dist/{with-overlayed-view-BEXfpzSb.d.ts → with-overlayed-view-BJbqQnsR.d.ts} +1 -1
- package/dist/{with-overlayed-view-DlH5qmeB.d.cts → with-overlayed-view-C40rDPlu.d.cts} +1 -1
- package/dist/with-rollup-Bopu5UDZ.d.cts +47 -0
- package/dist/with-rollup-DrlGkxiE.d.ts +47 -0
- package/package.json +23 -3
- package/dist/chunk-42FEUPZQ.js.map +0 -1
- package/dist/chunk-535SSHBS.js.map +0 -1
- package/dist/chunk-667MB6AH.js.map +0 -1
- package/dist/chunk-7BQ4QWYX.js.map +0 -1
- package/dist/chunk-7Z7KSVA5.js.map +0 -1
- package/dist/chunk-DUREQF5W.js.map +0 -1
- package/dist/chunk-F3BPIPLS.js.map +0 -1
- package/dist/chunk-GNI5STXQ.js.map +0 -1
- package/dist/chunk-HOR4R722.js.map +0 -1
- package/dist/chunk-KABJXG2F.js.map +0 -1
- package/dist/chunk-OQSRJG6A.js +0 -63
- package/dist/chunk-OQSRJG6A.js.map +0 -1
- package/dist/chunk-UMLVJTYV.js.map +0 -1
- package/dist/chunk-YULZKK4F.js.map +0 -1
- package/dist/executor-6ZDSDZ6V.js +0 -8
- package/dist/executor-AZLS3KBK.js +0 -11
- package/dist/executor-IDZDAFNH.js +0 -8
- package/dist/immutable-guard-CRPvu24K.d.cts +0 -82
- package/dist/immutable-guard-Dov3WvwF.d.ts +0 -82
- package/dist/issue-RZP3VI6O.js +0 -12
- package/dist/noydb-WCMY2ZOW.js +0 -35
- package/dist/read-only-facade-ITU6L7BL.js +0 -7
- package/dist/registry-EB6SISTA.js +0 -8
- package/dist/registry-IUZQVVBB.js +0 -8
- package/dist/state-vault-TMXZRTY5.js.map +0 -1
- package/dist/vault-group-DX2HFQMX.js.map +0 -1
- package/dist/with-derivation-CCqAchD5.d.cts +0 -13
- package/dist/with-derivation-_lySGdlm.d.ts +0 -13
- /package/dist/{chunk-6RR3MNMG.js.map → chunk-2U226RDC.js.map} +0 -0
- /package/dist/{chunk-L2BNJ6HM.js.map → chunk-32XVU2LT.js.map} +0 -0
- /package/dist/{chunk-X73VS74Y.js.map → chunk-33DAO2XG.js.map} +0 -0
- /package/dist/{chunk-QSUK7YWK.js.map → chunk-4UI5T3K7.js.map} +0 -0
- /package/dist/{chunk-G4SCICH5.js.map → chunk-5KKNBDCT.js.map} +0 -0
- /package/dist/{chunk-E2CDVKMH.js.map → chunk-6FHCU3QO.js.map} +0 -0
- /package/dist/{chunk-F4OJZIWQ.js.map → chunk-6Q5XRLKG.js.map} +0 -0
- /package/dist/{chunk-4TBBMHVC.js.map → chunk-6YEC7LLO.js.map} +0 -0
- /package/dist/{chunk-ZNQYHJXX.js.map → chunk-AB7JF2KF.js.map} +0 -0
- /package/dist/{chunk-XL35NSEN.js.map → chunk-BUBJYIZ7.js.map} +0 -0
- /package/dist/{chunk-3YWP3WBP.js.map → chunk-DKMPR76W.js.map} +0 -0
- /package/dist/{chunk-BI6ETQPF.js.map → chunk-DR5I7Q6N.js.map} +0 -0
- /package/dist/{chunk-6H2ZUNR7.js.map → chunk-FQRAYDS4.js.map} +0 -0
- /package/dist/{chunk-TS26M2SB.js.map → chunk-HOO5I3VG.js.map} +0 -0
- /package/dist/{chunk-OMAMZKKD.js.map → chunk-HWK75CYX.js.map} +0 -0
- /package/dist/{chunk-TKIY625R.js.map → chunk-HZOEBM67.js.map} +0 -0
- /package/dist/{chunk-DLZ2ONOD.js.map → chunk-IQ4GMEYZ.js.map} +0 -0
- /package/dist/{chunk-XWH4MXIU.js.map → chunk-K3NYRK7U.js.map} +0 -0
- /package/dist/{chunk-JD3OZAI4.js.map → chunk-KTZ2MHQK.js.map} +0 -0
- /package/dist/{chunk-SCJPI4Z5.js.map → chunk-LQ3GD5LL.js.map} +0 -0
- /package/dist/{chunk-AAVWKNZW.js.map → chunk-M3H7VSRV.js.map} +0 -0
- /package/dist/{chunk-BR3AMFGS.js.map → chunk-MGB67HKX.js.map} +0 -0
- /package/dist/{chunk-OB2ZJQ2D.js.map → chunk-PGVEL5IZ.js.map} +0 -0
- /package/dist/{chunk-BQ65SS5A.js.map → chunk-QPJ7Z4L3.js.map} +0 -0
- /package/dist/{chunk-CZI2A4MQ.js.map → chunk-RQFG2YSV.js.map} +0 -0
- /package/dist/{chunk-CJORTUJ2.js.map → chunk-RZWQNMMP.js.map} +0 -0
- /package/dist/{chunk-FFXM3ZIF.js.map → chunk-T4T5I5L6.js.map} +0 -0
- /package/dist/{chunk-QVIEAYTP.js.map → chunk-TFAN3NFD.js.map} +0 -0
- /package/dist/{chunk-Z4DO7YSI.js.map → chunk-TPOHMOGX.js.map} +0 -0
- /package/dist/{chunk-VLMPU56Q.js.map → chunk-TTS3RWL5.js.map} +0 -0
- /package/dist/{chunk-IXBIFDEW.js.map → chunk-VVDSDOVV.js.map} +0 -0
- /package/dist/{chunk-FWPKCXTN.js.map → chunk-WZCG3EZ6.js.map} +0 -0
- /package/dist/{chunk-HBXJ37ZY.js.map → chunk-Y5XVB75E.js.map} +0 -0
- /package/dist/{chunk-IQLVUT37.js.map → chunk-Z3BE5BRK.js.map} +0 -0
- /package/dist/{crypto-QXQOHMHF.js.map → crypto-FNK3XPCS.js.map} +0 -0
- /package/dist/{delegation-NIQ43IPU.js.map → delegation-FMXNUWE6.js.map} +0 -0
- /package/dist/{executor-6ZDSDZ6V.js.map → executor-IZ2NVXCY.js.map} +0 -0
- /package/dist/{executor-AZLS3KBK.js.map → executor-THSEYEJG.js.map} +0 -0
- /package/dist/{executor-IDZDAFNH.js.map → executor-WLFDUTOM.js.map} +0 -0
- /package/dist/{fanout-sidecar-67CMI3UT.js.map → fanout-sidecar-JGHXAJO5.js.map} +0 -0
- /package/dist/{issue-RZP3VI6O.js.map → forget/index.js.map} +0 -0
- /package/dist/{ledger-A3LL253R.js.map → issue-R2MWQO6K.js.map} +0 -0
- /package/dist/{noydb-WCMY2ZOW.js.map → ledger-GXC2YA3A.js.map} +0 -0
- /package/dist/{public-envelope-YP2UWMLG.js.map → noydb-RJL6FQ4B.js.map} +0 -0
- /package/dist/{read-only-facade-ITU6L7BL.js.map → public-envelope-HXOFHY4N.js.map} +0 -0
- /package/dist/{registry-EB6SISTA.js.map → read-only-facade-EX6WZZBP.js.map} +0 -0
- /package/dist/{registry-IUZQVVBB.js.map → registry-3T2RZC5A.js.map} +0 -0
- /package/dist/{registry-UTA4CLQS.js.map → registry-DMS7OKBM.js.map} +0 -0
- /package/dist/{revoke-HNMQZSCL.js.map → registry-WVXO6NH5.js.map} +0 -0
- /package/dist/{signer-DCMNKXSF.js.map → revoke-7LCWE2AH.js.map} +0 -0
- /package/dist/{stale-W5PQTRYH.js.map → signer-HAVDLGOK.js.map} +0 -0
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
export { q as SealedRecordExpiredError, r as SealedRecordMismatchError } from '../errors-DUTlAt3Y.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-DUTlAt3Y.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-QJKZ5WUP.js";
|
|
5
|
+
import {
|
|
6
|
+
SealedRecordExpiredError,
|
|
7
|
+
SealedRecordMismatchError
|
|
8
|
+
} from "../chunk-HMFC6M2G.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":[]}
|