@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
|
@@ -1,26 +1,28 @@
|
|
|
1
1
|
import {
|
|
2
2
|
blindedEqual,
|
|
3
|
-
|
|
3
|
+
dualReadSealedSlot,
|
|
4
4
|
openVdigPayload
|
|
5
|
-
} from "./chunk-
|
|
6
|
-
import {
|
|
7
|
-
dualReadSealedSlot
|
|
8
|
-
} from "./chunk-BTDR2PXY.js";
|
|
5
|
+
} from "./chunk-5KC7QYEC.js";
|
|
9
6
|
import {
|
|
10
7
|
VDIG_ITERATIONS,
|
|
11
|
-
normalizeForVerify,
|
|
12
8
|
pbkdf2VerifyDigest
|
|
13
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-EZOAKKTB.js";
|
|
10
|
+
import {
|
|
11
|
+
evaluateKofN
|
|
12
|
+
} from "./chunk-NH2UOV3B.js";
|
|
13
|
+
import "./chunk-42ALPZ2B.js";
|
|
14
14
|
import {
|
|
15
15
|
base64ToBuffer,
|
|
16
|
-
generateSalt
|
|
17
|
-
|
|
16
|
+
generateSalt,
|
|
17
|
+
normalizeForVerify
|
|
18
|
+
} from "./chunk-QMWY2FDS.js";
|
|
19
|
+
import "./chunk-SV2PM2OY.js";
|
|
18
20
|
import {
|
|
19
21
|
ClassifiedConfigError,
|
|
20
22
|
ClassifiedVerifyError
|
|
21
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-37EPTBBR.js";
|
|
22
24
|
|
|
23
|
-
// src/
|
|
25
|
+
// src/capsule/enclave-aes/classify/verify.ts
|
|
24
26
|
async function padOnce(iter = VDIG_ITERATIONS) {
|
|
25
27
|
const dummy = await pbkdf2VerifyDigest("noydb-classify-c4-pad", generateSalt(), iter);
|
|
26
28
|
await blindedEqual(dummy, dummy);
|
|
@@ -136,4 +138,4 @@ export {
|
|
|
136
138
|
verifyDigestField,
|
|
137
139
|
verifyTextField
|
|
138
140
|
};
|
|
139
|
-
//# sourceMappingURL=verify-
|
|
141
|
+
//# sourceMappingURL=verify-UKALW7C2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/capsule/enclave-aes/classify/verify.ts"],"sourcesContent":["/**\n * The enclave verify oracle (spec §3). Verdict-only egress: no path\n * distinguishes \"record missing\" / \"no digest\" / \"AAD-tamper\" / \"mismatch\"\n * beyond { ok: false } — existence oracles are oracles too. Every path that\n * cannot run a real comparison runs ONE dummy PBKDF2 + ONE dummy tag-compare\n * first (C4), so wall-clock cannot enumerate records/fields/answers. The\n * text door (verifyTextField) has no real PBKDF2 of its own, so it pays the\n * pad UNCONDITIONALLY — every outcome, including a real compare, costs the\n * same one PBKDF2 unit (no inverted exists-vs-absent oracle).\n * Elevated records (_tier > 0, with-audit tier moves) are non-comparable\n * through every door and pad-false exactly like missing records (#691) —\n * the tier-aware read surface is getAtTier, never verify.\n * Throws are reserved for caller/config bugs (ClassifiedVerifyError /\n * ClassifiedConfigError) and are exempt from the pad by design (R6 note).\n * @module\n */\nimport { type EnclaveKey } from '../crypto.js'\nimport { generateSalt, base64ToBuffer } from '../../plumbing/digest.js'\nimport { pbkdf2VerifyDigest, VDIG_ITERATIONS } from './digest.js'\nimport { normalizeForVerify, type VerifyNormalizeMode } from '../../plumbing/normalize.js'\nimport { blindedEqual } from './compare.js'\nimport { evaluateKofN } from '../../plumbing/kofn.js'\nimport { openVdigPayload, type VdigPayload } from './vdig.js'\nimport { dualReadSealedSlot } from '../bound.js'\nimport { ClassifiedConfigError, ClassifiedVerifyError } from '../../../kernel/errors.js'\nimport type { EncryptedEnvelope, VdigFieldPolicy, ClassifiedVerdict } from '../../../kernel/types.js'\n\nexport interface VerifyEngineCtx {\n readonly collection: string\n getEnvelope(id: string): Promise<EncryptedEnvelope | null>\n resolveCek(env: EncryptedEnvelope): Promise<EnclaveKey | undefined>\n getDEK(): Promise<EnclaveKey>\n readonly now: () => number\n}\n\n/**\n * C4 pad: one full-cost dummy digest + one dummy compare; result discarded.\n * Pad at `iter` when the caller holds an AUTHENTICATED payload.iter, so pad\n * cost tracks the real compare cost across future iteration bumps; the\n * fully-absent paths (no payload to read an iter from) use VDIG_ITERATIONS.\n */\nasync function padOnce(iter: number = VDIG_ITERATIONS): Promise<void> {\n const dummy = await pbkdf2VerifyDigest('noydb-classify-c4-pad', generateSalt(), iter)\n await blindedEqual(dummy, dummy)\n}\n\nasync function padFalse(): Promise<ClassifiedVerdict> {\n await padOnce()\n return { ok: false }\n}\n\n/** R6 verify-side transition evidence — config bug, fail-loud, pad-exempt. */\nfunction refuseSealedResidue(collection: string, field: string): never {\n throw new ClassifiedConfigError(collection,\n `field \"${field}\" carries a recoverable _sealed slot but no _vdig — storage-form ` +\n `transition detected (R6); refused fail-loud, never an ok:false masquerading as wrong-password`)\n}\n\nexport async function verifyDigestField(\n ctx: VerifyEngineCtx,\n id: string,\n field: string,\n candidate: string,\n policy: VdigFieldPolicy,\n): Promise<ClassifiedVerdict> {\n const env = await ctx.getEnvelope(id)\n // #691: an elevated envelope (_tier > 0) is non-comparable through every\n // tier-0 door — its key material is tier-DEK-wrapped and must never be\n // resolved here (the elevating session's warm cekCache would otherwise\n // leak past the tier audit). Exactly the missing-record pad path, checked\n // BEFORE the R6 residue probe so tier-0 callers learn nothing.\n if (env === null || (env._tier ?? 0) > 0) return padFalse()\n const blob = env._vdig?.[field]\n if (blob === undefined) {\n if (env._sealed?.[field] !== undefined) refuseSealedResidue(ctx.collection, field)\n return padFalse()\n }\n const cek = await ctx.resolveCek(env)\n if (cek === undefined) return padFalse()\n\n let payload: VdigPayload\n try {\n payload = await openVdigPayload(blob, cek, ctx.collection, id, field)\n } catch {\n return padFalse() // AAD/tamper (C1) → padded false; no tamper oracle to the caller\n }\n\n const normalized = normalizeForVerify(policy.normalize, candidate)\n const digest = await pbkdf2VerifyDigest(normalized, base64ToBuffer(payload.cur.salt), payload.iter)\n const ok = await blindedEqual(digest, base64ToBuffer(payload.cur.hash))\n if (!ok) return { ok: false } // I1: bare false — mustRotate never computed here\n\n if (policy.rotateDays !== undefined\n && ctx.now() > Date.parse(payload.cur.at) + policy.rotateDays * 86_400_000) {\n // Disclosing write-age-vs-policy to a SUCCESSFUL verifier is intended (audit F6).\n return { ok: true, mustRotate: true }\n }\n return { ok: true }\n}\n\nexport async function verifyTextField(\n ctx: VerifyEngineCtx,\n id: string,\n field: string,\n candidate: string,\n normalize: VerifyNormalizeMode,\n): Promise<ClassifiedVerdict> {\n // C4, single code path: (a) attempt the unseal where a slot exists, then\n // for EVERY outcome — present-correct, present-wrong, missing record,\n // missing slot, tampered — (b) run the one constant-cost pad, (c) run one\n // blindedEqual, (d) return the boolean. Unlike the digest door there is no\n // real PBKDF2 here (unseal is sub-ms AES-GCM), so skipping the pad on the\n // real compare would make exists-but-wrong ~100x FASTER than absent — an\n // inverted existence oracle. No branch below skips the dominant cost.\n const env = await ctx.getEnvelope(id)\n const blob = env?._sealed?.[field]\n let stored: string | undefined\n if (env !== null && (env._tier ?? 0) === 0 && blob !== undefined) { // #691: elevated ≡ missing\n const cek = await ctx.resolveCek(env)\n const dek = await ctx.getDEK()\n try {\n // Plaintext exists microseconds inside this function; only the boolean leaves.\n stored = String(JSON.parse(await dualReadSealedSlot(blob, field, ctx.collection, cek, dek)))\n } catch {\n stored = undefined // AAD/tamper (C1) → same padded compare tail as absent\n }\n }\n await padOnce()\n const a = new TextEncoder().encode(normalizeForVerify(normalize, candidate))\n const b = stored !== undefined\n ? new TextEncoder().encode(normalizeForVerify(normalize, stored))\n : a // no-compare dummy comparand — the verdict is forced false below\n const eq = await blindedEqual(a, b)\n return { ok: stored !== undefined && eq }\n}\n\nexport async function matchGroupFields(\n ctx: VerifyEngineCtx,\n id: string,\n answers: Record<string, string>,\n members: ReadonlyArray<{ readonly field: string; readonly policy: VdigFieldPolicy }>,\n opts: { readonly min: number },\n): Promise<{ readonly passed: boolean }> {\n // I2 step 1 — validate EVERYTHING up front, before any PBKDF2, throwing\n // uniformly at ~0 elapsed (no member-position leak via timing/throw type).\n if (!Number.isInteger(opts.min) || opts.min < 1 || opts.min > members.length) {\n throw new ClassifiedVerifyError(ctx.collection, '*',\n `matchGroup min ${opts.min} out of range 1..${members.length}`)\n }\n const normalized = new Map<string, string>()\n for (const m of members) {\n const answer = answers[m.field] // non-member answer keys: silently ignored\n if (answer === undefined) continue\n if (typeof answer !== 'string') {\n throw new ClassifiedVerifyError(ctx.collection, m.field, 'candidate must be a string')\n }\n normalized.set(m.field, normalizeForVerify(m.policy.normalize, answer))\n }\n\n const fetched = await ctx.getEnvelope(id)\n // #691: elevated ≡ missing — nulling the view here also skips the R6\n // residue probe (a tier-0 caller must not learn an elevated record's\n // storage form) and forces the cek-undefined pad path for every member.\n const env = fetched === null || (fetched._tier ?? 0) > 0 ? null : fetched\n if (env !== null) {\n for (const m of members) { // R6 evidence — uniform, before any PBKDF2\n if (env._sealed?.[m.field] !== undefined && env._vdig?.[m.field] === undefined) {\n refuseSealedResidue(ctx.collection, m.field)\n }\n }\n }\n const cek = env !== null ? await ctx.resolveCek(env) : undefined\n\n // I2 step 2+3 — iterate RESOLVED GROUP MEMBERS (denominator = |members|),\n // evaluate EVERY member (collect, never break), pad every no-compare slot.\n const results: boolean[] = []\n for (const m of members) {\n const candidate = normalized.get(m.field)\n const blob = env?._vdig?.[m.field]\n if (env === null || cek === undefined || blob === undefined) {\n await padOnce()\n results.push(false)\n continue\n }\n try {\n const payload = await openVdigPayload(blob, cek, ctx.collection, id, m.field)\n if (candidate === undefined) {\n // Slot present, answer absent: the payload's authenticated iter is in\n // hand — pad at IT (not the constant) so a future iteration bump\n // cannot desync this pad's cost from the real compare's cost.\n await padOnce(payload.iter)\n results.push(false)\n continue\n }\n const digest = await pbkdf2VerifyDigest(candidate, base64ToBuffer(payload.cur.salt), payload.iter)\n results.push(await blindedEqual(digest, base64ToBuffer(payload.cur.hash)))\n } catch {\n await padOnce()\n results.push(false)\n }\n }\n // Per-member results never appear in any return, error, or audit payload.\n return { passed: evaluateKofN(results, opts.min) }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAyCA,eAAe,QAAQ,OAAe,iBAAgC;AACpE,QAAM,QAAQ,MAAM,mBAAmB,yBAAyB,aAAa,GAAG,IAAI;AACpF,QAAM,aAAa,OAAO,KAAK;AACjC;AAEA,eAAe,WAAuC;AACpD,QAAM,QAAQ;AACd,SAAO,EAAE,IAAI,MAAM;AACrB;AAGA,SAAS,oBAAoB,YAAoB,OAAsB;AACrE,QAAM,IAAI;AAAA,IAAsB;AAAA,IAC9B,UAAU,KAAK;AAAA,EACgF;AACnG;AAEA,eAAsB,kBACpB,KACA,IACA,OACA,WACA,QAC4B;AAC5B,QAAM,MAAM,MAAM,IAAI,YAAY,EAAE;AAMpC,MAAI,QAAQ,SAAS,IAAI,SAAS,KAAK,EAAG,QAAO,SAAS;AAC1D,QAAM,OAAO,IAAI,QAAQ,KAAK;AAC9B,MAAI,SAAS,QAAW;AACtB,QAAI,IAAI,UAAU,KAAK,MAAM,OAAW,qBAAoB,IAAI,YAAY,KAAK;AACjF,WAAO,SAAS;AAAA,EAClB;AACA,QAAM,MAAM,MAAM,IAAI,WAAW,GAAG;AACpC,MAAI,QAAQ,OAAW,QAAO,SAAS;AAEvC,MAAI;AACJ,MAAI;AACF,cAAU,MAAM,gBAAgB,MAAM,KAAK,IAAI,YAAY,IAAI,KAAK;AAAA,EACtE,QAAQ;AACN,WAAO,SAAS;AAAA,EAClB;AAEA,QAAM,aAAa,mBAAmB,OAAO,WAAW,SAAS;AACjE,QAAM,SAAS,MAAM,mBAAmB,YAAY,eAAe,QAAQ,IAAI,IAAI,GAAG,QAAQ,IAAI;AAClG,QAAM,KAAK,MAAM,aAAa,QAAQ,eAAe,QAAQ,IAAI,IAAI,CAAC;AACtE,MAAI,CAAC,GAAI,QAAO,EAAE,IAAI,MAAM;AAE5B,MAAI,OAAO,eAAe,UACrB,IAAI,IAAI,IAAI,KAAK,MAAM,QAAQ,IAAI,EAAE,IAAI,OAAO,aAAa,OAAY;AAE5E,WAAO,EAAE,IAAI,MAAM,YAAY,KAAK;AAAA,EACtC;AACA,SAAO,EAAE,IAAI,KAAK;AACpB;AAEA,eAAsB,gBACpB,KACA,IACA,OACA,WACA,WAC4B;AAQ5B,QAAM,MAAM,MAAM,IAAI,YAAY,EAAE;AACpC,QAAM,OAAO,KAAK,UAAU,KAAK;AACjC,MAAI;AACJ,MAAI,QAAQ,SAAS,IAAI,SAAS,OAAO,KAAK,SAAS,QAAW;AAChE,UAAM,MAAM,MAAM,IAAI,WAAW,GAAG;AACpC,UAAM,MAAM,MAAM,IAAI,OAAO;AAC7B,QAAI;AAEF,eAAS,OAAO,KAAK,MAAM,MAAM,mBAAmB,MAAM,OAAO,IAAI,YAAY,KAAK,GAAG,CAAC,CAAC;AAAA,IAC7F,QAAQ;AACN,eAAS;AAAA,IACX;AAAA,EACF;AACA,QAAM,QAAQ;AACd,QAAM,IAAI,IAAI,YAAY,EAAE,OAAO,mBAAmB,WAAW,SAAS,CAAC;AAC3E,QAAM,IAAI,WAAW,SACjB,IAAI,YAAY,EAAE,OAAO,mBAAmB,WAAW,MAAM,CAAC,IAC9D;AACJ,QAAM,KAAK,MAAM,aAAa,GAAG,CAAC;AAClC,SAAO,EAAE,IAAI,WAAW,UAAa,GAAG;AAC1C;AAEA,eAAsB,iBACpB,KACA,IACA,SACA,SACA,MACuC;AAGvC,MAAI,CAAC,OAAO,UAAU,KAAK,GAAG,KAAK,KAAK,MAAM,KAAK,KAAK,MAAM,QAAQ,QAAQ;AAC5E,UAAM,IAAI;AAAA,MAAsB,IAAI;AAAA,MAAY;AAAA,MAC9C,kBAAkB,KAAK,GAAG,oBAAoB,QAAQ,MAAM;AAAA,IAAE;AAAA,EAClE;AACA,QAAM,aAAa,oBAAI,IAAoB;AAC3C,aAAW,KAAK,SAAS;AACvB,UAAM,SAAS,QAAQ,EAAE,KAAK;AAC9B,QAAI,WAAW,OAAW;AAC1B,QAAI,OAAO,WAAW,UAAU;AAC9B,YAAM,IAAI,sBAAsB,IAAI,YAAY,EAAE,OAAO,4BAA4B;AAAA,IACvF;AACA,eAAW,IAAI,EAAE,OAAO,mBAAmB,EAAE,OAAO,WAAW,MAAM,CAAC;AAAA,EACxE;AAEA,QAAM,UAAU,MAAM,IAAI,YAAY,EAAE;AAIxC,QAAM,MAAM,YAAY,SAAS,QAAQ,SAAS,KAAK,IAAI,OAAO;AAClE,MAAI,QAAQ,MAAM;AAChB,eAAW,KAAK,SAAS;AACvB,UAAI,IAAI,UAAU,EAAE,KAAK,MAAM,UAAa,IAAI,QAAQ,EAAE,KAAK,MAAM,QAAW;AAC9E,4BAAoB,IAAI,YAAY,EAAE,KAAK;AAAA,MAC7C;AAAA,IACF;AAAA,EACF;AACA,QAAM,MAAM,QAAQ,OAAO,MAAM,IAAI,WAAW,GAAG,IAAI;AAIvD,QAAM,UAAqB,CAAC;AAC5B,aAAW,KAAK,SAAS;AACvB,UAAM,YAAY,WAAW,IAAI,EAAE,KAAK;AACxC,UAAM,OAAO,KAAK,QAAQ,EAAE,KAAK;AACjC,QAAI,QAAQ,QAAQ,QAAQ,UAAa,SAAS,QAAW;AAC3D,YAAM,QAAQ;AACd,cAAQ,KAAK,KAAK;AAClB;AAAA,IACF;AACA,QAAI;AACF,YAAM,UAAU,MAAM,gBAAgB,MAAM,KAAK,IAAI,YAAY,IAAI,EAAE,KAAK;AAC5E,UAAI,cAAc,QAAW;AAI3B,cAAM,QAAQ,QAAQ,IAAI;AAC1B,gBAAQ,KAAK,KAAK;AAClB;AAAA,MACF;AACA,YAAM,SAAS,MAAM,mBAAmB,WAAW,eAAe,QAAQ,IAAI,IAAI,GAAG,QAAQ,IAAI;AACjG,cAAQ,KAAK,MAAM,aAAa,QAAQ,eAAe,QAAQ,IAAI,IAAI,CAAC,CAAC;AAAA,IAC3E,QAAQ;AACN,YAAM,QAAQ;AACd,cAAQ,KAAK,KAAK;AAAA,IACpB;AAAA,EACF;AAEA,SAAO,EAAE,QAAQ,aAAa,SAAS,KAAK,GAAG,EAAE;AACnD;","names":[]}
|
package/dist/via/blob/index.d.ts
CHANGED
|
@@ -35,6 +35,7 @@ export { detectMimeType, detectMagic, isPreCompressed } from '../../with-shape/b
|
|
|
35
35
|
export { runCompaction, BLOB_EVICTION_AUDIT_COLLECTION } from '../../with-shape/blobs/blob-compaction.js';
|
|
36
36
|
export { reportOrphanBlobChunks } from '../../with-shape/blobs/orphan-report.js';
|
|
37
37
|
export type { OrphanChunkReport } from '../../with-shape/blobs/orphan-report.js';
|
|
38
|
+
export type { UnreferencedLegacyBlobReport } from '../../with-shape/blobs/legacy-sweep.js';
|
|
38
39
|
export type { NoydbStore } from '../../kernel/types.js';
|
|
39
40
|
export type { BlobFieldsConfig, BlobFieldPolicy, BlobEvictionEntry, CompactRunOptions, CompactionResult, CompactionContext, } from '../../with-shape/blobs/blob-compaction.js';
|
|
40
41
|
export { createExportBlobsHandle, ExportBlobsAbortedError, EXPORT_AUDIT_COLLECTION, } from '../../with-shape/blobs/export-blobs.js';
|
|
@@ -29,9 +29,9 @@ import { type ClassifiedEntry } from './resolve.js';
|
|
|
29
29
|
import { type ClassifiedGuardCtx } from './guards.js';
|
|
30
30
|
/**
|
|
31
31
|
* One classified per-slot shred/residue verdict — mirrors
|
|
32
|
-
* `RecordCodec.SealedShredSlot` (`
|
|
32
|
+
* `RecordCodec.SealedShredSlot` (`capsule/plumbing/record-codec.ts`)
|
|
33
33
|
* byte-for-byte. Duplicated here (not imported) so this binding never
|
|
34
|
-
* reaches into `
|
|
34
|
+
* reaches into `capsule/enclave-aes/` (`via-enclave-isolation`, #629) — the
|
|
35
35
|
* closure that PRODUCES real values of this shape is codec-owned and
|
|
36
36
|
* injected via {@link ClassifiedViaConfig.classifySealedShred}.
|
|
37
37
|
*/
|
|
@@ -12,9 +12,9 @@
|
|
|
12
12
|
* R10 guard.
|
|
13
13
|
*
|
|
14
14
|
* `dek` is typed as the bare `CryptoKey` global rather than `EnclaveKey`
|
|
15
|
-
* (`
|
|
15
|
+
* (`capsule/enclave-aes/crypto.ts`'s alias for the same type) — this file lives
|
|
16
16
|
* under `via/classified/`, which the `via-enclave-isolation`
|
|
17
|
-
* architecture guard (#629) forbids from importing `
|
|
17
|
+
* architecture guard (#629) forbids from importing `capsule/enclave-aes/` at
|
|
18
18
|
* all, even type-only.
|
|
19
19
|
*
|
|
20
20
|
* @module
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Configuration/write errors for classified fields. @module
|
|
3
3
|
*
|
|
4
4
|
* `ClassifiedConfigError` / `ClassifiedRevealError` moved to `kernel/errors.ts`
|
|
5
|
-
* (stage 2) so `
|
|
5
|
+
* (stage 2) so `capsule/enclave-aes/classify/*` can throw them without importing
|
|
6
6
|
* with-*. Re-exported here under the same names so existing import paths
|
|
7
7
|
* keep working.
|
|
8
8
|
*/
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The geo `NoydbVia` (#1355) — wires the geohash engine into the kernel's
|
|
3
|
+
* generic Via port. `geo()` (descriptor.ts) calls {@link linkGeoVia} at
|
|
4
|
+
* declaration time, the same #553 static-link pattern money/lookup/computed
|
|
5
|
+
* use.
|
|
6
|
+
*
|
|
7
|
+
* ⭐ WHERE THE GEOHASH ACTUALLY LIVES, and why in two places:
|
|
8
|
+
*
|
|
9
|
+
* - `ingest` writes it BESIDE `{ lat, lng }` in the record, so the stored
|
|
10
|
+
* document is self-describing: an export, a `crdt` merge or a consumer
|
|
11
|
+
* reading the raw shape sees the cell without re-deriving it.
|
|
12
|
+
* - `canonicalizeIndexKey` DERIVES it from `lat`/`lng` rather than reading
|
|
13
|
+
* that stored field. Deriving is what makes MIXED-ERA data land in the
|
|
14
|
+
* right bucket (money's #672 story, same shape): a record written before
|
|
15
|
+
* the field was declared `geo()` carries no `geohash` at all, and one
|
|
16
|
+
* written at a different `precision` carries the wrong-length one. Both
|
|
17
|
+
* index correctly because the coordinate — not the cached cell — is the
|
|
18
|
+
* source of truth for the key.
|
|
19
|
+
*
|
|
20
|
+
* The index key is therefore always a geohash STRING, so the field's
|
|
21
|
+
* entries live in one key space and `startsWith` over it is a spatial
|
|
22
|
+
* slice.
|
|
23
|
+
*/
|
|
24
|
+
import type { NoydbVia } from '../../kernel/via/index.js';
|
|
25
|
+
import type { GeoDescriptor } from './descriptor.js';
|
|
26
|
+
/** The geo binder's config bag: field name → its descriptor. */
|
|
27
|
+
export interface GeoBindingConfig {
|
|
28
|
+
readonly geoFields: Record<string, GeoDescriptor>;
|
|
29
|
+
}
|
|
30
|
+
export declare function geoVia(geoFields: Record<string, GeoDescriptor>): NoydbVia;
|
|
31
|
+
export declare function linkGeoVia(): void;
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `geo()` — the field descriptor for a `{ lat, lng }` point (#1355).
|
|
3
|
+
*
|
|
4
|
+
* A branded schema-layer descriptor, a sibling of `money()` / `lookup()`.
|
|
5
|
+
* It owns one decision: at what geohash PRECISION this field is indexed
|
|
6
|
+
* and stored. The math lives in {@link ./geohash}; the query participation
|
|
7
|
+
* in {@link ./where}.
|
|
8
|
+
*
|
|
9
|
+
* Declared through the `via()` composer:
|
|
10
|
+
*
|
|
11
|
+
* ```ts
|
|
12
|
+
* vault.collection('places', {
|
|
13
|
+
* viaFields: { at: via(geo()) },
|
|
14
|
+
* indexes: [{ fields: ['at'], kind: 'sorted' }],
|
|
15
|
+
* })
|
|
16
|
+
* ```
|
|
17
|
+
*
|
|
18
|
+
* The sorted index is what makes `near()` cheaper than a scan; without it
|
|
19
|
+
* the query still returns the RIGHT answer, just by walking every record.
|
|
20
|
+
*/
|
|
21
|
+
import { NoydbError } from '../../kernel/errors.js';
|
|
22
|
+
import type { ViaDescriptor } from '../../kernel/via/index.js';
|
|
23
|
+
export interface GeoOptions {
|
|
24
|
+
/**
|
|
25
|
+
* Geohash characters stored and indexed per record. Default 9
|
|
26
|
+
* (≈ 4.8m × 4.8m) — finer than any consumer GPS fix and still short
|
|
27
|
+
* enough that a prefix cover of a city-scale radius is a handful of
|
|
28
|
+
* cells.
|
|
29
|
+
*/
|
|
30
|
+
readonly precision?: number;
|
|
31
|
+
/**
|
|
32
|
+
* Ceiling on how many geohash prefixes one `near()` query may probe.
|
|
33
|
+
* Default 32. Raising it buys a tighter candidate set at the cost of
|
|
34
|
+
* more index slices per query; lowering it does the reverse. It never
|
|
35
|
+
* affects CORRECTNESS — the cover is a superset at every precision and
|
|
36
|
+
* the haversine post-filter is the exact answer either way.
|
|
37
|
+
*/
|
|
38
|
+
readonly maxPrefixes?: number;
|
|
39
|
+
}
|
|
40
|
+
export interface GeoDescriptor extends ViaDescriptor {
|
|
41
|
+
readonly _viaBrand: 'geo';
|
|
42
|
+
readonly precision: number;
|
|
43
|
+
readonly maxPrefixes: number;
|
|
44
|
+
}
|
|
45
|
+
/** Raised when a written value is not a usable `{ lat, lng }` point. */
|
|
46
|
+
export declare class GeoPointError extends NoydbError {
|
|
47
|
+
readonly field: string;
|
|
48
|
+
readonly value: unknown;
|
|
49
|
+
constructor(field: string, value: unknown);
|
|
50
|
+
}
|
|
51
|
+
/** Create a {@link GeoDescriptor}. */
|
|
52
|
+
export declare function geo(options?: GeoOptions): GeoDescriptor;
|
|
53
|
+
/** Runtime predicate for detecting a {@link GeoDescriptor}. */
|
|
54
|
+
export declare function isGeoDescriptor(x: unknown): x is GeoDescriptor;
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The geospatial primitives (#1355) — geohash encoding, great-circle
|
|
3
|
+
* distance, and the bounding-box → prefix-set cover that lets a `near()`
|
|
4
|
+
* query take the existing sorted index.
|
|
5
|
+
*
|
|
6
|
+
* ⭐ WHY A GEOHASH PREFIX AND NOT A COORDINATE. The store holds ciphertext
|
|
7
|
+
* and never runs a query, but a secondary index key is a value the hub
|
|
8
|
+
* itself keeps in a structure a persisted sidecar can carry (#1359). A raw
|
|
9
|
+
* `lat`/`lng` in that key space is a coordinate at full precision; a
|
|
10
|
+
* geohash PREFIX is a cell — deliberately lossy, and the coarser the query
|
|
11
|
+
* the less it says. That is the whole reason this module exists rather
|
|
12
|
+
* than a pair of numeric range indexes on `lat` and `lng`.
|
|
13
|
+
*
|
|
14
|
+
* ⛔ THE SUPERSET LAW. {@link coverPrefixes} must return a cover whose
|
|
15
|
+
* union CONTAINS every point of the box, and {@link boundingBox} a box
|
|
16
|
+
* that contains every point within the radius. A candidate set that is
|
|
17
|
+
* too big costs a haversine call per extra row; one that is too small is
|
|
18
|
+
* a WRONG ANSWER, and no post-filter can put a dropped record back.
|
|
19
|
+
* `__tests__/geo-superset.test.ts` is the property that pins it.
|
|
20
|
+
*
|
|
21
|
+
* Pure, portable, dependency-free — no Node built-ins, no npm math lib.
|
|
22
|
+
*/
|
|
23
|
+
/** A WGS-84 point. Latitude in [-90, 90], longitude in [-180, 180]. */
|
|
24
|
+
export interface GeoPoint {
|
|
25
|
+
readonly lat: number;
|
|
26
|
+
readonly lng: number;
|
|
27
|
+
}
|
|
28
|
+
/** A latitude/longitude rectangle. Never wraps: {@link boundingBox} splits at the antimeridian instead. */
|
|
29
|
+
export interface GeoBox {
|
|
30
|
+
readonly minLat: number;
|
|
31
|
+
readonly maxLat: number;
|
|
32
|
+
readonly minLng: number;
|
|
33
|
+
readonly maxLng: number;
|
|
34
|
+
}
|
|
35
|
+
/** Mean Earth radius (IUGG), km — the same constant every reference haversine uses. */
|
|
36
|
+
export declare const EARTH_RADIUS_KM = 6371.0088;
|
|
37
|
+
/** Widest geohash precision this module encodes. 12 chars ≈ 3.7cm — past any GPS fix. */
|
|
38
|
+
export declare const MAX_PRECISION = 12;
|
|
39
|
+
/** True when `p` is a usable point. Rejects NaN, infinities and out-of-range values. */
|
|
40
|
+
export declare function isGeoPoint(p: unknown): p is GeoPoint;
|
|
41
|
+
/**
|
|
42
|
+
* Great-circle distance in kilometres.
|
|
43
|
+
*
|
|
44
|
+
* Haversine rather than the law of cosines: the two agree to metres at
|
|
45
|
+
* continental scale, but `acos` loses all its significant digits for
|
|
46
|
+
* nearby points (`cos d → 1`), which is exactly the regime a `near()`
|
|
47
|
+
* query lives in.
|
|
48
|
+
*/
|
|
49
|
+
export declare function haversineKm(a: GeoPoint, b: GeoPoint): number;
|
|
50
|
+
/**
|
|
51
|
+
* Encode a point as a geohash of `precision` characters.
|
|
52
|
+
*
|
|
53
|
+
* Bits interleave longitude-first, which is what makes a shared prefix
|
|
54
|
+
* mean "the same cell" and therefore what makes the sorted index's
|
|
55
|
+
* `startsWith` slice a spatial answer.
|
|
56
|
+
*/
|
|
57
|
+
export declare function encodeGeohash(point: GeoPoint, precision: number): string;
|
|
58
|
+
/** The cell a geohash names. Throws on a character outside the alphabet. */
|
|
59
|
+
export declare function decodeGeohashBox(hash: string): GeoBox;
|
|
60
|
+
/** How many latitude / longitude bits a `precision`-character hash spends. */
|
|
61
|
+
export declare function gridBits(precision: number): {
|
|
62
|
+
latBits: number;
|
|
63
|
+
lngBits: number;
|
|
64
|
+
};
|
|
65
|
+
/**
|
|
66
|
+
* The boxes enclosing every point within `radiusKm` of `center`.
|
|
67
|
+
*
|
|
68
|
+
* Returns TWO boxes when the circle crosses the antimeridian, and one
|
|
69
|
+
* spanning the full longitude range when it reaches a pole — a rectangle
|
|
70
|
+
* in lat/lng cannot express either case, and quietly clipping would
|
|
71
|
+
* violate the superset law at exactly the coordinates nobody tests by
|
|
72
|
+
* hand.
|
|
73
|
+
*/
|
|
74
|
+
export declare function boundingBox(center: GeoPoint, radiusKm: number): GeoBox[];
|
|
75
|
+
/** Number of `precision`-cells the boxes touch — computed from grid indices, never by enumerating. */
|
|
76
|
+
export declare function coverSize(boxes: readonly GeoBox[], precision: number): number;
|
|
77
|
+
/**
|
|
78
|
+
* The geohash prefixes whose cells cover `boxes` at `precision`.
|
|
79
|
+
*
|
|
80
|
+
* Every returned prefix is exactly `precision` characters, so the set can
|
|
81
|
+
* be handed to the sorted index one `startsWith` at a time and unioned.
|
|
82
|
+
*/
|
|
83
|
+
export declare function coverPrefixes(boxes: readonly GeoBox[], precision: number): string[];
|
|
84
|
+
/**
|
|
85
|
+
* The finest cover of `center`/`radiusKm` that stays within `maxCells`
|
|
86
|
+
* prefixes, capped at `maxPrecision`.
|
|
87
|
+
*
|
|
88
|
+
* Finer is better: the prefixes ARE the candidate set, so a coarser cover
|
|
89
|
+
* hands more rows to the haversine post-filter. The search always
|
|
90
|
+
* terminates — precision 1 is a 4×8 grid, so 32 cells cover the planet.
|
|
91
|
+
*/
|
|
92
|
+
export declare function prefixesForRadius(center: GeoPoint, radiusKm: number, maxPrecision: number, maxCells: number): {
|
|
93
|
+
prefixes: string[];
|
|
94
|
+
precision: number;
|
|
95
|
+
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `@noy-db/hub` geospatial field descriptor (#1355) — `geo()` plus the
|
|
3
|
+
* pure primitives a consumer may want directly (`haversineKm` for a
|
|
4
|
+
* distance column, `encodeGeohash` for a cell label).
|
|
5
|
+
*
|
|
6
|
+
* @see ./descriptor for the public `geo()` factory.
|
|
7
|
+
* @see ./geohash for the superset law the prefix cover obeys.
|
|
8
|
+
*/
|
|
9
|
+
export { geo, isGeoDescriptor, GeoPointError } from './descriptor.js';
|
|
10
|
+
export type { GeoDescriptor, GeoOptions } from './descriptor.js';
|
|
11
|
+
export { haversineKm, encodeGeohash, decodeGeohashBox, boundingBox, coverPrefixes, coverSize, prefixesForRadius, isGeoPoint, gridBits, EARTH_RADIUS_KM, MAX_PRECISION, } from './geohash.js';
|
|
12
|
+
export type { GeoPoint, GeoBox } from './geohash.js';
|
|
13
|
+
export type { NearOperand, GeoWhereOperand, GeoNearOperand, GeoPassthroughOperand } from './where.js';
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { type Operator } from '../../kernel/query/predicate.js';
|
|
2
|
+
import type { ViaPrefixProbe } from '../../kernel/via/index.js';
|
|
3
|
+
import type { GeoDescriptor } from './descriptor.js';
|
|
4
|
+
import { type GeoPoint } from './geohash.js';
|
|
5
|
+
/** The `near` operand: a centre and a radius in kilometres. */
|
|
6
|
+
export interface NearOperand extends GeoPoint {
|
|
7
|
+
readonly radiusKm: number;
|
|
8
|
+
}
|
|
9
|
+
/** A `near` clause: the centre, the radius, and the cover the index probes. */
|
|
10
|
+
export interface GeoNearOperand {
|
|
11
|
+
readonly kind: 'near';
|
|
12
|
+
readonly center: GeoPoint;
|
|
13
|
+
readonly radiusKm: number;
|
|
14
|
+
readonly prefixes: readonly string[];
|
|
15
|
+
/** Cover precision actually chosen — reported by `describeFragment()`, not used to match. */
|
|
16
|
+
readonly precision: number;
|
|
17
|
+
}
|
|
18
|
+
/** Any other operator over a geo field: claimed, un-probed, generically compared. */
|
|
19
|
+
export interface GeoPassthroughOperand {
|
|
20
|
+
readonly kind: 'passthrough';
|
|
21
|
+
readonly value: unknown;
|
|
22
|
+
}
|
|
23
|
+
/** The opaque payload `buildClause` produces and `evaluateClause` consumes. */
|
|
24
|
+
export type GeoWhereOperand = GeoNearOperand | GeoPassthroughOperand;
|
|
25
|
+
/**
|
|
26
|
+
* Build the payload for a clause over a geo field. A `near` operand is
|
|
27
|
+
* validated and covered here; every other operator is captured verbatim.
|
|
28
|
+
*
|
|
29
|
+
* A malformed `near` operand throws at the `where()` CALL SITE (money's
|
|
30
|
+
* precedent) — a silently-empty result set is the worst possible answer to
|
|
31
|
+
* a typo'd coordinate.
|
|
32
|
+
*/
|
|
33
|
+
export declare function geoFieldClause(field: string, op: Operator, value: unknown, desc: GeoDescriptor): GeoWhereOperand;
|
|
34
|
+
/**
|
|
35
|
+
* Exact membership: the stored point is within `radiusKm` of the centre.
|
|
36
|
+
*
|
|
37
|
+
* A value that is not a point — absent, nullish, or written before the
|
|
38
|
+
* field was declared `geo()` — matches nothing. That is the same posture
|
|
39
|
+
* every other operator takes on a type mismatch, and it is what keeps the
|
|
40
|
+
* index sound: such a record has no geohash key either, so it is absent
|
|
41
|
+
* from the candidate set AND from the answer.
|
|
42
|
+
*/
|
|
43
|
+
export declare function evaluateGeoClause(actual: unknown, op: string, payload: GeoWhereOperand): boolean;
|
|
44
|
+
/**
|
|
45
|
+
* The index operand: a prefix cover the sorted index can slice.
|
|
46
|
+
*
|
|
47
|
+
* `undefined` for any other operator, which sends the clause to the scan
|
|
48
|
+
* — the geo binding claims no fast path it cannot make sound.
|
|
49
|
+
*/
|
|
50
|
+
export declare function geoIndexProbe(op: string, payload: GeoWhereOperand): ViaPrefixProbe | undefined;
|
package/dist/via/i18n/core.d.ts
CHANGED
|
@@ -246,7 +246,7 @@ export { getAtPath } from '../../kernel/paths.js';
|
|
|
246
246
|
export declare function applyI18nLocale(record: Record<string, unknown>, i18nFields: Record<string, I18nTextDescriptor>, locale: string, fallback?: string | readonly string[], layer?: Layer): Record<string, unknown>;
|
|
247
247
|
/**
|
|
248
248
|
* Sync i18n-text-only present-for-join dressing — the exact `join`-layer
|
|
249
|
-
* partial application `kernel/query/join.ts` used to import and call
|
|
249
|
+
* partial application `kernel/query/relate/join.ts` used to import and call
|
|
250
250
|
* directly before #626's retirement (#650 Task 6): fixes `fallback`
|
|
251
251
|
* `undefined` and `layer` `'join'`. `via/lookup/snapshot.ts`'s
|
|
252
252
|
* `buildPresentForJoin` composes this with the lookup-label half to build
|
|
@@ -81,9 +81,9 @@ export declare class LookupHandle<Keys extends string = string> {
|
|
|
81
81
|
* #647 fix wave 1 — mints a version-ordered delete-marker envelope (the reserved-tier
|
|
82
82
|
* mirror of #589's ordinary-collection delete marker). Injected rather than imported:
|
|
83
83
|
* `buildDeleteMarker` constructs the envelope's protected-body fields (`_iv`/`_data`), and
|
|
84
|
-
* `via/lookup/**` may not reach `
|
|
84
|
+
* `via/lookup/**` may not reach `capsule/enclave-aes/` directly (Check 11
|
|
85
85
|
* `enclave-body-only` / Check 15 `via-enclave-isolation`) — the Vault binds the real
|
|
86
|
-
* `
|
|
86
|
+
* `capsule/enclave-aes` function at construction time, same pattern as `reservedEnvelopes` above.
|
|
87
87
|
*/
|
|
88
88
|
private readonly buildDeleteMarker;
|
|
89
89
|
/** #650 Task 4 (#647) — dirty-log participation hook (origin `local-write`), threaded from `BuildLookupHandleOptions`. */
|
|
@@ -128,9 +128,9 @@ export declare class LookupHandle<Keys extends string = string> {
|
|
|
128
128
|
* #647 fix wave 1 — mints a version-ordered delete-marker envelope (the reserved-tier
|
|
129
129
|
* mirror of #589's ordinary-collection delete marker). Injected rather than imported:
|
|
130
130
|
* `buildDeleteMarker` constructs the envelope's protected-body fields (`_iv`/`_data`), and
|
|
131
|
-
* `via/lookup/**` may not reach `
|
|
131
|
+
* `via/lookup/**` may not reach `capsule/enclave-aes/` directly (Check 11
|
|
132
132
|
* `enclave-body-only` / Check 15 `via-enclave-isolation`) — the Vault binds the real
|
|
133
|
-
* `
|
|
133
|
+
* `capsule/enclave-aes` function at construction time, same pattern as `reservedEnvelopes` above.
|
|
134
134
|
*/
|
|
135
135
|
buildDeleteMarker: (identity: {
|
|
136
136
|
collection: string;
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
* by `vault.collection()` and read by the backup path) and calls these
|
|
10
10
|
* helpers through the `port/with/lookup-strategy.ts` seam.
|
|
11
11
|
*/
|
|
12
|
-
import type { JoinableSource } from '../../kernel/query/
|
|
12
|
+
import type { JoinableSource } from '../../kernel/query/relate/join.js';
|
|
13
13
|
import type { ViaGraph } from '../../kernel/via/graph.js';
|
|
14
14
|
import type { StaticDictDescriptor } from '../../port/with/i18n-strategy.js';
|
|
15
15
|
import { type LookupHandle } from './handle.js';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* The sync lookup snapshot + join/locale seam (#650 Task 6, spec §5 — "the
|
|
3
3
|
* snapshot+locale seam"). Retires the #626 kernel→via grandfather:
|
|
4
|
-
* `kernel/query/join.ts` no longer imports `via/i18n/core.js` directly
|
|
4
|
+
* `kernel/query/relate/join.ts` no longer imports `via/i18n/core.js` directly
|
|
5
5
|
* — it calls the `presentForJoin` hook this file's `buildPresentForJoin`
|
|
6
6
|
* builds instead (seam map Part 2 item 4, the #626 reviewer-spec'd shape:
|
|
7
7
|
* a sync `presentI18nForJoin`-class hook on `JoinableSource`).
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
* Serves (reserved AND matrix tier since #650 Task 7 — `registry.ts`'s
|
|
17
17
|
* `buildLookupSnapshotRows` routes both; static tier is read straight off
|
|
18
18
|
* `descriptor.table` by every consumer below, never through this cache):
|
|
19
|
-
* - join dressing (`presentForJoin`, consumed by `kernel/query/join.ts`
|
|
19
|
+
* - join dressing (`presentForJoin`, consumed by `kernel/query/relate/join.ts`
|
|
20
20
|
* via `JoinableSource.presentForJoin`)
|
|
21
21
|
* - dimension sort (`compareForOrder`, consumed by
|
|
22
22
|
* `via/lookup/binding.ts`'s `NoydbVia.compareForOrder` closure)
|
|
@@ -59,7 +59,7 @@ export declare function buildLookupSnapshot(dimension: string, rows: ReadonlyMap
|
|
|
59
59
|
* `Collection` attaches to the `JoinableSource` it exposes
|
|
60
60
|
* (`querySourceForJoin()`) — the i18n-text half (`presentI18nForJoin`, the
|
|
61
61
|
* exact `applyI18nLocale(..., 'join')` partial application
|
|
62
|
-
* `kernel/query/join.ts` used to call directly, #626) composed with the
|
|
62
|
+
* `kernel/query/relate/join.ts` used to call directly, #626) composed with the
|
|
63
63
|
* lookup-label half above. `undefined` when the collection declares
|
|
64
64
|
* neither — `JoinableSource.presentForJoin` then stays unset, matching
|
|
65
65
|
* today's `i18nFields`-absent behavior exactly (#626 parity lock).
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import {
|
|
2
|
+
dumpVaultSchema
|
|
3
|
+
} from "./chunk-PP3K67AJ.js";
|
|
4
|
+
import "./chunk-RXLYKVTF.js";
|
|
5
|
+
import "./chunk-VYYM3MEN.js";
|
|
6
|
+
import "./chunk-747G6CT3.js";
|
|
7
|
+
import "./chunk-Y2NBBT6K.js";
|
|
8
|
+
import "./chunk-3L2NBKDR.js";
|
|
9
|
+
import "./chunk-EZGV6F47.js";
|
|
10
|
+
import "./chunk-OIEO4WDL.js";
|
|
11
|
+
import "./chunk-Q2XRFWOI.js";
|
|
12
|
+
import "./chunk-NH2UOV3B.js";
|
|
13
|
+
import "./chunk-42ALPZ2B.js";
|
|
14
|
+
import "./chunk-QMWY2FDS.js";
|
|
15
|
+
import "./chunk-SV2PM2OY.js";
|
|
16
|
+
import "./chunk-37EPTBBR.js";
|
|
17
|
+
export {
|
|
18
|
+
dumpVaultSchema
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=walk-4VPK7AS4.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -13,4 +13,5 @@ export { ATTESTATIONS_COLLECTION } from './signer.js';
|
|
|
13
13
|
export { revokeDocCore, unrevokeDocCore, getRevokedDocIdsCore, publishRevocationListCore } from './revoke.js';
|
|
14
14
|
export type { RevokeContext } from './revoke.js';
|
|
15
15
|
export { AttestationError } from '../../kernel/errors.js';
|
|
16
|
-
export { verifyAttestation, decodeQr, verifyRevocationList, isRevoked, signRevocationList
|
|
16
|
+
export { verifyAttestation, decodeQr, verifyRevocationList, isRevoked, signRevocationList } from './verifier.js';
|
|
17
|
+
export type { QrPayload, AttestationFieldSchema, VerifyResult, VerifyInput, RevocationList } from './types.js';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { NoydbStore } from '../../kernel/types.js';
|
|
2
|
-
import { type EnclaveKey } from '../../
|
|
3
|
-
import {
|
|
2
|
+
import { type EnclaveKey } from '../../capsule/index.js';
|
|
3
|
+
import type { AttestationFieldSchema, QrPayload } from './types.js';
|
|
4
4
|
/** Everything issueAttestationCore needs from the Vault, injected for testability. */
|
|
5
5
|
export interface IssueContext {
|
|
6
6
|
readonly store: NoydbStore;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { NoydbStore } from '../../kernel/types.js';
|
|
2
|
-
import { type EnclaveKey } from '../../
|
|
3
|
-
import {
|
|
2
|
+
import { type EnclaveKey } from '../../capsule/index.js';
|
|
3
|
+
import type { RevocationList } from './types.js';
|
|
4
4
|
/** Everything the revoke core needs from the Vault, injected for testability. */
|
|
5
5
|
export interface RevokeContext {
|
|
6
6
|
readonly store: NoydbStore;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { SignatureScheme } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Attestation signs and verifies with the ENCLAVE's sign group, not with the
|
|
4
|
+
* attestation package's bundled Ed25519 — so a different enclave (Stage B/C)
|
|
5
|
+
* changes what hub signs with, without touching attestation.
|
|
6
|
+
*/
|
|
7
|
+
export declare const ENCLAVE_SCHEME: SignatureScheme;
|
|
@@ -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
|
export declare const ATTESTATIONS_COLLECTION = "_attestations";
|
|
4
4
|
export declare const SIGNER_RECORD_ID = "_signer";
|
|
5
5
|
export declare const REVOKED_RECORD_ID = "_revoked";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { NoydbStore } from '../../kernel/types.js';
|
|
2
|
-
import type { EnclaveKey } from '../../
|
|
3
|
-
import type { RevocationList } from '
|
|
2
|
+
import type { EnclaveKey } from '../../capsule/index.js';
|
|
3
|
+
import type { RevocationList } from './types.js';
|
|
4
4
|
import type { IssueContext, IssueArgs, IssueResult } from './issue.js';
|
|
5
5
|
import type { RevokeContext } from './revoke.js';
|
|
6
6
|
/**
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The attestation types, re-exported at their service-layer home.
|
|
3
|
+
*
|
|
4
|
+
* The declarations live in `kernel/attestation-types.ts` because
|
|
5
|
+
* `kernel/vault.ts` names `RevocationList` on its public surface, and the
|
|
6
|
+
* kernel spine may not statically import a `with-*` service (`port-layering`,
|
|
7
|
+
* the S4 gate). This file keeps `./types.js` the natural import for everything
|
|
8
|
+
* inside `with-audit/attestation/`.
|
|
9
|
+
*/
|
|
10
|
+
export type { AttestationFieldSchema, QrPayload, RevocationList, VerifyInput, VerifyResult, SignatureScheme, } from '../../kernel/attestation-types.js';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { NoydbStore } from '../../kernel/types.js';
|
|
2
|
-
import type { EnclaveKey } from '../../
|
|
3
|
-
import type { AttestationFieldSchema, RevocationList } from '
|
|
2
|
+
import type { EnclaveKey } from '../../capsule/index.js';
|
|
3
|
+
import type { AttestationFieldSchema, RevocationList } from './types.js';
|
|
4
4
|
import type { AttestationStrategy } from './strategy.js';
|
|
5
5
|
export { NO_ATTESTATION, type AttestationStrategy } from './strategy.js';
|
|
6
6
|
/** Everything the moving attestation methods touched on the vault's `this.*`. */
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { QrPayload, RevocationList, SignatureScheme, VerifyInput, VerifyResult } from './types.js';
|
|
2
|
+
export declare const verifyAttestation: (input: VerifyInput, scheme?: SignatureScheme) => Promise<VerifyResult>;
|
|
3
|
+
export declare const decodeQr: (s: string) => QrPayload;
|
|
4
|
+
export declare const verifyRevocationList: (list: RevocationList, publicKeyB64: string, scheme?: SignatureScheme) => Promise<boolean>;
|
|
5
|
+
export declare const isRevoked: (docId: string, list: RevocationList) => boolean;
|
|
6
|
+
export declare const signRevocationList: (revokedDocIds: readonly string[], asOf: string, keyId: string, privateKeyPkcs8B64: string, scheme?: SignatureScheme) => Promise<RevocationList>;
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
* @module
|
|
50
50
|
*/
|
|
51
51
|
import type { NoydbStore } from '../../kernel/types.js';
|
|
52
|
-
import { type EnclaveKey } from '../../
|
|
52
|
+
import { type EnclaveKey } from '../../capsule/index.js';
|
|
53
53
|
/** Reserved collection for consent-audit entries. */
|
|
54
54
|
export declare const CONSENT_AUDIT_COLLECTION = "_consent_audit";
|
|
55
55
|
/**
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
* @internal
|
|
12
12
|
*/
|
|
13
13
|
import type { NoydbStore } from '../../kernel/types.js';
|
|
14
|
-
import type { EnclaveKey } from '../../
|
|
14
|
+
import type { EnclaveKey } from '../../capsule/index.js';
|
|
15
15
|
import type { ConsentAuditEntry, ConsentAuditFilter } from './consent.js';
|
|
16
16
|
/**
|
|
17
17
|
* @internal
|