@noy-db/hub 0.8.0-pre.0 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +50 -0
- package/dist/api-OS747DS4.js +18 -0
- package/dist/as/index.js +11 -12
- package/dist/as/index.js.map +1 -1
- package/dist/at/index.js +9 -10
- package/dist/attestation/index.js +39 -28
- package/dist/attestation/index.js.map +1 -1
- package/dist/{backup-7TFRVFLH.js → backup-YE2VQ26S.js} +15 -16
- package/dist/backup-YE2VQ26S.js.map +1 -0
- package/dist/blobs/index.js +13 -14
- package/dist/blobs/index.js.map +1 -1
- package/dist/broker/index.js +12 -13
- package/dist/broker/index.js.map +1 -1
- package/dist/by/index.js +2 -2
- package/dist/capsule/contract.d.ts +159 -0
- package/dist/capsule/contract.js +95 -0
- package/dist/capsule/enclave-aes/bound.d.ts +52 -0
- package/dist/capsule/enclave-aes/capabilities.d.ts +2 -0
- package/dist/capsule/enclave-aes/classify/compare.d.ts +20 -0
- package/dist/{kernel/enclave → capsule/enclave-aes}/classify/find.d.ts +1 -1
- package/dist/{kernel/enclave → capsule/enclave-aes}/classify/reveal.d.ts +1 -1
- package/dist/{kernel/enclave → capsule/enclave-aes}/classify/verify.d.ts +2 -2
- package/dist/{kernel/enclave → capsule/enclave-aes}/classify/write.d.ts +1 -1
- package/dist/{kernel/enclave → capsule/enclave-aes}/crypto.d.ts +33 -129
- package/dist/capsule/enclave-aes/index.d.ts +113 -0
- package/dist/capsule/enclave-aes/index.js +335 -0
- package/dist/capsule/enclave-aes/index.js.map +1 -0
- package/dist/capsule/enclave-aes/primitives.d.ts +29 -0
- package/dist/capsule/index.d.ts +27 -0
- package/dist/capsule/plumbing/ct-equal.d.ts +11 -0
- package/dist/{kernel/enclave/record-keys → capsule/plumbing}/deterministic.d.ts +8 -21
- package/dist/capsule/plumbing/digest.d.ts +122 -0
- package/dist/{kernel/enclave/record-keys → capsule/plumbing}/envelope-body.d.ts +44 -48
- package/dist/capsule/plumbing/index.d.ts +100 -0
- package/dist/capsule/plumbing/lifecycle.d.ts +50 -0
- package/dist/{kernel/enclave/record-keys → capsule/plumbing}/record-codec.d.ts +55 -20
- package/dist/{kernel/enclave → capsule/plumbing}/record-envelope.d.ts +1 -1
- package/dist/capsule/plumbing/rekey-blob.d.ts +33 -0
- package/dist/capsule/plumbing/rekey.d.ts +44 -0
- package/dist/capsule/plumbing/sealed-slot.d.ts +22 -0
- package/dist/capsule/plumbing/sealed-slots.d.ts +37 -0
- package/dist/capsule/plumbing/sealing.d.ts +29 -0
- package/dist/capsule/plumbing/sign.d.ts +9 -0
- package/dist/{kernel/enclave/record-keys → capsule/plumbing}/tombstone.d.ts +2 -2
- package/dist/capsule-VOLX3QRQ.js +209 -0
- package/dist/cargo/index.js +36 -36
- package/dist/{chunk-DF73H4UN.js → chunk-23D6M6VM.js} +5 -5
- package/dist/chunk-23D6M6VM.js.map +1 -0
- package/dist/{chunk-FH2L2E34.js → chunk-244QBK7Z.js} +4 -4
- package/dist/{chunk-FH2L2E34.js.map → chunk-244QBK7Z.js.map} +1 -1
- package/dist/{chunk-YSK2CU2Q.js → chunk-2AFX33YA.js} +2 -2
- package/dist/{chunk-TKUOEU2F.js → chunk-2GHDLTPE.js} +2 -2
- package/dist/{chunk-GYGLAVCX.js → chunk-2MG3SW7Q.js} +6 -2
- package/dist/chunk-2MG3SW7Q.js.map +1 -0
- package/dist/{chunk-6OWXYZK2.js → chunk-2ODVB6LZ.js} +2 -2
- package/dist/{chunk-X25NWUZB.js → chunk-2PVXF5CS.js} +3 -3
- package/dist/{chunk-IEX7NK2K.js → chunk-2RH777HH.js} +21 -20
- package/dist/{chunk-IEX7NK2K.js.map → chunk-2RH777HH.js.map} +1 -1
- package/dist/{chunk-244VXYPG.js → chunk-37EPTBBR.js} +14 -1
- package/dist/chunk-37EPTBBR.js.map +1 -0
- package/dist/{chunk-NRT6QZQB.js → chunk-3A5DUZ56.js} +6 -6
- package/dist/chunk-3A5DUZ56.js.map +1 -0
- package/dist/{chunk-ORDURZBU.js → chunk-3EWS67C7.js} +2 -2
- package/dist/{chunk-3H5KLDZN.js → chunk-3L2NBKDR.js} +4 -8
- package/dist/chunk-3L2NBKDR.js.map +1 -0
- package/dist/{chunk-ENAG3IY7.js → chunk-3XJQBBZD.js} +26 -28
- package/dist/chunk-3XJQBBZD.js.map +1 -0
- package/dist/{chunk-KJFW62P4.js → chunk-42ALPZ2B.js} +652 -662
- package/dist/chunk-42ALPZ2B.js.map +1 -0
- package/dist/{chunk-FXQBGFOX.js → chunk-4CIQDWRB.js} +8 -8
- package/dist/{chunk-HT2AHGQI.js → chunk-4JPMZTJY.js} +2 -2
- package/dist/{chunk-FQ5VRHIB.js → chunk-4T3SE27M.js} +5 -9
- package/dist/chunk-4T3SE27M.js.map +1 -0
- package/dist/{chunk-MKXXMNJH.js → chunk-4V3Q35WG.js} +2 -2
- package/dist/{chunk-A6IJU4TK.js → chunk-52MGURXO.js} +2 -2
- package/dist/{chunk-IUWCVHQ7.js → chunk-5A4345TG.js} +4 -4
- package/dist/{chunk-IUWCVHQ7.js.map → chunk-5A4345TG.js.map} +1 -1
- package/dist/{chunk-ISZQJBML.js → chunk-5FE75J4S.js} +6 -6
- package/dist/chunk-5FE75J4S.js.map +1 -0
- package/dist/chunk-5KC7QYEC.js +565 -0
- package/dist/chunk-5KC7QYEC.js.map +1 -0
- package/dist/{chunk-NNARWO72.js → chunk-5UMK7GRI.js} +13 -12
- package/dist/chunk-5UMK7GRI.js.map +1 -0
- package/dist/{chunk-HLEK5VAN.js → chunk-5WWDGFOS.js} +2 -2
- package/dist/{chunk-CKNGS5MH.js → chunk-6QVKPHBF.js} +3 -5
- package/dist/chunk-6QVKPHBF.js.map +1 -0
- package/dist/{chunk-PSIV7CJV.js → chunk-747G6CT3.js} +2 -2
- package/dist/chunk-747G6CT3.js.map +1 -0
- package/dist/{chunk-LGRLME4M.js → chunk-7R2Q7CPL.js} +16 -16
- package/dist/chunk-7R2Q7CPL.js.map +1 -0
- package/dist/{chunk-SOIQ4MM4.js → chunk-7XMHMVTS.js} +3 -3
- package/dist/{chunk-BUDAGWL5.js → chunk-A4XMIZT3.js} +6 -6
- package/dist/{chunk-BUDAGWL5.js.map → chunk-A4XMIZT3.js.map} +1 -1
- package/dist/{chunk-4MXI3ODD.js → chunk-AEQGFRU4.js} +3 -3
- package/dist/{chunk-7JE7BDYJ.js → chunk-AL6ML4LA.js} +5 -5
- package/dist/{chunk-ZUVBC32X.js → chunk-AUKKUPVB.js} +2 -2
- package/dist/chunk-BNWA3WG5.js +22 -0
- package/dist/chunk-BNWA3WG5.js.map +1 -0
- package/dist/{chunk-WY2XXTET.js → chunk-BPWYQ25R.js} +4 -4
- package/dist/{chunk-EOVMT6TB.js → chunk-BVCUTXE3.js} +2 -2
- package/dist/{chunk-UPD5NWI5.js → chunk-DHHGL42E.js} +13 -16
- package/dist/chunk-DHHGL42E.js.map +1 -0
- package/dist/{chunk-3JWHAR6E.js → chunk-DIZLQVAA.js} +2 -2
- package/dist/{chunk-QWFHIOD2.js → chunk-DLD5LGDS.js} +11 -12
- package/dist/chunk-DLD5LGDS.js.map +1 -0
- package/dist/{chunk-ZE4CHIED.js → chunk-DQESF6RP.js} +17 -28
- package/dist/chunk-DQESF6RP.js.map +1 -0
- package/dist/{chunk-IT22PWKV.js → chunk-E2N2T5ZO.js} +2 -2
- package/dist/{chunk-3ELRMVJK.js → chunk-EGVJ7TM4.js} +31 -34
- package/dist/chunk-EGVJ7TM4.js.map +1 -0
- package/dist/{chunk-WNJ4AVGE.js → chunk-EJLV62NI.js} +2 -2
- package/dist/{chunk-QBBUZ3I3.js → chunk-EYG2CY2X.js} +11 -11
- package/dist/{enclave-27SMF6GF.js → chunk-EZGV6F47.js} +83 -56
- package/dist/chunk-EZGV6F47.js.map +1 -0
- package/dist/{chunk-LQ4ZHOKP.js → chunk-EZOAKKTB.js} +36 -27
- package/dist/chunk-EZOAKKTB.js.map +1 -0
- package/dist/{chunk-BJ2IXQ5Q.js → chunk-FFJFE4T7.js} +2 -2
- package/dist/{chunk-JCN44NCY.js → chunk-FLPCETP6.js} +2 -2
- package/dist/{chunk-5O7D6ZTW.js → chunk-FOEDQATO.js} +2 -2
- package/dist/{chunk-VNNRUGMM.js → chunk-FVH5QYY2.js} +2 -2
- package/dist/{chunk-ANWPSTZU.js → chunk-G2MVBDFP.js} +23 -26
- package/dist/chunk-G2MVBDFP.js.map +1 -0
- package/dist/chunk-GMKGGY7V.js +234 -0
- package/dist/chunk-GMKGGY7V.js.map +1 -0
- package/dist/{chunk-EIPVYUEP.js → chunk-GQ4MF3CM.js} +3 -3
- package/dist/chunk-GQ4MF3CM.js.map +1 -0
- package/dist/{chunk-PEOZ34EM.js → chunk-GSAK56VF.js} +1 -1
- package/dist/chunk-GSAK56VF.js.map +1 -0
- package/dist/{chunk-QOOUUR4A.js → chunk-GUZET4SG.js} +10 -4
- package/dist/chunk-GUZET4SG.js.map +1 -0
- package/dist/{chunk-4AF3TUMP.js → chunk-GZT3NQRA.js} +2 -2
- package/dist/{chunk-N5DNADLQ.js → chunk-H23XHRTT.js} +19 -34
- package/dist/chunk-H23XHRTT.js.map +1 -0
- package/dist/{chunk-MVZ2TPVP.js → chunk-H427H63K.js} +2 -2
- package/dist/{chunk-6B3VNR4P.js → chunk-H7JBY4P7.js} +23 -32
- package/dist/chunk-H7JBY4P7.js.map +1 -0
- package/dist/{chunk-MLPHLJIQ.js → chunk-HS554XAF.js} +2 -2
- package/dist/{chunk-HK67PX4J.js → chunk-HW7CMKUG.js} +1 -1
- package/dist/chunk-HW7CMKUG.js.map +1 -0
- package/dist/{chunk-S57HTZ6X.js → chunk-IMQKWR46.js} +5 -7
- package/dist/chunk-IMQKWR46.js.map +1 -0
- package/dist/{chunk-FCKWQE2H.js → chunk-IUBMZPHM.js} +7 -7
- package/dist/chunk-IUBMZPHM.js.map +1 -0
- package/dist/{chunk-UD5EVGZ7.js → chunk-IUT3GWP3.js} +49 -13
- package/dist/chunk-IUT3GWP3.js.map +1 -0
- package/dist/{chunk-J6UOHJY5.js → chunk-JDEYF3PJ.js} +4 -8
- package/dist/{chunk-J6UOHJY5.js.map → chunk-JDEYF3PJ.js.map} +1 -1
- package/dist/{chunk-NWHBJQAL.js → chunk-JIBUPZHA.js} +4 -4
- package/dist/chunk-JIBUPZHA.js.map +1 -0
- package/dist/{chunk-TROR3ALR.js → chunk-JOSPH3E5.js} +2 -2
- package/dist/{chunk-F24ZZTHQ.js → chunk-JQYKPKG6.js} +4 -4
- package/dist/{chunk-GF5BZ7D4.js → chunk-JSMTXZR3.js} +8 -12
- package/dist/chunk-JSMTXZR3.js.map +1 -0
- package/dist/chunk-JWWYRR4Q.js +12 -0
- package/dist/chunk-JWWYRR4Q.js.map +1 -0
- package/dist/{chunk-HBPPGWUM.js → chunk-KZXDLBY6.js} +14 -9
- package/dist/chunk-KZXDLBY6.js.map +1 -0
- package/dist/{chunk-7VCXZDA4.js → chunk-LIOVX5TJ.js} +7 -11
- package/dist/chunk-LIOVX5TJ.js.map +1 -0
- package/dist/{chunk-QWGU66MP.js → chunk-LNSVGRHO.js} +5 -7
- package/dist/chunk-LNSVGRHO.js.map +1 -0
- package/dist/{chunk-MDWKM2XC.js → chunk-M5B2W6YY.js} +3 -3
- package/dist/{chunk-F2TDU7MQ.js → chunk-MBMTND6D.js} +2 -2
- package/dist/{chunk-K6W7BVZ6.js → chunk-MILI22XQ.js} +3 -3
- package/dist/{chunk-YNIUIERI.js → chunk-MXKI4ABF.js} +18 -59
- package/dist/chunk-MXKI4ABF.js.map +1 -0
- package/dist/{chunk-T2LBQ5DV.js → chunk-MXOQ5JCG.js} +252 -214
- package/dist/chunk-MXOQ5JCG.js.map +1 -0
- package/dist/{chunk-ZXABPVM6.js → chunk-N7EVQD5S.js} +9 -13
- package/dist/chunk-N7EVQD5S.js.map +1 -0
- package/dist/{chunk-CF5UU4S7.js → chunk-N7UDP5VU.js} +7 -7
- package/dist/{chunk-FQ54DWUQ.js → chunk-NBQ3KK6X.js} +4 -4
- package/dist/{chunk-4I522ERM.js → chunk-NCO25JZO.js} +4 -4
- package/dist/chunk-NH2UOV3B.js +18 -0
- package/dist/chunk-NH2UOV3B.js.map +1 -0
- package/dist/{chunk-SI3V7D4G.js → chunk-O2IMQSNA.js} +2 -2
- package/dist/{chunk-T52GX4SA.js → chunk-O46CHQT7.js} +4 -4
- package/dist/chunk-OIEO4WDL.js +27 -0
- package/dist/chunk-OIEO4WDL.js.map +1 -0
- package/dist/{chunk-GHLTDZRS.js → chunk-OKSTSITU.js} +25 -4
- package/dist/chunk-OKSTSITU.js.map +1 -0
- package/dist/{chunk-TOPYQ6GA.js → chunk-OYW3I5M4.js} +6 -6
- package/dist/{chunk-X4773RBR.js → chunk-PD64727P.js} +2 -2
- package/dist/chunk-PD64727P.js.map +1 -0
- package/dist/{chunk-BP6DARYA.js → chunk-PP3K67AJ.js} +4 -4
- package/dist/chunk-PP3K67AJ.js.map +1 -0
- package/dist/chunk-Q2XRFWOI.js +40 -0
- package/dist/chunk-Q2XRFWOI.js.map +1 -0
- package/dist/{chunk-AOWGXU6D.js → chunk-Q4UHJ5SN.js} +2 -2
- package/dist/{chunk-FW22ZCXT.js → chunk-QBLT6POL.js} +2 -2
- package/dist/chunk-QMWY2FDS.js +157 -0
- package/dist/chunk-QMWY2FDS.js.map +1 -0
- package/dist/{chunk-I3JDRCMW.js → chunk-RB4DOPGZ.js} +10 -10
- package/dist/{chunk-32YV3TJT.js → chunk-SMV2HRDU.js} +2 -2
- package/dist/{chunk-ODVPTDPK.js → chunk-SV2PM2OY.js} +1 -1
- package/dist/chunk-SV2PM2OY.js.map +1 -0
- package/dist/{chunk-Z5HTYMMQ.js → chunk-SYNY3VB5.js} +2 -2
- package/dist/{chunk-SYVZW77S.js → chunk-TEHHROZL.js} +6 -8
- package/dist/chunk-TEHHROZL.js.map +1 -0
- package/dist/{chunk-ZSX4S5XB.js → chunk-TKVUE4JF.js} +9 -9
- package/dist/{chunk-B57AFBY2.js → chunk-TZZBXPZK.js} +2 -2
- package/dist/{chunk-VNPEWFPD.js → chunk-U2FZNEWJ.js} +4 -4
- package/dist/chunk-U2FZNEWJ.js.map +1 -0
- package/dist/{chunk-5FDLC6G7.js → chunk-UA372JHH.js} +3 -3
- package/dist/{chunk-PDCG6PR5.js → chunk-UEFOQH74.js} +2 -2
- package/dist/chunk-UEFOQH74.js.map +1 -0
- package/dist/{chunk-HVSCEIYL.js → chunk-UIYESRD6.js} +9 -11
- package/dist/chunk-UIYESRD6.js.map +1 -0
- package/dist/{chunk-B6SJIBQK.js → chunk-V3RWOOSO.js} +4 -4
- package/dist/{chunk-HBRLNOHL.js → chunk-V7ADQF5O.js} +4 -4
- package/dist/{chunk-L7DOS3TE.js → chunk-VAORSCSU.js} +3 -3
- package/dist/chunk-VAORSCSU.js.map +1 -0
- package/dist/{chunk-M522UYZ2.js → chunk-VFHCKG5M.js} +6 -10
- package/dist/chunk-VFHCKG5M.js.map +1 -0
- package/dist/{chunk-DC5QVPV7.js → chunk-VHBKYN2J.js} +3 -3
- package/dist/chunk-VHBKYN2J.js.map +1 -0
- package/dist/{chunk-WX5ADGTZ.js → chunk-VKI2EB3N.js} +3 -3
- package/dist/chunk-VKI2EB3N.js.map +1 -0
- package/dist/{chunk-MTL7MXGR.js → chunk-VMV5SBE4.js} +16 -17
- package/dist/chunk-VMV5SBE4.js.map +1 -0
- package/dist/{chunk-F7XGHL5O.js → chunk-VQDZYB2B.js} +3 -3
- package/dist/{chunk-BK2HHQGN.js → chunk-VVOLDVIR.js} +2 -2
- package/dist/{chunk-6LMQ5R26.js → chunk-WPOYWFSE.js} +7 -7
- package/dist/{chunk-6LMQ5R26.js.map → chunk-WPOYWFSE.js.map} +1 -1
- package/dist/{chunk-3F7GLNAE.js → chunk-WXE4W2U6.js} +7 -11
- package/dist/chunk-WXE4W2U6.js.map +1 -0
- package/dist/{chunk-6K7DPM7D.js → chunk-XQRFSKYM.js} +2 -2
- package/dist/{chunk-M7NI3IWE.js → chunk-XSPFDUDG.js} +22 -50
- package/dist/chunk-XSPFDUDG.js.map +1 -0
- package/dist/{chunk-ID6Z6E66.js → chunk-Y2RKVFKR.js} +2 -2
- package/dist/{chunk-6LNL42F5.js → chunk-Y3LPTBG7.js} +12 -12
- package/dist/chunk-Y3LPTBG7.js.map +1 -0
- package/dist/{chunk-FN5EBVTQ.js → chunk-YRXFFWG4.js} +2 -2
- package/dist/classified/index.js +5 -5
- package/dist/{classified-marker-W3USLL5M.js → classified-marker-SIYKUU5L.js} +3 -3
- package/dist/classified-marker-SIYKUU5L.js.map +1 -0
- package/dist/collection-facade-CS7CA2XO.js +47 -0
- package/dist/{computed-TPFBX7U4.js → computed-FAD7SED4.js} +3 -3
- package/dist/consent/index.js +10 -11
- package/dist/consent/index.js.map +1 -1
- package/dist/cover/index.js +9 -10
- package/dist/custody/index.js +12 -13
- package/dist/{dead-filter-U2UYKSZL.js → dead-filter-4F3LWYKH.js} +11 -3
- package/dist/dead-filter-4F3LWYKH.js.map +1 -0
- package/dist/debug/index.js +11 -2
- package/dist/debug/index.js.map +1 -1
- package/dist/{delegation-S3AEPW2T.js → delegation-NANZDG4N.js} +13 -16
- package/dist/delegation-NANZDG4N.js.map +1 -0
- package/dist/derivations/index.js +23 -24
- package/dist/derive-XLOJVXPU.js +20 -0
- package/dist/directory/index.js +10 -11
- package/dist/{dispatch-3CQDJV5Q.js → dispatch-H4HV32AM.js} +5 -5
- package/dist/{dispatch-RH4LHKBH.js → dispatch-JDZNGEB3.js} +21 -22
- package/dist/dispatch-JDZNGEB3.js.map +1 -0
- package/dist/executor-FMPVN6DT.js +35 -0
- package/dist/executor-LBBBRTN5.js +8 -0
- package/dist/executor-OSRZST2U.js +8 -0
- package/dist/export-accessible-RAOJAAU5.js +22 -0
- package/dist/extract-partition-JD5CUSTG.js +37 -0
- package/dist/{fanout-sidecar-OT6RYLOL.js → fanout-sidecar-L7NHPIOC.js} +13 -15
- package/dist/fanout-sidecar-L7NHPIOC.js.map +1 -0
- package/dist/find-JRN4RNQ5.js +10 -0
- package/dist/forget/index.js +9 -10
- package/dist/forget/index.js.map +1 -1
- package/dist/guards/index.js +4 -4
- package/dist/history/index.js +13 -14
- package/dist/history/index.js.map +1 -1
- package/dist/i18n/index.js +14 -15
- package/dist/i18n/index.js.map +1 -1
- package/dist/index.d.ts +8 -8
- package/dist/index.js +183 -184
- package/dist/index.js.map +1 -1
- package/dist/indexing/index.js +5 -5
- package/dist/introspection/index.js +11 -12
- package/dist/issue-YIVBZUTH.js +19 -0
- package/dist/kernel/attestation-types.d.ts +62 -0
- package/dist/kernel/collection-config.d.ts +1 -48
- package/dist/kernel/collection.d.ts +1 -1
- package/dist/kernel/cutover-transform.d.ts +1 -1
- package/dist/kernel/errors.d.ts +30 -2
- package/dist/kernel/merge-authority.d.ts +1 -1
- package/dist/kernel/paths.d.ts +29 -5
- package/dist/kernel/prepared-write.d.ts +1 -1
- package/dist/kernel/secret-mode.d.ts +1 -1
- package/dist/kernel/types.d.ts +42 -5
- package/dist/kernel/vault.d.ts +2 -2
- package/dist/kernel/write-queue.d.ts +17 -0
- package/dist/{ledger-KZPCMVZY.js → ledger-5ZMGE44K.js} +11 -12
- package/dist/liberate-WZSZM2W6.js +24 -0
- package/dist/link-set-MFXC24VK.js +29 -0
- package/dist/{managed-secret-S3MQ6SH6.js → managed-secret-MFTFT22X.js} +10 -11
- package/dist/materialized-views/index.js +26 -27
- package/dist/{migrate-cek-V7GKJZ7O.js → migrate-cek-DZRFFOHW.js} +2 -2
- package/dist/money/index.js +5 -5
- package/dist/noydb-ITIGNKUF.js +96 -0
- package/dist/overlay-views/index.js +4 -4
- package/dist/periods/index.js +12 -13
- package/dist/pod/index.js +72 -72
- package/dist/{pod-handle-WGDFB4C2.js → pod-handle-A3LET7NO.js} +10 -11
- package/dist/pod-handle-A3LET7NO.js.map +1 -0
- package/dist/policy/index.js +10 -11
- package/dist/port/on/index.d.ts +1 -1
- package/dist/port/to/index.d.ts +1 -1
- package/dist/port/with/blob-strategy.d.ts +1 -1
- package/dist/port/with/classified-strategy.d.ts +1 -1
- package/dist/port/with/collection-options.d.ts +1 -1
- package/dist/port/with/collection-registries.d.ts +1 -1
- package/dist/port/with/lookup-strategy.d.ts +2 -2
- package/dist/portability/index.js +8 -8
- package/dist/{post-register-SLSXIPBV.js → post-register-7ND27CF2.js} +6 -6
- package/dist/post-register-7ND27CF2.js.map +1 -0
- package/dist/query/all/index.js +15 -15
- package/dist/query/index.js +7 -7
- package/dist/query/live/index.js +7 -7
- package/dist/query/reduce/index.js +10 -10
- package/dist/query/relate/index.js +9 -9
- package/dist/reduce/index.js +8 -8
- package/dist/register-DT5HZ2LZ.js +30 -0
- package/dist/registry-BHRZGZHF.js +8 -0
- package/dist/registry-ET6ZFFWA.js +34 -0
- package/dist/registry-HXFGLGTG.js +8 -0
- package/dist/registry-THCPDEOD.js +23 -0
- package/dist/request-withdrawal-AV2MJJKY.js +30 -0
- package/dist/{reveal-4BCKPEC2.js → reveal-B2TLP4JQ.js} +10 -9
- package/dist/reveal-B2TLP4JQ.js.map +1 -0
- package/dist/revoke-6DWIEOCV.js +24 -0
- package/dist/satellites/index.js +1 -1
- package/dist/schema-update/index.js +2 -2
- package/dist/sealed-record/index.js +16 -18
- package/dist/sealed-record/index.js.map +1 -1
- package/dist/search/index.js +4 -4
- package/dist/{seed-4JS2RJ4A.js → seed-XNSE4U3S.js} +15 -18
- package/dist/seed-XNSE4U3S.js.map +1 -0
- package/dist/sequence/index.js +9 -10
- package/dist/session/index.js +9 -10
- package/dist/session/index.js.map +1 -1
- package/dist/shadow/index.js +2 -2
- package/dist/signer-MHGW3OIL.js +23 -0
- package/dist/snapshots/index.js +11 -11
- package/dist/stale-6GCFMOOR.js +28 -0
- package/dist/storage-BYN5LO6Z.js +21 -0
- package/dist/store/index.js +1 -1
- package/dist/{store-coordination-provider-2O2VUHKW.js → store-coordination-provider-C4BPT5XF.js} +11 -12
- package/dist/store-coordination-provider-C4BPT5XF.js.map +1 -0
- package/dist/sync/index.js +10 -11
- package/dist/sync/index.js.map +1 -1
- package/dist/team/index.js +15 -16
- package/dist/tiers/index.js +11 -12
- package/dist/to/index.js +2 -2
- package/dist/transactions/index.js +3 -3
- package/dist/util/index.js +1 -1
- package/dist/vault-head/index.js +11 -14
- package/dist/vault-head/index.js.map +1 -1
- package/dist/{verify-RVT67IMH.js → verify-UKALW7C2.js} +14 -12
- package/dist/verify-UKALW7C2.js.map +1 -0
- package/dist/via/classified/binding.d.ts +2 -2
- package/dist/via/classified/config-drift.d.ts +2 -2
- package/dist/via/classified/errors.d.ts +1 -1
- package/dist/via/lookup/handle.d.ts +4 -4
- package/dist/walk-4VPK7AS4.js +20 -0
- package/dist/with-audit/attestation/index.d.ts +2 -1
- package/dist/with-audit/attestation/issue.d.ts +2 -2
- package/dist/with-audit/attestation/revoke.d.ts +2 -2
- package/dist/with-audit/attestation/scheme.d.ts +7 -0
- package/dist/with-audit/attestation/signer.d.ts +1 -1
- package/dist/with-audit/attestation/strategy.d.ts +2 -2
- package/dist/with-audit/attestation/types.d.ts +10 -0
- package/dist/with-audit/attestation/vault-facade.d.ts +2 -2
- package/dist/with-audit/attestation/verifier.d.ts +6 -0
- package/dist/with-audit/consent/consent.d.ts +1 -1
- package/dist/with-audit/consent/strategy.d.ts +1 -1
- package/dist/with-audit/forget/subject-index.d.ts +1 -1
- package/dist/with-audit/periods/vault-facade.d.ts +1 -1
- package/dist/with-audit/sealed-record/index.d.ts +2 -2
- package/dist/with-audit/sealed-record/strategy.d.ts +1 -1
- package/dist/with-audit/tiers/index.d.ts +2 -2
- package/dist/with-cargo/adopt-partition.d.ts +1 -1
- package/dist/with-cargo/extract-partition.d.ts +1 -1
- package/dist/with-cargo/floor.d.ts +1 -1
- package/dist/with-commit/history/history.d.ts +2 -2
- package/dist/with-commit/history/index.d.ts +1 -1
- package/dist/with-commit/history/ledger/store.d.ts +1 -1
- package/dist/with-commit/history/strategy.d.ts +1 -1
- package/dist/with-commit/history/time-machine.d.ts +1 -1
- package/dist/with-commit/numbering/index.d.ts +1 -1
- package/dist/with-commit/sequence/index.d.ts +1 -1
- package/dist/with-commit/vault-head/head.d.ts +1 -1
- package/dist/with-commit/vault-head/index.d.ts +1 -1
- package/dist/with-commit/vault-head/strategy.d.ts +1 -1
- package/dist/with-commit/vault-head/verify.d.ts +1 -1
- package/dist/with-formula/derivations/dispatch.d.ts +1 -1
- package/dist/with-formula/derivations/fanout-sidecar.d.ts +1 -1
- package/dist/with-lookup/indexing/collection-facade.d.ts +1 -1
- package/dist/with-lookup/search/collection-facade.d.ts +1 -1
- package/dist/with-party/broker/index.d.ts +3 -3
- package/dist/with-party/directory/user-envelope/storage.d.ts +1 -1
- package/dist/with-party/team/delegation.d.ts +1 -1
- package/dist/with-party/team/echo-secret.d.ts +2 -2
- package/dist/with-party/team/index.d.ts +1 -1
- package/dist/with-party/team/keyring.d.ts +1 -1
- package/dist/with-party/team/magic-link-grant.d.ts +1 -1
- package/dist/with-party/team/recovery.d.ts +1 -1
- package/dist/with-party/team/roster-tag.d.ts +1 -1
- package/dist/with-party/team/rotate-recover.d.ts +1 -1
- package/dist/with-party/team/wrapped-deks.d.ts +1 -1
- package/dist/with-pod/index.d.ts +1 -1
- package/dist/with-shape/blobs/blob-compaction.d.ts +1 -1
- package/dist/with-shape/blobs/blob-intent.d.ts +1 -1
- package/dist/with-shape/blobs/blob-set.d.ts +2 -2
- package/dist/with-shape/blobs/legacy-sweep.d.ts +1 -1
- package/dist/with-shape/introspection/describe.d.ts +1 -1
- package/dist/with-shape/introspection/walk.d.ts +1 -1
- package/dist/with-shape/links/lazy-handle.d.ts +1 -1
- package/dist/with-shape/links/link-set.d.ts +1 -1
- package/dist/with-shape/manifest/derive.d.ts +1 -1
- package/dist/with-shape/manifest/storage.d.ts +1 -1
- package/dist/with-shape/persisted-schemas/register.d.ts +1 -1
- package/dist/with-shape/persisted-schemas/storage.d.ts +1 -1
- package/dist/with-shape/satellites/dead-filter.d.ts +1 -1
- package/dist/with-shape/satellites/declare.d.ts +1 -1
- package/dist/with-shape/satellites/marker.d.ts +1 -1
- package/dist/with-shape/satellites/post-register.d.ts +1 -1
- package/dist/with-sync/presence.d.ts +5 -10
- package/dist/withdraw-accessible-HL7GACUE.js +27 -0
- package/dist/withdraw-accessible-HL7GACUE.js.map +1 -0
- package/package.json +14 -5
- package/dist/api-GVYEKSJE.js +0 -19
- package/dist/backup-7TFRVFLH.js.map +0 -1
- package/dist/chunk-244VXYPG.js.map +0 -1
- package/dist/chunk-3ELRMVJK.js.map +0 -1
- package/dist/chunk-3F7GLNAE.js.map +0 -1
- package/dist/chunk-3H5KLDZN.js.map +0 -1
- package/dist/chunk-6B3VNR4P.js.map +0 -1
- package/dist/chunk-6LNL42F5.js.map +0 -1
- package/dist/chunk-6QSQQLSE.js +0 -95
- package/dist/chunk-6QSQQLSE.js.map +0 -1
- package/dist/chunk-7VCXZDA4.js.map +0 -1
- package/dist/chunk-ANWPSTZU.js.map +0 -1
- package/dist/chunk-BP6DARYA.js.map +0 -1
- package/dist/chunk-CKNGS5MH.js.map +0 -1
- package/dist/chunk-DC5QVPV7.js.map +0 -1
- package/dist/chunk-DE4DH2RZ.js +0 -29
- package/dist/chunk-DE4DH2RZ.js.map +0 -1
- package/dist/chunk-DF73H4UN.js.map +0 -1
- package/dist/chunk-EIPVYUEP.js.map +0 -1
- package/dist/chunk-ENAG3IY7.js.map +0 -1
- package/dist/chunk-FCKWQE2H.js.map +0 -1
- package/dist/chunk-FQ5VRHIB.js.map +0 -1
- package/dist/chunk-GF5BZ7D4.js.map +0 -1
- package/dist/chunk-GHLTDZRS.js.map +0 -1
- package/dist/chunk-GYGLAVCX.js.map +0 -1
- package/dist/chunk-HBPPGWUM.js.map +0 -1
- package/dist/chunk-HK67PX4J.js.map +0 -1
- package/dist/chunk-HVSCEIYL.js.map +0 -1
- package/dist/chunk-ISZQJBML.js.map +0 -1
- package/dist/chunk-KJFW62P4.js.map +0 -1
- package/dist/chunk-L7DOS3TE.js.map +0 -1
- package/dist/chunk-LGRLME4M.js.map +0 -1
- package/dist/chunk-LP7BEXCT.js +0 -32
- package/dist/chunk-LP7BEXCT.js.map +0 -1
- package/dist/chunk-LQ4ZHOKP.js.map +0 -1
- package/dist/chunk-M522UYZ2.js.map +0 -1
- package/dist/chunk-M7NI3IWE.js.map +0 -1
- package/dist/chunk-MTL7MXGR.js.map +0 -1
- package/dist/chunk-N5DNADLQ.js.map +0 -1
- package/dist/chunk-NNARWO72.js.map +0 -1
- package/dist/chunk-NRT6QZQB.js.map +0 -1
- package/dist/chunk-NWHBJQAL.js.map +0 -1
- package/dist/chunk-ODVPTDPK.js.map +0 -1
- package/dist/chunk-PDCG6PR5.js.map +0 -1
- package/dist/chunk-PEOZ34EM.js.map +0 -1
- package/dist/chunk-PSIV7CJV.js.map +0 -1
- package/dist/chunk-QOOUUR4A.js.map +0 -1
- package/dist/chunk-QWFHIOD2.js.map +0 -1
- package/dist/chunk-QWGU66MP.js.map +0 -1
- package/dist/chunk-S57HTZ6X.js.map +0 -1
- package/dist/chunk-SEE332EV.js +0 -66
- package/dist/chunk-SEE332EV.js.map +0 -1
- package/dist/chunk-SYVZW77S.js.map +0 -1
- package/dist/chunk-T2LBQ5DV.js.map +0 -1
- package/dist/chunk-UD5EVGZ7.js.map +0 -1
- package/dist/chunk-UPD5NWI5.js.map +0 -1
- package/dist/chunk-UYB234ZR.js +0 -479
- package/dist/chunk-UYB234ZR.js.map +0 -1
- package/dist/chunk-VNPEWFPD.js.map +0 -1
- package/dist/chunk-WX5ADGTZ.js.map +0 -1
- package/dist/chunk-X4773RBR.js.map +0 -1
- package/dist/chunk-YNIUIERI.js.map +0 -1
- package/dist/chunk-ZE4CHIED.js.map +0 -1
- package/dist/chunk-ZXABPVM6.js.map +0 -1
- package/dist/classified-marker-W3USLL5M.js.map +0 -1
- package/dist/collection-facade-QU6IJBN3.js +0 -48
- package/dist/dead-filter-U2UYKSZL.js.map +0 -1
- package/dist/delegation-S3AEPW2T.js.map +0 -1
- package/dist/derive-OX7F6TGG.js +0 -21
- package/dist/dispatch-RH4LHKBH.js.map +0 -1
- package/dist/executor-B6SRO2QS.js +0 -36
- package/dist/executor-BI5CHWRY.js +0 -8
- package/dist/executor-RBKM5W5K.js +0 -8
- package/dist/export-accessible-VMA3YM5V.js +0 -22
- package/dist/extract-partition-NF7PXGPP.js +0 -37
- package/dist/fanout-sidecar-OT6RYLOL.js.map +0 -1
- package/dist/find-LZMP26KF.js +0 -10
- package/dist/issue-IHARXWW5.js +0 -18
- package/dist/kernel/enclave/classify/compare.d.ts +0 -10
- package/dist/kernel/enclave/index.d.ts +0 -87
- package/dist/kernel/enclave/record-keys/lifecycle.d.ts +0 -124
- package/dist/kernel/enclave/record-keys/rekey-blob.d.ts +0 -88
- package/dist/kernel/enclave/record-keys/rekey.d.ts +0 -91
- package/dist/kernel/enclave/record-keys/sealed-slot.d.ts +0 -14
- package/dist/kernel/enclave/record-keys/sealed-slots.d.ts +0 -123
- package/dist/kernel/enclave/record-keys/sealing.d.ts +0 -70
- package/dist/liberate-GRLCZMW4.js +0 -24
- package/dist/link-set-JCMJ7ULP.js +0 -30
- package/dist/noydb-SWQJ3MZS.js +0 -97
- package/dist/pod-handle-WGDFB4C2.js.map +0 -1
- package/dist/post-register-SLSXIPBV.js.map +0 -1
- package/dist/register-F3OYE7MJ.js +0 -31
- package/dist/registry-CILQFXFK.js +0 -8
- package/dist/registry-XNNYQVKV.js +0 -8
- package/dist/registry-YCDZV3VW.js +0 -35
- package/dist/registry-ZGYS33TE.js +0 -24
- package/dist/request-withdrawal-Z5NC6TXT.js +0 -30
- package/dist/reveal-4BCKPEC2.js.map +0 -1
- package/dist/revoke-ZL62WC2D.js +0 -23
- package/dist/seed-4JS2RJ4A.js.map +0 -1
- package/dist/signer-MBZZMXTC.js +0 -24
- package/dist/stale-TJ3DYZMQ.js +0 -29
- package/dist/storage-SVMKRGCW.js +0 -22
- package/dist/store-coordination-provider-2O2VUHKW.js.map +0 -1
- package/dist/verify-RVT67IMH.js.map +0 -1
- package/dist/walk-HJ42EISE.js +0 -21
- package/dist/withdraw-accessible-5NZUPAVA.js +0 -27
- /package/dist/{api-GVYEKSJE.js.map → api-OS747DS4.js.map} +0 -0
- /package/dist/{computed-TPFBX7U4.js.map → capsule/contract.js.map} +0 -0
- /package/dist/{kernel/enclave → capsule/enclave-aes}/broker/proof.d.ts +0 -0
- /package/dist/{kernel/enclave → capsule/enclave-aes}/classify/bidx.d.ts +0 -0
- /package/dist/{kernel/enclave → capsule/enclave-aes}/classify/digest.d.ts +0 -0
- /package/dist/{kernel/enclave → capsule/enclave-aes}/classify/vdig.d.ts +0 -0
- /package/dist/{kernel/enclave/classify → capsule/plumbing}/kofn.d.ts +0 -0
- /package/dist/{kernel/enclave/classify → capsule/plumbing}/normalize.d.ts +0 -0
- /package/dist/{kernel/enclave → capsule/plumbing}/record-aad.d.ts +0 -0
- /package/dist/{collection-facade-QU6IJBN3.js.map → capsule-VOLX3QRQ.js.map} +0 -0
- /package/dist/{chunk-YSK2CU2Q.js.map → chunk-2AFX33YA.js.map} +0 -0
- /package/dist/{chunk-TKUOEU2F.js.map → chunk-2GHDLTPE.js.map} +0 -0
- /package/dist/{chunk-6OWXYZK2.js.map → chunk-2ODVB6LZ.js.map} +0 -0
- /package/dist/{chunk-X25NWUZB.js.map → chunk-2PVXF5CS.js.map} +0 -0
- /package/dist/{chunk-ORDURZBU.js.map → chunk-3EWS67C7.js.map} +0 -0
- /package/dist/{chunk-FXQBGFOX.js.map → chunk-4CIQDWRB.js.map} +0 -0
- /package/dist/{chunk-HT2AHGQI.js.map → chunk-4JPMZTJY.js.map} +0 -0
- /package/dist/{chunk-MKXXMNJH.js.map → chunk-4V3Q35WG.js.map} +0 -0
- /package/dist/{chunk-A6IJU4TK.js.map → chunk-52MGURXO.js.map} +0 -0
- /package/dist/{chunk-HLEK5VAN.js.map → chunk-5WWDGFOS.js.map} +0 -0
- /package/dist/{chunk-SOIQ4MM4.js.map → chunk-7XMHMVTS.js.map} +0 -0
- /package/dist/{chunk-4MXI3ODD.js.map → chunk-AEQGFRU4.js.map} +0 -0
- /package/dist/{chunk-7JE7BDYJ.js.map → chunk-AL6ML4LA.js.map} +0 -0
- /package/dist/{chunk-ZUVBC32X.js.map → chunk-AUKKUPVB.js.map} +0 -0
- /package/dist/{chunk-WY2XXTET.js.map → chunk-BPWYQ25R.js.map} +0 -0
- /package/dist/{chunk-EOVMT6TB.js.map → chunk-BVCUTXE3.js.map} +0 -0
- /package/dist/{chunk-3JWHAR6E.js.map → chunk-DIZLQVAA.js.map} +0 -0
- /package/dist/{chunk-IT22PWKV.js.map → chunk-E2N2T5ZO.js.map} +0 -0
- /package/dist/{chunk-WNJ4AVGE.js.map → chunk-EJLV62NI.js.map} +0 -0
- /package/dist/{chunk-QBBUZ3I3.js.map → chunk-EYG2CY2X.js.map} +0 -0
- /package/dist/{chunk-BJ2IXQ5Q.js.map → chunk-FFJFE4T7.js.map} +0 -0
- /package/dist/{chunk-JCN44NCY.js.map → chunk-FLPCETP6.js.map} +0 -0
- /package/dist/{chunk-5O7D6ZTW.js.map → chunk-FOEDQATO.js.map} +0 -0
- /package/dist/{chunk-VNNRUGMM.js.map → chunk-FVH5QYY2.js.map} +0 -0
- /package/dist/{chunk-4AF3TUMP.js.map → chunk-GZT3NQRA.js.map} +0 -0
- /package/dist/{chunk-MVZ2TPVP.js.map → chunk-H427H63K.js.map} +0 -0
- /package/dist/{chunk-MLPHLJIQ.js.map → chunk-HS554XAF.js.map} +0 -0
- /package/dist/{chunk-TROR3ALR.js.map → chunk-JOSPH3E5.js.map} +0 -0
- /package/dist/{chunk-F24ZZTHQ.js.map → chunk-JQYKPKG6.js.map} +0 -0
- /package/dist/{chunk-MDWKM2XC.js.map → chunk-M5B2W6YY.js.map} +0 -0
- /package/dist/{chunk-F2TDU7MQ.js.map → chunk-MBMTND6D.js.map} +0 -0
- /package/dist/{chunk-K6W7BVZ6.js.map → chunk-MILI22XQ.js.map} +0 -0
- /package/dist/{chunk-CF5UU4S7.js.map → chunk-N7UDP5VU.js.map} +0 -0
- /package/dist/{chunk-FQ54DWUQ.js.map → chunk-NBQ3KK6X.js.map} +0 -0
- /package/dist/{chunk-4I522ERM.js.map → chunk-NCO25JZO.js.map} +0 -0
- /package/dist/{chunk-SI3V7D4G.js.map → chunk-O2IMQSNA.js.map} +0 -0
- /package/dist/{chunk-T52GX4SA.js.map → chunk-O46CHQT7.js.map} +0 -0
- /package/dist/{chunk-TOPYQ6GA.js.map → chunk-OYW3I5M4.js.map} +0 -0
- /package/dist/{chunk-AOWGXU6D.js.map → chunk-Q4UHJ5SN.js.map} +0 -0
- /package/dist/{chunk-FW22ZCXT.js.map → chunk-QBLT6POL.js.map} +0 -0
- /package/dist/{chunk-I3JDRCMW.js.map → chunk-RB4DOPGZ.js.map} +0 -0
- /package/dist/{chunk-32YV3TJT.js.map → chunk-SMV2HRDU.js.map} +0 -0
- /package/dist/{chunk-Z5HTYMMQ.js.map → chunk-SYNY3VB5.js.map} +0 -0
- /package/dist/{chunk-ZSX4S5XB.js.map → chunk-TKVUE4JF.js.map} +0 -0
- /package/dist/{chunk-B57AFBY2.js.map → chunk-TZZBXPZK.js.map} +0 -0
- /package/dist/{chunk-5FDLC6G7.js.map → chunk-UA372JHH.js.map} +0 -0
- /package/dist/{chunk-B6SJIBQK.js.map → chunk-V3RWOOSO.js.map} +0 -0
- /package/dist/{chunk-HBRLNOHL.js.map → chunk-V7ADQF5O.js.map} +0 -0
- /package/dist/{chunk-F7XGHL5O.js.map → chunk-VQDZYB2B.js.map} +0 -0
- /package/dist/{chunk-BK2HHQGN.js.map → chunk-VVOLDVIR.js.map} +0 -0
- /package/dist/{chunk-6K7DPM7D.js.map → chunk-XQRFSKYM.js.map} +0 -0
- /package/dist/{chunk-ID6Z6E66.js.map → chunk-Y2RKVFKR.js.map} +0 -0
- /package/dist/{chunk-FN5EBVTQ.js.map → chunk-YRXFFWG4.js.map} +0 -0
- /package/dist/{derive-OX7F6TGG.js.map → collection-facade-CS7CA2XO.js.map} +0 -0
- /package/dist/{enclave-27SMF6GF.js.map → computed-FAD7SED4.js.map} +0 -0
- /package/dist/{executor-B6SRO2QS.js.map → derive-XLOJVXPU.js.map} +0 -0
- /package/dist/{dispatch-3CQDJV5Q.js.map → dispatch-H4HV32AM.js.map} +0 -0
- /package/dist/{executor-BI5CHWRY.js.map → executor-FMPVN6DT.js.map} +0 -0
- /package/dist/{executor-RBKM5W5K.js.map → executor-LBBBRTN5.js.map} +0 -0
- /package/dist/{export-accessible-VMA3YM5V.js.map → executor-OSRZST2U.js.map} +0 -0
- /package/dist/{extract-partition-NF7PXGPP.js.map → export-accessible-RAOJAAU5.js.map} +0 -0
- /package/dist/{find-LZMP26KF.js.map → extract-partition-JD5CUSTG.js.map} +0 -0
- /package/dist/{issue-IHARXWW5.js.map → find-JRN4RNQ5.js.map} +0 -0
- /package/dist/{ledger-KZPCMVZY.js.map → issue-YIVBZUTH.js.map} +0 -0
- /package/dist/{liberate-GRLCZMW4.js.map → ledger-5ZMGE44K.js.map} +0 -0
- /package/dist/{link-set-JCMJ7ULP.js.map → liberate-WZSZM2W6.js.map} +0 -0
- /package/dist/{managed-secret-S3MQ6SH6.js.map → link-set-MFXC24VK.js.map} +0 -0
- /package/dist/{noydb-SWQJ3MZS.js.map → managed-secret-MFTFT22X.js.map} +0 -0
- /package/dist/{migrate-cek-V7GKJZ7O.js.map → migrate-cek-DZRFFOHW.js.map} +0 -0
- /package/dist/{register-F3OYE7MJ.js.map → noydb-ITIGNKUF.js.map} +0 -0
- /package/dist/{registry-CILQFXFK.js.map → register-DT5HZ2LZ.js.map} +0 -0
- /package/dist/{registry-XNNYQVKV.js.map → registry-BHRZGZHF.js.map} +0 -0
- /package/dist/{registry-YCDZV3VW.js.map → registry-ET6ZFFWA.js.map} +0 -0
- /package/dist/{registry-ZGYS33TE.js.map → registry-HXFGLGTG.js.map} +0 -0
- /package/dist/{request-withdrawal-Z5NC6TXT.js.map → registry-THCPDEOD.js.map} +0 -0
- /package/dist/{revoke-ZL62WC2D.js.map → request-withdrawal-AV2MJJKY.js.map} +0 -0
- /package/dist/{signer-MBZZMXTC.js.map → revoke-6DWIEOCV.js.map} +0 -0
- /package/dist/{stale-TJ3DYZMQ.js.map → signer-MHGW3OIL.js.map} +0 -0
- /package/dist/{storage-SVMKRGCW.js.map → stale-6GCFMOOR.js.map} +0 -0
- /package/dist/{walk-HJ42EISE.js.map → storage-BYN5LO6Z.js.map} +0 -0
- /package/dist/{withdraw-accessible-5NZUPAVA.js.map → walk-4VPK7AS4.js.map} +0 -0
|
@@ -35,42 +35,28 @@
|
|
|
35
35
|
*
|
|
36
36
|
* @module
|
|
37
37
|
*/
|
|
38
|
+
import { type EchoSecretParts } from '../plumbing/digest.js';
|
|
38
39
|
/**
|
|
39
40
|
* **EnclaveKey** — the opaque key type at the enclave seam.
|
|
40
41
|
*
|
|
41
42
|
* In noy-db's reference enclave this is `CryptoKey` (the Web Crypto API's
|
|
42
43
|
* key handle). A fork's enclave redefines this alias to its own key
|
|
43
44
|
* representation (e.g. `type EnclaveKey = null` for a keyless HSM-backed
|
|
44
|
-
* fork) — outside `
|
|
45
|
+
* fork) — outside `capsule/enclave-aes/**`, every consumer must treat it as
|
|
45
46
|
* opaque: never construct, inspect, or serialize it directly, only pass it
|
|
46
47
|
* between barrel functions (`encrypt`/`decrypt`/`wrapKey`/`unwrapKey`/…).
|
|
47
48
|
*/
|
|
48
49
|
export type EnclaveKey = CryptoKey;
|
|
50
|
+
/** Opaque asymmetric pair at the enclave seam — `CryptoKeyPair` in the reference enclave. */
|
|
51
|
+
export type EnclaveKeyPair = CryptoKeyPair;
|
|
49
52
|
/** Derive a KEK from a secret and salt using PBKDF2-SHA256. */
|
|
50
53
|
export declare function deriveKey(secret: string, salt: Uint8Array): Promise<CryptoKey>;
|
|
51
54
|
/** One three-part echo secret: prompt (typed) → echo (revealed) → key (typed). */
|
|
52
|
-
export interface EchoSecretParts {
|
|
53
|
-
readonly prompt: string;
|
|
54
|
-
readonly echo: string;
|
|
55
|
-
readonly key: string;
|
|
56
|
-
}
|
|
57
55
|
/**
|
|
58
|
-
* AG-1 encoding
|
|
59
|
-
*
|
|
60
|
-
*
|
|
61
|
-
*
|
|
62
|
-
* 1. The `0xFF` context prefix — UTF-8 never produces that byte, so the
|
|
63
|
-
* encoding is provably not the encoding of ANY string (not merely of
|
|
64
|
-
* no separator-joined form).
|
|
65
|
-
* 2. Structural length prefixes — part boundaries are key material, so
|
|
66
|
-
* re-splitting the same characters changes the derived KEK.
|
|
67
|
-
*
|
|
68
|
-
* @throws ValidationError when any part is not a string — the single
|
|
69
|
-
* chokepoint every echo KEK derivation and block mint passes through, so a
|
|
70
|
-
* malformed parts object cannot be `TextEncoder`-coerced into key material.
|
|
56
|
+
* Domain context for the AG-1 encoding. The leading `0xFF` is the load-bearing
|
|
57
|
+
* byte: it is not a legal UTF-8 lead byte, so `TextEncoder` can never emit it —
|
|
58
|
+
* no string's UTF-8 encoding can equal an AG-1 encoding, whatever the string.
|
|
71
59
|
*/
|
|
72
|
-
export declare function encodeEchoParts(parts: EchoSecretParts): Uint8Array;
|
|
73
|
-
/** Derive the tier-1 KEK from a 3-part echo secret (spec: KEK from ALL parts). */
|
|
74
60
|
export declare function deriveEchoKey(parts: EchoSecretParts, salt: Uint8Array): Promise<CryptoKey>;
|
|
75
61
|
/**
|
|
76
62
|
* Which AES algorithm/usage a {@link deriveSecretKey} result is for:
|
|
@@ -93,6 +79,13 @@ export declare function deriveSecretKey(secret: string, salt: Uint8Array, params
|
|
|
93
79
|
}): Promise<CryptoKey>;
|
|
94
80
|
/** Generate a random AES-256-GCM data encryption key. */
|
|
95
81
|
export declare function generateDEK(): Promise<CryptoKey>;
|
|
82
|
+
/**
|
|
83
|
+
* Generate a NON-extractable AES-256-GCM key for in-memory-only use — a
|
|
84
|
+
* session key, a device seal. Unlike {@link generateDEK} it can never be
|
|
85
|
+
* wrapped or exported: WebCrypto enforces that, and it is the tab-scope
|
|
86
|
+
* invariant `with-party/session` and `device-seal` rely on.
|
|
87
|
+
*/
|
|
88
|
+
export declare function generateEphemeralKey(): Promise<CryptoKey>;
|
|
96
89
|
/** Serialize a DEK set to `{ collection: base64(rawKey) }`. */
|
|
97
90
|
export declare function exportDekSet(deks: Map<string, CryptoKey>): Promise<Record<string, string>>;
|
|
98
91
|
/**
|
|
@@ -104,6 +97,10 @@ export declare function importDekSet(exported: Record<string, string>): Promise<
|
|
|
104
97
|
export declare function wrapKey(dek: CryptoKey, kek: CryptoKey): Promise<string>;
|
|
105
98
|
/** Unwrap (decrypt) a DEK from base64 string using a KEK. */
|
|
106
99
|
export declare function unwrapKey(wrappedBase64: string, kek: CryptoKey): Promise<CryptoKey>;
|
|
100
|
+
/** Wrap the constant AES-GCM key built from `plaintext` under `kek`. */
|
|
101
|
+
export declare function mintCanary(kek: CryptoKey, plaintext: Uint8Array): Promise<string>;
|
|
102
|
+
/** True iff `wrapped` unwraps under `kek` — the KEK is right AND the bytes are intact. */
|
|
103
|
+
export declare function checkCanary(wrapped: string, kek: CryptoKey): Promise<boolean>;
|
|
107
104
|
/**
|
|
108
105
|
* AES-KW-wrap a per-record CEK under a collection/tier DEK. Returns base64.
|
|
109
106
|
* Deterministic over `(cek, dek)`.
|
|
@@ -120,6 +117,13 @@ export declare function unwrapCek(wrappedBase64: string, dek: CryptoKey): Promis
|
|
|
120
117
|
* used solely to open the record's `_iv`/`_data` body under `decrypt()`.
|
|
121
118
|
*/
|
|
122
119
|
export declare function importCek(rawKey: Uint8Array): Promise<CryptoKey>;
|
|
120
|
+
/**
|
|
121
|
+
* Import a raw 32-byte pre-shared key as a NON-extractable AES-256-GCM key
|
|
122
|
+
* (encrypt + decrypt). The transfer seal (`with-cargo`) and the RSA-OAEP
|
|
123
|
+
* TLV's per-blob CEK (`managed-secret`) both hand raw bytes to the enclave
|
|
124
|
+
* here; the bytes never become a key anywhere else.
|
|
125
|
+
*/
|
|
126
|
+
export declare function importTransferKey(raw: Uint8Array): Promise<CryptoKey>;
|
|
123
127
|
export interface EncryptResult {
|
|
124
128
|
iv: string;
|
|
125
129
|
data: string;
|
|
@@ -160,66 +164,6 @@ export declare function encryptBytes(data: Uint8Array, dek: CryptoKey): Promise<
|
|
|
160
164
|
* Counterpart to `encryptBytes`. Throws `TamperedError` on auth-tag failure.
|
|
161
165
|
*/
|
|
162
166
|
export declare function decryptBytes(ivBase64: string, dataBase64: string, dek: CryptoKey): Promise<Uint8Array>;
|
|
163
|
-
/**
|
|
164
|
-
* SHA-256 hex digest of raw bytes. Used to derive content-addressed
|
|
165
|
-
* eTags for blob deduplication. Computed on plaintext bytes
|
|
166
|
-
* before compression and encryption so the eTag identifies content, not
|
|
167
|
-
* ciphertext, and survives re-encryption (key rotation, re-upload).
|
|
168
|
-
*/
|
|
169
|
-
export declare function sha256Hex(data: Uint8Array): Promise<string>;
|
|
170
|
-
/**
|
|
171
|
-
* Compute HMAC-SHA-256(key, data) and return hex string.
|
|
172
|
-
*
|
|
173
|
-
* Used to derive content-addressed eTags that are opaque to the store:
|
|
174
|
-
* ```
|
|
175
|
-
* eTag = hmacSha256Hex(blobDEK, plaintext)
|
|
176
|
-
* ```
|
|
177
|
-
*
|
|
178
|
-
* Unlike a plain SHA-256, the HMAC is keyed by the vault-shared `_blob` DEK,
|
|
179
|
-
* so an attacker with store access cannot pre-compute eTags for known files.
|
|
180
|
-
* Deduplication still works within a vault (same key + same content = same eTag).
|
|
181
|
-
*/
|
|
182
|
-
/**
|
|
183
|
-
* Derive the blob CONTENT-ADDRESSING key for one tier (#1126).
|
|
184
|
-
*
|
|
185
|
-
* The blob eTag is an HMAC over the plaintext. It used to be keyed by the
|
|
186
|
-
* `_blob` DEK — the very key `rotateKeys` replaces — so after any rotation
|
|
187
|
-
* `HMAC(live DEK, plaintext) !== storedETag` for every blob written before it,
|
|
188
|
-
* permanently. `decryptResponse()` checks that unconditionally, so the
|
|
189
|
-
* presigned-URL read path raised `TamperedError` on legitimate data forever;
|
|
190
|
-
* dedup also split, minting a second address for identical bytes.
|
|
191
|
-
*
|
|
192
|
-
* The fix is a `root` that rotation never touches (`_blob_addr`, refused by
|
|
193
|
-
* `rotateKeys` exactly as `_roster` is). Rotation then re-keys chunk BODIES
|
|
194
|
-
* while every address stays stable, which is what makes the AAD
|
|
195
|
-
* `{eTag}:{i}:{count}` and every `_blob_index` / `_blob_slots_*` /
|
|
196
|
-
* `_blob_versions_*` row survive it untouched.
|
|
197
|
-
*
|
|
198
|
-
* **Derived PER TIER, deliberately.** A single vault-wide address would make an
|
|
199
|
-
* elevated blob and a tier-0 blob with identical content share an eTag,
|
|
200
|
-
* leaking equality across a boundary the tier system exists to enforce — and
|
|
201
|
-
* `rehomeForTier` re-addresses on a tier move precisely because the address is
|
|
202
|
-
* tier-scoped today. Domain separation keeps that property while removing the
|
|
203
|
-
* rotation coupling: the two are independent axes, and only one of them was
|
|
204
|
-
* ever meant to change the address.
|
|
205
|
-
*
|
|
206
|
-
* Same HKDF idiom as `asKwKey`, with its own salt so the addressing key can
|
|
207
|
-
* never coincide with a wrapping or encryption key.
|
|
208
|
-
*/
|
|
209
|
-
export declare function deriveBlobAddressKey(root: CryptoKey, tier: number): Promise<CryptoKey>;
|
|
210
|
-
export declare function hmacSha256Hex(key: CryptoKey, data: Uint8Array): Promise<string>;
|
|
211
|
-
/**
|
|
212
|
-
* Encrypt raw bytes with AES-256-GCM using Additional Authenticated Data.
|
|
213
|
-
*
|
|
214
|
-
* The AAD binds each chunk to its parent blob and position, preventing
|
|
215
|
-
* chunk reorder, substitution, and truncation attacks:
|
|
216
|
-
* ```
|
|
217
|
-
* AAD = UTF-8("{eTag}:{chunkIndex}:{chunkCount}")
|
|
218
|
-
* ```
|
|
219
|
-
*
|
|
220
|
-
* The AAD is NOT stored — the reader reconstructs it from `BlobObject`
|
|
221
|
-
* metadata and passes it to `decryptBytesWithAAD`.
|
|
222
|
-
*/
|
|
223
167
|
export declare function encryptBytesWithAAD(data: Uint8Array, dek: CryptoKey, aad: Uint8Array): Promise<EncryptResult>;
|
|
224
168
|
/**
|
|
225
169
|
* Decrypt AES-256-GCM ciphertext with AAD verification.
|
|
@@ -229,41 +173,6 @@ export declare function encryptBytesWithAAD(data: Uint8Array, dek: CryptoKey, aa
|
|
|
229
173
|
* tag fails and this throws `TamperedError`.
|
|
230
174
|
*/
|
|
231
175
|
export declare function decryptBytesWithAAD(ivBase64: string, dataBase64: string, dek: CryptoKey, aad: Uint8Array): Promise<Uint8Array>;
|
|
232
|
-
/**
|
|
233
|
-
* Derive an AES-256-GCM presence key from a collection DEK using HKDF-SHA256.
|
|
234
|
-
*
|
|
235
|
-
* The presence key is domain-separated from the data DEK by the fixed salt
|
|
236
|
-
* `'noydb-presence'` and the `info` = collection name. This means:
|
|
237
|
-
* - The adapter never sees the presence key.
|
|
238
|
-
* - Presence payloads rotate automatically when the collection DEK is rotated.
|
|
239
|
-
* - Revoked users cannot derive the new presence key after a DEK rotation.
|
|
240
|
-
*
|
|
241
|
-
* @param dek The collection's AES-256-GCM DEK (extractable).
|
|
242
|
-
* @param collectionName Used as the HKDF `info` parameter for domain separation.
|
|
243
|
-
* @returns A non-extractable AES-256-GCM key suitable for presence payload encryption.
|
|
244
|
-
*/
|
|
245
|
-
export declare function derivePresenceKey(dek: CryptoKey, collectionName: string): Promise<CryptoKey>;
|
|
246
|
-
/**
|
|
247
|
-
* Derive a **per-field** AES-256-GCM key from a collection DEK using
|
|
248
|
-
* HKDF-SHA256, used to encrypt a single sensitive field into its own
|
|
249
|
-
* `_sealed[field]` envelope slot (structural group-encryption).
|
|
250
|
-
*
|
|
251
|
-
* Domain-separated from the data DEK (and from the presence/deterministic
|
|
252
|
-
* channels) by the fixed salt `'noydb-sealed'` and an `info` of
|
|
253
|
-
* `JSON.stringify(['noydb-sealed', collectionName, field])`. The JSON-array
|
|
254
|
-
* encoding is injective — each element is separately quoted/escaped — so
|
|
255
|
-
* collection `a/sealed/b` + field `c` cannot collide with collection `a` +
|
|
256
|
-
* field `b/sealed/c`. Each sensitive field gets a **distinct** key, so a
|
|
257
|
-
* `_sealed[a]` ciphertext does not authenticate under field `b`'s key —
|
|
258
|
-
* sealed fields are cryptographically isolated from one another. The
|
|
259
|
-
* collection name keeps the same field name in two collections from sharing a
|
|
260
|
-
* key, mirroring how `derivePresenceKey` / `encryptDeterministic` domain-separate.
|
|
261
|
-
*
|
|
262
|
-
* @param dek The collection's AES-256-GCM DEK (extractable).
|
|
263
|
-
* @param collectionName Part of the HKDF `info` for domain separation.
|
|
264
|
-
* @param field Sensitive field name — the rest of the `info`.
|
|
265
|
-
* @returns A non-extractable AES-256-GCM key for that field's sealed slot.
|
|
266
|
-
*/
|
|
267
176
|
export declare function deriveSealedFieldKey(dek: CryptoKey, collectionName: string, field: string): Promise<CryptoKey>;
|
|
268
177
|
/**
|
|
269
178
|
* Derive a per-record sealed-field key from the record's **per-record CEK**
|
|
@@ -334,18 +243,13 @@ export declare function encryptDeterministic(plaintext: string, dek: CryptoKey,
|
|
|
334
243
|
* ciphertext throws `TamperedError` just like randomized AES-GCM.
|
|
335
244
|
*/
|
|
336
245
|
export declare function decryptDeterministic(ivBase64: string, dataBase64: string, dek: CryptoKey): Promise<string>;
|
|
337
|
-
|
|
338
|
-
export declare function
|
|
339
|
-
|
|
340
|
-
|
|
246
|
+
export declare function generateRecipientKeyPair(): Promise<CryptoKeyPair>;
|
|
247
|
+
export declare function exportRecipientPublicKeySpki(pair: CryptoKeyPair): Promise<Uint8Array>;
|
|
248
|
+
export declare function importRecipientPublicKeySpki(spki: Uint8Array): Promise<CryptoKey>;
|
|
249
|
+
/** RSA-OAEP-encrypt `bytes` (a 32-byte CEK) to the recipient's public key. */
|
|
250
|
+
export declare function recipientWrap(pub: CryptoKey, bytes: Uint8Array): Promise<Uint8Array>;
|
|
341
251
|
/**
|
|
342
|
-
*
|
|
343
|
-
*
|
|
344
|
-
* paper prints it). Not a salt: a salt is public, this is not, and a fork
|
|
345
|
-
* may size them differently. The reference enclave returns 32 bytes.
|
|
346
|
-
*
|
|
347
|
-
* Callers must zero the buffer once it has been wrapped and split.
|
|
252
|
+
* RSA-OAEP-decrypt with the pair's private key. Propagates WebCrypto's own
|
|
253
|
+
* error on failure — callers that need a typed error map it themselves.
|
|
348
254
|
*/
|
|
349
|
-
export declare function
|
|
350
|
-
export declare function bufferToBase64(buffer: ArrayBuffer | Uint8Array): string;
|
|
351
|
-
export declare function base64ToBuffer(base64: string): Uint8Array<ArrayBuffer>;
|
|
255
|
+
export declare function recipientUnwrap(pair: CryptoKeyPair, wrapped: Uint8Array): Promise<Uint8Array>;
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* **capsule/enclave-aes** — the hub's crypto interior, behind one door.
|
|
3
|
+
*
|
|
4
|
+
* This barrel is **the fork-swap contract**: a sister project that wants a
|
|
5
|
+
* different crypto engine (a different KDF, a hardware-backed keystore, a
|
|
6
|
+
* post-quantum wrap algorithm, …) replaces the entire `capsule/enclave-aes/`
|
|
7
|
+
* folder wholesale and only has to honor the exports below. Nothing outside
|
|
8
|
+
* `capsule/enclave-aes/**` may deep-import `crypto.js` or `record-keys/*` directly
|
|
9
|
+
* — `scripts/check-architecture.mjs`'s `enclave-barrel-only` check enforces
|
|
10
|
+
* that mechanically. Import sites inside `capsule/enclave-aes/**` keep their
|
|
11
|
+
* existing relative imports; this door is for everyone else.
|
|
12
|
+
*
|
|
13
|
+
* The export list is the OBSERVED contract — exactly the symbols consumed
|
|
14
|
+
* from outside this folder today — grouped by the module that defines them:
|
|
15
|
+
*
|
|
16
|
+
* - key type — `crypto.ts`: `EnclaveKey`, the opaque key type every
|
|
17
|
+
* barrel-facing signature traffics in (`= CryptoKey` in
|
|
18
|
+
* noy-db's reference enclave; a fork redefines it to its
|
|
19
|
+
* own key representation — see the type's own doc for
|
|
20
|
+
* the fork contract).
|
|
21
|
+
* - crypto ops — `crypto.ts`: AES-256-GCM encrypt/decrypt (+ bytes, AAD,
|
|
22
|
+
* deterministic variants), SHA-256 / HMAC-SHA-256 hashing.
|
|
23
|
+
* - key lifecycle — `crypto.ts` + `record-keys/lifecycle.ts`: KEK/DEK
|
|
24
|
+
* derivation, AES-KW wrap/unwrap, per-record CEK
|
|
25
|
+
* wrap/unwrap/import + resolution/re-wrap, HKDF-derived
|
|
26
|
+
* presence/sealed-field keys, base64 helpers.
|
|
27
|
+
* - record codec — `record-keys/record-codec.ts`: the per-record
|
|
28
|
+
* encode/decode engine.
|
|
29
|
+
* - sealing — `record-keys/sealing.ts`: the sealed-record grantor
|
|
30
|
+
* primitives (seal/revoke/rotate to an `at-*` host).
|
|
31
|
+
* - deterministic — `record-keys/deterministic.ts`: blind-equality lookup
|
|
32
|
+
* over deterministically-encrypted fields.
|
|
33
|
+
* - tombstone — `record-keys/tombstone.ts`: the erased-record residue.
|
|
34
|
+
* - envelope body — `record-keys/envelope-body.ts`: the C1 protected-body
|
|
35
|
+
* access contract (`openEnvelopeJson`,
|
|
36
|
+
* `writeEnvelopeBody`, `hasPerRecordKey`,
|
|
37
|
+
* `hasSealedBody`, `envelopeBodyForHash`) — the
|
|
38
|
+
* sanctioned door onto
|
|
39
|
+
* `_iv`/`_data`/`_cek`/`_sealed` for everyone outside
|
|
40
|
+
* this folder.
|
|
41
|
+
* - reserved envelopes — `plumbing/sealed-slots.ts`: `makeReservedEnvelopes`,
|
|
42
|
+
* the whole-envelope encrypt/decrypt door scoped to a
|
|
43
|
+
* declared collection-name prefix (e.g. `_dict_`) —
|
|
44
|
+
* `kernel/vault.ts` binds it for `DictionaryHandle`
|
|
45
|
+
* (#629 Task 4).
|
|
46
|
+
*
|
|
47
|
+
* Additive changes only — removing or renaming an export here is breaking
|
|
48
|
+
* for any fork. Frozen by `__tests__/enclave-surface-golden.test.ts`.
|
|
49
|
+
*
|
|
50
|
+
* **Refusal contract:** the barrel above is frozen — every symbol must
|
|
51
|
+
* exist in any fork — but the optional groups (sealing, deterministic,
|
|
52
|
+
* per-record-key lifecycle) MAY throw `EnclaveNotSupportedError` instead
|
|
53
|
+
* of implementing the reference behavior. The core groups (crypto ops,
|
|
54
|
+
* record codec, tombstone) MUST NOT throw it — they are load-bearing for
|
|
55
|
+
* every consumer regardless of which enclave is wired in. noy-db's own
|
|
56
|
+
* enclave supports every group, so it never throws this error.
|
|
57
|
+
*/
|
|
58
|
+
export type { EnclaveKey, EncryptResult } from './crypto.js';
|
|
59
|
+
export { encrypt, decrypt, encryptBytes, decryptBytes, encryptBytesWithAAD, decryptBytesWithAAD, encryptDeterministic, decryptDeterministic, } from './crypto.js';
|
|
60
|
+
export { deriveKey, deriveSecretKey, generateDEK, generateEphemeralKey, importTransferKey, exportDekSet, importDekSet, wrapKey, unwrapKey, mintCanary, checkCanary, deriveDeterministicKey, deriveSealedFieldKey, deriveSealedFieldKeyFromCek, wrapCek, unwrapCek, importCek, deriveEchoKey, } from './crypto.js';
|
|
61
|
+
export type { SecretKeyUsage } from './crypto.js';
|
|
62
|
+
export { buildRecordAad, recordAadFor, buildRecordEnvelope, isTombstone, isTombstoneShape, buildTombstone, isDeleteMarker, buildDeleteMarker, requireSealedBody, sealedBodyArgs, envelopeBodySize, hasPerRecordKey, envelopeBodyForHash, hasSealedBody, } from '../plumbing/index.js';
|
|
63
|
+
export { sha256Hex, sha256Bytes, hmacSha256Hex, hmacSignHex, hkdfAesGcmKey, deriveBlobAddressKey, derivePresenceKey, derivePresenceTagKey, generateIV, generateSalt, generateRecoverySecret, bufferToBase64, base64ToBuffer, encodeEchoParts, } from '../plumbing/digest.js';
|
|
64
|
+
export type { EchoSecretParts } from '../plumbing/digest.js';
|
|
65
|
+
export type { RecordIdentity, RecordRef } from '../plumbing/index.js';
|
|
66
|
+
import type { RecordCodecBase } from '../plumbing/record-codec.js';
|
|
67
|
+
/**
|
|
68
|
+
* `RecordCodec` is a VALUE (the capsule-bound subclass, destructured below) and
|
|
69
|
+
* a TYPE (the module-level generic base). A type ALIAS can coexist with a value
|
|
70
|
+
* of the same name; a `export type { RecordCodec }` RE-EXPORT cannot, which is
|
|
71
|
+
* what `TS2323: Cannot redeclare exported variable` was saying.
|
|
72
|
+
*/
|
|
73
|
+
export type RecordCodec<T = Record<string, unknown>> = RecordCodecBase<T>;
|
|
74
|
+
export { buildSealedRecordEnvelope } from '../plumbing/record-envelope.js';
|
|
75
|
+
export type { RecordEnvelopeBody } from '../plumbing/record-envelope.js';
|
|
76
|
+
export type { RewrappedBody } from '../plumbing/lifecycle.js';
|
|
77
|
+
export type { SealedShredSlot } from '../plumbing/record-codec.js';
|
|
78
|
+
export type { SealingContext } from '../plumbing/sealing.js';
|
|
79
|
+
export type { DeterministicContext } from '../plumbing/deterministic.js';
|
|
80
|
+
export declare const openEnvelopeJson: (ref: import("./index.js").RecordRef, env: import("../../index.js").EncryptedEnvelope, key: import("../contract.js").CapsuleKey, opts?: {
|
|
81
|
+
encrypted?: boolean;
|
|
82
|
+
}) => Promise<string>, writeEnvelopeBody: (identity: import("./index.js").RecordIdentity, json: string, key: import("../contract.js").CapsuleKey, opts?: {
|
|
83
|
+
encrypted?: boolean;
|
|
84
|
+
perRecordKey?: boolean;
|
|
85
|
+
}) => Promise<Pick<import("../../index.js").EncryptedEnvelope, "_iv" | "_data" | "_cek">>, verifyRecordIdentity: (ref: import("./index.js").RecordRef, env: import("../../index.js").EncryptedEnvelope, key: import("../contract.js").CapsuleKey) => Promise<boolean>, resolveStableCek: (deps: import("../plumbing/lifecycle.js").StableCekDeps, id: string) => Promise<import("../contract.js").CapsuleKey>, rewrapBodyToDek: (from: import("./index.js").RecordIdentity, to: import("./index.js").RecordIdentity, envelope: Pick<import("../../index.js").EncryptedEnvelope, "_iv" | "_data" | "_cek" | "_tier" | "_by">, fromDek: import("../contract.js").CapsuleKey, toDek: import("../contract.js").CapsuleKey) => Promise<import("./index.js").RewrappedBody>, rewrapEnvelope: (identity: import("./index.js").RecordIdentity, envelope: import("../../index.js").EncryptedEnvelope, fromDek: import("../contract.js").CapsuleKey, toDek: import("../contract.js").CapsuleKey) => Promise<import("../../index.js").EncryptedEnvelope>, applyRewrappedBody: (envelope: import("../../index.js").EncryptedEnvelope, body: import("./index.js").RewrappedBody) => import("../../index.js").EncryptedEnvelope, isRewrappedUnder: (identity: import("./index.js").RecordIdentity, envelope: Pick<import("../../index.js").EncryptedEnvelope, "_iv" | "_data" | "_cek">, dek: import("../contract.js").CapsuleKey) => Promise<boolean>, rekeyEnvelopeToDek: (ref: {
|
|
86
|
+
readonly collection: string;
|
|
87
|
+
readonly id: string;
|
|
88
|
+
}, envelope: import("../../index.js").EncryptedEnvelope, oldDek: import("../contract.js").CapsuleKey, newDek: import("../contract.js").CapsuleKey) => Promise<import("../../index.js").EncryptedEnvelope>, rekeyEnvelopeIfNeeded: (ref: {
|
|
89
|
+
readonly collection: string;
|
|
90
|
+
readonly id: string;
|
|
91
|
+
}, envelope: import("../../index.js").EncryptedEnvelope, oldDek: import("../contract.js").CapsuleKey, newDek: import("../contract.js").CapsuleKey) => Promise<import("../../index.js").EncryptedEnvelope | null>, envelopeOpensUnderAny: (ref: {
|
|
92
|
+
readonly collection: string;
|
|
93
|
+
readonly id: string;
|
|
94
|
+
}, envelope: import("../../index.js").EncryptedEnvelope, keys: readonly import("../contract.js").CapsuleKey[]) => Promise<boolean>, rekeyBlobSet: (adapter: import("../../index.js").NoydbStore, vault: string, oldDek: import("../contract.js").CapsuleKey, newDek: import("../contract.js").CapsuleKey, otherDeks?: readonly import("../contract.js").CapsuleKey[]) => Promise<import("../plumbing/rekey-blob.js").BlobRekeyReport>, RecordCodec: import("../plumbing/record-codec.js").BoundRecordCodec, makeReservedEnvelopes: (dekResolver: import("../plumbing/sealed-slots.js").ReservedEnvelopeDekResolver, declaredPrefixes: readonly string[]) => import("../../kernel/via/index.js").ViaCryptoCtx["reservedEnvelopes"], SEALED_CEK_NS: string, sealRecordToHost: (ctx: import("./index.js").SealingContext, collection: string, id: string, hostSealer: import("../../index.js").RecipientSealer, opts: {
|
|
95
|
+
expiresAt: string;
|
|
96
|
+
}) => Promise<{
|
|
97
|
+
pid: string;
|
|
98
|
+
envelopeKey: string;
|
|
99
|
+
}>, revokeSealedRecord: (ctx: import("./index.js").SealingContext, collection: string, id: string, pid: string, opts?: {
|
|
100
|
+
hard?: boolean;
|
|
101
|
+
}) => Promise<void>, rotateRecordCek: (ctx: import("./index.js").SealingContext, collection: string, id: string) => Promise<void>, findByDet: <T>(ctx: import("./index.js").DeterministicContext<T>, field: string, value: unknown) => Promise<T | null>, queryByDet: <T>(ctx: import("./index.js").DeterministicContext<T>, field: string, value: unknown) => Promise<T[]>;
|
|
102
|
+
export { deriveVdigSlotKey } from './classify/vdig.js';
|
|
103
|
+
export { pbkdf2VerifyDigest } from './classify/digest.js';
|
|
104
|
+
export { ctEqualTags } from '../plumbing/ct-equal.js';
|
|
105
|
+
export { evaluateKofN } from '../plumbing/kofn.js';
|
|
106
|
+
export { deriveClassifyIndexKey, deriveClassifyIndexSalt, mintBidxTag } from './classify/bidx.js';
|
|
107
|
+
export { computeBidxTarget } from './classify/find.js';
|
|
108
|
+
export { deriveBrokerProofBits, deriveBrokerProofKey, computeBrokerProof, issueChallenge, verifyBrokerProof, } from './broker/proof.js';
|
|
109
|
+
export type { BrokerProofCanonicalParts, VerifyBrokerProofArgs, IssuedChallenge } from './broker/proof.js';
|
|
110
|
+
export { generateSigningKeyPair, signBytes, verifyBytes } from '../plumbing/sign.js';
|
|
111
|
+
export type { EnclaveKeyPair } from './crypto.js';
|
|
112
|
+
export { generateRecipientKeyPair, exportRecipientPublicKeySpki, importRecipientPublicKeySpki, recipientWrap, recipientUnwrap, } from './crypto.js';
|
|
113
|
+
export { capabilities } from './capabilities.js';
|
|
@@ -0,0 +1,335 @@
|
|
|
1
|
+
import {
|
|
2
|
+
computeBidxTarget
|
|
3
|
+
} from "../../chunk-BNWA3WG5.js";
|
|
4
|
+
import {
|
|
5
|
+
aesCapsule,
|
|
6
|
+
checkCanary,
|
|
7
|
+
decrypt,
|
|
8
|
+
decryptBytes,
|
|
9
|
+
decryptBytesWithAAD,
|
|
10
|
+
decryptDeterministic,
|
|
11
|
+
deriveDeterministicKey,
|
|
12
|
+
deriveEchoKey,
|
|
13
|
+
deriveKey,
|
|
14
|
+
deriveSealedFieldKey,
|
|
15
|
+
deriveSealedFieldKeyFromCek,
|
|
16
|
+
deriveSecretKey,
|
|
17
|
+
deriveVdigSlotKey,
|
|
18
|
+
encrypt,
|
|
19
|
+
encryptBytes,
|
|
20
|
+
encryptBytesWithAAD,
|
|
21
|
+
encryptDeterministic,
|
|
22
|
+
exportDekSet,
|
|
23
|
+
exportRecipientPublicKeySpki,
|
|
24
|
+
generateDEK,
|
|
25
|
+
generateEphemeralKey,
|
|
26
|
+
generateRecipientKeyPair,
|
|
27
|
+
importCek,
|
|
28
|
+
importDekSet,
|
|
29
|
+
importRecipientPublicKeySpki,
|
|
30
|
+
importTransferKey,
|
|
31
|
+
mintCanary,
|
|
32
|
+
recipientUnwrap,
|
|
33
|
+
recipientWrap,
|
|
34
|
+
unwrapCek,
|
|
35
|
+
unwrapKey,
|
|
36
|
+
wrapCek,
|
|
37
|
+
wrapKey
|
|
38
|
+
} from "../../chunk-5KC7QYEC.js";
|
|
39
|
+
import {
|
|
40
|
+
deriveClassifyIndexKey,
|
|
41
|
+
deriveClassifyIndexSalt,
|
|
42
|
+
mintBidxTag,
|
|
43
|
+
pbkdf2VerifyDigest
|
|
44
|
+
} from "../../chunk-EZOAKKTB.js";
|
|
45
|
+
import {
|
|
46
|
+
generateSigningKeyPair,
|
|
47
|
+
signBytes,
|
|
48
|
+
verifyBytes
|
|
49
|
+
} from "../../chunk-Q2XRFWOI.js";
|
|
50
|
+
import {
|
|
51
|
+
evaluateKofN
|
|
52
|
+
} from "../../chunk-NH2UOV3B.js";
|
|
53
|
+
import {
|
|
54
|
+
buildDeleteMarker,
|
|
55
|
+
buildRecordAad,
|
|
56
|
+
buildRecordEnvelope,
|
|
57
|
+
buildSealedRecordEnvelope,
|
|
58
|
+
buildTombstone,
|
|
59
|
+
ctEqualTags,
|
|
60
|
+
envelopeBodyForHash,
|
|
61
|
+
envelopeBodySize,
|
|
62
|
+
hasPerRecordKey,
|
|
63
|
+
hasSealedBody,
|
|
64
|
+
isDeleteMarker,
|
|
65
|
+
isTombstone,
|
|
66
|
+
isTombstoneShape,
|
|
67
|
+
recordAadFor,
|
|
68
|
+
requireSealedBody,
|
|
69
|
+
sealedBodyArgs
|
|
70
|
+
} from "../../chunk-42ALPZ2B.js";
|
|
71
|
+
import {
|
|
72
|
+
base64ToBuffer,
|
|
73
|
+
bufferToBase64,
|
|
74
|
+
deriveBlobAddressKey,
|
|
75
|
+
derivePresenceKey,
|
|
76
|
+
derivePresenceTagKey,
|
|
77
|
+
encodeEchoParts,
|
|
78
|
+
generateIV,
|
|
79
|
+
generateRecoverySecret,
|
|
80
|
+
generateSalt,
|
|
81
|
+
hkdfAesGcmKey,
|
|
82
|
+
hmacSha256Hex,
|
|
83
|
+
hmacSignHex,
|
|
84
|
+
sha256Bytes,
|
|
85
|
+
sha256Hex
|
|
86
|
+
} from "../../chunk-QMWY2FDS.js";
|
|
87
|
+
import "../../chunk-SV2PM2OY.js";
|
|
88
|
+
import {
|
|
89
|
+
ValidationError
|
|
90
|
+
} from "../../chunk-37EPTBBR.js";
|
|
91
|
+
|
|
92
|
+
// src/capsule/enclave-aes/broker/proof.ts
|
|
93
|
+
var subtle = globalThis.crypto.subtle;
|
|
94
|
+
var BROKER_PROOF_DOMAIN = "noydb-broker-proof";
|
|
95
|
+
var BROKER_PROOF_VERSION = "noydb-broker-proof-v1";
|
|
96
|
+
var DEFAULT_CHALLENGE_TTL_MS = 6e4;
|
|
97
|
+
function buildCanonical(vaultId, brokerId, parts) {
|
|
98
|
+
return JSON.stringify([
|
|
99
|
+
BROKER_PROOF_VERSION,
|
|
100
|
+
vaultId,
|
|
101
|
+
parts.endpointOrigin,
|
|
102
|
+
brokerId,
|
|
103
|
+
parts.profile ?? "",
|
|
104
|
+
parts.instancePid ?? "",
|
|
105
|
+
parts.challenge,
|
|
106
|
+
parts.expiresAt
|
|
107
|
+
]);
|
|
108
|
+
}
|
|
109
|
+
async function deriveBrokerProofBits(seed, vaultId, brokerId) {
|
|
110
|
+
const hkdfKey = await subtle.importKey("raw", seed, "HKDF", false, ["deriveBits"]);
|
|
111
|
+
const salt = new TextEncoder().encode(BROKER_PROOF_DOMAIN);
|
|
112
|
+
const info = new TextEncoder().encode(JSON.stringify([BROKER_PROOF_DOMAIN, vaultId, brokerId]));
|
|
113
|
+
const bits = await subtle.deriveBits({ name: "HKDF", hash: "SHA-256", salt, info }, hkdfKey, 256);
|
|
114
|
+
return new Uint8Array(bits);
|
|
115
|
+
}
|
|
116
|
+
async function deriveBrokerProofKey(seed, vaultId, brokerId) {
|
|
117
|
+
const proofBits = await deriveBrokerProofBits(seed, vaultId, brokerId);
|
|
118
|
+
try {
|
|
119
|
+
return await subtle.importKey("raw", proofBits, { name: "HMAC", hash: "SHA-256" }, false, ["sign"]);
|
|
120
|
+
} finally {
|
|
121
|
+
proofBits.fill(0);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
async function computeBrokerProof(seed, vaultId, brokerId, canonicalParts) {
|
|
125
|
+
try {
|
|
126
|
+
if (canonicalParts.instancePid === "") {
|
|
127
|
+
throw new ValidationError(
|
|
128
|
+
"computeBrokerProof: instancePid must not be an empty string \u2014 omit the field entirely for 'no instance' (F7); '' would alias onto a registered instance."
|
|
129
|
+
);
|
|
130
|
+
}
|
|
131
|
+
const canonical = buildCanonical(vaultId, brokerId, canonicalParts);
|
|
132
|
+
const key = await deriveBrokerProofKey(seed, vaultId, brokerId);
|
|
133
|
+
const mac = await subtle.sign("HMAC", key, new TextEncoder().encode(canonical));
|
|
134
|
+
return bufferToBase64(new Uint8Array(mac));
|
|
135
|
+
} finally {
|
|
136
|
+
seed.fill(0);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
function issueChallenge(opts) {
|
|
140
|
+
const ttlMs = opts?.ttlMs ?? DEFAULT_CHALLENGE_TTL_MS;
|
|
141
|
+
const bytes = globalThis.crypto.getRandomValues(new Uint8Array(32));
|
|
142
|
+
return {
|
|
143
|
+
challenge: bufferToBase64(bytes),
|
|
144
|
+
expiresAt: new Date(Date.now() + ttlMs).toISOString()
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
async function verifyBrokerProof(args) {
|
|
148
|
+
const fresh = await args.consumeChallenge(args.challenge);
|
|
149
|
+
if (!fresh) return false;
|
|
150
|
+
if (args.instancePid === "") return false;
|
|
151
|
+
const canonical = buildCanonical(args.vaultId, args.brokerId, {
|
|
152
|
+
endpointOrigin: args.endpointOrigin,
|
|
153
|
+
profile: args.profile,
|
|
154
|
+
instancePid: args.instancePid,
|
|
155
|
+
challenge: args.challenge,
|
|
156
|
+
expiresAt: args.expiresAt
|
|
157
|
+
});
|
|
158
|
+
const key = await subtle.importKey(
|
|
159
|
+
"raw",
|
|
160
|
+
args.registeredProofKey,
|
|
161
|
+
{ name: "HMAC", hash: "SHA-256" },
|
|
162
|
+
false,
|
|
163
|
+
["verify"]
|
|
164
|
+
);
|
|
165
|
+
const ok = await subtle.verify(
|
|
166
|
+
"HMAC",
|
|
167
|
+
key,
|
|
168
|
+
base64ToBuffer(args.proof),
|
|
169
|
+
new TextEncoder().encode(canonical)
|
|
170
|
+
);
|
|
171
|
+
if (!ok) return false;
|
|
172
|
+
return Date.now() < Date.parse(args.expiresAt);
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
// src/capsule/enclave-aes/capabilities.ts
|
|
176
|
+
function sealedSet(items) {
|
|
177
|
+
const set = new Set(items);
|
|
178
|
+
const refuse = () => {
|
|
179
|
+
throw new TypeError(
|
|
180
|
+
"capabilities() is immutable \u2014 a capsule's declared groups cannot be edited by a caller"
|
|
181
|
+
);
|
|
182
|
+
};
|
|
183
|
+
set.add = refuse;
|
|
184
|
+
set.delete = refuse;
|
|
185
|
+
set.clear = refuse;
|
|
186
|
+
return Object.freeze(set);
|
|
187
|
+
}
|
|
188
|
+
var ALL = sealedSet([
|
|
189
|
+
"authenticate",
|
|
190
|
+
"seal",
|
|
191
|
+
"cipher",
|
|
192
|
+
"digest",
|
|
193
|
+
"sign",
|
|
194
|
+
"codec",
|
|
195
|
+
"sealing",
|
|
196
|
+
"deterministic",
|
|
197
|
+
"classify"
|
|
198
|
+
]);
|
|
199
|
+
function capabilities() {
|
|
200
|
+
return ALL;
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
// src/capsule/enclave-aes/index.ts
|
|
204
|
+
var {
|
|
205
|
+
// envelope body
|
|
206
|
+
openEnvelopeJson,
|
|
207
|
+
writeEnvelopeBody,
|
|
208
|
+
verifyRecordIdentity,
|
|
209
|
+
// key lifecycle
|
|
210
|
+
resolveStableCek,
|
|
211
|
+
rewrapBodyToDek,
|
|
212
|
+
rewrapEnvelope,
|
|
213
|
+
applyRewrappedBody,
|
|
214
|
+
isRewrappedUnder,
|
|
215
|
+
// rekey
|
|
216
|
+
rekeyEnvelopeToDek,
|
|
217
|
+
rekeyEnvelopeIfNeeded,
|
|
218
|
+
envelopeOpensUnderAny,
|
|
219
|
+
rekeyBlobSet,
|
|
220
|
+
// record codec
|
|
221
|
+
RecordCodec,
|
|
222
|
+
// sealed slots — ONLY `makeReservedEnvelopes` is part of the frozen surface.
|
|
223
|
+
// The other seven are capsule-internal; destructuring the whole capsule here
|
|
224
|
+
// leaked them and widened the golden by 8 names. A surface is a contract, so
|
|
225
|
+
// the fix is to narrow the barrel, not to re-baseline the golden.
|
|
226
|
+
makeReservedEnvelopes,
|
|
227
|
+
// sealing
|
|
228
|
+
SEALED_CEK_NS,
|
|
229
|
+
sealRecordToHost,
|
|
230
|
+
revokeSealedRecord,
|
|
231
|
+
rotateRecordCek,
|
|
232
|
+
// deterministic
|
|
233
|
+
findByDet,
|
|
234
|
+
queryByDet
|
|
235
|
+
} = aesCapsule;
|
|
236
|
+
export {
|
|
237
|
+
RecordCodec,
|
|
238
|
+
SEALED_CEK_NS,
|
|
239
|
+
applyRewrappedBody,
|
|
240
|
+
base64ToBuffer,
|
|
241
|
+
bufferToBase64,
|
|
242
|
+
buildDeleteMarker,
|
|
243
|
+
buildRecordAad,
|
|
244
|
+
buildRecordEnvelope,
|
|
245
|
+
buildSealedRecordEnvelope,
|
|
246
|
+
buildTombstone,
|
|
247
|
+
capabilities,
|
|
248
|
+
checkCanary,
|
|
249
|
+
computeBidxTarget,
|
|
250
|
+
computeBrokerProof,
|
|
251
|
+
ctEqualTags,
|
|
252
|
+
decrypt,
|
|
253
|
+
decryptBytes,
|
|
254
|
+
decryptBytesWithAAD,
|
|
255
|
+
decryptDeterministic,
|
|
256
|
+
deriveBlobAddressKey,
|
|
257
|
+
deriveBrokerProofBits,
|
|
258
|
+
deriveBrokerProofKey,
|
|
259
|
+
deriveClassifyIndexKey,
|
|
260
|
+
deriveClassifyIndexSalt,
|
|
261
|
+
deriveDeterministicKey,
|
|
262
|
+
deriveEchoKey,
|
|
263
|
+
deriveKey,
|
|
264
|
+
derivePresenceKey,
|
|
265
|
+
derivePresenceTagKey,
|
|
266
|
+
deriveSealedFieldKey,
|
|
267
|
+
deriveSealedFieldKeyFromCek,
|
|
268
|
+
deriveSecretKey,
|
|
269
|
+
deriveVdigSlotKey,
|
|
270
|
+
encodeEchoParts,
|
|
271
|
+
encrypt,
|
|
272
|
+
encryptBytes,
|
|
273
|
+
encryptBytesWithAAD,
|
|
274
|
+
encryptDeterministic,
|
|
275
|
+
envelopeBodyForHash,
|
|
276
|
+
envelopeBodySize,
|
|
277
|
+
envelopeOpensUnderAny,
|
|
278
|
+
evaluateKofN,
|
|
279
|
+
exportDekSet,
|
|
280
|
+
exportRecipientPublicKeySpki,
|
|
281
|
+
findByDet,
|
|
282
|
+
generateDEK,
|
|
283
|
+
generateEphemeralKey,
|
|
284
|
+
generateIV,
|
|
285
|
+
generateRecipientKeyPair,
|
|
286
|
+
generateRecoverySecret,
|
|
287
|
+
generateSalt,
|
|
288
|
+
generateSigningKeyPair,
|
|
289
|
+
hasPerRecordKey,
|
|
290
|
+
hasSealedBody,
|
|
291
|
+
hkdfAesGcmKey,
|
|
292
|
+
hmacSha256Hex,
|
|
293
|
+
hmacSignHex,
|
|
294
|
+
importCek,
|
|
295
|
+
importDekSet,
|
|
296
|
+
importRecipientPublicKeySpki,
|
|
297
|
+
importTransferKey,
|
|
298
|
+
isDeleteMarker,
|
|
299
|
+
isRewrappedUnder,
|
|
300
|
+
isTombstone,
|
|
301
|
+
isTombstoneShape,
|
|
302
|
+
issueChallenge,
|
|
303
|
+
makeReservedEnvelopes,
|
|
304
|
+
mintBidxTag,
|
|
305
|
+
mintCanary,
|
|
306
|
+
openEnvelopeJson,
|
|
307
|
+
pbkdf2VerifyDigest,
|
|
308
|
+
queryByDet,
|
|
309
|
+
recipientUnwrap,
|
|
310
|
+
recipientWrap,
|
|
311
|
+
recordAadFor,
|
|
312
|
+
rekeyBlobSet,
|
|
313
|
+
rekeyEnvelopeIfNeeded,
|
|
314
|
+
rekeyEnvelopeToDek,
|
|
315
|
+
requireSealedBody,
|
|
316
|
+
resolveStableCek,
|
|
317
|
+
revokeSealedRecord,
|
|
318
|
+
rewrapBodyToDek,
|
|
319
|
+
rewrapEnvelope,
|
|
320
|
+
rotateRecordCek,
|
|
321
|
+
sealRecordToHost,
|
|
322
|
+
sealedBodyArgs,
|
|
323
|
+
sha256Bytes,
|
|
324
|
+
sha256Hex,
|
|
325
|
+
signBytes,
|
|
326
|
+
unwrapCek,
|
|
327
|
+
unwrapKey,
|
|
328
|
+
verifyBrokerProof,
|
|
329
|
+
verifyBytes,
|
|
330
|
+
verifyRecordIdentity,
|
|
331
|
+
wrapCek,
|
|
332
|
+
wrapKey,
|
|
333
|
+
writeEnvelopeBody
|
|
334
|
+
};
|
|
335
|
+
//# sourceMappingURL=index.js.map
|