@noy-db/hub 0.7.1-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 +147 -14
- package/LICENSE +202 -21
- package/NOTICE +1 -0
- package/README.md +5 -5
- package/codemods/0.8.0-pre.json +61 -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 +37 -26
- package/dist/attestation/index.js.map +1 -1
- package/dist/{backup-XKCXVKV3.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 +80 -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 +39 -36
- package/dist/{chunk-Q2MPFCQ7.js → chunk-23D6M6VM.js} +5 -5
- package/dist/chunk-23D6M6VM.js.map +1 -0
- package/dist/{chunk-R7BX2NB3.js → chunk-244QBK7Z.js} +4 -4
- package/dist/chunk-244QBK7Z.js.map +1 -0
- package/dist/chunk-2AFX33YA.js +936 -0
- package/dist/chunk-2AFX33YA.js.map +1 -0
- package/dist/{chunk-MVMXZYXT.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-XLMEZIAJ.js → chunk-2ODVB6LZ.js} +2 -2
- package/dist/{chunk-HJUWN7JN.js → chunk-2PVXF5CS.js} +33 -8
- package/dist/chunk-2PVXF5CS.js.map +1 -0
- package/dist/{chunk-YJRT5UQM.js → chunk-2RH777HH.js} +21 -20
- package/dist/{chunk-YJRT5UQM.js.map → chunk-2RH777HH.js.map} +1 -1
- package/dist/{chunk-7O3Y4PPD.js → chunk-37EPTBBR.js} +153 -16
- package/dist/chunk-37EPTBBR.js.map +1 -0
- package/dist/{chunk-2ENE6445.js → chunk-3A5DUZ56.js} +102 -16
- package/dist/chunk-3A5DUZ56.js.map +1 -0
- package/dist/chunk-3EWS67C7.js +461 -0
- package/dist/chunk-3EWS67C7.js.map +1 -0
- package/dist/{chunk-SGZAIJCV.js → chunk-3L2NBKDR.js} +4 -8
- package/dist/chunk-3L2NBKDR.js.map +1 -0
- package/dist/{chunk-YMUFFJCO.js → chunk-3TDUWVWB.js} +5 -2
- package/dist/chunk-3TDUWVWB.js.map +1 -0
- package/dist/{chunk-4GVM6QZA.js → chunk-3XJQBBZD.js} +26 -28
- package/dist/chunk-3XJQBBZD.js.map +1 -0
- package/dist/{chunk-4ZS56W5S.js → chunk-42ALPZ2B.js} +672 -664
- package/dist/chunk-42ALPZ2B.js.map +1 -0
- package/dist/chunk-4CIQDWRB.js +524 -0
- package/dist/chunk-4CIQDWRB.js.map +1 -0
- package/dist/{chunk-RMS3NEA3.js → chunk-4JPMZTJY.js} +2 -2
- package/dist/{chunk-P3MG6QCN.js → chunk-4T3SE27M.js} +5 -9
- package/dist/chunk-4T3SE27M.js.map +1 -0
- package/dist/chunk-4V3Q35WG.js +204 -0
- package/dist/chunk-4V3Q35WG.js.map +1 -0
- package/dist/{chunk-NQKIUNW5.js → chunk-52MGURXO.js} +2 -2
- package/dist/{chunk-EQEYOJBM.js → chunk-5A4345TG.js} +4 -4
- package/dist/chunk-5A4345TG.js.map +1 -0
- package/dist/{chunk-334WSVOW.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-RSGLUIO6.js → chunk-5UMK7GRI.js} +13 -12
- package/dist/chunk-5UMK7GRI.js.map +1 -0
- package/dist/chunk-5WWDGFOS.js +275 -0
- package/dist/chunk-5WWDGFOS.js.map +1 -0
- package/dist/{chunk-QPQUVOZ2.js → chunk-6QVKPHBF.js} +3 -5
- package/dist/chunk-6QVKPHBF.js.map +1 -0
- package/dist/{chunk-ACAQ2DSG.js → chunk-747G6CT3.js} +2 -2
- package/dist/chunk-747G6CT3.js.map +1 -0
- package/dist/{chunk-QTQUH4DS.js → chunk-7R2Q7CPL.js} +16 -16
- package/dist/chunk-7R2Q7CPL.js.map +1 -0
- package/dist/{chunk-UGTBXF5U.js → chunk-7XMHMVTS.js} +3 -3
- package/dist/{chunk-YJX7EOJD.js → chunk-A4XMIZT3.js} +6 -6
- package/dist/{chunk-YJX7EOJD.js.map → chunk-A4XMIZT3.js.map} +1 -1
- package/dist/{chunk-A66I4JOA.js → chunk-AEQGFRU4.js} +4 -4
- package/dist/chunk-AEQGFRU4.js.map +1 -0
- package/dist/chunk-AL6ML4LA.js +1558 -0
- package/dist/chunk-AL6ML4LA.js.map +1 -0
- package/dist/{chunk-BZ3534YM.js → chunk-AUKKUPVB.js} +2 -2
- package/dist/{chunk-CUZLNGD5.js → chunk-B2YY6WDD.js} +1 -1
- package/dist/chunk-B2YY6WDD.js.map +1 -0
- package/dist/chunk-BKT776R5.js +1 -0
- package/dist/chunk-BNWA3WG5.js +22 -0
- package/dist/chunk-BNWA3WG5.js.map +1 -0
- package/dist/{chunk-VXANTWBJ.js → chunk-BPWYQ25R.js} +92 -6
- package/dist/{chunk-VXANTWBJ.js.map → chunk-BPWYQ25R.js.map} +1 -1
- package/dist/{chunk-6LKOJBV6.js → chunk-BVCUTXE3.js} +2 -2
- package/dist/chunk-CY2CYVWZ.js +41 -0
- package/dist/chunk-CY2CYVWZ.js.map +1 -0
- package/dist/{chunk-M4YPHYEH.js → chunk-DHHGL42E.js} +70 -25
- package/dist/chunk-DHHGL42E.js.map +1 -0
- package/dist/{chunk-VTFVLCUH.js → chunk-DIZLQVAA.js} +2 -2
- package/dist/{chunk-G73UVHCA.js → chunk-DLD5LGDS.js} +11 -12
- package/dist/chunk-DLD5LGDS.js.map +1 -0
- package/dist/{chunk-WQBG4SZS.js → chunk-DQESF6RP.js} +60 -49
- package/dist/chunk-DQESF6RP.js.map +1 -0
- package/dist/{chunk-LWBCUYZW.js → chunk-E2N2T5ZO.js} +2 -2
- package/dist/{chunk-3PGS7TYR.js → chunk-EGVJ7TM4.js} +29 -32
- package/dist/chunk-EGVJ7TM4.js.map +1 -0
- package/dist/{chunk-JVIBCBC7.js → chunk-EJLV62NI.js} +2 -2
- package/dist/{chunk-KKEESNPE.js → chunk-EYG2CY2X.js} +126 -19
- package/dist/chunk-EYG2CY2X.js.map +1 -0
- package/dist/{enclave-55PAM4YO.js → chunk-EZGV6F47.js} +83 -56
- package/dist/chunk-EZGV6F47.js.map +1 -0
- package/dist/{chunk-CHQCZZWC.js → chunk-EZOAKKTB.js} +36 -27
- package/dist/chunk-EZOAKKTB.js.map +1 -0
- package/dist/chunk-F6NCB7KT.js +13 -0
- package/dist/chunk-F6NCB7KT.js.map +1 -0
- package/dist/chunk-FFJFE4T7.js +100 -0
- package/dist/chunk-FFJFE4T7.js.map +1 -0
- package/dist/{chunk-JMGDHKQF.js → chunk-FLPCETP6.js} +2 -2
- package/dist/chunk-FOEDQATO.js +53 -0
- package/dist/chunk-FOEDQATO.js.map +1 -0
- package/dist/{chunk-DGOZ4UZD.js → chunk-FVH5QYY2.js} +2 -2
- package/dist/{chunk-HIWCKBEY.js → chunk-G2MVBDFP.js} +54 -28
- 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-5VCRVKOZ.js → chunk-GUZET4SG.js} +12 -4
- package/dist/chunk-GUZET4SG.js.map +1 -0
- package/dist/{chunk-JBDFMYKQ.js → chunk-GZT3NQRA.js} +2 -2
- package/dist/{chunk-K23VKTN4.js → chunk-H23XHRTT.js} +19 -34
- package/dist/chunk-H23XHRTT.js.map +1 -0
- package/dist/{chunk-TFR7DSOV.js → chunk-H427H63K.js} +2 -2
- package/dist/{chunk-DFMWUOU5.js → chunk-H7JBY4P7.js} +23 -32
- package/dist/chunk-H7JBY4P7.js.map +1 -0
- package/dist/{chunk-SKGMN35F.js → chunk-HS554XAF.js} +3 -3
- package/dist/chunk-HS554XAF.js.map +1 -0
- package/dist/{chunk-HK67PX4J.js → chunk-HW7CMKUG.js} +1 -1
- package/dist/chunk-HW7CMKUG.js.map +1 -0
- package/dist/{chunk-3BVH633C.js → chunk-IMQKWR46.js} +5 -7
- package/dist/chunk-IMQKWR46.js.map +1 -0
- package/dist/{chunk-R42NSZI6.js → chunk-IUBMZPHM.js} +7 -7
- package/dist/chunk-IUBMZPHM.js.map +1 -0
- package/dist/{chunk-CUQPWYRX.js → chunk-IUT3GWP3.js} +75 -386
- package/dist/chunk-IUT3GWP3.js.map +1 -0
- package/dist/{chunk-RF6D3Y5E.js → chunk-JDEYF3PJ.js} +4 -8
- package/dist/{chunk-RF6D3Y5E.js.map → chunk-JDEYF3PJ.js.map} +1 -1
- package/dist/{chunk-PPTHY5QO.js → chunk-JIBUPZHA.js} +99 -8
- package/dist/chunk-JIBUPZHA.js.map +1 -0
- package/dist/{chunk-SMH6SRX7.js → chunk-JOSPH3E5.js} +2 -2
- package/dist/chunk-JQYKPKG6.js +193 -0
- package/dist/chunk-JQYKPKG6.js.map +1 -0
- package/dist/{chunk-7APJ6CO6.js → chunk-JSMTXZR3.js} +45 -13
- 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-BVN6KXL2.js → chunk-KZXDLBY6.js} +14 -9
- package/dist/chunk-KZXDLBY6.js.map +1 -0
- package/dist/chunk-LGNDFRYC.js +23 -0
- package/dist/chunk-LGNDFRYC.js.map +1 -0
- package/dist/{chunk-XKWGNJ26.js → chunk-LIOVX5TJ.js} +7 -11
- package/dist/chunk-LIOVX5TJ.js.map +1 -0
- package/dist/{chunk-AYX7AINO.js → chunk-LNSVGRHO.js} +5 -7
- package/dist/chunk-LNSVGRHO.js.map +1 -0
- package/dist/chunk-M5B2W6YY.js +293 -0
- package/dist/chunk-M5B2W6YY.js.map +1 -0
- package/dist/chunk-MBMTND6D.js +456 -0
- package/dist/chunk-MBMTND6D.js.map +1 -0
- package/dist/{chunk-3BZZJJMQ.js → chunk-MILI22XQ.js} +3 -3
- package/dist/{chunk-A2HKRLPV.js → chunk-MXKI4ABF.js} +18 -59
- package/dist/chunk-MXKI4ABF.js.map +1 -0
- package/dist/{chunk-ZYIYHJ5R.js → chunk-MXOQ5JCG.js} +869 -238
- package/dist/chunk-MXOQ5JCG.js.map +1 -0
- package/dist/{chunk-V7ZRRCRJ.js → chunk-N7EVQD5S.js} +9 -13
- package/dist/chunk-N7EVQD5S.js.map +1 -0
- package/dist/chunk-N7UDP5VU.js +757 -0
- package/dist/chunk-N7UDP5VU.js.map +1 -0
- package/dist/chunk-NBQ3KK6X.js +270 -0
- package/dist/chunk-NBQ3KK6X.js.map +1 -0
- package/dist/{chunk-ZORTV6NH.js → chunk-NCO25JZO.js} +88 -4
- package/dist/chunk-NCO25JZO.js.map +1 -0
- package/dist/chunk-NH2UOV3B.js +18 -0
- package/dist/chunk-NH2UOV3B.js.map +1 -0
- package/dist/chunk-NYMLINRP.js +28 -0
- package/dist/chunk-NYMLINRP.js.map +1 -0
- package/dist/{chunk-YYP7WSEB.js → chunk-O2IMQSNA.js} +2 -2
- package/dist/chunk-O46CHQT7.js +215 -0
- package/dist/chunk-O46CHQT7.js.map +1 -0
- package/dist/chunk-OIEO4WDL.js +27 -0
- package/dist/chunk-OIEO4WDL.js.map +1 -0
- package/dist/{chunk-TRGTKX5E.js → chunk-OKSTSITU.js} +27 -4
- package/dist/chunk-OKSTSITU.js.map +1 -0
- package/dist/chunk-OYW3I5M4.js +31 -0
- package/dist/chunk-OYW3I5M4.js.map +1 -0
- package/dist/{chunk-Q7HZX3IF.js → chunk-PD64727P.js} +2 -2
- package/dist/chunk-PD64727P.js.map +1 -0
- package/dist/{chunk-FET5XCAT.js → chunk-PP3K67AJ.js} +34 -6
- 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-QIZPZMUI.js → chunk-Q4UHJ5SN.js} +2 -2
- package/dist/{chunk-FAHMLERK.js → chunk-QBLT6POL.js} +2 -2
- package/dist/chunk-QMWY2FDS.js +157 -0
- package/dist/chunk-QMWY2FDS.js.map +1 -0
- package/dist/{chunk-LH5A3ZPG.js → chunk-RB4DOPGZ.js} +150 -22
- package/dist/chunk-RB4DOPGZ.js.map +1 -0
- package/dist/chunk-RHVMZSUU.js +7 -0
- package/dist/chunk-RHVMZSUU.js.map +1 -0
- package/dist/{chunk-BUE2D7PX.js → chunk-SMV2HRDU.js} +2 -2
- package/dist/chunk-SUZKW6UR.js +25 -0
- package/dist/chunk-SUZKW6UR.js.map +1 -0
- package/dist/{chunk-7MG7SJT7.js → chunk-SV2PM2OY.js} +1 -1
- package/dist/chunk-SV2PM2OY.js.map +1 -0
- package/dist/{chunk-UXVWEX5L.js → chunk-SYNY3VB5.js} +6 -2
- package/dist/chunk-SYNY3VB5.js.map +1 -0
- package/dist/{chunk-4GFX6MPA.js → chunk-TEHHROZL.js} +6 -8
- package/dist/chunk-TEHHROZL.js.map +1 -0
- package/dist/chunk-TKVUE4JF.js +1289 -0
- package/dist/chunk-TKVUE4JF.js.map +1 -0
- package/dist/{chunk-SFAWCTEM.js → chunk-TZZBXPZK.js} +2 -2
- package/dist/{chunk-F3W6YMDC.js → chunk-U2FZNEWJ.js} +4 -4
- package/dist/chunk-U2FZNEWJ.js.map +1 -0
- package/dist/{chunk-BLN54W3L.js → chunk-UA372JHH.js} +56 -3
- package/dist/chunk-UA372JHH.js.map +1 -0
- package/dist/{chunk-6YXCPL4T.js → chunk-UEFOQH74.js} +2 -2
- package/dist/chunk-UEFOQH74.js.map +1 -0
- package/dist/{chunk-2N5ML6HT.js → chunk-UIYESRD6.js} +9 -11
- package/dist/chunk-UIYESRD6.js.map +1 -0
- package/dist/{chunk-UHHPLO3I.js → chunk-V3RWOOSO.js} +4 -4
- package/dist/{chunk-KTFRCC5C.js → chunk-V7ADQF5O.js} +82 -8
- package/dist/chunk-V7ADQF5O.js.map +1 -0
- package/dist/{chunk-453F654R.js → chunk-VAORSCSU.js} +3 -3
- package/dist/chunk-VAORSCSU.js.map +1 -0
- package/dist/{chunk-GPNTB4Y7.js → chunk-VFHCKG5M.js} +6 -10
- package/dist/chunk-VFHCKG5M.js.map +1 -0
- package/dist/{chunk-2577DKXB.js → chunk-VHBKYN2J.js} +3 -3
- package/dist/chunk-VHBKYN2J.js.map +1 -0
- package/dist/chunk-VHM7HCKB.js +220 -0
- package/dist/chunk-VHM7HCKB.js.map +1 -0
- package/dist/{chunk-ZHKOPKE3.js → chunk-VKI2EB3N.js} +3 -3
- package/dist/chunk-VKI2EB3N.js.map +1 -0
- package/dist/{chunk-UDHWDSRL.js → chunk-VMV5SBE4.js} +16 -17
- package/dist/chunk-VMV5SBE4.js.map +1 -0
- package/dist/{chunk-SPYWXKJN.js → chunk-VQDZYB2B.js} +3 -3
- package/dist/chunk-VQDZYB2B.js.map +1 -0
- package/dist/{chunk-Q2PU57HC.js → chunk-VVOLDVIR.js} +2 -2
- package/dist/{chunk-3VF3WQ4F.js → chunk-WPOYWFSE.js} +7 -7
- package/dist/{chunk-3VF3WQ4F.js.map → chunk-WPOYWFSE.js.map} +1 -1
- package/dist/{chunk-OTQZ7ZWU.js → chunk-WXE4W2U6.js} +7 -11
- package/dist/chunk-WXE4W2U6.js.map +1 -0
- package/dist/chunk-XBKH4FOC.js +195 -0
- package/dist/chunk-XBKH4FOC.js.map +1 -0
- package/dist/{chunk-TUFM4UZP.js → chunk-XQRFSKYM.js} +2 -2
- package/dist/{chunk-3V4KWFX7.js → chunk-XSPFDUDG.js} +58 -53
- package/dist/chunk-XSPFDUDG.js.map +1 -0
- package/dist/{chunk-GY4WYNNG.js → chunk-Y2RKVFKR.js} +2 -2
- package/dist/{chunk-UP4BECPY.js → chunk-Y3LPTBG7.js} +89 -27
- package/dist/chunk-Y3LPTBG7.js.map +1 -0
- package/dist/{chunk-4OZNXTO4.js → chunk-YRXFFWG4.js} +2 -2
- package/dist/classified/index.js +5 -5
- package/dist/{classified-marker-BWOFVYAC.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-VPOKQK4N.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 +10 -11
- package/dist/coverage/index.js +306 -0
- package/dist/coverage/index.js.map +1 -0
- package/dist/custody/index.js +12 -13
- package/dist/{dead-filter-PKQDLOT4.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-DS5NRILW.js → delegation-NANZDG4N.js} +13 -16
- package/dist/delegation-NANZDG4N.js.map +1 -0
- package/dist/derivations/index.js +25 -23
- package/dist/derive-XLOJVXPU.js +20 -0
- package/dist/directory/index.js +10 -11
- package/dist/{dispatch-IEPAVQUM.js → dispatch-H4HV32AM.js} +5 -5
- package/dist/{dispatch-Q6MWLOJY.js → dispatch-JDZNGEB3.js} +20 -21
- 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-S3QL53YX.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 +36 -14
- package/dist/index.js +970 -163
- package/dist/index.js.map +1 -1
- package/dist/indexing/index.js +13 -5
- package/dist/indexing/index.js.map +1 -1
- package/dist/introspection/index.js +11 -12
- package/dist/issue-YIVBZUTH.js +19 -0
- package/dist/ivf-flat-UZ6DQDLS.js +314 -0
- package/dist/ivf-flat-UZ6DQDLS.js.map +1 -0
- package/dist/{json-schema-V3M5MUCM.js → json-schema-3SHX72CC.js} +2 -1
- package/dist/json-schema-3SHX72CC.js.map +1 -0
- package/dist/kernel/attestation-types.d.ts +62 -0
- package/dist/kernel/collection-config.d.ts +5 -68
- package/dist/kernel/collection.d.ts +30 -9
- package/dist/kernel/cutover-transform.d.ts +1 -1
- package/dist/kernel/errors.d.ts +257 -38
- package/dist/kernel/generation-map.d.ts +48 -0
- package/dist/kernel/merge-authority.d.ts +1 -1
- package/dist/kernel/noydb.d.ts +6 -1
- package/dist/kernel/paths.d.ts +29 -5
- package/dist/kernel/prepared-write.d.ts +1 -1
- package/dist/kernel/present-cache.d.ts +58 -0
- package/dist/kernel/query/all.d.ts +7 -0
- package/dist/kernel/query/builder.d.ts +601 -270
- package/dist/kernel/query/civil-date.d.ts +64 -0
- package/dist/kernel/query/cursor.d.ts +40 -0
- package/dist/kernel/query/distinct-key.d.ts +98 -0
- package/dist/kernel/query/hydration.d.ts +76 -0
- package/dist/kernel/query/index.d.ts +31 -15
- package/dist/kernel/query/internal/core.d.ts +30 -0
- package/dist/kernel/query/internal/hooks.d.ts +22 -0
- package/dist/kernel/query/internal/maintenance.d.ts +43 -0
- package/dist/kernel/query/live/incremental.d.ts +314 -0
- package/dist/kernel/query/live/index.d.ts +22 -0
- package/dist/kernel/query/live/install.d.ts +2 -0
- package/dist/kernel/query/{live.d.ts → live/live.d.ts} +39 -9
- package/dist/kernel/query/live/methods.d.ts +107 -0
- package/dist/kernel/query/predicate.d.ts +119 -1
- package/dist/kernel/query/reduce/date-trunc.d.ts +75 -0
- package/dist/kernel/query/reduce/index.d.ts +36 -0
- package/dist/kernel/query/reduce/install.d.ts +2 -0
- package/dist/kernel/query/reduce/methods.d.ts +259 -0
- package/dist/kernel/query/reduce/scan-methods.d.ts +121 -0
- package/dist/kernel/query/relate/explain.d.ts +199 -0
- package/dist/kernel/query/relate/index.d.ts +48 -0
- package/dist/kernel/query/relate/install.d.ts +2 -0
- package/dist/kernel/query/relate/join-on.d.ts +126 -0
- package/dist/kernel/query/relate/join-reduce.d.ts +16 -0
- package/dist/kernel/query/relate/join.d.ts +452 -0
- package/dist/kernel/query/relate/methods.d.ts +426 -0
- package/dist/kernel/query/relate/partition.d.ts +87 -0
- package/dist/kernel/query/relate/scan-methods.d.ts +163 -0
- package/dist/kernel/query/relate/traverse.d.ts +109 -0
- package/dist/kernel/query/scan-builder.d.ts +79 -176
- package/dist/kernel/query/sort-key.d.ts +52 -0
- package/dist/kernel/secret-mode.d.ts +1 -1
- package/dist/kernel/tx-write-gate.d.ts +77 -0
- package/dist/kernel/types.d.ts +113 -8
- package/dist/kernel/validation.d.ts +27 -10
- package/dist/kernel/vault.d.ts +11 -6
- package/dist/kernel/via/compose.d.ts +3 -0
- package/dist/kernel/via/index.d.ts +56 -0
- package/dist/kernel/via/pipeline.d.ts +48 -0
- package/dist/kernel/write-queue.d.ts +17 -0
- package/dist/{ledger-EDXFFZQL.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-NCWEMPUQ.js → managed-secret-MFTFT22X.js} +10 -11
- package/dist/materialized-views/index.js +30 -24
- package/dist/{migrate-cek-5ENH64AA.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 +74 -67
- package/dist/{pod-handle-ECVCDIXW.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 +10 -1
- package/dist/port/with/classified-strategy.d.ts +1 -1
- package/dist/port/with/collection-options.d.ts +6 -1
- package/dist/port/with/collection-registries.d.ts +1 -1
- package/dist/port/with/coverage-strategy.d.ts +83 -0
- package/dist/port/with/lookup-strategy.d.ts +2 -2
- package/dist/port/with/service-bus.d.ts +46 -0
- package/dist/port/with/strategies.d.ts +2 -0
- package/dist/portability/index.js +8 -8
- package/dist/{post-register-3IPCSG6Q.js → post-register-7ND27CF2.js} +6 -6
- package/dist/post-register-7ND27CF2.js.map +1 -0
- package/dist/query/all/index.js +31 -0
- package/dist/query/index.js +20 -32
- package/dist/query/live/index.js +21 -0
- package/dist/query/live/index.js.map +1 -0
- package/dist/query/reduce/index.js +33 -0
- package/dist/query/reduce/index.js.map +1 -0
- package/dist/query/relate/index.js +56 -0
- package/dist/query/relate/index.js.map +1 -0
- package/dist/reduce/index.js +72 -18
- package/dist/reduce/index.js.map +1 -1
- 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-QZDHSGD4.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 +11 -5
- package/dist/{seed-X5CC22CQ.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/storage-BYN5LO6Z.js.map +1 -0
- package/dist/store/index.js +1 -1
- package/dist/{store-coordination-provider-4WZAIRHC.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 +17 -16
- package/dist/tiers/index.js +13 -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-6MDTIUEV.js → verify-UKALW7C2.js} +14 -12
- package/dist/verify-UKALW7C2.js.map +1 -0
- package/dist/via/blob/index.d.ts +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/geo/binding.d.ts +31 -0
- package/dist/via/geo/descriptor.d.ts +54 -0
- package/dist/via/geo/geohash.d.ts +95 -0
- package/dist/via/geo/index.d.ts +13 -0
- package/dist/via/geo/where.d.ts +50 -0
- package/dist/via/i18n/core.d.ts +1 -1
- package/dist/via/lookup/handle.d.ts +4 -4
- package/dist/via/lookup/registry.d.ts +1 -1
- package/dist/via/lookup/snapshot.d.ts +3 -3
- package/dist/walk-4VPK7AS4.js +20 -0
- package/dist/walk-4VPK7AS4.js.map +1 -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/coverage/accounting.d.ts +112 -0
- package/dist/with-audit/coverage/active.d.ts +29 -0
- package/dist/with-audit/coverage/index.d.ts +61 -0
- package/dist/with-audit/coverage/sketch.d.ts +75 -0
- package/dist/with-audit/forget/subject-index.d.ts +1 -1
- package/dist/with-audit/periods/periods.d.ts +55 -7
- package/dist/with-audit/periods/reserved-collections.d.ts +3 -0
- package/dist/with-audit/periods/vault-facade.d.ts +18 -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 +53 -2
- package/dist/with-audit/tiers/strategy.d.ts +8 -0
- 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 +3 -3
- 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/tx/invariants.d.ts +1 -1
- package/dist/with-commit/tx/transaction.d.ts +13 -3
- 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-formula/materialized-views/dependency-analyzer.d.ts +4 -3
- package/dist/with-formula/materialized-views/emit-memo.d.ts +40 -0
- package/dist/with-formula/materialized-views/executor.d.ts +8 -0
- package/dist/with-formula/materialized-views/index.d.ts +1 -1
- package/dist/with-formula/materialized-views/registry.d.ts +15 -0
- package/dist/with-formula/materialized-views/types.d.ts +106 -14
- package/dist/with-formula/materialized-views/window-stage.d.ts +11 -0
- package/dist/with-formula/overlay-views/types.d.ts +1 -1
- package/dist/with-formula/overlay-views/virtual-collection.d.ts +13 -4
- package/dist/with-lookup/embeddings/chunks.d.ts +79 -0
- package/dist/with-lookup/embeddings/descriptor.d.ts +21 -0
- package/dist/with-lookup/embeddings/index.d.ts +3 -0
- package/dist/with-lookup/embeddings/ivf-flat.d.ts +93 -0
- package/dist/with-lookup/embeddings/vector-index.d.ts +73 -0
- package/dist/with-lookup/embeddings/vector-set.d.ts +94 -1
- package/dist/with-lookup/embeddings/with-vector-index.d.ts +67 -0
- package/dist/with-lookup/indexing/collection-facade.d.ts +86 -3
- package/dist/with-lookup/indexing/compound-indexes.d.ts +129 -0
- package/dist/with-lookup/indexing/eager-indexes.d.ts +170 -1
- package/dist/with-lookup/indexing/index-snapshot.d.ts +62 -0
- package/dist/with-lookup/indexing/lazy-builder.d.ts +33 -0
- package/dist/with-lookup/indexing/persisted-field-indexes.d.ts +104 -0
- package/dist/with-lookup/indexing/persisted-indexes.d.ts +12 -0
- package/dist/with-lookup/indexing/sorted-indexes.d.ts +117 -0
- package/dist/with-lookup/indexing/unique-constraints.d.ts +106 -23
- package/dist/with-lookup/reduce/active.d.ts +2 -24
- package/dist/with-lookup/reduce/group-core.d.ts +43 -0
- package/dist/with-lookup/reduce/groupby.d.ts +195 -36
- package/dist/with-lookup/reduce/incremental-group.d.ts +153 -0
- package/dist/with-lookup/reduce/index.d.ts +26 -5
- package/dist/with-lookup/reduce/reducers.d.ts +255 -1
- package/dist/with-lookup/reduce/reduction.d.ts +44 -13
- package/dist/with-lookup/reduce/strategy.d.ts +43 -3
- package/dist/with-lookup/reduce/window.d.ts +262 -0
- package/dist/with-lookup/search/collection-facade.d.ts +45 -9
- package/dist/with-lookup/search/index-store.d.ts +5 -3
- package/dist/with-lookup/search/index.d.ts +4 -2
- package/dist/with-lookup/search/inverted-index.d.ts +38 -2
- package/dist/with-lookup/search/persisted-index-store.d.ts +5 -2
- package/dist/with-lookup/search/phrase.d.ts +28 -0
- package/dist/with-lookup/search/retrieve-types.d.ts +57 -1
- package/dist/with-lookup/search/serialize.d.ts +29 -3
- package/dist/with-lookup/search/strategy.d.ts +2 -6
- package/dist/with-party/broker/index.d.ts +3 -3
- package/dist/with-party/directory/cover/index.d.ts +1 -1
- package/dist/with-party/directory/cover/storage.d.ts +1 -1
- package/dist/with-party/directory/cover/types.d.ts +1 -1
- package/dist/with-party/directory/index.d.ts +1 -1
- package/dist/with-party/directory/types.d.ts +1 -1
- package/dist/with-party/directory/user-envelope/api.d.ts +1 -1
- package/dist/with-party/directory/user-envelope/storage.d.ts +1 -1
- package/dist/with-party/policy/engine.d.ts +1 -1
- package/dist/with-party/policy/index.d.ts +1 -1
- package/dist/with-party/policy/presets.d.ts +1 -1
- package/dist/with-party/team/authenticators.d.ts +91 -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 +4 -3
- package/dist/with-party/team/keyring.d.ts +2 -2
- package/dist/with-party/team/magic-link-grant.d.ts +1 -1
- package/dist/with-party/team/managed-secret.d.ts +1 -1
- package/dist/with-party/team/noydb-facade.d.ts +12 -3
- 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/format.d.ts +1 -1
- package/dist/with-pod/index.d.ts +1 -1
- package/dist/with-pod/pod.d.ts +1 -1
- package/dist/with-shape/blobs/blob-compaction.d.ts +17 -1
- package/dist/with-shape/blobs/blob-intent.d.ts +1 -1
- package/dist/with-shape/blobs/blob-set.d.ts +23 -4
- package/dist/with-shape/blobs/legacy-sweep.d.ts +35 -0
- package/dist/with-shape/introspection/describe.d.ts +7 -1
- package/dist/with-shape/introspection/field-meta.d.ts +18 -0
- package/dist/with-shape/introspection/types.d.ts +57 -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/links/vault-facade.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-store/partitioned/index.d.ts +337 -0
- package/dist/with-sync/change-broadcast.d.ts +153 -0
- 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 +48 -12
- package/dist/api-WYW4YEQG.js +0 -19
- package/dist/backup-XKCXVKV3.js.map +0 -1
- package/dist/chunk-2577DKXB.js.map +0 -1
- package/dist/chunk-2ENE6445.js.map +0 -1
- package/dist/chunk-2N5ML6HT.js.map +0 -1
- package/dist/chunk-334WSVOW.js.map +0 -1
- package/dist/chunk-3BVH633C.js.map +0 -1
- package/dist/chunk-3PGS7TYR.js.map +0 -1
- package/dist/chunk-3V4KWFX7.js.map +0 -1
- package/dist/chunk-453F654R.js.map +0 -1
- package/dist/chunk-4GFX6MPA.js.map +0 -1
- package/dist/chunk-4GVM6QZA.js.map +0 -1
- package/dist/chunk-4ZS56W5S.js.map +0 -1
- package/dist/chunk-5VCRVKOZ.js.map +0 -1
- package/dist/chunk-6YXCPL4T.js.map +0 -1
- package/dist/chunk-7APJ6CO6.js.map +0 -1
- package/dist/chunk-7MG2LHO5.js +0 -1616
- package/dist/chunk-7MG2LHO5.js.map +0 -1
- package/dist/chunk-7MG7SJT7.js.map +0 -1
- package/dist/chunk-7O3Y4PPD.js.map +0 -1
- package/dist/chunk-A2HKRLPV.js.map +0 -1
- package/dist/chunk-A66I4JOA.js.map +0 -1
- package/dist/chunk-ACAQ2DSG.js.map +0 -1
- package/dist/chunk-ATL3ZVXT.js +0 -151
- package/dist/chunk-ATL3ZVXT.js.map +0 -1
- package/dist/chunk-AYX7AINO.js.map +0 -1
- package/dist/chunk-BLN54W3L.js.map +0 -1
- package/dist/chunk-BRLKZUBT.js +0 -95
- package/dist/chunk-BRLKZUBT.js.map +0 -1
- package/dist/chunk-BTDR2PXY.js +0 -29
- package/dist/chunk-BTDR2PXY.js.map +0 -1
- package/dist/chunk-BVN6KXL2.js.map +0 -1
- package/dist/chunk-CHQCZZWC.js.map +0 -1
- package/dist/chunk-CUQPWYRX.js.map +0 -1
- package/dist/chunk-CUZLNGD5.js.map +0 -1
- package/dist/chunk-DFMWUOU5.js.map +0 -1
- package/dist/chunk-EIPVYUEP.js.map +0 -1
- package/dist/chunk-EQEYOJBM.js.map +0 -1
- package/dist/chunk-F3W6YMDC.js.map +0 -1
- package/dist/chunk-FET5XCAT.js.map +0 -1
- package/dist/chunk-G73UVHCA.js.map +0 -1
- package/dist/chunk-GPNTB4Y7.js.map +0 -1
- package/dist/chunk-GYGLAVCX.js.map +0 -1
- package/dist/chunk-HIWCKBEY.js.map +0 -1
- package/dist/chunk-HJUWN7JN.js.map +0 -1
- package/dist/chunk-HK67PX4J.js.map +0 -1
- package/dist/chunk-HPVZCW43.js +0 -479
- package/dist/chunk-HPVZCW43.js.map +0 -1
- package/dist/chunk-I3ISCYT7.js +0 -159
- package/dist/chunk-I3ISCYT7.js.map +0 -1
- package/dist/chunk-K23VKTN4.js.map +0 -1
- package/dist/chunk-KKEESNPE.js.map +0 -1
- package/dist/chunk-KTFRCC5C.js.map +0 -1
- package/dist/chunk-LH5A3ZPG.js.map +0 -1
- package/dist/chunk-LP7BEXCT.js +0 -32
- package/dist/chunk-LP7BEXCT.js.map +0 -1
- package/dist/chunk-M4YPHYEH.js.map +0 -1
- package/dist/chunk-NSITFOCJ.js +0 -99
- package/dist/chunk-NSITFOCJ.js.map +0 -1
- package/dist/chunk-OTQZ7ZWU.js.map +0 -1
- package/dist/chunk-P3MG6QCN.js.map +0 -1
- package/dist/chunk-PEOZ34EM.js.map +0 -1
- package/dist/chunk-PPTHY5QO.js.map +0 -1
- package/dist/chunk-Q2MPFCQ7.js.map +0 -1
- package/dist/chunk-Q7HZX3IF.js.map +0 -1
- package/dist/chunk-QPQUVOZ2.js.map +0 -1
- package/dist/chunk-QTQUH4DS.js.map +0 -1
- package/dist/chunk-R42NSZI6.js.map +0 -1
- package/dist/chunk-R7BX2NB3.js.map +0 -1
- package/dist/chunk-RSGLUIO6.js.map +0 -1
- package/dist/chunk-RTBJ5IOO.js +0 -87
- package/dist/chunk-RTBJ5IOO.js.map +0 -1
- package/dist/chunk-SGZAIJCV.js.map +0 -1
- package/dist/chunk-SKGMN35F.js.map +0 -1
- package/dist/chunk-SPYWXKJN.js.map +0 -1
- package/dist/chunk-SZJ3DLZA.js +0 -66
- package/dist/chunk-SZJ3DLZA.js.map +0 -1
- package/dist/chunk-TRGTKX5E.js.map +0 -1
- package/dist/chunk-UDHWDSRL.js.map +0 -1
- package/dist/chunk-UP4BECPY.js.map +0 -1
- package/dist/chunk-UXVWEX5L.js.map +0 -1
- package/dist/chunk-V7ZRRCRJ.js.map +0 -1
- package/dist/chunk-WQBG4SZS.js.map +0 -1
- package/dist/chunk-XKWGNJ26.js.map +0 -1
- package/dist/chunk-YMUFFJCO.js.map +0 -1
- package/dist/chunk-ZHKOPKE3.js.map +0 -1
- package/dist/chunk-ZN4FD4PE.js +0 -364
- package/dist/chunk-ZN4FD4PE.js.map +0 -1
- package/dist/chunk-ZORTV6NH.js.map +0 -1
- package/dist/chunk-ZYIYHJ5R.js.map +0 -1
- package/dist/classified-marker-BWOFVYAC.js.map +0 -1
- package/dist/collection-facade-JSJYIKS4.js +0 -45
- package/dist/dead-filter-PKQDLOT4.js.map +0 -1
- package/dist/delegation-DS5NRILW.js.map +0 -1
- package/dist/derive-E642AOUB.js +0 -21
- package/dist/dispatch-Q6MWLOJY.js.map +0 -1
- package/dist/executor-5NIMLSKZ.js +0 -8
- package/dist/executor-7UQ3BZ4F.js +0 -29
- package/dist/executor-AQVXV5GZ.js +0 -8
- package/dist/export-accessible-ORMKLA3E.js +0 -22
- package/dist/extract-partition-NKYO3WNG.js +0 -37
- package/dist/fanout-sidecar-S3QL53YX.js.map +0 -1
- package/dist/find-NOGJ25VX.js +0 -10
- package/dist/issue-3DTQ7VJJ.js +0 -18
- package/dist/json-schema-V3M5MUCM.js.map +0 -1
- 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/kernel/query/join.d.ts +0 -232
- package/dist/liberate-V35QUHJP.js +0 -24
- package/dist/link-set-2TTM3IZC.js +0 -30
- package/dist/noydb-62MX4QUG.js +0 -90
- package/dist/pod-handle-ECVCDIXW.js.map +0 -1
- package/dist/post-register-3IPCSG6Q.js.map +0 -1
- package/dist/register-HHLXEQDN.js +0 -31
- package/dist/registry-23WF3TGH.js +0 -8
- package/dist/registry-4AYVUNXK.js +0 -8
- package/dist/registry-JS3YFQQM.js +0 -18
- package/dist/registry-XX2Z7B46.js +0 -32
- package/dist/request-withdrawal-CHPATE4G.js +0 -30
- package/dist/reveal-QZDHSGD4.js.map +0 -1
- package/dist/revoke-7M2VW4ON.js +0 -23
- package/dist/seed-X5CC22CQ.js.map +0 -1
- package/dist/signer-SJQJVSM6.js +0 -24
- package/dist/stale-BZS6H2RY.js +0 -29
- package/dist/storage-RW4QBS23.js +0 -22
- package/dist/store-coordination-provider-4WZAIRHC.js.map +0 -1
- package/dist/verify-6MDTIUEV.js.map +0 -1
- package/dist/walk-ZURCH6RZ.js +0 -21
- package/dist/withdraw-accessible-PXR4IXDX.js +0 -27
- /package/dist/{api-WYW4YEQG.js.map → api-OS747DS4.js.map} +0 -0
- /package/dist/{computed-VPOKQK4N.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-JSJYIKS4.js.map → capsule-VOLX3QRQ.js.map} +0 -0
- /package/dist/{chunk-MVMXZYXT.js.map → chunk-2GHDLTPE.js.map} +0 -0
- /package/dist/{chunk-XLMEZIAJ.js.map → chunk-2ODVB6LZ.js.map} +0 -0
- /package/dist/{chunk-RMS3NEA3.js.map → chunk-4JPMZTJY.js.map} +0 -0
- /package/dist/{chunk-NQKIUNW5.js.map → chunk-52MGURXO.js.map} +0 -0
- /package/dist/{chunk-UGTBXF5U.js.map → chunk-7XMHMVTS.js.map} +0 -0
- /package/dist/{chunk-BZ3534YM.js.map → chunk-AUKKUPVB.js.map} +0 -0
- /package/dist/{derive-E642AOUB.js.map → chunk-BKT776R5.js.map} +0 -0
- /package/dist/{chunk-6LKOJBV6.js.map → chunk-BVCUTXE3.js.map} +0 -0
- /package/dist/{chunk-VTFVLCUH.js.map → chunk-DIZLQVAA.js.map} +0 -0
- /package/dist/{chunk-LWBCUYZW.js.map → chunk-E2N2T5ZO.js.map} +0 -0
- /package/dist/{chunk-JVIBCBC7.js.map → chunk-EJLV62NI.js.map} +0 -0
- /package/dist/{chunk-JMGDHKQF.js.map → chunk-FLPCETP6.js.map} +0 -0
- /package/dist/{chunk-DGOZ4UZD.js.map → chunk-FVH5QYY2.js.map} +0 -0
- /package/dist/{chunk-JBDFMYKQ.js.map → chunk-GZT3NQRA.js.map} +0 -0
- /package/dist/{chunk-TFR7DSOV.js.map → chunk-H427H63K.js.map} +0 -0
- /package/dist/{chunk-SMH6SRX7.js.map → chunk-JOSPH3E5.js.map} +0 -0
- /package/dist/{chunk-3BZZJJMQ.js.map → chunk-MILI22XQ.js.map} +0 -0
- /package/dist/{chunk-YYP7WSEB.js.map → chunk-O2IMQSNA.js.map} +0 -0
- /package/dist/{chunk-QIZPZMUI.js.map → chunk-Q4UHJ5SN.js.map} +0 -0
- /package/dist/{chunk-FAHMLERK.js.map → chunk-QBLT6POL.js.map} +0 -0
- /package/dist/{chunk-BUE2D7PX.js.map → chunk-SMV2HRDU.js.map} +0 -0
- /package/dist/{chunk-SFAWCTEM.js.map → chunk-TZZBXPZK.js.map} +0 -0
- /package/dist/{chunk-UHHPLO3I.js.map → chunk-V3RWOOSO.js.map} +0 -0
- /package/dist/{chunk-Q2PU57HC.js.map → chunk-VVOLDVIR.js.map} +0 -0
- /package/dist/{chunk-TUFM4UZP.js.map → chunk-XQRFSKYM.js.map} +0 -0
- /package/dist/{chunk-GY4WYNNG.js.map → chunk-Y2RKVFKR.js.map} +0 -0
- /package/dist/{chunk-4OZNXTO4.js.map → chunk-YRXFFWG4.js.map} +0 -0
- /package/dist/{enclave-55PAM4YO.js.map → collection-facade-CS7CA2XO.js.map} +0 -0
- /package/dist/{executor-5NIMLSKZ.js.map → computed-FAD7SED4.js.map} +0 -0
- /package/dist/{executor-7UQ3BZ4F.js.map → derive-XLOJVXPU.js.map} +0 -0
- /package/dist/{dispatch-IEPAVQUM.js.map → dispatch-H4HV32AM.js.map} +0 -0
- /package/dist/{executor-AQVXV5GZ.js.map → executor-FMPVN6DT.js.map} +0 -0
- /package/dist/{export-accessible-ORMKLA3E.js.map → executor-LBBBRTN5.js.map} +0 -0
- /package/dist/{extract-partition-NKYO3WNG.js.map → executor-OSRZST2U.js.map} +0 -0
- /package/dist/{find-NOGJ25VX.js.map → export-accessible-RAOJAAU5.js.map} +0 -0
- /package/dist/{issue-3DTQ7VJJ.js.map → extract-partition-JD5CUSTG.js.map} +0 -0
- /package/dist/{ledger-EDXFFZQL.js.map → find-JRN4RNQ5.js.map} +0 -0
- /package/dist/{liberate-V35QUHJP.js.map → issue-YIVBZUTH.js.map} +0 -0
- /package/dist/{link-set-2TTM3IZC.js.map → ledger-5ZMGE44K.js.map} +0 -0
- /package/dist/{managed-secret-NCWEMPUQ.js.map → liberate-WZSZM2W6.js.map} +0 -0
- /package/dist/{noydb-62MX4QUG.js.map → link-set-MFXC24VK.js.map} +0 -0
- /package/dist/{register-HHLXEQDN.js.map → managed-secret-MFTFT22X.js.map} +0 -0
- /package/dist/{migrate-cek-5ENH64AA.js.map → migrate-cek-DZRFFOHW.js.map} +0 -0
- /package/dist/{registry-23WF3TGH.js.map → noydb-ITIGNKUF.js.map} +0 -0
- /package/dist/{registry-4AYVUNXK.js.map → query/all/index.js.map} +0 -0
- /package/dist/{registry-JS3YFQQM.js.map → register-DT5HZ2LZ.js.map} +0 -0
- /package/dist/{registry-XX2Z7B46.js.map → registry-BHRZGZHF.js.map} +0 -0
- /package/dist/{request-withdrawal-CHPATE4G.js.map → registry-ET6ZFFWA.js.map} +0 -0
- /package/dist/{revoke-7M2VW4ON.js.map → registry-HXFGLGTG.js.map} +0 -0
- /package/dist/{signer-SJQJVSM6.js.map → registry-THCPDEOD.js.map} +0 -0
- /package/dist/{stale-BZS6H2RY.js.map → request-withdrawal-AV2MJJKY.js.map} +0 -0
- /package/dist/{storage-RW4QBS23.js.map → revoke-6DWIEOCV.js.map} +0 -0
- /package/dist/{walk-ZURCH6RZ.js.map → signer-MHGW3OIL.js.map} +0 -0
- /package/dist/{withdraw-accessible-PXR4IXDX.js.map → stale-6GCFMOOR.js.map} +0 -0
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Coverage accounting (#1363) — per `(principal, vault, collection)`.
|
|
3
|
+
*
|
|
4
|
+
* ⛔⛔ **TELEMETRY, NOT A CONTROL.** Against an insider holding the device and
|
|
5
|
+
* local keys this prevents nothing; it makes bulk extraction visible early,
|
|
6
|
+
* attributable and loud. Key custody (tiers, per-collection DEKs) is the
|
|
7
|
+
* remediation. Nothing in this module refuses a read, and nothing in it may
|
|
8
|
+
* ever grow the ability to (#1251 §3: a refusal is a threshold the reader can
|
|
9
|
+
* binary-search; a signal is not).
|
|
10
|
+
*
|
|
11
|
+
* What is accounted, and why each one:
|
|
12
|
+
*
|
|
13
|
+
* - **distinct ids ever decrypted** (HyperLogLog) — coverage is the protected
|
|
14
|
+
* quantity, not rate: patience lowers an extractor's rate and never their
|
|
15
|
+
* coverage. Monotonic, and the horizon is the life of the state, never a
|
|
16
|
+
* 30-day window that resets faster than the attack completes.
|
|
17
|
+
* - **novelty per window** (Bloom, cleared per window) — the discriminator
|
|
18
|
+
* that is orthogonal to speed. A legitimate operator re-reads a working
|
|
19
|
+
* subset (high volume, low novelty); an extractor reads new records.
|
|
20
|
+
* - **served** — decrypts, all time and per window.
|
|
21
|
+
* - **burstiness** — this window's served count over the running mean of the
|
|
22
|
+
* previous windows'. 1 while there is no history to compare against.
|
|
23
|
+
*
|
|
24
|
+
* @module
|
|
25
|
+
*/
|
|
26
|
+
import type { CoverageEmitter, CoverageFieldMeta, CoverageObserver, CoverageStrategy } from '../../port/with/coverage-strategy.js';
|
|
27
|
+
/** Per-collection policy. Absent `corpusSize` ⇒ no coverage estimate, so no alert. */
|
|
28
|
+
export interface CoverageCollectionPolicy {
|
|
29
|
+
/**
|
|
30
|
+
* How many records the corpus holds. Coverage is `distinct / corpusSize`.
|
|
31
|
+
* Deliberately DECLARED rather than counted: counting means a store read on
|
|
32
|
+
* a sensor that must not touch the store, and a corpus size that moves with
|
|
33
|
+
* every write makes an alert threshold un-reproducible.
|
|
34
|
+
*/
|
|
35
|
+
readonly corpusSize?: number;
|
|
36
|
+
/** Coverage fractions to alert at. Default `[0.6, 0.9]`. Each fires at most once. */
|
|
37
|
+
readonly alertAt?: readonly number[];
|
|
38
|
+
}
|
|
39
|
+
export interface WithCoverageOptions {
|
|
40
|
+
/**
|
|
41
|
+
* HyperLogLog precision — the register file is `2^precision` bytes per
|
|
42
|
+
* `(principal, vault, collection)`. Default 14 (16 KiB), chosen by
|
|
43
|
+
* measurement; the table is in `sketch.ts`.
|
|
44
|
+
*/
|
|
45
|
+
readonly precision?: number;
|
|
46
|
+
/** Bloom width in bits, per key, per window. Default 16 384 (2 KiB). */
|
|
47
|
+
readonly bloomBits?: number;
|
|
48
|
+
/** Bloom hash count. Default 7. */
|
|
49
|
+
readonly bloomHashes?: number;
|
|
50
|
+
/** Novelty window length. Default one hour. NOT the coverage horizon — that never resets. */
|
|
51
|
+
readonly windowMs?: number;
|
|
52
|
+
/** Per-collection corpus size and alert thresholds. */
|
|
53
|
+
readonly collections?: Readonly<Record<string, CoverageCollectionPolicy>>;
|
|
54
|
+
/** Clock seam, for tests. */
|
|
55
|
+
readonly now?: () => number;
|
|
56
|
+
}
|
|
57
|
+
export interface CoverageStats {
|
|
58
|
+
readonly principal: string;
|
|
59
|
+
readonly vault: string;
|
|
60
|
+
readonly collection: string;
|
|
61
|
+
/** HLL estimate of distinct ids ever decrypted. */
|
|
62
|
+
readonly distinct: number;
|
|
63
|
+
readonly served: number;
|
|
64
|
+
readonly novelInWindow: number;
|
|
65
|
+
readonly servedInWindow: number;
|
|
66
|
+
readonly burstiness: number;
|
|
67
|
+
/** Absent when the collection declares no `corpusSize`. */
|
|
68
|
+
readonly coverage?: number;
|
|
69
|
+
readonly window: string;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Serializable coverage state.
|
|
73
|
+
*
|
|
74
|
+
* ⛔ SKETCHES ONLY — the invariant this module exists to hold. A structure
|
|
75
|
+
* that could name the records a principal has read would be a second copy of
|
|
76
|
+
* the sensitive set: the sensor built to notice bulk extraction would become
|
|
77
|
+
* the single best artefact to extract. Pinned by
|
|
78
|
+
* `__tests__/coverage/no-record-ids.test.ts`.
|
|
79
|
+
*/
|
|
80
|
+
export interface CoverageSnapshot {
|
|
81
|
+
readonly _noydb_coverage: 1;
|
|
82
|
+
readonly entries: ReadonlyArray<{
|
|
83
|
+
readonly principal: string;
|
|
84
|
+
readonly vault: string;
|
|
85
|
+
readonly collection: string;
|
|
86
|
+
readonly hll: {
|
|
87
|
+
readonly p: number;
|
|
88
|
+
readonly r: string;
|
|
89
|
+
};
|
|
90
|
+
readonly served: number;
|
|
91
|
+
readonly windowStart: number;
|
|
92
|
+
}>;
|
|
93
|
+
}
|
|
94
|
+
export declare class CoverageRegistry implements CoverageStrategy {
|
|
95
|
+
#private;
|
|
96
|
+
constructor(opts?: WithCoverageOptions);
|
|
97
|
+
observer(vault: string, collection: string, principal: string, fieldMeta: () => CoverageFieldMeta | undefined, emitter: CoverageEmitter, eager: boolean): CoverageObserver | undefined;
|
|
98
|
+
/** Current accounting, for an operator surface. Estimates, never exact. */
|
|
99
|
+
stats(): readonly CoverageStats[];
|
|
100
|
+
/**
|
|
101
|
+
* Serializable state, for a deployment that wants coverage to survive a
|
|
102
|
+
* restart — the horizon must exceed tenure, and a process does not.
|
|
103
|
+
* ⛔ Sketches only. Never a record id: see {@link CoverageSnapshot}.
|
|
104
|
+
*/
|
|
105
|
+
snapshot(): CoverageSnapshot;
|
|
106
|
+
/**
|
|
107
|
+
* Restore a snapshot. The novelty filter is deliberately NOT restored:
|
|
108
|
+
* novelty is a within-window notion and the window did not survive.
|
|
109
|
+
* Distinct-ever did, which is the quantity that must not reset.
|
|
110
|
+
*/
|
|
111
|
+
restore(snapshot: CoverageSnapshot): void;
|
|
112
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `withCoverage()` — the opt-in read-coverage sensor (#1363).
|
|
3
|
+
*
|
|
4
|
+
* ⛔⛔ **Against an insider holding the device and local keys, this prevents
|
|
5
|
+
* nothing. It makes bulk extraction visible early, attributable and loud. It
|
|
6
|
+
* is telemetry.** The real remediation is key custody — tiers and
|
|
7
|
+
* per-collection DEKs — and this factory is not a substitute for one. Read the
|
|
8
|
+
* sentence again before wiring it into anything that describes itself as a
|
|
9
|
+
* control.
|
|
10
|
+
*
|
|
11
|
+
* @module
|
|
12
|
+
*/
|
|
13
|
+
import { CoverageRegistry } from './accounting.js';
|
|
14
|
+
import type { WithCoverageOptions } from './accounting.js';
|
|
15
|
+
/**
|
|
16
|
+
* Enable coverage accounting for every collection that declares a
|
|
17
|
+
* `bulk: 'sensitive'` field (or that is named in `opts.collections`).
|
|
18
|
+
*
|
|
19
|
+
* ```ts
|
|
20
|
+
* const coverage = withCoverage({ collections: { clients: { corpusSize: 1200, alertAt: [0.6, 0.9] } } })
|
|
21
|
+
* const db = await createNoydb({ user: 'alice', secret, coverageStrategy: coverage })
|
|
22
|
+
* db.on('coverage:threshold', (e) => notifyOwner(e)) // a SIGNAL, never a refusal
|
|
23
|
+
* ```
|
|
24
|
+
*
|
|
25
|
+
* The returned registry is the strategy AND the read surface: `stats()` for a
|
|
26
|
+
* live view, `snapshot()`/`restore()` to carry the coverage horizon across a
|
|
27
|
+
* restart. Nothing it returns can name a record that was read.
|
|
28
|
+
*/
|
|
29
|
+
export declare function withCoverage(opts?: WithCoverageOptions): CoverageRegistry;
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `@noy-db/hub/coverage` — read-coverage sensor (#1363, from the #1251 design).
|
|
3
|
+
*
|
|
4
|
+
* ⛔⛔ **Against an insider holding the device and local keys, this prevents
|
|
5
|
+
* nothing. It makes bulk extraction visible early, attributable and loud. It
|
|
6
|
+
* is telemetry.** The real remediation is key custody (tiers, per-collection
|
|
7
|
+
* DEKs); a coverage alert is a complement to a key boundary and a poor
|
|
8
|
+
* substitute for one.
|
|
9
|
+
*
|
|
10
|
+
* The reframe it implements: the protected quantity for "safe individually,
|
|
11
|
+
* sensitive in bulk" data is **coverage** — the fraction of a corpus a
|
|
12
|
+
* principal has *ever* decrypted — not rate. Rate limiting fails structurally
|
|
13
|
+
* against low-and-slow; patience lowers an extractor's rate and never their
|
|
14
|
+
* coverage. So this service accounts distinct-ever (HyperLogLog), novelty per
|
|
15
|
+
* window (Bloom), served count and burstiness per
|
|
16
|
+
* `(principal, vault, collection)`, and emits `'coverage:threshold'` when
|
|
17
|
+
* declared coverage thresholds are crossed.
|
|
18
|
+
*
|
|
19
|
+
* ⛔ It never refuses a read, and no option to do so may be added: a refusal
|
|
20
|
+
* at a boundary is a threshold the reader can binary-search.
|
|
21
|
+
* ⛔ It never persists a record id. Sketches are the only state.
|
|
22
|
+
* ⚠️ It accounts only LAZY collections (`prefetch: false`). An eager
|
|
23
|
+
* collection decrypts its whole corpus at hydration, which a decrypt-point
|
|
24
|
+
* sensor cannot tell from a read — see `accounting.ts#resolveAccounted`.
|
|
25
|
+
*
|
|
26
|
+
* ## Honeytoken recipe (prose — the cheapest high-signal sensor in the design)
|
|
27
|
+
*
|
|
28
|
+
* Coverage alerting tells you how much of a corpus a principal has seen.
|
|
29
|
+
* A honeytoken tells you, on the FIRST read, that someone is enumerating —
|
|
30
|
+
* and it is immune to rate shaping, because there is no legitimate rate at
|
|
31
|
+
* which a record nobody should open gets opened.
|
|
32
|
+
*
|
|
33
|
+
* 1. Seed a handful of records in the bulk-declared collection that no
|
|
34
|
+
* business process ever addresses: plausible-looking rows with ids no
|
|
35
|
+
* workflow can reach, never referenced by a ref, never in a report.
|
|
36
|
+
* 2. Keep the list of their ids OUTSIDE the vault — in the code or the
|
|
37
|
+
* operator's config. It must never become a queryable "honeytokens"
|
|
38
|
+
* collection: that is a lookup table telling an insider which rows to
|
|
39
|
+
* avoid, i.e. the same second-copy mistake the sketches exist to avoid.
|
|
40
|
+
* 3. Wrap the read path the app already owns and compare the id it is about
|
|
41
|
+
* to serve against that list. Any hit is a high-confidence signal — page
|
|
42
|
+
* the owner, and (with `withHistory()`) append a ledger entry so the
|
|
43
|
+
* detection itself is tamper-evident.
|
|
44
|
+
* 4. Do not refuse the read. Serving it keeps the reader unaware they tripped
|
|
45
|
+
* a sensor, which is the entire value; refusing turns the honeytoken into
|
|
46
|
+
* an oracle for finding the other honeytokens.
|
|
47
|
+
* 5. Rotate them when staff change. A honeytoken whose location has leaked is
|
|
48
|
+
* a honeytoken that reports nothing.
|
|
49
|
+
*
|
|
50
|
+
* ⚠️ Honeytokens detect ENUMERATION, not exfiltration of a known subset. They
|
|
51
|
+
* complement coverage alerting; neither prevents anything.
|
|
52
|
+
*
|
|
53
|
+
* @category capability
|
|
54
|
+
* @module
|
|
55
|
+
*/
|
|
56
|
+
export { withCoverage } from './active.js';
|
|
57
|
+
export { CoverageRegistry } from './accounting.js';
|
|
58
|
+
export type { CoverageCollectionPolicy, CoverageSnapshot, CoverageStats, WithCoverageOptions, } from './accounting.js';
|
|
59
|
+
export { BloomFilter, HyperLogLog } from './sketch.js';
|
|
60
|
+
export type { CoverageEmitter, CoverageEvent, CoverageFieldMeta, CoverageObserver, CoverageStrategy, } from '../../port/with/coverage-strategy.js';
|
|
61
|
+
export { NO_COVERAGE } from '../../port/with/coverage-strategy.js';
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bounded-size sketches for the coverage sensor (#1363).
|
|
3
|
+
*
|
|
4
|
+
* ⚠️ THE WHOLE POINT OF A SKETCH HERE IS WHAT IT CANNOT DO. Coverage state
|
|
5
|
+
* answers *"how much of this corpus has this principal seen"*, and the exact
|
|
6
|
+
* answer — the id set — is a SECOND COPY OF THE SENSITIVE SET. A sensor built
|
|
7
|
+
* to notice bulk extraction would then be the best single artefact to extract.
|
|
8
|
+
* So no structure in this module retains a record id, and none can be
|
|
9
|
+
* enumerated back into one: HyperLogLog keeps per-register leading-zero ranks,
|
|
10
|
+
* Bloom keeps bits. Both are lossy on purpose, and the accuracy that costs is
|
|
11
|
+
* the price of the property (`no-record-ids.test.ts` pins it).
|
|
12
|
+
*
|
|
13
|
+
* @module
|
|
14
|
+
*/
|
|
15
|
+
/**
|
|
16
|
+
* HyperLogLog over `2^precision` one-byte registers.
|
|
17
|
+
*
|
|
18
|
+
* ⭐ SIZING IS THE OPEN QUESTION THIS FEATURE SHIPS WITH, not a settled
|
|
19
|
+
* default. At the scale the design anticipates (~1k records, ~30 principals)
|
|
20
|
+
* the estimator runs entirely in its LINEAR-COUNTING range, where accuracy is
|
|
21
|
+
* a function of load factor rather than of HLL's asymptotic 1.04/√m. So the
|
|
22
|
+
* default is chosen by MEASUREMENT, not theory — `__tests__/coverage/sketch.test.ts`
|
|
23
|
+
* pins the error band this implementation actually produces:
|
|
24
|
+
*
|
|
25
|
+
* | distinct ids | p=10 (1 KiB) | p=12 (4 KiB) | **p=14 (16 KiB, default)** |
|
|
26
|
+
* |---:|---:|---:|---:|
|
|
27
|
+
* | 100 | 3.00% | 1.00% | **0.00%** |
|
|
28
|
+
* | 1 000 | 2.90% | 0.50% | **0.40%** |
|
|
29
|
+
* | 10 000 | 2.34% | 5.62% | **0.96%** |
|
|
30
|
+
* | 50 000 | 2.31% | 1.70% | **1.52%** |
|
|
31
|
+
*
|
|
32
|
+
* (p=12's 5.62% at 10 000 is the linear-counting/raw-estimator crossover, and
|
|
33
|
+
* is exactly why the default is not chosen from the memory column.)
|
|
34
|
+
* 16 KiB is per `(principal, vault, collection)` — a ~30-principal deployment
|
|
35
|
+
* with a handful of bulk-declared collections stays in the low megabytes.
|
|
36
|
+
* `precision` is configurable for a deployment whose corpus is a different
|
|
37
|
+
* order of magnitude.
|
|
38
|
+
*
|
|
39
|
+
* ⛔ An exact per-collection bitmap would be smaller AND exact at that scale.
|
|
40
|
+
* It is not shipped because it leaks ids: bit *i* set means "record *i* was
|
|
41
|
+
* read", which is the second copy this module exists to avoid. Revisit only
|
|
42
|
+
* against a real dataset, and only with that trade stated.
|
|
43
|
+
*/
|
|
44
|
+
export declare class HyperLogLog {
|
|
45
|
+
readonly precision: number;
|
|
46
|
+
private readonly registers;
|
|
47
|
+
constructor(precision?: number);
|
|
48
|
+
add(id: string): void;
|
|
49
|
+
/** Estimated distinct count. */
|
|
50
|
+
count(): number;
|
|
51
|
+
/** Serializable state — registers only. No id, no id-derived key. */
|
|
52
|
+
toJSON(): {
|
|
53
|
+
readonly p: number;
|
|
54
|
+
readonly r: string;
|
|
55
|
+
};
|
|
56
|
+
static fromJSON(state: {
|
|
57
|
+
readonly p: number;
|
|
58
|
+
readonly r: string;
|
|
59
|
+
}): HyperLogLog;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Bloom filter for *novelty per window* — "have I seen this id in this
|
|
63
|
+
* window?". False positives under-report novelty (a novel read is scored as a
|
|
64
|
+
* repeat), which is the safe direction for a sensor that must not cry wolf;
|
|
65
|
+
* false negatives are impossible.
|
|
66
|
+
*/
|
|
67
|
+
export declare class BloomFilter {
|
|
68
|
+
readonly bits: number;
|
|
69
|
+
readonly hashes: number;
|
|
70
|
+
private readonly words;
|
|
71
|
+
constructor(bits?: number, hashes?: number);
|
|
72
|
+
/** Set the id's bits; returns true when the id was NOT already present. */
|
|
73
|
+
addIfAbsent(id: string): boolean;
|
|
74
|
+
clear(): void;
|
|
75
|
+
}
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
*
|
|
33
33
|
* @module
|
|
34
34
|
*/
|
|
35
|
-
import { type EnclaveKey } from '../../
|
|
35
|
+
import { type EnclaveKey } from '../../capsule/index.js';
|
|
36
36
|
import type { NoydbStore, EncryptedEnvelope } from '../../kernel/types.js';
|
|
37
37
|
/** Reserved collection holding the encrypted subject → records index. */
|
|
38
38
|
export declare const SUBJECT_INDEX_COLLECTION = "_subject_index";
|
|
@@ -146,6 +146,7 @@
|
|
|
146
146
|
*/
|
|
147
147
|
import type { NoydbStore, EncryptedEnvelope } from '../../kernel/types.js';
|
|
148
148
|
import type { LedgerStore } from '../../with-commit/history/ledger/index.js';
|
|
149
|
+
import { ValidationError } from '../../kernel/errors.js';
|
|
149
150
|
export { PERIODS_COLLECTION, PERIOD_FREEZES_COLLECTION, PERIOD_ARCHIVES_COLLECTION, PERIOD_TARGET_PURGES_COLLECTION, PERIOD_REOPENS_COLLECTION, periodExclusiveUpperBound, } from './window.js';
|
|
150
151
|
/**
|
|
151
152
|
* Companion record recording that a closed period was frozen (its delete
|
|
@@ -398,9 +399,25 @@ export interface ClosePeriodOptions {
|
|
|
398
399
|
/** Human-readable name. Must not collide with an existing period. */
|
|
399
400
|
readonly name: string;
|
|
400
401
|
/**
|
|
401
|
-
* Inclusive upper cutoff.
|
|
402
|
-
* `record[dateField]`
|
|
403
|
-
*
|
|
402
|
+
* Inclusive upper cutoff. With a `dateField`, a record is sealed when its
|
|
403
|
+
* `record[dateField]` is at or before this ISO timestamp; a record with
|
|
404
|
+
* NO value there (absent / `null`) carries no business date and belongs
|
|
405
|
+
* to no period, and a value that is neither an ISO string nor a `Date`
|
|
406
|
+
* is refused (#1455). Without a `dateField`, the envelope `_ts` of the
|
|
407
|
+
* stored record is compared instead.
|
|
408
|
+
*
|
|
409
|
+
* ⚠️ String comparison is lexicographic: keep `endDate` and the field in
|
|
410
|
+
* one ISO-8601 shape (`YYYY-MM-DD` against `YYYY-MM-DD`, or full
|
|
411
|
+
* timestamps against full timestamps).
|
|
412
|
+
*
|
|
413
|
+
* ⛔ **Zero-padding is now ENFORCED on both sides (#1459), because that
|
|
414
|
+
* warning was not enough.** `'2026-6-30'` names a real day and is refused
|
|
415
|
+
* anyway: as text it sorts BELOW every June date, so the close would seal
|
|
416
|
+
* nothing and report success — and symmetrically a record dated
|
|
417
|
+
* `'2026-6-15'` sorted ABOVE `'2026-06-30'` and was written into a sealed
|
|
418
|
+
* June. Both are `ValidationError` now, at the close and at the write,
|
|
419
|
+
* rather than a silent pass or a `PeriodClosedError` that fired for a reason
|
|
420
|
+
* unrelated to dates.
|
|
404
421
|
*/
|
|
405
422
|
readonly endDate: string;
|
|
406
423
|
/**
|
|
@@ -502,6 +519,17 @@ export interface ReadOnlyCollection<T> {
|
|
|
502
519
|
* cache. Not part of the public API surface.
|
|
503
520
|
*/
|
|
504
521
|
export declare function loadPeriods(adapter: NoydbStore, vault: string, decrypt: (id: string, envelope: EncryptedEnvelope) => Promise<PeriodRecord>): Promise<PeriodRecord[]>;
|
|
522
|
+
/** sha256(canonicalJson(record)) over the STORED shape of a period record. @internal */
|
|
523
|
+
export declare function hashStoredPeriod(period: PeriodRecord): Promise<string>;
|
|
524
|
+
/**
|
|
525
|
+
* #1454 — every record's `priorPeriodName` / `priorPeriodHash` must resolve to
|
|
526
|
+
* a stored predecessor in ITS timeline whose hash matches. Followed by name,
|
|
527
|
+
* not by sort position: two closes within one millisecond sort arbitrarily,
|
|
528
|
+
* and a deleted predecessor must read as a break, not as a new root.
|
|
529
|
+
*
|
|
530
|
+
* @internal
|
|
531
|
+
*/
|
|
532
|
+
export declare function verifyPeriodChain(records: readonly PeriodRecord[]): Promise<void>;
|
|
505
533
|
/**
|
|
506
534
|
* Given the current ordered period list, pick the last entry that
|
|
507
535
|
* belongs to the hash chain — used as the `priorPeriodHash` anchor
|
|
@@ -513,22 +541,42 @@ export declare function chainAnchor(records: readonly PeriodRecord[], partition?
|
|
|
513
541
|
priorPeriodName?: string;
|
|
514
542
|
priorPeriodHash: string;
|
|
515
543
|
}>;
|
|
544
|
+
/**
|
|
545
|
+
* @internal #1459 — is `value` a business date that can be compared against an
|
|
546
|
+
* `endDate` and give the calendar's answer?
|
|
547
|
+
*/
|
|
548
|
+
export declare function isOrderableBusinessDate(value: string): boolean;
|
|
549
|
+
/**
|
|
550
|
+
* @internal #1459 — the refusal, phrased once so the guard and `closePeriod()`
|
|
551
|
+
* cannot drift on what "malformed" means or on how they say it.
|
|
552
|
+
*/
|
|
553
|
+
export declare function malformedBusinessDate(where: string, value: string): ValidationError;
|
|
516
554
|
/**
|
|
517
555
|
* Throw `PeriodClosedError` if the record being touched falls within
|
|
518
556
|
* any closed period.
|
|
519
557
|
*
|
|
520
|
-
*
|
|
558
|
+
* Per period, per side (existing record / incoming record):
|
|
521
559
|
*
|
|
522
560
|
* 1. If the period declares a `dateField`, the guard reads
|
|
523
561
|
* `record[dateField]` on BOTH the existing (prior) record AND the
|
|
524
|
-
* incoming (new) record. Either comparing
|
|
525
|
-
* the error — callers cannot slide a record into a
|
|
526
|
-
* by editing its date field.
|
|
562
|
+
* incoming (new) record, each under its OWN partition. Either comparing
|
|
563
|
+
* `<= endDate` triggers the error — callers cannot slide a record into a
|
|
564
|
+
* closed period by editing its date field.
|
|
565
|
+
* #1455 — value shapes: a string is compared as-is (ISO-8601 assumed —
|
|
566
|
+
* the comparison is lexicographic); a `Date` is compared as the ISO string
|
|
567
|
+
* it will be stored as; `undefined` / `null` means the record carries no
|
|
568
|
+
* business date and belongs to NO period; anything else is REFUSED with
|
|
569
|
+
* `ValidationError` — a date the gate cannot evaluate is not a permission.
|
|
527
570
|
* 2. If the period has no `dateField`, the guard falls back to the
|
|
528
571
|
* envelope `_ts` of the existing record. Fresh inserts (no
|
|
529
572
|
* existing envelope) pass.
|
|
530
573
|
* 3. For a delete, only the existing side is checked.
|
|
531
574
|
*
|
|
575
|
+
* #1456 — a value is OWNED by the closed period in its timeline with the
|
|
576
|
+
* smallest `endDate` at or after it. When that owner is effectively reopened,
|
|
577
|
+
* no later close vetoes the value: reopening January frees January-dated
|
|
578
|
+
* rows even with February and March closed, and February's rows stay sealed.
|
|
579
|
+
*
|
|
532
580
|
* @internal
|
|
533
581
|
*/
|
|
534
582
|
export declare function assertTsWritable(existing: {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type EnclaveKey } from '../../
|
|
1
|
+
import { type EnclaveKey } from '../../capsule/index.js';
|
|
2
2
|
import type { NoydbStore } from '../../kernel/types.js';
|
|
3
3
|
import type { LedgerStore } from '../../with-commit/history/ledger/store.js';
|
|
4
4
|
import type { Collection } from '../../kernel/collection.js';
|
|
@@ -166,6 +166,23 @@ export declare class VaultPeriods {
|
|
|
166
166
|
private mergeReopenState;
|
|
167
167
|
/** Resolve one period within the timeline named by `options` (vault-wide when absent). */
|
|
168
168
|
private findPeriod;
|
|
169
|
+
/**
|
|
170
|
+
* #1439 — could a closed period govern this record? Synchronous, and
|
|
171
|
+
* deliberately a SUPERSET of what {@link assertTsWritable} would refuse.
|
|
172
|
+
*
|
|
173
|
+
* Exists so a caller can tell "the period gate is registered" from "the
|
|
174
|
+
* period gate can fire for this row". Those were conflated, and the cost was
|
|
175
|
+
* that installing `withPeriods()` disabled an unrelated optimisation for
|
|
176
|
+
* every collection in the vault — with no period closed and no collection
|
|
177
|
+
* registered as a subject (#1439, measured: 0 → 250 redundant MV writes per
|
|
178
|
+
* source write).
|
|
179
|
+
*
|
|
180
|
+
* ⛔ Answers `true` whenever it cannot rule the gate out: the cache is not
|
|
181
|
+
* loaded yet, a closed period has no `dateField` to test against, or no row
|
|
182
|
+
* was supplied. A predicate that exists to permit an optimisation must fail
|
|
183
|
+
* towards "the gate applies", never away from it.
|
|
184
|
+
*/
|
|
185
|
+
couldGovern(record?: Record<string, unknown>): boolean;
|
|
169
186
|
/** Called by the gate bus before put/delete. `collection` selects the subject mapping (#1005). */
|
|
170
187
|
assertTsWritable(existing: {
|
|
171
188
|
ts: string | null;
|
|
@@ -57,8 +57,8 @@ export { SealedRecordNotEnabledError } from '../../kernel/errors.js';
|
|
|
57
57
|
* opens, even with a valid sealed CEK.
|
|
58
58
|
*/
|
|
59
59
|
export declare function openSealedRecord(sealedCekEnvelope: SealedCekDeliveryEnvelope, recordEnvelope: {
|
|
60
|
-
readonly _iv
|
|
61
|
-
readonly _data
|
|
60
|
+
readonly _iv?: string;
|
|
61
|
+
readonly _data?: string;
|
|
62
62
|
/** Bound into the AAD since #1093 — a rewound body no longer opens. */
|
|
63
63
|
readonly _v: number;
|
|
64
64
|
readonly _tier?: number | undefined;
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
* stays ungated). Only the vault-side grantor operations are the capability.
|
|
13
13
|
* @internal
|
|
14
14
|
*/
|
|
15
|
-
import type { SealingContext } from '../../
|
|
15
|
+
import type { SealingContext } from '../../capsule/index.js';
|
|
16
16
|
import type { RecipientSealer } from '../../with-party/team/managed-secret.js';
|
|
17
17
|
export interface SealedRecordStrategy {
|
|
18
18
|
sealRecordToHost(ctx: SealingContext, collection: string, id: string, hostSealer: RecipientSealer, opts: {
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
export { withTiers } from './active.js';
|
|
24
24
|
export { NO_TIERS, type TiersStrategy } from './strategy.js';
|
|
25
25
|
export { TiersNotEnabledError } from '../../kernel/errors.js';
|
|
26
|
-
import { type RecordIdentity, type RecordCodec, type EnclaveKey, type SealedShredSlot } from '../../
|
|
26
|
+
import { type RecordIdentity, type RecordCodec, type EnclaveKey, type SealedShredSlot } from '../../capsule/index.js';
|
|
27
27
|
import type { UnlockedKeyring } from '../../with-party/team/keyring.js';
|
|
28
28
|
import type { Lru } from '../../kernel/cache/index.js';
|
|
29
29
|
import type { BlobFieldsConfig } from '../../with-shape/blobs/blob-compaction.js';
|
|
@@ -36,6 +36,25 @@ export interface TiersContext<T> {
|
|
|
36
36
|
readonly vault: string;
|
|
37
37
|
/** The ciphertext store. */
|
|
38
38
|
readonly adapter: NoydbStore;
|
|
39
|
+
/**
|
|
40
|
+
* #1358 — the unique-constraint keys a record occupies, or `[]` when the
|
|
41
|
+
* record is exempt (null-distinct) . `undefined` when the collection
|
|
42
|
+
* declares no `unique` index, which is what makes the tier scan free for
|
|
43
|
+
* every other collection. Deliberately a plain callback rather than the
|
|
44
|
+
* `UniqueConstraintSet` itself: the tier domain must not import the
|
|
45
|
+
* indexing domain, and this is the whole of what it needs.
|
|
46
|
+
*/
|
|
47
|
+
readonly uniqueKeys?: ((record: unknown) => ReadonlyArray<{
|
|
48
|
+
readonly fields: readonly string[];
|
|
49
|
+
readonly key: string;
|
|
50
|
+
}>) | undefined;
|
|
51
|
+
/**
|
|
52
|
+
* #1358 — the collection's own tier-0 unique pre-flight (the eager map or
|
|
53
|
+
* the lazy `_idx/` probe). `putAtTier` runs it before its write because it
|
|
54
|
+
* bypasses `Collection.put()` entirely; the tier-0 `put()` path calls it
|
|
55
|
+
* directly and does not need this. `undefined` ⇒ no unique index declared.
|
|
56
|
+
*/
|
|
57
|
+
readonly checkUniqueLocal?: ((id: string, record: unknown) => Promise<void>) | undefined;
|
|
39
58
|
/** The caller's unlocked keyring (tier-DEK holdings + role + userId). */
|
|
40
59
|
readonly keyring: UnlockedKeyring;
|
|
41
60
|
/** The record codec — decrypts a tier-0 envelope to T. */
|
|
@@ -367,6 +386,38 @@ export declare function putAtTier<T>(ctx: TiersContext<T>, id: string, record: T
|
|
|
367
386
|
* when `_tier > 0`.
|
|
368
387
|
*/
|
|
369
388
|
export declare function getAtTier<T>(ctx: TiersContext<T>, id: string): Promise<T | GhostRecord | null>;
|
|
389
|
+
/**
|
|
390
|
+
* Unique-constraint enforcement across TIERS (#1358).
|
|
391
|
+
*
|
|
392
|
+
* The in-memory / persisted mirrors that back ordinary unique enforcement
|
|
393
|
+
* hold TIER-0 records only — #709 purges an elevated record's index entries
|
|
394
|
+
* precisely so elevation actually hides its field values. That is correct,
|
|
395
|
+
* and it is also exactly why a tier-0 `put()` would otherwise be free to
|
|
396
|
+
* re-take a value an elevated record still holds. This closes that by
|
|
397
|
+
* scanning the above-tier records the writer can decrypt.
|
|
398
|
+
*
|
|
399
|
+
* ## The guarantee, stated exactly
|
|
400
|
+
*
|
|
401
|
+
* Uniqueness is enforced across **every tier whose DEK this writer holds**.
|
|
402
|
+
* A tier the writer cannot read is **outside the guarantee**: those records
|
|
403
|
+
* are not merely skipped-with-a-warning, they are unreadable, so no local
|
|
404
|
+
* check of any design can see them. A duplicate against such a record is
|
|
405
|
+
* accepted, and stays accepted. Do not describe this as "enforced across all
|
|
406
|
+
* tiers" anywhere.
|
|
407
|
+
*
|
|
408
|
+
* ## Cost
|
|
409
|
+
*
|
|
410
|
+
* Zero for a collection with no unique index (`ctx.uniqueKeys` is undefined
|
|
411
|
+
* and this returns immediately) and for one with no elevated records (the
|
|
412
|
+
* scan reads envelope headers only until it meets a `_tier > 0` row it can
|
|
413
|
+
* read). On a tiered collection that DOES hold both, it is a list + get per
|
|
414
|
+
* write — the price of the guarantee, paid only where it was asked for.
|
|
415
|
+
*
|
|
416
|
+
* No cross-tier ACCESS event is emitted per scanned record: this is a
|
|
417
|
+
* constraint pre-flight over material the writer is already cleared for, not
|
|
418
|
+
* a read the caller asked for. The write it gates emits its own event.
|
|
419
|
+
*/
|
|
420
|
+
export declare function checkUniqueAcrossTiers<T>(ctx: TiersContext<T>, id: string, record: T): Promise<void>;
|
|
370
421
|
/**
|
|
371
422
|
* list ids grouped by the caller's readability. Returns only ids whose tier the
|
|
372
423
|
* caller can read. Above-tier ids are omitted in `'invisibility'` mode and
|
|
@@ -407,4 +458,4 @@ export declare function demote<T>(ctx: TiersContext<T>, id: string, toTier: numb
|
|
|
407
458
|
export declare function classifySealedShred<T>(ctx: TiersContext<T>, live: EncryptedEnvelope): Promise<{
|
|
408
459
|
readonly slots: readonly SealedShredSlot[];
|
|
409
460
|
}>;
|
|
410
|
-
export type { SealedShredSlot } from '../../
|
|
461
|
+
export type { SealedShredSlot } from '../../capsule/index.js';
|
|
@@ -27,6 +27,14 @@ export interface TiersStrategy {
|
|
|
27
27
|
}>>;
|
|
28
28
|
elevate<T>(ctx: TiersContext<T>, id: string, toTier: number): Promise<TierMoveResult>;
|
|
29
29
|
demote<T>(ctx: TiersContext<T>, id: string, toTier: number): Promise<TierMoveResult>;
|
|
30
|
+
/**
|
|
31
|
+
* #1358 — unique-constraint scan across every tier whose DEK the writer
|
|
32
|
+
* holds. Called by the ORDINARY `Collection.put()` on a tiered collection
|
|
33
|
+
* (`putAtTier` calls the core directly): the tier-0 mirror cannot see an
|
|
34
|
+
* elevated record, because #709 purges its index entries on elevation.
|
|
35
|
+
* A tier the writer cannot read is outside the guarantee.
|
|
36
|
+
*/
|
|
37
|
+
checkUnique<T>(ctx: TiersContext<T>, id: string, record: T): Promise<void>;
|
|
30
38
|
}
|
|
31
39
|
/**
|
|
32
40
|
* No-op stub — the floor default. Every capability method throws
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
*
|
|
8
8
|
* @module
|
|
9
9
|
*/
|
|
10
|
-
import { type EnclaveKey } from '../
|
|
10
|
+
import { type EnclaveKey } from '../capsule/index.js';
|
|
11
11
|
import type { NoydbStore } from '../kernel/types.js';
|
|
12
12
|
import type { NoydbSealer } from '../with-party/team/managed-secret.js';
|
|
13
13
|
import type { NoydbShamir } from '../with-party/team/noydb-shamir.js';
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
*/
|
|
9
9
|
import type { Vault } from '../kernel/vault.js';
|
|
10
10
|
import type { EncryptedEnvelope } from '../kernel/types.js';
|
|
11
|
-
import { type EnclaveKey } from '../
|
|
11
|
+
import { type EnclaveKey } from '../capsule/index.js';
|
|
12
12
|
import { type WalkClosureOptions, type DanglingRefNotice } from './walk-closure.js';
|
|
13
13
|
import { type TransferSealPayload } from '../with-pod/pod.js';
|
|
14
14
|
/** Re-keyed collections snapshot + the fresh DEKs used. */
|
|
@@ -13,7 +13,7 @@ export { readPath } from '../kernel/query/predicate.js';
|
|
|
13
13
|
export { reduceRecords } from '../with-lookup/reduce/reduction.js';
|
|
14
14
|
export { groupAndReduce } from '../with-lookup/reduce/groupby.js';
|
|
15
15
|
export { generateULID } from '../with-pod/ulid.js';
|
|
16
|
-
export { sha256Hex } from '../
|
|
16
|
+
export { sha256Hex } from '../capsule/index.js';
|
|
17
17
|
export { isQuorum, runDrainBarrier } from '../port/by/index.js';
|
|
18
18
|
export { fuseRetrieval } from '../with-lookup/search/fuse.js';
|
|
19
19
|
export { CrossShardJoinError, DataResidencyError, NoAccessError, ReservedVaultNameError, ShardProvisioningError, UnknownShardError, ValidationError, VaultTemplateNotFoundError, } from '../kernel/errors.js';
|
|
@@ -24,8 +24,8 @@ export type { Collection } from '../kernel/collection.js';
|
|
|
24
24
|
export type { Noydb } from '../kernel/noydb.js';
|
|
25
25
|
export type { Operator } from '../kernel/query/predicate.js';
|
|
26
26
|
export type { Query } from '../kernel/query/builder.js';
|
|
27
|
-
export type { JoinStrategy } from '../kernel/query/join.js';
|
|
28
|
-
export type { LiveQuery } from '../kernel/query/live.js';
|
|
27
|
+
export type { JoinStrategy } from '../kernel/query/relate/join.js';
|
|
28
|
+
export type { LiveQuery } from '../kernel/query/live/live.js';
|
|
29
29
|
export type { ReduceResult, ReduceSpec, LiveReduction, } from '../with-lookup/reduce/reduction.js';
|
|
30
30
|
export type { IndexDef } from '../with-lookup/indexing/eager-indexes.js';
|
|
31
31
|
export type { FuseOptions } from '../with-lookup/search/fuse.js';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type { RecordIdentity } from '../../
|
|
1
|
+
import type { RecordIdentity } from '../../capsule/index.js';
|
|
2
2
|
import type { NoydbStore, EncryptedEnvelope, HistoryOptions, PruneOptions } from '../../kernel/types.js';
|
|
3
|
-
import { type EnclaveKey } from '../../
|
|
3
|
+
import { type EnclaveKey } from '../../capsule/index.js';
|
|
4
4
|
/**
|
|
5
5
|
* The identity a history snapshot is **sealed against** — its STORAGE location,
|
|
6
6
|
* not the live record it is a copy of (#1041).
|
|
@@ -30,4 +30,4 @@ export { VaultInstant, CollectionInstant } from './time-machine.js';
|
|
|
30
30
|
export type { VaultEngine } from './time-machine.js';
|
|
31
31
|
/** The un-opted-in stub for this service — exported so callers can compare against it (#844). */
|
|
32
32
|
export { NO_HISTORY } from './strategy.js';
|
|
33
|
-
export type { RecordIdentity } from '../../
|
|
33
|
+
export type { RecordIdentity } from '../../capsule/index.js';
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
* puts via `collection('_ledger')` would bypass the `append()` logic.
|
|
45
45
|
*/
|
|
46
46
|
import type { NoydbStore } from '../../../kernel/types.js';
|
|
47
|
-
import { type EnclaveKey } from '../../../
|
|
47
|
+
import { type EnclaveKey } from '../../../capsule/index.js';
|
|
48
48
|
import { type LedgerEntry } from './entry.js';
|
|
49
49
|
import type { JsonPatch } from './patch.js';
|
|
50
50
|
import { LEDGER_COLLECTION, LEDGER_DELTAS_COLLECTION } from './constants.js';
|
|
@@ -33,7 +33,7 @@ import type { LedgerStore } from './ledger/store.js';
|
|
|
33
33
|
import type { JsonPatch } from './ledger/patch.js';
|
|
34
34
|
import type { DiffEntry } from './diff.js';
|
|
35
35
|
import type { VaultInstant, VaultEngine } from './time-machine.js';
|
|
36
|
-
import type { EnclaveKey, RecordIdentity } from '../../
|
|
36
|
+
import type { EnclaveKey, RecordIdentity } from '../../capsule/index.js';
|
|
37
37
|
/**
|
|
38
38
|
* Options accepted by `HistoryStrategy.buildLedger`. Mirrors the
|
|
39
39
|
* `LedgerStore` constructor verbatim — kept in this file so `core`
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
*/
|
|
49
49
|
import type { NoydbStore } from '../../kernel/types.js';
|
|
50
50
|
import type { LedgerStore } from './ledger/store.js';
|
|
51
|
-
import { type EnclaveKey } from '../../
|
|
51
|
+
import { type EnclaveKey } from '../../capsule/index.js';
|
|
52
52
|
/**
|
|
53
53
|
* Narrow view of a {@link Vault}'s internals that
|
|
54
54
|
* {@link VaultInstant} needs. Passed in by `Vault.at()` rather than
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { NoydbStore } from '../../kernel/types.js';
|
|
2
|
-
import { type EnclaveKey } from '../../
|
|
2
|
+
import { type EnclaveKey } from '../../capsule/index.js';
|
|
3
3
|
import type { DeferredNumberingConfig } from './descriptor.js';
|
|
4
4
|
export declare const NUMBERING_HEAD_COLLECTION = "_numbering_head";
|
|
5
5
|
export declare const NUMBERING_PENDING_COLLECTION = "_numbering_pending";
|