@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,113 @@
|
|
|
1
|
+
import type { Collection } from '../../kernel/collection.js';
|
|
2
|
+
import type { TxContext } from '../../with-commit/tx/transaction.js';
|
|
3
|
+
import type { PutDerivedOutputCtx } from '../../kernel/via/dispatch.js';
|
|
4
|
+
import type { MaterializedViewRegistry, RegisteredMV } from './registry.js';
|
|
5
|
+
import type { MVQueryContext } from './types.js';
|
|
6
|
+
import type { NoydbStore } from '../../kernel/types.js';
|
|
7
|
+
/**
|
|
8
|
+
* Accessor shape passed in from the owning Vault. Provides the
|
|
9
|
+
* registry (used as a stable WeakMap key + to look up MVs by output
|
|
10
|
+
* collection) and the runtime context the lazy refresh needs.
|
|
11
|
+
* Mirrors v1's `DerivationStaleAccessor`.
|
|
12
|
+
*/
|
|
13
|
+
export interface MVStaleAccessor {
|
|
14
|
+
registry(): MaterializedViewRegistry;
|
|
15
|
+
getCollection(name: string): Collection<any>;
|
|
16
|
+
getActiveTxContext(): TxContext | null;
|
|
17
|
+
getQueryContext(): MVQueryContext;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Mark an MV as stale. Called from `Collection.dispatchMaterializedViews`
|
|
21
|
+
* when a source-write fires for a `refresh: 'lazy'` MV.
|
|
22
|
+
*
|
|
23
|
+
* @internal
|
|
24
|
+
*/
|
|
25
|
+
export declare function markMVStale(registry: MaterializedViewRegistry, mvName: string): void;
|
|
26
|
+
/**
|
|
27
|
+
* Test-only: check whether a given MV name is currently flagged stale
|
|
28
|
+
* against a registry. Exported so the regression suite can pin the
|
|
29
|
+
* stale-bit lifecycle without touching the internal `WeakMap`.
|
|
30
|
+
*
|
|
31
|
+
* @internal
|
|
32
|
+
*/
|
|
33
|
+
export declare function isMVStale(registry: MaterializedViewRegistry, mvName: string): boolean;
|
|
34
|
+
/**
|
|
35
|
+
* Reserved collection holding CONTENT-FREE lazy-stale markers (record id =
|
|
36
|
+
* MV name, plaintext `_iv: ''` envelope, no payload) — mirrors the
|
|
37
|
+
* `_meta`/schema-fence marker envelope shape. Written only from the
|
|
38
|
+
* delete/forget/elevate dispatcher (#736); ordinary source writes stay
|
|
39
|
+
* in-memory-only (the cheap path). Read via the adapter directly, never
|
|
40
|
+
* through `vault.collection()` — same reserved-collection convention as
|
|
41
|
+
* `_subject_index`/`_meta`.
|
|
42
|
+
*/
|
|
43
|
+
export declare const MV_STALE_COLLECTION = "_mv_stale";
|
|
44
|
+
/**
|
|
45
|
+
* Invalidate an MV from the delete/forget/elevate dispatcher (#736) — the ordinary
|
|
46
|
+
* source-write path (`dispatchMaterializedViews`) never calls this. Deletes EVERY
|
|
47
|
+
* persisted row in `reg.outputCollection` via `_internalDelete` (the at-rest law: a
|
|
48
|
+
* stale mark alone leaves the elevated/forgotten source's plaintext sitting in the
|
|
49
|
+
* output row) using the adapter directly so the read-path's `resolveStaleMVOnRead`
|
|
50
|
+
* isn't triggered mid-invalidation. `mode: 'lazy'` also persists the stale mark so a
|
|
51
|
+
* cold session recomputes on next read; `'manual'` gets the purge only — the MV
|
|
52
|
+
* serves empty until an explicit `vault.refreshView()` (erasure wins). Deletion is
|
|
53
|
+
* stamp-scoped (`_materializedFrom.mvName === reg.spec.name` — see the loop below),
|
|
54
|
+
* so another registered MV sharing this output collection keeps its own rows intact:
|
|
55
|
+
* no cross-MV re-marking is needed here, only `reg` itself is marked stale.
|
|
56
|
+
*
|
|
57
|
+
* Returns the count of rows actually `_internalDelete`d (#761 item 1) — folded by the
|
|
58
|
+
* caller into `dispatchMaterializedViewsOnDelete`'s `deleted` so `ForgetResult.derivedRecordsErased`
|
|
59
|
+
* counts lazy/manual purges too, not just the eager executor's tombstone leg — plus
|
|
60
|
+
* `residueUndecodable`, the bare ids whose ownership stamp could NOT be decoded (#776): a
|
|
61
|
+
* candidate row that fails to decode under the collection's default DEK (e.g. elevated above
|
|
62
|
+
* tier 0 on a tiered output collection) has UNKNOWN ownership — it might be this MV's own
|
|
63
|
+
* output, or (same-collection shape) a plain user record — so it is never erased, but it must
|
|
64
|
+
* be SURFACED rather than silently skipped (the #724 posture), since it may still hold the
|
|
65
|
+
* forgotten/pre-elevation contribution, decryptable by tier-holders — and `residueDeclined`
|
|
66
|
+
* (#785), the bare ids that DID decode and stamp-match but whose `_internalDelete` declined
|
|
67
|
+
* (ownership CONFIRMED, erasure declined).
|
|
68
|
+
*
|
|
69
|
+
* @internal
|
|
70
|
+
*/
|
|
71
|
+
export declare function invalidateMVAtRest(accessor: MVStaleAccessor, reg: RegisteredMV, mode: 'lazy' | 'manual'): Promise<{
|
|
72
|
+
deleted: number;
|
|
73
|
+
residueUndecodable: string[];
|
|
74
|
+
residueDeclined: string[];
|
|
75
|
+
}>;
|
|
76
|
+
/**
|
|
77
|
+
* Called from `Collection.get` (and any reader that materializes the
|
|
78
|
+
* MV's output collection). If any MV producing `outputCollection` is
|
|
79
|
+
* flagged stale, runs the executor against the live source state
|
|
80
|
+
* before returning. No-op when there is no pending work — keeps the
|
|
81
|
+
* read fast path negligible.
|
|
82
|
+
*
|
|
83
|
+
* `dispatchCtx` (#641): threaded from the calling `Collection`'s
|
|
84
|
+
* `#dispatchCtx({ collection: outputCollection, id: 'resolve-on-read' })` — a read has no
|
|
85
|
+
* real "reacting write" record, so `'resolve-on-read'` is the sentinel id, mirroring
|
|
86
|
+
* `Vault.refreshView()`'s `'refreshView'` sentinel for the same reason. Passed straight
|
|
87
|
+
* through to the executor so a stale row whose output lands in a closed period follows the
|
|
88
|
+
* frozen-output rule (skip + `derivation:skipped-frozen`, #637) instead of throwing
|
|
89
|
+
* `PeriodClosedError` out of a read.
|
|
90
|
+
*
|
|
91
|
+
* Dynamic-imports the executor only when a stale flag actually fires
|
|
92
|
+
* (the floor-bundle isolation pattern v1 derivations established in
|
|
93
|
+
* floor-bundle isolation pattern).
|
|
94
|
+
*/
|
|
95
|
+
export declare function resolveStaleMVOnRead(accessor: MVStaleAccessor, outputCollection: string, dispatchCtx?: PutDerivedOutputCtx): Promise<void>;
|
|
96
|
+
/**
|
|
97
|
+
* Drop every stale flag for a registry. Used after a manual
|
|
98
|
+
* `vault.refreshView(name)` runs the executor explicitly — the
|
|
99
|
+
* post-refresh state matches the registered strategies, so
|
|
100
|
+
* lingering stale bits would force a redundant refresh on the next
|
|
101
|
+
* read.
|
|
102
|
+
*
|
|
103
|
+
* @internal
|
|
104
|
+
*/
|
|
105
|
+
export declare function clearMVStale(registry: MaterializedViewRegistry, mvName: string): void;
|
|
106
|
+
/**
|
|
107
|
+
* `clearMVStale` plus the persisted marker (#736) — `Vault.refreshView()`'s
|
|
108
|
+
* completion path. A lingering persisted marker after a manual refresh would
|
|
109
|
+
* make the NEXT cold session recompute redundantly.
|
|
110
|
+
*
|
|
111
|
+
* @internal
|
|
112
|
+
*/
|
|
113
|
+
export declare function clearMVStaleFully(adapter: NoydbStore, vault: string, registry: MaterializedViewRegistry, mvName: string): Promise<void>;
|
|
@@ -0,0 +1,318 @@
|
|
|
1
|
+
import type { Query } from '../../kernel/query/builder.js';
|
|
2
|
+
import type { Collection } from '../../kernel/collection.js';
|
|
3
|
+
import type { AggregateSpec, Aggregation } from '../../with-lookup/aggregate/aggregation.js';
|
|
4
|
+
import type { GroupedAggregation } from '../../with-lookup/aggregate/groupby.js';
|
|
5
|
+
import type { JoinStrategy } from '../../kernel/query/join.js';
|
|
6
|
+
import type { MoneyDescriptor } from '../../via/money/descriptor.js';
|
|
7
|
+
import type { I18nTextDescriptor } from '../../via/i18n/core.js';
|
|
8
|
+
/**
|
|
9
|
+
* Minimal vault-shaped accessor passed to the MV `query()` callback.
|
|
10
|
+
* Defined as a structural interface so the strategy types don't have
|
|
11
|
+
* to import the full `Vault` class (avoids a circular import). The
|
|
12
|
+
* Vault implements this shape natively.
|
|
13
|
+
*/
|
|
14
|
+
export interface MVQueryContext {
|
|
15
|
+
collection<T extends Record<string, unknown>>(name: string): Collection<T>;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Metadata that travels inside the `_data` payload of a materialized
|
|
19
|
+
* row. Lives in encrypted payload, not in the unencrypted envelope —
|
|
20
|
+
* the storage backend cannot infer the MV graph from listing.
|
|
21
|
+
*
|
|
22
|
+
* Extends the `_derivedFrom` precedent from v1: same encryption shape,
|
|
23
|
+
* same "metadata-inside-data" location.
|
|
24
|
+
*/
|
|
25
|
+
export interface MaterializedFromMeta {
|
|
26
|
+
/** Stable identity for the MV that emitted this row. */
|
|
27
|
+
readonly mvName: string;
|
|
28
|
+
/**
|
|
29
|
+
* SHA-256 of (mvName + canonical query plan + dependency-set).
|
|
30
|
+
* Changes when the query structure changes → forces refresh on
|
|
31
|
+
* next visit (parallels v1's `strategyHash`).
|
|
32
|
+
*/
|
|
33
|
+
readonly queryHash: string;
|
|
34
|
+
/**
|
|
35
|
+
* Map from source collection name → `_v` of the source row(s) that
|
|
36
|
+
* contributed to this MV row at materialization time. For aggregates
|
|
37
|
+
* over many rows, this is `max(_v)` per source collection — coarse
|
|
38
|
+
* but sufficient for stale detection.
|
|
39
|
+
*/
|
|
40
|
+
readonly sourceVersions: Record<string, number>;
|
|
41
|
+
/** ISO timestamp when this row was materialized. */
|
|
42
|
+
readonly materializedAt: string;
|
|
43
|
+
}
|
|
44
|
+
/** Output routing for an MV. Optional — when omitted, writes to a collection named after `name`. */
|
|
45
|
+
export interface MaterializedViewOutput {
|
|
46
|
+
/** Output collection name. Defaults to `name`. */
|
|
47
|
+
collection?: string;
|
|
48
|
+
/**
|
|
49
|
+
* For same-collection-as-source MVs — see § Same-collection partition
|
|
50
|
+
* discriminator in the v2 spec. The cycle detector resolves the
|
|
51
|
+
* same-collection edge IFF the query has a where-clause that
|
|
52
|
+
* provably excludes `partition.value` (supports `==` against a
|
|
53
|
+
* different value, `!=` against the value, and `in` lists that
|
|
54
|
+
* don't contain it). Naïve same-collection MVs without a disjoint
|
|
55
|
+
* clause throw `MaterializedViewCycleError` at vault open.
|
|
56
|
+
*/
|
|
57
|
+
partition?: {
|
|
58
|
+
field: string;
|
|
59
|
+
value: unknown;
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* One arm of a UNION materialized view. Reads rows from `collection`,
|
|
64
|
+
* then maps each into the MV's row shape via `map`.
|
|
65
|
+
*
|
|
66
|
+
* The per-source `map` is the schema-unification boundary — sibling
|
|
67
|
+
* collections can have different schemas, and `map` is where they
|
|
68
|
+
* meet the MV's row type. The hub does NOT compare schemas across
|
|
69
|
+
* arms; consumer responsibility is that every arm's `map` returns
|
|
70
|
+
* the same shape (the strategy's `TRow` type parameter enforces this
|
|
71
|
+
* at compile time).
|
|
72
|
+
*/
|
|
73
|
+
export interface UnionSource<TRow extends Record<string, unknown>> {
|
|
74
|
+
/** Source collection name. Must exist in the vault. */
|
|
75
|
+
readonly collection: string;
|
|
76
|
+
/**
|
|
77
|
+
* Pure function from a source row to the unified MV row shape.
|
|
78
|
+
* Called once per source row at materialization time. Each arm's
|
|
79
|
+
* mapped output is concatenated into a single stream before
|
|
80
|
+
* `groupBy` + `aggregate` run.
|
|
81
|
+
*
|
|
82
|
+
* Returning `null` or `undefined` **omits** the source row from the
|
|
83
|
+
* materialized output entirely — the row is not pushed into the
|
|
84
|
+
* unified stream and never reaches `groupBy` / `aggregate`. This
|
|
85
|
+
* removes the need for sentinel rows (e.g. `{ amount: 0 }`) whose
|
|
86
|
+
* sole purpose is to be aggregated away.
|
|
87
|
+
*
|
|
88
|
+
* When this arm declares {@link join}, the aliased right-side
|
|
89
|
+
* record(s) are attached to the source row under each leg's `as`
|
|
90
|
+
* BEFORE `map` runs, so `map` can read `sourceRow[leg.as]`.
|
|
91
|
+
*/
|
|
92
|
+
readonly map: (sourceRow: Record<string, unknown>) => TRow | null | undefined;
|
|
93
|
+
/**
|
|
94
|
+
* Optional FK joins to apply to this arm's rows before {@link map}.
|
|
95
|
+
* Each leg resolves a `ref()`-declared foreign key on the arm's
|
|
96
|
+
* source collection into an attached right-side record under
|
|
97
|
+
* `as` — the same machinery as the query-form `Query.join()`.
|
|
98
|
+
*
|
|
99
|
+
* The right-side collections must be listed in the strategy's
|
|
100
|
+
* {@link MaterializedViewStrategy.sources} so writes to them trigger
|
|
101
|
+
* MV refresh — registration throws `MaterializedViewConfigError`
|
|
102
|
+
* otherwise (the union dependency set comes from arm `collection`s
|
|
103
|
+
* alone, which would not include join targets).
|
|
104
|
+
*/
|
|
105
|
+
readonly join?: ReadonlyArray<UnionArmJoin>;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* One FK join leg on a UNION arm. Mirrors the option shape of the
|
|
109
|
+
* query-form `Query.join(field, { as, maxRows?, strategy? })`.
|
|
110
|
+
*/
|
|
111
|
+
export interface UnionArmJoin {
|
|
112
|
+
/** FK field on the arm's source collection (must have a `ref()` declared). */
|
|
113
|
+
readonly field: string;
|
|
114
|
+
/** Alias under which the resolved right-side record attaches on the source row. */
|
|
115
|
+
readonly as: string;
|
|
116
|
+
/** Per-side row ceiling override. `undefined` → the join default. */
|
|
117
|
+
readonly maxRows?: number;
|
|
118
|
+
/** Planner strategy override. `undefined` → auto-select. */
|
|
119
|
+
readonly strategy?: JoinStrategy;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Registration shape passed to `withMaterializedView()`.
|
|
123
|
+
*
|
|
124
|
+
* @typeParam TRow - the materialized row type (the query's result row)
|
|
125
|
+
*/
|
|
126
|
+
export interface MaterializedViewStrategy<TRow extends Record<string, unknown>> {
|
|
127
|
+
/**
|
|
128
|
+
* Stable identity for this view. Used as the output collection name
|
|
129
|
+
* unless `output.collection` overrides. Must be unique within the vault.
|
|
130
|
+
*/
|
|
131
|
+
name: string;
|
|
132
|
+
/**
|
|
133
|
+
* Declared query (single-source mode). Called at registration time
|
|
134
|
+
* with a vault-shaped accessor so the closure can compose collections
|
|
135
|
+
* without pre-existing in-scope references; called again at each
|
|
136
|
+
* refresh.
|
|
137
|
+
*
|
|
138
|
+
* Built via the same `Query<T>` chainable builder used elsewhere —
|
|
139
|
+
* `.where()`, `.join()`, `.groupBy()`, `.aggregate()`. The
|
|
140
|
+
* dependency analyzer walks the returned plan to determine source
|
|
141
|
+
* collections.
|
|
142
|
+
*
|
|
143
|
+
* Mutually exclusive with {@link unionSources}: a strategy must
|
|
144
|
+
* declare exactly one of `query` (single-source) or `unionSources`
|
|
145
|
+
* (multi-source UNION). Registration throws
|
|
146
|
+
* `MaterializedViewConfigError` if both are set or neither is set.
|
|
147
|
+
*/
|
|
148
|
+
query?: (db: MVQueryContext) => Query<TRow> | Aggregation<TRow> | GroupedAggregation<TRow>;
|
|
149
|
+
/**
|
|
150
|
+
* UNION-form sources: an explicit list of sibling collections
|
|
151
|
+
* that contribute rows to a single MV. Each arm's `map` projects a
|
|
152
|
+
* source row into the MV's unified row shape; the mapped streams are
|
|
153
|
+
* concatenated, then {@link groupBy} + {@link aggregate} run on the
|
|
154
|
+
* combined output.
|
|
155
|
+
*
|
|
156
|
+
* Mutually exclusive with {@link query}. Registration throws
|
|
157
|
+
* `MaterializedViewConfigError` if both are set, if `unionSources`
|
|
158
|
+
* is empty, or if two arms name the same `collection`.
|
|
159
|
+
*
|
|
160
|
+
* A SINGLE arm is valid: it expresses map→group→aggregate
|
|
161
|
+
* over one collection with a COMPUTED bucket key (e.g. a month
|
|
162
|
+
* sliced from a date field). The query form's `.groupBy()` accepts
|
|
163
|
+
* stored field names only, so a derived key needs the arm's `map`.
|
|
164
|
+
*
|
|
165
|
+
* UNION mode replaces the dependency-analyzer path: the source
|
|
166
|
+
* collections come directly from `unionSources[].collection`, and
|
|
167
|
+
* {@link sources} is ignored.
|
|
168
|
+
*/
|
|
169
|
+
unionSources?: ReadonlyArray<UnionSource<TRow>>;
|
|
170
|
+
/**
|
|
171
|
+
* Group-key field(s) for UNION mode. Applied to the
|
|
172
|
+
* concatenated mapped-row stream from {@link unionSources} before
|
|
173
|
+
* {@link aggregate} runs. Accepts a single field name or a tuple of
|
|
174
|
+
* field names for multi-key grouping (same shape as
|
|
175
|
+
* `Query.groupBy(...fields)`).
|
|
176
|
+
*
|
|
177
|
+
* UNION-mode only. Ignored if {@link query} is set — single-source
|
|
178
|
+
* grouping is expressed inside the `Query<T>` returned from `query()`
|
|
179
|
+
* via `.groupBy(...).aggregate(...)`.
|
|
180
|
+
*/
|
|
181
|
+
groupBy?: string | ReadonlyArray<string>;
|
|
182
|
+
/**
|
|
183
|
+
* Aggregation spec for UNION mode. Applied per-group after
|
|
184
|
+
* {@link groupBy} buckets the concatenated mapped-row stream from
|
|
185
|
+
* {@link unionSources}. Same shape as the `AggregateSpec` passed to
|
|
186
|
+
* `Query.aggregate()`.
|
|
187
|
+
*
|
|
188
|
+
* UNION-mode only. Ignored if {@link query} is set.
|
|
189
|
+
*/
|
|
190
|
+
aggregate?: AggregateSpec;
|
|
191
|
+
/**
|
|
192
|
+
* Money descriptors for the UNION-mode aggregate, keyed by the
|
|
193
|
+
* OUTPUT/intermediate field name as it appears in the mapped row and
|
|
194
|
+
* in {@link aggregate} (NOT the source collection's field name). When
|
|
195
|
+
* declared, any `sum` / `min` / `max` over a keyed field is rewritten
|
|
196
|
+
* into an exact per-currency BigInt reducer — without this, money
|
|
197
|
+
* aggregation in UNION mode silently runs in float (since the
|
|
198
|
+
* concatenated mapped stream is a plain array with no collection
|
|
199
|
+
* money context to inherit).
|
|
200
|
+
*
|
|
201
|
+
* UNION-mode only — the query form inherits its money descriptors
|
|
202
|
+
* from the source collection automatically. The descriptor's
|
|
203
|
+
* currency/scale must match what the arms' `map()` emits for that
|
|
204
|
+
* field (each arm maps into the same unified shape, so one descriptor
|
|
205
|
+
* per output field covers all arms). Meaningless without
|
|
206
|
+
* {@link aggregate}; registration throws `MaterializedViewConfigError`
|
|
207
|
+
* if declared alone.
|
|
208
|
+
*/
|
|
209
|
+
moneyFields?: Record<string, MoneyDescriptor>;
|
|
210
|
+
/**
|
|
211
|
+
* Compute-time i18n resolution locale (`mv` layer). UNION-mode only.
|
|
212
|
+
*
|
|
213
|
+
* An MV that **groups by** an `i18nText` field would otherwise bucket on the
|
|
214
|
+
* raw `{ locale: string }` map — an unstable object key. Set `i18nLocale`
|
|
215
|
+
* (with {@link i18nFields} describing those fields) and, before grouping, the
|
|
216
|
+
* executor resolves each declared i18n group-key field to this locale at the
|
|
217
|
+
* `mv` layer (`resolvePolicy(onMissing, 'mv')`), so buckets are stable strings.
|
|
218
|
+
*
|
|
219
|
+
* This is the **compute** path only: i18n fields *carried through* for display
|
|
220
|
+
* stay raw — declare them on the OUTPUT collection and they resolve per-reader
|
|
221
|
+
* at read time (the resolve-at-output model). Without `i18nLocale`, grouping by
|
|
222
|
+
* a raw i18n field throws `LocaleNotSpecifiedError` (steer: group by a
|
|
223
|
+
* `dictKey`/`staticDict` code — the stable key — and label at read).
|
|
224
|
+
*
|
|
225
|
+
* Query-form MVs do their own `groupBy` inside the `Query`, which carries no
|
|
226
|
+
* locale yet — so `i18nLocale` /
|
|
227
|
+
* `i18nFields` on a query-form MV throw `MaterializedViewConfigError`.
|
|
228
|
+
*/
|
|
229
|
+
i18nLocale?: string;
|
|
230
|
+
/**
|
|
231
|
+
* i18n descriptors for UNION-mode compute, keyed by the OUTPUT field
|
|
232
|
+
* name as it appears in the mapped row (NOT the source field). Mirrors
|
|
233
|
+
* {@link moneyFields}: the concatenated mapped stream is a plain array with no
|
|
234
|
+
* collection i18n context, so the descriptor (carrying `onMissing`/`substitute`
|
|
235
|
+
* /`fallback`) must be declared here for the `mv`-layer resolution that
|
|
236
|
+
* {@link i18nLocale} drives. Meaningless without `i18nLocale`.
|
|
237
|
+
*/
|
|
238
|
+
i18nFields?: Record<string, I18nTextDescriptor>;
|
|
239
|
+
/**
|
|
240
|
+
* Pure function from a materialized row → stable id used in the
|
|
241
|
+
* output collection. Required — explicit always beats default-with-pitfalls
|
|
242
|
+
* (explicit always beats default-with-pitfalls; see the slash-collision rationale).
|
|
243
|
+
*/
|
|
244
|
+
rowKey: (row: TRow) => string;
|
|
245
|
+
/**
|
|
246
|
+
* Explicit source collections. Required when `query()` returns
|
|
247
|
+
* an `Aggregation` or `GroupedAggregation` rather than a `Query<T>`
|
|
248
|
+
* — the dependency analyzer can't introspect through `groupBy().aggregate()`
|
|
249
|
+
* back to the source. Optional for plain `Query<T>` results — the
|
|
250
|
+
* analyzer extracts dependencies automatically from the query plan.
|
|
251
|
+
*
|
|
252
|
+
* When set, takes precedence over auto-analysis.
|
|
253
|
+
*/
|
|
254
|
+
sources?: ReadonlyArray<string>;
|
|
255
|
+
/**
|
|
256
|
+
* Declared deterministic predicates. Each entry pairs a
|
|
257
|
+
* consumer-stable `hash` with a function. The `query()` callback's
|
|
258
|
+
* Query<T> can invoke them via `.wherePredicate(name, ctx?)`. The
|
|
259
|
+
* predicate's `hash` + a canonical-JSON hash of `ctx` both fold
|
|
260
|
+
* into `queryHash` — bumping either forces refresh on next visit.
|
|
261
|
+
*
|
|
262
|
+
* Consumer responsibility: bump `hash` when the function's semantics
|
|
263
|
+
* change. Failing to bump after a non-equivalent change leaves
|
|
264
|
+
* stale rows around until the next explicit refresh.
|
|
265
|
+
*/
|
|
266
|
+
predicates?: {
|
|
267
|
+
[name: string]: {
|
|
268
|
+
hash: string;
|
|
269
|
+
fn: (row: TRow, ctx?: unknown) => boolean;
|
|
270
|
+
};
|
|
271
|
+
};
|
|
272
|
+
/**
|
|
273
|
+
* Refresh policy.
|
|
274
|
+
*
|
|
275
|
+
* - `'eager'` — re-materialize synchronously inside the source-write
|
|
276
|
+
* transaction (composes with `withTransactions` for strict-mode
|
|
277
|
+
* rollback).
|
|
278
|
+
* - `'lazy'` — mark stale on source-change; materialize on first
|
|
279
|
+
* read of the MV.
|
|
280
|
+
* - `'manual'` — only materializes when `vault.refreshView(name)` is
|
|
281
|
+
* called. Useful for very expensive MVs or time-dependent queries
|
|
282
|
+
* whose `ctx` changes externally.
|
|
283
|
+
*/
|
|
284
|
+
refresh: 'eager' | 'lazy' | 'manual';
|
|
285
|
+
/** Output routing. Optional; defaults to writing the collection named after `name`. */
|
|
286
|
+
output?: MaterializedViewOutput;
|
|
287
|
+
/**
|
|
288
|
+
* What to do when a re-materialization produces zero rows for a key
|
|
289
|
+
* that previously had rows.
|
|
290
|
+
*
|
|
291
|
+
* - `'delete'` (default) — tombstone the prior MV row via
|
|
292
|
+
* `Collection._internalDelete` (system housekeeping bypasses user
|
|
293
|
+
* `onDelete` guards on the output collection — the housekeeping
|
|
294
|
+
* bypass composition fix).
|
|
295
|
+
* - `'keep'` — leave the prior MV row in place. Useful when zero
|
|
296
|
+
* is a meaningful state.
|
|
297
|
+
*/
|
|
298
|
+
onEmpty?: 'delete' | 'keep';
|
|
299
|
+
/**
|
|
300
|
+
* `true` re-throws on any row-write failure → composes with
|
|
301
|
+
* `withTransactions` to roll back the source-write atomically via
|
|
302
|
+
* `revertExecuted`. Default `false` (failed rows are
|
|
303
|
+
* isolated; other rows commit).
|
|
304
|
+
*/
|
|
305
|
+
strict?: boolean;
|
|
306
|
+
/**
|
|
307
|
+
* Row-count ceiling for the materialized output. Throws
|
|
308
|
+
* `MaterializedViewTooLargeError` before any writes when exceeded
|
|
309
|
+
* — keeps the rollback clean. Default `100_000`; override per-MV
|
|
310
|
+
* when the domain warrants it.
|
|
311
|
+
*/
|
|
312
|
+
maxRows?: number;
|
|
313
|
+
}
|
|
314
|
+
/** Returned by `withMaterializedView()` and consumed by `createNoydb`. */
|
|
315
|
+
export interface MaterializedViewStrategyHandle {
|
|
316
|
+
readonly __noydb_strategy: 'materialized-view';
|
|
317
|
+
readonly spec: MaterializedViewStrategy<any>;
|
|
318
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { MaterializedViewStrategy, MaterializedViewStrategyHandle } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Register a materialized view: a declared query whose result is
|
|
4
|
+
* persisted as a queryable collection and kept fresh as sources
|
|
5
|
+
* change. Writes go through the standard `Collection.put` pipeline;
|
|
6
|
+
* refresh-driven deletes route through `Collection._internalDelete` so
|
|
7
|
+
* user `onDelete` guards on the output collection aren't tripped by
|
|
8
|
+
* housekeeping.
|
|
9
|
+
*
|
|
10
|
+
* Two registration modes:
|
|
11
|
+
* - **single-source** — declare `query: (db) => Query<TRow>`; the
|
|
12
|
+
* dependency analyzer derives source collections from the plan.
|
|
13
|
+
* - **UNION** — declare `unionSources: [{ collection, map }, ...]`
|
|
14
|
+
* plus optional `groupBy` + `aggregate`; the executor reads each
|
|
15
|
+
* arm, maps to the unified row shape, concatenates, then groups
|
|
16
|
+
* and aggregates.
|
|
17
|
+
*
|
|
18
|
+
* The two modes are mutually exclusive — exactly one of `query` /
|
|
19
|
+
* `unionSources` must be set at registration time.
|
|
20
|
+
*
|
|
21
|
+
* See docs/superpowers/specs/2026-05-20-dim14-mv-v2-design.md (single-source v2)
|
|
22
|
+
* and docs/superpowers/specs/2026-05-21-dim14-mv-multikey-and-union.md (UNION).
|
|
23
|
+
*/
|
|
24
|
+
export declare function withMaterializedView<TRow extends Record<string, unknown>>(spec: MaterializedViewStrategy<TRow>): MaterializedViewStrategyHandle;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { withOverlayedView } from './with-overlayed-view.js';
|
|
2
|
+
export { OverlayedViewRegistry } from './registry.js';
|
|
3
|
+
export { OverlayedCollection } from './virtual-collection.js';
|
|
4
|
+
export type { OverlayedViewStrategy, OverlayedViewStrategyHandle, OverlayFieldMergeRule, OverlayFieldMergeMode, } from './types.js';
|
|
5
|
+
export { OverlayBaseIsVirtualError, OverlayCollectionUnavailableError, OverlayNameCollisionError, OverlayIdMismatchError, } from '../../kernel/errors.js';
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { MaterializedViewRegistry } from '../materialized-views/registry.js';
|
|
2
|
+
import type { OverlayedViewStrategy } from './types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Vault-internal registry of overlay strategies. Resolves the base
|
|
5
|
+
* MV's `rowKey` lazily so virtual-collection writes can derive ids
|
|
6
|
+
* from the row.
|
|
7
|
+
*
|
|
8
|
+
* @internal
|
|
9
|
+
*/
|
|
10
|
+
export declare class OverlayedViewRegistry {
|
|
11
|
+
private readonly _byName;
|
|
12
|
+
/**
|
|
13
|
+
* Register an overlay. Validates name uniqueness, base concreteness,
|
|
14
|
+
* and overlay availability AGAINST the MV registry — overlays
|
|
15
|
+
* declared without the MV registry context skip cross-registry
|
|
16
|
+
* checks but still validate self-consistency.
|
|
17
|
+
*/
|
|
18
|
+
register(spec: OverlayedViewStrategy, options: {
|
|
19
|
+
isOverlayName?: (name: string) => boolean;
|
|
20
|
+
isMVOutput?: (name: string) => boolean;
|
|
21
|
+
isKnownCollection?: (name: string) => boolean;
|
|
22
|
+
}): void;
|
|
23
|
+
byName(name: string): OverlayedViewStrategy | undefined;
|
|
24
|
+
/** All overlay virtual names. */
|
|
25
|
+
names(): ReadonlySet<string>;
|
|
26
|
+
isOverlay(name: string): boolean;
|
|
27
|
+
/**
|
|
28
|
+
* All registered overlay strategies as a flat array.
|
|
29
|
+
* Each strategy carries `name`, `base`, and `overlay` fields that
|
|
30
|
+
* `describeOverlays()` in the introspection walker reads directly.
|
|
31
|
+
*
|
|
32
|
+
* Used by `dumpSchema()` to populate the `overlayViews` map.
|
|
33
|
+
*/
|
|
34
|
+
all(): ReadonlyArray<OverlayedViewStrategy>;
|
|
35
|
+
/**
|
|
36
|
+
* Resolve the `rowKey` function for an overlay's base MV. Returns
|
|
37
|
+
* `undefined` if the base isn't an MV (raw source collection) or
|
|
38
|
+
* if the MV registry isn't supplied. Used by the virtual-collection
|
|
39
|
+
* proxy to derive ids from `put(record)` calls.
|
|
40
|
+
*/
|
|
41
|
+
resolveBaseRowKey(name: string, mvRegistry: MaterializedViewRegistry | null): ((row: Record<string, unknown>) => string) | undefined;
|
|
42
|
+
}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Read-shadow overlay primitive. Binds an MV's read-only base output
|
|
3
|
+
* to a separate user-writable overlay collection; reads merge via a
|
|
4
|
+
* single shadow predicate, writes route to the overlay.
|
|
5
|
+
*
|
|
6
|
+
* v2 ships the read-shadow variant only — arbitrary `mergePolicy`
|
|
7
|
+
* callbacks are deferred to v3.
|
|
8
|
+
*/
|
|
9
|
+
export interface OverlayedViewStrategy {
|
|
10
|
+
/**
|
|
11
|
+
* Virtual collection name. `vault.collection(name)` returns a
|
|
12
|
+
* proxy that merges `base` and `overlay` per the shadow rule.
|
|
13
|
+
* Writes to the proxy route to the `overlay` collection. The name
|
|
14
|
+
* must be unique within the vault — collisions with MV outputs or
|
|
15
|
+
* concrete source collections throw `OverlayNameCollisionError` at
|
|
16
|
+
* vault open.
|
|
17
|
+
*/
|
|
18
|
+
name: string;
|
|
19
|
+
/**
|
|
20
|
+
* The collection providing the default rows. Typically an MV's
|
|
21
|
+
* output collection. Must be a CONCRETE collection (a real source
|
|
22
|
+
* or an MV output) — not itself another overlay's virtual name.
|
|
23
|
+
* Multi-overlay stacking is a v3 non-goal; the constraint is
|
|
24
|
+
* enforced at vault open via `OverlayBaseIsVirtualError`.
|
|
25
|
+
*/
|
|
26
|
+
base: string;
|
|
27
|
+
/**
|
|
28
|
+
* User-writable collection that carries overrides. Must be a real,
|
|
29
|
+
* vault-known collection that is NOT an MV-output collection. The
|
|
30
|
+
* overlay's `withGuard` / `withDerivation` registrations apply to
|
|
31
|
+
* direct writes; the virtual layer's `put(record)` also flows
|
|
32
|
+
* through the overlay's normal write pipeline.
|
|
33
|
+
*/
|
|
34
|
+
overlay: string;
|
|
35
|
+
/**
|
|
36
|
+
* Single-field shadow predicate. When `overlay[shadowField] ===
|
|
37
|
+
* shadowValue` for a given id, virtual-collection reads of that id
|
|
38
|
+
* return the overlay row; otherwise reads return the base row.
|
|
39
|
+
*
|
|
40
|
+
* Niwat's canonical example: `dataStatus === 'override'` flips a
|
|
41
|
+
* row into operator-controlled mode.
|
|
42
|
+
*
|
|
43
|
+
* No callback merge, no priority lattice, no field-level merge —
|
|
44
|
+
* v2 stays explicitly narrow.
|
|
45
|
+
*/
|
|
46
|
+
shadowField: string;
|
|
47
|
+
shadowValue: unknown;
|
|
48
|
+
/**
|
|
49
|
+
* Optional field-level merge mode. When present, a
|
|
50
|
+
* row whose `shadowField` does NOT equal `shadowValue` is no longer
|
|
51
|
+
* forced all-base: the rules below let an intermediate status pull a
|
|
52
|
+
* declared subset of fields from the overlay while every other field
|
|
53
|
+
* still comes from the base row.
|
|
54
|
+
*
|
|
55
|
+
* Absent `mergeMode` preserves the original binary behaviour
|
|
56
|
+
* exactly — overlay wins entirely iff `shadowField === shadowValue`,
|
|
57
|
+
* otherwise base wins.
|
|
58
|
+
*/
|
|
59
|
+
mergeMode?: OverlayFieldMergeMode;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* One field-level merge rule. When the overlay row's `shadowField`
|
|
63
|
+
* equals `whenStatus`, the merged row takes `overlayFields` from the
|
|
64
|
+
* overlay and every other field from the base row.
|
|
65
|
+
*
|
|
66
|
+
* Always include `shadowField` in `overlayFields` so the status value
|
|
67
|
+
* itself propagates to the merged read (otherwise the merged row would
|
|
68
|
+
* carry the base's status, which is usually `undefined`).
|
|
69
|
+
*/
|
|
70
|
+
export interface OverlayFieldMergeRule {
|
|
71
|
+
/** The `overlay[shadowField]` value this rule matches. */
|
|
72
|
+
readonly whenStatus: unknown;
|
|
73
|
+
/**
|
|
74
|
+
* Field names pulled from the overlay row when this rule matches.
|
|
75
|
+
* Fields absent on the overlay row are skipped (base value kept).
|
|
76
|
+
*/
|
|
77
|
+
readonly overlayFields: readonly string[];
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Field-level merge configuration. `rules` are evaluated in
|
|
81
|
+
* declaration order and the FIRST rule whose `whenStatus` matches the
|
|
82
|
+
* overlay's `shadowField` wins; later rules are not consulted.
|
|
83
|
+
*
|
|
84
|
+
* The binary shadow check (`shadowField === shadowValue` → overlay
|
|
85
|
+
* wins entirely) is always the implicit, highest-priority rule applied
|
|
86
|
+
* BEFORE any `rules` entry, so adding `mergeMode` never changes the
|
|
87
|
+
* full-override path.
|
|
88
|
+
*/
|
|
89
|
+
export interface OverlayFieldMergeMode {
|
|
90
|
+
readonly kind: 'field-merge';
|
|
91
|
+
readonly rules: readonly OverlayFieldMergeRule[];
|
|
92
|
+
}
|
|
93
|
+
/** Returned by `withOverlayedView()` and consumed by `createNoydb`. */
|
|
94
|
+
export interface OverlayedViewStrategyHandle {
|
|
95
|
+
readonly __noydb_strategy: 'overlayed-view';
|
|
96
|
+
readonly spec: OverlayedViewStrategy;
|
|
97
|
+
}
|