@noy-db/hub 0.3.0-pre.9 → 0.3.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/dist/aggregate/index.js +5 -5
- package/dist/api-ZGS6LCOF.js +20 -0
- package/dist/as/index.js +11 -11
- package/dist/attestation/index.js +18 -18
- package/dist/backup-BJ57IKAO.js +242 -0
- package/dist/backup-BJ57IKAO.js.map +1 -0
- package/dist/blobs/index.js +13 -11
- package/dist/blobs/index.js.map +1 -1
- package/dist/broker/index.js +92 -0
- package/dist/broker/index.js.map +1 -0
- package/dist/bundle/index.js +25 -22
- package/dist/bundle/index.js.map +1 -1
- package/dist/by/index.js +2 -2
- package/dist/cargo/index.js +31 -32
- package/dist/chunk-2NVOWNI3.js +167 -0
- package/dist/chunk-2NVOWNI3.js.map +1 -0
- package/dist/chunk-3B5VVCNY.js +71 -0
- package/dist/chunk-3LQ2YKO4.js +230 -0
- package/dist/chunk-3QCRBHCY.js +54 -0
- package/dist/chunk-454JXE57.js +1697 -0
- package/dist/chunk-454JXE57.js.map +1 -0
- package/dist/chunk-4CTHCN4J.js +480 -0
- package/dist/chunk-4CTHCN4J.js.map +1 -0
- package/dist/chunk-4GPE63GU.js +111 -0
- package/dist/chunk-4GPE63GU.js.map +1 -0
- package/dist/chunk-4JBYV75E.js +150 -0
- package/dist/chunk-4NXKCLLQ.js +97 -0
- package/dist/chunk-4VNQOLML.js +29 -0
- package/dist/chunk-4VNQOLML.js.map +1 -0
- package/dist/chunk-5M5DVGV7.js +69 -0
- package/dist/chunk-5O3XF4DV.js +150 -0
- package/dist/chunk-5O3XF4DV.js.map +1 -0
- package/dist/chunk-5YOLBEQ6.js +30 -0
- package/dist/chunk-6CRIV7DE.js +129 -0
- package/dist/chunk-6JTIAGHD.js +621 -0
- package/dist/chunk-6JTIAGHD.js.map +1 -0
- package/dist/chunk-6QTNZJBS.js +255 -0
- package/dist/chunk-6T2SCQRU.js +86 -0
- package/dist/chunk-7DSTRQIJ.js +45 -0
- package/dist/chunk-AUSTCW2X.js +589 -0
- package/dist/chunk-B3HJYUOF.js +209 -0
- package/dist/chunk-BDVFPG6Y.js +164 -0
- package/dist/chunk-BIOUI4HL.js +1554 -0
- package/dist/chunk-BIOUI4HL.js.map +1 -0
- package/dist/chunk-CAF6WOK7.js +36 -0
- package/dist/chunk-CDUQTA3Z.js +381 -0
- package/dist/chunk-CDUQTA3Z.js.map +1 -0
- package/dist/chunk-CIE2BASH.js +404 -0
- package/dist/chunk-CRI4OUV4.js +42 -0
- package/dist/chunk-DLG74CNB.js +91 -0
- package/dist/chunk-E5ZQT5KX.js +30 -0
- package/dist/chunk-E5ZQT5KX.js.map +1 -0
- package/dist/chunk-EQO2UVP4.js +247 -0
- package/dist/chunk-EQO2UVP4.js.map +1 -0
- package/dist/chunk-ERJ7FU55.js +367 -0
- package/dist/chunk-EVVGJDRQ.js +205 -0
- package/dist/chunk-EVX47VBM.js +74 -0
- package/dist/chunk-EVX47VBM.js.map +1 -0
- package/dist/chunk-EXK7QRWF.js +59 -0
- package/dist/chunk-EYZ6IQ6X.js +202 -0
- package/dist/chunk-F64IRYG3.js +45 -0
- package/dist/chunk-FHS2HQSH.js +823 -0
- package/dist/chunk-FM3G3NOY.js +206 -0
- package/dist/chunk-FM3G3NOY.js.map +1 -0
- package/dist/chunk-FUG4SFN3.js +36 -0
- package/dist/chunk-FUG4SFN3.js.map +1 -0
- package/dist/chunk-GKEWXIV5.js +80 -0
- package/dist/chunk-GTGPO5KW.js +59 -0
- package/dist/chunk-HB3RFQSC.js +95 -0
- package/dist/chunk-HDMEGAQE.js +957 -0
- package/dist/chunk-HDMEGAQE.js.map +1 -0
- package/dist/chunk-HDQIIUPH.js +135 -0
- package/dist/chunk-HDQIIUPH.js.map +1 -0
- package/dist/chunk-HTJQYHZP.js +344 -0
- package/dist/chunk-HTJQYHZP.js.map +1 -0
- package/dist/chunk-I6GALP6E.js +99 -0
- package/dist/chunk-IGJCYUT5.js +99 -0
- package/dist/chunk-IGJCYUT5.js.map +1 -0
- package/dist/chunk-IL6POWCW.js +130 -0
- package/dist/chunk-IU6SNYX6.js +117 -0
- package/dist/chunk-J2ZX2XUV.js +778 -0
- package/dist/chunk-JIF24JPM.js +495 -0
- package/dist/chunk-JIF24JPM.js.map +1 -0
- package/dist/chunk-JK733I5V.js +23 -0
- package/dist/chunk-JK733I5V.js.map +1 -0
- package/dist/chunk-JKJOGPZN.js +29 -0
- package/dist/chunk-JNAI2HN2.js +32 -0
- package/dist/chunk-JNAI2HN2.js.map +1 -0
- package/dist/chunk-JZUV47FZ.js +41 -0
- package/dist/chunk-K5IMOGHB.js +30 -0
- package/dist/chunk-KPZS5QAQ.js +151 -0
- package/dist/chunk-KPZS5QAQ.js.map +1 -0
- package/dist/chunk-KSKBRKGJ.js +291 -0
- package/dist/chunk-KSKBRKGJ.js.map +1 -0
- package/dist/chunk-LASZKVMO.js +382 -0
- package/dist/chunk-LXEXBTKL.js +515 -0
- package/dist/chunk-LXEXBTKL.js.map +1 -0
- package/dist/chunk-M4CV6BRT.js +524 -0
- package/dist/chunk-M4CV6BRT.js.map +1 -0
- package/dist/chunk-MEFJPTZ4.js +371 -0
- package/dist/chunk-MEFJPTZ4.js.map +1 -0
- package/dist/chunk-MV43JSJF.js +265 -0
- package/dist/chunk-MV43JSJF.js.map +1 -0
- package/dist/chunk-NJ4EOKMB.js +392 -0
- package/dist/chunk-NJ4EOKMB.js.map +1 -0
- package/dist/chunk-NR5LT5RY.js +135 -0
- package/dist/chunk-NWSGI5C7.js +261 -0
- package/dist/chunk-OSDB5WW3.js +739 -0
- package/dist/chunk-OSDB5WW3.js.map +1 -0
- package/dist/chunk-PN2XMATY.js +37 -0
- package/dist/chunk-PN2XMATY.js.map +1 -0
- package/dist/chunk-Q5VNKNE5.js +70 -0
- package/dist/chunk-QLWMEXCT.js +21 -0
- package/dist/chunk-QRB7NAOJ.js +123 -0
- package/dist/chunk-R4ROFEYC.js +74 -0
- package/dist/chunk-RCVJZMFE.js +164 -0
- package/dist/chunk-RCVJZMFE.js.map +1 -0
- package/dist/chunk-RIX4V2TB.js +367 -0
- package/dist/chunk-RYCTDFUX.js +40 -0
- package/dist/chunk-RZ5SVOYR.js +155 -0
- package/dist/chunk-SLFHQTTW.js +99 -0
- package/dist/chunk-SNZ6URZZ.js +2782 -0
- package/dist/chunk-SNZ6URZZ.js.map +1 -0
- package/dist/chunk-T2FFWNPK.js +75 -0
- package/dist/chunk-UNFPPVNI.js +23 -0
- package/dist/chunk-VFUPHI2Z.js +333 -0
- package/dist/chunk-VFUPHI2Z.js.map +1 -0
- package/dist/chunk-VLFCJYTL.js +235 -0
- package/dist/chunk-VN3DBQAU.js +124 -0
- package/dist/chunk-VYYM3MEN.js +98 -0
- package/dist/chunk-VYYM3MEN.js.map +1 -0
- package/dist/chunk-VZRODIM3.js +49 -0
- package/dist/chunk-W22IKJE2.js +94 -0
- package/dist/chunk-X3YYQWOQ.js +155 -0
- package/dist/chunk-X7QBD67R.js +14405 -0
- package/dist/chunk-X7QBD67R.js.map +1 -0
- package/dist/chunk-XDYREZWE.js +1128 -0
- package/dist/chunk-XDYREZWE.js.map +1 -0
- package/dist/chunk-XWZVFISC.js +720 -0
- package/dist/chunk-XWZVFISC.js.map +1 -0
- package/dist/chunk-YFXZEAYK.js +85 -0
- package/dist/chunk-ZAJAVEXY.js +50 -0
- package/dist/chunk-ZICD77GM.js +34 -0
- package/dist/chunk-ZJ2AK4V7.js +38 -0
- package/dist/chunk-ZUODRVHY.js +14 -0
- package/dist/classified/index.js +5 -5
- package/dist/classified-marker-CZKA6ITE.js +28 -0
- package/dist/classified-marker-CZKA6ITE.js.map +1 -0
- package/dist/collection-facade-TLWIPI76.js +44 -0
- package/dist/computed-ZIQTYTDI.js +11 -0
- package/dist/consent/index.js +9 -9
- package/dist/crdt/index.js +1 -1
- package/dist/dead-filter-ESOBZZP5.js +28 -0
- package/dist/delegation-W7ZV2322.js +25 -0
- package/dist/derivations/index.js +12 -12
- package/dist/derive-H2BJTLUI.js +21 -0
- package/dist/enclave-AP3I5W7O.js +141 -0
- package/dist/executor-KGWTNEQD.js +9 -0
- package/dist/executor-OVEXR6RT.js +9 -0
- package/dist/executor-UNEH5ZYH.js +25 -0
- package/dist/export-accessible-PCMXSUZS.js +23 -0
- package/dist/extract-partition-SWHFSYJO.js +38 -0
- package/dist/fanout-sidecar-A765THMX.js +74 -0
- package/dist/find-N6345CNT.js +11 -0
- package/dist/forget/index.js +10 -10
- package/dist/forget/index.js.map +1 -1
- package/dist/guards/index.js +6 -6
- package/dist/history/index.js +14 -11
- package/dist/history/index.js.map +1 -1
- package/dist/i18n/index.js +21 -19
- package/dist/i18n/index.js.map +1 -1
- package/dist/index.d.ts +307 -1493
- package/dist/index.js +309 -190
- package/dist/index.js.map +1 -1
- package/dist/indexing/index.js +7 -7
- package/dist/indexing/index.js.map +1 -1
- package/dist/issue-5OKB6I2R.js +19 -0
- package/dist/kernel/best-effort-revert.d.ts +52 -0
- package/dist/kernel/cache/index.d.ts +10 -0
- package/dist/kernel/cache/lru.d.ts +97 -0
- package/dist/kernel/cache/policy.d.ts +32 -0
- package/dist/kernel/collection-config.d.ts +809 -0
- package/dist/kernel/collection.d.ts +1522 -0
- package/dist/kernel/constants.d.ts +18 -0
- package/dist/kernel/debug.d.ts +25 -0
- package/dist/kernel/enclave/broker/proof.d.ts +154 -0
- package/dist/kernel/enclave/classify/bidx.d.ts +77 -0
- package/dist/kernel/enclave/classify/compare.d.ts +10 -0
- package/dist/kernel/enclave/classify/digest.d.ts +8 -0
- package/dist/kernel/enclave/classify/find.d.ts +36 -0
- package/dist/kernel/enclave/classify/kofn.d.ts +7 -0
- package/dist/kernel/enclave/classify/normalize.d.ts +7 -0
- package/dist/kernel/enclave/classify/reveal.d.ts +10 -0
- package/dist/kernel/enclave/classify/vdig.d.ts +39 -0
- package/dist/kernel/enclave/classify/verify.d.ts +36 -0
- package/dist/kernel/enclave/classify/write.d.ts +8 -0
- package/dist/kernel/enclave/crypto.d.ts +263 -0
- package/dist/kernel/enclave/index.d.ts +79 -0
- package/dist/kernel/enclave/record-keys/deterministic.d.ts +55 -0
- package/dist/kernel/enclave/record-keys/envelope-body.d.ts +79 -0
- package/dist/kernel/enclave/record-keys/lifecycle.d.ts +107 -0
- package/dist/kernel/enclave/record-keys/record-codec.d.ts +328 -0
- package/dist/kernel/enclave/record-keys/sealed-slot.d.ts +14 -0
- package/dist/kernel/enclave/record-keys/sealed-slots.d.ts +123 -0
- package/dist/kernel/enclave/record-keys/sealing.d.ts +70 -0
- package/dist/kernel/enclave/record-keys/tombstone.d.ts +57 -0
- package/dist/kernel/env-check.d.ts +1 -0
- package/dist/kernel/errors.d.ts +1922 -0
- package/dist/kernel/events.d.ts +11 -0
- package/dist/kernel/lazy-count.d.ts +13 -0
- package/dist/kernel/memory-store.d.ts +17 -0
- package/dist/kernel/mutation.d.ts +14 -0
- package/dist/kernel/noydb.d.ts +826 -0
- package/dist/kernel/paths.d.ts +25 -0
- package/dist/kernel/query/builder.d.ts +520 -0
- package/dist/kernel/query/index.d.ts +31 -0
- package/dist/kernel/query/join.d.ts +205 -0
- package/dist/kernel/query/live.d.ts +111 -0
- package/dist/kernel/query/predicate.d.ts +139 -0
- package/dist/kernel/query/scan-builder.d.ts +334 -0
- package/dist/kernel/refs.d.ts +205 -0
- package/dist/kernel/schema.d.ts +134 -0
- package/dist/kernel/sync-policy.d.ts +188 -0
- package/dist/kernel/tier-visibility.d.ts +54 -0
- package/dist/kernel/types.d.ts +3239 -0
- package/dist/kernel/util/discriminant.d.ts +58 -0
- package/dist/kernel/util/index.d.ts +14 -0
- package/dist/kernel/util/sanitize-filename.d.ts +75 -0
- package/dist/kernel/validation.d.ts +130 -0
- package/dist/kernel/vault.d.ts +1740 -0
- package/dist/kernel/via/compose.d.ts +144 -0
- package/dist/kernel/via/dispatch.d.ts +195 -0
- package/dist/kernel/via/graph-wiring.d.ts +145 -0
- package/dist/kernel/via/graph.d.ts +166 -0
- package/dist/kernel/via/index.d.ts +200 -0
- package/dist/kernel/via/pipeline.d.ts +266 -0
- package/dist/kernel/via/reconcile.d.ts +153 -0
- package/dist/kernel/via/taint-binding.d.ts +66 -0
- package/dist/kernel/write-queue.d.ts +46 -0
- package/dist/ledger-GFBKVPV4.js +42 -0
- package/dist/legacy/bundle.d.ts +30 -0
- package/dist/legacy/kernel.d.ts +33 -0
- package/dist/liberate-3VDOT4KO.js +24 -0
- package/dist/link-set-Z7Q2ASFX.js +31 -0
- package/dist/materialized-views/index.js +19 -17
- package/dist/noydb-ZCJOYBDI.js +68 -0
- package/dist/on/index.js +9 -9
- package/dist/overlay-views/index.js +4 -4
- package/dist/periods/index.js +12 -12
- package/dist/pod/index.js +11 -11
- package/dist/policy-Z3RUAIY2.js +41 -0
- package/dist/port/as/index.d.ts +26 -0
- package/dist/port/at/index.d.ts +18 -0
- package/dist/port/by/default-provider.d.ts +9 -0
- package/dist/port/by/index.d.ts +17 -0
- package/dist/port/by/types.d.ts +86 -0
- package/dist/port/in/index.d.ts +21 -0
- package/dist/port/on/index.d.ts +27 -0
- package/dist/port/to/index.d.ts +19 -0
- package/dist/port/ui/index.d.ts +21 -0
- package/dist/port/with/blob-strategy.d.ts +98 -0
- package/dist/port/with/broker-strategy.d.ts +84 -0
- package/dist/port/with/capabilities.d.ts +31 -0
- package/dist/port/with/classified-marker.d.ts +9 -0
- package/dist/port/with/classified-strategy.d.ts +62 -0
- package/dist/port/with/computed-strategy.d.ts +19 -0
- package/dist/port/with/i18n-strategy.d.ts +175 -0
- package/dist/port/with/index.d.ts +18 -0
- package/dist/port/with/lazy-strategy.d.ts +48 -0
- package/dist/port/with/lookup-strategy.d.ts +129 -0
- package/dist/port/with/service-bus.d.ts +156 -0
- package/dist/port/with/team-strategy.d.ts +36 -0
- package/dist/port/with/write-hooks.d.ts +34 -0
- package/dist/portability/index.js +8 -8
- package/dist/post-register-JTH76BLY.js +60 -0
- package/dist/post-register-JTH76BLY.js.map +1 -0
- package/dist/public-envelope-B4KNWVUA.js +32 -0
- package/dist/purge-scope-FGNNLWHD.js +24 -0
- package/dist/purge-scope-FGNNLWHD.js.map +1 -0
- package/dist/query/index.js +7 -7
- package/dist/read-only-facade-CHCKSEPD.js +8 -0
- package/dist/register-VAHONCID.js +23 -0
- package/dist/registry-7MLVD3VO.js +19 -0
- package/dist/registry-EPKPD5SM.js +18 -0
- package/dist/registry-P5T7PS2U.js +9 -0
- package/dist/request-withdrawal-TI3A5WPS.js +31 -0
- package/dist/reveal-DIBHLUZX.js +38 -0
- package/dist/reveal-DIBHLUZX.js.map +1 -0
- package/dist/revoke-FDRD6GRW.js +24 -0
- package/dist/satellites/index.js +1 -1
- package/dist/sealed-record/index.js +12 -12
- package/dist/seed-Q6M2IZFL.js +231 -0
- package/dist/seed-Q6M2IZFL.js.map +1 -0
- package/dist/session/index.js +9 -9
- package/dist/shadow/index.js +2 -2
- package/dist/signer-MUWEIUI6.js +25 -0
- package/dist/snapshots/index.js +10 -10
- package/dist/stale-OSQ7J3AA.js +29 -0
- package/dist/storage-MVFCGEQE.js +23 -0
- package/dist/store-coordination-provider-64OEZFGS.js +142 -0
- package/dist/sync/index.js +9 -9
- package/dist/team/index.js +15 -15
- package/dist/tiers/index.js +14 -10
- package/dist/to/index.js +1 -2
- package/dist/tx/index.js +3 -3
- package/dist/util/index.js +1 -1
- package/dist/verify-ZASTRNPR.js +140 -0
- package/dist/verify-ZASTRNPR.js.map +1 -0
- package/dist/via/blob/active.d.ts +34 -0
- package/dist/via/blob/binding.d.ts +86 -0
- package/dist/via/blob/index.d.ts +34 -0
- package/dist/via/classified/active.d.ts +3 -0
- package/dist/via/classified/binding.d.ts +83 -0
- package/dist/via/classified/config-drift.d.ts +34 -0
- package/dist/via/classified/descriptor.d.ts +66 -0
- package/dist/via/classified/errors.d.ts +19 -0
- package/dist/via/classified/guards.d.ts +23 -0
- package/dist/via/classified/index.d.ts +11 -0
- package/dist/via/classified/presets.d.ts +65 -0
- package/dist/via/classified/resolve.d.ts +9 -0
- package/dist/via/classified/strategy.d.ts +11 -0
- package/dist/via/classified/validators.d.ts +3 -0
- package/dist/via/classified/write.d.ts +4 -0
- package/dist/via/computed/binding.d.ts +34 -0
- package/dist/via/computed/descriptor.d.ts +35 -0
- package/dist/via/i18n/active.d.ts +28 -0
- package/dist/via/i18n/binding.d.ts +36 -0
- package/dist/via/i18n/core.d.ts +267 -0
- package/dist/via/i18n/densify.d.ts +24 -0
- package/dist/via/i18n/dictionary.d.ts +200 -0
- package/dist/via/i18n/index.d.ts +21 -0
- package/dist/via/i18n/policy.d.ts +44 -0
- package/dist/via/i18n/script.d.ts +26 -0
- package/dist/via/i18n/strategy.d.ts +13 -0
- package/dist/via/lookup/active.d.ts +19 -0
- package/dist/via/lookup/binding.d.ts +99 -0
- package/dist/via/lookup/descriptor.d.ts +123 -0
- package/dist/via/lookup/handle.d.ts +220 -0
- package/dist/via/lookup/index.d.ts +17 -0
- package/dist/via/lookup/registry.d.ts +228 -0
- package/dist/via/lookup/snapshot.d.ts +67 -0
- package/dist/via/money/arith.d.ts +68 -0
- package/dist/via/money/binding.d.ts +21 -0
- package/dist/via/money/branded.d.ts +61 -0
- package/dist/via/money/descriptor.d.ts +73 -0
- package/dist/via/money/fixed-point.d.ts +51 -0
- package/dist/via/money/index.d.ts +15 -0
- package/dist/via/money/iso4217.d.ts +6 -0
- package/dist/via/money/money-reducer.d.ts +33 -0
- package/dist/via/money/normalize.d.ts +105 -0
- package/dist/via/money/paths.d.ts +61 -0
- package/dist/via/money/where.d.ts +127 -0
- package/dist/walk-SVNDIZ62.js +241 -0
- package/dist/with/index.js +11 -11
- package/dist/with-audit/attestation/active.d.ts +10 -0
- package/dist/with-audit/attestation/index.d.ts +16 -0
- package/dist/with-audit/attestation/issue.d.ts +29 -0
- package/dist/with-audit/attestation/revoke.d.ts +15 -0
- package/dist/with-audit/attestation/signer.d.ts +33 -0
- package/dist/with-audit/attestation/strategy.d.ts +44 -0
- package/dist/with-audit/attestation/vault-facade.d.ts +62 -0
- package/dist/with-audit/consent/active.d.ts +14 -0
- package/dist/with-audit/consent/consent.d.ts +114 -0
- package/dist/with-audit/consent/index.d.ts +14 -0
- package/dist/with-audit/consent/strategy.d.ts +36 -0
- package/dist/with-audit/forget/active.d.ts +31 -0
- package/dist/with-audit/forget/index.d.ts +28 -0
- package/dist/with-audit/forget/purge-scope.d.ts +54 -0
- package/dist/with-audit/forget/strategy.d.ts +199 -0
- package/dist/with-audit/forget/subject-index.d.ts +83 -0
- package/dist/with-audit/guards/executor.d.ts +26 -0
- package/dist/with-audit/guards/immutable-guard.d.ts +63 -0
- package/dist/with-audit/guards/index.d.ts +10 -0
- package/dist/with-audit/guards/read-only-facade.d.ts +31 -0
- package/dist/with-audit/guards/registry.d.ts +83 -0
- package/dist/with-audit/guards/transition-guard.d.ts +82 -0
- package/dist/with-audit/guards/types.d.ts +134 -0
- package/dist/with-audit/guards/with-guard.d.ts +15 -0
- package/dist/with-audit/periods/active.d.ts +11 -0
- package/dist/with-audit/periods/index.d.ts +18 -0
- package/dist/with-audit/periods/periods.d.ts +417 -0
- package/dist/with-audit/periods/strategy.d.ts +32 -0
- package/dist/with-audit/periods/vault-facade.d.ts +95 -0
- package/dist/with-audit/portability/active.d.ts +11 -0
- package/dist/with-audit/portability/export-accessible.d.ts +46 -0
- package/dist/with-audit/portability/index.d.ts +18 -0
- package/dist/with-audit/portability/request-withdrawal.d.ts +85 -0
- package/dist/with-audit/portability/strategy.d.ts +31 -0
- package/dist/with-audit/portability/withdraw-accessible.d.ts +82 -0
- package/dist/with-audit/sealed-record/active.d.ts +9 -0
- package/dist/with-audit/sealed-record/index.d.ts +55 -0
- package/dist/with-audit/sealed-record/strategy.d.ts +34 -0
- package/dist/with-audit/sealed-record/types.d.ts +27 -0
- package/dist/with-audit/tiers/active.d.ts +9 -0
- package/dist/with-audit/tiers/index.d.ts +394 -0
- package/dist/with-audit/tiers/strategy.d.ts +36 -0
- package/dist/with-cargo/active.d.ts +11 -0
- package/dist/with-cargo/adopt-partition.d.ts +81 -0
- package/dist/with-cargo/decrypt-partition.d.ts +19 -0
- package/dist/with-cargo/describe-extraction.d.ts +41 -0
- package/dist/with-cargo/extract-partition.d.ts +155 -0
- package/dist/with-cargo/index.d.ts +33 -0
- package/dist/with-cargo/strategy.d.ts +30 -0
- package/dist/with-cargo/vault-diff.d.ts +144 -0
- package/dist/with-cargo/walk-closure.d.ts +67 -0
- package/dist/with-commit/crdt/active.d.ts +25 -0
- package/dist/with-commit/crdt/crdt.d.ts +42 -0
- package/dist/with-commit/crdt/index.d.ts +16 -0
- package/dist/with-commit/crdt/strategy.d.ts +25 -0
- package/dist/with-commit/history/active.d.ts +40 -0
- package/dist/with-commit/history/diff.d.ts +23 -0
- package/dist/with-commit/history/history.d.ts +73 -0
- package/dist/with-commit/history/index.d.ts +30 -0
- package/dist/with-commit/history/ledger/constants.d.ts +37 -0
- package/dist/with-commit/history/ledger/entry.d.ts +195 -0
- package/dist/with-commit/history/ledger/hash.d.ts +30 -0
- package/dist/with-commit/history/ledger/index.d.ts +19 -0
- package/dist/with-commit/history/ledger/patch.d.ts +99 -0
- package/dist/with-commit/history/ledger/store.d.ts +356 -0
- package/dist/with-commit/history/strategy.d.ts +136 -0
- package/dist/with-commit/history/time-machine.d.ts +202 -0
- package/dist/with-commit/numbering/descriptor.d.ts +27 -0
- package/dist/with-commit/numbering/index.d.ts +69 -0
- package/dist/with-commit/sequence/active.d.ts +10 -0
- package/dist/with-commit/sequence/index.d.ts +150 -0
- package/dist/with-commit/sequence/strategy.d.ts +26 -0
- package/dist/with-commit/tx/active.d.ts +27 -0
- package/dist/with-commit/tx/dry-run.d.ts +29 -0
- package/dist/with-commit/tx/elevated-handle.d.ts +59 -0
- package/dist/with-commit/tx/index.d.ts +13 -0
- package/dist/with-commit/tx/invariants.d.ts +68 -0
- package/dist/with-commit/tx/strategy.d.ts +23 -0
- package/dist/with-commit/tx/transaction.d.ts +212 -0
- package/dist/with-fork/archive/engine.d.ts +71 -0
- package/dist/with-fork/archive/index.d.ts +23 -0
- package/dist/with-fork/shadow/active.d.ts +6 -0
- package/dist/with-fork/shadow/index.d.ts +14 -0
- package/dist/with-fork/shadow/strategy.d.ts +28 -0
- package/dist/with-fork/shadow/vault-frame.d.ts +93 -0
- package/dist/with-fork/snapshots/active.d.ts +20 -0
- package/dist/with-fork/snapshots/engine.d.ts +36 -0
- package/dist/with-fork/snapshots/index.d.ts +5 -0
- package/dist/with-fork/snapshots/noydb-facade.d.ts +64 -0
- package/dist/with-fork/snapshots/policy.d.ts +23 -0
- package/dist/with-fork/snapshots/scheduler.d.ts +34 -0
- package/dist/with-fork/snapshots/strategy.d.ts +48 -0
- package/dist/with-formula/computed/index.d.ts +48 -0
- package/dist/with-formula/computed/lazy.d.ts +13 -0
- package/dist/with-formula/derivations/executor.d.ts +61 -0
- package/dist/with-formula/derivations/fanout-sidecar.d.ts +75 -0
- package/dist/with-formula/derivations/index.d.ts +6 -0
- package/dist/with-formula/derivations/registry.d.ts +67 -0
- package/dist/with-formula/derivations/stale.d.ts +39 -0
- package/dist/with-formula/derivations/strategy-hash.d.ts +1 -0
- package/dist/with-formula/derivations/types.d.ts +248 -0
- package/dist/with-formula/derivations/with-derivation.d.ts +10 -0
- package/dist/with-formula/derivations/with-rollup.d.ts +34 -0
- package/dist/with-formula/materialized-views/dependency-analyzer.d.ts +58 -0
- package/dist/with-formula/materialized-views/executor.d.ts +80 -0
- package/dist/with-formula/materialized-views/index.d.ts +11 -0
- package/dist/with-formula/materialized-views/query-hash.d.ts +23 -0
- package/dist/with-formula/materialized-views/registry.d.ts +99 -0
- package/dist/with-formula/materialized-views/stale.d.ts +113 -0
- package/dist/with-formula/materialized-views/types.d.ts +318 -0
- package/dist/with-formula/materialized-views/with-materialized-view.d.ts +24 -0
- package/dist/with-formula/overlay-views/index.d.ts +5 -0
- package/dist/with-formula/overlay-views/registry.d.ts +42 -0
- package/dist/with-formula/overlay-views/types.d.ts +97 -0
- package/dist/with-formula/overlay-views/virtual-collection.d.ts +90 -0
- package/dist/with-formula/overlay-views/with-overlayed-view.d.ts +9 -0
- package/dist/with-lookup/aggregate/active.d.ts +33 -0
- package/dist/with-lookup/aggregate/aggregation.d.ts +166 -0
- package/dist/with-lookup/aggregate/canonical-key.d.ts +16 -0
- package/dist/with-lookup/aggregate/groupby.d.ts +280 -0
- package/dist/with-lookup/aggregate/index.d.ts +23 -0
- package/dist/with-lookup/aggregate/reducers.d.ts +257 -0
- package/dist/with-lookup/aggregate/strategy.d.ts +59 -0
- package/dist/with-lookup/embeddings/cosine.d.ts +2 -0
- package/dist/with-lookup/embeddings/descriptor.d.ts +8 -0
- package/dist/with-lookup/embeddings/index.d.ts +4 -0
- package/dist/with-lookup/embeddings/vec-id.d.ts +47 -0
- package/dist/with-lookup/embeddings/vector-set.d.ts +19 -0
- package/dist/with-lookup/indexing/active.d.ts +30 -0
- package/dist/with-lookup/indexing/collection-facade.d.ts +157 -0
- package/dist/with-lookup/indexing/eager-indexes.d.ts +122 -0
- package/dist/with-lookup/indexing/index.d.ts +27 -0
- package/dist/with-lookup/indexing/lazy-builder.d.ts +102 -0
- package/dist/with-lookup/indexing/persisted-indexes.d.ts +229 -0
- package/dist/with-lookup/indexing/strategy.d.ts +56 -0
- package/dist/with-lookup/indexing/unique-constraints.d.ts +74 -0
- package/dist/with-lookup/search/active.d.ts +10 -0
- package/dist/with-lookup/search/build-docs.d.ts +15 -0
- package/dist/with-lookup/search/collection-facade.d.ts +163 -0
- package/dist/with-lookup/search/fuse.d.ts +22 -0
- package/dist/with-lookup/search/index-store.d.ts +19 -0
- package/dist/with-lookup/search/index.d.ts +19 -0
- package/dist/with-lookup/search/inverted-index.d.ts +47 -0
- package/dist/with-lookup/search/persisted-index-store.d.ts +121 -0
- package/dist/with-lookup/search/retrieve-types.d.ts +29 -0
- package/dist/with-lookup/search/scan.d.ts +28 -0
- package/dist/with-lookup/search/segment.d.ts +15 -0
- package/dist/with-lookup/search/serialize.d.ts +4 -0
- package/dist/with-lookup/search/snippet.d.ts +5 -0
- package/dist/with-lookup/search/strategy.d.ts +41 -0
- package/dist/with-lookup/search/tokenize.d.ts +12 -0
- package/dist/with-party/auth-introspection/index.d.ts +44 -0
- package/dist/with-party/broker/active.d.ts +23 -0
- package/dist/with-party/broker/index.d.ts +28 -0
- package/dist/with-party/broker/seed.d.ts +77 -0
- package/dist/with-party/custody/active.d.ts +10 -0
- package/dist/with-party/custody/index.d.ts +69 -0
- package/dist/with-party/custody/liberate.d.ts +64 -0
- package/dist/with-party/custody/strategy.d.ts +48 -0
- package/dist/with-party/directory/index.d.ts +11 -0
- package/dist/with-party/directory/public-envelope/index.d.ts +12 -0
- package/dist/with-party/directory/public-envelope/schema.d.ts +24 -0
- package/dist/with-party/directory/public-envelope/storage.d.ts +59 -0
- package/dist/with-party/directory/public-envelope/types.d.ts +80 -0
- package/dist/with-party/directory/storage.d.ts +33 -0
- package/dist/with-party/directory/types.d.ts +43 -0
- package/dist/with-party/directory/user-envelope/api.d.ts +201 -0
- package/dist/with-party/directory/user-envelope/index.d.ts +12 -0
- package/dist/with-party/directory/user-envelope/storage.d.ts +54 -0
- package/dist/with-party/directory/visibility.d.ts +47 -0
- package/dist/with-party/policy/engine.d.ts +60 -0
- package/dist/with-party/policy/index.d.ts +15 -0
- package/dist/with-party/policy/noydb-facade.d.ts +39 -0
- package/dist/with-party/policy/presets.d.ts +38 -0
- package/dist/with-party/policy/storage.d.ts +31 -0
- package/dist/with-party/session/active.d.ts +34 -0
- package/dist/with-party/session/dev-unlock.d.ts +128 -0
- package/dist/with-party/session/index.d.ts +23 -0
- package/dist/with-party/session/session-policy.d.ts +92 -0
- package/dist/with-party/session/session.d.ts +131 -0
- package/dist/with-party/session/strategy.d.ts +42 -0
- package/dist/with-party/session/unlock-state.d.ts +47 -0
- package/dist/with-party/sync/index.d.ts +31 -0
- package/dist/with-party/tab-coordination.d.ts +73 -0
- package/dist/with-party/tab-write-relay.d.ts +39 -0
- package/dist/with-party/team/active.d.ts +13 -0
- package/dist/with-party/team/authenticators.d.ts +95 -0
- package/dist/with-party/team/deed.d.ts +97 -0
- package/dist/with-party/team/delegation.d.ts +88 -0
- package/dist/with-party/team/index.d.ts +38 -0
- package/dist/with-party/team/keyring.d.ts +318 -0
- package/dist/with-party/team/magic-link-grant.d.ts +152 -0
- package/dist/with-party/team/managed-passphrase.d.ts +280 -0
- package/dist/with-party/team/noydb-facade.d.ts +484 -0
- package/dist/with-party/team/peer-recover.d.ts +81 -0
- package/dist/with-party/team/presence.d.ts +81 -0
- package/dist/with-party/team/recovery.d.ts +191 -0
- package/dist/with-party/team/reserved-secret-collections.d.ts +41 -0
- package/dist/with-party/team/rotate-recover.d.ts +275 -0
- package/dist/with-party/team/shamir-recovery-provider.d.ts +15 -0
- package/dist/with-party/team/strategy.d.ts +9 -0
- package/dist/with-party/team/sync-active.d.ts +33 -0
- package/dist/with-party/team/sync-credentials.d.ts +113 -0
- package/dist/with-party/team/sync-strategy.d.ts +67 -0
- package/dist/with-party/team/sync-transaction.d.ts +39 -0
- package/dist/with-party/team/sync.d.ts +174 -0
- package/dist/with-party/team/tiers.d.ts +39 -0
- package/dist/with-party/team/wrapped-deks.d.ts +86 -0
- package/dist/with-pod/backup.d.ts +74 -0
- package/dist/with-pod/bundle.d.ts +414 -0
- package/dist/with-pod/format.d.ts +203 -0
- package/dist/with-pod/index.d.ts +20 -0
- package/dist/with-pod/pod-store.d.ts +54 -0
- package/dist/with-pod/ulid.d.ts +64 -0
- package/dist/with-shape/blobs/blob-compaction.d.ts +170 -0
- package/dist/with-shape/blobs/blob-intent.d.ts +153 -0
- package/dist/with-shape/blobs/blob-set.d.ts +1286 -0
- package/dist/with-shape/blobs/export-blobs.d.ts +110 -0
- package/dist/with-shape/blobs/import-external.d.ts +50 -0
- package/dist/with-shape/blobs/mime-magic.d.ts +48 -0
- package/dist/with-shape/blobs/object-projection.d.ts +70 -0
- package/dist/with-shape/introspection/describe.d.ts +237 -0
- package/dist/with-shape/introspection/field-meta.d.ts +61 -0
- package/dist/with-shape/introspection/fields.d.ts +14 -0
- package/dist/with-shape/introspection/index.d.ts +12 -0
- package/dist/with-shape/introspection/json-schema.d.ts +13 -0
- package/dist/with-shape/introspection/meta.d.ts +22 -0
- package/dist/with-shape/introspection/projection.d.ts +13 -0
- package/dist/with-shape/introspection/types.d.ts +154 -0
- package/dist/with-shape/introspection/walk.d.ts +50 -0
- package/dist/with-shape/links/lazy-handle.d.ts +36 -0
- package/dist/with-shape/links/link-set.d.ts +67 -0
- package/dist/with-shape/links/names.d.ts +65 -0
- package/dist/with-shape/links/vault-facade.d.ts +211 -0
- package/dist/with-shape/persisted-schemas/canonicalize.d.ts +11 -0
- package/dist/with-shape/persisted-schemas/derive.d.ts +29 -0
- package/dist/with-shape/persisted-schemas/index.d.ts +21 -0
- package/dist/with-shape/persisted-schemas/register.d.ts +66 -0
- package/dist/with-shape/persisted-schemas/storage.d.ts +61 -0
- package/dist/with-shape/persisted-schemas/types.d.ts +54 -0
- package/dist/with-shape/satellites/dead-filter.d.ts +21 -0
- package/dist/with-shape/satellites/declare.d.ts +60 -0
- package/dist/with-shape/satellites/existence.d.ts +5 -0
- package/dist/with-shape/satellites/fanout.d.ts +38 -0
- package/dist/with-shape/satellites/forget.d.ts +47 -0
- package/dist/with-shape/satellites/index.d.ts +3 -0
- package/dist/with-shape/satellites/joined.d.ts +19 -0
- package/dist/with-shape/satellites/marker.d.ts +10 -0
- package/dist/with-shape/satellites/migrate-cek.d.ts +26 -0
- package/dist/with-shape/satellites/post-register.d.ts +6 -0
- package/dist/with-shape/satellites/proxy.d.ts +37 -0
- package/dist/with-shape/satellites/raw-target.d.ts +14 -0
- package/dist/with-shape/satellites/registry.d.ts +19 -0
- package/dist/with-shape/satellites/types.d.ts +37 -0
- package/dist/with-shape/satellites/validate.d.ts +17 -0
- package/dist/with-shape/schema-update/client-registry.d.ts +35 -0
- package/dist/with-shape/schema-update/cutover.d.ts +5 -0
- package/dist/with-shape/schema-update/delta.d.ts +2 -0
- package/dist/with-shape/schema-update/dispatch.d.ts +3 -0
- package/dist/with-shape/schema-update/fence-controller.d.ts +62 -0
- package/dist/with-shape/schema-update/fence-watcher.d.ts +37 -0
- package/dist/with-shape/schema-update/fence.d.ts +15 -0
- package/dist/with-shape/schema-update/gate.d.ts +16 -0
- package/dist/with-shape/schema-update/index.d.ts +6 -0
- package/dist/with-shape/schema-update/store-coordination-provider.d.ts +29 -0
- package/dist/with-shape/schema-update/strategies.d.ts +12 -0
- package/dist/with-shape/schema-update/types.d.ts +53 -0
- package/dist/with-store/index.d.ts +15 -0
- package/dist/with-store/lazy/active.d.ts +12 -0
- package/dist/with-store/lazy/index.d.ts +14 -0
- package/dist/with-store/lazy/strategy.d.ts +9 -0
- package/dist/with-store/route-store.d.ts +259 -0
- package/dist/with-store/store-middleware.d.ts +189 -0
- package/dist/withdraw-accessible-WZIEVWSR.js +28 -0
- package/package.json +47 -55
- package/dist/adapter/index.d.ts +0 -4
- package/dist/adapter/index.js +0 -15
- package/dist/aggregate/index.d.ts +0 -41
- package/dist/api-HV4PDUWF.js +0 -20
- package/dist/as/index.d.ts +0 -6
- package/dist/at/index.d.ts +0 -4
- package/dist/attestation/index.d.ts +0 -19
- package/dist/backup-ODXO7OGA.js +0 -225
- package/dist/backup-ODXO7OGA.js.map +0 -1
- package/dist/blobs/index.d.ts +0 -43
- package/dist/bundle/index.d.ts +0 -121
- package/dist/bundle-DlSxo31R.d.ts +0 -548
- package/dist/by/index.d.ts +0 -1
- package/dist/cargo/index.d.ts +0 -8
- package/dist/chunk-2644KEGW.js +0 -247
- package/dist/chunk-2644KEGW.js.map +0 -1
- package/dist/chunk-2HVUKRNE.js +0 -21
- package/dist/chunk-2KOSJTMU.js +0 -69
- package/dist/chunk-2UQ4RMHV.js +0 -167
- package/dist/chunk-2UQ4RMHV.js.map +0 -1
- package/dist/chunk-2XE6LIXT.js +0 -515
- package/dist/chunk-2XE6LIXT.js.map +0 -1
- package/dist/chunk-34RRRIC3.js +0 -71
- package/dist/chunk-3C5CKXFI.js +0 -621
- package/dist/chunk-3C5CKXFI.js.map +0 -1
- package/dist/chunk-3I4KYWNP.js +0 -30
- package/dist/chunk-42KVY3OC.js +0 -86
- package/dist/chunk-4C4WBS4V.js +0 -13822
- package/dist/chunk-4C4WBS4V.js.map +0 -1
- package/dist/chunk-4G3IT7J7.js +0 -280
- package/dist/chunk-4G3IT7J7.js.map +0 -1
- package/dist/chunk-4RQ62VSR.js +0 -53
- package/dist/chunk-4RQ62VSR.js.map +0 -1
- package/dist/chunk-4ZSGSRBI.js +0 -1221
- package/dist/chunk-4ZSGSRBI.js.map +0 -1
- package/dist/chunk-5GAX2QOH.js +0 -132
- package/dist/chunk-5GAX2QOH.js.map +0 -1
- package/dist/chunk-5SAZMBW7.js +0 -202
- package/dist/chunk-5TZZUL5X.js +0 -30
- package/dist/chunk-6CU3FN74.js +0 -777
- package/dist/chunk-6G2SCQYS.js +0 -29
- package/dist/chunk-6G2SCQYS.js.map +0 -1
- package/dist/chunk-6MWUANRF.js +0 -29
- package/dist/chunk-6S7T6WC4.js +0 -111
- package/dist/chunk-6S7T6WC4.js.map +0 -1
- package/dist/chunk-6ULCYCMU.js +0 -74
- package/dist/chunk-7HAPHVRJ.js +0 -1695
- package/dist/chunk-7HAPHVRJ.js.map +0 -1
- package/dist/chunk-7IZQTCTR.js +0 -382
- package/dist/chunk-7ZANJ6JZ.js +0 -265
- package/dist/chunk-7ZANJ6JZ.js.map +0 -1
- package/dist/chunk-A2APWS32.js +0 -150
- package/dist/chunk-A2APWS32.js.map +0 -1
- package/dist/chunk-A4MAD6PO.js +0 -99
- package/dist/chunk-ANDBBA2P.js +0 -36
- package/dist/chunk-ANDBBA2P.js.map +0 -1
- package/dist/chunk-AUR7MRHA.js +0 -404
- package/dist/chunk-AYGZMQP5.js +0 -75
- package/dist/chunk-BGIZAFY7.js +0 -1
- package/dist/chunk-CJEMA2Z6.js +0 -230
- package/dist/chunk-CTSFKDGA.js +0 -40
- package/dist/chunk-CU62BBRB.js +0 -1465
- package/dist/chunk-CU62BBRB.js.map +0 -1
- package/dist/chunk-CWCCYH34.js +0 -23
- package/dist/chunk-DEYAO3N6.js +0 -589
- package/dist/chunk-DFIBOSOQ.js +0 -85
- package/dist/chunk-E5AHO65E.js +0 -150
- package/dist/chunk-FC3XK5JT.js +0 -99
- package/dist/chunk-FGOGS7CE.js +0 -662
- package/dist/chunk-FGOGS7CE.js.map +0 -1
- package/dist/chunk-GX2BYNCT.js +0 -117
- package/dist/chunk-GZ2MOPVX.js +0 -291
- package/dist/chunk-GZ2MOPVX.js.map +0 -1
- package/dist/chunk-H57P2SJB.js +0 -126
- package/dist/chunk-H57P2SJB.js.map +0 -1
- package/dist/chunk-HBTT7YQX.js +0 -94
- package/dist/chunk-HOCEGVGQ.js +0 -36
- package/dist/chunk-ICV32FPK.js +0 -50
- package/dist/chunk-IIP5WFVT.js +0 -462
- package/dist/chunk-IIP5WFVT.js.map +0 -1
- package/dist/chunk-IUKGIB2Q.js +0 -91
- package/dist/chunk-IWTYFS3D.js +0 -129
- package/dist/chunk-JC5R7P44.js +0 -355
- package/dist/chunk-JC5R7P44.js.map +0 -1
- package/dist/chunk-K2WCO3NX.js +0 -1
- package/dist/chunk-KBBWY46Y.js +0 -14
- package/dist/chunk-KBF5GSGX.js +0 -367
- package/dist/chunk-KCG3BHFG.js +0 -99
- package/dist/chunk-KCG3BHFG.js.map +0 -1
- package/dist/chunk-KNXN47MO.js +0 -155
- package/dist/chunk-KWLD2D75.js +0 -38
- package/dist/chunk-KXKLKJW4.js +0 -49
- package/dist/chunk-KYC4LIEU.js +0 -123
- package/dist/chunk-LEOXZY36.js +0 -130
- package/dist/chunk-M5I354EE.js +0 -235
- package/dist/chunk-MK2BSS44.js +0 -34
- package/dist/chunk-MSVY7ULZ.js +0 -70
- package/dist/chunk-NNWK3PSY.js +0 -135
- package/dist/chunk-NSZ6J5DF.js +0 -59
- package/dist/chunk-NUEFXLZU.js +0 -59
- package/dist/chunk-NYVQCZ54.js +0 -261
- package/dist/chunk-OQAODTYR.js +0 -45
- package/dist/chunk-OV4CMJGR.js +0 -164
- package/dist/chunk-PEDZFFKW.js +0 -41
- package/dist/chunk-PF3FQCCF.js +0 -164
- package/dist/chunk-PF3FQCCF.js.map +0 -1
- package/dist/chunk-Q2KVKTC2.js +0 -823
- package/dist/chunk-QJR3W3MF.js +0 -23
- package/dist/chunk-QJR3W3MF.js.map +0 -1
- package/dist/chunk-QTXQ6RNZ.js +0 -255
- package/dist/chunk-RJ5522XX.js +0 -453
- package/dist/chunk-RJ5522XX.js.map +0 -1
- package/dist/chunk-RMUXPHIH.js +0 -930
- package/dist/chunk-RMUXPHIH.js.map +0 -1
- package/dist/chunk-S6AQXDN4.js +0 -155
- package/dist/chunk-SSFC3IYA.js +0 -275
- package/dist/chunk-SSFC3IYA.js.map +0 -1
- package/dist/chunk-SZCHEDML.js +0 -209
- package/dist/chunk-TDPEJINP.js +0 -188
- package/dist/chunk-TDPEJINP.js.map +0 -1
- package/dist/chunk-TQ3REHVF.js +0 -95
- package/dist/chunk-TQ3REHVF.js.map +0 -1
- package/dist/chunk-UNJU345Q.js +0 -32
- package/dist/chunk-UNJU345Q.js.map +0 -1
- package/dist/chunk-V7RNIND6.js +0 -265
- package/dist/chunk-V7RNIND6.js.map +0 -1
- package/dist/chunk-VJ3NQK4K.js +0 -205
- package/dist/chunk-WNA6T3MA.js +0 -686
- package/dist/chunk-WNA6T3MA.js.map +0 -1
- package/dist/chunk-WVCQ75OK.js +0 -124
- package/dist/chunk-X66MXMR5.js +0 -42
- package/dist/chunk-XHD3L3JO.js +0 -930
- package/dist/chunk-XHD3L3JO.js.map +0 -1
- package/dist/chunk-XJK2WIYN.js +0 -430
- package/dist/chunk-XJK2WIYN.js.map +0 -1
- package/dist/chunk-XQ7UYPVN.js +0 -95
- package/dist/chunk-Y2OCKFZ3.js +0 -80
- package/dist/chunk-YBFOBRTO.js +0 -367
- package/dist/chunk-YLN33ADH.js +0 -97
- package/dist/chunk-Z5YFRMG5.js +0 -45
- package/dist/chunk-ZWQFOXBR.js +0 -54
- package/dist/classified/index.d.ts +0 -16
- package/dist/classified-marker-IO5EBW7Q.js +0 -24
- package/dist/classified-marker-IO5EBW7Q.js.map +0 -1
- package/dist/collection-facade-3RAXG2OU.js +0 -38
- package/dist/computed-R62HGCO4.js +0 -11
- package/dist/consent/index.d.ts +0 -22
- package/dist/crdt/index.d.ts +0 -33
- package/dist/dead-filter-VNA4M3GP.js +0 -28
- package/dist/decrypt-partition-IHtxEnTi.d.ts +0 -21
- package/dist/delegation-ZKII5UBI.js +0 -25
- package/dist/derivations/index.d.ts +0 -69
- package/dist/derive-5D2C3WG4.js +0 -21
- package/dist/describe/index.d.ts +0 -4
- package/dist/describe/index.js +0 -1
- package/dist/dev-unlock-DDTafVO6.d.ts +0 -263
- package/dist/discriminant-BN9REW3o.d.ts +0 -60
- package/dist/enclave-EUBEJGPG.js +0 -125
- package/dist/executor-IL7SRNUZ.js +0 -23
- package/dist/executor-OUA2Y6YC.js +0 -9
- package/dist/executor-WAEI6PDV.js +0 -9
- package/dist/export-accessible-O55RKAGC.js +0 -23
- package/dist/extract-partition-VBGCBA6Q.js +0 -36
- package/dist/fanout-sidecar-CI5BCMQM.js +0 -74
- package/dist/find-FISGUWSK.js +0 -11
- package/dist/forget/index.d.ts +0 -36
- package/dist/guards/index.d.ts +0 -34
- package/dist/hash-DBkZfIBW.d.ts +0 -72
- package/dist/history/index.d.ts +0 -60
- package/dist/i18n/index.d.ts +0 -56
- package/dist/in/index.d.ts +0 -4
- package/dist/index-B9QdHytu.d.ts +0 -123
- package/dist/index-CyclmyDr.d.ts +0 -122
- package/dist/index-DzhNI2vE.d.ts +0 -23260
- package/dist/indexing/index.d.ts +0 -38
- package/dist/issue-EQAWIYFQ.js +0 -19
- package/dist/kernel/index.d.ts +0 -31
- package/dist/kernel/index.js +0 -60
- package/dist/lazy/index.d.ts +0 -20
- package/dist/ledger-AJA2SR3C.js +0 -42
- package/dist/liberate-SEGR4JLY.js +0 -24
- package/dist/link-set-YBAC2DQT.js +0 -31
- package/dist/materialized-views/index.d.ts +0 -182
- package/dist/mime-magic-CbV1quyp.d.ts +0 -103
- package/dist/noydb-AMEOU456.js +0 -65
- package/dist/on/index.d.ts +0 -4
- package/dist/overlay-views/index.d.ts +0 -97
- package/dist/periods/index.d.ts +0 -19
- package/dist/pod/index.d.ts +0 -62
- package/dist/policy-SDGRWVIL.js +0 -41
- package/dist/portability/index.d.ts +0 -19
- package/dist/post-register-MROIUA5O.js +0 -55
- package/dist/post-register-MROIUA5O.js.map +0 -1
- package/dist/public-envelope-J5PLQOW2.js +0 -32
- package/dist/query/index.d.ts +0 -4
- package/dist/read-only-facade-UCYNRE56.js +0 -8
- package/dist/register-OVJKW7BS.js +0 -23
- package/dist/registry-5RJSK5AJ.js +0 -9
- package/dist/registry-DQRNTWRL.js +0 -18
- package/dist/registry-LTGLERS7.js +0 -19
- package/dist/request-withdrawal-27O77D2V.js +0 -31
- package/dist/reveal-LT3I2K4P.js +0 -38
- package/dist/reveal-LT3I2K4P.js.map +0 -1
- package/dist/revoke-4N45G7D2.js +0 -24
- package/dist/revoke-4N45G7D2.js.map +0 -1
- package/dist/satellites/index.d.ts +0 -4
- package/dist/sealed-record/index.d.ts +0 -68
- package/dist/session/index.d.ts +0 -43
- package/dist/shadow/index.d.ts +0 -14
- package/dist/signer-XJCOV7JD.js +0 -25
- package/dist/signer-XJCOV7JD.js.map +0 -1
- package/dist/snapshots/index.d.ts +0 -25
- package/dist/stale-IYYXEH3U.js +0 -14
- package/dist/stale-IYYXEH3U.js.map +0 -1
- package/dist/storage-Y44CAPE6.js +0 -23
- package/dist/storage-Y44CAPE6.js.map +0 -1
- package/dist/store-coordination-provider-WKGAE2WI.js +0 -142
- package/dist/subject-index-CyOgGMJL.d.ts +0 -380
- package/dist/sync/index.d.ts +0 -40
- package/dist/team/index.d.ts +0 -154
- package/dist/tiers/index.d.ts +0 -4
- package/dist/to/index.d.ts +0 -4
- package/dist/transition-guard-BOUkzQU4.d.ts +0 -165
- package/dist/tx/index.d.ts +0 -34
- package/dist/ui/index.d.ts +0 -4
- package/dist/ulid-DRH25k3y.d.ts +0 -66
- package/dist/util/index.d.ts +0 -79
- package/dist/validators-B3SalxlJ.d.ts +0 -101
- package/dist/vault-diff-Dt9NkLzw.d.ts +0 -147
- package/dist/verify-GH6CWVSW.js +0 -139
- package/dist/verify-GH6CWVSW.js.map +0 -1
- package/dist/walk-76UCFXYV.js +0 -241
- package/dist/with/index.d.ts +0 -37
- package/dist/with-materialized-view-BP33v1Z6.d.ts +0 -27
- package/dist/with-overlayed-view-DntFpOKN.d.ts +0 -12
- package/dist/with-rollup-ClCHO6-4.d.ts +0 -47
- package/dist/withdraw-accessible-6J2UH3IN.js +0 -28
- package/dist/withdraw-accessible-6J2UH3IN.js.map +0 -1
- /package/dist/{adapter/index.js.map → api-ZGS6LCOF.js.map} +0 -0
- /package/dist/{chunk-34RRRIC3.js.map → chunk-3B5VVCNY.js.map} +0 -0
- /package/dist/{chunk-CJEMA2Z6.js.map → chunk-3LQ2YKO4.js.map} +0 -0
- /package/dist/{chunk-ZWQFOXBR.js.map → chunk-3QCRBHCY.js.map} +0 -0
- /package/dist/{chunk-E5AHO65E.js.map → chunk-4JBYV75E.js.map} +0 -0
- /package/dist/{chunk-YLN33ADH.js.map → chunk-4NXKCLLQ.js.map} +0 -0
- /package/dist/{chunk-2KOSJTMU.js.map → chunk-5M5DVGV7.js.map} +0 -0
- /package/dist/{chunk-3I4KYWNP.js.map → chunk-5YOLBEQ6.js.map} +0 -0
- /package/dist/{chunk-IWTYFS3D.js.map → chunk-6CRIV7DE.js.map} +0 -0
- /package/dist/{chunk-QTXQ6RNZ.js.map → chunk-6QTNZJBS.js.map} +0 -0
- /package/dist/{chunk-42KVY3OC.js.map → chunk-6T2SCQRU.js.map} +0 -0
- /package/dist/{chunk-Z5YFRMG5.js.map → chunk-7DSTRQIJ.js.map} +0 -0
- /package/dist/{chunk-DEYAO3N6.js.map → chunk-AUSTCW2X.js.map} +0 -0
- /package/dist/{chunk-SZCHEDML.js.map → chunk-B3HJYUOF.js.map} +0 -0
- /package/dist/{chunk-OV4CMJGR.js.map → chunk-BDVFPG6Y.js.map} +0 -0
- /package/dist/{chunk-HOCEGVGQ.js.map → chunk-CAF6WOK7.js.map} +0 -0
- /package/dist/{chunk-AUR7MRHA.js.map → chunk-CIE2BASH.js.map} +0 -0
- /package/dist/{chunk-X66MXMR5.js.map → chunk-CRI4OUV4.js.map} +0 -0
- /package/dist/{chunk-IUKGIB2Q.js.map → chunk-DLG74CNB.js.map} +0 -0
- /package/dist/{chunk-YBFOBRTO.js.map → chunk-ERJ7FU55.js.map} +0 -0
- /package/dist/{chunk-VJ3NQK4K.js.map → chunk-EVVGJDRQ.js.map} +0 -0
- /package/dist/{chunk-NSZ6J5DF.js.map → chunk-EXK7QRWF.js.map} +0 -0
- /package/dist/{chunk-5SAZMBW7.js.map → chunk-EYZ6IQ6X.js.map} +0 -0
- /package/dist/{chunk-OQAODTYR.js.map → chunk-F64IRYG3.js.map} +0 -0
- /package/dist/{chunk-Q2KVKTC2.js.map → chunk-FHS2HQSH.js.map} +0 -0
- /package/dist/{chunk-Y2OCKFZ3.js.map → chunk-GKEWXIV5.js.map} +0 -0
- /package/dist/{chunk-NUEFXLZU.js.map → chunk-GTGPO5KW.js.map} +0 -0
- /package/dist/{chunk-XQ7UYPVN.js.map → chunk-HB3RFQSC.js.map} +0 -0
- /package/dist/{chunk-FC3XK5JT.js.map → chunk-I6GALP6E.js.map} +0 -0
- /package/dist/{chunk-LEOXZY36.js.map → chunk-IL6POWCW.js.map} +0 -0
- /package/dist/{chunk-GX2BYNCT.js.map → chunk-IU6SNYX6.js.map} +0 -0
- /package/dist/{chunk-6CU3FN74.js.map → chunk-J2ZX2XUV.js.map} +0 -0
- /package/dist/{chunk-6MWUANRF.js.map → chunk-JKJOGPZN.js.map} +0 -0
- /package/dist/{chunk-PEDZFFKW.js.map → chunk-JZUV47FZ.js.map} +0 -0
- /package/dist/{chunk-5TZZUL5X.js.map → chunk-K5IMOGHB.js.map} +0 -0
- /package/dist/{chunk-7IZQTCTR.js.map → chunk-LASZKVMO.js.map} +0 -0
- /package/dist/{chunk-NNWK3PSY.js.map → chunk-NR5LT5RY.js.map} +0 -0
- /package/dist/{chunk-NYVQCZ54.js.map → chunk-NWSGI5C7.js.map} +0 -0
- /package/dist/{chunk-MSVY7ULZ.js.map → chunk-Q5VNKNE5.js.map} +0 -0
- /package/dist/{chunk-2HVUKRNE.js.map → chunk-QLWMEXCT.js.map} +0 -0
- /package/dist/{chunk-KYC4LIEU.js.map → chunk-QRB7NAOJ.js.map} +0 -0
- /package/dist/{chunk-6ULCYCMU.js.map → chunk-R4ROFEYC.js.map} +0 -0
- /package/dist/{chunk-KBF5GSGX.js.map → chunk-RIX4V2TB.js.map} +0 -0
- /package/dist/{chunk-CTSFKDGA.js.map → chunk-RYCTDFUX.js.map} +0 -0
- /package/dist/{chunk-S6AQXDN4.js.map → chunk-RZ5SVOYR.js.map} +0 -0
- /package/dist/{chunk-A4MAD6PO.js.map → chunk-SLFHQTTW.js.map} +0 -0
- /package/dist/{chunk-AYGZMQP5.js.map → chunk-T2FFWNPK.js.map} +0 -0
- /package/dist/{chunk-CWCCYH34.js.map → chunk-UNFPPVNI.js.map} +0 -0
- /package/dist/{chunk-M5I354EE.js.map → chunk-VLFCJYTL.js.map} +0 -0
- /package/dist/{chunk-WVCQ75OK.js.map → chunk-VN3DBQAU.js.map} +0 -0
- /package/dist/{chunk-KXKLKJW4.js.map → chunk-VZRODIM3.js.map} +0 -0
- /package/dist/{chunk-HBTT7YQX.js.map → chunk-W22IKJE2.js.map} +0 -0
- /package/dist/{chunk-KNXN47MO.js.map → chunk-X3YYQWOQ.js.map} +0 -0
- /package/dist/{chunk-DFIBOSOQ.js.map → chunk-YFXZEAYK.js.map} +0 -0
- /package/dist/{chunk-ICV32FPK.js.map → chunk-ZAJAVEXY.js.map} +0 -0
- /package/dist/{chunk-MK2BSS44.js.map → chunk-ZICD77GM.js.map} +0 -0
- /package/dist/{chunk-KWLD2D75.js.map → chunk-ZJ2AK4V7.js.map} +0 -0
- /package/dist/{chunk-KBBWY46Y.js.map → chunk-ZUODRVHY.js.map} +0 -0
- /package/dist/{api-HV4PDUWF.js.map → collection-facade-TLWIPI76.js.map} +0 -0
- /package/dist/{chunk-BGIZAFY7.js.map → computed-ZIQTYTDI.js.map} +0 -0
- /package/dist/{dead-filter-VNA4M3GP.js.map → dead-filter-ESOBZZP5.js.map} +0 -0
- /package/dist/{chunk-K2WCO3NX.js.map → delegation-W7ZV2322.js.map} +0 -0
- /package/dist/{collection-facade-3RAXG2OU.js.map → derive-H2BJTLUI.js.map} +0 -0
- /package/dist/{computed-R62HGCO4.js.map → enclave-AP3I5W7O.js.map} +0 -0
- /package/dist/{delegation-ZKII5UBI.js.map → executor-KGWTNEQD.js.map} +0 -0
- /package/dist/{derive-5D2C3WG4.js.map → executor-OVEXR6RT.js.map} +0 -0
- /package/dist/{describe/index.js.map → executor-UNEH5ZYH.js.map} +0 -0
- /package/dist/{enclave-EUBEJGPG.js.map → export-accessible-PCMXSUZS.js.map} +0 -0
- /package/dist/{executor-IL7SRNUZ.js.map → extract-partition-SWHFSYJO.js.map} +0 -0
- /package/dist/{fanout-sidecar-CI5BCMQM.js.map → fanout-sidecar-A765THMX.js.map} +0 -0
- /package/dist/{executor-OUA2Y6YC.js.map → find-N6345CNT.js.map} +0 -0
- /package/dist/{executor-WAEI6PDV.js.map → issue-5OKB6I2R.js.map} +0 -0
- /package/dist/{export-accessible-O55RKAGC.js.map → ledger-GFBKVPV4.js.map} +0 -0
- /package/dist/{extract-partition-VBGCBA6Q.js.map → liberate-3VDOT4KO.js.map} +0 -0
- /package/dist/{find-FISGUWSK.js.map → link-set-Z7Q2ASFX.js.map} +0 -0
- /package/dist/{issue-EQAWIYFQ.js.map → noydb-ZCJOYBDI.js.map} +0 -0
- /package/dist/{kernel/index.js.map → policy-Z3RUAIY2.js.map} +0 -0
- /package/dist/{ledger-AJA2SR3C.js.map → public-envelope-B4KNWVUA.js.map} +0 -0
- /package/dist/{liberate-SEGR4JLY.js.map → read-only-facade-CHCKSEPD.js.map} +0 -0
- /package/dist/{link-set-YBAC2DQT.js.map → register-VAHONCID.js.map} +0 -0
- /package/dist/{noydb-AMEOU456.js.map → registry-7MLVD3VO.js.map} +0 -0
- /package/dist/{policy-SDGRWVIL.js.map → registry-EPKPD5SM.js.map} +0 -0
- /package/dist/{public-envelope-J5PLQOW2.js.map → registry-P5T7PS2U.js.map} +0 -0
- /package/dist/{read-only-facade-UCYNRE56.js.map → request-withdrawal-TI3A5WPS.js.map} +0 -0
- /package/dist/{register-OVJKW7BS.js.map → revoke-FDRD6GRW.js.map} +0 -0
- /package/dist/{registry-5RJSK5AJ.js.map → signer-MUWEIUI6.js.map} +0 -0
- /package/dist/{registry-DQRNTWRL.js.map → stale-OSQ7J3AA.js.map} +0 -0
- /package/dist/{registry-LTGLERS7.js.map → storage-MVFCGEQE.js.map} +0 -0
- /package/dist/{store-coordination-provider-WKGAE2WI.js.map → store-coordination-provider-64OEZFGS.js.map} +0 -0
- /package/dist/{walk-76UCFXYV.js.map → walk-SVNDIZ62.js.map} +0 -0
- /package/dist/{request-withdrawal-27O77D2V.js.map → withdraw-accessible-WZIEVWSR.js.map} +0 -0
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import type { Collection } from '../../kernel/collection.js';
|
|
2
|
+
import type { OverlayedViewStrategy } from './types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Virtual-collection proxy returned by `vault.collection(overlayName)`
|
|
5
|
+
* when `overlayName` is a registered `withOverlayedView`.
|
|
6
|
+
*
|
|
7
|
+
* Implements the core `Collection<T>`-shaped read/write surface with
|
|
8
|
+
* merge-on-read semantics:
|
|
9
|
+
* - `get(id)`: overlay row wins iff `overlay[shadowField] === shadowValue`;
|
|
10
|
+
* when `spec.mergeMode` is set, an intermediate status may instead pull
|
|
11
|
+
* a declared subset of fields from the overlay over the base
|
|
12
|
+
* - `list()` / `.query()`: union of ids, per-id merge applied
|
|
13
|
+
* - `put(record)` / `put(id, record)`: routes to overlay; id derived
|
|
14
|
+
* via the base MV's `rowKey` (validated on the two-arg form)
|
|
15
|
+
* - `delete(id)`: removes the overlay row only; base stays
|
|
16
|
+
*
|
|
17
|
+
* Reactive APIs (`live`, `subscribe`, `query().live()`) are out of
|
|
18
|
+
* scope for this release and surface as "not yet implemented" — wired in a
|
|
19
|
+
* future sub-issue.
|
|
20
|
+
*/
|
|
21
|
+
export declare class OverlayedCollection<T extends Record<string, unknown> = any> {
|
|
22
|
+
private readonly spec;
|
|
23
|
+
private readonly baseCollection;
|
|
24
|
+
private readonly overlayCollection;
|
|
25
|
+
private readonly baseRowKey;
|
|
26
|
+
constructor(spec: OverlayedViewStrategy, baseCollection: Collection<T>, overlayCollection: Collection<T>, baseRowKey: ((row: Record<string, unknown>) => string) | undefined);
|
|
27
|
+
/**
|
|
28
|
+
* Convenience accessors for advanced callers that need to bypass the
|
|
29
|
+
* virtual layer (bulk imports, direct overlay queries). Mirrors the
|
|
30
|
+
* spec's "direct writes to the underlying overlay collection skip
|
|
31
|
+
* the validation" escape hatch.
|
|
32
|
+
*/
|
|
33
|
+
readonly overlay: {
|
|
34
|
+
rowKey: (row: Record<string, unknown>) => string;
|
|
35
|
+
};
|
|
36
|
+
/** Get the merged row by id. */
|
|
37
|
+
get(id: string): Promise<T | null>;
|
|
38
|
+
/** List union of base + overlay ids, applying the merge per row. */
|
|
39
|
+
list(): Promise<T[]>;
|
|
40
|
+
/**
|
|
41
|
+
* Write to the overlay. Two forms:
|
|
42
|
+
* - `put(record)`: id is derived via the base MV's `rowKey(record)`.
|
|
43
|
+
* Throws if the base isn't an MV.
|
|
44
|
+
* - `put(id, record)`: validates `id === rowKey(record)`; throws
|
|
45
|
+
* `OverlayIdMismatchError` on mismatch.
|
|
46
|
+
*/
|
|
47
|
+
put(idOrRecord: string | T, maybeRecord?: T): Promise<void>;
|
|
48
|
+
/**
|
|
49
|
+
* Remove the overlay row only. Idempotent (no-op on absent).
|
|
50
|
+
* The base row is untouched — if a base row exists for `id`,
|
|
51
|
+
* subsequent reads return it.
|
|
52
|
+
*/
|
|
53
|
+
delete(id: string): Promise<void>;
|
|
54
|
+
/**
|
|
55
|
+
* Merge a single id's overlay + base rows into the visible row.
|
|
56
|
+
*
|
|
57
|
+
* Priority (first match wins):
|
|
58
|
+
* 1. Binary shadow win — overlay present AND
|
|
59
|
+
* `overlay[shadowField] === shadowValue` → return the overlay row
|
|
60
|
+
* entirely. This stays FIRST so the original binary behaviour is
|
|
61
|
+
* unchanged whether or not `mergeMode` is configured.
|
|
62
|
+
* 2. Field-level merge — overlay present, `mergeMode` configured,
|
|
63
|
+
* and a rule whose `whenStatus` equals `overlay[shadowField]`.
|
|
64
|
+
* The matched rule pulls its `overlayFields` (those present on
|
|
65
|
+
* the overlay row) on top of the base row. With no base row, the
|
|
66
|
+
* overlay row is returned as-is.
|
|
67
|
+
* 3. Fallback — return the base row (possibly `null`). An
|
|
68
|
+
* overlay-only row that qualifies under neither (1) nor (2) and
|
|
69
|
+
* has no base is therefore NOT surfaced.
|
|
70
|
+
*/
|
|
71
|
+
private mergeRows;
|
|
72
|
+
/** @throws — chainable Query<T> over a virtual collection is deferred. */
|
|
73
|
+
query(): never;
|
|
74
|
+
/** @throws — change-stream subscription over a virtual collection is deferred. */
|
|
75
|
+
subscribe(): never;
|
|
76
|
+
/** @throws — live query over a virtual collection is deferred. */
|
|
77
|
+
live(): never;
|
|
78
|
+
/** @throws — async iteration over a virtual collection is deferred. */
|
|
79
|
+
scan(): never;
|
|
80
|
+
/** @throws — lazy-mode query is not applicable to virtual collections. */
|
|
81
|
+
lazyQuery(): never;
|
|
82
|
+
/** @throws — bulk-atomic put is deferred to a future MV sub-issue. */
|
|
83
|
+
putManyAtomic(): never;
|
|
84
|
+
/** @throws — bulk delete is deferred to a future MV sub-issue. */
|
|
85
|
+
deleteMany(): never;
|
|
86
|
+
/** @throws — `.first()` over a virtual collection is deferred. */
|
|
87
|
+
first(): never;
|
|
88
|
+
/** @throws — `.count()` over a virtual collection is deferred. */
|
|
89
|
+
count(): never;
|
|
90
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { OverlayedViewStrategy, OverlayedViewStrategyHandle } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Register a read-shadow overlay: bind an MV-owned base collection to
|
|
4
|
+
* a user-writable overlay so consumers can express operator-editable
|
|
5
|
+
* lifecycles as one declarative block.
|
|
6
|
+
*
|
|
7
|
+
* See docs/superpowers/specs/2026-05-20-dim14-mv-v2-design.md.
|
|
8
|
+
*/
|
|
9
|
+
export declare function withOverlayedView(spec: OverlayedViewStrategy): OverlayedViewStrategyHandle;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Active aggregate strategy factory. Calling `withAggregate()` returns
|
|
3
|
+
* an `AggregateStrategy` whose methods construct real `Aggregation` /
|
|
4
|
+
* `GroupedQuery` instances and run the streaming reducer protocol.
|
|
5
|
+
*
|
|
6
|
+
* This module is only reachable through the `@noy-db/hub/aggregate`
|
|
7
|
+
* subpath — a consumer that never imports the subpath ships none of
|
|
8
|
+
* this (ESM tree-shaking + hub's `"sideEffects": false`).
|
|
9
|
+
*/
|
|
10
|
+
import type { AggregateStrategy } from './strategy.js';
|
|
11
|
+
/**
|
|
12
|
+
* Build the default aggregate strategy. Pass into
|
|
13
|
+
* `createNoydb({ aggregateStrategy: withAggregate() })` to light up
|
|
14
|
+
* `.aggregate()` and `.groupBy()` on `Query` and `ScanBuilder`.
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```ts
|
|
18
|
+
* import { createNoydb } from '@noy-db/hub'
|
|
19
|
+
* import { withAggregate, sum, count } from '@noy-db/hub/aggregate'
|
|
20
|
+
*
|
|
21
|
+
* const db = await createNoydb({
|
|
22
|
+
* store, user, secret,
|
|
23
|
+
* aggregateStrategy: withAggregate(),
|
|
24
|
+
* })
|
|
25
|
+
*
|
|
26
|
+
* const totals = invoices.query()
|
|
27
|
+
* .where('status', '==', 'paid')
|
|
28
|
+
* .groupBy('clientId')
|
|
29
|
+
* .aggregate({ amount: sum('amount'), n: count() })
|
|
30
|
+
* .run()
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
export declare function withAggregate(): AggregateStrategy;
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Aggregate execution — the runtime behind `Query.aggregate()`.
|
|
3
|
+
*
|
|
4
|
+
* takes an `AggregateSpec` (a record of named reducers
|
|
5
|
+
* built from `reducers.ts`) and runs every reducer over the records
|
|
6
|
+
* produced by the underlying query. Two terminal surfaces:
|
|
7
|
+
*
|
|
8
|
+
* - `.run(): R` — synchronous one-shot reduction. Matches the
|
|
9
|
+
* existing `Query.toArray()` / `.first()` / `.count()` style.
|
|
10
|
+
* - `.live(): LiveAggregation<R>` — reactive primitive that
|
|
11
|
+
* re-runs the reduction whenever the query's source notifies of
|
|
12
|
+
* a change. uses naive full re-run; incremental delta
|
|
13
|
+
* maintenance is admitted by the reducer protocol (`remove()`)
|
|
14
|
+
* but not wired to the executor yet — a follow-up optimization
|
|
15
|
+
* can switch from full re-run to delta-based without breaking
|
|
16
|
+
* the public API. Consumers get correct, reactive values today.
|
|
17
|
+
*
|
|
18
|
+
* The `Aggregation<R>` wrapper is deliberately tiny — it exists so
|
|
19
|
+
* `.aggregate(spec)` can be chained with either `.run()` or `.live()`
|
|
20
|
+
* without the builder needing two separate terminal methods. It
|
|
21
|
+
* holds the closure over the query execution (produces the current
|
|
22
|
+
* matching record set) and the spec, and stitches them together in
|
|
23
|
+
* either mode.
|
|
24
|
+
*
|
|
25
|
+
* This file depends ONLY on `reducers.ts` — it has no knowledge of
|
|
26
|
+
* the `Query` class. Tests can therefore exercise the reduction
|
|
27
|
+
* surface with plain record arrays, without spinning up a Collection.
|
|
28
|
+
*/
|
|
29
|
+
import type { Reducer } from './reducers.js';
|
|
30
|
+
/**
|
|
31
|
+
* A named set of reducers, keyed by output field name. Each key
|
|
32
|
+
* becomes a field on the aggregated result.
|
|
33
|
+
*
|
|
34
|
+
* ```ts
|
|
35
|
+
* const spec = {
|
|
36
|
+
* total: sum('amount'),
|
|
37
|
+
* n: count(),
|
|
38
|
+
* avgAmount: avg('amount'),
|
|
39
|
+
* }
|
|
40
|
+
* ```
|
|
41
|
+
*/
|
|
42
|
+
export type AggregateSpec = Readonly<Record<string, Reducer<unknown, unknown>>>;
|
|
43
|
+
/**
|
|
44
|
+
* Map an `AggregateSpec` to its reduced result shape — each key
|
|
45
|
+
* carries the finalized result type from its reducer. A spec built
|
|
46
|
+
* from `{ total: sum('amount'), n: count() }` yields a result of
|
|
47
|
+
* `{ total: number, n: number }`.
|
|
48
|
+
*
|
|
49
|
+
* This uses a mapped type with a conditional to extract `R` from
|
|
50
|
+
* each `Reducer<R, _>`. The `infer` captures the user-visible result
|
|
51
|
+
* type, discarding the internal state type `S`.
|
|
52
|
+
*/
|
|
53
|
+
export type AggregateResult<Spec extends AggregateSpec> = {
|
|
54
|
+
[K in keyof Spec]: Spec[K] extends Reducer<infer R, unknown> ? R : never;
|
|
55
|
+
};
|
|
56
|
+
/**
|
|
57
|
+
* Pure reduction over a record array. Runs every reducer's
|
|
58
|
+
* `init → step* → finalize` pipeline exactly once over the records.
|
|
59
|
+
*
|
|
60
|
+
* Called by `Aggregation.run()` and by the live-mode refresh path.
|
|
61
|
+
* Exported for tests and for future `scan().aggregate()` reuse
|
|
62
|
+
* — the streaming path will call the same reducer protocol with a
|
|
63
|
+
* per-page loop instead of a single array.
|
|
64
|
+
*/
|
|
65
|
+
export declare function reduceRecords<Spec extends AggregateSpec>(records: readonly unknown[], spec: Spec): AggregateResult<Spec>;
|
|
66
|
+
/**
|
|
67
|
+
* A minimal reactive primitive for aggregation results.
|
|
68
|
+
*
|
|
69
|
+
* Same spirit as the `LiveQuery` in : frame-agnostic, a plain
|
|
70
|
+
* object with `value` / `error` fields and a `subscribe(cb)`
|
|
71
|
+
* notification channel that Vue / React / Solid adapters wrap in
|
|
72
|
+
* their own primitive. Intentionally NOT a Promise — aggregations
|
|
73
|
+
* have a well-defined "current value" at every instant, and the
|
|
74
|
+
* reactive consumer wants to read that value synchronously.
|
|
75
|
+
*
|
|
76
|
+
* Error semantics mirror `LiveQuery`: if a re-run throws, the
|
|
77
|
+
* previous successful `value` is preserved and the error is stored
|
|
78
|
+
* in `error` so consumers can render an error state without losing
|
|
79
|
+
* the last-known-good result. The throw does NOT propagate out of
|
|
80
|
+
* the source's change handler (which would tear down the upstream
|
|
81
|
+
* emitter).
|
|
82
|
+
*
|
|
83
|
+
* `stop()` tears down the upstream subscription. It is idempotent —
|
|
84
|
+
* calling it multiple times is safe — and subscribe calls after
|
|
85
|
+
* stop are no-ops (they immediately return a no-op unsubscribe).
|
|
86
|
+
* Always call `stop()` when done; Vue's `onUnmounted` is the
|
|
87
|
+
* canonical place. Raw consumers must do it themselves.
|
|
88
|
+
*/
|
|
89
|
+
export interface LiveAggregation<R> {
|
|
90
|
+
/** Current reduced value. Undefined only if the first compute threw. */
|
|
91
|
+
readonly value: R | undefined;
|
|
92
|
+
/** Last execution error, if any. Cleared on the next successful run. */
|
|
93
|
+
readonly error: unknown;
|
|
94
|
+
/** Notify on every recomputation (success or error). Returns unsubscribe. */
|
|
95
|
+
subscribe(cb: () => void): () => void;
|
|
96
|
+
/** Tear down the upstream subscription. Idempotent. */
|
|
97
|
+
stop(): void;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Upstream change-notification hook for live aggregation.
|
|
101
|
+
*
|
|
102
|
+
* Matches the shape that `QuerySource.subscribe` already uses — a
|
|
103
|
+
* single method that accepts a callback and returns an unsubscribe
|
|
104
|
+
* function. The `Aggregation` wrapper collects upstreams from the
|
|
105
|
+
* query's source and wires them into a single re-run trigger.
|
|
106
|
+
*/
|
|
107
|
+
export interface AggregationUpstream {
|
|
108
|
+
subscribe(cb: () => void): () => void;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Chainable wrapper returned by `Query.aggregate(spec)`. Holds the
|
|
112
|
+
* execute-records closure and the spec; terminal methods (`run`,
|
|
113
|
+
* `live`) stitch them together in either mode.
|
|
114
|
+
*
|
|
115
|
+
* Why a wrapper instead of two terminal methods on `Query` directly?
|
|
116
|
+
*
|
|
117
|
+
* The `.aggregate(spec)` call is where the spec is bound — both
|
|
118
|
+
* `.run()` and `.live()` need the same spec, and the consumer's
|
|
119
|
+
* fluent style is `query.where(...).aggregate(spec).run()` or
|
|
120
|
+
* `.aggregate(spec).live()`. Wrapping lets the spec be named once
|
|
121
|
+
* and reused for either terminal, and keeps the `Query` class
|
|
122
|
+
* from growing a pair of near-duplicate method overloads
|
|
123
|
+
* (`aggregateRun` / `aggregateLive`) that would be harder to
|
|
124
|
+
* discover.
|
|
125
|
+
*/
|
|
126
|
+
export declare class Aggregation<R> {
|
|
127
|
+
private readonly executeRecords;
|
|
128
|
+
private readonly spec;
|
|
129
|
+
private readonly upstreams;
|
|
130
|
+
constructor(executeRecords: () => readonly unknown[], spec: AggregateSpec, upstreams: readonly AggregationUpstream[]);
|
|
131
|
+
/**
|
|
132
|
+
* Execute the query and reduce the results synchronously.
|
|
133
|
+
* Returns the reduced shape matching the spec — e.g. a spec of
|
|
134
|
+
* `{ total: sum('amount'), n: count() }` returns
|
|
135
|
+
* `{ total: number, n: number }`.
|
|
136
|
+
*/
|
|
137
|
+
run(): R;
|
|
138
|
+
/**
|
|
139
|
+
* Build a reactive `LiveAggregation<R>` that re-runs the reduction
|
|
140
|
+
* whenever any upstream source notifies of a change. The initial
|
|
141
|
+
* value is computed eagerly in the constructor, so consumers can
|
|
142
|
+
* read `live.value` immediately after calling `.live()`.
|
|
143
|
+
*
|
|
144
|
+
* Always call `live.stop()` when finished — it tears down the
|
|
145
|
+
* upstream subscriptions. Vue's `onUnmounted` is the canonical
|
|
146
|
+
* place.
|
|
147
|
+
*
|
|
148
|
+
* **Implementation note:** every upstream change triggers a full
|
|
149
|
+
* re-reduction. Incremental maintenance (O(1) per delta for
|
|
150
|
+
* sum/count/avg via the reducer protocol's `remove()` method) is a
|
|
151
|
+
* planned follow-up optimization — the protocol already supports
|
|
152
|
+
* it, but the executor doesn't drive it yet. Consumers get
|
|
153
|
+
* correct, reactive values today; future PRs can switch to
|
|
154
|
+
* delta-based maintenance without changing this API.
|
|
155
|
+
*/
|
|
156
|
+
live(): LiveAggregation<R>;
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Build a `LiveAggregation<V>` from a recompute closure and a list
|
|
160
|
+
* of upstreams. Exposed so sibling files in the query DSL
|
|
161
|
+
* (currently `groupby.ts`) can reuse the reactive primitive
|
|
162
|
+
* without reaching into `LiveAggregationImpl` directly. This keeps
|
|
163
|
+
* the implementation class private while still allowing planned
|
|
164
|
+
* composition with `.groupBy().aggregate().live()`.
|
|
165
|
+
*/
|
|
166
|
+
export declare function buildLiveAggregation<V>(recompute: () => V, upstreams: readonly AggregationUpstream[]): LiveAggregation<V>;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Canonicalise a group-key tuple to a stable string for dedup hashing.
|
|
3
|
+
*
|
|
4
|
+
* Sorts field names lexicographically before serialising, so that
|
|
5
|
+
* `.groupBy('a', 'b')` and `.groupBy('b', 'a')` produce identical
|
|
6
|
+
* keys for the same logical group. Values are JSON-stringified;
|
|
7
|
+
* `undefined` and `null` are distinguished (matching the Map-key
|
|
8
|
+
* semantics in `groupAndReduce`).
|
|
9
|
+
*
|
|
10
|
+
* NOT part of the public API. Used by:
|
|
11
|
+
* - `groupAndReduce` for the dedup Map's key
|
|
12
|
+
* - `materialized-views/query-hash` for UNION MV cross-arm row-key dedup (PR 2)
|
|
13
|
+
*
|
|
14
|
+
* Pure: same input → same output, no side effects.
|
|
15
|
+
*/
|
|
16
|
+
export declare function canonicalGroupKey(fields: readonly string[], row: Record<string, unknown>): string;
|
|
@@ -0,0 +1,280 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Query DSL `.groupBy()` —.
|
|
3
|
+
*
|
|
4
|
+
* Chains after `.where()` / `.filter()` / `.or()` / `.and()` on a
|
|
5
|
+
* Query and before a reducer spec, so consumers can compute
|
|
6
|
+
* per-bucket aggregates without folding in userland:
|
|
7
|
+
*
|
|
8
|
+
* ```ts
|
|
9
|
+
* const byClient = invoices.query()
|
|
10
|
+
* .where('status', '==', 'open')
|
|
11
|
+
* .groupBy('clientId')
|
|
12
|
+
* .aggregate({ total: sum('amount'), n: count() })
|
|
13
|
+
* .run()
|
|
14
|
+
* // → [ { clientId: 'c1', total: 5250, n: 3 }, … ]
|
|
15
|
+
* ```
|
|
16
|
+
*
|
|
17
|
+
* Execution pipeline:
|
|
18
|
+
*
|
|
19
|
+
* 1. Run the query's where/filter clauses (same candidate /
|
|
20
|
+
* filter pipeline as `.aggregate()` directly on Query).
|
|
21
|
+
* 2. Partition the matching records into buckets keyed by
|
|
22
|
+
* `readPath(record, field)`. JS `Map` preserves insertion
|
|
23
|
+
* order, so the first-seen key for a bucket determines its
|
|
24
|
+
* position in the result array — consumers who want a
|
|
25
|
+
* specific ordering should `.sort()` downstream.
|
|
26
|
+
* 3. Enforce cardinality: warn once per field at 10% of the cap
|
|
27
|
+
* (10_000 buckets), throw `GroupCardinalityError` at 100% of
|
|
28
|
+
* the cap (100_000 buckets).
|
|
29
|
+
* 4. For each bucket, build a per-group reducer state and
|
|
30
|
+
* step every record in the bucket through it.
|
|
31
|
+
* 5. Emit one result row per bucket, shaped as
|
|
32
|
+
* `{ [field]: key, ...reduced }`.
|
|
33
|
+
*
|
|
34
|
+
* **Null / undefined keys:** `Map` distinguishes `null` from
|
|
35
|
+
* `undefined`, so records with a missing group field get their own
|
|
36
|
+
* bucket, and records with an explicit `null` value get a separate
|
|
37
|
+
* bucket from that. Consumers who want them merged can coalesce
|
|
38
|
+
* upstream with `.filter()`.
|
|
39
|
+
*
|
|
40
|
+
* **Live mode:** `.groupBy().aggregate().live()` re-runs the full
|
|
41
|
+
* grouping pipeline on every source change. Per-bucket incremental
|
|
42
|
+
* delta maintenance is a future optimization — the reducer
|
|
43
|
+
* protocol's `remove()` hook admits it, but ships naive
|
|
44
|
+
* re-grouping for simplicity.
|
|
45
|
+
*
|
|
46
|
+
* **Type-level stable-key narrowing:** when
|
|
47
|
+
* `dictKey` lands, `groupBy<DictField>()` will narrow the group key
|
|
48
|
+
* type to the stable dictionary key rather than the resolved locale
|
|
49
|
+
* label. That prevents grouping by the locale-resolved label,
|
|
50
|
+
* which would produce different buckets per reader. types the
|
|
51
|
+
* key as `unknown` at the result shape; the dictKey narrowing
|
|
52
|
+
* layers on top without an API break.
|
|
53
|
+
*
|
|
54
|
+
* Partition-awareness seam: when partitioned collections land,
|
|
55
|
+
* per-partition grouping will need to merge sub-results across
|
|
56
|
+
* partitions. The reducer protocol's `{ seed }` parameter
|
|
57
|
+
* (already plumbed through in `reducers.ts`) is the mechanism —
|
|
58
|
+
* groupBy doesn't need its own seam for the moment, because it
|
|
59
|
+
* delegates to the reducer protocol for all per-bucket state.
|
|
60
|
+
*/
|
|
61
|
+
import type { AggregateSpec, AggregateResult, AggregationUpstream, LiveAggregation } from './aggregation.js';
|
|
62
|
+
import type { ReducerBuilder } from './reducers.js';
|
|
63
|
+
import type { MoneyDescriptor } from '../../via/money/descriptor.js';
|
|
64
|
+
import type { ViaPipeline } from '../../kernel/via/pipeline.js';
|
|
65
|
+
import { type I18nTextDescriptor } from '../../via/i18n/core.js';
|
|
66
|
+
/**
|
|
67
|
+
* Cardinality thresholds for `.groupBy()`. The warn threshold gives
|
|
68
|
+
* consumers a heads-up before the hard error; the cap is a fixed
|
|
69
|
+
* constant in (not overridable). A `{ maxGroups }` override
|
|
70
|
+
* can be added later without a break if a real consumer asks.
|
|
71
|
+
*/
|
|
72
|
+
export declare const GROUPBY_WARN_CARDINALITY = 10000;
|
|
73
|
+
export declare const GROUPBY_MAX_CARDINALITY = 100000;
|
|
74
|
+
/**
|
|
75
|
+
* Test-only: clear the per-field cardinality warning dedup between
|
|
76
|
+
* tests. Production code never calls this — matching the
|
|
77
|
+
* `resetJoinWarnings` pattern in `join.ts`.
|
|
78
|
+
*/
|
|
79
|
+
export declare function resetGroupByWarnings(): void;
|
|
80
|
+
/**
|
|
81
|
+
* Result row shape for a grouped aggregation. Each row carries the
|
|
82
|
+
* group key value under the grouping field name plus every reducer
|
|
83
|
+
* output from the spec.
|
|
84
|
+
*
|
|
85
|
+
* types the group key as `unknown` at the result shape — the
|
|
86
|
+
* runtime read via `readPath` can return any value, and narrowing
|
|
87
|
+
* to a specific type would require the caller to assert at the
|
|
88
|
+
* call site. `dictKey` narrowing layers on top of this by
|
|
89
|
+
* adding an overload that constrains `F` when the grouping field
|
|
90
|
+
* is a `dictKey`.
|
|
91
|
+
*/
|
|
92
|
+
export type GroupedRow<F extends string, R> = {
|
|
93
|
+
[K in F]: unknown;
|
|
94
|
+
} & R;
|
|
95
|
+
/**
|
|
96
|
+
* Multi-key variant — result-row shape for variadic
|
|
97
|
+
* `.groupBy(...fields)`. Every grouped field name appears on the row
|
|
98
|
+
* (typed as `unknown` for the same reason as `GroupedRow`), plus the
|
|
99
|
+
* reducer outputs from the spec.
|
|
100
|
+
*/
|
|
101
|
+
export type GroupedRowN<F extends readonly string[], R> = {
|
|
102
|
+
[K in F[number]]: unknown;
|
|
103
|
+
} & R;
|
|
104
|
+
/**
|
|
105
|
+
* Shared base class for the chainable grouped-query wrappers. Holds
|
|
106
|
+
* the constructor + protected fields that both single-key
|
|
107
|
+
* `GroupedQuery<T, F>` and variadic `GroupedQueryN<T, F>` need; each
|
|
108
|
+
* subclass only overrides `aggregate()` with its own result-row
|
|
109
|
+
* generic.
|
|
110
|
+
*
|
|
111
|
+
* Not exported — implementation detail. Adding `.having()` /
|
|
112
|
+
* `.live()` / `.orderByGroup()` etc. in the future lands here once
|
|
113
|
+
* and both subclasses pick it up automatically.
|
|
114
|
+
*
|
|
115
|
+
* @internal
|
|
116
|
+
*/
|
|
117
|
+
declare abstract class GroupedQueryBase {
|
|
118
|
+
protected readonly executeRecords: () => readonly unknown[];
|
|
119
|
+
protected readonly upstreams: readonly AggregationUpstream[];
|
|
120
|
+
/**
|
|
121
|
+
* Optional dict label resolver attached by the query builder when
|
|
122
|
+
* the grouping field is a dictKey. Variadic groupings always pass
|
|
123
|
+
* `undefined` — `<field>Label` projection has no meaningful shape
|
|
124
|
+
* for composite keys.
|
|
125
|
+
*/
|
|
126
|
+
protected readonly dictLabelResolver?: ((key: string, locale: string, fallback?: string | readonly string[]) => Promise<string | undefined>) | undefined;
|
|
127
|
+
/**
|
|
128
|
+
* The backing collection's compiled Via pipeline — used to rewrite
|
|
129
|
+
* `sum`/`min`/`max` over Via-covered fields (e.g. money) into exact
|
|
130
|
+
* BigInt reducers when `.aggregate(spec)` is terminated.
|
|
131
|
+
*/
|
|
132
|
+
protected readonly via?: ViaPipeline | undefined;
|
|
133
|
+
/**
|
|
134
|
+
* Field set this grouped query buckets on. Stored in declaration
|
|
135
|
+
* order — the same order is preserved on every result row by
|
|
136
|
+
* `groupAndReduce`. For the single-field constructor, this is
|
|
137
|
+
* `[field]`.
|
|
138
|
+
*/
|
|
139
|
+
protected readonly fields: readonly string[];
|
|
140
|
+
constructor(executeRecords: () => readonly unknown[], fieldOrFields: string | readonly string[], upstreams: readonly AggregationUpstream[],
|
|
141
|
+
/**
|
|
142
|
+
* Optional dict label resolver attached by the query builder when
|
|
143
|
+
* the grouping field is a dictKey. Variadic groupings always pass
|
|
144
|
+
* `undefined` — `<field>Label` projection has no meaningful shape
|
|
145
|
+
* for composite keys.
|
|
146
|
+
*/
|
|
147
|
+
dictLabelResolver?: ((key: string, locale: string, fallback?: string | readonly string[]) => Promise<string | undefined>) | undefined,
|
|
148
|
+
/**
|
|
149
|
+
* The backing collection's compiled Via pipeline — used to rewrite
|
|
150
|
+
* `sum`/`min`/`max` over Via-covered fields (e.g. money) into exact
|
|
151
|
+
* BigInt reducers when `.aggregate(spec)` is terminated.
|
|
152
|
+
*/
|
|
153
|
+
via?: ViaPipeline | undefined);
|
|
154
|
+
/** Apply Via-aware reducer rewriting (e.g. money) when the source declares one. */
|
|
155
|
+
protected wrapSpec<Spec extends AggregateSpec>(spec: Spec): Spec;
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Chainable wrapper returned by `Query.groupBy(field)`. Terminates
|
|
159
|
+
* with `.aggregate(spec)` which returns a `GroupedAggregation`.
|
|
160
|
+
*
|
|
161
|
+
* Kept minimal — the only operation on a grouped query is
|
|
162
|
+
* aggregation. Ordering, limiting, and further filtering belong on
|
|
163
|
+
* the underlying `Query` before `.groupBy()` is called; applying
|
|
164
|
+
* them post-group would be a different operation (`having` /
|
|
165
|
+
* `groupOrderBy`), out of scope for.
|
|
166
|
+
*/
|
|
167
|
+
export declare class GroupedQuery<T, F extends string, S extends keyof T = never, M extends keyof T & string = never> extends GroupedQueryBase {
|
|
168
|
+
/**
|
|
169
|
+
* Build a grouped aggregation. Returns a `GroupedAggregation`
|
|
170
|
+
* with `.run()`, `.runAsync()`, and `.live()` terminals — same shape
|
|
171
|
+
* as the non-grouped `.aggregate()` wrapper, just with an array
|
|
172
|
+
* result (one row per bucket) instead of a single reduced object.
|
|
173
|
+
*
|
|
174
|
+
* The builder overload `aggregate(b => spec)` types `b` as
|
|
175
|
+
* `ReducerBuilder<T, S, M>`, so field-taking reducers (`sum`, `avg`,
|
|
176
|
+
* `min`, `max`) refuse any field listed in the collection's
|
|
177
|
+
* `sensitive` option at compile time, and `sum`/`min`/`max` over a
|
|
178
|
+
* declared `moneyFields` (`M`) member return a `MoneyString`. The
|
|
179
|
+
* bare-spec overload is preserved for backward compatibility.
|
|
180
|
+
*/
|
|
181
|
+
aggregate<Spec extends AggregateSpec>(spec: Spec): GroupedAggregation<GroupedRow<F, AggregateResult<Spec>>>;
|
|
182
|
+
aggregate<Spec extends AggregateSpec>(build: (b: ReducerBuilder<T, S, M>) => Spec): GroupedAggregation<GroupedRow<F, AggregateResult<Spec>>>;
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Variadic-keyed sibling of `GroupedQuery<T, F>`. Constructed by the
|
|
186
|
+
* multi-arg `Query.groupBy(...fields)` overload. The runtime shape is
|
|
187
|
+
* identical — only the type-level result-row narrowing differs.
|
|
188
|
+
*/
|
|
189
|
+
export declare class GroupedQueryN<T, F extends readonly string[], S extends keyof T = never, M extends keyof T & string = never> extends GroupedQueryBase {
|
|
190
|
+
aggregate<Spec extends AggregateSpec>(spec: Spec): GroupedAggregation<GroupedRowN<F, AggregateResult<Spec>>>;
|
|
191
|
+
aggregate<Spec extends AggregateSpec>(build: (b: ReducerBuilder<T, S, M>) => Spec): GroupedAggregation<GroupedRowN<F, AggregateResult<Spec>>>;
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Execute the group-and-reduce pipeline. Pure function over a
|
|
195
|
+
* record array and a spec — shared by `GroupedAggregation.run()`
|
|
196
|
+
* and the live-mode refresh path. Exported for tests and for any
|
|
197
|
+
* future `scan().groupBy().aggregate()` reuse.
|
|
198
|
+
*
|
|
199
|
+
* Enforces the cardinality cap incrementally during the partition
|
|
200
|
+
* loop, so a runaway grouping throws at the moment the 100_001st
|
|
201
|
+
* bucket would be created — the consumer doesn't have to wait for
|
|
202
|
+
* the full partition to materialize before the error fires.
|
|
203
|
+
*/
|
|
204
|
+
export declare function groupAndReduce<R>(records: readonly unknown[], fieldOrFields: string | readonly string[], spec: AggregateSpec, moneyFields?: Record<string, MoneyDescriptor>): R[];
|
|
205
|
+
/**
|
|
206
|
+
* Grouped aggregation wrapper — the `.groupBy(field).aggregate(spec)`
|
|
207
|
+
* terminal. Shape mirrors `Aggregation<R>` from aggregate.ts: two
|
|
208
|
+
* terminals (`.run()` and `.live()`), spec bound at construction
|
|
209
|
+
* time, upstreams collected for live mode.
|
|
210
|
+
*
|
|
211
|
+
* The generic `R` is the per-row result shape (i.e. a single
|
|
212
|
+
* grouped row), and the terminals return `R[]` — one row per
|
|
213
|
+
* bucket.
|
|
214
|
+
*/
|
|
215
|
+
export declare class GroupedAggregation<R> {
|
|
216
|
+
private readonly executeRecords;
|
|
217
|
+
private readonly spec;
|
|
218
|
+
private readonly upstreams;
|
|
219
|
+
/**
|
|
220
|
+
* Optional dict label resolver for `<field>Label` projection
|
|
221
|
+
*. Present when the grouping field is a dictKey.
|
|
222
|
+
*/
|
|
223
|
+
private readonly dictLabelResolver?;
|
|
224
|
+
private readonly fields;
|
|
225
|
+
constructor(executeRecords: () => readonly unknown[], fields: string | readonly string[], spec: AggregateSpec, upstreams: readonly AggregationUpstream[],
|
|
226
|
+
/**
|
|
227
|
+
* Optional dict label resolver for `<field>Label` projection
|
|
228
|
+
*. Present when the grouping field is a dictKey.
|
|
229
|
+
*/
|
|
230
|
+
dictLabelResolver?: ((key: string, locale: string, fallback?: string | readonly string[]) => Promise<string | undefined>) | undefined);
|
|
231
|
+
/**
|
|
232
|
+
* Execute the query, group, reduce, and return an array of rows.
|
|
233
|
+
*
|
|
234
|
+
* `opts` (query-form MV grouping): when a `locale` + `i18nFields` are
|
|
235
|
+
* given, the declared group-key `i18nText` fields are resolved to that locale
|
|
236
|
+
* at the `mv` layer BEFORE bucketing — so an i18n group key is a stable string
|
|
237
|
+
* instead of a raw `{locale}` map. The MV executor passes the MV's
|
|
238
|
+
* `i18nLocale`/`i18nFields`; ordinary `.run()` callers pass nothing and are
|
|
239
|
+
* unaffected.
|
|
240
|
+
*/
|
|
241
|
+
run(opts?: {
|
|
242
|
+
locale?: string;
|
|
243
|
+
i18nFields?: Record<string, I18nTextDescriptor>;
|
|
244
|
+
}): R[];
|
|
245
|
+
/**
|
|
246
|
+
* Execute the query, group, reduce, and resolve `<field>Label` for
|
|
247
|
+
* each result row when the grouping field is a `dictKey` and a
|
|
248
|
+
* `locale` is provided. Returns `R[]` synchronously when
|
|
249
|
+
* no locale is specified (identical to `.run()`).
|
|
250
|
+
*
|
|
251
|
+
* The `<field>Label` field is appended to each row. Rows whose group
|
|
252
|
+
* key has no dictionary entry get `<field>Label: undefined`.
|
|
253
|
+
*
|
|
254
|
+
* Dict-label resolution is single-field only — multi-key groupings
|
|
255
|
+
* do not produce a `<field>Label`. The resolver is only attached
|
|
256
|
+
* by the builder when `fields.length === 1`.
|
|
257
|
+
*/
|
|
258
|
+
runAsync(opts?: {
|
|
259
|
+
locale?: string;
|
|
260
|
+
fallback?: string | readonly string[];
|
|
261
|
+
}): Promise<R[]>;
|
|
262
|
+
/**
|
|
263
|
+
* Build a reactive `LiveAggregation<R[]>` that re-runs the full
|
|
264
|
+
* group-and-reduce pipeline whenever any upstream source notifies
|
|
265
|
+
* of a change. Same error-isolation and idempotent-stop contract
|
|
266
|
+
* as `Aggregation.live()` — the implementation delegates to the
|
|
267
|
+
* same `LiveAggregationImpl` class by threading a fresh
|
|
268
|
+
* recompute closure through the existing constructor.
|
|
269
|
+
*
|
|
270
|
+
* uses naive full re-run on every change. Incremental
|
|
271
|
+
* per-bucket maintenance (apply `step` on inserted records,
|
|
272
|
+
* `remove` on deleted records, route by bucket key) is a future
|
|
273
|
+
* optimization — the reducer protocol admits it, but wiring
|
|
274
|
+
* delta-aware source subscriptions is a separate PR.
|
|
275
|
+
*
|
|
276
|
+
* Always call `live.stop()` when finished.
|
|
277
|
+
*/
|
|
278
|
+
live(): LiveAggregation<R[]>;
|
|
279
|
+
}
|
|
280
|
+
export {};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @noy-db/hub/aggregate — opt-in aggregation + groupBy service.
|
|
3
|
+
*
|
|
4
|
+
* @category capability
|
|
5
|
+
*
|
|
6
|
+
* Groups every file whose reason-for-existing is record reduction:
|
|
7
|
+
* - `aggregation` (`Aggregation<R>`, `reduceRecords`, `buildLiveAggregation`)
|
|
8
|
+
* - `groupby` (`GroupedQuery`, `GroupedAggregation`, cardinality guards)
|
|
9
|
+
* - `reducers` (`count`, `sum`, `avg`, `min`, `max` factories)
|
|
10
|
+
*
|
|
11
|
+
* The root barrel (`@noy-db/hub`) and the `@noy-db/hub/query` subpath
|
|
12
|
+
* continue to re-export the same symbols for backward compatibility
|
|
13
|
+
* with consumers written before the relocation. New code should
|
|
14
|
+
* prefer this subpath.
|
|
15
|
+
*/
|
|
16
|
+
export { withAggregate } from './active.js';
|
|
17
|
+
export type { AggregateStrategy } from './strategy.js';
|
|
18
|
+
export { Aggregation, reduceRecords, buildLiveAggregation } from './aggregation.js';
|
|
19
|
+
export type { AggregateSpec, AggregateResult, AggregationUpstream, LiveAggregation, } from './aggregation.js';
|
|
20
|
+
export { GroupedQuery, GroupedQueryN, GroupedAggregation, groupAndReduce, resetGroupByWarnings, GROUPBY_WARN_CARDINALITY, GROUPBY_MAX_CARDINALITY, } from './groupby.js';
|
|
21
|
+
export type { GroupedRow, GroupedRowN } from './groupby.js';
|
|
22
|
+
export { count, sum, avg, min, max, moneySum, moneyMin, moneyMax, reducerBuilder } from './reducers.js';
|
|
23
|
+
export type { Reducer, ReducerOptions, ReducerBuilder } from './reducers.js';
|