@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
|
@@ -11,17 +11,17 @@ import { type ViaDescriptor, type ViaEraseReport } from './via/index.js';
|
|
|
11
11
|
import type { MutationOrigin } from './mutation.js';
|
|
12
12
|
import { type WaveContext, type RollupOutcome, type RollupDeleteIntent } from './via/dispatch.js';
|
|
13
13
|
import type { ComputedFields } from '../with-formula/computed/index.js';
|
|
14
|
-
import { type SealedShredSlot } from '
|
|
14
|
+
import { type SealedShredSlot } from '../capsule/index.js';
|
|
15
15
|
import { type TierMoveResult } from '../with-audit/tiers/index.js';
|
|
16
16
|
import type { GhostRecord } from './types.js';
|
|
17
17
|
import type { StandardSchemaV1 } from './schema.js';
|
|
18
18
|
import type { DiffEntry } from '../with-commit/history/diff.js';
|
|
19
19
|
import { Query, ScanBuilder } from './query/index.js';
|
|
20
|
-
import type { JoinableSource } from './query/
|
|
20
|
+
import type { JoinableSource } from './query/relate/join.js';
|
|
21
21
|
import { type CollectionIndexes } from '../with-lookup/indexing/eager-indexes.js';
|
|
22
22
|
import { LazyQuery } from '../with-lookup/indexing/lazy-builder.js';
|
|
23
23
|
import type { SearchOptions, SearchResult } from '../with-lookup/search/index.js';
|
|
24
|
-
import type { RetrieveOptions, RetrieveHit } from '../with-lookup/search/retrieve-types.js';
|
|
24
|
+
import type { RetrieveOptions, RetrieveHit, SimilarToOptions } from '../with-lookup/search/retrieve-types.js';
|
|
25
25
|
import type { RefDescriptor } from './refs.js';
|
|
26
26
|
import { type CollectionDescription, type DescribeOptions } from '../with-shape/introspection/describe.js';
|
|
27
27
|
import type { CollectionConfig } from '../with-shape/introspection/types.js';
|
|
@@ -112,6 +112,10 @@ export declare class Collection<T, S extends keyof T = never, Q extends keyof T
|
|
|
112
112
|
private readonly blobFields;
|
|
113
113
|
private readonly blobTierPolicy;
|
|
114
114
|
private readonly cache;
|
|
115
|
+
/** #1418 — mutation stamp for a derived-output memo, or `null` when one must NOT be used because a redundant re-write would still be observable (gate handler, history, sync, search) or there is no eager cache to stamp. The rules and their measured rationale live with the consumer, `with-formula/materialized-views/emit-memo.ts`. `_`-prefixed deliberately: `kernel-api-surface-golden` freezes the PUBLIC surface and this is an executor seam. @internal */
|
|
116
|
+
get _cacheStamp(): number | null;
|
|
117
|
+
/** #1439 — could a `beforePut` gate fire for THIS row? Asks each handler's declared scope, not merely whether any is registered — the bus is vault-wide, the gates are not. @internal */
|
|
118
|
+
_derivedWriteGated(record: Record<string, unknown>): boolean;
|
|
115
119
|
private hydrated;
|
|
116
120
|
/**
|
|
117
121
|
* #606: ids known to carry a delete marker in the store — lets the #589
|
|
@@ -221,8 +225,12 @@ export declare class Collection<T, S extends keyof T = never, Q extends keyof T
|
|
|
221
225
|
private i18nFields;
|
|
222
226
|
/** The configured string fields exposed to `retrieve()`; `undefined` for ordinary collections (zero-cost). */
|
|
223
227
|
private readonly textIndexes;
|
|
228
|
+
/** #1354 — the subset of `textIndexes` carrying positional postings (phrase / proximity). */
|
|
229
|
+
private readonly textIndexPositions;
|
|
224
230
|
/** Session-scoped lexical index store; `undefined` (zero-cost) unless `textIndexes` is non-empty. */
|
|
225
231
|
private readonly searchIndexStore;
|
|
232
|
+
/** Encrypted field-index sidecars (#1359); `null` (zero-cost) unless an index declared `persist: true`. */
|
|
233
|
+
private readonly fieldIndexStore;
|
|
226
234
|
/** Embedding config for write-time vector derivation; `undefined` (zero-cost) for ordinary
|
|
227
235
|
* collections. When set, `put()` encodes the source field(s) and stores an encrypted `_vec` sidecar. */
|
|
228
236
|
private readonly embeddings;
|
|
@@ -427,6 +435,8 @@ export declare class Collection<T, S extends keyof T = never, Q extends keyof T
|
|
|
427
435
|
readonly fields: readonly string[];
|
|
428
436
|
readonly unique?: boolean;
|
|
429
437
|
}>;
|
|
438
|
+
/** #1447 — `field -> via brands covering it`, for `dumpSchema()`. Brand and field only, never a binding's config; see `via/pipeline.ts#fieldCoverage`. Consumed by walk.ts. */
|
|
439
|
+
getViaCoverage(): Record<string, readonly string[]> | undefined;
|
|
430
440
|
/**
|
|
431
441
|
* Aggregate all collection-level configuration options that are actively set
|
|
432
442
|
* into a {@link CollectionConfig} snapshot. Returns `undefined` when no options
|
|
@@ -971,11 +981,7 @@ export declare class Collection<T, S extends keyof T = never, Q extends keyof T
|
|
|
971
981
|
/** Retrieval (lexical | semantic | hybrid) — gated behind `searchStrategy: withSearch()`. */
|
|
972
982
|
retrieve(query: string, opts?: RetrieveOptions<T>): Promise<RetrieveHit<T>[]>;
|
|
973
983
|
/** Raw-vector kNN — gated behind `searchStrategy: withSearch()`. */
|
|
974
|
-
similarTo(vector: Float32Array, opts?:
|
|
975
|
-
k?: number;
|
|
976
|
-
minScore?: number;
|
|
977
|
-
includeRecord?: boolean;
|
|
978
|
-
}): Promise<RetrieveHit<T>[]>;
|
|
984
|
+
similarTo(vector: Float32Array, opts?: SimilarToOptions): Promise<RetrieveHit<T>[]>;
|
|
979
985
|
/** Opt-in bulk `_vec` re-derive (#788) — a plain collection has nothing to rebuild; gated behind `searchStrategy: withSearch()` otherwise. */
|
|
980
986
|
rebuildEmbeddings(): Promise<{
|
|
981
987
|
rebuilt: number;
|
|
@@ -1055,7 +1061,7 @@ export declare class Collection<T, S extends keyof T = never, Q extends keyof T
|
|
|
1055
1061
|
* the filtered records directly (the API). Prefer the chainable
|
|
1056
1062
|
* form for new code.
|
|
1057
1063
|
*
|
|
1058
|
-
* **Lazy-MV gap:** `query()` is synchronous and does NOT
|
|
1064
|
+
* **Cold-collection gate (#1414):** until something has bulk-loaded this collection (`list()`, `get()`), every terminal returns a value that hydrates when AWAITED and throws `CollectionNotHydratedError` on synchronous use — an unloaded collection is not an empty one; see `query/hydration.ts`. **Lazy-MV gap:** `query()` is synchronous and does NOT
|
|
1059
1065
|
* trigger lazy materialized-view resolve-on-read. If this
|
|
1060
1066
|
* collection is a lazy MV's output and the MV is currently stale,
|
|
1061
1067
|
* `query().toArray()` returns the pre-stale snapshot. To force a
|
|
@@ -1275,6 +1281,10 @@ export declare class Collection<T, S extends keyof T = never, Q extends keyof T
|
|
|
1275
1281
|
* Never writes to the store and never fires write hooks, so it cannot loop.
|
|
1276
1282
|
*/
|
|
1277
1283
|
_applyRemoteChange(id: string, action: 'put' | 'delete'): Promise<void>;
|
|
1284
|
+
/** @internal #1362 — same as {@link _applyRemoteChange}, for a frame that carries NO verb.
|
|
1285
|
+
* A peer's claim about the verb is not evidence; the re-read decides it, exactly as
|
|
1286
|
+
* `_compensateRevertedWrite` does. Untrusted ingress is why the frame omits it. */
|
|
1287
|
+
_applyRemoteSignal(id: string): Promise<void>;
|
|
1278
1288
|
/**
|
|
1279
1289
|
* Origin-tagged mutation choke point (#623 task 10) — the single dispatch
|
|
1280
1290
|
* point every put/delete path funnels through, AFTER its own store write,
|
|
@@ -1401,6 +1411,15 @@ export declare class Collection<T, S extends keyof T = never, Q extends keyof T
|
|
|
1401
1411
|
* vault-shared `_blob` DEK (enabling cross-collection deduplication).
|
|
1402
1412
|
*/
|
|
1403
1413
|
blob(id: string): BlobSet;
|
|
1414
|
+
/**
|
|
1415
|
+
* #1452 — would an update of record `id` pass the `beforePut` gate bus right
|
|
1416
|
+
* now? Runs the bus with `incoming = existing`, so closed periods and record
|
|
1417
|
+
* guards refuse an attachment change exactly as they would refuse the
|
|
1418
|
+
* record's own update. A record with no stored body (never written, marker,
|
|
1419
|
+
* elevated tier) is not gated — attaching before the first `put()` was
|
|
1420
|
+
* always allowed. @internal
|
|
1421
|
+
*/
|
|
1422
|
+
_assertRecordMutable(id: string): Promise<void>;
|
|
1404
1423
|
/** Get all records as encrypted envelopes (for dump). */
|
|
1405
1424
|
dumpEnvelopes(): Promise<Record<string, EncryptedEnvelope>>;
|
|
1406
1425
|
/**
|
|
@@ -1469,6 +1488,8 @@ export declare class Collection<T, S extends keyof T = never, Q extends keyof T
|
|
|
1469
1488
|
/** Drop a record's encrypted _vec sidecar on erasure (a vector is text-invertible).
|
|
1470
1489
|
* Called by vault.ts forget() inside a resilient try/catch; residue is reported in ForgetResult. */
|
|
1471
1490
|
_purgeVector(id: string): Promise<void>;
|
|
1491
|
+
/** @internal #1359 — force an immediate sidecar write, cancelling the debounce. No-op when none opted in. */
|
|
1492
|
+
_flushFieldIndexes(): Promise<void>;
|
|
1472
1493
|
/** Drop the persisted lexical-index blob (forget/erasure): an opaque
|
|
1473
1494
|
* all-records index must not survive crypto-shred. Idempotent; no-op without persist. */
|
|
1474
1495
|
_purgeSearchIndex(): Promise<void>;
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* @internal
|
|
11
11
|
*/
|
|
12
12
|
import type { EncryptedEnvelope, NoydbStore, VdigFieldPolicy } from './types.js';
|
|
13
|
-
import { type RecordCodec, type EnclaveKey } from '
|
|
13
|
+
import { type RecordCodec, type EnclaveKey } from '../capsule/index.js';
|
|
14
14
|
import type { MutationOrigin } from './mutation.js';
|
|
15
15
|
/**
|
|
16
16
|
* @internal Structural (not imported) view of `UnlockedKeyring` — only
|
package/dist/kernel/errors.d.ts
CHANGED
|
@@ -37,7 +37,8 @@
|
|
|
37
37
|
* │ ├─ IndexWriteFailureError — index side-car put/delete failed post-main
|
|
38
38
|
* │ ├─ UniqueConstraintError — duplicate value on unique index
|
|
39
39
|
* │ ├─ UnsupportedIndexOptionError — unique+lazy or unique+crdt at registration
|
|
40
|
-
* │
|
|
40
|
+
* │ ├─ FieldNotQueryableError — field's Via posture is queryable: 'none'
|
|
41
|
+
* │ └─ CollectionNotHydratedError — sync terminal used on a never-loaded collection
|
|
41
42
|
* ├─ i18n / Dictionary errors
|
|
42
43
|
* │ ├─ ReservedCollectionNameError
|
|
43
44
|
* │ ├─ DictKeyMissingError
|
|
@@ -136,32 +137,102 @@ export declare class DecryptionError extends NoydbError {
|
|
|
136
137
|
constructor(message?: string);
|
|
137
138
|
}
|
|
138
139
|
/**
|
|
139
|
-
*
|
|
140
|
-
*
|
|
141
|
-
*
|
|
142
|
-
*
|
|
143
|
-
*
|
|
144
|
-
* corruption
|
|
145
|
-
*
|
|
146
|
-
|
|
140
|
+
* **Means exactly: "this envelope carries no sealed body, and this path needs
|
|
141
|
+
* one."** (#15)
|
|
142
|
+
*
|
|
143
|
+
* Since `_iv`/`_data` became optional, an envelope written by an *exclave*
|
|
144
|
+
* capsule has no ciphertext body at all. Handed to an AES decrypt path, that
|
|
145
|
+
* is neither corruption nor an attack — it is a capsule mismatch, and it must
|
|
146
|
+
* not be reported as one of the two errors it superficially resembles:
|
|
147
|
+
*
|
|
148
|
+
* - **not {@link TamperedError}**, whose entire documented meaning is "the
|
|
149
|
+
* AEAD tag did not verify under this key". That class is hub's security
|
|
150
|
+
* alert; raising it for a structurally absent body would manufacture a
|
|
151
|
+
* tamper signal out of a configuration difference, and the operator
|
|
152
|
+
* response to the two is completely different.
|
|
153
|
+
* - **not a bare `TypeError`**, which is what reading `.length` or passing
|
|
154
|
+
* `undefined` into `decrypt()` produced before this issue — an internal
|
|
155
|
+
* slip surfacing as if hub had a bug in its own arithmetic.
|
|
156
|
+
*
|
|
157
|
+
* `where` names the call path that required the body, because the same
|
|
158
|
+
* absence is legitimate two frames earlier: {@link hasSealedBody} answers
|
|
159
|
+
* false for it, and a tombstone, a `_del` marker and a plaintext collection
|
|
160
|
+
* all reach that answer by design.
|
|
161
|
+
*/
|
|
162
|
+
export declare class MissingEnvelopeBodyError extends NoydbError {
|
|
163
|
+
/** The operation that required a sealed body, e.g. `'openEnvelopeJson'`. */
|
|
164
|
+
readonly where: string;
|
|
165
|
+
constructor(where: string);
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* **Means exactly: "AEAD failed under this key."** Nothing more (lanna-db #4,
|
|
169
|
+
* 2026-09-03). AES-256-GCM authenticates the ciphertext on every decrypt; if
|
|
170
|
+
* the tag does not verify under the DEK the caller supplied, the enclave
|
|
171
|
+
* throws this. Only the enclave throws it *for* an AEAD failure — everywhere
|
|
172
|
+
* else in hub that names this class is either passing one through or
|
|
173
|
+
* attaching evidence it holds (see {@link reason}).
|
|
174
|
+
*
|
|
175
|
+
* What it does NOT mean on its own: "someone modified the bytes". Four
|
|
176
|
+
* situations all present as an AEAD failure — the bytes were altered; the
|
|
177
|
+
* caller holds no key for this collection and a fabricated one was tried; the
|
|
178
|
+
* body is identity-bound to another vault; the body was sealed under a format
|
|
179
|
+
* this build does not read. The first is the security alert; the other three
|
|
180
|
+
* are evidence a caller can hold BEFORE decrypting, and when it does it says
|
|
181
|
+
* so in `reason`. **With `reason` absent, treat this as the alert it has
|
|
182
|
+
* always been.** Hub's own tier-fallback code (`with-shape/blobs`) branches
|
|
183
|
+
* on this class as "not ours at this tier — try the next", which is the
|
|
184
|
+
* correct reading of "did not open under this key".
|
|
185
|
+
*
|
|
186
|
+
* A key derived from a user credential (recovery code, password, share set)
|
|
187
|
+
* that fails to open a blob is a wrong KEY, and surfaces as
|
|
188
|
+
* {@link InvalidKeyError}, never this class — `wrapped-deks.ts` translates.
|
|
189
|
+
*/
|
|
190
|
+
/** See {@link TamperedError.reason}. */
|
|
191
|
+
export type TamperedReason = 'unbound-legacy-format' | 'key-absent' | 'generation-mismatch' | 'foreign-stamp';
|
|
147
192
|
export declare class TamperedError extends NoydbError {
|
|
148
193
|
/**
|
|
149
|
-
*
|
|
194
|
+
* Evidence the thrower held BEFORE decrypting, when it held any. Additive
|
|
195
|
+
* (#1103 pattern): the throw and the class are unchanged, so
|
|
196
|
+
* `catch (e) { if (e instanceof TamperedError) … }` keeps working; callers
|
|
197
|
+
* that want to tell a migration or a missing grant from a breach read this.
|
|
150
198
|
*
|
|
151
|
-
* `'unbound-legacy-format'` — the body opens under an EMPTY AAD, so it was
|
|
152
|
-
*
|
|
153
|
-
*
|
|
154
|
-
*
|
|
199
|
+
* - `'unbound-legacy-format'` — the body opens under an EMPTY AAD, so it was
|
|
200
|
+
* sealed before identity binding (#1041): a format transition, not an
|
|
201
|
+
* attack. Positive evidence: producing a body that decrypts under this DEK
|
|
202
|
+
* requires the DEK, which an untrusted store does not hold. (#1103)
|
|
203
|
+
* - `'key-absent'` — this keyring holds no DEK for a collection that already
|
|
204
|
+
* has records, and the DEK cannot be back-filled (wrapping needs the
|
|
205
|
+
* grantee's secret, which the vault never stores). Thrown by the DEK
|
|
206
|
+
* resolver instead of minting a key that would decrypt nothing and
|
|
207
|
+
* resurface as a bare AEAD failure — the #1288 misdiagnosis. Reserved
|
|
208
|
+
* collections (`_periods`, …) take this path; user collections throw
|
|
209
|
+
* `NoAccessError` (#1004/#1010).
|
|
210
|
+
* - `'generation-mismatch'` — reserved for "the artefact was sealed at a
|
|
211
|
+
* generation this reader cannot compute". **Not emitted by this build**:
|
|
212
|
+
* hub reads no generation stamp off any envelope — `NOYDB_ENVELOPE_GENERATION`
|
|
213
|
+
* is an exported constant, and the stamp a bundle carries is manifest data
|
|
214
|
+
* a reader never branches on (ADR 0003). The one generation fact hub can
|
|
215
|
+
* establish from the bytes — "opens under an empty AAD" — is already
|
|
216
|
+
* `'unbound-legacy-format'`. Absence of a stamp never reads as
|
|
217
|
+
* generation 1 (`docs/ENVELOPE-GENERATION.md`).
|
|
218
|
+
* - `'foreign-stamp'` — reserved for "this vault's DEK was asked to open a
|
|
219
|
+
* body identity-bound to ANOTHER vault". **Not emitted by this build**:
|
|
220
|
+
* nothing in hub can tell that apart from another vault's compartment
|
|
221
|
+
* merely being present, which in a multi-vault bundle is normal
|
|
222
|
+
* (klum `extractCrossVaultPartition`).
|
|
155
223
|
*
|
|
156
|
-
*
|
|
157
|
-
*
|
|
224
|
+
* Both reserved values are declared so consumers can type against them; a
|
|
225
|
+
* build that starts emitting either will say so in its CHANGELOG.
|
|
158
226
|
*
|
|
159
|
-
*
|
|
160
|
-
*
|
|
161
|
-
*
|
|
227
|
+
* Absent — no evidence; the security alert.
|
|
228
|
+
*
|
|
229
|
+
* ⚠️ `reason` is hub's IN-PROCESS report and may be branched on. A
|
|
230
|
+
* generation or origin stamp read out of an untrusted manifest may NOT — it
|
|
231
|
+
* is store-supplied data, not evidence (klum ADR 0003). If you are holding
|
|
232
|
+
* a stamp and not this error, you are holding a claim.
|
|
162
233
|
*/
|
|
163
|
-
readonly reason?:
|
|
164
|
-
constructor(message?: string, reason?:
|
|
234
|
+
readonly reason?: TamperedReason;
|
|
235
|
+
constructor(message?: string, reason?: TamperedReason);
|
|
165
236
|
}
|
|
166
237
|
/**
|
|
167
238
|
* Thrown when key unwrapping fails, typically because the secret is wrong
|
|
@@ -589,7 +660,36 @@ export declare class PeriodClosedError extends NoydbError {
|
|
|
589
660
|
readonly periodName: string;
|
|
590
661
|
readonly endDate: string;
|
|
591
662
|
readonly recordTs: string;
|
|
592
|
-
|
|
663
|
+
/**
|
|
664
|
+
* #1455 — the business-date field the guard compared, when the period
|
|
665
|
+
* declares one. Absent on the envelope-`_ts` (no `dateField`) path.
|
|
666
|
+
* Structured so a consumer can render the refusal without parsing
|
|
667
|
+
* `recordTs`'s composed `"incoming[cycle]=2026-06"` form.
|
|
668
|
+
*/
|
|
669
|
+
readonly dateField: string | undefined;
|
|
670
|
+
/** #1455 — which side of the write tripped the seal. */
|
|
671
|
+
readonly side: 'existing' | 'incoming' | undefined;
|
|
672
|
+
constructor(periodName: string, endDate: string, recordTs: string, detail?: {
|
|
673
|
+
dateField?: string;
|
|
674
|
+
side?: 'existing' | 'incoming';
|
|
675
|
+
});
|
|
676
|
+
}
|
|
677
|
+
/**
|
|
678
|
+
* Thrown when the `_periods` hash chain does not verify on load (#1454): a
|
|
679
|
+
* period record's `priorPeriodHash` / `priorPeriodName` no longer resolve to
|
|
680
|
+
* the stored predecessor in its timeline — an interior close was rewritten or
|
|
681
|
+
* deleted under the engine. The write guard refuses to evaluate against a set
|
|
682
|
+
* it cannot trust, so every period-governed write fails with this until the
|
|
683
|
+
* store is repaired from a trusted copy.
|
|
684
|
+
*
|
|
685
|
+
* The chain cannot see a rewrite of the NEWEST record in a timeline (nothing
|
|
686
|
+
* hashes it yet); the public-API refusal in `vault.collection()` is what closes
|
|
687
|
+
* that path.
|
|
688
|
+
*/
|
|
689
|
+
export declare class PeriodChainError extends NoydbError {
|
|
690
|
+
readonly periodName: string;
|
|
691
|
+
readonly partition: readonly (string | number)[] | undefined;
|
|
692
|
+
constructor(periodName: string, why: string, partition?: readonly (string | number)[]);
|
|
593
693
|
}
|
|
594
694
|
/**
|
|
595
695
|
* Thrown when a `put()` or `delete()` is rejected by a guard's `check`
|
|
@@ -658,7 +758,7 @@ export declare class AmendmentForbiddenError extends NoydbError {
|
|
|
658
758
|
* envelope ciphertext is still in the store, the keyring file is
|
|
659
759
|
* still listed at `_keyring/*`, and anyone with direct store read
|
|
660
760
|
* access can count keyrings without going through the hub. See
|
|
661
|
-
* `https://github.com/
|
|
761
|
+
* `https://github.com/noy-db/docs/blob/main/content/docs/services/user-envelope.md` → "Directory visibility".
|
|
662
762
|
*/
|
|
663
763
|
export declare class DirectoryDisabledError extends NoydbError {
|
|
664
764
|
readonly vault: string;
|
|
@@ -933,6 +1033,22 @@ export declare class NotFoundError extends NoydbError {
|
|
|
933
1033
|
export declare class ValidationError extends NoydbError {
|
|
934
1034
|
constructor(message?: string);
|
|
935
1035
|
}
|
|
1036
|
+
/**
|
|
1037
|
+
* Thrown when a `where(field, 'matches', …)` operand is refused (#1357).
|
|
1038
|
+
*
|
|
1039
|
+
* Three distinct refusals, all loud and all at the `where()` call site:
|
|
1040
|
+
* - the operand is neither a `RegExp` nor a LIKE string,
|
|
1041
|
+
* - the pattern trips the ReDoS budget (source length, group nesting,
|
|
1042
|
+
* quantifier count, or a quantified group that itself quantifies),
|
|
1043
|
+
* - the RegExp carries a `g`/`y` flag, which makes `test()` stateful
|
|
1044
|
+
* across records and would silently drop rows.
|
|
1045
|
+
*
|
|
1046
|
+
* Deliberately a REFUSAL, never a rewrite: a sanitiser that "fixes" a
|
|
1047
|
+
* user pattern changes which rows come back without saying so.
|
|
1048
|
+
*/
|
|
1049
|
+
export declare class UnsafePatternError extends NoydbError {
|
|
1050
|
+
constructor(message: string);
|
|
1051
|
+
}
|
|
936
1052
|
/**
|
|
937
1053
|
* Thrown when a Standard Schema v1 validator rejects a record on
|
|
938
1054
|
* `put()` (input validation) or on read (output validation). Carries
|
|
@@ -1011,7 +1127,41 @@ export declare class GroupCardinalityError extends NoydbError {
|
|
|
1011
1127
|
readonly cardinality: number;
|
|
1012
1128
|
/** The cap that was exceeded. */
|
|
1013
1129
|
readonly maxGroups: number;
|
|
1014
|
-
constructor(field: string, cardinality: number, maxGroups: number
|
|
1130
|
+
constructor(field: string, cardinality: number, maxGroups: number,
|
|
1131
|
+
/**
|
|
1132
|
+
* Which surface refused (#1340). `'query'` — the eager `.groupBy()`, whose
|
|
1133
|
+
* ceiling is a fixed constant. `'scan'` — the streaming
|
|
1134
|
+
* `scan().groupBy(key, { maxGroups })`, whose ceiling is a DECLARED budget,
|
|
1135
|
+
* so its message names the option that raises it. The two differ only in
|
|
1136
|
+
* the advice; the code, the fields and the class are one.
|
|
1137
|
+
*/
|
|
1138
|
+
surface?: 'query' | 'scan');
|
|
1139
|
+
}
|
|
1140
|
+
/**
|
|
1141
|
+
* Thrown by `.traverse()` / `ancestorsOf()` / `descendantsOf()` when a cycle
|
|
1142
|
+
* is reached AND the caller opted into `{ onCycle: 'throw' }` (#1352).
|
|
1143
|
+
*
|
|
1144
|
+
* The default is `'stop'` — the walk simply does not re-enter a node already
|
|
1145
|
+
* on the current path, which is what keeps a circular parent chain from
|
|
1146
|
+
* hanging the tab. `'throw'` exists for the other legitimate reading: a
|
|
1147
|
+
* self-referencing hierarchy that is SUPPOSED to be acyclic, where a cycle is
|
|
1148
|
+
* a data-integrity finding the consumer wants surfaced rather than silently
|
|
1149
|
+
* pruned.
|
|
1150
|
+
*
|
|
1151
|
+
* `cycle` is the offending walk closed back on itself — the path from the
|
|
1152
|
+
* seed to the node that would have been re-entered, with that node repeated
|
|
1153
|
+
* as the final element, so `cycle[0]` and `cycle.at(-1)` name the same
|
|
1154
|
+
* record only for a cycle that reaches all the way back to the seed.
|
|
1155
|
+
*/
|
|
1156
|
+
export declare class TraversalCycleError extends NoydbError {
|
|
1157
|
+
/** The declared self-ref field being traversed. */
|
|
1158
|
+
readonly field: string;
|
|
1159
|
+
/** The path that closed on itself, with the re-entered id repeated last. */
|
|
1160
|
+
readonly cycle: readonly string[];
|
|
1161
|
+
constructor(opts: {
|
|
1162
|
+
field: string;
|
|
1163
|
+
cycle: readonly string[];
|
|
1164
|
+
});
|
|
1015
1165
|
}
|
|
1016
1166
|
/**
|
|
1017
1167
|
* Thrown in lazy mode when a `.query()` / `.where()` / `.orderBy()` clause
|
|
@@ -1030,10 +1180,24 @@ export declare class IndexRequiredError extends NoydbError {
|
|
|
1030
1180
|
readonly collection: string;
|
|
1031
1181
|
readonly touchedFields: readonly string[];
|
|
1032
1182
|
readonly missingFields: readonly string[];
|
|
1183
|
+
/**
|
|
1184
|
+
* Why the index could not serve the query, when it is NOT "a field is
|
|
1185
|
+
* unindexed" (#1407).
|
|
1186
|
+
*
|
|
1187
|
+
* ⚠️ The default message names missing fields, and that sentence is FALSE
|
|
1188
|
+
* for a refusal on an indexed field — a `where(f,'==',null)` in lazy mode is
|
|
1189
|
+
* refused because the persisted index never holds nullish values, not
|
|
1190
|
+
* because `f` lacks an index. Telling that caller to "declare an index on
|
|
1191
|
+
* each field" sends them to fix something that is already correct, which is
|
|
1192
|
+
* the same defect #1430 fixed in `WeakSecretError`: advice describing rules
|
|
1193
|
+
* that do not apply here.
|
|
1194
|
+
*/
|
|
1195
|
+
readonly reason: string | undefined;
|
|
1033
1196
|
constructor(args: {
|
|
1034
1197
|
collection: string;
|
|
1035
1198
|
touchedFields: readonly string[];
|
|
1036
1199
|
missingFields: readonly string[];
|
|
1200
|
+
reason?: string;
|
|
1037
1201
|
});
|
|
1038
1202
|
}
|
|
1039
1203
|
/**
|
|
@@ -1062,16 +1226,17 @@ export declare class UniqueConstraintError extends NoydbError {
|
|
|
1062
1226
|
* Thrown at collection registration when an index option is declared that
|
|
1063
1227
|
* is incompatible with the collection's operating mode.
|
|
1064
1228
|
*
|
|
1065
|
-
*
|
|
1066
|
-
*
|
|
1067
|
-
*
|
|
1068
|
-
*
|
|
1069
|
-
*
|
|
1070
|
-
*
|
|
1071
|
-
*
|
|
1072
|
-
*
|
|
1073
|
-
*
|
|
1074
|
-
*
|
|
1229
|
+
* ⚠️ **Nothing throws this today (#1358).** It used to cover three cases —
|
|
1230
|
+
* `unique: true` on a lazy-mode (`prefetch: false`), CRDT, or tiered
|
|
1231
|
+
* collection — because those write paths bypassed enforcement. Lazy and
|
|
1232
|
+
* tiered now enforce for real, and CRDT reports detected duplicates on the
|
|
1233
|
+
* `unique:violation` event instead of refusing the declaration (see
|
|
1234
|
+
* `with-lookup/indexing/unique-constraints.ts`). The class is retained: it is
|
|
1235
|
+
* part of the published surface, and it is the right shape for the next index
|
|
1236
|
+
* option that a mode genuinely cannot honour.
|
|
1237
|
+
*
|
|
1238
|
+
* Any future case belongs at `vault.collection()` time so the developer sees
|
|
1239
|
+
* the incompatibility immediately rather than shipping silently-ignored
|
|
1075
1240
|
* constraints.
|
|
1076
1241
|
*
|
|
1077
1242
|
* The `option` field names the incompatible option (`'unique'`) so catch blocks
|
|
@@ -1138,10 +1303,58 @@ export declare class PersistedIndexCompensationError extends NoydbError {
|
|
|
1138
1303
|
* Payload:
|
|
1139
1304
|
* - `field` — the refused field name
|
|
1140
1305
|
*/
|
|
1306
|
+
/**
|
|
1307
|
+
* #1458 — a query-tier extension method was called without its subpath.
|
|
1308
|
+
*
|
|
1309
|
+
* The DSL ships in four groups. `@noy-db/hub/query` carries **Find** and is
|
|
1310
|
+
* always present; **Live**, **Reduce** and **Relate** arrive by side-effect
|
|
1311
|
+
* import (`import '@noy-db/hub/query/relate'`), which patches the missing
|
|
1312
|
+
* methods onto `Query.prototype` and — through the `declare module` block
|
|
1313
|
+
* that ships with each subpath — onto the `Query` TYPE.
|
|
1314
|
+
*
|
|
1315
|
+
* ⭐ **The compile error is the primary signal; this is the backstop.** With
|
|
1316
|
+
* the types wired that way, calling `.join()` without the import does not
|
|
1317
|
+
* typecheck, which is where a TypeScript consumer meets the problem. This
|
|
1318
|
+
* error is what a JavaScript consumer, or a call that reached the method
|
|
1319
|
+
* through a cast, gets instead of `TypeError: q.join is not a function` —
|
|
1320
|
+
* a message that names neither what is missing nor how to get it.
|
|
1321
|
+
*
|
|
1322
|
+
* ⚠️ It is deliberately NOT a lazy loader. Fetching the chunk here would
|
|
1323
|
+
* defer the cost rather than remove it, and a first `.join()` offline would
|
|
1324
|
+
* fail on a network fetch — the opposite of what an offline-first store
|
|
1325
|
+
* promises. The one line of import is the price of the byte saving.
|
|
1326
|
+
*/
|
|
1327
|
+
export declare class QueryExtensionMissingError extends NoydbError {
|
|
1328
|
+
/** The method that was called, e.g. `'join'`. */
|
|
1329
|
+
readonly method: string;
|
|
1330
|
+
/** The subpath whose import supplies it, e.g. `'@noy-db/hub/query/relate'`. */
|
|
1331
|
+
readonly subpath: string;
|
|
1332
|
+
constructor(method: string, subpath: string);
|
|
1333
|
+
}
|
|
1141
1334
|
export declare class FieldNotQueryableError extends NoydbError {
|
|
1142
1335
|
readonly field: string;
|
|
1143
1336
|
constructor(field: string);
|
|
1144
1337
|
}
|
|
1338
|
+
/**
|
|
1339
|
+
* #1414 — thrown when a synchronous query terminal is USED on a collection
|
|
1340
|
+
* that has never been loaded. The collection's eager cache is empty because
|
|
1341
|
+
* nothing has read it yet, not because the collection is empty: those are
|
|
1342
|
+
* different facts, and only one of them is safe to act on.
|
|
1343
|
+
*
|
|
1344
|
+
* The terminal itself does not throw — it returns a pending result so that the
|
|
1345
|
+
* AWAITED form (`await collection.query().toArray()`, which is what every
|
|
1346
|
+
* async guard `check` does) transparently hydrates and answers correctly. The
|
|
1347
|
+
* error is raised the moment that value is used synchronously: indexed,
|
|
1348
|
+
* iterated, compared, coerced, or read for a property.
|
|
1349
|
+
*
|
|
1350
|
+
* Fix a caller by awaiting the terminal, or by `await collection.list()` /
|
|
1351
|
+
* `await collection.get(id)` before the synchronous read.
|
|
1352
|
+
*/
|
|
1353
|
+
export declare class CollectionNotHydratedError extends NoydbError {
|
|
1354
|
+
readonly collection: string;
|
|
1355
|
+
readonly terminal: string;
|
|
1356
|
+
constructor(collection: string, terminal: string, label?: string);
|
|
1357
|
+
}
|
|
1145
1358
|
/**
|
|
1146
1359
|
* Thrown by `readPod()` when the body bytes don't match
|
|
1147
1360
|
* the integrity hash declared in the bundle header — i.e. someone
|
|
@@ -1677,12 +1890,18 @@ export declare class JoinTooLargeError extends NoydbError {
|
|
|
1677
1890
|
readonly leftRows: number;
|
|
1678
1891
|
readonly rightRows: number;
|
|
1679
1892
|
readonly maxRows: number;
|
|
1680
|
-
|
|
1893
|
+
/**
|
|
1894
|
+
* Which count tripped the ceiling. `'output'` is #1339's addition: a
|
|
1895
|
+
* declared non-equi `.joinOn()` is many-to-many, so it can exceed the
|
|
1896
|
+
* ceiling with both SIDES comfortably under it — the produced row count is
|
|
1897
|
+
* the only thing standing between a theta join and a hang.
|
|
1898
|
+
*/
|
|
1899
|
+
readonly side: 'left' | 'right' | 'output';
|
|
1681
1900
|
constructor(opts: {
|
|
1682
1901
|
leftRows: number;
|
|
1683
1902
|
rightRows: number;
|
|
1684
1903
|
maxRows: number;
|
|
1685
|
-
side: 'left' | 'right';
|
|
1904
|
+
side: 'left' | 'right' | 'output';
|
|
1686
1905
|
message: string;
|
|
1687
1906
|
});
|
|
1688
1907
|
}
|
|
@@ -2177,7 +2396,7 @@ export declare class RecoveryProfileNotImplementedError extends NoydbError {
|
|
|
2177
2396
|
constructor(profile: string, tracking: string);
|
|
2178
2397
|
}
|
|
2179
2398
|
/**
|
|
2180
|
-
* Thrown by a `
|
|
2399
|
+
* Thrown by a `capsule/enclave-aes` fork's **optional groups** — sealing,
|
|
2181
2400
|
* deterministic, per-record-key lifecycle — when that fork's crypto
|
|
2182
2401
|
* engine does not implement the requested behavior.
|
|
2183
2402
|
*
|
|
@@ -2200,7 +2419,7 @@ export declare class EnclaveNotSupportedError extends NoydbError {
|
|
|
2200
2419
|
* Raised when a collection's `classifiedFields` configuration is invalid
|
|
2201
2420
|
* (e.g. a claimed field name collides with a rider companion or another
|
|
2202
2421
|
* classified field). Homed in `kernel/errors.ts` (rather than the classified
|
|
2203
|
-
* feature module) so `
|
|
2422
|
+
* feature module) so `capsule/enclave-aes/classify/*` can throw it without
|
|
2204
2423
|
* importing with-*; the classified feature module re-exports it under the
|
|
2205
2424
|
* same name for backward-compatible import paths.
|
|
2206
2425
|
*/
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A `Map` that stamps every mutation with a globally unique, monotonic tick
|
|
3
|
+
* (#1417).
|
|
4
|
+
*
|
|
5
|
+
* The eager collection cache is written at ELEVEN sites — `put`, `delete`,
|
|
6
|
+
* hydration, sync cut-over, the lookup write-through, and more. Anything that
|
|
7
|
+
* memoizes a derived view of that cache (a sorted keyset page order; a
|
|
8
|
+
* decorated row set) needs to know when the cache moved, and hand-bumping a
|
|
9
|
+
* counter at eleven call sites is a stale-read waiting to happen: miss one and
|
|
10
|
+
* a reader serves rows from before a write, which is strictly worse than the
|
|
11
|
+
* cost the memo was there to avoid.
|
|
12
|
+
*
|
|
13
|
+
* ⛔ So the counter lives in the container, not at the call sites. Every
|
|
14
|
+
* mutation route into a `Map` is `set` / `delete` / `clear`; overriding those
|
|
15
|
+
* three makes the invariant STRUCTURAL — a new write site cannot forget,
|
|
16
|
+
* because there is nothing for it to remember.
|
|
17
|
+
*
|
|
18
|
+
* ⭐ THE TICK IS GLOBAL, NOT PER-INSTANCE, and that is load-bearing. A memo
|
|
19
|
+
* keyed on `<vault>/<collection>` + a per-instance count collides across two
|
|
20
|
+
* collections that share a name — a second vault, a torn-down and rebuilt
|
|
21
|
+
* instance, a test suite reusing `V/rows` — because both count from zero. A
|
|
22
|
+
* process-wide tick makes every stamp unique, so identity + generation is a
|
|
23
|
+
* sound memo key without the memo having to know about instance lifetimes.
|
|
24
|
+
* (Measured, by a test that reused a collection name and got another
|
|
25
|
+
* collection's page order back.)
|
|
26
|
+
*
|
|
27
|
+
* `set` bumps even when the value is identical: a redundant invalidation costs
|
|
28
|
+
* one recompute, a missed one costs correctness.
|
|
29
|
+
*
|
|
30
|
+
* @module
|
|
31
|
+
*/
|
|
32
|
+
export declare class GenerationMap<K, V> extends Map<K, V> {
|
|
33
|
+
/**
|
|
34
|
+
* ⚠️ NOT a `#private` field, and not readonly-initialised, deliberately.
|
|
35
|
+
* `Map`'s constructor calls `this.set()` for each entry of an iterable
|
|
36
|
+
* argument — which runs BEFORE this class's fields are installed. A
|
|
37
|
+
* `#private` field throws `TypeError` on touch at that point; a declared
|
|
38
|
+
* property is merely `undefined`, and assigning to it is safe. The
|
|
39
|
+
* initializer below then runs and resets it to 0, which is the correct
|
|
40
|
+
* resting state for a freshly built map.
|
|
41
|
+
*/
|
|
42
|
+
private gen;
|
|
43
|
+
/** Mutation stamp. Equal across two reads means nothing changed between them. */
|
|
44
|
+
get generation(): number;
|
|
45
|
+
set(key: K, value: V): this;
|
|
46
|
+
delete(key: K): boolean;
|
|
47
|
+
clear(): void;
|
|
48
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { MergeAuthority } from '../port/with/merge-authority.js';
|
|
2
|
-
import type { EnclaveKey } from '
|
|
2
|
+
import type { EnclaveKey } from '../capsule/index.js';
|
|
3
3
|
/**
|
|
4
4
|
* ⚠️ **A client cannot verify what it cannot decrypt** — and that boundary is
|
|
5
5
|
* stated here rather than hidden.
|
package/dist/kernel/noydb.d.ts
CHANGED
|
@@ -620,6 +620,11 @@ export declare class Noydb {
|
|
|
620
620
|
enableTabCoordination(opts?: TabCoordinationOptions): {
|
|
621
621
|
dispose: () => void;
|
|
622
622
|
};
|
|
623
|
+
/** @internal #1362 — `ChangeBroadcastHost`: re-read one broadcast address through THIS
|
|
624
|
+
* instance's own keyring. No-op for a vault this instance has not opened. */
|
|
625
|
+
_applyRemoteSignal(vaultName: string, collectionName: string, id: string): Promise<void>;
|
|
626
|
+
/** @internal #1362 — `ChangeBroadcastHost`: store backend name, for the default channel name. */
|
|
627
|
+
get _storeName(): string | undefined;
|
|
623
628
|
private disableTabCoordination;
|
|
624
629
|
get tabRole(): TabRole;
|
|
625
630
|
activeTabs(): TabPresence[];
|
|
@@ -713,7 +718,7 @@ export declare class Noydb {
|
|
|
713
718
|
* keyring file at `_keyring/<userId>` and the envelope ciphertext at
|
|
714
719
|
* `_users/<keyringId>` remain observable to anyone with direct store
|
|
715
720
|
* read access — only the hub-level enumeration is gated. See
|
|
716
|
-
* `https://github.com/
|
|
721
|
+
* `https://github.com/noy-db/docs/blob/main/content/docs/services/user-envelope.md` → "Directory visibility".
|
|
717
722
|
*/
|
|
718
723
|
setDirectoryEnabled(vault: string, enabled: boolean): Promise<void>;
|
|
719
724
|
/**
|
package/dist/kernel/paths.d.ts
CHANGED
|
@@ -1,11 +1,35 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
* these carry zero i18n logic — they were extracted out of
|
|
4
|
-
* `via/i18n/core.ts` (Task 7, #623) so kernel call-sites (put-time
|
|
5
|
-
* validation, densify) can import them without a spine→service edge.
|
|
2
|
+
* Refuse a malformed field path AT DECLARATION TIME.
|
|
6
3
|
*
|
|
7
|
-
* @
|
|
4
|
+
* ⛔ WHY THIS EXISTS. {@link getAtPath} performs no validation by design — it
|
|
5
|
+
* answers "what is at this path", and "nothing" is a legitimate answer for an
|
|
6
|
+
* optional field or an empty array. The consequence is that a MALFORMED path
|
|
7
|
+
* is indistinguishable from an absent value: `'contacts[.name'` contains no
|
|
8
|
+
* `[].` and no `.`, so it falls through to `obj['contacts[.name']`, resolves
|
|
9
|
+
* to `undefined`, and the declaration does nothing. Forever. Silently.
|
|
10
|
+
*
|
|
11
|
+
* Measured 2026-09-13: an `i18nFields` declaration with `required: 'all'` and
|
|
12
|
+
* a malformed path accepted a record missing every required language, while
|
|
13
|
+
* the same spec on a well-formed path refused it. The guarantee was not
|
|
14
|
+
* weakened — it was never installed.
|
|
15
|
+
*
|
|
16
|
+
* ⭐ SAME CLASS AS core#19 AND `moneyFields`. `via/money/paths.ts` already
|
|
17
|
+
* guards its own grammar and says why in its header ("a declared-but-
|
|
18
|
+
* unreachable path that was silently ignored ... a latent 100× bug");
|
|
19
|
+
* `classifiedFields` did not, and a consumer found the leak. This is the third
|
|
20
|
+
* instance, which is why the check lives HERE, beside the resolver every
|
|
21
|
+
* path-taking family shares, rather than being written a third time.
|
|
22
|
+
*
|
|
23
|
+
* ⚠️ SYNTAX ONLY. A well-formed path naming a field that does not exist
|
|
24
|
+
* (`titel` for `title`) is NOT caught here and cannot be — that needs the
|
|
25
|
+
* collection's schema, which is not always declared. It is a real and separate
|
|
26
|
+
* gap; see the issue filed alongside this guard.
|
|
27
|
+
*
|
|
28
|
+
* Trailing `[]` is refused because `getAtPath` cannot consume it: the wildcard
|
|
29
|
+
* is recognised as the three-character marker `[].`, so `'contacts[]'` with
|
|
30
|
+
* nothing after it is read as an ordinary key and resolves to nothing.
|
|
8
31
|
*/
|
|
32
|
+
export declare function assertFieldPath(path: string, context: string): void;
|
|
9
33
|
/**
|
|
10
34
|
* Return all leaf values at `path`, expanding `[].` array wildcards.
|
|
11
35
|
*
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
* kernel-surface line budget.
|
|
12
12
|
*/
|
|
13
13
|
import type { EncryptedEnvelope } from './types.js';
|
|
14
|
-
import type { EnclaveKey } from '
|
|
14
|
+
import type { EnclaveKey } from '../capsule/index.js';
|
|
15
15
|
/** @internal Everything `_commitPut` needs after `_preparePut` produced the envelope. */
|
|
16
16
|
export interface PreparedPut<T> {
|
|
17
17
|
readonly id: string;
|