@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,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Commit-time changeset invariants for ordinary transactions.
|
|
3
|
+
*
|
|
4
|
+
* Today the only set-level invariant hook is `amendment.invariant`, which
|
|
5
|
+
* fires solely inside `db.transaction({ amendment: true }, …)` and requires
|
|
6
|
+
* an admin/owner role plus a registered guard. That is the right shape for
|
|
7
|
+
* the WORM-override path, but normal application transactions also need
|
|
8
|
+
* cross-record invariants that hold on every commit — e.g. niwat's
|
|
9
|
+
* `assertR1` ("every payment is 100% receipted").
|
|
10
|
+
*
|
|
11
|
+
* `withTransactions({ invariants: [...] })` registers such invariants. Each
|
|
12
|
+
* one names a `scope` (a collection) and a `check(changes, ctx)` callback
|
|
13
|
+
* that receives the commit's change-set for that collection.
|
|
14
|
+
*
|
|
15
|
+
* ## Semantics
|
|
16
|
+
*
|
|
17
|
+
* - **`scope`** is a collection name. An invariant fires only when the
|
|
18
|
+
* committed transaction wrote at least one record in that collection.
|
|
19
|
+
* - **When** — at commit, AFTER Phase 2 has executed all staged ops (so
|
|
20
|
+
* `after` reflects the written record), and after the amendment commit
|
|
21
|
+
* phase. It runs for BOTH ordinary and amendment transactions — an
|
|
22
|
+
* amendment is still a commit and is still subject to these invariants.
|
|
23
|
+
* - **`changes`** — one `{ before, after }` pair per touched id (deduped to
|
|
24
|
+
* the last write per id, preserving write order). `before` is the
|
|
25
|
+
* plaintext prior record (captured in Phase 1 before the overwrite),
|
|
26
|
+
* `null` for an insert. `after` is the written record, `null` for a
|
|
27
|
+
* delete.
|
|
28
|
+
* - **Throw → revert.** A throw reverts every executed op (via the shared
|
|
29
|
+
* `revertExecuted` unwind) and is surfaced as `InvariantError` (an
|
|
30
|
+
* `InvariantError` thrown by the check passes through unwrapped).
|
|
31
|
+
*
|
|
32
|
+
* ```ts
|
|
33
|
+
* createNoydb({ txStrategy: withTransactions({
|
|
34
|
+
* invariants: [{
|
|
35
|
+
* scope: 'payments',
|
|
36
|
+
* check(changes) {
|
|
37
|
+
* for (const { after } of changes) {
|
|
38
|
+
* const p = after as Payment | null
|
|
39
|
+
* if (p && p.receiptAmount !== p.amount) {
|
|
40
|
+
* throw new InvariantError('R1: payment not fully receipted')
|
|
41
|
+
* }
|
|
42
|
+
* }
|
|
43
|
+
* },
|
|
44
|
+
* }],
|
|
45
|
+
* }) })
|
|
46
|
+
* ```
|
|
47
|
+
*/
|
|
48
|
+
import type { GuardChange, GuardContext } from '../../with-audit/guards/types.js';
|
|
49
|
+
/**
|
|
50
|
+
* A commit-time set-level invariant for ordinary (and amendment)
|
|
51
|
+
* transactions. See module docs for full semantics.
|
|
52
|
+
*/
|
|
53
|
+
export interface TransactionInvariant {
|
|
54
|
+
/**
|
|
55
|
+
* The collection this invariant watches. The `check` fires only when the
|
|
56
|
+
* committed transaction wrote at least one record in this collection.
|
|
57
|
+
*/
|
|
58
|
+
readonly scope: string;
|
|
59
|
+
/**
|
|
60
|
+
* Validate the change-set for {@link scope}. `changes` carries one
|
|
61
|
+
* `{ before, after }` pair per touched id (deduped to last-write,
|
|
62
|
+
* write-order preserved); `before` is the plaintext prior record (null
|
|
63
|
+
* on insert), `after` is the written record (null on delete). Throw to
|
|
64
|
+
* revert the whole transaction — the throw is surfaced as
|
|
65
|
+
* `InvariantError`.
|
|
66
|
+
*/
|
|
67
|
+
check: (changes: ReadonlyArray<GuardChange<unknown>>, ctx: GuardContext<unknown>) => Promise<void> | void;
|
|
68
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Strategy seam for the optional multi-record transaction service.
|
|
3
|
+
* `runTransaction` is only reachable through `withTransactions()`
|
|
4
|
+
* exported from `@noy-db/hub/tx`. Consumers who don't use
|
|
5
|
+
* `db.transaction(fn)` ship none of the ~288 LOC.
|
|
6
|
+
*
|
|
7
|
+
* @internal
|
|
8
|
+
*/
|
|
9
|
+
import type { Noydb } from '../../kernel/noydb.js';
|
|
10
|
+
import type { TxContext, AmendmentTxOptions } from './transaction.js';
|
|
11
|
+
import type { DryRunResult } from './dry-run.js';
|
|
12
|
+
import type { TransactionInvariant } from './invariants.js';
|
|
13
|
+
/**
|
|
14
|
+
* @internal
|
|
15
|
+
*/
|
|
16
|
+
export interface TxStrategy {
|
|
17
|
+
runTransaction<T>(db: Noydb, fn: (tx: TxContext) => Promise<T> | T, options?: AmendmentTxOptions, txInvariants?: ReadonlyArray<TransactionInvariant>): Promise<T>;
|
|
18
|
+
runDryRun(db: Noydb, fn: (tx: TxContext) => unknown): Promise<DryRunResult>;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* @internal
|
|
22
|
+
*/
|
|
23
|
+
export declare const NO_TX: TxStrategy;
|
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Multi-record atomic transactions.
|
|
3
|
+
*
|
|
4
|
+
* Lets an application stage writes across two or more collections (or
|
|
5
|
+
* vaults) and commit them all-or-nothing.
|
|
6
|
+
*
|
|
7
|
+
* ```ts
|
|
8
|
+
* await db.transaction(async (tx) => {
|
|
9
|
+
* const inv = tx.vault('acme').collection<Invoice>('invoices')
|
|
10
|
+
* const pay = tx.vault('acme').collection<Payment>('payments')
|
|
11
|
+
* await inv.put(invoiceId, { ...invoice, status: 'paid' })
|
|
12
|
+
* await pay.put(paymentId, { invoiceId, amount, paidAt })
|
|
13
|
+
* })
|
|
14
|
+
* // If the body throws before returning: nothing persisted.
|
|
15
|
+
* // If the body returns: all puts committed; any CAS mismatch rolls
|
|
16
|
+
* // the batch back and surfaces as ConflictError.
|
|
17
|
+
* ```
|
|
18
|
+
*
|
|
19
|
+
* ## Atomicity semantics
|
|
20
|
+
*
|
|
21
|
+
* Ops are buffered during the body. On body-return the hub:
|
|
22
|
+
*
|
|
23
|
+
* 1. **Pre-flight** — re-reads every touched envelope and enforces
|
|
24
|
+
* any caller-supplied `expectedVersion`. A mismatch throws
|
|
25
|
+
* `ConflictError` with *no* writes performed.
|
|
26
|
+
* 2. **Execute** — calls `Collection.put()` / `.delete()` for each
|
|
27
|
+
* staged op in declaration order. History snapshots, ledger
|
|
28
|
+
* appends, and change events fire as normal per op.
|
|
29
|
+
* 3. **Unwind on failure** — if step 2 throws mid-batch, each
|
|
30
|
+
* already-committed op is reverted via the raw store (restoring
|
|
31
|
+
* the captured prior envelope, or deleting if none existed). The
|
|
32
|
+
* ledger is NOT rewritten — audit history preserves the partial
|
|
33
|
+
* commit and the revert.
|
|
34
|
+
*
|
|
35
|
+
* **Crash window.** Steps 2–3 are not a storage-layer transaction —
|
|
36
|
+
* if the process dies between two executed ops, the on-disk state is
|
|
37
|
+
* partial. True all-or-nothing atomicity requires a store that
|
|
38
|
+
* implements `NoydbStore.tx()` (DynamoDB `TransactWriteItems`,
|
|
39
|
+
* IndexedDB `readwrite` transaction, …). This executor declares
|
|
40
|
+
* that future integration point via the `tx?()` method + the
|
|
41
|
+
* `StoreCapabilities.txAtomic` bit, but does not yet delegate
|
|
42
|
+
* to it — the cascade into `Fork · Stores` tracks the per-adapter
|
|
43
|
+
* wire-up.
|
|
44
|
+
*
|
|
45
|
+
* ## Not covered
|
|
46
|
+
*
|
|
47
|
+
* - Cross-sync-peer atomicity. Transactions commit against the
|
|
48
|
+
* primary store only; the sync engine pushes on its normal
|
|
49
|
+
* schedule. For cross-peer two-phase commit use `SyncTransaction`
|
|
50
|
+
* via `db.transaction(vaultName)`.
|
|
51
|
+
* - Read-your-writes within the body. `tx.collection().get(id)`
|
|
52
|
+
* returns the most-recently-staged value for that id when one
|
|
53
|
+
* exists; if no staged op has touched the id, it reads the current
|
|
54
|
+
* committed state. Version numbers returned by `get` reflect the
|
|
55
|
+
* pre-transaction state (staged puts have no version yet).
|
|
56
|
+
*
|
|
57
|
+
* @module
|
|
58
|
+
*/
|
|
59
|
+
import type { Noydb } from '../../kernel/noydb.js';
|
|
60
|
+
import type { Vault } from '../../kernel/vault.js';
|
|
61
|
+
import type { Collection } from '../../kernel/collection.js';
|
|
62
|
+
import type { EncryptedEnvelope } from '../../kernel/types.js';
|
|
63
|
+
import type { TransactionInvariant } from './invariants.js';
|
|
64
|
+
/** One op buffered inside a running `TxContext`. @internal */
|
|
65
|
+
export interface StagedOp {
|
|
66
|
+
type: 'put' | 'delete';
|
|
67
|
+
vaultName: string;
|
|
68
|
+
collectionName: string;
|
|
69
|
+
id: string;
|
|
70
|
+
record?: unknown;
|
|
71
|
+
expectedVersion?: number;
|
|
72
|
+
/**
|
|
73
|
+
* Optional human-readable tag forwarded to the resulting ledger
|
|
74
|
+
* entry's `reason` field. Set by callers via
|
|
75
|
+
* `tx.vault(v).collection(c).put(id, record, { reason })`.
|
|
76
|
+
*/
|
|
77
|
+
reason?: string;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* One executed op (main staged op or recursive side-effect like a
|
|
81
|
+
* derivation output) paired with the envelope captured before the write.
|
|
82
|
+
* `revertExecuted` walks this array in reverse on rollback.
|
|
83
|
+
* @internal
|
|
84
|
+
*/
|
|
85
|
+
export interface ExecutedOp {
|
|
86
|
+
op: StagedOp;
|
|
87
|
+
priorEnvelope: EncryptedEnvelope | null;
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Options accepted by `db.transaction({ amendment, reason }, fn)`.
|
|
91
|
+
* Only the amendment variant uses these — a plain `db.transaction(fn)`
|
|
92
|
+
* never sees this shape.
|
|
93
|
+
*/
|
|
94
|
+
export interface AmendmentTxOptions {
|
|
95
|
+
/** Opt into amendment mode. Required to be `true`. */
|
|
96
|
+
readonly amendment: true;
|
|
97
|
+
/** Human-readable rationale recorded in the ledger entry. Required. */
|
|
98
|
+
readonly reason: string;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Transaction handle passed to the user's body. Use
|
|
102
|
+
* `tx.vault(name).collection<T>(name)` to get a per-collection
|
|
103
|
+
* facade; its `put`/`delete`/`get` calls stage ops against the tx.
|
|
104
|
+
*/
|
|
105
|
+
export declare class TxContext {
|
|
106
|
+
/** Stable id for this transaction; shared by all writes it performs. */
|
|
107
|
+
readonly txId: string;
|
|
108
|
+
/** @internal */
|
|
109
|
+
readonly _ops: StagedOp[];
|
|
110
|
+
/**
|
|
111
|
+
* @internal — write log built up in Phase 2. Each entry records the
|
|
112
|
+
* envelope captured BEFORE the write so a mid-batch failure can
|
|
113
|
+
* restore prior state via `revertExecuted`. Side-effect writes (e.g.
|
|
114
|
+
* recursive derivation outputs fired inside `Collection.put`) are
|
|
115
|
+
* appended here in execution order so they roll back alongside the
|
|
116
|
+
* main staged ops.
|
|
117
|
+
*/
|
|
118
|
+
readonly _executed: ExecutedOp[];
|
|
119
|
+
/** @internal */
|
|
120
|
+
readonly _db: Noydb;
|
|
121
|
+
/**
|
|
122
|
+
* @internal — true when this TxContext was opened in amendment
|
|
123
|
+
* mode. Toggles the lazy-`beginAmendment` + role-check path on first
|
|
124
|
+
* `tx.vault(name)` and unlocks the post-Phase-2 invariant + audit run.
|
|
125
|
+
*/
|
|
126
|
+
readonly _amendment: boolean;
|
|
127
|
+
/** @internal — vaults that have already had `beginAmendment` called. */
|
|
128
|
+
readonly _amendmentVaults: Map<string, Vault>;
|
|
129
|
+
/** @internal */
|
|
130
|
+
constructor(db: Noydb, amendment?: boolean);
|
|
131
|
+
/** Scope subsequent `collection()` calls to the named vault. */
|
|
132
|
+
vault(name: string): TxVault;
|
|
133
|
+
}
|
|
134
|
+
/** Per-vault facade inside a running transaction. */
|
|
135
|
+
export declare class TxVault {
|
|
136
|
+
/** @internal */
|
|
137
|
+
readonly _ctx: TxContext;
|
|
138
|
+
/** @internal */
|
|
139
|
+
readonly _vault: Vault;
|
|
140
|
+
/** @internal */
|
|
141
|
+
constructor(ctx: TxContext, vault: Vault);
|
|
142
|
+
/** Scope subsequent op calls to the named collection. */
|
|
143
|
+
collection<T>(name: string): TxCollection<T>;
|
|
144
|
+
}
|
|
145
|
+
/** Per-collection facade inside a running transaction. */
|
|
146
|
+
export declare class TxCollection<T> {
|
|
147
|
+
/** @internal */
|
|
148
|
+
readonly _ctx: TxContext;
|
|
149
|
+
/** @internal */
|
|
150
|
+
readonly _vault: Vault;
|
|
151
|
+
/** @internal */
|
|
152
|
+
readonly _coll: Collection<T>;
|
|
153
|
+
/** @internal */
|
|
154
|
+
readonly _name: string;
|
|
155
|
+
/** @internal */
|
|
156
|
+
constructor(ctx: TxContext, vault: Vault, coll: Collection<T>, name: string);
|
|
157
|
+
/**
|
|
158
|
+
* Read the current committed value, or the most-recently-staged
|
|
159
|
+
* value from the same transaction if one exists.
|
|
160
|
+
*/
|
|
161
|
+
get(id: string): Promise<T | null>;
|
|
162
|
+
/**
|
|
163
|
+
* Stage a put. Does not write until the transaction body returns.
|
|
164
|
+
* Supply `{ expectedVersion }` to enforce optimistic concurrency
|
|
165
|
+
* during the commit pre-flight.
|
|
166
|
+
*/
|
|
167
|
+
put(id: string, record: T, options?: {
|
|
168
|
+
expectedVersion?: number;
|
|
169
|
+
reason?: string;
|
|
170
|
+
}): void;
|
|
171
|
+
/**
|
|
172
|
+
* Stage a delete. Does not write until the transaction body returns.
|
|
173
|
+
* Supply `{ expectedVersion }` to enforce optimistic concurrency
|
|
174
|
+
* during the commit pre-flight.
|
|
175
|
+
*/
|
|
176
|
+
delete(id: string, options?: {
|
|
177
|
+
expectedVersion?: number;
|
|
178
|
+
}): void;
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* Commit plan: pre-flight check + execution + revert plan.
|
|
182
|
+
*
|
|
183
|
+
* @internal — driven by `withTransactions()` (via `tx/active.ts`) for
|
|
184
|
+
* user-facing `db.transaction(...)` calls and by the `amendment` path
|
|
185
|
+
* in `noydb.ts`. `Collection.putManyAtomic` runs its own Phase 2 loop
|
|
186
|
+
* but shares the `_activeTxContext` mechanism (and the `revertExecuted`
|
|
187
|
+
* helper) so nested side-effect derivation writes get registered for
|
|
188
|
+
* revert alongside the bulk-put source ops.
|
|
189
|
+
*/
|
|
190
|
+
export declare function runTransaction<T>(db: Noydb, fn: (tx: TxContext) => Promise<T> | T, options?: AmendmentTxOptions, txInvariants?: ReadonlyArray<TransactionInvariant>): Promise<T>;
|
|
191
|
+
/**
|
|
192
|
+
* Phase 3 helper — restore captured prior envelopes via the raw store
|
|
193
|
+
* to avoid re-firing Collection-level side effects (we don't want a
|
|
194
|
+
* cascade of change events undoing themselves). The ledger is left
|
|
195
|
+
* as-is: each committed op appended an entry; the revert is
|
|
196
|
+
* deliberately NOT recorded as a compensating entry because the
|
|
197
|
+
* caller-facing contract is "atomic or not at all," not "every write
|
|
198
|
+
* visible in the audit trail." Auditors who need the intermediate
|
|
199
|
+
* state can still reconstruct it by walking the ledger through the
|
|
200
|
+
* failed-tx timestamp.
|
|
201
|
+
*
|
|
202
|
+
* Delegates the reverse/best-effort/raw-revert shape to the shared
|
|
203
|
+
* `bestEffortRevert` helper (`kernel/best-effort-revert.ts`); the cache
|
|
204
|
+
* invalidation below rides along as that helper's per-leg `compensate`
|
|
205
|
+
* callback, gated on `db` exactly as before.
|
|
206
|
+
*
|
|
207
|
+
* @internal — shared between `runTransaction` and
|
|
208
|
+
* `Collection.putManyAtomic`. Both register source ops + nested
|
|
209
|
+
* derivation side-effect ops onto `_executed`; this helper unwinds the
|
|
210
|
+
* combined list in reverse on rollback.
|
|
211
|
+
*/
|
|
212
|
+
export declare function revertExecuted(executed: ReadonlyArray<ExecutedOp>, store: Noydb['_store'], db?: Noydb): Promise<void>;
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Record cold-storage archival engine.
|
|
3
|
+
*
|
|
4
|
+
* Archival relocates a sealed record's **encrypted envelope** from the
|
|
5
|
+
* primary store to a cold archive store — no re-encryption, the envelope
|
|
6
|
+
* is opaque ciphertext. Because relocation goes through low-level store
|
|
7
|
+
* ops (and the collection's `_internalDelete`), it bypasses guards (an
|
|
8
|
+
* issued/immutable record can still be archived) and never fires
|
|
9
|
+
* materialized-view dispatch (finalized aggregates over a sealed period
|
|
10
|
+
* don't recompute). The archive store's contents are themselves the
|
|
11
|
+
* archived-set index — `listArchived` lists it; `restore` relocates an
|
|
12
|
+
* envelope back to the primary store.
|
|
13
|
+
*
|
|
14
|
+
* A `legalHold` predicate blocks archival; `archiveWhen` (typically
|
|
15
|
+
* derived from the record's fiscal period / business date) selects
|
|
16
|
+
* eligible records.
|
|
17
|
+
*/
|
|
18
|
+
import type { NoydbStore, EncryptedEnvelope } from '../../kernel/types.js';
|
|
19
|
+
export interface ArchivePolicy<T = unknown> {
|
|
20
|
+
/** Select records eligible for archival — typically a business-date / period test. */
|
|
21
|
+
readonly archiveWhen: (record: T) => boolean;
|
|
22
|
+
/** Block archival while true (litigation / audit hold). Fail-closed on throw. */
|
|
23
|
+
readonly legalHold?: (record: T) => boolean;
|
|
24
|
+
}
|
|
25
|
+
export interface ArchiveResult {
|
|
26
|
+
/** Records relocated to the archive store. */
|
|
27
|
+
readonly archived: number;
|
|
28
|
+
/** Records eligible by `archiveWhen` but retained by a `legalHold`. */
|
|
29
|
+
readonly held: number;
|
|
30
|
+
/** Records scanned across policy collections. */
|
|
31
|
+
readonly scanned: number;
|
|
32
|
+
readonly byCollection: Record<string, {
|
|
33
|
+
archived: number;
|
|
34
|
+
held: number;
|
|
35
|
+
}>;
|
|
36
|
+
}
|
|
37
|
+
export interface ArchiveRunOptions {
|
|
38
|
+
/** Stop after this many archivals. `undefined` = unbounded. */
|
|
39
|
+
readonly maxArchives?: number;
|
|
40
|
+
/** Preview without relocating. */
|
|
41
|
+
readonly dryRun?: boolean;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Everything the engine needs from the Vault, injected so the engine
|
|
45
|
+
* stays unit-testable without a live vault.
|
|
46
|
+
*/
|
|
47
|
+
export interface ArchiveContext {
|
|
48
|
+
readonly vaultId: string;
|
|
49
|
+
readonly archiveStore: NoydbStore;
|
|
50
|
+
/** Collections that declared an `archive` policy. */
|
|
51
|
+
collectionsWithPolicy(): readonly string[];
|
|
52
|
+
getPolicy(collection: string): ArchivePolicy | null;
|
|
53
|
+
listRecordIds(collection: string): Promise<readonly string[]>;
|
|
54
|
+
/** Decrypted record for policy evaluation, or null if unreadable. */
|
|
55
|
+
getRecord(collection: string, id: string): Promise<Record<string, unknown> | null>;
|
|
56
|
+
/** Raw encrypted envelope from the primary store. */
|
|
57
|
+
getEnvelope(collection: string, id: string): Promise<EncryptedEnvelope | null>;
|
|
58
|
+
/** Remove from the primary store + cache, bypassing guards/MV (`_internalDelete`). */
|
|
59
|
+
removeFromPrimary(collection: string, id: string): Promise<void>;
|
|
60
|
+
/** Write an envelope back to the primary store + refresh cache. */
|
|
61
|
+
restoreToPrimary(collection: string, id: string, env: EncryptedEnvelope): Promise<void>;
|
|
62
|
+
}
|
|
63
|
+
/** Sweep eligible records into the archive store. */
|
|
64
|
+
export declare function runArchive(ctx: ArchiveContext, options?: ArchiveRunOptions): Promise<ArchiveResult>;
|
|
65
|
+
/** Relocate one archived record back to the primary store. Returns false if not archived. */
|
|
66
|
+
export declare function runRestore(ctx: ArchiveContext, collection: string, id: string): Promise<boolean>;
|
|
67
|
+
/** List archived record ids for a collection (or all policy collections). */
|
|
68
|
+
export declare function runListArchived(ctx: ArchiveContext, collection?: string): Promise<Array<{
|
|
69
|
+
collection: string;
|
|
70
|
+
id: string;
|
|
71
|
+
}>>;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `@noy-db/hub` record cold-storage archival service.
|
|
3
|
+
*
|
|
4
|
+
* `withArchive({ store })` designates a cold {@link NoydbStore} as the
|
|
5
|
+
* archive target. Declare a per-collection `archive` policy, then call
|
|
6
|
+
* `vault.archive()` to relocate eligible sealed records there,
|
|
7
|
+
* `vault.restore(collection, id)` to pull one back, and
|
|
8
|
+
* `vault.listArchived()` to enumerate the cold set.
|
|
9
|
+
*
|
|
10
|
+
* @see ./engine for the relocation logic.
|
|
11
|
+
*/
|
|
12
|
+
import type { NoydbStore } from '../../kernel/types.js';
|
|
13
|
+
export interface WithArchiveOptions {
|
|
14
|
+
/** The cold store that holds archived record envelopes. */
|
|
15
|
+
store: NoydbStore;
|
|
16
|
+
}
|
|
17
|
+
export interface ArchiveStrategy {
|
|
18
|
+
readonly store: NoydbStore;
|
|
19
|
+
}
|
|
20
|
+
/** Enable record cold-storage archival against the given cold store. */
|
|
21
|
+
export declare function withArchive(opts: WithArchiveOptions): ArchiveStrategy;
|
|
22
|
+
export type { ArchivePolicy, ArchiveResult, ArchiveRunOptions, ArchiveContext, } from './engine.js';
|
|
23
|
+
export { runArchive, runRestore, runListArchived } from './engine.js';
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @noy-db/hub/shadow — opt-in vault-frame snapshot primitive.
|
|
3
|
+
*
|
|
4
|
+
* @category capability
|
|
5
|
+
*
|
|
6
|
+
* `VaultFrame` captures a point-in-time snapshot of a vault's
|
|
7
|
+
* decrypted records — useful for undo/redo UX, A/B comparisons, and
|
|
8
|
+
* tests that need a frozen view without a full `vault.dump()`.
|
|
9
|
+
* Consumers that don't use frames can omit this subpath and the
|
|
10
|
+
* ~129 LOC never reaches the bundle.
|
|
11
|
+
*/
|
|
12
|
+
export { withShadow } from './active.js';
|
|
13
|
+
export type { ShadowStrategy } from './strategy.js';
|
|
14
|
+
export { VaultFrame, CollectionFrame } from './vault-frame.js';
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Strategy seam for the optional VaultFrame snapshot primitive.
|
|
3
|
+
* Core imports `ShadowStrategy` as TYPE-ONLY and `NO_SHADOW` as a
|
|
4
|
+
* 4-line stub. `VaultFrame` is only constructed inside `withShadow()`
|
|
5
|
+
* — consumers who never import `@noy-db/hub/shadow` ship none of
|
|
6
|
+
* the ~129 LOC.
|
|
7
|
+
*
|
|
8
|
+
* @internal
|
|
9
|
+
*/
|
|
10
|
+
import type { VaultFrame } from './vault-frame.js';
|
|
11
|
+
/**
|
|
12
|
+
* @internal
|
|
13
|
+
*/
|
|
14
|
+
export interface ShadowStrategy {
|
|
15
|
+
/**
|
|
16
|
+
* Build a `VaultFrame` bound to the given vault. The factory type
|
|
17
|
+
* is kept loose (`unknown`) to avoid a core → shadow type
|
|
18
|
+
* dependency — the consumer always calls this through
|
|
19
|
+
* `vault.frame()`, which returns `VaultFrame` at its surface.
|
|
20
|
+
*/
|
|
21
|
+
buildFrame(vault: unknown): VaultFrame;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* No-shadow stub.
|
|
25
|
+
*
|
|
26
|
+
* @internal
|
|
27
|
+
*/
|
|
28
|
+
export declare const NO_SHADOW: ShadowStrategy;
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shadow vaults — `vault.frame()` returns a read-only view of the
|
|
3
|
+
* CURRENT vault state.
|
|
4
|
+
*
|
|
5
|
+
* Companion to {@link VaultInstant} from `history/time-machine.ts`:
|
|
6
|
+
*
|
|
7
|
+
* | Type | Reads from | Use case |
|
|
8
|
+
* |------|------------|----------|
|
|
9
|
+
* | `VaultInstant` | past snapshots (ledger + history) | "books on date X" |
|
|
10
|
+
* | `VaultFrame` | live vault state | screen-share / demo / audit |
|
|
11
|
+
*
|
|
12
|
+
* ```ts
|
|
13
|
+
* const readonly = vault.frame()
|
|
14
|
+
* const invoices = await readonly.collection<Invoice>('invoices').list()
|
|
15
|
+
* await readonly.collection<Invoice>('invoices').put(...)
|
|
16
|
+
* // → throws ReadOnlyFrameError
|
|
17
|
+
* ```
|
|
18
|
+
*
|
|
19
|
+
* ## Contract
|
|
20
|
+
*
|
|
21
|
+
* Every write method on {@link CollectionFrame} throws
|
|
22
|
+
* {@link ReadOnlyFrameError}. Reads delegate to the underlying
|
|
23
|
+
* collection, so validation, locale handling, and caching all work
|
|
24
|
+
* exactly as they do on the live collection.
|
|
25
|
+
*
|
|
26
|
+
* ## Security note: behaviour-enforced, not cryptographically-enforced
|
|
27
|
+
*
|
|
28
|
+
* A VaultFrame rejects writes by contract in the JavaScript layer.
|
|
29
|
+
* It does NOT strip the DEKs from the underlying keyring — the same
|
|
30
|
+
* in-memory keys that decrypt records could, in principle, encrypt
|
|
31
|
+
* new writes via a hand-crafted adapter call. Cryptographic
|
|
32
|
+
* enforcement (keyring variants with the write half of each DEK
|
|
33
|
+
* removed) is hierarchical-access work. Use a VaultFrame to
|
|
34
|
+
* prevent *accidental* writes in a read-scoped flow — do not rely on
|
|
35
|
+
* it as a security boundary against a hostile caller sharing the
|
|
36
|
+
* same process.
|
|
37
|
+
*
|
|
38
|
+
* @module
|
|
39
|
+
*/
|
|
40
|
+
import type { Collection } from '../../kernel/collection.js';
|
|
41
|
+
import type { Query } from '../../kernel/query/builder.js';
|
|
42
|
+
import type { Vault } from '../../kernel/vault.js';
|
|
43
|
+
import type { LocaleReadOptions } from '../../kernel/types.js';
|
|
44
|
+
/**
|
|
45
|
+
* A read-only view of a vault's current state. Produced by
|
|
46
|
+
* `vault.frame()`. Cheap to construct; safe to throw away.
|
|
47
|
+
*/
|
|
48
|
+
export declare class VaultFrame {
|
|
49
|
+
private readonly vault;
|
|
50
|
+
constructor(vault: Vault);
|
|
51
|
+
/**
|
|
52
|
+
* Get a read-only view of one collection. The returned
|
|
53
|
+
* {@link CollectionFrame} delegates all reads to the underlying
|
|
54
|
+
* live collection — cache, locale handling, and validation all
|
|
55
|
+
* work identically to the live collection.
|
|
56
|
+
*/
|
|
57
|
+
collection<T = unknown>(name: string): CollectionFrame<T>;
|
|
58
|
+
/** List all collection names visible in the underlying vault. */
|
|
59
|
+
collections(): Promise<string[]>;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Read-only collection view. All write methods throw
|
|
63
|
+
* {@link ReadOnlyFrameError}; all read methods delegate to the
|
|
64
|
+
* underlying live {@link Collection}.
|
|
65
|
+
*/
|
|
66
|
+
export declare class CollectionFrame<T = unknown> {
|
|
67
|
+
private readonly inner;
|
|
68
|
+
/** The underlying collection name. Captured at construction so
|
|
69
|
+
* we don't need to peek into the private Collection state. */
|
|
70
|
+
readonly name: string;
|
|
71
|
+
constructor(inner: Collection<T>,
|
|
72
|
+
/** The underlying collection name. Captured at construction so
|
|
73
|
+
* we don't need to peek into the private Collection state. */
|
|
74
|
+
name: string);
|
|
75
|
+
get(id: string, locale?: LocaleReadOptions): Promise<T | null>;
|
|
76
|
+
list(locale?: LocaleReadOptions): Promise<T[]>;
|
|
77
|
+
/**
|
|
78
|
+
* Return the chainable query builder. Terminals like `.toArray()`,
|
|
79
|
+
* `.first()`, `.count()`, `.aggregate()` all work; the builder has
|
|
80
|
+
* no write surface of its own, so exposing it directly is safe.
|
|
81
|
+
*/
|
|
82
|
+
query(): Query<T>;
|
|
83
|
+
query(predicate: (record: T) => boolean): T[];
|
|
84
|
+
/** History reads — allowed (history is read-only by nature). */
|
|
85
|
+
history(...args: Parameters<Collection<T>['history']>): ReturnType<Collection<T>['history']>;
|
|
86
|
+
getVersion(id: string, version: number): Promise<T | null>;
|
|
87
|
+
put(_id: string, _record: T): Promise<never>;
|
|
88
|
+
delete(_id: string): Promise<never>;
|
|
89
|
+
update(_id: string, _patch: Partial<T>): Promise<never>;
|
|
90
|
+
revert(_id: string, _version: number): Promise<never>;
|
|
91
|
+
putMany(_entries: ReadonlyArray<readonly [string, T]>): Promise<never>;
|
|
92
|
+
deleteMany(_ids: readonly string[]): Promise<never>;
|
|
93
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { SnapshotStrategy, RetentionPolicy } from './strategy.js';
|
|
2
|
+
import type { SnapshotPolicy } from './policy.js';
|
|
3
|
+
import type { NoydbPodStore } from '../../kernel/types.js';
|
|
4
|
+
export interface WithSnapshotsOptions {
|
|
5
|
+
/** Bundle store where snapshot blobs and the sidecar index are written. */
|
|
6
|
+
store: NoydbPodStore;
|
|
7
|
+
/**
|
|
8
|
+
* Declarative retention policy. Enforced eagerly after each on-demand `snapshot()`.
|
|
9
|
+
* Defaults to no retention (all on-demand snapshots kept forever). Never affects
|
|
10
|
+
* the rolling auto-snapshot.
|
|
11
|
+
*/
|
|
12
|
+
retention?: RetentionPolicy;
|
|
13
|
+
/**
|
|
14
|
+
* Automatic-snapshot cadence. Default `mode:'manual'` ⇒ no timers; snapshots
|
|
15
|
+
* stay on-demand. Set `mode:'debounce'`/`'interval'` to enable auto-snapshots
|
|
16
|
+
* to the rolling `<vault>__auto` key.
|
|
17
|
+
*/
|
|
18
|
+
snapshotPolicy?: SnapshotPolicy;
|
|
19
|
+
}
|
|
20
|
+
export declare function withSnapshots(opts: WithSnapshotsOptions): SnapshotStrategy;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { NoydbPodStore } from '../../kernel/types.js';
|
|
2
|
+
import type { Vault } from '../../kernel/vault.js';
|
|
3
|
+
import type { SnapshotMeta, RetentionPolicy, SnapshotIndex } from './strategy.js';
|
|
4
|
+
export declare class SnapshotEngine {
|
|
5
|
+
private readonly store;
|
|
6
|
+
private readonly retention;
|
|
7
|
+
constructor(store: NoydbPodStore, retention: RetentionPolicy);
|
|
8
|
+
private indexKey;
|
|
9
|
+
private snapKey;
|
|
10
|
+
private autoKey;
|
|
11
|
+
private readIndex;
|
|
12
|
+
private writeIndex;
|
|
13
|
+
snapshot(vault: Vault, by: string, opts?: {
|
|
14
|
+
label?: string;
|
|
15
|
+
note?: string;
|
|
16
|
+
}): Promise<SnapshotMeta>;
|
|
17
|
+
/**
|
|
18
|
+
* Rolling auto-snapshot. Overwrites the single fixed `<vault>__auto` key and
|
|
19
|
+
* stores its meta in `index.auto`, separate from the immutable `snapshots`
|
|
20
|
+
* pool — retention never prunes it. Used by the cadence scheduler.
|
|
21
|
+
*/
|
|
22
|
+
autoSnapshot(vault: Vault, by: string, opts?: {
|
|
23
|
+
label?: string;
|
|
24
|
+
note?: string;
|
|
25
|
+
}): Promise<SnapshotMeta>;
|
|
26
|
+
listSnapshots(vaultId: string): Promise<SnapshotMeta[]>;
|
|
27
|
+
restoreSnapshot(vault: Vault, version: string): Promise<void>;
|
|
28
|
+
/**
|
|
29
|
+
* Applies the configured retention policy to `index`, mutating `index.snapshots`
|
|
30
|
+
* in place and returning the blob keys that should be deleted from the store.
|
|
31
|
+
* Called by `snapshot()` before the index is written.
|
|
32
|
+
*
|
|
33
|
+
* @internal — public for direct testing only
|
|
34
|
+
*/
|
|
35
|
+
applyRetention(index: SnapshotIndex): string[];
|
|
36
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { withSnapshots } from './active.js';
|
|
2
|
+
export type { WithSnapshotsOptions } from './active.js';
|
|
3
|
+
export type { SnapshotStrategy, SnapshotMeta, RetentionPolicy } from './strategy.js';
|
|
4
|
+
export type { SnapshotPolicy, SnapshotMode } from './policy.js';
|
|
5
|
+
export { SnapshotNotFoundError } from '../../kernel/errors.js';
|