@noy-db/hub 0.7.0 → 0.8.0-pre.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 +105 -14
- package/LICENSE +202 -21
- package/NOTICE +1 -0
- package/README.md +27 -10
- package/codemods/0.8.0-pre.json +61 -0
- package/dist/api-GVYEKSJE.js +19 -0
- package/dist/as/index.js +11 -11
- package/dist/at/index.js +9 -9
- package/dist/attestation/index.js +20 -20
- package/dist/{backup-IJTB4S4M.js → backup-7TFRVFLH.js} +21 -15
- package/dist/backup-7TFRVFLH.js.map +1 -0
- package/dist/blobs/index.js +13 -13
- package/dist/broker/index.js +12 -12
- package/dist/by/index.js +2 -2
- package/dist/cargo/index.js +39 -36
- package/dist/{chunk-7O3Y4PPD.js → chunk-244VXYPG.js} +140 -16
- package/dist/chunk-244VXYPG.js.map +1 -0
- package/dist/{chunk-BUE2D7PX.js → chunk-32YV3TJT.js} +2 -2
- package/dist/{chunk-3RCJJBNR.js → chunk-3ELRMVJK.js} +12 -12
- package/dist/{chunk-6GMZ7HEE.js → chunk-3F7GLNAE.js} +6 -6
- package/dist/{chunk-2Y4IMKA6.js → chunk-3H5KLDZN.js} +4 -4
- package/dist/{chunk-VTFVLCUH.js → chunk-3JWHAR6E.js} +2 -2
- package/dist/{chunk-YMUFFJCO.js → chunk-3TDUWVWB.js} +5 -2
- package/dist/chunk-3TDUWVWB.js.map +1 -0
- package/dist/{chunk-JBDFMYKQ.js → chunk-4AF3TUMP.js} +2 -2
- package/dist/{chunk-ZORTV6NH.js → chunk-4I522ERM.js} +88 -4
- package/dist/chunk-4I522ERM.js.map +1 -0
- package/dist/{chunk-MUM7IANK.js → chunk-4MXI3ODD.js} +4 -4
- package/dist/chunk-4MXI3ODD.js.map +1 -0
- package/dist/{chunk-BLN54W3L.js → chunk-5FDLC6G7.js} +56 -3
- package/dist/chunk-5FDLC6G7.js.map +1 -0
- package/dist/chunk-5O7D6ZTW.js +53 -0
- package/dist/chunk-5O7D6ZTW.js.map +1 -0
- package/dist/{chunk-J6FXAEUG.js → chunk-6B3VNR4P.js} +12 -12
- package/dist/{chunk-TUFM4UZP.js → chunk-6K7DPM7D.js} +2 -2
- package/dist/{chunk-K6LHRFBL.js → chunk-6LMQ5R26.js} +7 -7
- package/dist/{chunk-SPXXX5E4.js → chunk-6LNL42F5.js} +94 -32
- package/dist/chunk-6LNL42F5.js.map +1 -0
- package/dist/{chunk-XLMEZIAJ.js → chunk-6OWXYZK2.js} +2 -2
- package/dist/{chunk-BOWNCWZT.js → chunk-6QSQQLSE.js} +3 -3
- package/dist/chunk-7JE7BDYJ.js +1558 -0
- package/dist/chunk-7JE7BDYJ.js.map +1 -0
- package/dist/{chunk-KG7TZKZG.js → chunk-7VCXZDA4.js} +5 -5
- package/dist/chunk-7VCXZDA4.js.map +1 -0
- package/dist/{chunk-NQKIUNW5.js → chunk-A6IJU4TK.js} +2 -2
- package/dist/{chunk-BM5TWITZ.js → chunk-ANWPSTZU.js} +38 -9
- package/dist/chunk-ANWPSTZU.js.map +1 -0
- package/dist/{chunk-QIZPZMUI.js → chunk-AOWGXU6D.js} +2 -2
- package/dist/{chunk-CUZLNGD5.js → chunk-B2YY6WDD.js} +1 -1
- package/dist/chunk-B2YY6WDD.js.map +1 -0
- package/dist/{chunk-SFAWCTEM.js → chunk-B57AFBY2.js} +2 -2
- package/dist/{chunk-GPEQUXHL.js → chunk-B6SJIBQK.js} +4 -4
- package/dist/chunk-BJ2IXQ5Q.js +100 -0
- package/dist/chunk-BJ2IXQ5Q.js.map +1 -0
- package/dist/{chunk-Q2PU57HC.js → chunk-BK2HHQGN.js} +2 -2
- package/dist/chunk-BKT776R5.js +1 -0
- package/dist/{chunk-KUX3OB6D.js → chunk-BP6DARYA.js} +33 -5
- package/dist/chunk-BP6DARYA.js.map +1 -0
- package/dist/{chunk-FXBIP2WD.js → chunk-BUDAGWL5.js} +6 -6
- package/dist/chunk-CF5UU4S7.js +757 -0
- package/dist/chunk-CF5UU4S7.js.map +1 -0
- package/dist/{chunk-BOET4NA4.js → chunk-CKNGS5MH.js} +3 -3
- package/dist/chunk-CY2CYVWZ.js +41 -0
- package/dist/chunk-CY2CYVWZ.js.map +1 -0
- package/dist/{chunk-2577DKXB.js → chunk-DC5QVPV7.js} +2 -2
- package/dist/chunk-DC5QVPV7.js.map +1 -0
- package/dist/{chunk-YSRUYAVU.js → chunk-DE4DH2RZ.js} +2 -2
- package/dist/{chunk-6I2RQCET.js → chunk-DF73H4UN.js} +4 -4
- package/dist/{chunk-4GVM6QZA.js → chunk-ENAG3IY7.js} +2 -2
- package/dist/chunk-ENAG3IY7.js.map +1 -0
- package/dist/{chunk-K7NTTA6P.js → chunk-EOVMT6TB.js} +2 -2
- package/dist/chunk-F24ZZTHQ.js +193 -0
- package/dist/chunk-F24ZZTHQ.js.map +1 -0
- package/dist/chunk-F2TDU7MQ.js +456 -0
- package/dist/chunk-F2TDU7MQ.js.map +1 -0
- package/dist/chunk-F6NCB7KT.js +13 -0
- package/dist/chunk-F6NCB7KT.js.map +1 -0
- package/dist/{chunk-SPYWXKJN.js → chunk-F7XGHL5O.js} +3 -3
- package/dist/chunk-F7XGHL5O.js.map +1 -0
- package/dist/{chunk-XTXOCYOJ.js → chunk-FCKWQE2H.js} +5 -5
- package/dist/{chunk-U4FOQDY4.js → chunk-FH2L2E34.js} +4 -4
- package/dist/chunk-FH2L2E34.js.map +1 -0
- package/dist/{chunk-4OZNXTO4.js → chunk-FN5EBVTQ.js} +2 -2
- package/dist/chunk-FQ54DWUQ.js +270 -0
- package/dist/chunk-FQ54DWUQ.js.map +1 -0
- package/dist/{chunk-NKHRDYOR.js → chunk-FQ5VRHIB.js} +4 -4
- package/dist/{chunk-FAHMLERK.js → chunk-FW22ZCXT.js} +2 -2
- package/dist/chunk-FXQBGFOX.js +524 -0
- package/dist/chunk-FXQBGFOX.js.map +1 -0
- package/dist/{chunk-AO42KJO6.js → chunk-GF5BZ7D4.js} +45 -9
- package/dist/chunk-GF5BZ7D4.js.map +1 -0
- package/dist/{chunk-TRGTKX5E.js → chunk-GHLTDZRS.js} +5 -3
- package/dist/{chunk-TRGTKX5E.js.map → chunk-GHLTDZRS.js.map} +1 -1
- package/dist/{chunk-5WDXHNSW.js → chunk-HBPPGWUM.js} +5 -5
- package/dist/chunk-HBPPGWUM.js.map +1 -0
- package/dist/{chunk-KTFRCC5C.js → chunk-HBRLNOHL.js} +82 -8
- package/dist/chunk-HBRLNOHL.js.map +1 -0
- package/dist/chunk-HLEK5VAN.js +275 -0
- package/dist/chunk-HLEK5VAN.js.map +1 -0
- package/dist/{chunk-RMS3NEA3.js → chunk-HT2AHGQI.js} +2 -2
- package/dist/{chunk-CHJBLCOG.js → chunk-HVSCEIYL.js} +7 -7
- package/dist/{chunk-UXWB3FPF.js → chunk-I3JDRCMW.js} +150 -22
- package/dist/chunk-I3JDRCMW.js.map +1 -0
- package/dist/{chunk-GY4WYNNG.js → chunk-ID6Z6E66.js} +2 -2
- package/dist/{chunk-EYBQEIUY.js → chunk-IEX7NK2K.js} +3 -3
- package/dist/{chunk-KUJDV5QH.js → chunk-ISZQJBML.js} +5 -5
- package/dist/{chunk-LWBCUYZW.js → chunk-IT22PWKV.js} +2 -2
- package/dist/{chunk-EQEYOJBM.js → chunk-IUWCVHQ7.js} +3 -3
- package/dist/chunk-IUWCVHQ7.js.map +1 -0
- package/dist/{chunk-7V4TP3AF.js → chunk-J6UOHJY5.js} +4 -4
- package/dist/{chunk-JMGDHKQF.js → chunk-JCN44NCY.js} +2 -2
- package/dist/{chunk-CARABLSQ.js → chunk-K6W7BVZ6.js} +3 -3
- package/dist/{chunk-77K4PG6P.js → chunk-KJFW62P4.js} +29 -11
- package/dist/chunk-KJFW62P4.js.map +1 -0
- package/dist/{chunk-453F654R.js → chunk-L7DOS3TE.js} +2 -2
- package/dist/chunk-LGNDFRYC.js +23 -0
- package/dist/chunk-LGNDFRYC.js.map +1 -0
- package/dist/{chunk-WEQEYLCS.js → chunk-LGRLME4M.js} +7 -7
- package/dist/{chunk-RMF67KCG.js → chunk-LQ4ZHOKP.js} +2 -2
- package/dist/{chunk-ZVO4QVPD.js → chunk-M522UYZ2.js} +5 -5
- package/dist/{chunk-G56KBWFY.js → chunk-M7NI3IWE.js} +45 -12
- package/dist/chunk-M7NI3IWE.js.map +1 -0
- package/dist/chunk-MDWKM2XC.js +293 -0
- package/dist/chunk-MDWKM2XC.js.map +1 -0
- package/dist/chunk-MKXXMNJH.js +204 -0
- package/dist/chunk-MKXXMNJH.js.map +1 -0
- package/dist/{chunk-SKGMN35F.js → chunk-MLPHLJIQ.js} +3 -3
- package/dist/chunk-MLPHLJIQ.js.map +1 -0
- package/dist/{chunk-2N4GY74U.js → chunk-MTL7MXGR.js} +6 -6
- package/dist/{chunk-TFR7DSOV.js → chunk-MVZ2TPVP.js} +2 -2
- package/dist/{chunk-CPWQB3N5.js → chunk-N5DNADLQ.js} +7 -7
- package/dist/{chunk-ELNXJMGB.js → chunk-NNARWO72.js} +6 -6
- package/dist/{chunk-PT43Y56J.js → chunk-NRT6QZQB.js} +102 -16
- package/dist/chunk-NRT6QZQB.js.map +1 -0
- package/dist/{chunk-QIBVIOXO.js → chunk-NWHBJQAL.js} +99 -8
- package/dist/chunk-NWHBJQAL.js.map +1 -0
- package/dist/chunk-NYMLINRP.js +28 -0
- package/dist/chunk-NYMLINRP.js.map +1 -0
- package/dist/{chunk-7MG7SJT7.js → chunk-ODVPTDPK.js} +1 -1
- package/dist/chunk-ODVPTDPK.js.map +1 -0
- package/dist/chunk-ORDURZBU.js +461 -0
- package/dist/chunk-ORDURZBU.js.map +1 -0
- package/dist/{chunk-6YXCPL4T.js → chunk-PDCG6PR5.js} +2 -2
- package/dist/{chunk-REDOOY2Q.js → chunk-PSIV7CJV.js} +2 -2
- package/dist/{chunk-NA2NIJZI.js → chunk-QBBUZ3I3.js} +126 -19
- package/dist/chunk-QBBUZ3I3.js.map +1 -0
- package/dist/{chunk-5VCRVKOZ.js → chunk-QOOUUR4A.js} +6 -4
- package/dist/{chunk-5VCRVKOZ.js.map → chunk-QOOUUR4A.js.map} +1 -1
- package/dist/{chunk-ANATMFIO.js → chunk-QWFHIOD2.js} +5 -5
- package/dist/{chunk-X2DLENDQ.js → chunk-QWGU66MP.js} +3 -3
- package/dist/chunk-RHVMZSUU.js +7 -0
- package/dist/chunk-RHVMZSUU.js.map +1 -0
- package/dist/{chunk-BSFNRLK2.js → chunk-S57HTZ6X.js} +5 -5
- package/dist/{chunk-SZJ3DLZA.js → chunk-SEE332EV.js} +2 -2
- package/dist/{chunk-YYP7WSEB.js → chunk-SI3V7D4G.js} +2 -2
- package/dist/{chunk-UGTBXF5U.js → chunk-SOIQ4MM4.js} +3 -3
- package/dist/chunk-SUZKW6UR.js +25 -0
- package/dist/chunk-SUZKW6UR.js.map +1 -0
- package/dist/{chunk-VXGSWL6L.js → chunk-SYVZW77S.js} +6 -6
- package/dist/{chunk-6GOE5PGN.js → chunk-T2LBQ5DV.js} +883 -227
- package/dist/chunk-T2LBQ5DV.js.map +1 -0
- package/dist/chunk-T52GX4SA.js +215 -0
- package/dist/chunk-T52GX4SA.js.map +1 -0
- package/dist/{chunk-MVMXZYXT.js → chunk-TKUOEU2F.js} +2 -2
- package/dist/chunk-TOPYQ6GA.js +31 -0
- package/dist/chunk-TOPYQ6GA.js.map +1 -0
- package/dist/{chunk-SMH6SRX7.js → chunk-TROR3ALR.js} +2 -2
- package/dist/{chunk-2C3AQB46.js → chunk-UD5EVGZ7.js} +42 -389
- package/dist/chunk-UD5EVGZ7.js.map +1 -0
- package/dist/{chunk-KJIMGIWO.js → chunk-UPD5NWI5.js} +65 -17
- package/dist/chunk-UPD5NWI5.js.map +1 -0
- package/dist/{chunk-SL3JAAKN.js → chunk-UYB234ZR.js} +30 -2
- package/dist/chunk-UYB234ZR.js.map +1 -0
- package/dist/chunk-VHM7HCKB.js +220 -0
- package/dist/chunk-VHM7HCKB.js.map +1 -0
- package/dist/{chunk-DGOZ4UZD.js → chunk-VNNRUGMM.js} +2 -2
- package/dist/{chunk-HDOU6I2Y.js → chunk-VNPEWFPD.js} +4 -4
- package/dist/{chunk-L7CIOOBW.js → chunk-WNJ4AVGE.js} +2 -2
- package/dist/{chunk-FMZY5Q6L.js → chunk-WX5ADGTZ.js} +3 -3
- package/dist/{chunk-VXANTWBJ.js → chunk-WY2XXTET.js} +92 -6
- package/dist/{chunk-VXANTWBJ.js.map → chunk-WY2XXTET.js.map} +1 -1
- package/dist/{chunk-6X6SEMEE.js → chunk-X25NWUZB.js} +33 -8
- package/dist/chunk-X25NWUZB.js.map +1 -0
- package/dist/{chunk-Q7HZX3IF.js → chunk-X4773RBR.js} +2 -2
- package/dist/chunk-XBKH4FOC.js +195 -0
- package/dist/chunk-XBKH4FOC.js.map +1 -0
- package/dist/{chunk-ANSIZYEG.js → chunk-YNIUIERI.js} +3 -3
- package/dist/chunk-YSK2CU2Q.js +936 -0
- package/dist/chunk-YSK2CU2Q.js.map +1 -0
- package/dist/{chunk-UXVWEX5L.js → chunk-Z5HTYMMQ.js} +6 -2
- package/dist/chunk-Z5HTYMMQ.js.map +1 -0
- package/dist/{chunk-RRNRNANG.js → chunk-ZE4CHIED.js} +66 -75
- package/dist/chunk-ZE4CHIED.js.map +1 -0
- package/dist/chunk-ZSX4S5XB.js +1289 -0
- package/dist/chunk-ZSX4S5XB.js.map +1 -0
- package/dist/{chunk-BZ3534YM.js → chunk-ZUVBC32X.js} +2 -2
- package/dist/{chunk-L742JPKZ.js → chunk-ZXABPVM6.js} +6 -6
- package/dist/classified/index.js +5 -5
- package/dist/{classified-marker-LI2SF2E4.js → classified-marker-W3USLL5M.js} +3 -3
- package/dist/collection-facade-QU6IJBN3.js +48 -0
- package/dist/{computed-VPOKQK4N.js → computed-TPFBX7U4.js} +3 -3
- package/dist/consent/index.js +9 -9
- package/dist/cover/index.js +10 -10
- package/dist/coverage/index.js +306 -0
- package/dist/coverage/index.js.map +1 -0
- package/dist/custody/index.js +12 -12
- package/dist/{dead-filter-TSWZQRR5.js → dead-filter-U2UYKSZL.js} +2 -2
- package/dist/debug/index.js +1 -1
- package/dist/{delegation-OVIFFPG4.js → delegation-S3AEPW2T.js} +11 -11
- package/dist/derivations/index.js +25 -22
- package/dist/derive-OX7F6TGG.js +21 -0
- package/dist/directory/index.js +10 -10
- package/dist/{dispatch-WC6X2M6C.js → dispatch-3CQDJV5Q.js} +5 -5
- package/dist/{dispatch-S73TK3IY.js → dispatch-RH4LHKBH.js} +21 -21
- package/dist/{enclave-KJOTOH7X.js → enclave-27SMF6GF.js} +15 -9
- package/dist/executor-B6SRO2QS.js +36 -0
- package/dist/executor-BI5CHWRY.js +8 -0
- package/dist/executor-RBKM5W5K.js +8 -0
- package/dist/export-accessible-VMA3YM5V.js +22 -0
- package/dist/extract-partition-NF7PXGPP.js +37 -0
- package/dist/{fanout-sidecar-WUFXNYP4.js → fanout-sidecar-OT6RYLOL.js} +9 -9
- package/dist/find-LZMP26KF.js +10 -0
- package/dist/forget/index.js +9 -9
- package/dist/guards/index.js +4 -4
- package/dist/history/index.js +13 -13
- package/dist/i18n/index.js +14 -14
- package/dist/index.d.ts +29 -6
- package/dist/index.js +999 -191
- 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 -11
- package/dist/issue-IHARXWW5.js +18 -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/collection-config.d.ts +4 -20
- package/dist/kernel/collection.d.ts +29 -8
- package/dist/kernel/enclave/crypto.d.ts +16 -0
- package/dist/kernel/enclave/index.d.ts +1 -1
- package/dist/kernel/enclave/record-keys/record-codec.d.ts +25 -0
- package/dist/kernel/errors.d.ts +227 -36
- package/dist/kernel/generation-map.d.ts +48 -0
- package/dist/kernel/memory-store.d.ts +35 -7
- package/dist/kernel/noydb.d.ts +6 -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/tx-write-gate.d.ts +77 -0
- package/dist/kernel/types.d.ts +71 -3
- package/dist/kernel/validation.d.ts +27 -10
- package/dist/kernel/vault.d.ts +9 -4
- 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/{ledger-F33ZVMTK.js → ledger-KZPCMVZY.js} +11 -11
- package/dist/liberate-GRLCZMW4.js +24 -0
- package/dist/link-set-JCMJ7ULP.js +30 -0
- package/dist/{managed-secret-PQYKSR6T.js → managed-secret-S3MQ6SH6.js} +10 -10
- package/dist/materialized-views/index.js +30 -23
- package/dist/{migrate-cek-5ENH64AA.js → migrate-cek-V7GKJZ7O.js} +2 -2
- package/dist/money/index.js +5 -5
- package/dist/noydb-SWQJ3MZS.js +97 -0
- package/dist/overlay-views/index.js +4 -4
- package/dist/periods/index.js +12 -12
- package/dist/pod/index.js +75 -68
- package/dist/{pod-handle-Q736KYON.js → pod-handle-WGDFB4C2.js} +9 -9
- package/dist/policy/index.js +10 -10
- package/dist/port/with/blob-strategy.d.ts +9 -0
- package/dist/port/with/collection-options.d.ts +5 -0
- package/dist/port/with/coverage-strategy.d.ts +83 -0
- 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-LNE2FE2A.js → post-register-SLSXIPBV.js} +6 -6
- 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-F3OYE7MJ.js +31 -0
- package/dist/registry-CILQFXFK.js +8 -0
- package/dist/registry-XNNYQVKV.js +8 -0
- package/dist/registry-YCDZV3VW.js +35 -0
- package/dist/registry-ZGYS33TE.js +24 -0
- package/dist/request-withdrawal-Z5NC6TXT.js +30 -0
- package/dist/{reveal-67RDQRIN.js → reveal-4BCKPEC2.js} +6 -6
- package/dist/revoke-ZL62WC2D.js +23 -0
- package/dist/satellites/index.js +1 -1
- package/dist/schema-update/index.js +2 -2
- package/dist/sealed-record/index.js +12 -12
- package/dist/search/index.js +11 -5
- package/dist/{seed-G42JYN56.js → seed-4JS2RJ4A.js} +12 -12
- package/dist/sequence/index.js +9 -9
- package/dist/session/index.js +9 -9
- package/dist/shadow/index.js +2 -2
- package/dist/signer-MBZZMXTC.js +24 -0
- package/dist/snapshots/index.js +10 -10
- package/dist/{stale-DDL7WQEZ.js → stale-TJ3DYZMQ.js} +10 -10
- package/dist/storage-SVMKRGCW.js +22 -0
- package/dist/{store-coordination-provider-MEQ2MJQG.js → store-coordination-provider-2O2VUHKW.js} +10 -10
- package/dist/sync/index.js +10 -10
- package/dist/team/index.js +17 -15
- package/dist/tiers/index.js +13 -11
- 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 +8 -8
- package/dist/{verify-KOV2G5D6.js → verify-RVT67IMH.js} +5 -5
- package/dist/via/blob/index.d.ts +1 -0
- 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/registry.d.ts +1 -1
- package/dist/via/lookup/snapshot.d.ts +3 -3
- package/dist/walk-HJ42EISE.js +21 -0
- package/dist/walk-HJ42EISE.js.map +1 -0
- 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/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 +17 -0
- package/dist/with-audit/tiers/index.d.ts +51 -0
- package/dist/with-audit/tiers/strategy.d.ts +8 -0
- package/dist/with-cargo/floor.d.ts +2 -2
- package/dist/with-commit/tx/invariants.d.ts +1 -1
- package/dist/with-commit/tx/transaction.d.ts +13 -3
- 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 +85 -2
- 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 +44 -8
- 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/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/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/index.d.ts +3 -2
- package/dist/with-party/team/keyring.d.ts +13 -6
- 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/wrapped-deks.d.ts +4 -4
- package/dist/with-pod/format.d.ts +1 -1
- package/dist/with-pod/pod.d.ts +5 -5
- package/dist/with-shape/blobs/blob-compaction.d.ts +16 -0
- package/dist/with-shape/blobs/blob-set.d.ts +21 -2
- package/dist/with-shape/blobs/legacy-sweep.d.ts +35 -0
- package/dist/with-shape/introspection/describe.d.ts +6 -0
- 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/links/vault-facade.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/withdraw-accessible-5NZUPAVA.js +27 -0
- package/dist/withdraw-accessible-5NZUPAVA.js.map +1 -0
- package/package.json +37 -10
- package/dist/api-TXFOVOXX.js +0 -19
- package/dist/backup-IJTB4S4M.js.map +0 -1
- package/dist/chunk-2577DKXB.js.map +0 -1
- package/dist/chunk-2C3AQB46.js.map +0 -1
- package/dist/chunk-4GVM6QZA.js.map +0 -1
- package/dist/chunk-5WDXHNSW.js.map +0 -1
- package/dist/chunk-6GOE5PGN.js.map +0 -1
- package/dist/chunk-6X6SEMEE.js.map +0 -1
- package/dist/chunk-77K4PG6P.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-AO42KJO6.js.map +0 -1
- package/dist/chunk-ATL3ZVXT.js +0 -151
- package/dist/chunk-ATL3ZVXT.js.map +0 -1
- package/dist/chunk-BLN54W3L.js.map +0 -1
- package/dist/chunk-BM5TWITZ.js.map +0 -1
- package/dist/chunk-CUZLNGD5.js.map +0 -1
- package/dist/chunk-EQEYOJBM.js.map +0 -1
- package/dist/chunk-G56KBWFY.js.map +0 -1
- package/dist/chunk-I3ISCYT7.js +0 -159
- package/dist/chunk-I3ISCYT7.js.map +0 -1
- package/dist/chunk-KG7TZKZG.js.map +0 -1
- package/dist/chunk-KJIMGIWO.js.map +0 -1
- package/dist/chunk-KTFRCC5C.js.map +0 -1
- package/dist/chunk-KUX3OB6D.js.map +0 -1
- package/dist/chunk-MUM7IANK.js.map +0 -1
- package/dist/chunk-NA2NIJZI.js.map +0 -1
- package/dist/chunk-NSITFOCJ.js +0 -99
- package/dist/chunk-NSITFOCJ.js.map +0 -1
- package/dist/chunk-PT43Y56J.js.map +0 -1
- package/dist/chunk-QIBVIOXO.js.map +0 -1
- package/dist/chunk-RRNRNANG.js.map +0 -1
- package/dist/chunk-RTBJ5IOO.js +0 -87
- package/dist/chunk-RTBJ5IOO.js.map +0 -1
- package/dist/chunk-SKGMN35F.js.map +0 -1
- package/dist/chunk-SL3JAAKN.js.map +0 -1
- package/dist/chunk-SPXXX5E4.js.map +0 -1
- package/dist/chunk-SPYWXKJN.js.map +0 -1
- package/dist/chunk-U4FOQDY4.js.map +0 -1
- package/dist/chunk-UXVWEX5L.js.map +0 -1
- package/dist/chunk-UXWB3FPF.js.map +0 -1
- package/dist/chunk-YMUFFJCO.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/collection-facade-4GRREZ6C.js +0 -45
- package/dist/derive-6O5SWQKN.js +0 -21
- package/dist/executor-5NIMLSKZ.js +0 -8
- package/dist/executor-AQVXV5GZ.js +0 -8
- package/dist/executor-PUAO6AKJ.js +0 -29
- package/dist/export-accessible-72EQNBMR.js +0 -22
- package/dist/extract-partition-PUYNU3UF.js +0 -37
- package/dist/find-2ABFCZX4.js +0 -10
- package/dist/issue-SIDORTSZ.js +0 -18
- package/dist/json-schema-V3M5MUCM.js.map +0 -1
- package/dist/kernel/query/join.d.ts +0 -232
- package/dist/liberate-LCDPNAG2.js +0 -24
- package/dist/link-set-FKNWAYKS.js +0 -30
- package/dist/noydb-DUXZPKSN.js +0 -90
- package/dist/register-I2DZXGAR.js +0 -31
- package/dist/registry-23WF3TGH.js +0 -8
- package/dist/registry-4AYVUNXK.js +0 -8
- package/dist/registry-VSSQPIGF.js +0 -18
- package/dist/registry-YLEWMGAC.js +0 -32
- package/dist/request-withdrawal-KFQHEZ25.js +0 -30
- package/dist/revoke-DQDZAZZM.js +0 -23
- package/dist/signer-WAMDZHEN.js +0 -24
- package/dist/storage-FLR73HHF.js +0 -22
- package/dist/walk-3UQBRMDV.js +0 -21
- package/dist/withdraw-accessible-EL5GXZBS.js +0 -27
- /package/dist/{api-TXFOVOXX.js.map → api-GVYEKSJE.js.map} +0 -0
- /package/dist/{chunk-BUE2D7PX.js.map → chunk-32YV3TJT.js.map} +0 -0
- /package/dist/{chunk-3RCJJBNR.js.map → chunk-3ELRMVJK.js.map} +0 -0
- /package/dist/{chunk-6GMZ7HEE.js.map → chunk-3F7GLNAE.js.map} +0 -0
- /package/dist/{chunk-2Y4IMKA6.js.map → chunk-3H5KLDZN.js.map} +0 -0
- /package/dist/{chunk-VTFVLCUH.js.map → chunk-3JWHAR6E.js.map} +0 -0
- /package/dist/{chunk-JBDFMYKQ.js.map → chunk-4AF3TUMP.js.map} +0 -0
- /package/dist/{chunk-J6FXAEUG.js.map → chunk-6B3VNR4P.js.map} +0 -0
- /package/dist/{chunk-TUFM4UZP.js.map → chunk-6K7DPM7D.js.map} +0 -0
- /package/dist/{chunk-K6LHRFBL.js.map → chunk-6LMQ5R26.js.map} +0 -0
- /package/dist/{chunk-XLMEZIAJ.js.map → chunk-6OWXYZK2.js.map} +0 -0
- /package/dist/{chunk-BOWNCWZT.js.map → chunk-6QSQQLSE.js.map} +0 -0
- /package/dist/{chunk-NQKIUNW5.js.map → chunk-A6IJU4TK.js.map} +0 -0
- /package/dist/{chunk-QIZPZMUI.js.map → chunk-AOWGXU6D.js.map} +0 -0
- /package/dist/{chunk-SFAWCTEM.js.map → chunk-B57AFBY2.js.map} +0 -0
- /package/dist/{chunk-GPEQUXHL.js.map → chunk-B6SJIBQK.js.map} +0 -0
- /package/dist/{chunk-Q2PU57HC.js.map → chunk-BK2HHQGN.js.map} +0 -0
- /package/dist/{collection-facade-4GRREZ6C.js.map → chunk-BKT776R5.js.map} +0 -0
- /package/dist/{chunk-FXBIP2WD.js.map → chunk-BUDAGWL5.js.map} +0 -0
- /package/dist/{chunk-BOET4NA4.js.map → chunk-CKNGS5MH.js.map} +0 -0
- /package/dist/{chunk-YSRUYAVU.js.map → chunk-DE4DH2RZ.js.map} +0 -0
- /package/dist/{chunk-6I2RQCET.js.map → chunk-DF73H4UN.js.map} +0 -0
- /package/dist/{chunk-K7NTTA6P.js.map → chunk-EOVMT6TB.js.map} +0 -0
- /package/dist/{chunk-XTXOCYOJ.js.map → chunk-FCKWQE2H.js.map} +0 -0
- /package/dist/{chunk-4OZNXTO4.js.map → chunk-FN5EBVTQ.js.map} +0 -0
- /package/dist/{chunk-NKHRDYOR.js.map → chunk-FQ5VRHIB.js.map} +0 -0
- /package/dist/{chunk-FAHMLERK.js.map → chunk-FW22ZCXT.js.map} +0 -0
- /package/dist/{chunk-RMS3NEA3.js.map → chunk-HT2AHGQI.js.map} +0 -0
- /package/dist/{chunk-CHJBLCOG.js.map → chunk-HVSCEIYL.js.map} +0 -0
- /package/dist/{chunk-GY4WYNNG.js.map → chunk-ID6Z6E66.js.map} +0 -0
- /package/dist/{chunk-EYBQEIUY.js.map → chunk-IEX7NK2K.js.map} +0 -0
- /package/dist/{chunk-KUJDV5QH.js.map → chunk-ISZQJBML.js.map} +0 -0
- /package/dist/{chunk-LWBCUYZW.js.map → chunk-IT22PWKV.js.map} +0 -0
- /package/dist/{chunk-7V4TP3AF.js.map → chunk-J6UOHJY5.js.map} +0 -0
- /package/dist/{chunk-JMGDHKQF.js.map → chunk-JCN44NCY.js.map} +0 -0
- /package/dist/{chunk-CARABLSQ.js.map → chunk-K6W7BVZ6.js.map} +0 -0
- /package/dist/{chunk-453F654R.js.map → chunk-L7DOS3TE.js.map} +0 -0
- /package/dist/{chunk-WEQEYLCS.js.map → chunk-LGRLME4M.js.map} +0 -0
- /package/dist/{chunk-RMF67KCG.js.map → chunk-LQ4ZHOKP.js.map} +0 -0
- /package/dist/{chunk-ZVO4QVPD.js.map → chunk-M522UYZ2.js.map} +0 -0
- /package/dist/{chunk-2N4GY74U.js.map → chunk-MTL7MXGR.js.map} +0 -0
- /package/dist/{chunk-TFR7DSOV.js.map → chunk-MVZ2TPVP.js.map} +0 -0
- /package/dist/{chunk-CPWQB3N5.js.map → chunk-N5DNADLQ.js.map} +0 -0
- /package/dist/{chunk-ELNXJMGB.js.map → chunk-NNARWO72.js.map} +0 -0
- /package/dist/{chunk-6YXCPL4T.js.map → chunk-PDCG6PR5.js.map} +0 -0
- /package/dist/{chunk-REDOOY2Q.js.map → chunk-PSIV7CJV.js.map} +0 -0
- /package/dist/{chunk-ANATMFIO.js.map → chunk-QWFHIOD2.js.map} +0 -0
- /package/dist/{chunk-X2DLENDQ.js.map → chunk-QWGU66MP.js.map} +0 -0
- /package/dist/{chunk-BSFNRLK2.js.map → chunk-S57HTZ6X.js.map} +0 -0
- /package/dist/{chunk-SZJ3DLZA.js.map → chunk-SEE332EV.js.map} +0 -0
- /package/dist/{chunk-YYP7WSEB.js.map → chunk-SI3V7D4G.js.map} +0 -0
- /package/dist/{chunk-UGTBXF5U.js.map → chunk-SOIQ4MM4.js.map} +0 -0
- /package/dist/{chunk-VXGSWL6L.js.map → chunk-SYVZW77S.js.map} +0 -0
- /package/dist/{chunk-MVMXZYXT.js.map → chunk-TKUOEU2F.js.map} +0 -0
- /package/dist/{chunk-SMH6SRX7.js.map → chunk-TROR3ALR.js.map} +0 -0
- /package/dist/{chunk-DGOZ4UZD.js.map → chunk-VNNRUGMM.js.map} +0 -0
- /package/dist/{chunk-HDOU6I2Y.js.map → chunk-VNPEWFPD.js.map} +0 -0
- /package/dist/{chunk-L7CIOOBW.js.map → chunk-WNJ4AVGE.js.map} +0 -0
- /package/dist/{chunk-FMZY5Q6L.js.map → chunk-WX5ADGTZ.js.map} +0 -0
- /package/dist/{chunk-Q7HZX3IF.js.map → chunk-X4773RBR.js.map} +0 -0
- /package/dist/{chunk-ANSIZYEG.js.map → chunk-YNIUIERI.js.map} +0 -0
- /package/dist/{chunk-BZ3534YM.js.map → chunk-ZUVBC32X.js.map} +0 -0
- /package/dist/{chunk-L742JPKZ.js.map → chunk-ZXABPVM6.js.map} +0 -0
- /package/dist/{classified-marker-LI2SF2E4.js.map → classified-marker-W3USLL5M.js.map} +0 -0
- /package/dist/{computed-VPOKQK4N.js.map → collection-facade-QU6IJBN3.js.map} +0 -0
- /package/dist/{derive-6O5SWQKN.js.map → computed-TPFBX7U4.js.map} +0 -0
- /package/dist/{dead-filter-TSWZQRR5.js.map → dead-filter-U2UYKSZL.js.map} +0 -0
- /package/dist/{delegation-OVIFFPG4.js.map → delegation-S3AEPW2T.js.map} +0 -0
- /package/dist/{enclave-KJOTOH7X.js.map → derive-OX7F6TGG.js.map} +0 -0
- /package/dist/{dispatch-WC6X2M6C.js.map → dispatch-3CQDJV5Q.js.map} +0 -0
- /package/dist/{dispatch-S73TK3IY.js.map → dispatch-RH4LHKBH.js.map} +0 -0
- /package/dist/{executor-5NIMLSKZ.js.map → enclave-27SMF6GF.js.map} +0 -0
- /package/dist/{executor-AQVXV5GZ.js.map → executor-B6SRO2QS.js.map} +0 -0
- /package/dist/{executor-PUAO6AKJ.js.map → executor-BI5CHWRY.js.map} +0 -0
- /package/dist/{export-accessible-72EQNBMR.js.map → executor-RBKM5W5K.js.map} +0 -0
- /package/dist/{extract-partition-PUYNU3UF.js.map → export-accessible-VMA3YM5V.js.map} +0 -0
- /package/dist/{find-2ABFCZX4.js.map → extract-partition-NF7PXGPP.js.map} +0 -0
- /package/dist/{fanout-sidecar-WUFXNYP4.js.map → fanout-sidecar-OT6RYLOL.js.map} +0 -0
- /package/dist/{issue-SIDORTSZ.js.map → find-LZMP26KF.js.map} +0 -0
- /package/dist/{ledger-F33ZVMTK.js.map → issue-IHARXWW5.js.map} +0 -0
- /package/dist/{liberate-LCDPNAG2.js.map → ledger-KZPCMVZY.js.map} +0 -0
- /package/dist/{link-set-FKNWAYKS.js.map → liberate-GRLCZMW4.js.map} +0 -0
- /package/dist/{managed-secret-PQYKSR6T.js.map → link-set-JCMJ7ULP.js.map} +0 -0
- /package/dist/{noydb-DUXZPKSN.js.map → managed-secret-S3MQ6SH6.js.map} +0 -0
- /package/dist/{migrate-cek-5ENH64AA.js.map → migrate-cek-V7GKJZ7O.js.map} +0 -0
- /package/dist/{register-I2DZXGAR.js.map → noydb-SWQJ3MZS.js.map} +0 -0
- /package/dist/{pod-handle-Q736KYON.js.map → pod-handle-WGDFB4C2.js.map} +0 -0
- /package/dist/{post-register-LNE2FE2A.js.map → post-register-SLSXIPBV.js.map} +0 -0
- /package/dist/{registry-23WF3TGH.js.map → query/all/index.js.map} +0 -0
- /package/dist/{registry-4AYVUNXK.js.map → register-F3OYE7MJ.js.map} +0 -0
- /package/dist/{registry-VSSQPIGF.js.map → registry-CILQFXFK.js.map} +0 -0
- /package/dist/{registry-YLEWMGAC.js.map → registry-XNNYQVKV.js.map} +0 -0
- /package/dist/{request-withdrawal-KFQHEZ25.js.map → registry-YCDZV3VW.js.map} +0 -0
- /package/dist/{revoke-DQDZAZZM.js.map → registry-ZGYS33TE.js.map} +0 -0
- /package/dist/{signer-WAMDZHEN.js.map → request-withdrawal-Z5NC6TXT.js.map} +0 -0
- /package/dist/{reveal-67RDQRIN.js.map → reveal-4BCKPEC2.js.map} +0 -0
- /package/dist/{stale-DDL7WQEZ.js.map → revoke-ZL62WC2D.js.map} +0 -0
- /package/dist/{seed-G42JYN56.js.map → seed-4JS2RJ4A.js.map} +0 -0
- /package/dist/{storage-FLR73HHF.js.map → signer-MBZZMXTC.js.map} +0 -0
- /package/dist/{walk-3UQBRMDV.js.map → stale-TJ3DYZMQ.js.map} +0 -0
- /package/dist/{withdraw-accessible-EL5GXZBS.js.map → storage-SVMKRGCW.js.map} +0 -0
- /package/dist/{store-coordination-provider-MEQ2MJQG.js.map → store-coordination-provider-2O2VUHKW.js.map} +0 -0
- /package/dist/{verify-KOV2G5D6.js.map → verify-RVT67IMH.js.map} +0 -0
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,74 @@ export declare class DecryptionError extends NoydbError {
|
|
|
136
137
|
constructor(message?: string);
|
|
137
138
|
}
|
|
138
139
|
/**
|
|
139
|
-
*
|
|
140
|
-
*
|
|
141
|
-
*
|
|
142
|
-
*
|
|
143
|
-
*
|
|
144
|
-
*
|
|
145
|
-
*
|
|
146
|
-
|
|
140
|
+
* **Means exactly: "AEAD failed under this key."** Nothing more (lanna-db #4,
|
|
141
|
+
* 2026-09-03). AES-256-GCM authenticates the ciphertext on every decrypt; if
|
|
142
|
+
* the tag does not verify under the DEK the caller supplied, the enclave
|
|
143
|
+
* throws this. Only the enclave throws it *for* an AEAD failure — everywhere
|
|
144
|
+
* else in hub that names this class is either passing one through or
|
|
145
|
+
* attaching evidence it holds (see {@link reason}).
|
|
146
|
+
*
|
|
147
|
+
* What it does NOT mean on its own: "someone modified the bytes". Four
|
|
148
|
+
* situations all present as an AEAD failure — the bytes were altered; the
|
|
149
|
+
* caller holds no key for this collection and a fabricated one was tried; the
|
|
150
|
+
* body is identity-bound to another vault; the body was sealed under a format
|
|
151
|
+
* this build does not read. The first is the security alert; the other three
|
|
152
|
+
* are evidence a caller can hold BEFORE decrypting, and when it does it says
|
|
153
|
+
* so in `reason`. **With `reason` absent, treat this as the alert it has
|
|
154
|
+
* always been.** Hub's own tier-fallback code (`with-shape/blobs`) branches
|
|
155
|
+
* on this class as "not ours at this tier — try the next", which is the
|
|
156
|
+
* correct reading of "did not open under this key".
|
|
157
|
+
*
|
|
158
|
+
* A key derived from a user credential (recovery code, password, share set)
|
|
159
|
+
* that fails to open a blob is a wrong KEY, and surfaces as
|
|
160
|
+
* {@link InvalidKeyError}, never this class — `wrapped-deks.ts` translates.
|
|
161
|
+
*/
|
|
162
|
+
/** See {@link TamperedError.reason}. */
|
|
163
|
+
export type TamperedReason = 'unbound-legacy-format' | 'key-absent' | 'generation-mismatch' | 'foreign-stamp';
|
|
147
164
|
export declare class TamperedError extends NoydbError {
|
|
148
165
|
/**
|
|
149
|
-
*
|
|
166
|
+
* Evidence the thrower held BEFORE decrypting, when it held any. Additive
|
|
167
|
+
* (#1103 pattern): the throw and the class are unchanged, so
|
|
168
|
+
* `catch (e) { if (e instanceof TamperedError) … }` keeps working; callers
|
|
169
|
+
* that want to tell a migration or a missing grant from a breach read this.
|
|
150
170
|
*
|
|
151
|
-
* `'unbound-legacy-format'` — the body opens under an EMPTY AAD, so it was
|
|
152
|
-
*
|
|
153
|
-
*
|
|
154
|
-
*
|
|
171
|
+
* - `'unbound-legacy-format'` — the body opens under an EMPTY AAD, so it was
|
|
172
|
+
* sealed before identity binding (#1041): a format transition, not an
|
|
173
|
+
* attack. Positive evidence: producing a body that decrypts under this DEK
|
|
174
|
+
* requires the DEK, which an untrusted store does not hold. (#1103)
|
|
175
|
+
* - `'key-absent'` — this keyring holds no DEK for a collection that already
|
|
176
|
+
* has records, and the DEK cannot be back-filled (wrapping needs the
|
|
177
|
+
* grantee's secret, which the vault never stores). Thrown by the DEK
|
|
178
|
+
* resolver instead of minting a key that would decrypt nothing and
|
|
179
|
+
* resurface as a bare AEAD failure — the #1288 misdiagnosis. Reserved
|
|
180
|
+
* collections (`_periods`, …) take this path; user collections throw
|
|
181
|
+
* `NoAccessError` (#1004/#1010).
|
|
182
|
+
* - `'generation-mismatch'` — reserved for "the artefact was sealed at a
|
|
183
|
+
* generation this reader cannot compute". **Not emitted by this build**:
|
|
184
|
+
* hub reads no generation stamp off any envelope — `NOYDB_ENVELOPE_GENERATION`
|
|
185
|
+
* is an exported constant, and the stamp a bundle carries is manifest data
|
|
186
|
+
* a reader never branches on (ADR 0003). The one generation fact hub can
|
|
187
|
+
* establish from the bytes — "opens under an empty AAD" — is already
|
|
188
|
+
* `'unbound-legacy-format'`. Absence of a stamp never reads as
|
|
189
|
+
* generation 1 (`docs/ENVELOPE-GENERATION.md`).
|
|
190
|
+
* - `'foreign-stamp'` — reserved for "this vault's DEK was asked to open a
|
|
191
|
+
* body identity-bound to ANOTHER vault". **Not emitted by this build**:
|
|
192
|
+
* nothing in hub can tell that apart from another vault's compartment
|
|
193
|
+
* merely being present, which in a multi-vault bundle is normal
|
|
194
|
+
* (klum `extractCrossVaultPartition`).
|
|
155
195
|
*
|
|
156
|
-
*
|
|
157
|
-
*
|
|
196
|
+
* Both reserved values are declared so consumers can type against them; a
|
|
197
|
+
* build that starts emitting either will say so in its CHANGELOG.
|
|
158
198
|
*
|
|
159
|
-
*
|
|
160
|
-
*
|
|
161
|
-
*
|
|
199
|
+
* Absent — no evidence; the security alert.
|
|
200
|
+
*
|
|
201
|
+
* ⚠️ `reason` is hub's IN-PROCESS report and may be branched on. A
|
|
202
|
+
* generation or origin stamp read out of an untrusted manifest may NOT — it
|
|
203
|
+
* is store-supplied data, not evidence (klum ADR 0003). If you are holding
|
|
204
|
+
* a stamp and not this error, you are holding a claim.
|
|
162
205
|
*/
|
|
163
|
-
readonly reason?:
|
|
164
|
-
constructor(message?: string, reason?:
|
|
206
|
+
readonly reason?: TamperedReason;
|
|
207
|
+
constructor(message?: string, reason?: TamperedReason);
|
|
165
208
|
}
|
|
166
209
|
/**
|
|
167
210
|
* Thrown when key unwrapping fails, typically because the secret is wrong
|
|
@@ -589,7 +632,36 @@ export declare class PeriodClosedError extends NoydbError {
|
|
|
589
632
|
readonly periodName: string;
|
|
590
633
|
readonly endDate: string;
|
|
591
634
|
readonly recordTs: string;
|
|
592
|
-
|
|
635
|
+
/**
|
|
636
|
+
* #1455 — the business-date field the guard compared, when the period
|
|
637
|
+
* declares one. Absent on the envelope-`_ts` (no `dateField`) path.
|
|
638
|
+
* Structured so a consumer can render the refusal without parsing
|
|
639
|
+
* `recordTs`'s composed `"incoming[cycle]=2026-06"` form.
|
|
640
|
+
*/
|
|
641
|
+
readonly dateField: string | undefined;
|
|
642
|
+
/** #1455 — which side of the write tripped the seal. */
|
|
643
|
+
readonly side: 'existing' | 'incoming' | undefined;
|
|
644
|
+
constructor(periodName: string, endDate: string, recordTs: string, detail?: {
|
|
645
|
+
dateField?: string;
|
|
646
|
+
side?: 'existing' | 'incoming';
|
|
647
|
+
});
|
|
648
|
+
}
|
|
649
|
+
/**
|
|
650
|
+
* Thrown when the `_periods` hash chain does not verify on load (#1454): a
|
|
651
|
+
* period record's `priorPeriodHash` / `priorPeriodName` no longer resolve to
|
|
652
|
+
* the stored predecessor in its timeline — an interior close was rewritten or
|
|
653
|
+
* deleted under the engine. The write guard refuses to evaluate against a set
|
|
654
|
+
* it cannot trust, so every period-governed write fails with this until the
|
|
655
|
+
* store is repaired from a trusted copy.
|
|
656
|
+
*
|
|
657
|
+
* The chain cannot see a rewrite of the NEWEST record in a timeline (nothing
|
|
658
|
+
* hashes it yet); the public-API refusal in `vault.collection()` is what closes
|
|
659
|
+
* that path.
|
|
660
|
+
*/
|
|
661
|
+
export declare class PeriodChainError extends NoydbError {
|
|
662
|
+
readonly periodName: string;
|
|
663
|
+
readonly partition: readonly (string | number)[] | undefined;
|
|
664
|
+
constructor(periodName: string, why: string, partition?: readonly (string | number)[]);
|
|
593
665
|
}
|
|
594
666
|
/**
|
|
595
667
|
* Thrown when a `put()` or `delete()` is rejected by a guard's `check`
|
|
@@ -658,7 +730,7 @@ export declare class AmendmentForbiddenError extends NoydbError {
|
|
|
658
730
|
* envelope ciphertext is still in the store, the keyring file is
|
|
659
731
|
* still listed at `_keyring/*`, and anyone with direct store read
|
|
660
732
|
* access can count keyrings without going through the hub. See
|
|
661
|
-
* `https://github.com/
|
|
733
|
+
* `https://github.com/noy-db/docs/blob/main/content/docs/services/user-envelope.md` → "Directory visibility".
|
|
662
734
|
*/
|
|
663
735
|
export declare class DirectoryDisabledError extends NoydbError {
|
|
664
736
|
readonly vault: string;
|
|
@@ -933,6 +1005,22 @@ export declare class NotFoundError extends NoydbError {
|
|
|
933
1005
|
export declare class ValidationError extends NoydbError {
|
|
934
1006
|
constructor(message?: string);
|
|
935
1007
|
}
|
|
1008
|
+
/**
|
|
1009
|
+
* Thrown when a `where(field, 'matches', …)` operand is refused (#1357).
|
|
1010
|
+
*
|
|
1011
|
+
* Three distinct refusals, all loud and all at the `where()` call site:
|
|
1012
|
+
* - the operand is neither a `RegExp` nor a LIKE string,
|
|
1013
|
+
* - the pattern trips the ReDoS budget (source length, group nesting,
|
|
1014
|
+
* quantifier count, or a quantified group that itself quantifies),
|
|
1015
|
+
* - the RegExp carries a `g`/`y` flag, which makes `test()` stateful
|
|
1016
|
+
* across records and would silently drop rows.
|
|
1017
|
+
*
|
|
1018
|
+
* Deliberately a REFUSAL, never a rewrite: a sanitiser that "fixes" a
|
|
1019
|
+
* user pattern changes which rows come back without saying so.
|
|
1020
|
+
*/
|
|
1021
|
+
export declare class UnsafePatternError extends NoydbError {
|
|
1022
|
+
constructor(message: string);
|
|
1023
|
+
}
|
|
936
1024
|
/**
|
|
937
1025
|
* Thrown when a Standard Schema v1 validator rejects a record on
|
|
938
1026
|
* `put()` (input validation) or on read (output validation). Carries
|
|
@@ -1011,7 +1099,41 @@ export declare class GroupCardinalityError extends NoydbError {
|
|
|
1011
1099
|
readonly cardinality: number;
|
|
1012
1100
|
/** The cap that was exceeded. */
|
|
1013
1101
|
readonly maxGroups: number;
|
|
1014
|
-
constructor(field: string, cardinality: number, maxGroups: number
|
|
1102
|
+
constructor(field: string, cardinality: number, maxGroups: number,
|
|
1103
|
+
/**
|
|
1104
|
+
* Which surface refused (#1340). `'query'` — the eager `.groupBy()`, whose
|
|
1105
|
+
* ceiling is a fixed constant. `'scan'` — the streaming
|
|
1106
|
+
* `scan().groupBy(key, { maxGroups })`, whose ceiling is a DECLARED budget,
|
|
1107
|
+
* so its message names the option that raises it. The two differ only in
|
|
1108
|
+
* the advice; the code, the fields and the class are one.
|
|
1109
|
+
*/
|
|
1110
|
+
surface?: 'query' | 'scan');
|
|
1111
|
+
}
|
|
1112
|
+
/**
|
|
1113
|
+
* Thrown by `.traverse()` / `ancestorsOf()` / `descendantsOf()` when a cycle
|
|
1114
|
+
* is reached AND the caller opted into `{ onCycle: 'throw' }` (#1352).
|
|
1115
|
+
*
|
|
1116
|
+
* The default is `'stop'` — the walk simply does not re-enter a node already
|
|
1117
|
+
* on the current path, which is what keeps a circular parent chain from
|
|
1118
|
+
* hanging the tab. `'throw'` exists for the other legitimate reading: a
|
|
1119
|
+
* self-referencing hierarchy that is SUPPOSED to be acyclic, where a cycle is
|
|
1120
|
+
* a data-integrity finding the consumer wants surfaced rather than silently
|
|
1121
|
+
* pruned.
|
|
1122
|
+
*
|
|
1123
|
+
* `cycle` is the offending walk closed back on itself — the path from the
|
|
1124
|
+
* seed to the node that would have been re-entered, with that node repeated
|
|
1125
|
+
* as the final element, so `cycle[0]` and `cycle.at(-1)` name the same
|
|
1126
|
+
* record only for a cycle that reaches all the way back to the seed.
|
|
1127
|
+
*/
|
|
1128
|
+
export declare class TraversalCycleError extends NoydbError {
|
|
1129
|
+
/** The declared self-ref field being traversed. */
|
|
1130
|
+
readonly field: string;
|
|
1131
|
+
/** The path that closed on itself, with the re-entered id repeated last. */
|
|
1132
|
+
readonly cycle: readonly string[];
|
|
1133
|
+
constructor(opts: {
|
|
1134
|
+
field: string;
|
|
1135
|
+
cycle: readonly string[];
|
|
1136
|
+
});
|
|
1015
1137
|
}
|
|
1016
1138
|
/**
|
|
1017
1139
|
* Thrown in lazy mode when a `.query()` / `.where()` / `.orderBy()` clause
|
|
@@ -1030,10 +1152,24 @@ export declare class IndexRequiredError extends NoydbError {
|
|
|
1030
1152
|
readonly collection: string;
|
|
1031
1153
|
readonly touchedFields: readonly string[];
|
|
1032
1154
|
readonly missingFields: readonly string[];
|
|
1155
|
+
/**
|
|
1156
|
+
* Why the index could not serve the query, when it is NOT "a field is
|
|
1157
|
+
* unindexed" (#1407).
|
|
1158
|
+
*
|
|
1159
|
+
* ⚠️ The default message names missing fields, and that sentence is FALSE
|
|
1160
|
+
* for a refusal on an indexed field — a `where(f,'==',null)` in lazy mode is
|
|
1161
|
+
* refused because the persisted index never holds nullish values, not
|
|
1162
|
+
* because `f` lacks an index. Telling that caller to "declare an index on
|
|
1163
|
+
* each field" sends them to fix something that is already correct, which is
|
|
1164
|
+
* the same defect #1430 fixed in `WeakSecretError`: advice describing rules
|
|
1165
|
+
* that do not apply here.
|
|
1166
|
+
*/
|
|
1167
|
+
readonly reason: string | undefined;
|
|
1033
1168
|
constructor(args: {
|
|
1034
1169
|
collection: string;
|
|
1035
1170
|
touchedFields: readonly string[];
|
|
1036
1171
|
missingFields: readonly string[];
|
|
1172
|
+
reason?: string;
|
|
1037
1173
|
});
|
|
1038
1174
|
}
|
|
1039
1175
|
/**
|
|
@@ -1062,16 +1198,17 @@ export declare class UniqueConstraintError extends NoydbError {
|
|
|
1062
1198
|
* Thrown at collection registration when an index option is declared that
|
|
1063
1199
|
* is incompatible with the collection's operating mode.
|
|
1064
1200
|
*
|
|
1065
|
-
*
|
|
1066
|
-
*
|
|
1067
|
-
*
|
|
1068
|
-
*
|
|
1069
|
-
*
|
|
1070
|
-
*
|
|
1071
|
-
*
|
|
1072
|
-
*
|
|
1073
|
-
*
|
|
1074
|
-
*
|
|
1201
|
+
* ⚠️ **Nothing throws this today (#1358).** It used to cover three cases —
|
|
1202
|
+
* `unique: true` on a lazy-mode (`prefetch: false`), CRDT, or tiered
|
|
1203
|
+
* collection — because those write paths bypassed enforcement. Lazy and
|
|
1204
|
+
* tiered now enforce for real, and CRDT reports detected duplicates on the
|
|
1205
|
+
* `unique:violation` event instead of refusing the declaration (see
|
|
1206
|
+
* `with-lookup/indexing/unique-constraints.ts`). The class is retained: it is
|
|
1207
|
+
* part of the published surface, and it is the right shape for the next index
|
|
1208
|
+
* option that a mode genuinely cannot honour.
|
|
1209
|
+
*
|
|
1210
|
+
* Any future case belongs at `vault.collection()` time so the developer sees
|
|
1211
|
+
* the incompatibility immediately rather than shipping silently-ignored
|
|
1075
1212
|
* constraints.
|
|
1076
1213
|
*
|
|
1077
1214
|
* The `option` field names the incompatible option (`'unique'`) so catch blocks
|
|
@@ -1138,10 +1275,58 @@ export declare class PersistedIndexCompensationError extends NoydbError {
|
|
|
1138
1275
|
* Payload:
|
|
1139
1276
|
* - `field` — the refused field name
|
|
1140
1277
|
*/
|
|
1278
|
+
/**
|
|
1279
|
+
* #1458 — a query-tier extension method was called without its subpath.
|
|
1280
|
+
*
|
|
1281
|
+
* The DSL ships in four groups. `@noy-db/hub/query` carries **Find** and is
|
|
1282
|
+
* always present; **Live**, **Reduce** and **Relate** arrive by side-effect
|
|
1283
|
+
* import (`import '@noy-db/hub/query/relate'`), which patches the missing
|
|
1284
|
+
* methods onto `Query.prototype` and — through the `declare module` block
|
|
1285
|
+
* that ships with each subpath — onto the `Query` TYPE.
|
|
1286
|
+
*
|
|
1287
|
+
* ⭐ **The compile error is the primary signal; this is the backstop.** With
|
|
1288
|
+
* the types wired that way, calling `.join()` without the import does not
|
|
1289
|
+
* typecheck, which is where a TypeScript consumer meets the problem. This
|
|
1290
|
+
* error is what a JavaScript consumer, or a call that reached the method
|
|
1291
|
+
* through a cast, gets instead of `TypeError: q.join is not a function` —
|
|
1292
|
+
* a message that names neither what is missing nor how to get it.
|
|
1293
|
+
*
|
|
1294
|
+
* ⚠️ It is deliberately NOT a lazy loader. Fetching the chunk here would
|
|
1295
|
+
* defer the cost rather than remove it, and a first `.join()` offline would
|
|
1296
|
+
* fail on a network fetch — the opposite of what an offline-first store
|
|
1297
|
+
* promises. The one line of import is the price of the byte saving.
|
|
1298
|
+
*/
|
|
1299
|
+
export declare class QueryExtensionMissingError extends NoydbError {
|
|
1300
|
+
/** The method that was called, e.g. `'join'`. */
|
|
1301
|
+
readonly method: string;
|
|
1302
|
+
/** The subpath whose import supplies it, e.g. `'@noy-db/hub/query/relate'`. */
|
|
1303
|
+
readonly subpath: string;
|
|
1304
|
+
constructor(method: string, subpath: string);
|
|
1305
|
+
}
|
|
1141
1306
|
export declare class FieldNotQueryableError extends NoydbError {
|
|
1142
1307
|
readonly field: string;
|
|
1143
1308
|
constructor(field: string);
|
|
1144
1309
|
}
|
|
1310
|
+
/**
|
|
1311
|
+
* #1414 — thrown when a synchronous query terminal is USED on a collection
|
|
1312
|
+
* that has never been loaded. The collection's eager cache is empty because
|
|
1313
|
+
* nothing has read it yet, not because the collection is empty: those are
|
|
1314
|
+
* different facts, and only one of them is safe to act on.
|
|
1315
|
+
*
|
|
1316
|
+
* The terminal itself does not throw — it returns a pending result so that the
|
|
1317
|
+
* AWAITED form (`await collection.query().toArray()`, which is what every
|
|
1318
|
+
* async guard `check` does) transparently hydrates and answers correctly. The
|
|
1319
|
+
* error is raised the moment that value is used synchronously: indexed,
|
|
1320
|
+
* iterated, compared, coerced, or read for a property.
|
|
1321
|
+
*
|
|
1322
|
+
* Fix a caller by awaiting the terminal, or by `await collection.list()` /
|
|
1323
|
+
* `await collection.get(id)` before the synchronous read.
|
|
1324
|
+
*/
|
|
1325
|
+
export declare class CollectionNotHydratedError extends NoydbError {
|
|
1326
|
+
readonly collection: string;
|
|
1327
|
+
readonly terminal: string;
|
|
1328
|
+
constructor(collection: string, terminal: string, label?: string);
|
|
1329
|
+
}
|
|
1145
1330
|
/**
|
|
1146
1331
|
* Thrown by `readPod()` when the body bytes don't match
|
|
1147
1332
|
* the integrity hash declared in the bundle header — i.e. someone
|
|
@@ -1677,12 +1862,18 @@ export declare class JoinTooLargeError extends NoydbError {
|
|
|
1677
1862
|
readonly leftRows: number;
|
|
1678
1863
|
readonly rightRows: number;
|
|
1679
1864
|
readonly maxRows: number;
|
|
1680
|
-
|
|
1865
|
+
/**
|
|
1866
|
+
* Which count tripped the ceiling. `'output'` is #1339's addition: a
|
|
1867
|
+
* declared non-equi `.joinOn()` is many-to-many, so it can exceed the
|
|
1868
|
+
* ceiling with both SIDES comfortably under it — the produced row count is
|
|
1869
|
+
* the only thing standing between a theta join and a hang.
|
|
1870
|
+
*/
|
|
1871
|
+
readonly side: 'left' | 'right' | 'output';
|
|
1681
1872
|
constructor(opts: {
|
|
1682
1873
|
leftRows: number;
|
|
1683
1874
|
rightRows: number;
|
|
1684
1875
|
maxRows: number;
|
|
1685
|
-
side: 'left' | 'right';
|
|
1876
|
+
side: 'left' | 'right' | 'output';
|
|
1686
1877
|
message: string;
|
|
1687
1878
|
});
|
|
1688
1879
|
}
|
|
@@ -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,17 +1,45 @@
|
|
|
1
1
|
import type { NoydbStore } from './types.js';
|
|
2
|
+
/** Options for {@link memoryStore}. */
|
|
3
|
+
export interface MemoryStoreOptions {
|
|
4
|
+
/**
|
|
5
|
+
* Implement the OPTIONAL half of the store contract — `listVaults`,
|
|
6
|
+
* `ping`, `tx` — and declare `txAtomic`. Off by default: see the note on
|
|
7
|
+
* {@link memoryStore} for why the zero-config store must stay a bare core.
|
|
8
|
+
*
|
|
9
|
+
* Also switches the store clock to monotonic wall-clock milliseconds,
|
|
10
|
+
* which is what makes {@link MemoryStoreOptions.clockUncertaintyMs} an
|
|
11
|
+
* honest unit.
|
|
12
|
+
*/
|
|
13
|
+
readonly full?: boolean;
|
|
14
|
+
/**
|
|
15
|
+
* Widen the interval `getStoreTime()` returns by ±this many milliseconds,
|
|
16
|
+
* to exercise the commit-wait path in deferred numbering. Default 0 (exact).
|
|
17
|
+
*
|
|
18
|
+
* Requires `full: true` — against the default's counter clock a millisecond
|
|
19
|
+
* epsilon is meaningless, so passing it alone is rejected rather than
|
|
20
|
+
* silently ignored.
|
|
21
|
+
*/
|
|
22
|
+
readonly clockUncertaintyMs?: number;
|
|
23
|
+
}
|
|
2
24
|
/**
|
|
3
25
|
* Built-in in-memory store — the kernel's zero-config default.
|
|
4
26
|
*
|
|
5
27
|
* Nested `Map`s: `vault → collection → id → envelope`. Non-persistent
|
|
6
|
-
* (data is lost on process exit). A conformant
|
|
7
|
-
*
|
|
8
|
-
*
|
|
28
|
+
* (data is lost on process exit). A conformant {@link NoydbStore} with CAS
|
|
29
|
+
* atomicity and a monotonic store clock, so `createNoydb()` works with no
|
|
30
|
+
* store package at all.
|
|
9
31
|
*
|
|
10
32
|
* Portable: imports only `types` + `errors` (no crypto primitive) — passes
|
|
11
33
|
* the `stores-ciphertext-only` architecture guard.
|
|
12
34
|
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
35
|
+
* ## Why the default is a bare 6-method core
|
|
36
|
+
*
|
|
37
|
+
* Called with no options it implements the 6-method core ONLY, so
|
|
38
|
+
* `Noydb.listAccessibleVaults()` throws its documented capability error
|
|
39
|
+
* rather than enumerating vaults under a store the caller never chose. That
|
|
40
|
+
* omission is a decision, not a gap — do not "complete" it. `full: true` is
|
|
41
|
+
* how a caller opts into the optional half, and
|
|
42
|
+
* `__tests__/memory-store-full.test.ts` guards the default against exactly
|
|
43
|
+
* that well-meaning change.
|
|
16
44
|
*/
|
|
17
|
-
export declare function memoryStore(): NoydbStore;
|
|
45
|
+
export declare function memoryStore(options?: MemoryStoreOptions): NoydbStore;
|
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
|
/**
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Per-record memo for the Via `present()` pass (#1419).
|
|
3
|
+
*
|
|
4
|
+
* `list()` and `get()` run the full presentation pipeline — money decode plus
|
|
5
|
+
* its `<field>Formatted`/`<field>Number` siblings, i18n resolution, dictKey
|
|
6
|
+
* labels, `computed({ mode: 'virtual' })` projection — on every call. Nothing
|
|
7
|
+
* is decrypted the second time, so a warm `list()` of 10k rows was pure
|
|
8
|
+
* re-decoration: measured 294 ms (28.5 us/row) against a 5.5 ms full predicate
|
|
9
|
+
* scan of the same snapshot. `list()` is the read most consumers reach for (a
|
|
10
|
+
* store mirror re-listing after each write, an export, a guard doing
|
|
11
|
+
* list-and-filter), so each of them paid the whole collection per call.
|
|
12
|
+
*
|
|
13
|
+
* ## Why a WeakMap on the record, and not a generation stamp
|
|
14
|
+
*
|
|
15
|
+
* Presentation is a pure function of (record, locale, fallback, layer). Keying
|
|
16
|
+
* on the RECORD OBJECT means an unrelated write does not throw away the other
|
|
17
|
+
* 9,999 rows' decorations — which is exactly the reported workload, where a
|
|
18
|
+
* mirror re-lists after every single put. A generation stamp (#1417's keyset
|
|
19
|
+
* memo) is the right tool for a whole-collection derivative like a sort order;
|
|
20
|
+
* it is the wrong one here, because it would invalidate everything on any
|
|
21
|
+
* write and leave the reported case paying full price.
|
|
22
|
+
*
|
|
23
|
+
* Invalidation is then structural rather than maintained: `put` writes a FRESH
|
|
24
|
+
* record object into the cache, so the previous object — and its entry here —
|
|
25
|
+
* becomes unreachable and is collected. There is no stale window and nothing
|
|
26
|
+
* to remember to clear.
|
|
27
|
+
*
|
|
28
|
+
* ⚠️ THE ASSUMPTION, STATED SO IT CAN BE CHECKED: a record object in the
|
|
29
|
+
* collection cache is never mutated in place. This memo is exactly as sound as
|
|
30
|
+
* that assumption — and no less sound than what already ships, because
|
|
31
|
+
* `query().toArray()` hands out those same cache objects directly, so an
|
|
32
|
+
* in-place mutation is already a defect that would corrupt query results
|
|
33
|
+
* before it corrupted anything here. If in-place mutation is ever introduced,
|
|
34
|
+
* it breaks the query path first and this second.
|
|
35
|
+
*
|
|
36
|
+
* ⭐ Entries hold a PROMISE, not a value, so two concurrent reads of the same
|
|
37
|
+
* row at the same locale share one presentation pass instead of racing to do
|
|
38
|
+
* it twice.
|
|
39
|
+
*
|
|
40
|
+
* @module
|
|
41
|
+
*/
|
|
42
|
+
/**
|
|
43
|
+
* A key that is equal only when the presentation provably is.
|
|
44
|
+
*
|
|
45
|
+
* `fallback` is a locale code or an ordered chain, so it is joined rather than
|
|
46
|
+
* stringified — `['th','any']` and `'th,any'` are different requests and must
|
|
47
|
+
* not share an entry. A space separates the parts, because no locale code,
|
|
48
|
+
* layer name or fallback chain contains one.
|
|
49
|
+
*/
|
|
50
|
+
export declare function presentVariantKey(locale: string | undefined, layer: string, fallback: string | readonly string[] | undefined): string;
|
|
51
|
+
/**
|
|
52
|
+
* Return the memoized presentation of `record` for `variant`, computing it
|
|
53
|
+
* once via `compute`.
|
|
54
|
+
*
|
|
55
|
+
* A rejected `compute` is NOT retained: a transient failure must not become a
|
|
56
|
+
* permanent one for the life of the record.
|
|
57
|
+
*/
|
|
58
|
+
export declare function memoizePresent<T>(record: object, variant: string, compute: () => Promise<T>): Promise<T>;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Query as FindQuery, executePlan as findExecutePlan } from './builder.js';
|
|
2
|
+
import { ScanBuilder as FindScanBuilder } from './scan-builder.js';
|
|
3
|
+
export declare const Query: typeof FindQuery;
|
|
4
|
+
export declare const ScanBuilder: typeof FindScanBuilder;
|
|
5
|
+
export declare const executePlan: typeof findExecutePlan;
|
|
6
|
+
export type Query<T, S extends keyof T = never, Q extends keyof T & string = never, M extends keyof T & string = never> = FindQuery<T, S, Q, M>;
|
|
7
|
+
export type ScanBuilder<T, S extends keyof T = never, M extends keyof T & string = never> = FindScanBuilder<T, S, M>;
|