@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,356 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `LedgerStore` — read/write access to a compartment's hash-chained
|
|
3
|
+
* audit log.
|
|
4
|
+
*
|
|
5
|
+
* The store is a thin wrapper around the adapter's `_ledger/` internal
|
|
6
|
+
* collection. Every append:
|
|
7
|
+
*
|
|
8
|
+
* 1. Loads the current head (or treats an empty ledger as head = -1)
|
|
9
|
+
* 2. Computes `prevHash` = sha256(canonicalJson(head))
|
|
10
|
+
* 3. Builds the new entry with `index = head.index + 1`
|
|
11
|
+
* 4. Encrypts the entry with the compartment's ledger DEK
|
|
12
|
+
* 5. Writes the encrypted envelope to `_ledger/<paddedIndex>`
|
|
13
|
+
*
|
|
14
|
+
* `verify()` walks the chain from genesis forward and returns
|
|
15
|
+
* `{ ok: true, head }` on success or `{ ok: false, divergedAt }` on the
|
|
16
|
+
* first broken link.
|
|
17
|
+
*
|
|
18
|
+
* ## Thread / concurrency model
|
|
19
|
+
*
|
|
20
|
+
* For we assume a **single writer per vault**. Two
|
|
21
|
+
* concurrent `append()` calls would race on the "read head, write
|
|
22
|
+
* head+1" cycle and could produce a broken chain. The sync engine
|
|
23
|
+
* is the primary concurrent-writer scenario, and it uses
|
|
24
|
+
* optimistic-concurrency via `expectedVersion` on the adapter — but
|
|
25
|
+
* the ledger path has no such guard today. Multi-writer hardening is a
|
|
26
|
+
* follow-up.
|
|
27
|
+
*
|
|
28
|
+
* Single-writer usage IS safe, including across process restarts:
|
|
29
|
+
* `head()` reads the adapter fresh each call, so a crash between the
|
|
30
|
+
* adapter.put of a data record and the ledger append just means the
|
|
31
|
+
* ledger is missing an entry for that record. `verify()` still
|
|
32
|
+
* succeeds; a future `verifyIntegrity()` helper can cross-check the
|
|
33
|
+
* ledger against the data collections to catch the gap.
|
|
34
|
+
*
|
|
35
|
+
* ## Why hide the ledger from `vault.collection()`?
|
|
36
|
+
*
|
|
37
|
+
* The `_ledger` name starts with `_`, matching the existing prefix
|
|
38
|
+
* convention for internal collections (`_keyring`, `_sync`,
|
|
39
|
+
* `_history`). The Vault's public `collection()` method already
|
|
40
|
+
* returns entries for any name, but `loadAll()` filters out
|
|
41
|
+
* underscore-prefixed collections so backups and exports don't leak
|
|
42
|
+
* ledger metadata. We keep the ledger accessible ONLY via
|
|
43
|
+
* `vault.ledger()` to enforce the hash-chain invariants — direct
|
|
44
|
+
* puts via `collection('_ledger')` would bypass the `append()` logic.
|
|
45
|
+
*/
|
|
46
|
+
import type { NoydbStore } from '../../../kernel/types.js';
|
|
47
|
+
import { type EnclaveKey } from '../../../kernel/enclave/index.js';
|
|
48
|
+
import { type LedgerEntry } from './entry.js';
|
|
49
|
+
import type { JsonPatch } from './patch.js';
|
|
50
|
+
import { LEDGER_COLLECTION, LEDGER_DELTAS_COLLECTION } from './constants.js';
|
|
51
|
+
import { envelopePayloadHash } from './hash.js';
|
|
52
|
+
export { LEDGER_COLLECTION, LEDGER_DELTAS_COLLECTION, envelopePayloadHash };
|
|
53
|
+
/**
|
|
54
|
+
* Input shape for `LedgerStore.append()`. The caller supplies the
|
|
55
|
+
* operation metadata; the store fills in `index` and `prevHash`.
|
|
56
|
+
*/
|
|
57
|
+
export interface AppendInput {
|
|
58
|
+
op: LedgerEntry['op'];
|
|
59
|
+
collection: string;
|
|
60
|
+
id: string;
|
|
61
|
+
version: number;
|
|
62
|
+
actor: string;
|
|
63
|
+
payloadHash: string;
|
|
64
|
+
/**
|
|
65
|
+
* Optional JSON Patch representing the delta from the previous
|
|
66
|
+
* version to the new version. Present only for `put` operations
|
|
67
|
+
* that had a previous version; omitted for genesis puts and for
|
|
68
|
+
* deletes. When present, `LedgerStore.append` persists the patch
|
|
69
|
+
* in `_ledger_deltas/<paddedIndex>` and records its sha256 hash
|
|
70
|
+
* as the entry's `deltaHash` field.
|
|
71
|
+
*/
|
|
72
|
+
delta?: JsonPatch;
|
|
73
|
+
/**
|
|
74
|
+
* Present only for `op === 'amendment'` — structured audit
|
|
75
|
+
* payload for multi-record repair operations performed via
|
|
76
|
+
* `withTransactions(...)`. Carried through verbatim to the
|
|
77
|
+
* resulting ledger entry.
|
|
78
|
+
*/
|
|
79
|
+
amendment?: LedgerEntry['amendment'];
|
|
80
|
+
/**
|
|
81
|
+
* Optional human-readable tag describing why this mutation happened.
|
|
82
|
+
* Threaded from `collection.put(_, _, { reason })`.
|
|
83
|
+
* Carried verbatim onto the resulting ledger entry's `reason` field;
|
|
84
|
+
* omitted from canonical JSON when undefined.
|
|
85
|
+
*/
|
|
86
|
+
reason?: string;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Result of `LedgerStore.verify()`. On success, `head` is the hash of
|
|
90
|
+
* the last entry — the same value that should be published to any
|
|
91
|
+
* external anchoring service (blockchain, OpenTimestamps, etc.). On
|
|
92
|
+
* failure, `divergedAt` is the 0-based index of the first entry whose
|
|
93
|
+
* recorded `prevHash` does not match the recomputed hash of its
|
|
94
|
+
* predecessor. Entries at `divergedAt` and later are untrustworthy;
|
|
95
|
+
* entries before that index are still valid.
|
|
96
|
+
*/
|
|
97
|
+
export type VerifyResult = {
|
|
98
|
+
readonly ok: true;
|
|
99
|
+
readonly head: string;
|
|
100
|
+
readonly length: number;
|
|
101
|
+
} | {
|
|
102
|
+
readonly ok: false;
|
|
103
|
+
readonly divergedAt: number;
|
|
104
|
+
readonly expected: string;
|
|
105
|
+
readonly actual: string;
|
|
106
|
+
};
|
|
107
|
+
/**
|
|
108
|
+
* A LedgerStore is bound to a single vault. Callers obtain one
|
|
109
|
+
* via `vault.ledger()` — there is no public constructor to keep
|
|
110
|
+
* the hash-chain invariants in one place.
|
|
111
|
+
*
|
|
112
|
+
* The class holds no mutable state beyond its dependencies (adapter,
|
|
113
|
+
* vault name, DEK resolver, actor id). Every method reads the
|
|
114
|
+
* adapter fresh so multiple instances against the same vault
|
|
115
|
+
* see each other's writes immediately (at the cost of re-parsing the
|
|
116
|
+
* ledger on every head() / verify() call; acceptable at scale).
|
|
117
|
+
*/
|
|
118
|
+
export declare class LedgerStore {
|
|
119
|
+
private readonly adapter;
|
|
120
|
+
private readonly vault;
|
|
121
|
+
private readonly encrypted;
|
|
122
|
+
private readonly getDEK;
|
|
123
|
+
private readonly actor;
|
|
124
|
+
/**
|
|
125
|
+
* In-memory cache of the chain head — the most recently appended
|
|
126
|
+
* entry along with its precomputed hash. Without this, every
|
|
127
|
+
* `append()` would re-load every prior entry to recompute the
|
|
128
|
+
* prevHash, making N puts O(N²) — a 1K-record stress test goes from
|
|
129
|
+
* < 100ms to a multi-second timeout.
|
|
130
|
+
*
|
|
131
|
+
* The cache is populated on first read (`append`, `head`, `verify`)
|
|
132
|
+
* and updated in-place on every successful `append`. Single-writer
|
|
133
|
+
* usage (the assumption) keeps it consistent. A second
|
|
134
|
+
* LedgerStore instance writing to the same vault would not
|
|
135
|
+
* see the first instance's appends in its cached state — that's the
|
|
136
|
+
* concurrency caveat documented at the class level.
|
|
137
|
+
*
|
|
138
|
+
* Sentinel `undefined` means "not yet loaded"; an explicit `null`
|
|
139
|
+
* value means "loaded and confirmed empty" — distinguishing these
|
|
140
|
+
* matters because an empty ledger is a valid state (genesis prevHash
|
|
141
|
+
* is the empty string), and we don't want to re-scan the adapter
|
|
142
|
+
* just because the chain is freshly initialized.
|
|
143
|
+
*/
|
|
144
|
+
private headCache;
|
|
145
|
+
constructor(opts: {
|
|
146
|
+
adapter: NoydbStore;
|
|
147
|
+
vault: string;
|
|
148
|
+
encrypted: boolean;
|
|
149
|
+
getDEK: (collectionName: string) => Promise<EnclaveKey>;
|
|
150
|
+
actor: string;
|
|
151
|
+
});
|
|
152
|
+
/**
|
|
153
|
+
* Lazily load (or return cached) the current chain head. The cache
|
|
154
|
+
* sentinel is `undefined` until first access; after the first call,
|
|
155
|
+
* the cache holds either a `{ entry, hash }` for non-empty ledgers
|
|
156
|
+
* or `null` for empty ones.
|
|
157
|
+
*/
|
|
158
|
+
private getCachedHead;
|
|
159
|
+
/**
|
|
160
|
+
* Append a new entry to the ledger. Returns the full entry that was
|
|
161
|
+
* written (with its assigned index and computed prevHash) so the
|
|
162
|
+
* caller can use the hash for downstream purposes (e.g., embedding
|
|
163
|
+
* in a verifiable backup).
|
|
164
|
+
*
|
|
165
|
+
* This is the **only** way to add entries. Direct adapter writes to
|
|
166
|
+
* `_ledger/` would bypass the chain math and would be caught by the
|
|
167
|
+
* next `verify()` call as a divergence.
|
|
168
|
+
*
|
|
169
|
+
* ## Multi-writer correctness
|
|
170
|
+
*
|
|
171
|
+
* Append is implemented as an optimistic-CAS retry loop. On every
|
|
172
|
+
* attempt:
|
|
173
|
+
*
|
|
174
|
+
* 1. Read fresh head (cache invalidated on retry).
|
|
175
|
+
* 2. Compute `nextIndex = head.index + 1`, `prevHash = hash(head)`.
|
|
176
|
+
* 3. Encrypt delta payload IN MEMORY (no adapter write yet) so we
|
|
177
|
+
* can compute `deltaHash` before claiming the chain slot.
|
|
178
|
+
* 4. Build + encrypt the entry envelope.
|
|
179
|
+
* 5. `adapter.put(_ledger, paddedIndex, envelope, expectedVersion: 0)`
|
|
180
|
+
* — the `expectedVersion: 0` asserts "this slot must not exist."
|
|
181
|
+
* Stores with `casAtomic: true` honor the CAS check; under
|
|
182
|
+
* contention the second writer's put throws `ConflictError`.
|
|
183
|
+
* 6. On `ConflictError`: invalidate the head cache, sleep with
|
|
184
|
+
* bounded backoff + jitter, retry. After `MAX_APPEND_ATTEMPTS`
|
|
185
|
+
* retries throw {@link LedgerContentionError}.
|
|
186
|
+
* 7. On success: write the delta envelope (if any) at the same
|
|
187
|
+
* index. Update the head cache.
|
|
188
|
+
*
|
|
189
|
+
* Entry-first ordering matters: writing the delta first under
|
|
190
|
+
* contention would orphan delta records at indices the writer never
|
|
191
|
+
* actually claimed. The deltaHash is computed off the encrypted
|
|
192
|
+
* envelope's `_data` field, which doesn't require the envelope to
|
|
193
|
+
* be persisted.
|
|
194
|
+
*
|
|
195
|
+
* Stores with `casAtomic: false` (file, s3, r2 by default) silently
|
|
196
|
+
* accept the `expectedVersion: 0` argument and proceed without a
|
|
197
|
+
* CAS check. Concurrent appends against those stores remain
|
|
198
|
+
* best-effort — pair them with an advisory lock or with sync
|
|
199
|
+
* single-writer discipline.
|
|
200
|
+
*/
|
|
201
|
+
append(input: AppendInput): Promise<LedgerEntry>;
|
|
202
|
+
/**
|
|
203
|
+
* One attempt at the append cycle. Throws `ConflictError` when the
|
|
204
|
+
* CAS check on the entry put fails — `append()` catches that and
|
|
205
|
+
* retries. Any other error propagates to the caller.
|
|
206
|
+
*/
|
|
207
|
+
private appendOnce;
|
|
208
|
+
/**
|
|
209
|
+
* Load a delta payload by its entry index. Returns `null` if the
|
|
210
|
+
* entry at that index doesn't reference a delta (genesis puts and
|
|
211
|
+
* deletes leave the slot empty) or if the delta row is missing
|
|
212
|
+
* (possible after a `pruneHistory` fold).
|
|
213
|
+
*
|
|
214
|
+
* The caller is responsible for deciding what to do with a missing
|
|
215
|
+
* delta — `ledger.reconstruct()` uses it as a "stop walking
|
|
216
|
+
* backward" signal and falls back to the on-disk current value.
|
|
217
|
+
*/
|
|
218
|
+
loadDelta(index: number): Promise<JsonPatch | null>;
|
|
219
|
+
/**
|
|
220
|
+
* Purge a record's tier-0-era plaintext deltas (#729). Deletes each
|
|
221
|
+
* `_ledger_deltas/<paddedIndex>` row whose entry matches
|
|
222
|
+
* `(collection, id)` and carries a delta, then returns the count
|
|
223
|
+
* deleted.
|
|
224
|
+
*
|
|
225
|
+
* Chain-safe by construction: `verify()` recomputes the tamper-chain
|
|
226
|
+
* from each `_ledger` entry's own canonical fields — including the
|
|
227
|
+
* stored `deltaHash` field, which lives on the entry, not on the
|
|
228
|
+
* `_ledger_deltas` row — and never re-reads `_ledger_deltas`.
|
|
229
|
+
* Deleting a delta row therefore cannot break `verify()`.
|
|
230
|
+
* `reconstruct()` already treats a missing delta (`loadDelta` →
|
|
231
|
+
* `null`) as a pruned stop, so a purge just makes the pre-purge
|
|
232
|
+
* plaintext unreachable rather than corrupting anything.
|
|
233
|
+
*
|
|
234
|
+
* No `_ledger` entry is touched and nothing is re-encrypted — this
|
|
235
|
+
* is irreversible (the deleted plaintext cannot be recovered) but
|
|
236
|
+
* leaves the entry metadata (that the record was mutated, at which
|
|
237
|
+
* version/timestamp/actor) fully intact for audit purposes.
|
|
238
|
+
*/
|
|
239
|
+
purgeRecordDeltas(collection: string, id: string): Promise<number>;
|
|
240
|
+
/** Encrypt a JSON Patch into an envelope for storage. Mirrors encryptEntry. */
|
|
241
|
+
private encryptDelta;
|
|
242
|
+
/**
|
|
243
|
+
* Read all entries in ascending-index order. Used internally by
|
|
244
|
+
* `append()`, `head()`, `verify()`, and `entries()`. Decryption is
|
|
245
|
+
* serial because the entries are tiny and the overhead of a Promise
|
|
246
|
+
* pool would dominate at realistic chain lengths (< 100K entries).
|
|
247
|
+
*/
|
|
248
|
+
loadAllEntries(): Promise<LedgerEntry[]>;
|
|
249
|
+
/**
|
|
250
|
+
* Return the current head of the ledger: the last entry, its hash,
|
|
251
|
+
* and the total chain length. `null` on an empty ledger so callers
|
|
252
|
+
* can distinguish "no history yet" from "empty history".
|
|
253
|
+
*/
|
|
254
|
+
head(): Promise<{
|
|
255
|
+
readonly entry: LedgerEntry;
|
|
256
|
+
readonly hash: string;
|
|
257
|
+
readonly length: number;
|
|
258
|
+
} | null>;
|
|
259
|
+
/**
|
|
260
|
+
* Return entries in the requested half-open range `[from, to)`.
|
|
261
|
+
* Defaults: `from = 0`, `to = length`. The indices are clipped to
|
|
262
|
+
* the valid range; no error is thrown for out-of-range queries.
|
|
263
|
+
*/
|
|
264
|
+
entries(opts?: {
|
|
265
|
+
from?: number;
|
|
266
|
+
to?: number;
|
|
267
|
+
}): Promise<LedgerEntry[]>;
|
|
268
|
+
/**
|
|
269
|
+
* Reconstruct a record's state at a given historical version by
|
|
270
|
+
* walking the ledger's delta chain backward from the current state.
|
|
271
|
+
*
|
|
272
|
+
* ## Algorithm
|
|
273
|
+
*
|
|
274
|
+
* Ledger deltas are stored in **reverse** form — each entry's
|
|
275
|
+
* patch describes how to undo that put, transforming the new
|
|
276
|
+
* record back into the previous one. `reconstruct` exploits this
|
|
277
|
+
* by:
|
|
278
|
+
*
|
|
279
|
+
* 1. Finding every ledger entry for `(collection, id)` in the
|
|
280
|
+
* chain, sorted by index ascending.
|
|
281
|
+
* 2. Starting from `current` (the present value of the record,
|
|
282
|
+
* as held by the caller — typically fetched via
|
|
283
|
+
* `Collection.get()`).
|
|
284
|
+
* 3. Walking entries in **descending** index order and applying
|
|
285
|
+
* each entry's reverse patch, stopping when we reach the
|
|
286
|
+
* entry whose version equals `atVersion`.
|
|
287
|
+
*
|
|
288
|
+
* The result is the record as it existed immediately AFTER the
|
|
289
|
+
* put at `atVersion`. To get the state at the genesis put
|
|
290
|
+
* (version 1), the walk runs all the way back through every put
|
|
291
|
+
* after the first.
|
|
292
|
+
*
|
|
293
|
+
* ## Caveats
|
|
294
|
+
*
|
|
295
|
+
* - **Delete entries** break the walk: once we see a delete, the
|
|
296
|
+
* record didn't exist before that point, so there's nothing to
|
|
297
|
+
* reconstruct. We return `null` in that case.
|
|
298
|
+
* - **Missing deltas** (e.g., after `pruneHistory` folds old
|
|
299
|
+
* entries into a base snapshot) also stop the walk. does
|
|
300
|
+
* not ship pruneHistory, so today this only happens if an entry
|
|
301
|
+
* was deleted out-of-band.
|
|
302
|
+
* - The caller MUST pass the correct current value. Passing a
|
|
303
|
+
* mutated object would corrupt the reconstruction — the patch
|
|
304
|
+
* chain is only valid against the exact state that was in
|
|
305
|
+
* effect when the most recent put happened.
|
|
306
|
+
*
|
|
307
|
+
* For, `reconstruct` is the only way to read a historical
|
|
308
|
+
* version via deltas. The legacy `_history` collection still
|
|
309
|
+
* holds full snapshots and `Collection.getVersion()` still reads
|
|
310
|
+
* from there — the two paths coexist until pruneHistory lands in
|
|
311
|
+
* a follow-up and delta becomes the default.
|
|
312
|
+
*/
|
|
313
|
+
reconstruct<T>(collection: string, id: string, current: T, atVersion: number): Promise<T | null>;
|
|
314
|
+
/**
|
|
315
|
+
* Walk the chain from genesis forward and verify every link.
|
|
316
|
+
*
|
|
317
|
+
* Returns `{ ok: true, head, length }` if every entry's `prevHash`
|
|
318
|
+
* matches the recomputed hash of its predecessor (and the genesis
|
|
319
|
+
* entry's `prevHash` is the empty string).
|
|
320
|
+
*
|
|
321
|
+
* Returns `{ ok: false, divergedAt, expected, actual }` on the first
|
|
322
|
+
* mismatch. `divergedAt` is the 0-based index of the BROKEN entry
|
|
323
|
+
* — entries before that index still verify cleanly; entries at and
|
|
324
|
+
* after `divergedAt` are untrustworthy.
|
|
325
|
+
*
|
|
326
|
+
* This method detects:
|
|
327
|
+
* - Mutated entry content (fields changed)
|
|
328
|
+
* - Reordered entries (if any adjacent pair swaps, the prevHash
|
|
329
|
+
* of the second no longer matches)
|
|
330
|
+
* - Inserted entries (the inserted entry's prevHash likely fails,
|
|
331
|
+
* and the following entry's prevHash definitely fails)
|
|
332
|
+
* - Deleted entries (the entry after the deletion sees a wrong
|
|
333
|
+
* prevHash)
|
|
334
|
+
*
|
|
335
|
+
* It does NOT detect:
|
|
336
|
+
* - Tampering with the DATA collections that bypassed the ledger
|
|
337
|
+
* entirely (e.g., an attacker who modifies records without
|
|
338
|
+
* appending matching ledger entries — this is why we also
|
|
339
|
+
* plan a `verifyIntegrity()` helper in a follow-up)
|
|
340
|
+
* - Truncation of the chain at the tail (dropping the last N
|
|
341
|
+
* entries leaves a shorter but still consistent chain). External
|
|
342
|
+
* anchoring of `head.hash` to a trusted service is the defense
|
|
343
|
+
* against this.
|
|
344
|
+
*/
|
|
345
|
+
verify(): Promise<VerifyResult>;
|
|
346
|
+
/**
|
|
347
|
+
* Serialize + encrypt a ledger entry into an EncryptedEnvelope. The
|
|
348
|
+
* envelope's `_v` field is set to `entry.index + 1` so the usual
|
|
349
|
+
* optimistic-concurrency machinery has a reasonable version number
|
|
350
|
+
* to compare against (the ledger is append-only, so concurrent
|
|
351
|
+
* writes should always bump the index).
|
|
352
|
+
*/
|
|
353
|
+
private encryptEntry;
|
|
354
|
+
/** Decrypt an envelope into a LedgerEntry. Throws on bad key / tamper. */
|
|
355
|
+
private decryptEntry;
|
|
356
|
+
}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Strategy seam for the optional history + ledger + time-machine
|
|
3
|
+
* service. Core imports `HistoryStrategy` type-only + `NO_HISTORY`
|
|
4
|
+
* stub; real implementations of `saveHistory`, `LedgerStore`,
|
|
5
|
+
* `VaultInstant`, `computePatch`, `diff` etc. are only reachable via
|
|
6
|
+
* `withHistory()` in `./active.ts`.
|
|
7
|
+
*
|
|
8
|
+
* Applications that don't track per-record versioning, don't need the
|
|
9
|
+
* hash-chained audit ledger, and don't restore to past instants ship
|
|
10
|
+
* none of the ~1,880 LOC behind this seam.
|
|
11
|
+
*
|
|
12
|
+
* Strategy contract:
|
|
13
|
+
*
|
|
14
|
+
* - **saveHistory / pruneHistory / clearHistory** — no-ops under
|
|
15
|
+
* NO_HISTORY. Writes still succeed; no snapshot is captured.
|
|
16
|
+
* - **getHistoryEntries / getVersionEnvelope / diff** — throw under
|
|
17
|
+
* NO_HISTORY. These are read APIs the consumer would only call
|
|
18
|
+
* after explicitly asking for history; the throw guides them to
|
|
19
|
+
* `@noy-db/hub/history`.
|
|
20
|
+
* - **envelopePayloadHash / computePatch** — return empty / `[]`
|
|
21
|
+
* under NO_HISTORY. These are only used inside the
|
|
22
|
+
* `if (this.ledger)` branch, which is itself gated by
|
|
23
|
+
* `buildLedger()` returning null.
|
|
24
|
+
* - **buildLedger** — returns `null` under NO_HISTORY. The Vault's
|
|
25
|
+
* public `vault.ledger()` accessor throws when null.
|
|
26
|
+
* - **buildVaultInstant** — throws under NO_HISTORY. `vault.at()`
|
|
27
|
+
* propagates the throw.
|
|
28
|
+
*
|
|
29
|
+
* @internal
|
|
30
|
+
*/
|
|
31
|
+
import type { EncryptedEnvelope, NoydbStore, HistoryOptions, PruneOptions } from '../../kernel/types.js';
|
|
32
|
+
import type { LedgerStore } from './ledger/store.js';
|
|
33
|
+
import type { JsonPatch } from './ledger/patch.js';
|
|
34
|
+
import type { DiffEntry } from './diff.js';
|
|
35
|
+
import type { VaultInstant, VaultEngine } from './time-machine.js';
|
|
36
|
+
import type { EnclaveKey } from '../../kernel/enclave/index.js';
|
|
37
|
+
/**
|
|
38
|
+
* Options accepted by `HistoryStrategy.buildLedger`. Mirrors the
|
|
39
|
+
* `LedgerStore` constructor verbatim — kept in this file so `core`
|
|
40
|
+
* code never imports the LedgerStore module at runtime.
|
|
41
|
+
*
|
|
42
|
+
* @internal
|
|
43
|
+
*/
|
|
44
|
+
export interface BuildLedgerOptions {
|
|
45
|
+
adapter: NoydbStore;
|
|
46
|
+
vault: string;
|
|
47
|
+
encrypted: boolean;
|
|
48
|
+
getDEK: (collectionName: string) => Promise<EnclaveKey>;
|
|
49
|
+
actor: string;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* @internal
|
|
53
|
+
*/
|
|
54
|
+
export interface HistoryStrategy {
|
|
55
|
+
/**
|
|
56
|
+
* Persist a full encrypted envelope snapshot of the prior version
|
|
57
|
+
* under `_history/{collection}:{id}:{paddedVersion}`. No-op under
|
|
58
|
+
* `NO_HISTORY`.
|
|
59
|
+
*/
|
|
60
|
+
saveHistory(adapter: NoydbStore, vault: string, collection: string, recordId: string, envelope: EncryptedEnvelope): Promise<void>;
|
|
61
|
+
/**
|
|
62
|
+
* List history envelopes for a record, newest first. Throws under
|
|
63
|
+
* `NO_HISTORY` — callers reach this via `collection.history()` /
|
|
64
|
+
* `collection.getVersion()` / `collection.diff()`, which only work
|
|
65
|
+
* with the strategy enabled.
|
|
66
|
+
*/
|
|
67
|
+
getHistoryEntries(adapter: NoydbStore, vault: string, collection: string, recordId: string, options?: HistoryOptions): Promise<EncryptedEnvelope[]>;
|
|
68
|
+
/**
|
|
69
|
+
* Fetch a specific version's envelope. Throws under `NO_HISTORY`.
|
|
70
|
+
*/
|
|
71
|
+
getVersionEnvelope(adapter: NoydbStore, vault: string, collection: string, recordId: string, version: number): Promise<EncryptedEnvelope | null>;
|
|
72
|
+
/**
|
|
73
|
+
* Prune history entries by retention rule. Returns `0` under
|
|
74
|
+
* `NO_HISTORY`.
|
|
75
|
+
*/
|
|
76
|
+
pruneHistory(adapter: NoydbStore, vault: string, collection: string, recordId: string | undefined, options: PruneOptions): Promise<number>;
|
|
77
|
+
/**
|
|
78
|
+
* Clear all history for vault/collection/record. Returns `0` under
|
|
79
|
+
* `NO_HISTORY`.
|
|
80
|
+
*/
|
|
81
|
+
clearHistory(adapter: NoydbStore, vault: string, collection?: string, recordId?: string): Promise<number>;
|
|
82
|
+
/**
|
|
83
|
+
* Crypto-shred (overwrite-to-tombstone) every `_history` version of a
|
|
84
|
+
* record for GDPR erasure. Returns the number of versions newly
|
|
85
|
+
* tombstoned, or `0` under `NO_HISTORY` (no history = nothing to shred).
|
|
86
|
+
*/
|
|
87
|
+
tombstoneHistory(adapter: NoydbStore, vault: string, collection: string, recordId: string, actor: string, encrypted: boolean): Promise<number>;
|
|
88
|
+
/**
|
|
89
|
+
* Re-key every `_history` snapshot of a record from `fromDek` to `toDek`
|
|
90
|
+
* on a tier move (elevate/demote/putAtTier), mirroring the live-body
|
|
91
|
+
* rewrap so prior versions are not left decryptable at rest under a tier
|
|
92
|
+
* the record has moved away from. Optional `tier0Dek` enables the legacy
|
|
93
|
+
* fallback for snapshots written before this rewrap existed (see
|
|
94
|
+
* `history.ts` for the full contract). No-op under `NO_HISTORY` (no
|
|
95
|
+
* history = nothing to rewrap).
|
|
96
|
+
*/
|
|
97
|
+
rewrapHistory(adapter: NoydbStore, vault: string, collection: string, recordId: string, fromDek: EnclaveKey, toDek: EnclaveKey, tier0Dek?: EnclaveKey): Promise<void>;
|
|
98
|
+
/**
|
|
99
|
+
* Compute the SHA-256 hash of an envelope's encrypted payload, used
|
|
100
|
+
* by `LedgerStore.append` to track tamper-evidence. Returns the
|
|
101
|
+
* empty string under `NO_HISTORY` (the call site is gated by
|
|
102
|
+
* `if (this.ledger)`, so the value is never observed).
|
|
103
|
+
*/
|
|
104
|
+
envelopePayloadHash(envelope: EncryptedEnvelope | null): Promise<string>;
|
|
105
|
+
/**
|
|
106
|
+
* Compute the JSON patch from `from` → `to`. Returns `[]` under
|
|
107
|
+
* `NO_HISTORY`.
|
|
108
|
+
*/
|
|
109
|
+
computePatch(from: unknown, to: unknown): JsonPatch;
|
|
110
|
+
/**
|
|
111
|
+
* Compute the typed diff between two records. Throws under
|
|
112
|
+
* `NO_HISTORY` — `collection.diff()` is a history-read API.
|
|
113
|
+
*/
|
|
114
|
+
diff(recordA: unknown, recordB: unknown): DiffEntry[];
|
|
115
|
+
/**
|
|
116
|
+
* Construct (or return null) a `LedgerStore` for the vault. Returns
|
|
117
|
+
* `null` under `NO_HISTORY`; the Vault treats null as "no ledger
|
|
118
|
+
* attached" — collection write paths skip the append branch and the
|
|
119
|
+
* public `vault.ledger()` accessor throws.
|
|
120
|
+
*/
|
|
121
|
+
buildLedger(opts: BuildLedgerOptions): LedgerStore | null;
|
|
122
|
+
/**
|
|
123
|
+
* Construct a `VaultInstant` for time-machine reads. Throws under
|
|
124
|
+
* `NO_HISTORY`.
|
|
125
|
+
*/
|
|
126
|
+
buildVaultInstant(engine: VaultEngine, timestamp: string): VaultInstant;
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* No-history stub. Snapshots and prune/clear are no-ops; reads and
|
|
130
|
+
* time-machine throw with an actionable message; ledger construction
|
|
131
|
+
* returns null so the write-path's `if (this.ledger)` branch is dead
|
|
132
|
+
* code in the bundle.
|
|
133
|
+
*
|
|
134
|
+
* @internal
|
|
135
|
+
*/
|
|
136
|
+
export declare const NO_HISTORY: HistoryStrategy;
|