@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,122 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Secondary indexes for the query DSL.
|
|
3
|
+
*
|
|
4
|
+
* ships **in-memory hash indexes**:
|
|
5
|
+
* - Built during `Collection.ensureHydrated()` from the decrypted cache
|
|
6
|
+
* - Maintained incrementally on `put` and `delete`
|
|
7
|
+
* - Consulted by the query executor for `==` and `in` operators on
|
|
8
|
+
* indexed fields, falling back to a linear scan otherwise
|
|
9
|
+
* - Live entirely in memory — no adapter writes for the index itself
|
|
10
|
+
*
|
|
11
|
+
* Persistent encrypted index blobs (the spec's "store as a separate
|
|
12
|
+
* AES-256-GCM blob" note) are deferred to a follow-up issue. The reasons
|
|
13
|
+
* are documented in the PR body — short version: at the target
|
|
14
|
+
* scale of 1K–50K records, building the index during hydrate is free,
|
|
15
|
+
* so persistence buys nothing measurable.
|
|
16
|
+
*/
|
|
17
|
+
/**
|
|
18
|
+
* Index declaration accepted by `Collection`'s constructor.
|
|
19
|
+
*
|
|
20
|
+
* Accepts:
|
|
21
|
+
* - `string` — a single-field hash index (`'clientId'`)
|
|
22
|
+
* - `{ fields: [...] }` or `readonly string[]` — a composite index
|
|
23
|
+
* over an ordered field tuple. Only lazy-mode
|
|
24
|
+
* collections consume composite declarations today; eager mode
|
|
25
|
+
* silently treats a composite as equivalent to declaring each
|
|
26
|
+
* component field as its own single-field index.
|
|
27
|
+
*
|
|
28
|
+
* Additive variants (unique constraints, partial indexes) will land as
|
|
29
|
+
* further union members without breaking existing declarations.
|
|
30
|
+
*/
|
|
31
|
+
export type IndexDef = string | {
|
|
32
|
+
readonly fields: readonly string[];
|
|
33
|
+
readonly unique?: boolean;
|
|
34
|
+
} | readonly string[];
|
|
35
|
+
/**
|
|
36
|
+
* Internal representation of a built hash index.
|
|
37
|
+
*
|
|
38
|
+
* Maps stringified field values to the set of record ids whose value
|
|
39
|
+
* for that field matches. Stringification keeps the index simple and
|
|
40
|
+
* works uniformly for primitives (`'open'`, `'42'`, `'true'`).
|
|
41
|
+
*
|
|
42
|
+
* Records whose indexed field is `undefined` or `null` are NOT inserted
|
|
43
|
+
* — `query().where('field', '==', undefined)` falls back to a linear
|
|
44
|
+
* scan, which is the conservative behavior.
|
|
45
|
+
*/
|
|
46
|
+
export interface HashIndex {
|
|
47
|
+
readonly field: string;
|
|
48
|
+
readonly buckets: Map<string, Set<string>>;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Container for all indexes on a single collection.
|
|
52
|
+
*
|
|
53
|
+
* Methods are pure with respect to the in-memory `buckets` Map — they
|
|
54
|
+
* never touch the adapter or the keyring. The Collection class owns
|
|
55
|
+
* lifecycle (build on hydrate, maintain on put/delete).
|
|
56
|
+
*/
|
|
57
|
+
export declare class CollectionIndexes {
|
|
58
|
+
private readonly indexes;
|
|
59
|
+
/**
|
|
60
|
+
* Per-field bucket-key canonicalizer (#672 review C1), registered ONCE
|
|
61
|
+
* via {@link setCanonicalizer} when the collection wires indexing up
|
|
62
|
+
* (money-aware via `ViaPipeline.canonicalizeIndexKey`). Consulted by
|
|
63
|
+
* EVERY bucket-mutation site — `build`/`upsert`/`remove` — so bucket
|
|
64
|
+
* membership is symmetric by construction: a value can never be added
|
|
65
|
+
* under a canonical key and later removed under the raw one (or vice
|
|
66
|
+
* versa), which is what stranded ids on `put`/`delete` before this fix.
|
|
67
|
+
*/
|
|
68
|
+
private canonicalize?;
|
|
69
|
+
/**
|
|
70
|
+
* Register the bucket-key canonicalizer. Called once, where the
|
|
71
|
+
* collection constructs its indexing state — safe to call again (the
|
|
72
|
+
* closure is simply replaced) but there is normally only one caller.
|
|
73
|
+
*/
|
|
74
|
+
setCanonicalizer(fn: (field: string, value: unknown) => string | undefined): void;
|
|
75
|
+
/**
|
|
76
|
+
* Declare an index. Subsequent record additions are tracked under it.
|
|
77
|
+
* Calling this twice for the same field is a no-op (idempotent).
|
|
78
|
+
*/
|
|
79
|
+
declare(field: string): void;
|
|
80
|
+
/** True if the given field has a declared index. */
|
|
81
|
+
has(field: string): boolean;
|
|
82
|
+
/** All declared field names, in declaration order. */
|
|
83
|
+
fields(): string[];
|
|
84
|
+
/**
|
|
85
|
+
* Build all declared indexes from a snapshot of records.
|
|
86
|
+
* Called once per hydration. O(N × indexes.size). Buckets through the
|
|
87
|
+
* registered {@link setCanonicalizer} closure, same as `upsert`/`remove`.
|
|
88
|
+
*/
|
|
89
|
+
build<T>(records: ReadonlyArray<{
|
|
90
|
+
id: string;
|
|
91
|
+
record: T;
|
|
92
|
+
}>): void;
|
|
93
|
+
/**
|
|
94
|
+
* Insert or update a single record across all indexes.
|
|
95
|
+
* Called by `Collection.put()` after the encrypted write succeeds.
|
|
96
|
+
*
|
|
97
|
+
* If `previousRecord` is provided, the record is removed from any old
|
|
98
|
+
* buckets first — this is the update path. Pass `null` for fresh adds.
|
|
99
|
+
*/
|
|
100
|
+
upsert<T>(id: string, newRecord: T, previousRecord: T | null): void;
|
|
101
|
+
/**
|
|
102
|
+
* Remove a record from all indexes. Called by `Collection.delete()`
|
|
103
|
+
* (and as the first half of `upsert` for the update path).
|
|
104
|
+
*/
|
|
105
|
+
remove<T>(id: string, record: T): void;
|
|
106
|
+
/** Drop all index data. Called when the collection is invalidated. */
|
|
107
|
+
clear(): void;
|
|
108
|
+
/**
|
|
109
|
+
* Equality lookup: return the set of record ids whose `field` matches
|
|
110
|
+
* the given value. Returns `null` if no index covers the field — the
|
|
111
|
+
* caller should fall back to a linear scan.
|
|
112
|
+
*
|
|
113
|
+
* The returned Set is a reference to the index's internal storage —
|
|
114
|
+
* callers must NOT mutate it.
|
|
115
|
+
*/
|
|
116
|
+
lookupEqual(field: string, value: unknown): ReadonlySet<string> | null;
|
|
117
|
+
/**
|
|
118
|
+
* Set lookup: return the union of record ids whose `field` matches any
|
|
119
|
+
* of the given values. Returns `null` if no index covers the field.
|
|
120
|
+
*/
|
|
121
|
+
lookupIn(field: string, values: readonly unknown[]): ReadonlySet<string> | null;
|
|
122
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @noy-db/hub/indexing — opt-in secondary-index service.
|
|
3
|
+
*
|
|
4
|
+
* @category capability
|
|
5
|
+
*
|
|
6
|
+
* Groups every file whose reason-for-existing is secondary indexes:
|
|
7
|
+
* - `eager-indexes` (in-memory `CollectionIndexes` for eager-mode
|
|
8
|
+
* collections' `.where(f, '==', v)` fast-path)
|
|
9
|
+
* - `persisted-indexes` (lazy-mode `_idx/<field>/<recordId>`
|
|
10
|
+
* side-car mirror with composite / typed-value support)
|
|
11
|
+
* - `lazy-builder` (`LazyQuery<T>` chainable builder that
|
|
12
|
+
* dispatches through the persisted mirror)
|
|
13
|
+
*
|
|
14
|
+
* Hub's root barrel (`@noy-db/hub`) and the `@noy-db/hub/query`
|
|
15
|
+
* subpath continue to re-export `CollectionIndexes` and `IndexDef`
|
|
16
|
+
* for backward compatibility with consumers written before the
|
|
17
|
+
* relocation. New code should prefer this subpath so the
|
|
18
|
+
* capability boundary is explicit in import statements.
|
|
19
|
+
*/
|
|
20
|
+
export { withIndexing } from './active.js';
|
|
21
|
+
export type { IndexStrategy, IndexState } from './strategy.js';
|
|
22
|
+
export { CollectionIndexes } from './eager-indexes.js';
|
|
23
|
+
export type { IndexDef, HashIndex } from './eager-indexes.js';
|
|
24
|
+
export { PersistedCollectionIndex, IDX_PREFIX, COMPOSITE_DELIMITER, encodeIdxId, decodeIdxId, isIdxId, compositeKey, } from './persisted-indexes.js';
|
|
25
|
+
export type { OrderedEntry, IngestRow, PersistedIndexDef, } from './persisted-indexes.js';
|
|
26
|
+
export { LazyQuery } from './lazy-builder.js';
|
|
27
|
+
export type { LazyQuerySource, LazyOrderBy } from './lazy-builder.js';
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lazy-mode query builder.
|
|
3
|
+
*
|
|
4
|
+
* Companion to `Query<T>` in `builder.ts`, but built for collections in lazy
|
|
5
|
+
* mode where `snapshot()` is unavailable — records live in the adapter and
|
|
6
|
+
* are pulled on demand. Dispatches through `PersistedCollectionIndex` to
|
|
7
|
+
* resolve a candidate record-id set, then decrypts only those records.
|
|
8
|
+
*
|
|
9
|
+
* Scope:
|
|
10
|
+
* - `.where(field, '==' | 'in', value)` — dispatched through the index
|
|
11
|
+
* - `.where(field, other-op, value)` — evaluated against the decrypted
|
|
12
|
+
* candidate set (non-indexed ops still require the field to be indexed
|
|
13
|
+
* — we need SOMETHING to scope the candidate set)
|
|
14
|
+
* - `.orderBy(field, dir?)` — dispatched through `orderedBy` when no
|
|
15
|
+
* `==`/`in` clause is present; otherwise applied as an in-memory sort
|
|
16
|
+
* over the candidate set
|
|
17
|
+
* - `.limit(n)` / `.offset(n)` — page slice after filtering
|
|
18
|
+
* - `.toArray()` / `.first()` / `.count()` — terminals
|
|
19
|
+
*
|
|
20
|
+
* Every field referenced by a where or orderBy clause MUST be indexed;
|
|
21
|
+
* otherwise `toArray()` throws `IndexRequiredError`. This is deliberate:
|
|
22
|
+
* silent scan-fallback would hide the very performance cliff that lazy-mode
|
|
23
|
+
* indexes exist to prevent (see `docs/architecture.md` §indexes).
|
|
24
|
+
*/
|
|
25
|
+
import type { FieldClause, Operator } from '../../kernel/query/predicate.js';
|
|
26
|
+
import type { PersistedCollectionIndex } from './persisted-indexes.js';
|
|
27
|
+
import type { QueryField } from '../../kernel/types.js';
|
|
28
|
+
import type { ViaPipeline } from '../../kernel/via/pipeline.js';
|
|
29
|
+
export interface LazyOrderBy {
|
|
30
|
+
readonly field: string;
|
|
31
|
+
readonly direction: 'asc' | 'desc';
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Source abstraction the LazyQuery runs against. Collection implements it.
|
|
35
|
+
* Kept minimal so the builder stays test-friendly.
|
|
36
|
+
*/
|
|
37
|
+
export interface LazyQuerySource<T> {
|
|
38
|
+
readonly collectionName: string;
|
|
39
|
+
readonly persistedIndexes: PersistedCollectionIndex;
|
|
40
|
+
/**
|
|
41
|
+
* Per-field bucket-key canonicalizer (#677 — lazy twin of the eager
|
|
42
|
+
* `candidateRecords()` probe-resolution in `kernel/query/builder.ts`).
|
|
43
|
+
* Consulted in `resolveCandidateIds()` for `==`/`in` clause values
|
|
44
|
+
* BEFORE calling `lookupEqual`/`lookupIn`, so a mixed-era stored value
|
|
45
|
+
* (money) probes the SAME canonical bucket the write path now
|
|
46
|
+
* populates. A narrow closure — not the whole `ViaPipeline` — keeps
|
|
47
|
+
* the with-lookup/kernel seam thin. `undefined` (no via, or no binding
|
|
48
|
+
* covers the field) is the common case: falls back to the raw value,
|
|
49
|
+
* unchanged from today.
|
|
50
|
+
*/
|
|
51
|
+
canonicalizeIndexKey?(field: string, value: unknown): string | undefined;
|
|
52
|
+
/** Ensure `_idx/<field>/*` side-cars have been bulk-loaded into the mirror. */
|
|
53
|
+
ensurePersistedIndexesLoaded(): Promise<void>;
|
|
54
|
+
/**
|
|
55
|
+
* Decrypt one record by id in RAW (pre-`present()`, stored-form) shape,
|
|
56
|
+
* or return null if it's gone (#684 — the raw-fetch seam). Used by the
|
|
57
|
+
* post-filter (`toArray()`) so a `clause.via.evaluate` (e.g. money) sees
|
|
58
|
+
* the same operand/actual-value space as eager's `filterRecords` — the
|
|
59
|
+
* DECODED form (e.g. money's canonical decimal) is only materialized
|
|
60
|
+
* for survivors, via {@link decodeRecord}.
|
|
61
|
+
*/
|
|
62
|
+
getRawRecord(id: string): Promise<unknown>;
|
|
63
|
+
/**
|
|
64
|
+
* Apply this collection's locale/virtual-field decode (`present()`) to a
|
|
65
|
+
* RAW record already known to match — the output-side twin of
|
|
66
|
+
* {@link getRawRecord}. Mirrors eager's `Query.decodeVia`.
|
|
67
|
+
*/
|
|
68
|
+
decodeRecord(record: unknown): Promise<T>;
|
|
69
|
+
/**
|
|
70
|
+
* This collection's compiled Via pipeline (money, i18n, …), read lazily
|
|
71
|
+
* (a method, not a captured value) so a late `_setVia` (#666) is honored
|
|
72
|
+
* — same closure discipline as {@link canonicalizeIndexKey}. `undefined`
|
|
73
|
+
* when the collection has no Via-covered fields.
|
|
74
|
+
*/
|
|
75
|
+
via(): ViaPipeline | undefined;
|
|
76
|
+
}
|
|
77
|
+
interface LazyPlan {
|
|
78
|
+
readonly clauses: readonly FieldClause[];
|
|
79
|
+
readonly orderBy: readonly LazyOrderBy[];
|
|
80
|
+
readonly limit: number | undefined;
|
|
81
|
+
readonly offset: number;
|
|
82
|
+
}
|
|
83
|
+
export declare class LazyQuery<T, S extends keyof T = never, Q extends keyof T & string = never> {
|
|
84
|
+
private readonly source;
|
|
85
|
+
private readonly plan;
|
|
86
|
+
constructor(source: LazyQuerySource<T>, plan?: LazyPlan);
|
|
87
|
+
where<V>(field: QueryField<T, S, Q>, op: Operator, value: V): LazyQuery<T, S, Q>;
|
|
88
|
+
orderBy(field: QueryField<T, S>, direction?: 'asc' | 'desc'): LazyQuery<T, S, Q>;
|
|
89
|
+
limit(n: number): LazyQuery<T, S, Q>;
|
|
90
|
+
offset(n: number): LazyQuery<T, S, Q>;
|
|
91
|
+
toArray(): Promise<T[]>;
|
|
92
|
+
first(): Promise<T | null>;
|
|
93
|
+
count(): Promise<number>;
|
|
94
|
+
/**
|
|
95
|
+
* Resolve the candidate record-id set to decrypt. Returns null when the
|
|
96
|
+
* query has no usable driver — no `==`/`in` clause and no `orderBy`
|
|
97
|
+
* clause that can scope the scan. Callers interpret null as
|
|
98
|
+
* IndexRequiredError (see `toArray`).
|
|
99
|
+
*/
|
|
100
|
+
private resolveCandidateIds;
|
|
101
|
+
}
|
|
102
|
+
export {};
|
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Persistent, encrypted secondary indexes for lazy-mode collections.
|
|
3
|
+
*
|
|
4
|
+
* Parallel to the in-memory `CollectionIndexes` used by eager mode (see
|
|
5
|
+
* `packages/hub/src/query/indexes.ts`): same logical surface, but entries
|
|
6
|
+
* are materialised as encrypted side-car records (`_idx/<field>/<recordId>`)
|
|
7
|
+
* and bulk-loaded into an in-memory mirror on first query.
|
|
8
|
+
*
|
|
9
|
+
* This module only owns the id-namespace convention, the in-memory mirror,
|
|
10
|
+
* and the typed errors. Write-path integration (PR 2 / ), query-planner
|
|
11
|
+
* dispatch (PR 3 / , PR 4 / ), and the rebuild/reconcile utilities
|
|
12
|
+
* (PR 5 / ) live in other files.
|
|
13
|
+
*
|
|
14
|
+
* See the design spec for the full architecture + threat model.
|
|
15
|
+
*/
|
|
16
|
+
/**
|
|
17
|
+
* Reserved id prefix for encrypted index side-car records.
|
|
18
|
+
* Matches the existing `_keyring`, `_ledger_deltas/…`, `_meta/handle`
|
|
19
|
+
* conventions inside a collection's id namespace.
|
|
20
|
+
*/
|
|
21
|
+
export declare const IDX_PREFIX: "_idx/";
|
|
22
|
+
/**
|
|
23
|
+
* Encode the side-car record id for a (field, recordId) pair.
|
|
24
|
+
*
|
|
25
|
+
* Format: `_idx/<field>/<recordId>` — no escaping. Field names may contain
|
|
26
|
+
* dots (for dotted-path access consistent with eager-mode `readPath`);
|
|
27
|
+
* record ids may contain slashes. The first two slash-separated segments
|
|
28
|
+
* are `_idx` and the field; everything after the *second* slash is the
|
|
29
|
+
* record id verbatim.
|
|
30
|
+
*/
|
|
31
|
+
export declare function encodeIdxId(field: string, recordId: string): string;
|
|
32
|
+
/**
|
|
33
|
+
* Decode a side-car id back into `{ field, recordId }`, or `null` if the
|
|
34
|
+
* input is not a well-formed idx id. A well-formed id is:
|
|
35
|
+
* - prefixed with `_idx/`
|
|
36
|
+
* - contains a field segment (non-empty, no slashes)
|
|
37
|
+
* - contains a record-id segment (non-empty, may contain slashes)
|
|
38
|
+
*/
|
|
39
|
+
export declare function decodeIdxId(id: string): {
|
|
40
|
+
field: string;
|
|
41
|
+
recordId: string;
|
|
42
|
+
} | null;
|
|
43
|
+
/**
|
|
44
|
+
* Fast-path predicate for discriminating side-car ids from regular record
|
|
45
|
+
* ids and other reserved namespaces. Used by the hub to filter `list()`
|
|
46
|
+
* results during bulk-load of the in-memory mirror.
|
|
47
|
+
*/
|
|
48
|
+
export declare function isIdxId(id: string): boolean;
|
|
49
|
+
/**
|
|
50
|
+
* Sorted-value entry returned by `orderedBy()`. Mirrors the body shape
|
|
51
|
+
* used by the write path — but `orderedBy` emits them already sorted by
|
|
52
|
+
* `value` in the requested direction. Consumers (PR 4 / ) treat the
|
|
53
|
+
* array as immutable and paginate via a numeric offset.
|
|
54
|
+
*
|
|
55
|
+
* **Note on `value`:** as of, this is the ORIGINAL TYPED
|
|
56
|
+
* value (number, Date, boolean, etc.), not the stringified bucket key.
|
|
57
|
+
* That's what lets range predicates and `orderedBy` compare numerically
|
|
58
|
+
* instead of stumbling into `'10' < '2'` on `String(n)`.
|
|
59
|
+
*/
|
|
60
|
+
export interface OrderedEntry {
|
|
61
|
+
readonly recordId: string;
|
|
62
|
+
readonly value: unknown;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Bulk-load row shape accepted by `ingest()`. The `value` field is the
|
|
66
|
+
* decrypted index body's `value` field verbatim.
|
|
67
|
+
*/
|
|
68
|
+
export interface IngestRow {
|
|
69
|
+
readonly recordId: string;
|
|
70
|
+
readonly value: unknown;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Structured index definition. Single-field indexes carry just a field
|
|
74
|
+
* name; composite indexes carry the ordered list of fields and
|
|
75
|
+
* the synthetic `key` (= fields joined by `COMPOSITE_DELIMITER`) used
|
|
76
|
+
* as the bucket-map key and side-car envelope id segment.
|
|
77
|
+
*/
|
|
78
|
+
export type PersistedIndexDef = {
|
|
79
|
+
readonly kind: 'single';
|
|
80
|
+
readonly field: string;
|
|
81
|
+
readonly key: string;
|
|
82
|
+
} | {
|
|
83
|
+
readonly kind: 'composite';
|
|
84
|
+
readonly fields: readonly string[];
|
|
85
|
+
readonly key: string;
|
|
86
|
+
};
|
|
87
|
+
/**
|
|
88
|
+
* Delimiter used to synthesize a composite-index key from an ordered
|
|
89
|
+
* field list. Intentionally a character that is extremely unusual in
|
|
90
|
+
* JavaScript object keys (`|`) so collision with a literal field name
|
|
91
|
+
* is vanishingly rare in practice. Composite declarations whose field
|
|
92
|
+
* names contain `|` are rejected at declare-time with an explicit
|
|
93
|
+
* error.
|
|
94
|
+
*/
|
|
95
|
+
export declare const COMPOSITE_DELIMITER = "|";
|
|
96
|
+
export declare function compositeKey(fields: readonly string[]): string;
|
|
97
|
+
export declare class PersistedCollectionIndex {
|
|
98
|
+
private readonly indexes;
|
|
99
|
+
private readonly defs;
|
|
100
|
+
/**
|
|
101
|
+
* Per-field bucket-key canonicalizer (#677 — lazy twin of #672's
|
|
102
|
+
* `CollectionIndexes.setCanonicalizer`), registered ONCE via
|
|
103
|
+
* {@link setCanonicalizer} when the collection wires indexing up
|
|
104
|
+
* (money-aware via `ViaPipeline.canonicalizeIndexKey`). Consulted by
|
|
105
|
+
* EVERY bucket-mutation site — `ingest`/`upsert`/`remove` — so bucket
|
|
106
|
+
* membership is symmetric: a legacy non-canonical stored value (e.g.
|
|
107
|
+
* `'0100'`) and a canonical one (`'100'`) land in the SAME bucket,
|
|
108
|
+
* mirroring `eager-indexes.ts`'s `addToIndex`/`removeFromIndex`.
|
|
109
|
+
*/
|
|
110
|
+
private canonicalize?;
|
|
111
|
+
/**
|
|
112
|
+
* Register the bucket-key canonicalizer. Called once, where the
|
|
113
|
+
* collection constructs its indexing state — safe to call again (the
|
|
114
|
+
* closure is simply replaced) but there is normally only one caller.
|
|
115
|
+
*/
|
|
116
|
+
setCanonicalizer(fn: (field: string, value: unknown) => string | undefined): void;
|
|
117
|
+
/**
|
|
118
|
+
* Declare a single-field index. Subsequent `upsert` / `ingest` calls
|
|
119
|
+
* populate the in-memory mirror; calls before `declare` are no-ops
|
|
120
|
+
* (tolerant bulk-load ordering). Idempotent.
|
|
121
|
+
*/
|
|
122
|
+
declare(field: string): void;
|
|
123
|
+
/**
|
|
124
|
+
* Declare a composite (multi-field) index. The synthetic
|
|
125
|
+
* key is `fields.join('|')`; it doubles as the in-memory map key and
|
|
126
|
+
* the `_idx/<key>/<recordId>` side-car field segment. Callers upsert
|
|
127
|
+
* and lookup via the same `key` as single-field indexes, just with a
|
|
128
|
+
* tuple value (JSON-stringified for bucketing).
|
|
129
|
+
*/
|
|
130
|
+
declareComposite(fields: readonly string[]): void;
|
|
131
|
+
/**
|
|
132
|
+
* Every declared index's structured definition. Collection walks this
|
|
133
|
+
* when materialising side-cars on put/delete so it can extract a
|
|
134
|
+
* single-field value or a composite tuple appropriately.
|
|
135
|
+
*/
|
|
136
|
+
definitions(): PersistedIndexDef[];
|
|
137
|
+
/** True if `field` has been declared as indexable on this mirror. */
|
|
138
|
+
has(field: string): boolean;
|
|
139
|
+
/** All declared field names, in declaration order. */
|
|
140
|
+
fields(): string[];
|
|
141
|
+
/**
|
|
142
|
+
* Bulk-load the mirror from decrypted index bodies. Intended to be
|
|
143
|
+
* called once per field after reading the collection's `_idx/<field>/*`
|
|
144
|
+
* side-cars. Safe to call twice with the same rows — bucket Sets
|
|
145
|
+
* deduplicate recordIds. If `field` is not declared, this is a no-op
|
|
146
|
+
* (tolerates the case where bulk-load runs before `declare()` lands).
|
|
147
|
+
*/
|
|
148
|
+
ingest(field: string, rows: readonly IngestRow[]): void;
|
|
149
|
+
/**
|
|
150
|
+
* Incrementally update a record's index entry for one field. Called by
|
|
151
|
+
* `Collection.put()` after the main write succeeds. If
|
|
152
|
+
* `previousValue` is non-null, the record is removed from the old
|
|
153
|
+
* bucket first — this is the update path. Pass `null` for fresh adds.
|
|
154
|
+
* No-op if the field is not declared.
|
|
155
|
+
*/
|
|
156
|
+
upsert(recordId: string, field: string, newValue: unknown, previousValue: unknown): void;
|
|
157
|
+
/**
|
|
158
|
+
* Remove a record from the index for one field. Called by
|
|
159
|
+
* `Collection.delete()`. No-op if the field is not declared or
|
|
160
|
+
* the record isn't in the bucket. Empty buckets are dropped to keep
|
|
161
|
+
* the Map clean.
|
|
162
|
+
*/
|
|
163
|
+
remove(recordId: string, field: string, value: unknown): void;
|
|
164
|
+
/**
|
|
165
|
+
* Drop all bucket data while preserving field declarations. Called on
|
|
166
|
+
* invalidation (incoming sync changes, keyring rotation) — the next
|
|
167
|
+
* query re-populates via `ingest`.
|
|
168
|
+
*/
|
|
169
|
+
clear(): void;
|
|
170
|
+
/**
|
|
171
|
+
* Equality lookup — return the set of record ids whose `field` matches
|
|
172
|
+
* `value`. Returns `null` if the field is not declared (caller falls
|
|
173
|
+
* back to scan or throws `IndexRequiredError`). Returns a shared empty
|
|
174
|
+
* set if the field is declared but no record matches — that set MUST
|
|
175
|
+
* NOT be mutated by the caller.
|
|
176
|
+
*
|
|
177
|
+
* `value` is bucketed via the plain {@link stringifyKey} — it is NOT
|
|
178
|
+
* canonicalized here. Callers on a Via-covered field (money) canonicalize
|
|
179
|
+
* `value` themselves BEFORE calling (see `lazy-builder.ts`'s
|
|
180
|
+
* `resolveCandidateIds()`, #677) — the SAME caller-canonicalizes split
|
|
181
|
+
* `eager-indexes.ts`'s `lookupEqual`/`lookupIn` use (see `kernel/query/
|
|
182
|
+
* builder.ts`'s `candidateRecords()`), so probing here twice never
|
|
183
|
+
* double-canonicalizes.
|
|
184
|
+
*/
|
|
185
|
+
lookupEqual(field: string, value: unknown): ReadonlySet<string> | null;
|
|
186
|
+
/**
|
|
187
|
+
* Set lookup — return the union of record ids whose `field` matches any
|
|
188
|
+
* of `values`. Returns `null` if the field is not declared. Returns a
|
|
189
|
+
* fresh (non-shared) Set — safe for the caller to mutate. Same
|
|
190
|
+
* caller-canonicalizes contract as {@link lookupEqual} (#677).
|
|
191
|
+
*/
|
|
192
|
+
lookupIn(field: string, values: readonly unknown[]): ReadonlySet<string> | null;
|
|
193
|
+
/**
|
|
194
|
+
* Range lookup. Return record ids whose indexed value
|
|
195
|
+
* satisfies the predicate. Comparison happens on the ORIGINAL TYPED
|
|
196
|
+
* value carried in `state.values` — so numeric `<` sorts numerically,
|
|
197
|
+
* not lexicographically on `String(n)`. Returns `null` if the field
|
|
198
|
+
* is not declared.
|
|
199
|
+
*
|
|
200
|
+
* Supported ops: `'<'`, `'<='`, `'>'`, `'>='`, `'between'`. For
|
|
201
|
+
* `'between'`, `value` is `[lo, hi]` and both bounds are inclusive
|
|
202
|
+
* (matches the eager-mode operator contract in `predicate.ts`).
|
|
203
|
+
*
|
|
204
|
+
* NOT canonicalized (#677): this method compares `value` against the
|
|
205
|
+
* ORIGINAL TYPED `state.values`, not a stringified bucket key, so a
|
|
206
|
+
* `canonicalizeIndexKey`-shaped (`string | undefined`) result would not
|
|
207
|
+
* even type-check as a bound here. This does NOT mirror eager mode the
|
|
208
|
+
* way `lookupEqual`/`lookupIn` do: `moneyIndexProbe` (`via/money/
|
|
209
|
+
* where.ts`) never emits a range probe, so EAGER mode's `candidateRecords`
|
|
210
|
+
* never calls an index for a range clause and always scans.
|
|
211
|
+
*
|
|
212
|
+
* LAZY mode's `resolveCandidateIds()` (`lazy-builder.ts`) no longer
|
|
213
|
+
* dispatches a Via-covered (e.g. money) range clause through THIS method
|
|
214
|
+
* at all (#684) — it enumerates the field's indexed ids via `orderedBy()`
|
|
215
|
+
* instead and leaves the raw/typed comparison here for the (now
|
|
216
|
+
* Via-aware) post-filter to redo correctly in scaled-int space. A
|
|
217
|
+
* NON-via range clause still dispatches through this method exactly as
|
|
218
|
+
* before — the raw/typed comparison here is correct and sufficient for
|
|
219
|
+
* fields with no decode-transforming Via binding.
|
|
220
|
+
*/
|
|
221
|
+
lookupRange(field: string, op: '<' | '<=' | '>' | '>=' | 'between', value: unknown): ReadonlySet<string> | null;
|
|
222
|
+
/**
|
|
223
|
+
* Sorted iteration — return every entry on `field` as an
|
|
224
|
+
* `OrderedEntry[]`, sorted by the ORIGINAL TYPED value (no more
|
|
225
|
+
* `'10' < '2'` surprises on numeric fields). Consumers paginate with
|
|
226
|
+
* a numeric offset. `OrderedEntry.value` is the typed value.
|
|
227
|
+
*/
|
|
228
|
+
orderedBy(field: string, dir: 'asc' | 'desc'): readonly OrderedEntry[] | null;
|
|
229
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Strategy seam between core Collection and the optional indexing
|
|
3
|
+
* service. Core imports `IndexStrategy` and `IndexState` as
|
|
4
|
+
* TYPE-ONLY symbols and `NO_INDEXING` as a tiny runtime stub.
|
|
5
|
+
*
|
|
6
|
+
* The heavy classes — `CollectionIndexes`, `PersistedCollectionIndex`,
|
|
7
|
+
* `LazyQuery` — are only instantiated inside the `withIndexing()`
|
|
8
|
+
* factory under `./active.ts`, which in turn is only reachable through
|
|
9
|
+
* the `@noy-db/hub/indexing` subpath export. A consumer that never
|
|
10
|
+
* imports the subpath ships none of those classes in their bundle
|
|
11
|
+
* (ESM tree-shaking + hub's `"sideEffects": false`).
|
|
12
|
+
*
|
|
13
|
+
* @internal
|
|
14
|
+
*/
|
|
15
|
+
import type { CollectionIndexes, IndexDef } from './eager-indexes.js';
|
|
16
|
+
import type { PersistedCollectionIndex } from './persisted-indexes.js';
|
|
17
|
+
/**
|
|
18
|
+
* Per-collection container for whatever mirrors the active strategy
|
|
19
|
+
* decided to materialize. Both accessors may return `null` — they do
|
|
20
|
+
* for `NO_INDEXING`, and `getEagerIndexes` returns null in a
|
|
21
|
+
* lazy-mode collection even when indexing is active (lazy uses the
|
|
22
|
+
* persisted mirror instead).
|
|
23
|
+
*
|
|
24
|
+
* `isEnabled` is a cheap guard so collection code can short-circuit
|
|
25
|
+
* the full indexing path without inspecting either mirror.
|
|
26
|
+
*
|
|
27
|
+
* @internal
|
|
28
|
+
*/
|
|
29
|
+
export interface IndexState {
|
|
30
|
+
readonly isEnabled: boolean;
|
|
31
|
+
getEagerIndexes(): CollectionIndexes | null;
|
|
32
|
+
getPersistedIndexes(): PersistedCollectionIndex | null;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Factory that builds one `IndexState` per Collection. Called exactly
|
|
36
|
+
* once inside each Collection constructor with the declared
|
|
37
|
+
* `IndexDef[]` and the lazy-mode flag (so lazy collections get the
|
|
38
|
+
* persisted mirror and eager collections get the in-memory one).
|
|
39
|
+
*
|
|
40
|
+
* @internal
|
|
41
|
+
*/
|
|
42
|
+
export interface IndexStrategy {
|
|
43
|
+
createState(args: {
|
|
44
|
+
readonly defs: readonly IndexDef[];
|
|
45
|
+
readonly lazy: boolean;
|
|
46
|
+
}): IndexState;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* No-indexing stub. Every Collection defaults to this; it returns a
|
|
50
|
+
* cheap `IndexState` whose mirrors are both `null`. Collection code
|
|
51
|
+
* null-checks both accessors and short-circuits, so no indexing code
|
|
52
|
+
* path runs and the heavy classes never arrive in the bundle.
|
|
53
|
+
*
|
|
54
|
+
* @internal
|
|
55
|
+
*/
|
|
56
|
+
export declare const NO_INDEXING: IndexStrategy;
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* In-memory unique-constraint enforcement for eager-mode collections.
|
|
3
|
+
*
|
|
4
|
+
* Each `UniqueConstraintSet` holds one or more constraints, each covering
|
|
5
|
+
* an ordered tuple of field names. On every `put()` the caller invokes
|
|
6
|
+
* `check()` BEFORE the store write; on success it calls `upsert()` to
|
|
7
|
+
* update the maps. `remove()` is called on `delete()`.
|
|
8
|
+
*
|
|
9
|
+
* Null-distinct semantics: if ANY constrained field is `null` or
|
|
10
|
+
* `undefined` in the record, that record is exempt from the constraint —
|
|
11
|
+
* `keyFor` returns `null` and the record is silently skipped.
|
|
12
|
+
* This matches standard SQL NULL-distinct behavior.
|
|
13
|
+
*
|
|
14
|
+
* Only used in eager mode (`prefetch !== false`). Lazy-mode collections
|
|
15
|
+
* throw at registration instead (see Collection constructor).
|
|
16
|
+
*/
|
|
17
|
+
import type { IndexDef } from './eager-indexes.js';
|
|
18
|
+
export declare class UniqueConstraintSet {
|
|
19
|
+
private readonly collectionName;
|
|
20
|
+
private readonly constraints;
|
|
21
|
+
constructor(collectionName: string, uniqueDefs: readonly (readonly string[])[]);
|
|
22
|
+
get size(): number;
|
|
23
|
+
/**
|
|
24
|
+
* Compute the canonical key for a record under a given constraint.
|
|
25
|
+
* Returns `null` if any constrained field is `null` or `undefined`
|
|
26
|
+
* (the record is exempt — no constraint is checked).
|
|
27
|
+
*/
|
|
28
|
+
private keyFor;
|
|
29
|
+
/**
|
|
30
|
+
* Throw `UniqueConstraintError` if writing `id` with `record` would
|
|
31
|
+
* collide with a DIFFERENT existing record. Call BEFORE the store write.
|
|
32
|
+
*/
|
|
33
|
+
check(id: string, record: unknown): void;
|
|
34
|
+
/**
|
|
35
|
+
* Update the constraint maps after a successful write.
|
|
36
|
+
* Pass `previous` when updating an existing record (so the old key
|
|
37
|
+
* is removed first). Pass `null` or `undefined` for a fresh insert.
|
|
38
|
+
*/
|
|
39
|
+
upsert(id: string, record: unknown, previous?: unknown): void;
|
|
40
|
+
/**
|
|
41
|
+
* Remove a record from all constraint maps.
|
|
42
|
+
* Called by `Collection.delete()`.
|
|
43
|
+
*/
|
|
44
|
+
remove(id: string, record: unknown): void;
|
|
45
|
+
/**
|
|
46
|
+
* Rebuild all constraint maps from a full snapshot.
|
|
47
|
+
* Called after hydration (ensureHydrated / hydrateFromSnapshot).
|
|
48
|
+
*
|
|
49
|
+
* **Last-writer-wins**: this method does NOT validate pre-existing data
|
|
50
|
+
* for duplicates. If the store already contains two records sharing a
|
|
51
|
+
* constrained value (written before the unique index was declared), the
|
|
52
|
+
* last one processed wins the map slot and the duplicate is silently
|
|
53
|
+
* displaced — no error is thrown, and the earlier holder is evicted from
|
|
54
|
+
* the map. Callers retrofitting a unique index onto populated data should
|
|
55
|
+
* run a one-time uniqueness scan before relying on enforcement.
|
|
56
|
+
*/
|
|
57
|
+
build(entries: Iterable<readonly [string, unknown]>): void;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Build the `UniqueConstraintSet` for a collection from its `IndexDef[]`,
|
|
61
|
+
* or return `null` when no `unique: true` index is declared.
|
|
62
|
+
*
|
|
63
|
+
* Unique enforcement is **eager-mode only**. If any `unique` index is
|
|
64
|
+
* declared on a lazy (`prefetch:false`), CRDT, or tiered collection, this
|
|
65
|
+
* throws `UnsupportedIndexOptionError` at registration rather than letting
|
|
66
|
+
* those write paths (which bypass `check()`/`upsert()`) silently skip
|
|
67
|
+
* enforcement. Kept out of the Collection constructor to keep that
|
|
68
|
+
* always-on kernel file lean (kernel-surface invariant).
|
|
69
|
+
*/
|
|
70
|
+
export declare function buildUniqueConstraintSet(collectionName: string, indexes: readonly IndexDef[] | undefined, mode: {
|
|
71
|
+
readonly lazy: boolean;
|
|
72
|
+
readonly crdt: boolean;
|
|
73
|
+
readonly tiered: boolean;
|
|
74
|
+
}): UniqueConstraintSet | null;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Enable the search / retrieval capability.
|
|
3
|
+
* Pass to `createNoydb({ searchStrategy: withSearch() })` to make a collection's
|
|
4
|
+
* `search` / `retrieve` / `similarTo` / `warmIndex` / `flushIndex` methods live,
|
|
5
|
+
* and to enable the put()-time embedding-vector compute for collections that
|
|
6
|
+
* declare an `embeddings` config. The search/retrieval engine is dynamically
|
|
7
|
+
* imported here, so it stays out of the floor bundle until opted in.
|
|
8
|
+
*/
|
|
9
|
+
import type { SearchStrategy } from './strategy.js';
|
|
10
|
+
export declare function withSearch(): SearchStrategy;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { I18nTextDescriptor } from '../../via/i18n/core.js';
|
|
2
|
+
import type { DictKeyDescriptor, StaticDictDescriptor } from '../../via/i18n/dictionary.js';
|
|
3
|
+
import type { IndexDoc } from './inverted-index.js';
|
|
4
|
+
type FieldEntry = IndexDoc['fields'][number];
|
|
5
|
+
export declare function buildStringFieldEntries(record: Record<string, unknown>, textIndexes: readonly string[], only?: readonly string[]): FieldEntry[];
|
|
6
|
+
export declare function buildI18nFieldEntries(record: Record<string, unknown>, i18nFields: Record<string, I18nTextDescriptor>, textIndexes: readonly string[], only?: readonly string[]): FieldEntry[];
|
|
7
|
+
/** label map: field -> (key -> { locale -> label }). Precomputed in the collection (async for dynamic dicts). */
|
|
8
|
+
export declare function buildDictKeyFieldEntries(record: Record<string, unknown>, dictKeyFields: Record<string, DictKeyDescriptor | StaticDictDescriptor>, labelMaps: Map<string, Map<string, Record<string, string>>>, textIndexes: readonly string[], only?: readonly string[]): FieldEntry[];
|
|
9
|
+
/**
|
|
10
|
+
* Blob filenames precomputed in the collection (`field -> filenames[]`, from one
|
|
11
|
+
* async `listSlots()` per record — the heaviest source, see {@link buildBlobFieldEntries}'s
|
|
12
|
+
* caller). Bytes are never tokenized; only the slot `filename` is indexed.
|
|
13
|
+
*/
|
|
14
|
+
export declare function buildBlobFieldEntries(filenamesByField: Map<string, string[]>): FieldEntry[];
|
|
15
|
+
export {};
|