@noy-db/hub 0.3.0-pre.8 → 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 +9 -8
- package/dist/aggregate/index.js.map +1 -1
- 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 -31
- 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-NWSGI5C7.js.map +1 -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-T2FFWNPK.js.map +1 -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-ZJ2AK4V7.js.map +1 -0
- package/dist/chunk-ZUODRVHY.js +14 -0
- package/dist/classified/index.js +5 -3
- 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 -11
- 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 +50 -37
- package/dist/i18n/index.js.map +1 -1
- package/dist/index.d.ts +307 -1459
- package/dist/index.js +595 -198
- 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 -15
- 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 +9 -6
- 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 -5
- package/dist/adapter/index.js +0 -15
- package/dist/aggregate/index.d.ts +0 -42
- package/dist/api-JDWL67WL.js +0 -20
- package/dist/as/index.d.ts +0 -7
- package/dist/at/index.d.ts +0 -5
- package/dist/attestation/index.d.ts +0 -20
- package/dist/backup-WRGNTGJF.js +0 -225
- package/dist/backup-WRGNTGJF.js.map +0 -1
- package/dist/blobs/index.d.ts +0 -44
- package/dist/bundle/index.d.ts +0 -122
- package/dist/bundle-DzWtVw7w.d.ts +0 -548
- package/dist/by/index.d.ts +0 -1
- package/dist/cargo/index.d.ts +0 -9
- package/dist/chunk-25G7PUTA.js +0 -235
- package/dist/chunk-26FSVNBL.js +0 -34
- package/dist/chunk-2PJB6H3H.js +0 -167
- package/dist/chunk-2PJB6H3H.js.map +0 -1
- package/dist/chunk-37JZR7CY.js +0 -91
- package/dist/chunk-3KBK5LU4.js +0 -117
- package/dist/chunk-3YKBGS3I.js +0 -686
- package/dist/chunk-3YKBGS3I.js.map +0 -1
- package/dist/chunk-44DV37ZV.js +0 -75
- package/dist/chunk-44DV37ZV.js.map +0 -1
- package/dist/chunk-47C4CI7R.js +0 -108
- package/dist/chunk-47C4CI7R.js.map +0 -1
- package/dist/chunk-4VDFUBTS.js +0 -275
- package/dist/chunk-4VDFUBTS.js.map +0 -1
- package/dist/chunk-55LSDABW.js +0 -94
- package/dist/chunk-56JB2BGI.js +0 -13003
- package/dist/chunk-56JB2BGI.js.map +0 -1
- package/dist/chunk-5GQE5IDB.js +0 -513
- package/dist/chunk-5GQE5IDB.js.map +0 -1
- package/dist/chunk-5HRJQSKN.js +0 -202
- package/dist/chunk-5HZULLHE.js +0 -404
- package/dist/chunk-5JQMX2EH.js +0 -50
- package/dist/chunk-5UOPIPZC.js +0 -95
- package/dist/chunk-5YBUFCFF.js +0 -135
- package/dist/chunk-62APEMF3.js +0 -280
- package/dist/chunk-62APEMF3.js.map +0 -1
- package/dist/chunk-6P5AJ2ZS.js +0 -120
- package/dist/chunk-6P5AJ2ZS.js.map +0 -1
- package/dist/chunk-6PALJTC2.js +0 -430
- package/dist/chunk-6PALJTC2.js.map +0 -1
- package/dist/chunk-6S7T6WC4.js +0 -111
- package/dist/chunk-6S7T6WC4.js.map +0 -1
- package/dist/chunk-6Z435B6N.js +0 -1656
- package/dist/chunk-6Z435B6N.js.map +0 -1
- package/dist/chunk-723XB5NX.js +0 -86
- package/dist/chunk-7CZ6YXMO.js +0 -124
- package/dist/chunk-7KTL4RHZ.js +0 -120
- package/dist/chunk-7KTL4RHZ.js.map +0 -1
- package/dist/chunk-7TAV3BFQ.js +0 -766
- package/dist/chunk-7TAV3BFQ.js.map +0 -1
- package/dist/chunk-BASCPHNM.js +0 -380
- package/dist/chunk-BASCPHNM.js.map +0 -1
- package/dist/chunk-BGIZAFY7.js +0 -1
- package/dist/chunk-BJ2XF2RC.js +0 -823
- package/dist/chunk-BM6E4MUT.js +0 -881
- package/dist/chunk-BM6E4MUT.js.map +0 -1
- package/dist/chunk-BTFTHF6Q.js +0 -42
- package/dist/chunk-C4NOLA5X.js +0 -132
- package/dist/chunk-C4NOLA5X.js.map +0 -1
- package/dist/chunk-CHK5VVMI.js +0 -155
- package/dist/chunk-DCVVCJVB.js +0 -45
- package/dist/chunk-EU7HDMT3.js +0 -54
- package/dist/chunk-F3EKFGUS.js +0 -99
- package/dist/chunk-FCOZ7DEC.js +0 -355
- package/dist/chunk-FCOZ7DEC.js.map +0 -1
- package/dist/chunk-FWART3VA.js +0 -205
- package/dist/chunk-FZK3JJJK.js +0 -150
- package/dist/chunk-GDOOG5YQ.js +0 -382
- package/dist/chunk-GLVXQU3E.js +0 -155
- package/dist/chunk-HU55NPHZ.js +0 -80
- package/dist/chunk-I6JJ6VJS.js +0 -97
- package/dist/chunk-I6URUNTD.js +0 -59
- package/dist/chunk-IARAK3PK.js +0 -14
- package/dist/chunk-II6DLDZM.js +0 -30
- package/dist/chunk-J5YUA6JB.js +0 -23
- package/dist/chunk-J7OH6R4K.js +0 -49
- package/dist/chunk-K2WCO3NX.js +0 -1
- package/dist/chunk-L6Q5NA22.js +0 -40
- package/dist/chunk-LFGJG4XZ.js +0 -30
- package/dist/chunk-M3OYTM5Z.js +0 -85
- package/dist/chunk-MOQ5M46U.js +0 -209
- package/dist/chunk-NTPWQH4S.js +0 -589
- package/dist/chunk-OJ64XMPJ.js +0 -1434
- package/dist/chunk-OJ64XMPJ.js.map +0 -1
- package/dist/chunk-OWGAXPRE.js +0 -129
- package/dist/chunk-P2PEPSPK.js +0 -230
- package/dist/chunk-P6TZ3IVN.js +0 -453
- package/dist/chunk-P6TZ3IVN.js.map +0 -1
- package/dist/chunk-PAJCRV7O.js +0 -123
- package/dist/chunk-PMMV5SQC.js +0 -416
- package/dist/chunk-PMMV5SQC.js.map +0 -1
- package/dist/chunk-PPPZIBKY.js +0 -261
- package/dist/chunk-PPPZIBKY.js.map +0 -1
- package/dist/chunk-PVC2FBCQ.js +0 -45
- package/dist/chunk-PYIUDUGS.js +0 -36
- package/dist/chunk-QABECTNN.js +0 -255
- package/dist/chunk-QYMMMKOO.js +0 -164
- package/dist/chunk-R4IVPJHN.js +0 -130
- package/dist/chunk-REWTMYSF.js +0 -32
- package/dist/chunk-REWTMYSF.js.map +0 -1
- package/dist/chunk-RNYDHIQL.js +0 -367
- package/dist/chunk-RUIMKQTA.js +0 -23
- package/dist/chunk-RUIMKQTA.js.map +0 -1
- package/dist/chunk-TCGVRKOS.js +0 -367
- package/dist/chunk-TIAYXOEI.js +0 -99
- package/dist/chunk-TQ3REHVF.js +0 -95
- package/dist/chunk-TQ3REHVF.js.map +0 -1
- package/dist/chunk-TUL5YQWF.js +0 -777
- package/dist/chunk-U7LV2DUN.js +0 -74
- package/dist/chunk-UB3XHGFG.js +0 -181
- package/dist/chunk-UB3XHGFG.js.map +0 -1
- package/dist/chunk-UMH35AQV.js +0 -70
- package/dist/chunk-UWZ7O4NR.js +0 -29
- package/dist/chunk-V76PHWLE.js +0 -41
- package/dist/chunk-VFQOE76I.js +0 -69
- package/dist/chunk-VIWOGJ2O.js +0 -71
- package/dist/chunk-VK6OC22R.js +0 -37
- package/dist/chunk-VK6OC22R.js.map +0 -1
- package/dist/chunk-VVLOWY74.js +0 -150
- package/dist/chunk-VVLOWY74.js.map +0 -1
- package/dist/chunk-W3JABOVB.js +0 -53
- package/dist/chunk-W3JABOVB.js.map +0 -1
- package/dist/chunk-WPNP3NF5.js +0 -1221
- package/dist/chunk-WPNP3NF5.js.map +0 -1
- package/dist/chunk-X5QZAJDB.js +0 -59
- package/dist/chunk-X6VNIRHS.js +0 -239
- package/dist/chunk-X6VNIRHS.js.map +0 -1
- package/dist/chunk-XBPUVQDO.js +0 -664
- package/dist/chunk-XBPUVQDO.js.map +0 -1
- package/dist/chunk-XW5LZYV4.js +0 -21
- package/dist/chunk-YTCCC6NG.js +0 -320
- package/dist/chunk-YTCCC6NG.js.map +0 -1
- package/dist/classified/index.d.ts +0 -17
- package/dist/collection-facade-EJVIN2BY.js +0 -39
- package/dist/computed-6FOFXQPE.js +0 -11
- package/dist/config-drift-RFEVGBKR.js +0 -24
- package/dist/config-drift-RFEVGBKR.js.map +0 -1
- package/dist/consent/index.d.ts +0 -23
- package/dist/crdt/index.d.ts +0 -34
- package/dist/dead-filter-RHMNYOXP.js +0 -28
- package/dist/decrypt-partition-IHtxEnTi.d.ts +0 -21
- package/dist/delegation-IHXOASHV.js +0 -25
- package/dist/derivations/index.d.ts +0 -70
- package/dist/derive-CD3ZVIXK.js +0 -21
- package/dist/describe/index.d.ts +0 -1
- package/dist/describe/index.js +0 -1
- package/dist/describe-C6iHNlqJ.d.ts +0 -162
- package/dist/dev-unlock-wgQ7Ci5I.d.ts +0 -263
- package/dist/discriminant-BN9REW3o.d.ts +0 -60
- package/dist/enclave-KGEUW2GL.js +0 -123
- package/dist/executor-EUPYHCLU.js +0 -9
- package/dist/executor-KZ4B3PRT.js +0 -9
- package/dist/executor-MHUM2VZK.js +0 -21
- package/dist/export-accessible-Z3NSZZHN.js +0 -23
- package/dist/extract-partition-VSKT35JG.js +0 -36
- package/dist/fanout-sidecar-NBDKKCHT.js +0 -74
- package/dist/find-OH4BEULF.js +0 -11
- package/dist/forget/index.d.ts +0 -36
- package/dist/guards/index.d.ts +0 -35
- package/dist/hash-CwHnoKyW.d.ts +0 -72
- package/dist/history/index.d.ts +0 -61
- package/dist/i18n/index.d.ts +0 -37
- package/dist/in/index.d.ts +0 -5
- package/dist/index-B9QdHytu.d.ts +0 -123
- package/dist/index-CTvUp94-.d.ts +0 -123
- package/dist/index-Dn5GzPg_.d.ts +0 -22138
- package/dist/indexing/index.d.ts +0 -39
- package/dist/issue-AEOL6RXA.js +0 -19
- package/dist/kernel/index.d.ts +0 -32
- package/dist/kernel/index.js +0 -59
- package/dist/lazy/index.d.ts +0 -21
- package/dist/ledger-3LR3YO2W.js +0 -42
- package/dist/liberate-XSEPRWEA.js +0 -24
- package/dist/link-set-NSUIX6BR.js +0 -31
- package/dist/materialized-views/index.d.ts +0 -173
- package/dist/mime-magic-CYbFNQ4h.d.ts +0 -103
- package/dist/noydb-POVTIVQ6.js +0 -62
- package/dist/on/index.d.ts +0 -5
- package/dist/overlay-views/index.d.ts +0 -98
- package/dist/periods/index.d.ts +0 -20
- package/dist/pod/index.d.ts +0 -63
- package/dist/policy-Y7HL2KGA.js +0 -41
- package/dist/portability/index.d.ts +0 -20
- package/dist/post-register-KOFRTCDD.js +0 -55
- package/dist/post-register-KOFRTCDD.js.map +0 -1
- package/dist/public-envelope-NC7SPNMV.js +0 -32
- package/dist/query/index.d.ts +0 -5
- package/dist/read-only-facade-5ADRJVTM.js +0 -8
- package/dist/register-3D6R2MKN.js +0 -23
- package/dist/registry-AI4E46PD.js +0 -19
- package/dist/registry-HSNQ4NBP.js +0 -9
- package/dist/registry-WIX6QCV5.js +0 -17
- package/dist/request-withdrawal-GU4XS2R5.js +0 -31
- package/dist/reveal-5Y777N5Q.js +0 -38
- package/dist/reveal-5Y777N5Q.js.map +0 -1
- package/dist/revoke-ZFETCLYV.js +0 -24
- package/dist/revoke-ZFETCLYV.js.map +0 -1
- package/dist/satellites/index.d.ts +0 -5
- package/dist/sealed-record/index.d.ts +0 -69
- package/dist/session/index.d.ts +0 -44
- package/dist/shadow/index.d.ts +0 -15
- package/dist/signer-GAIMQQ2J.js +0 -25
- package/dist/signer-GAIMQQ2J.js.map +0 -1
- package/dist/snapshots/index.d.ts +0 -26
- package/dist/stale-77LP2EEF.js +0 -14
- package/dist/stale-77LP2EEF.js.map +0 -1
- package/dist/storage-KEXIXLGM.js +0 -23
- package/dist/storage-KEXIXLGM.js.map +0 -1
- package/dist/store-coordination-provider-NJDDZ264.js +0 -142
- package/dist/subject-index-O75wKshW.d.ts +0 -362
- package/dist/sync/index.d.ts +0 -41
- package/dist/team/index.d.ts +0 -155
- package/dist/tiers/index.d.ts +0 -5
- package/dist/to/index.d.ts +0 -5
- package/dist/transition-guard-D5RLJv8S.d.ts +0 -165
- package/dist/tx/index.d.ts +0 -35
- package/dist/ui/index.d.ts +0 -1
- package/dist/ulid-DRH25k3y.d.ts +0 -66
- package/dist/util/index.d.ts +0 -79
- package/dist/validators-C3lrVF-c.d.ts +0 -101
- package/dist/vault-diff-_LSIcOMv.d.ts +0 -147
- package/dist/verify-CAYGXYNO.js +0 -139
- package/dist/verify-CAYGXYNO.js.map +0 -1
- package/dist/walk-SMAE4IEI.js +0 -241
- package/dist/with/index.d.ts +0 -38
- package/dist/with-materialized-view-Xv1-9Bh0.d.ts +0 -27
- package/dist/with-overlayed-view-CuWhq_-C.d.ts +0 -12
- package/dist/with-rollup-K_iwal4b.d.ts +0 -47
- package/dist/withdraw-accessible-Q7BULAN5.js +0 -28
- package/dist/withdraw-accessible-Q7BULAN5.js.map +0 -1
- /package/dist/{adapter/index.js.map → api-ZGS6LCOF.js.map} +0 -0
- /package/dist/{chunk-VIWOGJ2O.js.map → chunk-3B5VVCNY.js.map} +0 -0
- /package/dist/{chunk-P2PEPSPK.js.map → chunk-3LQ2YKO4.js.map} +0 -0
- /package/dist/{chunk-EU7HDMT3.js.map → chunk-3QCRBHCY.js.map} +0 -0
- /package/dist/{chunk-FZK3JJJK.js.map → chunk-4JBYV75E.js.map} +0 -0
- /package/dist/{chunk-I6JJ6VJS.js.map → chunk-4NXKCLLQ.js.map} +0 -0
- /package/dist/{chunk-VFQOE76I.js.map → chunk-5M5DVGV7.js.map} +0 -0
- /package/dist/{chunk-LFGJG4XZ.js.map → chunk-5YOLBEQ6.js.map} +0 -0
- /package/dist/{chunk-OWGAXPRE.js.map → chunk-6CRIV7DE.js.map} +0 -0
- /package/dist/{chunk-QABECTNN.js.map → chunk-6QTNZJBS.js.map} +0 -0
- /package/dist/{chunk-723XB5NX.js.map → chunk-6T2SCQRU.js.map} +0 -0
- /package/dist/{chunk-PVC2FBCQ.js.map → chunk-7DSTRQIJ.js.map} +0 -0
- /package/dist/{chunk-NTPWQH4S.js.map → chunk-AUSTCW2X.js.map} +0 -0
- /package/dist/{chunk-MOQ5M46U.js.map → chunk-B3HJYUOF.js.map} +0 -0
- /package/dist/{chunk-QYMMMKOO.js.map → chunk-BDVFPG6Y.js.map} +0 -0
- /package/dist/{chunk-PYIUDUGS.js.map → chunk-CAF6WOK7.js.map} +0 -0
- /package/dist/{chunk-5HZULLHE.js.map → chunk-CIE2BASH.js.map} +0 -0
- /package/dist/{chunk-BTFTHF6Q.js.map → chunk-CRI4OUV4.js.map} +0 -0
- /package/dist/{chunk-37JZR7CY.js.map → chunk-DLG74CNB.js.map} +0 -0
- /package/dist/{chunk-TCGVRKOS.js.map → chunk-ERJ7FU55.js.map} +0 -0
- /package/dist/{chunk-FWART3VA.js.map → chunk-EVVGJDRQ.js.map} +0 -0
- /package/dist/{chunk-X5QZAJDB.js.map → chunk-EXK7QRWF.js.map} +0 -0
- /package/dist/{chunk-5HRJQSKN.js.map → chunk-EYZ6IQ6X.js.map} +0 -0
- /package/dist/{chunk-DCVVCJVB.js.map → chunk-F64IRYG3.js.map} +0 -0
- /package/dist/{chunk-BJ2XF2RC.js.map → chunk-FHS2HQSH.js.map} +0 -0
- /package/dist/{chunk-HU55NPHZ.js.map → chunk-GKEWXIV5.js.map} +0 -0
- /package/dist/{chunk-I6URUNTD.js.map → chunk-GTGPO5KW.js.map} +0 -0
- /package/dist/{chunk-5UOPIPZC.js.map → chunk-HB3RFQSC.js.map} +0 -0
- /package/dist/{chunk-F3EKFGUS.js.map → chunk-I6GALP6E.js.map} +0 -0
- /package/dist/{chunk-R4IVPJHN.js.map → chunk-IL6POWCW.js.map} +0 -0
- /package/dist/{chunk-3KBK5LU4.js.map → chunk-IU6SNYX6.js.map} +0 -0
- /package/dist/{chunk-TUL5YQWF.js.map → chunk-J2ZX2XUV.js.map} +0 -0
- /package/dist/{chunk-UWZ7O4NR.js.map → chunk-JKJOGPZN.js.map} +0 -0
- /package/dist/{chunk-V76PHWLE.js.map → chunk-JZUV47FZ.js.map} +0 -0
- /package/dist/{chunk-II6DLDZM.js.map → chunk-K5IMOGHB.js.map} +0 -0
- /package/dist/{chunk-GDOOG5YQ.js.map → chunk-LASZKVMO.js.map} +0 -0
- /package/dist/{chunk-5YBUFCFF.js.map → chunk-NR5LT5RY.js.map} +0 -0
- /package/dist/{chunk-UMH35AQV.js.map → chunk-Q5VNKNE5.js.map} +0 -0
- /package/dist/{chunk-XW5LZYV4.js.map → chunk-QLWMEXCT.js.map} +0 -0
- /package/dist/{chunk-PAJCRV7O.js.map → chunk-QRB7NAOJ.js.map} +0 -0
- /package/dist/{chunk-U7LV2DUN.js.map → chunk-R4ROFEYC.js.map} +0 -0
- /package/dist/{chunk-RNYDHIQL.js.map → chunk-RIX4V2TB.js.map} +0 -0
- /package/dist/{chunk-L6Q5NA22.js.map → chunk-RYCTDFUX.js.map} +0 -0
- /package/dist/{chunk-CHK5VVMI.js.map → chunk-RZ5SVOYR.js.map} +0 -0
- /package/dist/{chunk-TIAYXOEI.js.map → chunk-SLFHQTTW.js.map} +0 -0
- /package/dist/{chunk-J5YUA6JB.js.map → chunk-UNFPPVNI.js.map} +0 -0
- /package/dist/{chunk-25G7PUTA.js.map → chunk-VLFCJYTL.js.map} +0 -0
- /package/dist/{chunk-7CZ6YXMO.js.map → chunk-VN3DBQAU.js.map} +0 -0
- /package/dist/{chunk-J7OH6R4K.js.map → chunk-VZRODIM3.js.map} +0 -0
- /package/dist/{chunk-55LSDABW.js.map → chunk-W22IKJE2.js.map} +0 -0
- /package/dist/{chunk-GLVXQU3E.js.map → chunk-X3YYQWOQ.js.map} +0 -0
- /package/dist/{chunk-M3OYTM5Z.js.map → chunk-YFXZEAYK.js.map} +0 -0
- /package/dist/{chunk-5JQMX2EH.js.map → chunk-ZAJAVEXY.js.map} +0 -0
- /package/dist/{chunk-26FSVNBL.js.map → chunk-ZICD77GM.js.map} +0 -0
- /package/dist/{chunk-IARAK3PK.js.map → chunk-ZUODRVHY.js.map} +0 -0
- /package/dist/{api-JDWL67WL.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-RHMNYOXP.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-EJVIN2BY.js.map → derive-H2BJTLUI.js.map} +0 -0
- /package/dist/{computed-6FOFXQPE.js.map → enclave-AP3I5W7O.js.map} +0 -0
- /package/dist/{delegation-IHXOASHV.js.map → executor-KGWTNEQD.js.map} +0 -0
- /package/dist/{derive-CD3ZVIXK.js.map → executor-OVEXR6RT.js.map} +0 -0
- /package/dist/{describe/index.js.map → executor-UNEH5ZYH.js.map} +0 -0
- /package/dist/{enclave-KGEUW2GL.js.map → export-accessible-PCMXSUZS.js.map} +0 -0
- /package/dist/{executor-EUPYHCLU.js.map → extract-partition-SWHFSYJO.js.map} +0 -0
- /package/dist/{fanout-sidecar-NBDKKCHT.js.map → fanout-sidecar-A765THMX.js.map} +0 -0
- /package/dist/{executor-KZ4B3PRT.js.map → find-N6345CNT.js.map} +0 -0
- /package/dist/{executor-MHUM2VZK.js.map → issue-5OKB6I2R.js.map} +0 -0
- /package/dist/{export-accessible-Z3NSZZHN.js.map → ledger-GFBKVPV4.js.map} +0 -0
- /package/dist/{extract-partition-VSKT35JG.js.map → liberate-3VDOT4KO.js.map} +0 -0
- /package/dist/{find-OH4BEULF.js.map → link-set-Z7Q2ASFX.js.map} +0 -0
- /package/dist/{issue-AEOL6RXA.js.map → noydb-ZCJOYBDI.js.map} +0 -0
- /package/dist/{kernel/index.js.map → policy-Z3RUAIY2.js.map} +0 -0
- /package/dist/{ledger-3LR3YO2W.js.map → public-envelope-B4KNWVUA.js.map} +0 -0
- /package/dist/{liberate-XSEPRWEA.js.map → read-only-facade-CHCKSEPD.js.map} +0 -0
- /package/dist/{link-set-NSUIX6BR.js.map → register-VAHONCID.js.map} +0 -0
- /package/dist/{noydb-POVTIVQ6.js.map → registry-7MLVD3VO.js.map} +0 -0
- /package/dist/{policy-Y7HL2KGA.js.map → registry-EPKPD5SM.js.map} +0 -0
- /package/dist/{public-envelope-NC7SPNMV.js.map → registry-P5T7PS2U.js.map} +0 -0
- /package/dist/{read-only-facade-5ADRJVTM.js.map → request-withdrawal-TI3A5WPS.js.map} +0 -0
- /package/dist/{register-3D6R2MKN.js.map → revoke-FDRD6GRW.js.map} +0 -0
- /package/dist/{registry-AI4E46PD.js.map → signer-MUWEIUI6.js.map} +0 -0
- /package/dist/{registry-HSNQ4NBP.js.map → stale-OSQ7J3AA.js.map} +0 -0
- /package/dist/{registry-WIX6QCV5.js.map → storage-MVFCGEQE.js.map} +0 -0
- /package/dist/{store-coordination-provider-NJDDZ264.js.map → store-coordination-provider-64OEZFGS.js.map} +0 -0
- /package/dist/{walk-SMAE4IEI.js.map → walk-SVNDIZ62.js.map} +0 -0
- /package/dist/{request-withdrawal-GU4XS2R5.js.map → withdraw-accessible-WZIEVWSR.js.map} +0 -0
|
@@ -0,0 +1,248 @@
|
|
|
1
|
+
import type { ReadOnlyVaultFacade } from '../../with-audit/guards/types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Runtime context handed to `derive(source, ctx)`. Mirrors `GuardContext`'s
|
|
4
|
+
* narrow shape: read-only vault access, no write capability, no
|
|
5
|
+
* transaction handle. Determinism is the consumer's responsibility — the
|
|
6
|
+
* strategy hash includes `derive.toString()`, so the source string fixes
|
|
7
|
+
* the function's inputs; whatever sibling reads `derive` performs must
|
|
8
|
+
* yield the same outputs for the same source.
|
|
9
|
+
*/
|
|
10
|
+
export interface DerivationContext {
|
|
11
|
+
vault: ReadOnlyVaultFacade;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Metadata that travels inside the `_data` payload of a derived record.
|
|
15
|
+
* Lives in encrypted payload, not in the unencrypted envelope — the
|
|
16
|
+
* storage backend cannot infer the derivation graph from listing.
|
|
17
|
+
*/
|
|
18
|
+
export interface DerivedFromMeta {
|
|
19
|
+
/** Source collection name. */
|
|
20
|
+
readonly source: string;
|
|
21
|
+
/** Source record id. */
|
|
22
|
+
readonly sourceId: string;
|
|
23
|
+
/** `_v` of the source at derivation time. */
|
|
24
|
+
readonly sourceVersion: number;
|
|
25
|
+
/** ISO timestamp when this output was derived. */
|
|
26
|
+
readonly derivedAt: string;
|
|
27
|
+
/**
|
|
28
|
+
* SHA-256 of (source + outputs map keys + derive function source).
|
|
29
|
+
* Changes when the strategy changes → forces `vault.deriveAll` to
|
|
30
|
+
* recompute on next visit.
|
|
31
|
+
*/
|
|
32
|
+
readonly strategyHash: string;
|
|
33
|
+
}
|
|
34
|
+
/** Record-shape output — one source row produces (optionally) one output row at the source's id. */
|
|
35
|
+
export interface RecordOutputSpec {
|
|
36
|
+
shape: 'record';
|
|
37
|
+
collection: string;
|
|
38
|
+
/**
|
|
39
|
+
* When `true`, the `derive` function may return `null` (or
|
|
40
|
+
* `undefined`) for this output key. The executor interprets that as
|
|
41
|
+
* "no output for this invocation": a previously-emitted output at
|
|
42
|
+
* the same id is deleted (mirroring the empty-group / empty-aggregate
|
|
43
|
+
* semantics for empty groups); a never-emitted output is a silent
|
|
44
|
+
* no-op. When `false` (default), returning `null` throws
|
|
45
|
+
* `DerivationOutputShapeError` — same as v1.
|
|
46
|
+
*/
|
|
47
|
+
optional?: boolean;
|
|
48
|
+
/**
|
|
49
|
+
* Field-level provenance for a **self-write** output — an output
|
|
50
|
+
* whose `collection` equals the strategy's `source`, used by
|
|
51
|
+
* reverse-denormalization (`triggerBy`) to patch a denormalized field
|
|
52
|
+
* back onto the source record.
|
|
53
|
+
*
|
|
54
|
+
* `denorm` names the ONLY top-level fields the derivation owns on that
|
|
55
|
+
* record. The engine merges just those fields from the `derive` return
|
|
56
|
+
* value onto the current stored record (`{ ...current, ...pick(out, denorm) }`)
|
|
57
|
+
* — the rest of the user's record is never clobbered by a stale snapshot.
|
|
58
|
+
* The whole-record `_derivedFrom` provenance tag is NOT applied (the
|
|
59
|
+
* record stays user-owned); the derivation only claims `denorm`.
|
|
60
|
+
*
|
|
61
|
+
* Cycle break is value-level: if the patch changes nothing, no write is
|
|
62
|
+
* issued — so the self-write that re-fires the source-path derivation
|
|
63
|
+
* terminates after one idempotent pass.
|
|
64
|
+
*
|
|
65
|
+
* REQUIRED when `collection === source` (validated at construction);
|
|
66
|
+
* ignored for outputs to a different collection.
|
|
67
|
+
*/
|
|
68
|
+
denorm?: readonly string[];
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Array-shape output — one source row produces a variable-length
|
|
72
|
+
* list of output rows, each with its own id (from the `key` extractor).
|
|
73
|
+
*
|
|
74
|
+
* On every source-row change, the dispatcher diffs the previously
|
|
75
|
+
* emitted key set against the new one: removed keys are deleted via
|
|
76
|
+
* `_internalDelete`, new and unchanged keys are upserted via
|
|
77
|
+
* `Collection.put`. Strict-mode rollback is preserved via the existing
|
|
78
|
+
* `_executed` tracking.
|
|
79
|
+
*
|
|
80
|
+
* Storage of the per-source-row key set lives at
|
|
81
|
+
* `_meta/derivations-fanout/<source>/<sourceId>/<outputKey>` as a
|
|
82
|
+
* plain JSON sidecar — keeps dispatch cost O(1) per source row.
|
|
83
|
+
*
|
|
84
|
+
* **Slice 1 limitation**: only `lifecycle: 'eager'` is supported.
|
|
85
|
+
* Registering an array-shape output with `lifecycle: 'lazy'` throws
|
|
86
|
+
* at `withDerivation` construction time.
|
|
87
|
+
*/
|
|
88
|
+
export interface ArrayOutputSpec {
|
|
89
|
+
shape: 'array';
|
|
90
|
+
collection: string;
|
|
91
|
+
/**
|
|
92
|
+
* Stable identity extractor for each derived row. Called on every
|
|
93
|
+
* row returned by `derive`. The string MUST be unique within a
|
|
94
|
+
* single invocation — duplicate keys throw
|
|
95
|
+
* `DerivationOutputShapeError`.
|
|
96
|
+
*
|
|
97
|
+
* Type is intentionally `(out: Record<string, unknown>) => string`
|
|
98
|
+
* (not generic) because OutputSpec is type-erased at the registry
|
|
99
|
+
* level. Strategy-level inference still produces typed `out`
|
|
100
|
+
* through the strategy's `outputs` map.
|
|
101
|
+
*/
|
|
102
|
+
key: (output: Record<string, unknown>) => string;
|
|
103
|
+
/**
|
|
104
|
+
* Cap on derived rows per source-row invocation. Defaults to 64.
|
|
105
|
+
* Raise for carry-forward cases (e.g. monthly expansion of
|
|
106
|
+
* multi-year contracts). Exceeding the cap throws
|
|
107
|
+
* `DerivationCapExceededError` BEFORE any writes — partial fanout
|
|
108
|
+
* is never persisted.
|
|
109
|
+
*/
|
|
110
|
+
maxFanout?: number;
|
|
111
|
+
}
|
|
112
|
+
/** Discriminated union — record + array. */
|
|
113
|
+
export type OutputSpec = RecordOutputSpec | ArrayOutputSpec;
|
|
114
|
+
/**
|
|
115
|
+
* Registration shape passed to `withDerivation()`.
|
|
116
|
+
*
|
|
117
|
+
* @typeParam TSource - the source record type
|
|
118
|
+
* @typeParam TOutputs - map of output-key → output record type. An output
|
|
119
|
+
* value may be a single record, or — for `shape: 'array'` outputs — an
|
|
120
|
+
* array of records (the fanout sidecar upserts/deletes each row).
|
|
121
|
+
*/
|
|
122
|
+
export interface DerivationStrategy<TSource extends Record<string, unknown>, TOutputs extends Record<string, Record<string, unknown> | ReadonlyArray<Record<string, unknown>>>> {
|
|
123
|
+
/** Source collection name. */
|
|
124
|
+
source: string;
|
|
125
|
+
/**
|
|
126
|
+
* Additional collections whose writes ALSO re-fire this derivation.
|
|
127
|
+
* By default only writes to the single declared
|
|
128
|
+
* `source` re-trigger a derivation; a `derive` that reads sibling
|
|
129
|
+
* collections via `ctx.vault` therefore goes stale when those
|
|
130
|
+
* siblings change. Declare those sibling collections here to wire
|
|
131
|
+
* them as extra triggers.
|
|
132
|
+
*
|
|
133
|
+
* **SAME-ID assumption (load-bearing):** when a write lands on one of
|
|
134
|
+
* these declared collections, the derivation re-fires with the
|
|
135
|
+
* PRIMARY `source` record read at the SAME id as the written record
|
|
136
|
+
* — NOT the written sibling record itself. If no primary `source`
|
|
137
|
+
* record exists at that id, the re-fire is a silent no-op (no throw,
|
|
138
|
+
* no output mutation). Model your collections so the sibling and the
|
|
139
|
+
* primary share an id (the common money/accounting case: an
|
|
140
|
+
* `allocations` row and its `payments`/`bills` keyed by the same id),
|
|
141
|
+
* or trigger off a collection you control the id-space of.
|
|
142
|
+
*
|
|
143
|
+
* Declared collections participate in cycle detection and are indexed
|
|
144
|
+
* in the registry's `_bySource` exactly like `source`, so a sibling
|
|
145
|
+
* that is also a derivation output forms a detectable cycle.
|
|
146
|
+
*
|
|
147
|
+
* Each entry must be a non-empty string and must not equal `source`
|
|
148
|
+
* (validated at `withDerivation()` construction time).
|
|
149
|
+
*/
|
|
150
|
+
sources?: ReadonlyArray<string>;
|
|
151
|
+
/**
|
|
152
|
+
* Foreign-key-keyed triggers for reverse-denormalization. Unlike
|
|
153
|
+
* `sources[]` (which re-fires at the SAME id), a `triggerBy` entry fans a
|
|
154
|
+
* write to a PARENT collection OUT to every source record whose FK matches
|
|
155
|
+
* the written parent's id.
|
|
156
|
+
*
|
|
157
|
+
* `{ collection, on }`: a write to `collection` (the parent, e.g.
|
|
158
|
+
* `'buyers'`) re-fires this derivation once per source record where
|
|
159
|
+
* `source[on] === writtenParentId` (`on` is the FK field ON the source,
|
|
160
|
+
* e.g. `'buyerId'`). The matched source record — not the parent — is
|
|
161
|
+
* passed to `derive`.
|
|
162
|
+
*
|
|
163
|
+
* Typical use: keep a denormalized field on the source in sync with a
|
|
164
|
+
* parent change (a buyer rename → refresh `buyerName` on all their sales),
|
|
165
|
+
* via a self-write output (`collection === source`) declaring `denorm`.
|
|
166
|
+
*
|
|
167
|
+
* Fan-out runs through `ctx.vault.collection(source).query().where(on,'==',id)`,
|
|
168
|
+
* which uses the FK index when the source declares `withIndexing()` on
|
|
169
|
+
* `on` (O(children)) and otherwise scans (O(N) — fine for small child
|
|
170
|
+
* sets). Set `maxFanout` as a safety rail; exceeding it throws
|
|
171
|
+
* `DerivationCapExceededError` before any write. `triggerBy` collections
|
|
172
|
+
* participate in cycle detection like `source`/`sources`.
|
|
173
|
+
*
|
|
174
|
+
* Each `collection` must be non-empty and not equal `source`; `on` must
|
|
175
|
+
* be a non-empty field name (validated at construction).
|
|
176
|
+
*/
|
|
177
|
+
triggerBy?: ReadonlyArray<{
|
|
178
|
+
collection: string;
|
|
179
|
+
on: string;
|
|
180
|
+
maxFanout?: number;
|
|
181
|
+
}>;
|
|
182
|
+
/**
|
|
183
|
+
* @internal — set by `withRollup()`. Marks this strategy as
|
|
184
|
+
* an aggregate-onto-parent rollup: a write OR delete of a `from` (child)
|
|
185
|
+
* record recomputes `compute(children where child[key] === parentId)` and
|
|
186
|
+
* patches it onto `source[field]` of the parent at `parentId` (= child[key]).
|
|
187
|
+
* `source` is the parent (`into`) collection; the synthetic self-write
|
|
188
|
+
* output carries `denorm: [field]`. Dispatch handles rollup specially (it
|
|
189
|
+
* does not run the executor). Eager-only in this slice.
|
|
190
|
+
*/
|
|
191
|
+
rollup?: {
|
|
192
|
+
readonly from: string;
|
|
193
|
+
readonly key: string;
|
|
194
|
+
readonly field: string;
|
|
195
|
+
readonly compute: (children: any[]) => unknown;
|
|
196
|
+
};
|
|
197
|
+
/** v1: only deterministic derivations supported. */
|
|
198
|
+
deterministic: true;
|
|
199
|
+
/**
|
|
200
|
+
* Output declarations keyed by name. The `derive` function's return
|
|
201
|
+
* value must have the same keys.
|
|
202
|
+
*/
|
|
203
|
+
outputs: {
|
|
204
|
+
[K in keyof TOutputs]: OutputSpec;
|
|
205
|
+
};
|
|
206
|
+
/**
|
|
207
|
+
* Pure function from source to outputs. Runs on plaintext, after DEK
|
|
208
|
+
* unwrap. Returns a map of named outputs. Each output is encrypted +
|
|
209
|
+
* stored via the existing `Collection.put` pipeline.
|
|
210
|
+
*
|
|
211
|
+
* `ctx.vault` is the same `ReadOnlyVaultFacade` guards see — fetch
|
|
212
|
+
* sibling records via `ctx.vault.collection<T>(name).get(id)` /
|
|
213
|
+
* `.list()` / `.query()`. The vault accessor is read-only; there is
|
|
214
|
+
* no path to a writer from `ctx`.
|
|
215
|
+
*
|
|
216
|
+
* **Per-output omission (runtime-supported):** returning `null` or
|
|
217
|
+
* `undefined` for an individual output key is handled at runtime via
|
|
218
|
+
* the `optional: true` flag on the output's `RecordOutputSpec` —
|
|
219
|
+
* the executor deletes any previously-emitted output at that id, or
|
|
220
|
+
* silently no-ops if none exists. For `shape: 'array'` outputs, null
|
|
221
|
+
* / undefined is treated as an empty array (clears all prior rows for
|
|
222
|
+
* that source). The *top-level* return must always be a `TOutputs`
|
|
223
|
+
* object; returning `null` for the whole result is not supported.
|
|
224
|
+
* (MV `unionSources` map drop-row is the analogous feature for
|
|
225
|
+
* materialized views.)
|
|
226
|
+
*/
|
|
227
|
+
derive: (source: TSource, ctx: DerivationContext) => Promise<TOutputs> | TOutputs;
|
|
228
|
+
/**
|
|
229
|
+
* `'eager'` runs `derive` synchronously inside the source-write
|
|
230
|
+
* transaction. `'lazy'` marks outputs stale on source-change and
|
|
231
|
+
* derives on first read.
|
|
232
|
+
*/
|
|
233
|
+
lifecycle: 'eager' | 'lazy' | {
|
|
234
|
+
mode: 'eager' | 'lazy';
|
|
235
|
+
maxDepth?: number;
|
|
236
|
+
};
|
|
237
|
+
/**
|
|
238
|
+
* `true` = any output failure rolls back the source write (only with
|
|
239
|
+
* `withTransactions`). `false` = isolate per-output failure, log,
|
|
240
|
+
* continue. Default `false`.
|
|
241
|
+
*/
|
|
242
|
+
strict?: boolean;
|
|
243
|
+
}
|
|
244
|
+
/** Returned by `withDerivation()` and consumed by `createNoydb`. */
|
|
245
|
+
export interface DerivationStrategyHandle {
|
|
246
|
+
readonly __noydb_strategy: 'derivation';
|
|
247
|
+
readonly spec: DerivationStrategy<any, any>;
|
|
248
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { DerivationStrategy, DerivationStrategyHandle } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Register a deterministic derivation: one source collection → one or
|
|
4
|
+
* more typed outputs, computed by the user's `derive` function on
|
|
5
|
+
* plaintext after DEK unwrap. Outputs are encrypted with the same DEK
|
|
6
|
+
* as the source and written via the standard `Collection.put` path.
|
|
7
|
+
*
|
|
8
|
+
* See docs/superpowers/specs/2026-05-01-dim14-derivation-v1-design.md.
|
|
9
|
+
*/
|
|
10
|
+
export declare function withDerivation<TSource extends Record<string, unknown>, TOutputs extends Record<string, Record<string, unknown> | ReadonlyArray<Record<string, unknown>>>>(spec: DerivationStrategy<TSource, TOutputs>): DerivationStrategyHandle;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { DerivationStrategyHandle } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* `withRollup` — aggregate many child records onto a single field of their
|
|
4
|
+
* parent. The reverse of a join: instead of reading children
|
|
5
|
+
* on demand, the parent carries a maintained summary.
|
|
6
|
+
*
|
|
7
|
+
* ```ts
|
|
8
|
+
* withRollup<Sale, Buyer>({
|
|
9
|
+
* from: 'sales', // child collection (the trigger)
|
|
10
|
+
* key: 'buyerId', // FK on the child → parent id
|
|
11
|
+
* into: 'buyers', // parent collection
|
|
12
|
+
* field: 'revenueByYear', // field on the parent to maintain
|
|
13
|
+
* compute: (sales) => groupSumByYear(sales, 'total'),
|
|
14
|
+
* })
|
|
15
|
+
* ```
|
|
16
|
+
*
|
|
17
|
+
* On every write OR delete of a `from` record, the parent at id `child[key]`
|
|
18
|
+
* is recomputed: `compute(allChildren where child[key] === parentId)` is
|
|
19
|
+
* patched onto `parent[field]`. A parent write also recomputes its own
|
|
20
|
+
* aggregate (so a parent created after its children still fills in). Only the
|
|
21
|
+
* `field` is touched — the rest of the parent record is never clobbered — and
|
|
22
|
+
* a value-equality guard suppresses no-op writes. The aggregate is gap-free
|
|
23
|
+
* with respect to child inserts, updates, and deletes.
|
|
24
|
+
*
|
|
25
|
+
* Desugars to a `withDerivation` strategy carrying a `rollup` marker; dispatch
|
|
26
|
+
* handles it without invoking the executor. Eager-only in this slice.
|
|
27
|
+
*/
|
|
28
|
+
export declare function withRollup<TChild extends Record<string, unknown> = Record<string, unknown>, TParent extends Record<string, unknown> = Record<string, unknown>>(config: {
|
|
29
|
+
from: string;
|
|
30
|
+
key: keyof TChild & string;
|
|
31
|
+
into: string;
|
|
32
|
+
field: keyof TParent & string;
|
|
33
|
+
compute: (children: TChild[]) => unknown;
|
|
34
|
+
}): DerivationStrategyHandle;
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import type { Query } from '../../kernel/query/builder.js';
|
|
2
|
+
import type { MaterializedViewStrategy } from './types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Walks a `Query<T>` plan and returns the set of source collection
|
|
5
|
+
* names that any source-write should trigger a refresh on.
|
|
6
|
+
*
|
|
7
|
+
* Handles:
|
|
8
|
+
* - root collection (the one the query was built from)
|
|
9
|
+
* - FK join targets (`.join(field, { as })`)
|
|
10
|
+
*
|
|
11
|
+
* Also handles:
|
|
12
|
+
* - cross-join targets (`.crossJoin(target, { as })`) — v3
|
|
13
|
+
*
|
|
14
|
+
* Deferred:
|
|
15
|
+
* - `.wherePredicate(name)` — v2 predicate primitive
|
|
16
|
+
* - Overlay-name expansion to {base, overlay}
|
|
17
|
+
*
|
|
18
|
+
* The set is materialized at MV registration time. The MV registry
|
|
19
|
+
* uses it to (a) dispatch `onSourceWrite` only to MVs that actually
|
|
20
|
+
* care, and (b) contribute edges to the shared cycle-detection graph.
|
|
21
|
+
*/
|
|
22
|
+
export declare function analyzeDependencies(query: Query<any>): Set<string>;
|
|
23
|
+
/**
|
|
24
|
+
* Convenience: produce a stable string summary of the query plan
|
|
25
|
+
* suitable for `queryHash` derivation. Captures everything the
|
|
26
|
+
* dependency analyzer reads + the where/orderBy/limit/offset
|
|
27
|
+
* structure that affects materialized rows.
|
|
28
|
+
*
|
|
29
|
+
* `joinContext` is intentionally NOT included — the join-resolution
|
|
30
|
+
* function references would defeat hash determinism. The set of join
|
|
31
|
+
* TARGETS (collection names) IS included via the plan.joins legs.
|
|
32
|
+
*/
|
|
33
|
+
export declare function summarizeQueryPlan(query: Query<any>): string;
|
|
34
|
+
/**
|
|
35
|
+
* Canonical string description of a UNION MV's plan, used as input to
|
|
36
|
+
* `computeQueryHash`.
|
|
37
|
+
*
|
|
38
|
+
* Asymmetry note:
|
|
39
|
+
* - Arm collection names are NOT sorted. Declaration order is
|
|
40
|
+
* semantically meaningful for the dedup-only UNION path —
|
|
41
|
+
* `materializeUnionResult` iterates `spec.unionSources` in
|
|
42
|
+
* declaration order and keeps the first-seen row per composite key
|
|
43
|
+
* (tie-break precedence). If we sorted arms here, a consumer who
|
|
44
|
+
* reordered `unionSources` to change precedence would compute the
|
|
45
|
+
* same `queryHash`, refresh would be a no-op, and stale MV rows
|
|
46
|
+
* would persist. Hashing in declaration order makes any reorder
|
|
47
|
+
* trigger a refresh.
|
|
48
|
+
* - `groupBy` fields ARE sorted. Multi-key groupBy buckets are
|
|
49
|
+
* commutative (`canonicalGroupKey` produces the same composite key
|
|
50
|
+
* regardless of field order in the input spec).
|
|
51
|
+
* - `aggregate` keys ARE sorted. Reducer-spec keys are independent
|
|
52
|
+
* of each other — order of declaration doesn't change output.
|
|
53
|
+
*
|
|
54
|
+
* Per-arm `map` functions are NOT fingerprinted; consumers must bump
|
|
55
|
+
* the MV's `name` (or rely on application-level cache busting) when
|
|
56
|
+
* `map` semantics change non-equivalently.
|
|
57
|
+
*/
|
|
58
|
+
export declare function summarizeUnionPlan<T extends Record<string, unknown>>(spec: MaterializedViewStrategy<T>): string;
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import type { Collection } from '../../kernel/collection.js';
|
|
2
|
+
import type { TxContext } from '../../with-commit/tx/transaction.js';
|
|
3
|
+
import type { MVQueryContext } from './types.js';
|
|
4
|
+
import type { RegisteredMV } from './registry.js';
|
|
5
|
+
import { type PutDerivedOutputCtx } from '../../kernel/via/dispatch.js';
|
|
6
|
+
/**
|
|
7
|
+
* Accessor shape passed in from the owning Vault. Mirrors v1's
|
|
8
|
+
* `DerivationStaleAccessor` — provides the per-collection resolver
|
|
9
|
+
* and the active TxContext so refresh writes/tombstones register on
|
|
10
|
+
* `_executed` for rollback symmetry.
|
|
11
|
+
*/
|
|
12
|
+
export interface MVExecutorAccessor {
|
|
13
|
+
getCollection(name: string): Collection<any>;
|
|
14
|
+
getActiveTxContext(): TxContext | null;
|
|
15
|
+
/**
|
|
16
|
+
* Vault-shaped accessor passed to the MV's `query()` callback at
|
|
17
|
+
* each refresh. Same instance the registry used at registration
|
|
18
|
+
* time; threading through the executor lets the refresh path
|
|
19
|
+
* re-evaluate the closure against the live vault state.
|
|
20
|
+
*/
|
|
21
|
+
getQueryContext(): MVQueryContext;
|
|
22
|
+
/**
|
|
23
|
+
* #638 Task 5 — ctx for `putDerivedOutput`'s frozen-period skip+audit. #641: the lazy
|
|
24
|
+
* resolve-on-read caller (`stale.ts#resolveStaleMVOnRead`) now supplies one too — built at
|
|
25
|
+
* the `Collection.get()`/`list()` entry point with a `'resolve-on-read'` sentinel id (no
|
|
26
|
+
* real "reacting write" for a read-triggered materialize, mirroring `refreshView()`'s
|
|
27
|
+
* `'refreshView'` sentinel). Still declared optional here since `MVExecutorAccessor` is a
|
|
28
|
+
* general shape and a future caller could reasonably omit it.
|
|
29
|
+
*/
|
|
30
|
+
dispatchCtx?: PutDerivedOutputCtx;
|
|
31
|
+
}
|
|
32
|
+
export interface RefreshResult {
|
|
33
|
+
/** Rows newly written / overwritten. */
|
|
34
|
+
written: number;
|
|
35
|
+
/** Rows tombstoned via `_internalDelete` (only when `onEmpty: 'delete'`). */
|
|
36
|
+
deleted: number;
|
|
37
|
+
/** Failed row writes (non-strict mode). */
|
|
38
|
+
failed: number;
|
|
39
|
+
/** #782/#785 — `outputCollection:id` entries from the tombstone pass whose ownership stamp
|
|
40
|
+
* couldn't be decoded under the collection's default DEK (undecodable, mirroring
|
|
41
|
+
* `invalidateMVAtRest`'s #776 posture) — ownership UNCONFIRMED. Only populated when
|
|
42
|
+
* `onEmpty: 'delete'`. */
|
|
43
|
+
residueUndecodable: string[];
|
|
44
|
+
/** #782/#785 — `outputCollection:id` entries that decoded, stamp-matched this MV, but
|
|
45
|
+
* `_internalDelete` declined (the #718 tier-elevation gate) — ownership CONFIRMED, a real
|
|
46
|
+
* silent survival, surfaced rather than dropped. Only populated when `onEmpty: 'delete'`. */
|
|
47
|
+
residueDeclined: string[];
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Run an MV's `query()` and write the result rows to the output
|
|
51
|
+
* collection. Same-DEK encryption: routes through the standard
|
|
52
|
+
* `Collection.put` pipeline, so the output collection's DEK is what
|
|
53
|
+
* gets used (matches the v2 spec's "same DEK as the left-most source"
|
|
54
|
+
* invariant — `Collection.put` looks up the DEK by collection name,
|
|
55
|
+
* and the output collection IS the MV's owned collection).
|
|
56
|
+
*
|
|
57
|
+
* Stamps `_materializedFrom` onto every emitted row.
|
|
58
|
+
*
|
|
59
|
+
* **Tombstoning:** when `spec.onEmpty: 'delete'` (default), rows
|
|
60
|
+
* that existed in a prior refresh but no longer appear in the new
|
|
61
|
+
* materialized result are deleted via `Collection._internalDelete` —
|
|
62
|
+
* the housekeeping bypass primitive prevents user
|
|
63
|
+
* `onDelete` guards on the output collection from firing on these
|
|
64
|
+
* system-internal deletes. `onEmpty: 'keep'` opts out (rows from
|
|
65
|
+
* prior refreshes linger even when the new result lacks them).
|
|
66
|
+
*
|
|
67
|
+
* **Cost ceiling:** if the materialized row count exceeds
|
|
68
|
+
* `spec.maxRows` (default 100k), throws `MaterializedViewTooLargeError`
|
|
69
|
+
* before any writes hit the store — so strict-mode rollback is
|
|
70
|
+
* clean.
|
|
71
|
+
*
|
|
72
|
+
* **Strict mode:** `spec.strict === true` re-throws on any
|
|
73
|
+
* row-write failure; the active TxContext registration means the
|
|
74
|
+
* source-write rolls back atomically via `revertExecuted`.
|
|
75
|
+
*
|
|
76
|
+
* @internal
|
|
77
|
+
*/
|
|
78
|
+
export declare const MaterializedViewExecutor: {
|
|
79
|
+
refresh(reg: RegisteredMV, accessor: MVExecutorAccessor): Promise<RefreshResult>;
|
|
80
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export { withMaterializedView } from './with-materialized-view.js';
|
|
2
|
+
export { MaterializedViewRegistry } from './registry.js';
|
|
3
|
+
export { MaterializedViewExecutor } from './executor.js';
|
|
4
|
+
export { analyzeDependencies, summarizeQueryPlan } from './dependency-analyzer.js';
|
|
5
|
+
export { computeQueryHash, canonicalizeQueryPlan } from './query-hash.js';
|
|
6
|
+
export { markMVStale, resolveStaleMVOnRead, isMVStale, clearMVStale } from './stale.js';
|
|
7
|
+
export type { MVStaleAccessor } from './stale.js';
|
|
8
|
+
export type { MaterializedViewStrategy, MaterializedViewStrategyHandle, MaterializedViewOutput, MaterializedFromMeta, UnionSource, UnionArmJoin, } from './types.js';
|
|
9
|
+
export type { RegisteredMV } from './registry.js';
|
|
10
|
+
export type { MVExecutorAccessor, RefreshResult } from './executor.js';
|
|
11
|
+
export { MaterializedViewCycleError, MaterializedViewConfigError, MaterializedViewSourceUnknownError, MaterializedViewTooLargeError, } from '../../kernel/errors.js';
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export declare function computeQueryHash(mvName: string,
|
|
2
|
+
/**
|
|
3
|
+
* Source-collection set the query depends on. Sorted before
|
|
4
|
+
* canonicalization so set iteration order doesn't affect the hash.
|
|
5
|
+
*/
|
|
6
|
+
dependencies: ReadonlySet<string>,
|
|
7
|
+
/**
|
|
8
|
+
* Stringified query-plan summary. The caller produces this from the
|
|
9
|
+
* `Query<T>` builder — concretely: a JSON serialization of clauses +
|
|
10
|
+
* orderBy + limit + offset + joins. Function bodies inside
|
|
11
|
+
* `wherePredicate` are NOT included here (those carry their own
|
|
12
|
+
* `predicateHash` to be folded in by a later sub-issue).
|
|
13
|
+
*/
|
|
14
|
+
queryPlanSummary: string): Promise<string>;
|
|
15
|
+
/**
|
|
16
|
+
* Canonicalize a query plan for hashing. Walks the plan structure
|
|
17
|
+
* with sorted keys so insertion order doesn't perturb the result.
|
|
18
|
+
* Lives here rather than in `query/builder.ts` to keep that module
|
|
19
|
+
* stable across MV-specific evolutions.
|
|
20
|
+
*
|
|
21
|
+
* @internal exported for testing
|
|
22
|
+
*/
|
|
23
|
+
export declare function canonicalizeQueryPlan(plan: unknown): string;
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import type { ViaGraph, FieldRef, EdgeKind, Grain } from '../../kernel/via/graph.js';
|
|
2
|
+
import type { FieldClause } from '../../kernel/query/predicate.js';
|
|
3
|
+
import type { MaterializedViewStrategy, MVQueryContext } from './types.js';
|
|
4
|
+
/**
|
|
5
|
+
* One registered MV strategy alongside its derived metadata. Stored
|
|
6
|
+
* type-erased on `TRow` so the registry can hold heterogeneous MVs.
|
|
7
|
+
*/
|
|
8
|
+
export interface RegisteredMV {
|
|
9
|
+
readonly spec: MaterializedViewStrategy<any>;
|
|
10
|
+
/** Output collection name (`spec.output?.collection ?? spec.name`). */
|
|
11
|
+
readonly outputCollection: string;
|
|
12
|
+
/** Set of source collections; populated at registration via the analyzer. */
|
|
13
|
+
readonly dependencies: ReadonlySet<string>;
|
|
14
|
+
/** Canonical `queryHash` — `_materializedFrom.queryHash` for every emitted row. */
|
|
15
|
+
readonly queryHash: string;
|
|
16
|
+
/**
|
|
17
|
+
* Top-level FieldClauses on the partition field, captured at
|
|
18
|
+
* registration time. Used by the cycle detector to resolve
|
|
19
|
+
* same-collection-as-source edges via the partition-discriminator
|
|
20
|
+
* check. Empty when `spec.output?.partition` is undefined.
|
|
21
|
+
*/
|
|
22
|
+
readonly partitionClauses: readonly FieldClause[];
|
|
23
|
+
/**
|
|
24
|
+
* #638 Task 2 — `'record'` for a row-per-source-row Query<T> or
|
|
25
|
+
* `unionSources` MV, `'aggregate'` for a `.groupBy().aggregate()` MV
|
|
26
|
+
* (the shape that requires explicit `sources`, since the dependency
|
|
27
|
+
* analyzer can't walk an aggregate plan). Feeds `edges()`'s grain.
|
|
28
|
+
*/
|
|
29
|
+
readonly grain: Grain;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Vault-internal registry of MV strategies. Owned by `Vault`; not
|
|
33
|
+
* exported. Parallel to v1's `DerivationRegistry`; the two graphs share
|
|
34
|
+
* a single cycle-detection pass at vault open (see `validate`).
|
|
35
|
+
*
|
|
36
|
+
* @internal
|
|
37
|
+
*/
|
|
38
|
+
export declare class MaterializedViewRegistry {
|
|
39
|
+
/** Keyed by `spec.name`. */
|
|
40
|
+
private readonly _byName;
|
|
41
|
+
/** Keyed by dependency source-collection → MVs that depend on it. */
|
|
42
|
+
private readonly _bySource;
|
|
43
|
+
/**
|
|
44
|
+
* Register an MV. Invokes `spec.query()` once at registration time to
|
|
45
|
+
* read the plan + join context; the resulting `Query<T>` is discarded
|
|
46
|
+
* after dependency extraction. `vault.collection(...)` must therefore
|
|
47
|
+
* be functional by the time this runs — typically wired from
|
|
48
|
+
* `Vault._initMaterializedViews` after collection bootstrap.
|
|
49
|
+
*
|
|
50
|
+
* Throws `MaterializedViewSourceUnknownError` if the analyzer
|
|
51
|
+
* surfaces a dependency the vault doesn't know about (when a
|
|
52
|
+
* `knownCollections` checker is supplied).
|
|
53
|
+
*/
|
|
54
|
+
register(spec: MaterializedViewStrategy<any>, db: MVQueryContext, options?: {
|
|
55
|
+
knownCollections?: (name: string) => boolean;
|
|
56
|
+
}): Promise<void>;
|
|
57
|
+
/** All MVs that depend on `source`, in registration order. */
|
|
58
|
+
mvsForSource(source: string): ReadonlyArray<RegisteredMV>;
|
|
59
|
+
/** Single MV by name, or `undefined`. */
|
|
60
|
+
byName(name: string): RegisteredMV | undefined;
|
|
61
|
+
/** Iterate over every registered MV. */
|
|
62
|
+
all(): ReadonlyArray<RegisteredMV>;
|
|
63
|
+
/**
|
|
64
|
+
* Graph edges for #638 Task 2: one `'mv'` edge per registered MV — target
|
|
65
|
+
* = the output collection (a `WHOLE_RECORD` artifact node), sources =
|
|
66
|
+
* every dependency (also `WHOLE_RECORD` nodes). Same-collection edges
|
|
67
|
+
* (`dep === outputCollection`) are skipped IFF the MV declares an
|
|
68
|
+
* `output.partition` discriminator AND the query has a where-clause that
|
|
69
|
+
* provably excludes the partition value (`partitionDisjoint`) — the SAME
|
|
70
|
+
* condition the old local DFS used. Grain comes from the registration-time
|
|
71
|
+
* `RegisteredMV.grain`.
|
|
72
|
+
*/
|
|
73
|
+
edges(): ReadonlyArray<{
|
|
74
|
+
readonly target: FieldRef;
|
|
75
|
+
readonly sources: readonly FieldRef[];
|
|
76
|
+
readonly kind: EdgeKind;
|
|
77
|
+
readonly grain: Grain;
|
|
78
|
+
}>;
|
|
79
|
+
/**
|
|
80
|
+
* Cycle detection, delegated to `ViaGraph.assertAcyclic()` (#638 Task 2 —
|
|
81
|
+
* retires the local DFS). `graph` is the caller's shared per-vault graph,
|
|
82
|
+
* ALREADY carrying this registry's `edges()` AND `DerivationRegistry`'s
|
|
83
|
+
* (registered by the caller — see `Vault._initMaterializedViews`, which
|
|
84
|
+
* runs after `_initDerivations`, so a pure-derivation cycle already threw
|
|
85
|
+
* `DerivationCycleError` there; any cycle surfacing here necessarily
|
|
86
|
+
* touches an MV edge). Throws `MaterializedViewCycleError` — SAME class as
|
|
87
|
+
* before.
|
|
88
|
+
*/
|
|
89
|
+
validate(graph: ViaGraph): void;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Wrap an `MVQueryContext` so its `.collection().query()` returns a
|
|
93
|
+
* Query<T> with the MV's declared predicates attached. Bare Queries
|
|
94
|
+
* (outside of any MV) don't gain `.wherePredicate()` — only Queries
|
|
95
|
+
* obtained through this wrapped db do.
|
|
96
|
+
*
|
|
97
|
+
* @internal
|
|
98
|
+
*/
|
|
99
|
+
export declare function wrapDbWithPredicates(db: MVQueryContext, predicates: NonNullable<MaterializedViewStrategy<Record<string, unknown>>['predicates']>): MVQueryContext;
|