@noy-db/hub 0.7.1-pre.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 +97 -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-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-XKCXVKV3.js → backup-7TFRVFLH.js} +12 -12
- 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-3PGS7TYR.js → chunk-3ELRMVJK.js} +12 -12
- package/dist/{chunk-OTQZ7ZWU.js → chunk-3F7GLNAE.js} +6 -6
- package/dist/{chunk-SGZAIJCV.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-A66I4JOA.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-DFMWUOU5.js → chunk-6B3VNR4P.js} +12 -12
- package/dist/{chunk-TUFM4UZP.js → chunk-6K7DPM7D.js} +2 -2
- package/dist/{chunk-3VF3WQ4F.js → chunk-6LMQ5R26.js} +7 -7
- package/dist/{chunk-UP4BECPY.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-BRLKZUBT.js → chunk-6QSQQLSE.js} +3 -3
- package/dist/chunk-7JE7BDYJ.js +1558 -0
- package/dist/chunk-7JE7BDYJ.js.map +1 -0
- package/dist/{chunk-XKWGNJ26.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-HIWCKBEY.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-UHHPLO3I.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-FET5XCAT.js → chunk-BP6DARYA.js} +33 -5
- package/dist/chunk-BP6DARYA.js.map +1 -0
- package/dist/{chunk-YJX7EOJD.js → chunk-BUDAGWL5.js} +6 -6
- package/dist/chunk-CF5UU4S7.js +757 -0
- package/dist/chunk-CF5UU4S7.js.map +1 -0
- package/dist/{chunk-QPQUVOZ2.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-BTDR2PXY.js → chunk-DE4DH2RZ.js} +2 -2
- package/dist/{chunk-Q2MPFCQ7.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-6LKOJBV6.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-R42NSZI6.js → chunk-FCKWQE2H.js} +5 -5
- package/dist/{chunk-R7BX2NB3.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-P3MG6QCN.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-7APJ6CO6.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-BVN6KXL2.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-2N5ML6HT.js → chunk-HVSCEIYL.js} +7 -7
- package/dist/{chunk-LH5A3ZPG.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-YJRT5UQM.js → chunk-IEX7NK2K.js} +3 -3
- package/dist/{chunk-334WSVOW.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-RF6D3Y5E.js → chunk-J6UOHJY5.js} +4 -4
- package/dist/{chunk-JMGDHKQF.js → chunk-JCN44NCY.js} +2 -2
- package/dist/{chunk-3BZZJJMQ.js → chunk-K6W7BVZ6.js} +3 -3
- package/dist/{chunk-4ZS56W5S.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-QTQUH4DS.js → chunk-LGRLME4M.js} +7 -7
- package/dist/{chunk-CHQCZZWC.js → chunk-LQ4ZHOKP.js} +2 -2
- package/dist/{chunk-GPNTB4Y7.js → chunk-M522UYZ2.js} +5 -5
- package/dist/{chunk-3V4KWFX7.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-UDHWDSRL.js → chunk-MTL7MXGR.js} +6 -6
- package/dist/{chunk-TFR7DSOV.js → chunk-MVZ2TPVP.js} +2 -2
- package/dist/{chunk-K23VKTN4.js → chunk-N5DNADLQ.js} +7 -7
- package/dist/{chunk-RSGLUIO6.js → chunk-NNARWO72.js} +6 -6
- package/dist/{chunk-2ENE6445.js → chunk-NRT6QZQB.js} +102 -16
- package/dist/chunk-NRT6QZQB.js.map +1 -0
- package/dist/{chunk-PPTHY5QO.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-ACAQ2DSG.js → chunk-PSIV7CJV.js} +2 -2
- package/dist/{chunk-KKEESNPE.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-G73UVHCA.js → chunk-QWFHIOD2.js} +5 -5
- package/dist/{chunk-AYX7AINO.js → chunk-QWGU66MP.js} +3 -3
- package/dist/chunk-RHVMZSUU.js +7 -0
- package/dist/chunk-RHVMZSUU.js.map +1 -0
- package/dist/{chunk-3BVH633C.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-4GFX6MPA.js → chunk-SYVZW77S.js} +6 -6
- package/dist/{chunk-ZYIYHJ5R.js → chunk-T2LBQ5DV.js} +815 -222
- 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-CUQPWYRX.js → chunk-UD5EVGZ7.js} +42 -389
- package/dist/chunk-UD5EVGZ7.js.map +1 -0
- package/dist/{chunk-M4YPHYEH.js → chunk-UPD5NWI5.js} +65 -17
- package/dist/chunk-UPD5NWI5.js.map +1 -0
- package/dist/{chunk-HPVZCW43.js → chunk-UYB234ZR.js} +2 -2
- 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-F3W6YMDC.js → chunk-VNPEWFPD.js} +4 -4
- package/dist/{chunk-JVIBCBC7.js → chunk-WNJ4AVGE.js} +2 -2
- package/dist/{chunk-ZHKOPKE3.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-HJUWN7JN.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-A2HKRLPV.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-WQBG4SZS.js → chunk-ZE4CHIED.js} +56 -34
- 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-V7ZRRCRJ.js → chunk-ZXABPVM6.js} +6 -6
- package/dist/classified/index.js +5 -5
- package/dist/{classified-marker-BWOFVYAC.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-PKQDLOT4.js → dead-filter-U2UYKSZL.js} +2 -2
- package/dist/debug/index.js +1 -1
- package/dist/{delegation-DS5NRILW.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-IEPAVQUM.js → dispatch-3CQDJV5Q.js} +5 -5
- package/dist/{dispatch-Q6MWLOJY.js → dispatch-RH4LHKBH.js} +21 -21
- package/dist/{enclave-55PAM4YO.js → enclave-27SMF6GF.js} +9 -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-S3QL53YX.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 +28 -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/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/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-EDXFFZQL.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-NCWEMPUQ.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-ECVCDIXW.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-3IPCSG6Q.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-QZDHSGD4.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-X5CC22CQ.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-BZS6H2RY.js → stale-TJ3DYZMQ.js} +10 -10
- package/dist/storage-SVMKRGCW.js +22 -0
- package/dist/{store-coordination-provider-4WZAIRHC.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-6MDTIUEV.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 +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-pod/format.d.ts +1 -1
- package/dist/with-pod/pod.d.ts +1 -1
- 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-WYW4YEQG.js +0 -19
- package/dist/chunk-2577DKXB.js.map +0 -1
- package/dist/chunk-2ENE6445.js.map +0 -1
- package/dist/chunk-3V4KWFX7.js.map +0 -1
- package/dist/chunk-4GVM6QZA.js.map +0 -1
- package/dist/chunk-4ZS56W5S.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-A66I4JOA.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-BVN6KXL2.js.map +0 -1
- package/dist/chunk-CUQPWYRX.js.map +0 -1
- package/dist/chunk-CUZLNGD5.js.map +0 -1
- package/dist/chunk-EQEYOJBM.js.map +0 -1
- package/dist/chunk-FET5XCAT.js.map +0 -1
- package/dist/chunk-HIWCKBEY.js.map +0 -1
- package/dist/chunk-HJUWN7JN.js.map +0 -1
- package/dist/chunk-I3ISCYT7.js +0 -159
- package/dist/chunk-I3ISCYT7.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-M4YPHYEH.js.map +0 -1
- package/dist/chunk-NSITFOCJ.js +0 -99
- package/dist/chunk-NSITFOCJ.js.map +0 -1
- package/dist/chunk-PPTHY5QO.js.map +0 -1
- package/dist/chunk-R7BX2NB3.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-SPYWXKJN.js.map +0 -1
- package/dist/chunk-UP4BECPY.js.map +0 -1
- package/dist/chunk-UXVWEX5L.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-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/collection-facade-JSJYIKS4.js +0 -45
- package/dist/derive-E642AOUB.js +0 -21
- 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/find-NOGJ25VX.js +0 -10
- package/dist/issue-3DTQ7VJJ.js +0 -18
- package/dist/json-schema-V3M5MUCM.js.map +0 -1
- 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/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/revoke-7M2VW4ON.js +0 -23
- package/dist/signer-SJQJVSM6.js +0 -24
- package/dist/storage-RW4QBS23.js +0 -22
- package/dist/walk-ZURCH6RZ.js +0 -21
- package/dist/withdraw-accessible-PXR4IXDX.js +0 -27
- /package/dist/{api-WYW4YEQG.js.map → api-GVYEKSJE.js.map} +0 -0
- /package/dist/{backup-XKCXVKV3.js.map → backup-7TFRVFLH.js.map} +0 -0
- /package/dist/{chunk-BUE2D7PX.js.map → chunk-32YV3TJT.js.map} +0 -0
- /package/dist/{chunk-3PGS7TYR.js.map → chunk-3ELRMVJK.js.map} +0 -0
- /package/dist/{chunk-OTQZ7ZWU.js.map → chunk-3F7GLNAE.js.map} +0 -0
- /package/dist/{chunk-SGZAIJCV.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-DFMWUOU5.js.map → chunk-6B3VNR4P.js.map} +0 -0
- /package/dist/{chunk-TUFM4UZP.js.map → chunk-6K7DPM7D.js.map} +0 -0
- /package/dist/{chunk-3VF3WQ4F.js.map → chunk-6LMQ5R26.js.map} +0 -0
- /package/dist/{chunk-XLMEZIAJ.js.map → chunk-6OWXYZK2.js.map} +0 -0
- /package/dist/{chunk-BRLKZUBT.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-UHHPLO3I.js.map → chunk-B6SJIBQK.js.map} +0 -0
- /package/dist/{chunk-Q2PU57HC.js.map → chunk-BK2HHQGN.js.map} +0 -0
- /package/dist/{collection-facade-JSJYIKS4.js.map → chunk-BKT776R5.js.map} +0 -0
- /package/dist/{chunk-YJX7EOJD.js.map → chunk-BUDAGWL5.js.map} +0 -0
- /package/dist/{chunk-QPQUVOZ2.js.map → chunk-CKNGS5MH.js.map} +0 -0
- /package/dist/{chunk-BTDR2PXY.js.map → chunk-DE4DH2RZ.js.map} +0 -0
- /package/dist/{chunk-Q2MPFCQ7.js.map → chunk-DF73H4UN.js.map} +0 -0
- /package/dist/{chunk-6LKOJBV6.js.map → chunk-EOVMT6TB.js.map} +0 -0
- /package/dist/{chunk-R42NSZI6.js.map → chunk-FCKWQE2H.js.map} +0 -0
- /package/dist/{chunk-4OZNXTO4.js.map → chunk-FN5EBVTQ.js.map} +0 -0
- /package/dist/{chunk-P3MG6QCN.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-2N5ML6HT.js.map → chunk-HVSCEIYL.js.map} +0 -0
- /package/dist/{chunk-GY4WYNNG.js.map → chunk-ID6Z6E66.js.map} +0 -0
- /package/dist/{chunk-YJRT5UQM.js.map → chunk-IEX7NK2K.js.map} +0 -0
- /package/dist/{chunk-334WSVOW.js.map → chunk-ISZQJBML.js.map} +0 -0
- /package/dist/{chunk-LWBCUYZW.js.map → chunk-IT22PWKV.js.map} +0 -0
- /package/dist/{chunk-RF6D3Y5E.js.map → chunk-J6UOHJY5.js.map} +0 -0
- /package/dist/{chunk-JMGDHKQF.js.map → chunk-JCN44NCY.js.map} +0 -0
- /package/dist/{chunk-3BZZJJMQ.js.map → chunk-K6W7BVZ6.js.map} +0 -0
- /package/dist/{chunk-453F654R.js.map → chunk-L7DOS3TE.js.map} +0 -0
- /package/dist/{chunk-QTQUH4DS.js.map → chunk-LGRLME4M.js.map} +0 -0
- /package/dist/{chunk-CHQCZZWC.js.map → chunk-LQ4ZHOKP.js.map} +0 -0
- /package/dist/{chunk-GPNTB4Y7.js.map → chunk-M522UYZ2.js.map} +0 -0
- /package/dist/{chunk-UDHWDSRL.js.map → chunk-MTL7MXGR.js.map} +0 -0
- /package/dist/{chunk-TFR7DSOV.js.map → chunk-MVZ2TPVP.js.map} +0 -0
- /package/dist/{chunk-K23VKTN4.js.map → chunk-N5DNADLQ.js.map} +0 -0
- /package/dist/{chunk-RSGLUIO6.js.map → chunk-NNARWO72.js.map} +0 -0
- /package/dist/{chunk-6YXCPL4T.js.map → chunk-PDCG6PR5.js.map} +0 -0
- /package/dist/{chunk-ACAQ2DSG.js.map → chunk-PSIV7CJV.js.map} +0 -0
- /package/dist/{chunk-G73UVHCA.js.map → chunk-QWFHIOD2.js.map} +0 -0
- /package/dist/{chunk-AYX7AINO.js.map → chunk-QWGU66MP.js.map} +0 -0
- /package/dist/{chunk-3BVH633C.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-4GFX6MPA.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-HPVZCW43.js.map → chunk-UYB234ZR.js.map} +0 -0
- /package/dist/{chunk-DGOZ4UZD.js.map → chunk-VNNRUGMM.js.map} +0 -0
- /package/dist/{chunk-F3W6YMDC.js.map → chunk-VNPEWFPD.js.map} +0 -0
- /package/dist/{chunk-JVIBCBC7.js.map → chunk-WNJ4AVGE.js.map} +0 -0
- /package/dist/{chunk-ZHKOPKE3.js.map → chunk-WX5ADGTZ.js.map} +0 -0
- /package/dist/{chunk-Q7HZX3IF.js.map → chunk-X4773RBR.js.map} +0 -0
- /package/dist/{chunk-A2HKRLPV.js.map → chunk-YNIUIERI.js.map} +0 -0
- /package/dist/{chunk-BZ3534YM.js.map → chunk-ZUVBC32X.js.map} +0 -0
- /package/dist/{chunk-V7ZRRCRJ.js.map → chunk-ZXABPVM6.js.map} +0 -0
- /package/dist/{classified-marker-BWOFVYAC.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-E642AOUB.js.map → computed-TPFBX7U4.js.map} +0 -0
- /package/dist/{dead-filter-PKQDLOT4.js.map → dead-filter-U2UYKSZL.js.map} +0 -0
- /package/dist/{delegation-DS5NRILW.js.map → delegation-S3AEPW2T.js.map} +0 -0
- /package/dist/{enclave-55PAM4YO.js.map → derive-OX7F6TGG.js.map} +0 -0
- /package/dist/{dispatch-IEPAVQUM.js.map → dispatch-3CQDJV5Q.js.map} +0 -0
- /package/dist/{dispatch-Q6MWLOJY.js.map → dispatch-RH4LHKBH.js.map} +0 -0
- /package/dist/{executor-5NIMLSKZ.js.map → enclave-27SMF6GF.js.map} +0 -0
- /package/dist/{executor-7UQ3BZ4F.js.map → executor-B6SRO2QS.js.map} +0 -0
- /package/dist/{executor-AQVXV5GZ.js.map → executor-BI5CHWRY.js.map} +0 -0
- /package/dist/{export-accessible-ORMKLA3E.js.map → executor-RBKM5W5K.js.map} +0 -0
- /package/dist/{extract-partition-NKYO3WNG.js.map → export-accessible-VMA3YM5V.js.map} +0 -0
- /package/dist/{find-NOGJ25VX.js.map → extract-partition-NF7PXGPP.js.map} +0 -0
- /package/dist/{fanout-sidecar-S3QL53YX.js.map → fanout-sidecar-OT6RYLOL.js.map} +0 -0
- /package/dist/{issue-3DTQ7VJJ.js.map → find-LZMP26KF.js.map} +0 -0
- /package/dist/{ledger-EDXFFZQL.js.map → issue-IHARXWW5.js.map} +0 -0
- /package/dist/{liberate-V35QUHJP.js.map → ledger-KZPCMVZY.js.map} +0 -0
- /package/dist/{link-set-2TTM3IZC.js.map → liberate-GRLCZMW4.js.map} +0 -0
- /package/dist/{managed-secret-NCWEMPUQ.js.map → link-set-JCMJ7ULP.js.map} +0 -0
- /package/dist/{noydb-62MX4QUG.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-HHLXEQDN.js.map → noydb-SWQJ3MZS.js.map} +0 -0
- /package/dist/{pod-handle-ECVCDIXW.js.map → pod-handle-WGDFB4C2.js.map} +0 -0
- /package/dist/{post-register-3IPCSG6Q.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-JS3YFQQM.js.map → registry-CILQFXFK.js.map} +0 -0
- /package/dist/{registry-XX2Z7B46.js.map → registry-XNNYQVKV.js.map} +0 -0
- /package/dist/{request-withdrawal-CHPATE4G.js.map → registry-YCDZV3VW.js.map} +0 -0
- /package/dist/{revoke-7M2VW4ON.js.map → registry-ZGYS33TE.js.map} +0 -0
- /package/dist/{signer-SJQJVSM6.js.map → request-withdrawal-Z5NC6TXT.js.map} +0 -0
- /package/dist/{reveal-QZDHSGD4.js.map → reveal-4BCKPEC2.js.map} +0 -0
- /package/dist/{stale-BZS6H2RY.js.map → revoke-ZL62WC2D.js.map} +0 -0
- /package/dist/{seed-X5CC22CQ.js.map → seed-4JS2RJ4A.js.map} +0 -0
- /package/dist/{storage-RW4QBS23.js.map → signer-MBZZMXTC.js.map} +0 -0
- /package/dist/{walk-ZURCH6RZ.js.map → stale-TJ3DYZMQ.js.map} +0 -0
- /package/dist/{withdraw-accessible-PXR4IXDX.js.map → storage-SVMKRGCW.js.map} +0 -0
- /package/dist/{store-coordination-provider-4WZAIRHC.js.map → store-coordination-provider-2O2VUHKW.js.map} +0 -0
- /package/dist/{verify-6MDTIUEV.js.map → verify-RVT67IMH.js.map} +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,88 @@
|
|
|
1
1
|
# Changelog — hub
|
|
2
2
|
|
|
3
|
+
## 0.8.0-pre.0
|
|
4
|
+
|
|
5
|
+
Relicensed from MIT to Apache-2.0 from this version on. Earlier versions remain MIT.
|
|
6
|
+
|
|
7
|
+
`@noy-db/shamir` is published for the first time under a surviving number (its `0.7.1-pre.0` was withdrawn). `revokeAuthenticator` lands (vLannaAi/noy-db#1445). `repository.url` now points at `github.com/noy-db/core`.
|
|
8
|
+
|
|
9
|
+
Query tiers: the DSL ships in four groups, and a Find-only consumer stops paying for the other three (#1458).
|
|
10
|
+
|
|
11
|
+
`@noy-db/hub/query` now carries **Find** and nothing else — `where` (ten operators), `or`, `and`, `filter`, `wherePredicate`, `orderBy`, `limit`, `offset`, `page`, `after`, `first`, `toArray`, `count`, `exists`, `ids`, `toPlan`. The other three groups are side-effect subpaths:
|
|
12
|
+
|
|
13
|
+
```ts
|
|
14
|
+
import '@noy-db/hub/query/live' // subscribe, live
|
|
15
|
+
import '@noy-db/hub/query/reduce' // aggregate, groupBy, window, distinct, dateTrunc
|
|
16
|
+
import '@noy-db/hub/query/relate' // the joins, traverse, ancestorsOf, descendantsOf, explain
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
One line at your app's entry patches the methods onto `Query.prototype` **and** merges their types, so no call site changes. `collection.scan()` is split the same way — `scan().aggregate()` / `scan().groupBy()` come with Reduce, `scan().join()` with Relate.
|
|
20
|
+
|
|
21
|
+
**Consumers of `@noy-db/hub` (the root barrel) do nothing.** The root barrel imports all three groups, so every method and every re-export is exactly where it was. This is breaking only for code that imports from `@noy-db/hub/query` directly; `codemods/0.8.0-pre.json` lists the moved symbols and the imports to add.
|
|
22
|
+
|
|
23
|
+
Calling a method whose group is not imported does not compile — the method's type ships with its subpath. If a cast gets one past `tsc`, it throws `QueryExtensionMissingError`, which names the method and the subpath rather than `TypeError: q.join is not a function`.
|
|
24
|
+
|
|
25
|
+
Measured: `import { Query } from '@noy-db/hub/query'` plus `where().orderBy().limit().toArray()` was 80,743 B minified / 26,036 B gzipped, of which 33,589 B was Relate, Reduce and Live code the query never touched — and importing the barrel cost the same as using it, because a bundler cannot drop a method of a class. `scripts/check-bundle.mjs` now measures each group as a scenario, with a control per group asserting the side-effect import still brings its code in.
|
|
26
|
+
|
|
27
|
+
A materialized view can declare a **window** — a running total, a ranking, or a look at the neighbouring row (#1411).
|
|
28
|
+
|
|
29
|
+
```ts
|
|
30
|
+
withMaterializedView({
|
|
31
|
+
name: 'clientRollup',
|
|
32
|
+
unionSources: [{ collection: 'payments', map: (r) => ({ client: r.client, period: r.period, amount: r.amount }) }],
|
|
33
|
+
groupBy: ['client', 'period'],
|
|
34
|
+
aggregate: { total: sum('amount') },
|
|
35
|
+
moneyFields: { amount: THB, total: THB, cumulative: THB },
|
|
36
|
+
window: {
|
|
37
|
+
partitionBy: 'client',
|
|
38
|
+
orderBy: 'period',
|
|
39
|
+
select: { cumulative: runningMoneySum('total') },
|
|
40
|
+
},
|
|
41
|
+
rowKey: (row) => `${row.client}:${row.period}`,
|
|
42
|
+
})
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
Runs after `groupBy` + `aggregate` and before `derive`, which is the order the useful shape needs: aggregate per (client, period), then accumulate *across* periods. Available on the `unionSources` and `projection` forms; the `query` form is unchanged, because a `Query` already has `.window(...).select(...)`.
|
|
46
|
+
|
|
47
|
+
**Money is exact.** Reducer slots are rewritten through the same money binding `aggregate` uses, from the view's own `moneyFields`, so `runningMoneySum` accumulates in BigInt. Without that rewrite a running total over decimal strings returns `0.6000000000000001` where the aggregate on the same rows returns `'0.60'`.
|
|
48
|
+
|
|
49
|
+
`moneyFields` no longer requires `aggregate` — a window's reducer slots are money-rewritten too, so a view declaring a window and no aggregate is now valid. `window.select` keys are refused if they collide with a `groupBy` key (a group key is the row's identity and feeds `rowKey`), and an empty `select` is refused.
|
|
50
|
+
|
|
51
|
+
The window folds into `queryHash`, so re-parameterising one forces a refresh. `partitionBy` and `orderBy` are deliberately **not** sorted into the hash, unlike the groupBy and aggregate keys beside them: group buckets are commutative and window keys are not, so sorting them would let a real semantic change reuse a stored hash. A view that declares no window hashes byte-identically to before.
|
|
52
|
+
|
|
53
|
+
Periods, blobs and materialized views — a pilot-reported round (#1450–#1456, #1411).
|
|
54
|
+
|
|
55
|
+
- **#1454 — the periods family is not reachable through `vault.collection()`.** `_periods`, `_period_reopens`, `_period_freezes`, `_period_archives` and `_period_target_purges` now throw `ReservedCollectionNameError`, the same door as `_sync_credentials` and `_manifest`. Measured before: two `put()`s through the public handle rewrote a close, erased its append-only reopen log and unsealed the cell on the next cold open, undetected. `loadPeriods()` now verifies the inter-period hash chain and throws the new `PeriodChainError` when an interior close was rewritten or deleted under the engine; the newest close in a timeline has no successor hashing it, which is why the refusal, not the chain, is the fix. `chainAnchor` hashes the STORED record shape (return-only reopen/freeze/archive fields stripped), so a close following a reopen verifies.
|
|
56
|
+
- **#1455 — a business date the gate cannot read is refused, not admitted.** With a `dateField`, a `Date` value is compared as the ISO string it will be stored as; a number, boolean or object throws `ValidationError`; absent / `null` means the record carries no business date and belongs to no period. The per-record `_ts` fallback the `endDate` docstring promised is withdrawn rather than implemented — it would have sealed every dateless row written before a vault-wide close. `PeriodClosedError` gains structured `dateField` and `side`.
|
|
57
|
+
- **#1456 — reopening a period frees the records in its window.** A value is owned by the closed period with the smallest `endDate` at or after it; when that owner is reopened, no later close vetoes it. Reopening January with February and March closed frees January-dated rows and leaves February's sealed.
|
|
58
|
+
- **#1452 — a sealed record's attachments are sealed with it.** `blob(id).put/delete/publish/deleteVersion/adoptExternal` run the owning record's `beforePut` gate with `incoming = existing`, so closed periods AND record guards refuse an attachment change exactly as they would refuse the record's update. A record with no stored body is not gated.
|
|
59
|
+
- **#1451 — `collection.delete(id)` releases the record's blob references.** Ref-counted: an erasable blob shreds at refCount 0, shared content survives the deletion of one holder, a legacy blob's slot is gone and its chunks await reclaim.
|
|
60
|
+
- **#1453 — legacy blobs have a reclaim path and `compact()` can see them.** `CompactionResult.unreferencedLegacyBlobs` counts key-less index rows at `refCount <= 0` on every run; `compact({ reclaimLegacyBlobs: true })` deletes them chunks-first. `BlobSet.delete()`'s docstring no longer names a `vault.blobGC()` that never existed.
|
|
61
|
+
- **#1450 — on record: a UNION MV arm's `map` receives virtual via fields**, with correct values. It arrived with #1416 and is intended; it is now pinned by a test so a read-path refactor cannot take it away silently.
|
|
62
|
+
- **#1411 — a UNION MV arm can declare a `joinOn` leg:** `join: [{ target, as, on, mode?, maxRows? }]` is `Query.joinOn()` in declaration form — composite equality or a range, predicate as data. The predicate folds into `queryHash` and the target joins the dependency set without a `sources` entry. `window` on MV declarations stays open (strategy-coupling design question).
|
|
63
|
+
|
|
64
|
+
Period membership refuses a malformed business date instead of comparing it (#1459).
|
|
65
|
+
|
|
66
|
+
#1455 made the guard refuse a `dateField` value that is neither a string nor a `Date`. Strings were still passed straight into the lexicographic comparison, so `'hello'` was written and — the case that matters — `'2026-6-15'` was written **into a sealed June**: it names a real day, but as text it sorts above `'2026-06-30'`.
|
|
67
|
+
|
|
68
|
+
Both sides are now validated against the set that orders correctly: **zero-padded** `YYYY`, `YYYY-MM` or `YYYY-MM-DD`, optionally with a time. Coarser is fine — `'2026-01'` is how a monthly cycle is written, and it orders correctly — but unpadded is not. `closePeriod({ endDate })` refuses a malformed cutoff at the close, and `record[dateField]` is refused at the write with a `ValidationError` naming the field and the value. Absent and `null` still mean "no business date and no period" (#1455), unchanged.
|
|
69
|
+
|
|
70
|
+
⚠️ Two inputs previously refused for the wrong reason now fail for the right one: `''` and `'15/06/2026'` were caught only because they sort below every plausible `endDate` — the period gate firing on garbage. They are `ValidationError` about the input now, not `PeriodClosedError`. Code catching `PeriodClosedError` around a write with an unvalidated date string should widen to `ValidationError`.
|
|
71
|
+
|
|
72
|
+
`TamperedError` means exactly "AEAD failed under this key" (lanna-db #4). `reason` gains `'key-absent'` (thrown by the DEK resolver when a keyring holds no DEK for a reserved collection that already holds sealed records — #1288), plus the reserved `'generation-mismatch'` / `'foreign-stamp'` values (declared, not emitted). A credential-derived key that fails to open a wrapped-DEK blob now surfaces `InvalidKeyError`, never `TamperedError` (#1318). With the periods strategy active, `grant()` mints the grantor's `_periods` DEK first, so every grantee who may write a subject collection can read the gate that admits the write (#1288 ask 2).
|
|
73
|
+
|
|
74
|
+
`Array.isArray` on a cold collection's pending result now returns `true`, so the idiomatic guard cannot silently swallow the read (#1462).
|
|
75
|
+
|
|
76
|
+
`toArray()` is declared `T[]`, so `Array.isArray(rows) ? rows : []` is the ordinary defensive shape for the declared type — and on an unhydrated collection it returned `[]`, restoring #1414's silent empty read behind code that looks like it handles the edge case. The pending result's proxy target is now `[]` rather than `{}`; `IsArray` unwraps a proxy to its target, so the check answers `true` and the guard falls through to the throwing path. Every content access still throws `CollectionNotHydratedError` — the target is classified, never read.
|
|
77
|
+
|
|
78
|
+
The docstring no longer claims the result "throws on any other use". It now enumerates the two operations that stay silent and cannot be made to throw — `typeof` (answered from the value's type) and truthiness (`ToBoolean` never calls a trap) — with the reason for each. That phrasing is what a consumer calibrates against, and a probe written against "any other use" passes vacuously because the phrase names no specific use.
|
|
79
|
+
|
|
80
|
+
Export `./package.json` so a consumer can read hub's own manifest.
|
|
81
|
+
|
|
82
|
+
Node refuses `require.resolve('@noy-db/hub/package.json')` with `ERR_PACKAGE_PATH_NOT_EXPORTED` unless the exports map names it — and hub's never did, on any version published. A consumer that needs the installed hub's exports map (`@noy-db/ui-nuxt` decides which query groups to register from it; `noy-db-as`'s codemod-row checker reads the same path) had to resolve the entry and walk up directories to find the manifest.
|
|
83
|
+
|
|
84
|
+
Additive, no seam change, and nothing a bundler ships.
|
|
85
|
+
|
|
3
86
|
## 0.7.1-pre.0
|
|
4
87
|
|
|
5
88
|
### Patch Changes
|
|
@@ -8269,7 +8352,7 @@ This release also lands a build fix: `main` had been red since [#196](https://gi
|
|
|
8269
8352
|
|
|
8270
8353
|
## 0.1.0-pre.15
|
|
8271
8354
|
|
|
8272
|
-
A small fast-follow to pre.14's Dim 14 v2: extends `withMaterializedView` along two consumer-driven axes ([#165](https://github.com/vLannaAi/noy-db/issues/165) + [#166](https://github.com/vLannaAi/noy-db/issues/166)), folds in a pre.14 type-only cleanup ([#131](https://github.com/vLannaAi/noy-db/issues/131)), and resolves two
|
|
8355
|
+
A small fast-follow to pre.14's Dim 14 v2: extends `withMaterializedView` along two consumer-driven axes ([#165](https://github.com/vLannaAi/noy-db/issues/165) + [#166](https://github.com/vLannaAi/noy-db/issues/166)), folds in a pre.14 type-only cleanup ([#131](https://github.com/vLannaAi/noy-db/issues/131)), and resolves two pilot-1-review follow-ups ([#169](https://github.com/vLannaAi/noy-db/issues/169) + [#170](https://github.com/vLannaAi/noy-db/issues/170)). 5 issues closed, 1 PR merged ([#167](https://github.com/vLannaAi/noy-db/pull/167)), 28 new hub tests, 1601 hub tests on the tip.
|
|
8273
8356
|
|
|
8274
8357
|
### Multi-key `groupBy` ([#166](https://github.com/vLannaAi/noy-db/issues/166))
|
|
8275
8358
|
|
|
@@ -8295,9 +8378,9 @@ Registration validation (new `MaterializedViewConfigError`):
|
|
|
8295
8378
|
|
|
8296
8379
|
Executor path: reads each arm, runs per-source `map`, concatenates, then dispatches by shape (no groupBy → return as-is; groupBy without aggregate → dedupe via `canonicalGroupKey`, first row wins per composite key; groupBy + aggregate → delegate to `groupAndReduce`). Source-write hook fires on every arm via the existing dependency reverse-index — `Collection.put` is unchanged.
|
|
8297
8380
|
|
|
8298
|
-
`summarizeUnionPlan` hashes arm collection names in **declaration order** (semantically meaningful for the dedup-only path — first-seen row per composite key wins, and reordering arms must trigger a refresh). `groupBy` fields and `aggregate` keys are still sorted (genuinely commutative). Two regression tests pin the asymmetry. (
|
|
8381
|
+
`summarizeUnionPlan` hashes arm collection names in **declaration order** (semantically meaningful for the dedup-only path — first-seen row per composite key wins, and reordering arms must trigger a refresh). `groupBy` fields and `aggregate` keys are still sorted (genuinely commutative). Two regression tests pin the asymmetry. (pilot-1 review, [#167](https://github.com/vLannaAi/noy-db/pull/167) — first finding addressed in `6be47a2`.)
|
|
8299
8382
|
|
|
8300
|
-
`maxRows`, `onEmpty`, `strict` semantics inherited unchanged. Composes with multi-key groupBy: the
|
|
8383
|
+
`maxRows`, `onEmpty`, `strict` semantics inherited unchanged. Composes with multi-key groupBy: the pilot-1 canonical monthly-VAT shape — `union(taxReceipts, creditNotes).groupBy('clientId', 'period').sum('vat')` — is the combined test fixture.
|
|
8301
8384
|
|
|
8302
8385
|
### `GuardStrategyHandle` variance cleanup ([#131](https://github.com/vLannaAi/noy-db/issues/131))
|
|
8303
8386
|
|
|
@@ -8311,9 +8394,9 @@ The fix: a sealed internal `GuardStrategyHandleAny` existential interface (`{ __
|
|
|
8311
8394
|
|
|
8312
8395
|
The single `any` retained inside the existential body is the established named-existential pattern — `any` is now contained behind a private named boundary instead of leaking from public-API field positions. Type-only refactor; no behaviour change; guards test suite (48 tests) and showcase 79 unchanged.
|
|
8313
8396
|
|
|
8314
|
-
###
|
|
8397
|
+
### Pilot-1-review follow-ups
|
|
8315
8398
|
|
|
8316
|
-
`5b385e7` adds two registration guards from the
|
|
8399
|
+
`5b385e7` adds two registration guards from the pilot-1 review of [#167](https://github.com/vLannaAi/noy-db/pull/167):
|
|
8317
8400
|
|
|
8318
8401
|
- [#169](https://github.com/vLannaAi/noy-db/issues/169) — UNION MV with `aggregate` requires `groupBy` (else the executor silently dropped the reducer)
|
|
8319
8402
|
- [#170](https://github.com/vLannaAi/noy-db/issues/170) — `predicates` not supported on UNION MVs (predicate hashes weren't folded into `summarizeUnionPlan` and `.wherePredicate` never fired in the executor)
|
|
@@ -8326,7 +8409,7 @@ Both fail-fast at registration with `MaterializedViewConfigError`, same pattern
|
|
|
8326
8409
|
|
|
8327
8410
|
### Showcases + docs
|
|
8328
8411
|
|
|
8329
|
-
- [`85-with-multikey-groupby`](https://github.com/vLannaAi/noy-db/blob/main/showcases/src/85-with-multikey-groupby.showcase.test.ts) — variadic groupBy walkthrough, declaration-order assertions,
|
|
8412
|
+
- [`85-with-multikey-groupby`](https://github.com/vLannaAi/noy-db/blob/main/showcases/src/85-with-multikey-groupby.showcase.test.ts) — variadic groupBy walkthrough, declaration-order assertions, pilot-1 per-(client, period) shape
|
|
8330
8413
|
- [`86-with-union-mv`](https://github.com/vLannaAi/noy-db/blob/main/showcases/src/86-with-union-mv.showcase.test.ts) — UNION MV walkthrough with the monthly-VAT example
|
|
8331
8414
|
- `docs/services/aggregate.md` — new "Multi-key groupBy" section
|
|
8332
8415
|
- `docs/services/derivations.md` — "Multi-key groupBy in MV queries" + "UNION sources" sections
|
|
@@ -8350,14 +8433,14 @@ Four fast-follow refinements that landed first to give the MV v2 work a hardened
|
|
|
8350
8433
|
Query-level materialized views. Where `withDerivation` v1 projects one source row into N typed outputs, `withMaterializedView` materializes the result of an entire `Query<T>` — filter, groupBy, aggregate, join — into a queryable collection kept fresh on source writes. Six sub-issues across foundation, lifecycles, correctness, predicates, overlays, and showcases:
|
|
8351
8434
|
|
|
8352
8435
|
- **Foundation** ([#150](https://github.com/vLannaAi/noy-db/issues/150), PR [#156](https://github.com/vLannaAi/noy-db/pull/156)) — `withMaterializedView({ name, query, rowKey, refresh })` factory; `MaterializedViewRegistry`; `MaterializedViewExecutor`; `Collection.put` source-write hook for eager refresh. `_materializedFrom` payload metadata (lives inside encrypted `_data`, opaque to the store — matches `_derivedFrom` precedent). `MaterializedViewCycleError` + `MaterializedViewSourceUnknownError`. New `@noy-db/hub/materialized-views` subpath.
|
|
8353
|
-
- **Lazy + manual lifecycles** ([#151](https://github.com/vLannaAi/noy-db/issues/151), PR [#157](https://github.com/vLannaAi/noy-db/pull/157)) — `refresh: 'lazy'` marks the MV stale on source writes; the next read of the MV output collection resolves on demand. `refresh: 'manual'` opts out of the source-write hook entirely; `vault.refreshView(name)` is the only refresh path. Returns `{ written, deleted, failed }` —
|
|
8436
|
+
- **Lazy + manual lifecycles** ([#151](https://github.com/vLannaAi/noy-db/issues/151), PR [#157](https://github.com/vLannaAi/noy-db/pull/157)) — `refresh: 'lazy'` marks the MV stale on source writes; the next read of the MV output collection resolves on demand. `refresh: 'manual'` opts out of the source-write hook entirely; `vault.refreshView(name)` is the only refresh path. Returns `{ written, deleted, failed }` — pilot-1-review caught the original "deleted: 0 hardcode" pre-merge.
|
|
8354
8437
|
- **Correctness — partition / onEmpty / ceiling / strict / aggregate** ([#152](https://github.com/vLannaAi/noy-db/issues/152), PR [#158](https://github.com/vLannaAi/noy-db/pull/158)) — five strategy fields:
|
|
8355
8438
|
- `output.partition: { field, value }` — same-collection edges are allowed when a where-clause provably excludes `partition.value` (`==` against a different value, `!=` against the value, `in` lists that exclude it). Cycle detector resolves these as non-cycles.
|
|
8356
8439
|
- `onEmpty: 'delete' | 'keep'` (default `'delete'`) — when a key that previously emitted rows yields zero rows, tombstone via `Collection._internalDelete`. User `onDelete` guards on the output collection are bypassed for housekeeping (the composition fix that makes #145 + MV refresh coherent).
|
|
8357
8440
|
- `maxRows` (default `100_000`) — row-count ceiling; throws `MaterializedViewTooLargeError` **before** any writes (clean rollback).
|
|
8358
8441
|
- `strict: true` re-throws row-write failures → composes with `withTransactions` to roll back the source-write atomically via `revertExecuted` (the orphan-window fix from pre.12 #133).
|
|
8359
8442
|
- **Aggregate / groupBy queries** — executor branches on the terminal shape (`Query<T>.toArray()` / `Aggregation.run()` / `GroupedAggregation.run()`). `groupBy().aggregate()` closes over its source so the dep analyzer can't introspect; aggregate MVs require explicit `sources?: string[]`.
|
|
8360
|
-
- **Declared deterministic predicates** ([#153](https://github.com/vLannaAi/noy-db/issues/153), PR [#159](https://github.com/vLannaAi/noy-db/pull/159)) — `MaterializedViewStrategy.predicates: { [name]: { hash, fn } }` registers named functions callable from inside the MV's `query()` callback via `.wherePredicate(name, ctx?)`. The predicate's `hash` **and** a canonical-JSON hash of the `ctx` argument both fold into `queryHash` — bumping `hash` or changing `ctx` forces refresh. Canonical use: `isOverdue` against an `asOf` date that moves externally.
|
|
8443
|
+
- **Declared deterministic predicates** ([#153](https://github.com/vLannaAi/noy-db/issues/153), PR [#159](https://github.com/vLannaAi/noy-db/pull/159)) — `MaterializedViewStrategy.predicates: { [name]: { hash, fn } }` registers named functions callable from inside the MV's `query()` callback via `.wherePredicate(name, ctx?)`. The predicate's `hash` **and** a canonical-JSON hash of the `ctx` argument both fold into `queryHash` — bumping `hash` or changing `ctx` forces refresh. Canonical use: `isOverdue` against an `asOf` date that moves externally. Pilot-1-review caught the original "predicates dropped through chain methods" pre-merge: every chain operator (`where`, `or`, `and`, `filter`, `orderBy`, `limit`, `offset`, `join`) now threads the predicates map.
|
|
8361
8444
|
- **Overlay views — `withOverlayedView`** ([#154](https://github.com/vLannaAi/noy-db/issues/154), PR [#160](https://github.com/vLannaAi/noy-db/pull/160)) — read-shadow primitive. Declares a virtual collection that merges a `base` (typically an MV output) with a user-writable `overlay` via a single-field shadow predicate (`overlay[shadowField] === shadowValue`). Writes through the virtual proxy route to the overlay. Constraints: `base` must be concrete (no overlay-on-overlay stacking — v3 non-goal); `overlay` must not be an MV output; virtual name must not collide with concrete collections or MV outputs. Four error classes (`OverlayBaseIsVirtualError`, `OverlayCollectionUnavailableError`, `OverlayNameCollisionError`, `OverlayIdMismatchError`).
|
|
8362
8445
|
- **Showcases + reader-facing docs** ([#155](https://github.com/vLannaAi/noy-db/issues/155), PR [#161](https://github.com/vLannaAi/noy-db/pull/161)) — four new showcases (`81-with-mv-eager`, `82-with-mv-lazy`, `83-with-overlay`, `84-with-mv-predicates`) totaling 19 tests; `docs/services/derivations.md` extended with Materialized Views + Overlay views sections; `features.yaml` entries for `materialized-views` and `overlay-views`.
|
|
8363
8446
|
|
|
@@ -8373,9 +8456,9 @@ The pre.14 release closes the loop on the write-path primitive composition:
|
|
|
8373
8456
|
|
|
8374
8457
|
The `Collection._internalDelete` housekeeping bypass (introduced in #148 for #144's tombstoning) is the load-bearing primitive that keeps `withGuard.onDelete: throw` rules coherent with system-driven tombstones from optional derivations and MV `onEmpty: 'delete'` flows.
|
|
8375
8458
|
|
|
8376
|
-
### Process notes for
|
|
8459
|
+
### Process notes for pilot-1 integration
|
|
8377
8460
|
|
|
8378
|
-
- All five MV PRs (#156–#160) plus #161 passed
|
|
8461
|
+
- All five MV PRs (#156–#160) plus #161 passed pilot-1-review with "No issues found" verdicts after pre-merge fixes. The pilot-1-review pattern that worked: surface composition issues (e.g. "list/query/scan don't trigger lazy resolve", "chain methods drop predicates map") before the PR landed on main.
|
|
8379
8462
|
- Stacked-PR rebase pattern documented in [project memory](https://github.com/vLannaAi/noy-db/blob/main/) after this cycle: when squash-merging a stack of N PRs, the canonical recovery for the (N+1)th descendant is `reset --hard origin/main && cherry-pick <descendant-only-commits>` rather than re-rebasing the original branch. Re-rebasing leaks conflict markers when the parent's content has been merged with reviewer-fix tweaks.
|
|
8380
8463
|
|
|
8381
8464
|
### Files of interest
|
|
@@ -8542,7 +8625,7 @@ A 2026-05-09 deep-review of the pre.9 surface (security + API consistency) filed
|
|
|
8542
8625
|
|
|
8543
8626
|
### Consumer-iteration cycle on pre.8 APIs
|
|
8544
8627
|
|
|
8545
|
-
Closes the 5-issue follow-up batch surfaced after
|
|
8628
|
+
Closes the 5-issue follow-up batch surfaced after Pilot-1 (first production consumer) shipped pre.8 to production. No new subsystems; surgical extensions to APIs that landed in pre.8.
|
|
8546
8629
|
|
|
8547
8630
|
#### New public APIs
|
|
8548
8631
|
|
|
@@ -8572,7 +8655,7 @@ Closes the 5-issue follow-up batch surfaced after Niwat (first production consum
|
|
|
8572
8655
|
|
|
8573
8656
|
### Authentication surface — major auth-review batch
|
|
8574
8657
|
|
|
8575
|
-
Closes the 12-issue auth-review filed at the start of this milestone. Driven by feedback from the first production consumer (
|
|
8658
|
+
Closes the 12-issue auth-review filed at the start of this milestone. Driven by feedback from the first production consumer (Pilot-1); the pre.8 surface is what they need to drop ~250 LOC of vendored workarounds.
|
|
8576
8659
|
|
|
8577
8660
|
#### New public APIs
|
|
8578
8661
|
|
|
@@ -8641,9 +8724,9 @@ Closes the 12-issue auth-review filed at the start of this milestone. Driven by
|
|
|
8641
8724
|
|
|
8642
8725
|
See `docs/services/user-envelope.md`, `docs/recipes/user-preferences.md`, `showcases/src/70-user-envelope.showcase.test.ts`, and `showcases/src/recipe-user-preferences.recipe.test.ts`.
|
|
8643
8726
|
|
|
8644
|
-
- **`db.enrollWebAuthn(vault, ceremony, presented?)`** ([#16](https://github.com/vLannaAi/noy-db/issues/16)) — native WebAuthn enrollment using the **real** internal keyring. Unblocks `
|
|
8727
|
+
- **`db.enrollWebAuthn(vault, ceremony, presented?)`** ([#16](https://github.com/vLannaAi/noy-db/issues/16)) — native WebAuthn enrollment using the **real** internal keyring. Unblocks `pilot-1#31`. The ceremony callback receives the live `UnlockedKeyring` so the `wrapped_kek` references the live KEK (not the synthetic-keyring workaround that broke unlock). Hub does not import `@noy-db/on-webauthn` (would invert dep graph); consumers wire the on-webauthn `enrollWebAuthn` function in via the ceremony callback. Companion `db.listWebAuthnSlots(vault)` returns webauthn-method slots only.
|
|
8645
8728
|
|
|
8646
|
-
- **`db.lockVault(vault)`** ([#17](https://github.com/vLannaAi/noy-db/issues/17)) — soft lock that scrubs `keyringCache`, `vaultCache`, `activeTier`, `syncEngines`, `policyEnforcers` for the vault, but **preserves `quickUnlock`** (PIN resume after lock-screen UX) and `policyCache` (on-disk policy survives lock). Idempotent; the `Noydb` instance remains usable. Unblocks `
|
|
8729
|
+
- **`db.lockVault(vault)`** ([#17](https://github.com/vLannaAi/noy-db/issues/17)) — soft lock that scrubs `keyringCache`, `vaultCache`, `activeTier`, `syncEngines`, `policyEnforcers` for the vault, but **preserves `quickUnlock`** (PIN resume after lock-screen UX) and `policyCache` (on-disk policy survives lock). Idempotent; the `Noydb` instance remains usable. Unblocks `pilot-1#33`.
|
|
8647
8730
|
|
|
8648
8731
|
- **New built-in policy gates** — `edit-own-profile` and `view-team-profiles` registered in `PERSONAL_POLICY` and `STRICT_POLICY`. Apps can tighten (e.g. require TOTP for profile edits) but cannot relax the own-only write rule (structural, not policy-controlled).
|
|
8649
8732
|
|
package/LICENSE
CHANGED
|
@@ -1,21 +1,202 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
1
|
+
|
|
2
|
+
Apache License
|
|
3
|
+
Version 2.0, January 2004
|
|
4
|
+
http://www.apache.org/licenses/
|
|
5
|
+
|
|
6
|
+
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
|
7
|
+
|
|
8
|
+
1. Definitions.
|
|
9
|
+
|
|
10
|
+
"License" shall mean the terms and conditions for use, reproduction,
|
|
11
|
+
and distribution as defined by Sections 1 through 9 of this document.
|
|
12
|
+
|
|
13
|
+
"Licensor" shall mean the copyright owner or entity authorized by
|
|
14
|
+
the copyright owner that is granting the License.
|
|
15
|
+
|
|
16
|
+
"Legal Entity" shall mean the union of the acting entity and all
|
|
17
|
+
other entities that control, are controlled by, or are under common
|
|
18
|
+
control with that entity. For the purposes of this definition,
|
|
19
|
+
"control" means (i) the power, direct or indirect, to cause the
|
|
20
|
+
direction or management of such entity, whether by contract or
|
|
21
|
+
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
|
22
|
+
outstanding shares, or (iii) beneficial ownership of such entity.
|
|
23
|
+
|
|
24
|
+
"You" (or "Your") shall mean an individual or Legal Entity
|
|
25
|
+
exercising permissions granted by this License.
|
|
26
|
+
|
|
27
|
+
"Source" form shall mean the preferred form for making modifications,
|
|
28
|
+
including but not limited to software source code, documentation
|
|
29
|
+
source, and configuration files.
|
|
30
|
+
|
|
31
|
+
"Object" form shall mean any form resulting from mechanical
|
|
32
|
+
transformation or translation of a Source form, including but
|
|
33
|
+
not limited to compiled object code, generated documentation,
|
|
34
|
+
and conversions to other media types.
|
|
35
|
+
|
|
36
|
+
"Work" shall mean the work of authorship, whether in Source or
|
|
37
|
+
Object form, made available under the License, as indicated by a
|
|
38
|
+
copyright notice that is included in or attached to the work
|
|
39
|
+
(an example is provided in the Appendix below).
|
|
40
|
+
|
|
41
|
+
"Derivative Works" shall mean any work, whether in Source or Object
|
|
42
|
+
form, that is based on (or derived from) the Work and for which the
|
|
43
|
+
editorial revisions, annotations, elaborations, or other modifications
|
|
44
|
+
represent, as a whole, an original work of authorship. For the purposes
|
|
45
|
+
of this License, Derivative Works shall not include works that remain
|
|
46
|
+
separable from, or merely link (or bind by name) to the interfaces of,
|
|
47
|
+
the Work and Derivative Works thereof.
|
|
48
|
+
|
|
49
|
+
"Contribution" shall mean any work of authorship, including
|
|
50
|
+
the original version of the Work and any modifications or additions
|
|
51
|
+
to that Work or Derivative Works thereof, that is intentionally
|
|
52
|
+
submitted to Licensor for inclusion in the Work by the copyright owner
|
|
53
|
+
or by an individual or Legal Entity authorized to submit on behalf of
|
|
54
|
+
the copyright owner. For the purposes of this definition, "submitted"
|
|
55
|
+
means any form of electronic, verbal, or written communication sent
|
|
56
|
+
to the Licensor or its representatives, including but not limited to
|
|
57
|
+
communication on electronic mailing lists, source code control systems,
|
|
58
|
+
and issue tracking systems that are managed by, or on behalf of, the
|
|
59
|
+
Licensor for the purpose of discussing and improving the Work, but
|
|
60
|
+
excluding communication that is conspicuously marked or otherwise
|
|
61
|
+
designated in writing by the copyright owner as "Not a Contribution."
|
|
62
|
+
|
|
63
|
+
"Contributor" shall mean Licensor and any individual or Legal Entity
|
|
64
|
+
on behalf of whom a Contribution has been received by Licensor and
|
|
65
|
+
subsequently incorporated within the Work.
|
|
66
|
+
|
|
67
|
+
2. Grant of Copyright License. Subject to the terms and conditions of
|
|
68
|
+
this License, each Contributor hereby grants to You a perpetual,
|
|
69
|
+
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
|
70
|
+
copyright license to reproduce, prepare Derivative Works of,
|
|
71
|
+
publicly display, publicly perform, sublicense, and distribute the
|
|
72
|
+
Work and such Derivative Works in Source or Object form.
|
|
73
|
+
|
|
74
|
+
3. Grant of Patent License. Subject to the terms and conditions of
|
|
75
|
+
this License, each Contributor hereby grants to You a perpetual,
|
|
76
|
+
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
|
77
|
+
(except as stated in this section) patent license to make, have made,
|
|
78
|
+
use, offer to sell, sell, import, and otherwise transfer the Work,
|
|
79
|
+
where such license applies only to those patent claims licensable
|
|
80
|
+
by such Contributor that are necessarily infringed by their
|
|
81
|
+
Contribution(s) alone or by combination of their Contribution(s)
|
|
82
|
+
with the Work to which such Contribution(s) was submitted. If You
|
|
83
|
+
institute patent litigation against any entity (including a
|
|
84
|
+
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
|
85
|
+
or a Contribution incorporated within the Work constitutes direct
|
|
86
|
+
or contributory patent infringement, then any patent licenses
|
|
87
|
+
granted to You under this License for that Work shall terminate
|
|
88
|
+
as of the date such litigation is filed.
|
|
89
|
+
|
|
90
|
+
4. Redistribution. You may reproduce and distribute copies of the
|
|
91
|
+
Work or Derivative Works thereof in any medium, with or without
|
|
92
|
+
modifications, and in Source or Object form, provided that You
|
|
93
|
+
meet the following conditions:
|
|
94
|
+
|
|
95
|
+
(a) You must give any other recipients of the Work or
|
|
96
|
+
Derivative Works a copy of this License; and
|
|
97
|
+
|
|
98
|
+
(b) You must cause any modified files to carry prominent notices
|
|
99
|
+
stating that You changed the files; and
|
|
100
|
+
|
|
101
|
+
(c) You must retain, in the Source form of any Derivative Works
|
|
102
|
+
that You distribute, all copyright, patent, trademark, and
|
|
103
|
+
attribution notices from the Source form of the Work,
|
|
104
|
+
excluding those notices that do not pertain to any part of
|
|
105
|
+
the Derivative Works; and
|
|
106
|
+
|
|
107
|
+
(d) If the Work includes a "NOTICE" text file as part of its
|
|
108
|
+
distribution, then any Derivative Works that You distribute must
|
|
109
|
+
include a readable copy of the attribution notices contained
|
|
110
|
+
within such NOTICE file, excluding those notices that do not
|
|
111
|
+
pertain to any part of the Derivative Works, in at least one
|
|
112
|
+
of the following places: within a NOTICE text file distributed
|
|
113
|
+
as part of the Derivative Works; within the Source form or
|
|
114
|
+
documentation, if provided along with the Derivative Works; or,
|
|
115
|
+
within a display generated by the Derivative Works, if and
|
|
116
|
+
wherever such third-party notices normally appear. The contents
|
|
117
|
+
of the NOTICE file are for informational purposes only and
|
|
118
|
+
do not modify the License. You may add Your own attribution
|
|
119
|
+
notices within Derivative Works that You distribute, alongside
|
|
120
|
+
or as an addendum to the NOTICE text from the Work, provided
|
|
121
|
+
that such additional attribution notices cannot be construed
|
|
122
|
+
as modifying the License.
|
|
123
|
+
|
|
124
|
+
You may add Your own copyright statement to Your modifications and
|
|
125
|
+
may provide additional or different license terms and conditions
|
|
126
|
+
for use, reproduction, or distribution of Your modifications, or
|
|
127
|
+
for any such Derivative Works as a whole, provided Your use,
|
|
128
|
+
reproduction, and distribution of the Work otherwise complies with
|
|
129
|
+
the conditions stated in this License.
|
|
130
|
+
|
|
131
|
+
5. Submission of Contributions. Unless You explicitly state otherwise,
|
|
132
|
+
any Contribution intentionally submitted for inclusion in the Work
|
|
133
|
+
by You to the Licensor shall be under the terms and conditions of
|
|
134
|
+
this License, without any additional terms or conditions.
|
|
135
|
+
Notwithstanding the above, nothing herein shall supersede or modify
|
|
136
|
+
the terms of any separate license agreement you may have executed
|
|
137
|
+
with Licensor regarding such Contributions.
|
|
138
|
+
|
|
139
|
+
6. Trademarks. This License does not grant permission to use the trade
|
|
140
|
+
names, trademarks, service marks, or product names of the Licensor,
|
|
141
|
+
except as required for reasonable and customary use in describing the
|
|
142
|
+
origin of the Work and reproducing the content of the NOTICE file.
|
|
143
|
+
|
|
144
|
+
7. Disclaimer of Warranty. Unless required by applicable law or
|
|
145
|
+
agreed to in writing, Licensor provides the Work (and each
|
|
146
|
+
Contributor provides its Contributions) on an "AS IS" BASIS,
|
|
147
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
|
148
|
+
implied, including, without limitation, any warranties or conditions
|
|
149
|
+
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
|
150
|
+
PARTICULAR PURPOSE. You are solely responsible for determining the
|
|
151
|
+
appropriateness of using or redistributing the Work and assume any
|
|
152
|
+
risks associated with Your exercise of permissions under this License.
|
|
153
|
+
|
|
154
|
+
8. Limitation of Liability. In no event and under no legal theory,
|
|
155
|
+
whether in tort (including negligence), contract, or otherwise,
|
|
156
|
+
unless required by applicable law (such as deliberate and grossly
|
|
157
|
+
negligent acts) or agreed to in writing, shall any Contributor be
|
|
158
|
+
liable to You for damages, including any direct, indirect, special,
|
|
159
|
+
incidental, or consequential damages of any character arising as a
|
|
160
|
+
result of this License or out of the use or inability to use the
|
|
161
|
+
Work (including but not limited to damages for loss of goodwill,
|
|
162
|
+
work stoppage, computer failure or malfunction, or any and all
|
|
163
|
+
other commercial damages or losses), even if such Contributor
|
|
164
|
+
has been advised of the possibility of such damages.
|
|
165
|
+
|
|
166
|
+
9. Accepting Warranty or Additional Liability. While redistributing
|
|
167
|
+
the Work or Derivative Works thereof, You may choose to offer,
|
|
168
|
+
and charge a fee for, acceptance of support, warranty, indemnity,
|
|
169
|
+
or other liability obligations and/or rights consistent with this
|
|
170
|
+
License. However, in accepting such obligations, You may act only
|
|
171
|
+
on Your own behalf and on Your sole responsibility, not on behalf
|
|
172
|
+
of any other Contributor, and only if You agree to indemnify,
|
|
173
|
+
defend, and hold each Contributor harmless for any liability
|
|
174
|
+
incurred by, or claims asserted against, such Contributor by reason
|
|
175
|
+
of your accepting any such warranty or additional liability.
|
|
176
|
+
|
|
177
|
+
END OF TERMS AND CONDITIONS
|
|
178
|
+
|
|
179
|
+
APPENDIX: How to apply the Apache License to your work.
|
|
180
|
+
|
|
181
|
+
To apply the Apache License to your work, attach the following
|
|
182
|
+
boilerplate notice, with the fields enclosed by brackets "[]"
|
|
183
|
+
replaced with your own identifying information. (Don't include
|
|
184
|
+
the brackets!) The text should be enclosed in the appropriate
|
|
185
|
+
comment syntax for the file format. We also recommend that a
|
|
186
|
+
file or class name and description of purpose be included on the
|
|
187
|
+
same "printed page" as the copyright notice for easier
|
|
188
|
+
identification within third-party archives.
|
|
189
|
+
|
|
190
|
+
Copyright 2026 vLannaAi
|
|
191
|
+
|
|
192
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
193
|
+
you may not use this file except in compliance with the License.
|
|
194
|
+
You may obtain a copy of the License at
|
|
195
|
+
|
|
196
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
|
197
|
+
|
|
198
|
+
Unless required by applicable law or agreed to in writing, software
|
|
199
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
|
200
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
201
|
+
See the License for the specific language governing permissions and
|
|
202
|
+
limitations under the License.
|
package/NOTICE
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
noy-db — Copyright 2026 vLannaAi
|
package/README.md
CHANGED
|
@@ -20,9 +20,9 @@ declare const lines: Collection<Line>
|
|
|
20
20
|
> Zero-knowledge, offline-first, encrypted document store — core library.
|
|
21
21
|
|
|
22
22
|
[](https://www.npmjs.com/package/@noy-db/hub)
|
|
23
|
-
[](https://github.com/
|
|
23
|
+
[](https://github.com/noy-db/core/blob/main/LICENSE)
|
|
24
24
|
|
|
25
|
-
Part of [**noy-db**](https://github.com/
|
|
25
|
+
Part of [**noy-db**](https://github.com/noy-db/core) — *"None Of Your Damn Business"*. This is the **core library** — install this first, then pair it with a storage backend.
|
|
26
26
|
|
|
27
27
|
## Install
|
|
28
28
|
|
|
@@ -334,9 +334,9 @@ pnpm add @noy-db/hub@next @noy-db/to-memory@next
|
|
|
334
334
|
|
|
335
335
|
## Documentation
|
|
336
336
|
|
|
337
|
-
- Full docs: <https://github.com/
|
|
338
|
-
- Spec: <https://github.com/
|
|
339
|
-
- Roadmap: <https://github.com/
|
|
337
|
+
- Full docs: <https://github.com/noy-db/docs>
|
|
338
|
+
- Spec: <https://github.com/noy-db/docs/blob/main/SPEC.md>
|
|
339
|
+
- Roadmap: <https://github.com/noy-db/docs/blob/main/ROADMAP.md>
|
|
340
340
|
|
|
341
341
|
## License
|
|
342
342
|
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$comment": "Machine-readable migration map for noy-db#1458 — the QUERY TIERS split. The query DSL was one class in one subpath; it is now four groups. `@noy-db/hub/query` keeps Find (where/or/and/filter/wherePredicate/orderBy/limit/offset/page/after/first/toArray/count/exists/ids/toPlan) and is unchanged for consumers who only find records. Live, Reduce and Relate moved to `@noy-db/hub/query/{live,reduce,relate}`, which are SIDE-EFFECT imports: one line at the app's entry patches the methods onto Query.prototype and merges their types, so no call site changes. ⭐ WHO IS AFFECTED, precisely: only consumers who import from `@noy-db/hub/query` directly. A consumer on the root barrel `@noy-db/hub` needs NO row here — the root barrel imports all three groups, so every method and every re-export is exactly where it was. That is why the rows below are `import-move` rather than `subpath`: the SUBPATH `@noy-db/hub/query` still resolves and still exports Find; what moved is a set of symbols within it. ⚠️ THE COVERAGE CHECKER CANNOT SEE THIS BREAK. `scripts/check-codemod-coverage.mjs` measures the package's whole reachable surface as a union across subpaths, and every symbol below is still reachable — from a different subpath. It reports zero losses for this change, correctly by its own definition and uselessly for this one. These rows are hand-written for that reason; do not read the green checker as evidence the map is unnecessary.",
|
|
3
|
+
"version": "0.8.0-pre",
|
|
4
|
+
"renames": [
|
|
5
|
+
{
|
|
6
|
+
"from": "@noy-db/hub/query:applyJoins",
|
|
7
|
+
"to": "@noy-db/hub/query/relate:applyJoins",
|
|
8
|
+
"kind": "import-move",
|
|
9
|
+
"package": "@noy-db/hub",
|
|
10
|
+
"safeGlobalReplace": false,
|
|
11
|
+
"section": "query-tiers",
|
|
12
|
+
"note": "Relate's free functions moved with the group. `safeGlobalReplace: false` throughout this map: the symbol name is unchanged, so a global find-and-replace on the NAME is meaningless — the edit is to the import SPECIFIER, and only in files that import from '@noy-db/hub/query'."
|
|
13
|
+
},
|
|
14
|
+
{ "from": "@noy-db/hub/query:DEFAULT_JOIN_MAX_ROWS", "to": "@noy-db/hub/query/relate:DEFAULT_JOIN_MAX_ROWS", "kind": "import-move", "package": "@noy-db/hub", "safeGlobalReplace": false, "section": "query-tiers" },
|
|
15
|
+
{ "from": "@noy-db/hub/query:DEFAULT_CROSS_JOIN_MAX_ROWS", "to": "@noy-db/hub/query/relate:DEFAULT_CROSS_JOIN_MAX_ROWS", "kind": "import-move", "package": "@noy-db/hub", "safeGlobalReplace": false, "section": "query-tiers" },
|
|
16
|
+
{ "from": "@noy-db/hub/query:resetJoinWarnings", "to": "@noy-db/hub/query/relate:resetJoinWarnings", "kind": "import-move", "package": "@noy-db/hub", "safeGlobalReplace": false, "section": "query-tiers" },
|
|
17
|
+
{ "from": "@noy-db/hub/query:runTraversal", "to": "@noy-db/hub/query/relate:runTraversal", "kind": "import-move", "package": "@noy-db/hub", "safeGlobalReplace": false, "section": "query-tiers" },
|
|
18
|
+
{ "from": "@noy-db/hub/query:explainPlan", "to": "@noy-db/hub/query/relate:explainPlan", "kind": "import-move", "package": "@noy-db/hub", "safeGlobalReplace": false, "section": "query-tiers" },
|
|
19
|
+
{ "from": "@noy-db/hub/query:renderExplainText", "to": "@noy-db/hub/query/relate:renderExplainText", "kind": "import-move", "package": "@noy-db/hub", "safeGlobalReplace": false, "section": "query-tiers" },
|
|
20
|
+
{ "from": "@noy-db/hub/query:ALL_PARTITIONS", "to": "@noy-db/hub/query/relate:ALL_PARTITIONS", "kind": "import-move", "package": "@noy-db/hub", "safeGlobalReplace": false, "section": "query-tiers" },
|
|
21
|
+
{ "from": "@noy-db/hub/query:describePartitionScope", "to": "@noy-db/hub/query/relate:describePartitionScope", "kind": "import-move", "package": "@noy-db/hub", "safeGlobalReplace": false, "section": "query-tiers" },
|
|
22
|
+
{ "from": "@noy-db/hub/query:partitionsInScope", "to": "@noy-db/hub/query/relate:partitionsInScope", "kind": "import-move", "package": "@noy-db/hub", "safeGlobalReplace": false, "section": "query-tiers" },
|
|
23
|
+
{ "from": "@noy-db/hub/query:resolvePartitionScope", "to": "@noy-db/hub/query/relate:resolvePartitionScope", "kind": "import-move", "package": "@noy-db/hub", "safeGlobalReplace": false, "section": "query-tiers" },
|
|
24
|
+
{
|
|
25
|
+
"from": "@noy-db/hub/query:JoinTooLargeError",
|
|
26
|
+
"to": "@noy-db/hub/query/relate:JoinTooLargeError",
|
|
27
|
+
"kind": "import-move",
|
|
28
|
+
"package": "@noy-db/hub",
|
|
29
|
+
"safeGlobalReplace": false,
|
|
30
|
+
"section": "query-tiers",
|
|
31
|
+
"note": "⚠️ An `instanceof` check, not just an import. The class is the same object — it comes from the same `kernel/errors.ts` and hub builds with code-splitting so cross-subpath identity holds — so a consumer who catches it from the ROOT barrel is unaffected. Only the import specifier in a `/query`-importing file changes. Same for the four errors below."
|
|
32
|
+
},
|
|
33
|
+
{ "from": "@noy-db/hub/query:DanglingReferenceError", "to": "@noy-db/hub/query/relate:DanglingReferenceError", "kind": "import-move", "package": "@noy-db/hub", "safeGlobalReplace": false, "section": "query-tiers" },
|
|
34
|
+
{ "from": "@noy-db/hub/query:TraversalCycleError", "to": "@noy-db/hub/query/relate:TraversalCycleError", "kind": "import-move", "package": "@noy-db/hub", "safeGlobalReplace": false, "section": "query-tiers" },
|
|
35
|
+
{ "from": "@noy-db/hub/query:CrossJoinTooLargeError", "to": "@noy-db/hub/query/relate:CrossJoinTooLargeError", "kind": "import-move", "package": "@noy-db/hub", "safeGlobalReplace": false, "section": "query-tiers" },
|
|
36
|
+
{ "from": "@noy-db/hub/query:CrossJoinSourceUnknownError", "to": "@noy-db/hub/query/relate:CrossJoinSourceUnknownError", "kind": "import-move", "package": "@noy-db/hub", "safeGlobalReplace": false, "section": "query-tiers" },
|
|
37
|
+
{ "from": "@noy-db/hub/query:buildLiveQuery", "to": "@noy-db/hub/query/live:buildLiveQuery", "kind": "import-move", "package": "@noy-db/hub", "safeGlobalReplace": false, "section": "query-tiers" },
|
|
38
|
+
{ "from": "@noy-db/hub/query:dateTrunc", "to": "@noy-db/hub/query/reduce:dateTrunc", "kind": "import-move", "package": "@noy-db/hub", "safeGlobalReplace": false, "section": "query-tiers" },
|
|
39
|
+
{ "from": "@noy-db/hub/query:isDateTruncKey", "to": "@noy-db/hub/query/reduce:isDateTruncKey", "kind": "import-move", "package": "@noy-db/hub", "safeGlobalReplace": false, "section": "query-tiers" },
|
|
40
|
+
{ "from": "@noy-db/hub/query:truncateDate", "to": "@noy-db/hub/query/reduce:truncateDate", "kind": "import-move", "package": "@noy-db/hub", "safeGlobalReplace": false, "section": "query-tiers" },
|
|
41
|
+
{ "from": "@noy-db/hub/query:GroupCardinalityError", "to": "@noy-db/hub/query/reduce:GroupCardinalityError", "kind": "import-move", "package": "@noy-db/hub", "safeGlobalReplace": false, "section": "query-tiers" }
|
|
42
|
+
],
|
|
43
|
+
"sideEffectImports": [
|
|
44
|
+
{
|
|
45
|
+
"subpath": "@noy-db/hub/query/live",
|
|
46
|
+
"methods": ["subscribe", "live"],
|
|
47
|
+
"note": "Add `import '@noy-db/hub/query/live'` once, anywhere in the app's entry, if any file calls these on a Query obtained through `@noy-db/hub/query`."
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
"subpath": "@noy-db/hub/query/reduce",
|
|
51
|
+
"methods": ["aggregate", "groupBy", "window", "distinct", "scan().aggregate", "scan().groupBy"],
|
|
52
|
+
"note": "The METHODS, not the aggregate SERVICE. `withReduce()` from `@noy-db/hub/reduce` is still what makes them compute; these are two different opt-ins and both are still required."
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
"subpath": "@noy-db/hub/query/relate",
|
|
56
|
+
"methods": ["join", "joinOn", "rightJoin", "fullOuterJoin", "crossJoin", "crossJoinWith", "traverse", "ancestorsOf", "descendantsOf", "explain", "scan().join"],
|
|
57
|
+
"note": "Also fills the executor's join hooks, so a plan carrying legs built elsewhere can run."
|
|
58
|
+
}
|
|
59
|
+
],
|
|
60
|
+
"$sideEffectComment": "Not `renames`, because nothing is renamed: this field lists the imports a consumer must ADD. Omitting one is caught by `tsc` — the method's type ships with its subpath, so the call does not compile — and at runtime by QueryExtensionMissingError, which names the method and the subpath. A consumer on the root barrel adds nothing."
|
|
61
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import {
|
|
2
|
+
UserApi,
|
|
3
|
+
createUserApi
|
|
4
|
+
} from "./chunk-4MXI3ODD.js";
|
|
5
|
+
import "./chunk-7VCXZDA4.js";
|
|
6
|
+
import "./chunk-KJFW62P4.js";
|
|
7
|
+
import "./chunk-SEE332EV.js";
|
|
8
|
+
import "./chunk-6QSQQLSE.js";
|
|
9
|
+
import "./chunk-DE4DH2RZ.js";
|
|
10
|
+
import "./chunk-LQ4ZHOKP.js";
|
|
11
|
+
import "./chunk-LP7BEXCT.js";
|
|
12
|
+
import "./chunk-UYB234ZR.js";
|
|
13
|
+
import "./chunk-ODVPTDPK.js";
|
|
14
|
+
import "./chunk-244VXYPG.js";
|
|
15
|
+
export {
|
|
16
|
+
UserApi,
|
|
17
|
+
createUserApi
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=api-GVYEKSJE.js.map
|
package/dist/as/index.js
CHANGED
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
import "../chunk-UBSFPGVJ.js";
|
|
2
|
-
import "../chunk-
|
|
2
|
+
import "../chunk-BP6DARYA.js";
|
|
3
3
|
import {
|
|
4
4
|
applyListProjection
|
|
5
5
|
} from "../chunk-VG2ZSFYD.js";
|
|
6
6
|
import "../chunk-RXLYKVTF.js";
|
|
7
7
|
import "../chunk-VYYM3MEN.js";
|
|
8
|
-
import "../chunk-
|
|
8
|
+
import "../chunk-PSIV7CJV.js";
|
|
9
9
|
import "../chunk-Y2NBBT6K.js";
|
|
10
|
-
import "../chunk-
|
|
11
|
-
import "../chunk-
|
|
12
|
-
import "../chunk-
|
|
13
|
-
import "../chunk-
|
|
14
|
-
import "../chunk-
|
|
15
|
-
import "../chunk-
|
|
10
|
+
import "../chunk-3H5KLDZN.js";
|
|
11
|
+
import "../chunk-KJFW62P4.js";
|
|
12
|
+
import "../chunk-SEE332EV.js";
|
|
13
|
+
import "../chunk-6QSQQLSE.js";
|
|
14
|
+
import "../chunk-DE4DH2RZ.js";
|
|
15
|
+
import "../chunk-LQ4ZHOKP.js";
|
|
16
16
|
import "../chunk-LP7BEXCT.js";
|
|
17
|
-
import "../chunk-
|
|
18
|
-
import "../chunk-
|
|
17
|
+
import "../chunk-UYB234ZR.js";
|
|
18
|
+
import "../chunk-ODVPTDPK.js";
|
|
19
19
|
import {
|
|
20
20
|
ValidationError
|
|
21
|
-
} from "../chunk-
|
|
21
|
+
} from "../chunk-244VXYPG.js";
|
|
22
22
|
|
|
23
23
|
// src/port/as/active.ts
|
|
24
24
|
function redactChunk(chunk, ctx, redact) {
|