@noy-db/hub 0.3.0-pre.10 → 0.3.0-pre.12
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 +4 -4
- package/dist/api-3TH2GOFQ.js +20 -0
- package/dist/as/index.js +11 -11
- package/dist/attestation/index.js +18 -18
- package/dist/backup-2WVBIVXW.js +225 -0
- package/dist/blobs/index.js +10 -10
- package/dist/broker/index.js +92 -0
- package/dist/broker/index.js.map +1 -0
- package/dist/bundle/index.js +20 -20
- package/dist/by/index.js +2 -2
- package/dist/cargo/index.js +30 -30
- package/dist/chunk-2MTRJCBI.js +75 -0
- package/dist/chunk-37WOJQWY.js +404 -0
- package/dist/chunk-3QSOFZQB.js +589 -0
- package/dist/chunk-44IL5G3W.js +99 -0
- package/dist/chunk-45QPICLE.js +69 -0
- package/dist/chunk-4BQXMCE5.js +164 -0
- package/dist/chunk-4GPE63GU.js +111 -0
- package/dist/chunk-4GPE63GU.js.map +1 -0
- package/dist/chunk-5HNX4OD4.js +30 -0
- package/dist/chunk-65VLRG3I.js +54 -0
- package/dist/chunk-6MA575R5.js +59 -0
- package/dist/chunk-6S7ENMRE.js +524 -0
- package/dist/chunk-6S7ENMRE.js.map +1 -0
- package/dist/chunk-7GAXFU2O.js +123 -0
- package/dist/chunk-7QLY64AD.js +202 -0
- package/dist/chunk-7ZOSHEVS.js +235 -0
- package/dist/chunk-AAIIDAUC.js +371 -0
- package/dist/chunk-AAIIDAUC.js.map +1 -0
- package/dist/chunk-AKEOHKMT.js +282 -0
- package/dist/chunk-AKEOHKMT.js.map +1 -0
- package/dist/chunk-APHLCXVC.js +124 -0
- package/dist/chunk-BDEMZD4F.js +129 -0
- package/dist/chunk-BDPAVYGJ.js +662 -0
- package/dist/chunk-BLUT46UP.js +42 -0
- package/dist/chunk-CCIR2OJH.js +778 -0
- package/dist/chunk-CXC3JLAQ.js +155 -0
- package/dist/chunk-CZMCOFEA.js +1221 -0
- package/dist/chunk-DIB2BOIH.js +164 -0
- package/dist/chunk-DJ7MRXNA.js +344 -0
- package/dist/chunk-DJ7MRXNA.js.map +1 -0
- package/dist/chunk-EHW5KTTA.js +150 -0
- package/dist/chunk-EHW5KTTA.js.map +1 -0
- package/dist/chunk-EIZ4YOG2.js +70 -0
- package/dist/chunk-EVHBK7BN.js +515 -0
- package/dist/chunk-EXGDL2UQ.js +74 -0
- package/dist/chunk-F3LGBRSV.js +453 -0
- package/dist/chunk-F44XWXOA.js +392 -0
- package/dist/chunk-FF7S3XDW.js +230 -0
- package/dist/chunk-FJTWLQV3.js +155 -0
- package/dist/chunk-FYNE4WLC.js +36 -0
- package/dist/chunk-FZCGIJEJ.js +1505 -0
- package/dist/chunk-FZCGIJEJ.js.map +1 -0
- package/dist/chunk-GL3JV5EV.js +130 -0
- package/dist/chunk-GXLZXD2W.js +29 -0
- package/dist/chunk-HA6ZQWA2.js +1056 -0
- package/dist/chunk-HA6ZQWA2.js.map +1 -0
- package/dist/chunk-HBBZWEC5.js +686 -0
- package/dist/chunk-HG76BZ6G.js +188 -0
- package/dist/chunk-HGAB325C.js +38 -0
- package/dist/chunk-HIOLCOK3.js +30 -0
- package/dist/chunk-HIOLCOK3.js.map +1 -0
- package/dist/chunk-HK4XTXO4.js +49 -0
- package/dist/chunk-HYG32HCM.js +14 -0
- package/dist/chunk-ILF5GARW.js +135 -0
- package/dist/chunk-INBQ43DI.js +382 -0
- package/dist/chunk-IQIVD7TP.js +247 -0
- package/dist/chunk-J3JIYFYL.js +45 -0
- package/dist/chunk-JC75UBMT.js +32 -0
- package/dist/chunk-JC75UBMT.js.map +1 -0
- package/dist/chunk-JGUZMC3I.js +150 -0
- package/dist/chunk-JRKE5MAZ.js +80 -0
- package/dist/chunk-K2DLLK34.js +255 -0
- package/dist/chunk-KKYEZCQG.js +34 -0
- package/dist/chunk-NAR6IDKH.js +54 -0
- package/dist/chunk-NEYKOESM.js +117 -0
- package/dist/chunk-NM3IFKBL.js +29 -0
- package/dist/chunk-NRYNRSGV.js +99 -0
- package/dist/chunk-NT2ZO4KI.js +59 -0
- package/dist/chunk-P2LJI6JE.js +94 -0
- package/dist/chunk-PH7G7ZI7.js +823 -0
- package/dist/chunk-PN5332SU.js +209 -0
- package/dist/chunk-QF5LGMSV.js +45 -0
- package/dist/chunk-QG5RQQBO.js +367 -0
- package/dist/chunk-QYPDYN23.js +23 -0
- package/dist/chunk-R3NHNVS5.js +478 -0
- package/dist/chunk-R3NHNVS5.js.map +1 -0
- package/dist/chunk-RNXJ2VO6.js +280 -0
- package/dist/chunk-RXTMLYJS.js +97 -0
- package/dist/chunk-S2OWPVSO.js +30 -0
- package/dist/chunk-S7TAPIRS.js +205 -0
- package/dist/chunk-SAL5X5OK.js +40 -0
- package/dist/chunk-SGJGWBSC.js +85 -0
- package/dist/chunk-SIAIYP6G.js +50 -0
- package/dist/chunk-SXPCZ6LL.js +1697 -0
- package/dist/chunk-SXPCZ6LL.js.map +1 -0
- package/dist/chunk-TBNF5DV5.js +261 -0
- package/dist/chunk-TVOHSPVK.js +21 -0
- package/dist/chunk-TVS6BUUR.js +41 -0
- package/dist/chunk-UMC5QZTX.js +86 -0
- package/dist/chunk-US34HTOI.js +367 -0
- package/dist/chunk-VCUQR6ZL.js +621 -0
- package/dist/chunk-VXZNSPJM.js +957 -0
- package/dist/chunk-VXZNSPJM.js.map +1 -0
- package/dist/chunk-WEHIQYQH.js +71 -0
- package/dist/chunk-WHQHTNT7.js +265 -0
- package/dist/chunk-X6Y5MXTH.js +74 -0
- package/dist/chunk-XJ47GS53.js +291 -0
- package/dist/chunk-XS6DLN67.js +95 -0
- package/dist/chunk-Y5TWPBNW.js +91 -0
- package/dist/chunk-YCXKFB7J.js +14181 -0
- package/dist/chunk-YCXKFB7J.js.map +1 -0
- package/dist/chunk-ZHOJOT6S.js +36 -0
- package/dist/chunk-ZL6PRULX.js +167 -0
- package/dist/chunk-ZL6PRULX.js.map +1 -0
- package/dist/classified/index.js +5 -5
- package/dist/classified-marker-M7K3OJPM.js +28 -0
- package/dist/classified-marker-M7K3OJPM.js.map +1 -0
- package/dist/collection-facade-DWA735G2.js +39 -0
- package/dist/computed-ORCGM5JE.js +11 -0
- package/dist/consent/index.js +9 -9
- package/dist/crdt/index.js +1 -1
- package/dist/dead-filter-OV5FGKOG.js +28 -0
- package/dist/delegation-YVSHMIZZ.js +25 -0
- package/dist/derivations/index.js +12 -12
- package/dist/derive-BUO555L5.js +21 -0
- package/dist/enclave-XXFUKJC6.js +135 -0
- package/dist/executor-6OCCE5VM.js +25 -0
- package/dist/executor-JFVAJY42.js +9 -0
- package/dist/executor-UPSH5O3F.js +9 -0
- package/dist/export-accessible-L4A2QZA5.js +23 -0
- package/dist/extract-partition-ZHQ4RGGM.js +36 -0
- package/dist/fanout-sidecar-IO2KDUWV.js +74 -0
- package/dist/find-ZFZDZQ2U.js +11 -0
- package/dist/forget/index.js +10 -10
- package/dist/forget/index.js.map +1 -1
- package/dist/guards/index.js +3 -3
- package/dist/history/index.js +11 -11
- package/dist/i18n/index.js +15 -15
- package/dist/index.d.ts +303 -1492
- package/dist/index.js +172 -171
- package/dist/index.js.map +1 -1
- package/dist/indexing/index.js +5 -5
- package/dist/indexing/index.js.map +1 -1
- package/dist/issue-OG4V23SQ.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 +789 -0
- package/dist/kernel/collection.d.ts +1519 -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 +33 -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 +78 -0
- package/dist/kernel/enclave/record-keys/deterministic.d.ts +54 -0
- package/dist/kernel/enclave/record-keys/envelope-body.d.ts +79 -0
- package/dist/kernel/enclave/record-keys/lifecycle.d.ts +57 -0
- package/dist/kernel/enclave/record-keys/record-codec.d.ts +301 -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 +1848 -0
- package/dist/kernel/events.d.ts +11 -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/types.d.ts +3166 -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 +1737 -0
- package/dist/kernel/via/compose.d.ts +144 -0
- package/dist/kernel/via/dispatch.d.ts +185 -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-UAQKPWNM.js +42 -0
- package/dist/legacy/bundle.d.ts +30 -0
- package/dist/legacy/kernel.d.ts +33 -0
- package/dist/liberate-GFUQJRK5.js +24 -0
- package/dist/link-set-DGYUOFVD.js +31 -0
- package/dist/materialized-views/index.js +19 -19
- package/dist/noydb-AKH4AMCR.js +67 -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-5POYLI26.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 +81 -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-LB3P4XQU.js +60 -0
- package/dist/post-register-LB3P4XQU.js.map +1 -0
- package/dist/public-envelope-GOG4LUM7.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 +5 -5
- package/dist/register-ZI7YI7US.js +23 -0
- package/dist/registry-DZ2T4LL7.js +9 -0
- package/dist/registry-NVWEQ2GU.js +18 -0
- package/dist/registry-SEKL74ET.js +19 -0
- package/dist/request-withdrawal-ZP3JIRVS.js +31 -0
- package/dist/reveal-NPVROV4D.js +38 -0
- package/dist/revoke-VF6TAJK2.js +24 -0
- package/dist/satellites/index.js +1 -1
- package/dist/sealed-record/index.js +12 -12
- package/dist/seed-VI4FU7UH.js +231 -0
- package/dist/seed-VI4FU7UH.js.map +1 -0
- package/dist/session/index.js +9 -9
- package/dist/shadow/index.js +2 -2
- package/dist/signer-DRDDCCHW.js +25 -0
- package/dist/snapshots/index.js +10 -10
- package/dist/stale-TJXFQKOJ.js +14 -0
- package/dist/storage-GR7KZRH4.js +23 -0
- package/dist/store-coordination-provider-5KDS2RRP.js +142 -0
- package/dist/sync/index.js +9 -9
- package/dist/team/index.js +15 -15
- package/dist/tiers/index.js +10 -10
- package/dist/to/index.js +1 -1
- package/dist/tx/index.js +3 -3
- package/dist/util/index.js +1 -1
- package/dist/verify-QK76NJ4G.js +139 -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-XQCBKSBW.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 +177 -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 +122 -0
- package/dist/with-audit/tiers/strategy.d.ts +35 -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 +33 -0
- package/dist/with-cargo/extract-partition.d.ts +147 -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 +38 -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 +27 -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 +335 -0
- package/dist/with-commit/history/strategy.d.ts +126 -0
- package/dist/with-commit/history/time-machine.d.ts +179 -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 +58 -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 +71 -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 +62 -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 +3 -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 +120 -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 +123 -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 +41 -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 +37 -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-set.d.ts +342 -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-FMN4LPJZ.js +28 -0
- package/package.json +47 -43
- package/dist/aggregate/index.d.ts +0 -41
- package/dist/api-TX2EX2FX.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-R7NTDFKY.js +0 -225
- package/dist/blobs/index.d.ts +0 -43
- package/dist/bundle/index.d.ts +0 -121
- package/dist/bundle-D6GxiUfq.d.ts +0 -548
- package/dist/by/index.d.ts +0 -1
- package/dist/cargo/index.d.ts +0 -7
- package/dist/chunk-2OV5NVE7.js +0 -95
- package/dist/chunk-2OZXVKVP.js +0 -367
- package/dist/chunk-2REPHKET.js +0 -54
- package/dist/chunk-3JXPAHOZ.js +0 -686
- package/dist/chunk-3MATJ6O4.js +0 -367
- package/dist/chunk-3OPY6MK2.js +0 -404
- package/dist/chunk-3QSIU3UT.js +0 -291
- package/dist/chunk-4OMCIY6F.js +0 -99
- package/dist/chunk-5I35DOHK.js +0 -94
- package/dist/chunk-5VG4IJR7.js +0 -235
- package/dist/chunk-5YESYH2C.js +0 -155
- package/dist/chunk-6G5ORS5D.js +0 -202
- package/dist/chunk-6P5XCKSD.js +0 -71
- package/dist/chunk-6S7T6WC4.js +0 -111
- package/dist/chunk-6S7T6WC4.js.map +0 -1
- package/dist/chunk-7BWJHO2A.js +0 -34
- package/dist/chunk-7P2SDJG3.js +0 -279
- package/dist/chunk-7P2SDJG3.js.map +0 -1
- package/dist/chunk-ANB77BVV.js +0 -150
- package/dist/chunk-ANB77BVV.js.map +0 -1
- package/dist/chunk-BKARNZJN.js +0 -382
- package/dist/chunk-BQISD5ZV.js +0 -261
- package/dist/chunk-BUAQ7YI3.js +0 -1697
- package/dist/chunk-BUAQ7YI3.js.map +0 -1
- package/dist/chunk-CB7CWSKW.js +0 -430
- package/dist/chunk-CB7CWSKW.js.map +0 -1
- package/dist/chunk-DFVUTGT2.js +0 -515
- package/dist/chunk-DJ7KIPLV.js +0 -23
- package/dist/chunk-DSKDQP3G.js +0 -14066
- package/dist/chunk-DSKDQP3G.js.map +0 -1
- package/dist/chunk-DV4HUP5G.js +0 -99
- package/dist/chunk-EOXAAJTY.js +0 -621
- package/dist/chunk-ET67AY6B.js +0 -74
- package/dist/chunk-F4CEK5YM.js +0 -123
- package/dist/chunk-FORYWFN6.js +0 -130
- package/dist/chunk-FRP6D2DM.js +0 -91
- package/dist/chunk-FUOE7UUV.js +0 -341
- package/dist/chunk-FUOE7UUV.js.map +0 -1
- package/dist/chunk-G4JYND6L.js +0 -42
- package/dist/chunk-G6XV4H65.js +0 -59
- package/dist/chunk-GNMXXTMN.js +0 -85
- package/dist/chunk-HPWKV3YB.js +0 -21
- package/dist/chunk-HY3AUMFI.js +0 -41
- package/dist/chunk-HYR4WZZ3.js +0 -69
- package/dist/chunk-ICXIFFYZ.js +0 -355
- package/dist/chunk-ICXIFFYZ.js.map +0 -1
- package/dist/chunk-IVLTXX4W.js +0 -280
- package/dist/chunk-J4LPNIGK.js +0 -777
- package/dist/chunk-JJZ2LW6T.js +0 -36
- package/dist/chunk-KJ2BCBTL.js +0 -589
- package/dist/chunk-KNZB6JMR.js +0 -129
- package/dist/chunk-LEJIKBBB.js +0 -124
- package/dist/chunk-LL2NIVUR.js +0 -188
- package/dist/chunk-MCHVVJIA.js +0 -968
- package/dist/chunk-MCHVVJIA.js.map +0 -1
- package/dist/chunk-NUEQU36L.js +0 -392
- package/dist/chunk-O45M6LDB.js +0 -38
- package/dist/chunk-OBKWYKYC.js +0 -117
- package/dist/chunk-OHHKHSJP.js +0 -209
- package/dist/chunk-OT76OZL6.js +0 -45
- package/dist/chunk-OVYRLHPE.js +0 -150
- package/dist/chunk-OXCSVM3B.js +0 -155
- package/dist/chunk-P33LUIML.js +0 -205
- package/dist/chunk-PLS64NCS.js +0 -59
- package/dist/chunk-PS2NEWEX.js +0 -36
- package/dist/chunk-QA2KUPCP.js +0 -45
- package/dist/chunk-QOC3VYL2.js +0 -30
- package/dist/chunk-QSFOZUYL.js +0 -823
- package/dist/chunk-RHK32N73.js +0 -30
- package/dist/chunk-RW3Y22MW.js +0 -97
- package/dist/chunk-S7VFUQM2.js +0 -1484
- package/dist/chunk-S7VFUQM2.js.map +0 -1
- package/dist/chunk-T7WSLRAU.js +0 -49
- package/dist/chunk-TAKWLZZX.js +0 -944
- package/dist/chunk-TAKWLZZX.js.map +0 -1
- package/dist/chunk-TMBXVJKT.js +0 -75
- package/dist/chunk-TWKKOM55.js +0 -54
- package/dist/chunk-U3WZCU7E.js +0 -14
- package/dist/chunk-UF362QVH.js +0 -70
- package/dist/chunk-UN4FVIBH.js +0 -135
- package/dist/chunk-VEAVKDDB.js +0 -29
- package/dist/chunk-VEPTFUJY.js +0 -29
- package/dist/chunk-VJV7GKQK.js +0 -662
- package/dist/chunk-VQRAIPYF.js +0 -50
- package/dist/chunk-VRIYFLBA.js +0 -74
- package/dist/chunk-VWM3DAVB.js +0 -265
- package/dist/chunk-VWRRVE6D.js +0 -80
- package/dist/chunk-WBJIQSLL.js +0 -167
- package/dist/chunk-WBJIQSLL.js.map +0 -1
- package/dist/chunk-WIGQB62E.js +0 -164
- package/dist/chunk-WZSCE6RM.js +0 -466
- package/dist/chunk-WZSCE6RM.js.map +0 -1
- package/dist/chunk-XGDAPN6M.js +0 -255
- package/dist/chunk-XH7XP3OL.js +0 -1221
- package/dist/chunk-XREOISSI.js +0 -40
- package/dist/chunk-XUBPSPKD.js +0 -164
- package/dist/chunk-Y3A5CB5G.js +0 -247
- package/dist/chunk-YCXCR7VG.js +0 -230
- package/dist/chunk-YMVQD5Q5.js +0 -453
- package/dist/chunk-YN5IAHN6.js +0 -32
- package/dist/chunk-YN5IAHN6.js.map +0 -1
- package/dist/chunk-ZYJ55N7N.js +0 -86
- package/dist/classified/index.d.ts +0 -16
- package/dist/classified-marker-H6YSHYNK.js +0 -24
- package/dist/classified-marker-H6YSHYNK.js.map +0 -1
- package/dist/collection-facade-LVD22JLM.js +0 -39
- package/dist/computed-EXDMQODG.js +0 -11
- package/dist/consent/index.d.ts +0 -22
- package/dist/crdt/index.d.ts +0 -33
- package/dist/dead-filter-HQIE2YG7.js +0 -28
- package/dist/decrypt-partition-IHtxEnTi.d.ts +0 -21
- package/dist/delegation-BJP73GAP.js +0 -25
- package/dist/derivations/index.d.ts +0 -69
- package/dist/derive-BME7HDWO.js +0 -21
- package/dist/dev-unlock-Bmm2pgJ0.d.ts +0 -263
- package/dist/discriminant-BN9REW3o.d.ts +0 -60
- package/dist/enclave-NHORSWSF.js +0 -125
- package/dist/executor-FE6X4LFX.js +0 -9
- package/dist/executor-KSHKRJXP.js +0 -25
- package/dist/executor-ZHTJJICG.js +0 -9
- package/dist/export-accessible-DACHM5VT.js +0 -23
- package/dist/extract-partition-RNENZZ4T.js +0 -36
- package/dist/fanout-sidecar-OFWN3NM7.js +0 -74
- package/dist/find-BNGBJNKP.js +0 -11
- package/dist/forget/index.d.ts +0 -36
- package/dist/guards/index.d.ts +0 -34
- package/dist/hash-DAJjMsCE.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-DjWbxsjb.d.ts +0 -23579
- package/dist/index-qwuNvO2B.d.ts +0 -144
- package/dist/indexing/index.d.ts +0 -38
- package/dist/issue-NDI4CVZU.js +0 -19
- package/dist/lazy/index.d.ts +0 -20
- package/dist/ledger-6NDS2EO4.js +0 -42
- package/dist/liberate-HN3RIGIP.js +0 -24
- package/dist/link-set-SJB2MVJV.js +0 -31
- package/dist/materialized-views/index.d.ts +0 -189
- package/dist/mime-magic-bBj5OgUC.d.ts +0 -103
- package/dist/noydb-BWF6EPIR.js +0 -66
- 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-WGNAG5H6.js +0 -41
- package/dist/portability/index.d.ts +0 -19
- package/dist/post-register-CWKBQRC7.js +0 -55
- package/dist/post-register-CWKBQRC7.js.map +0 -1
- package/dist/public-envelope-EJLVIFX7.js +0 -32
- package/dist/query/index.d.ts +0 -4
- package/dist/register-SBIX7TVV.js +0 -23
- package/dist/registry-3EQG6OOE.js +0 -18
- package/dist/registry-CA327ACV.js +0 -9
- package/dist/registry-E7OXOTSV.js +0 -19
- package/dist/request-withdrawal-KAH2AAXC.js +0 -31
- package/dist/reveal-R3JLHMUF.js +0 -38
- package/dist/revoke-IXLOJ3IH.js +0 -24
- 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-Y46N2GJ3.js +0 -25
- package/dist/snapshots/index.d.ts +0 -25
- package/dist/stale-Z7IW6RIL.js +0 -14
- package/dist/storage-ADNP2UWI.js +0 -23
- package/dist/store-coordination-provider-DTDMI6VL.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-DI-krBsZ.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-BUcli5Nh.d.ts +0 -101
- package/dist/vault-diff-Z2DUayMe.d.ts +0 -147
- package/dist/verify-JPF2YR5E.js +0 -139
- package/dist/walk-XYA2O3LW.js +0 -241
- package/dist/with/index.d.ts +0 -37
- package/dist/with-materialized-view-BUmzlXue.d.ts +0 -27
- package/dist/with-overlayed-view-m4FaXXTO.d.ts +0 -12
- package/dist/with-rollup-DEKGI9vb.d.ts +0 -47
- package/dist/withdraw-accessible-WLV4MTEN.js +0 -28
- /package/dist/{api-TX2EX2FX.js.map → api-3TH2GOFQ.js.map} +0 -0
- /package/dist/{backup-R7NTDFKY.js.map → backup-2WVBIVXW.js.map} +0 -0
- /package/dist/{chunk-TMBXVJKT.js.map → chunk-2MTRJCBI.js.map} +0 -0
- /package/dist/{chunk-3OPY6MK2.js.map → chunk-37WOJQWY.js.map} +0 -0
- /package/dist/{chunk-KJ2BCBTL.js.map → chunk-3QSOFZQB.js.map} +0 -0
- /package/dist/{chunk-DV4HUP5G.js.map → chunk-44IL5G3W.js.map} +0 -0
- /package/dist/{chunk-HYR4WZZ3.js.map → chunk-45QPICLE.js.map} +0 -0
- /package/dist/{chunk-XUBPSPKD.js.map → chunk-4BQXMCE5.js.map} +0 -0
- /package/dist/{chunk-RHK32N73.js.map → chunk-5HNX4OD4.js.map} +0 -0
- /package/dist/{chunk-2REPHKET.js.map → chunk-65VLRG3I.js.map} +0 -0
- /package/dist/{chunk-G6XV4H65.js.map → chunk-6MA575R5.js.map} +0 -0
- /package/dist/{chunk-F4CEK5YM.js.map → chunk-7GAXFU2O.js.map} +0 -0
- /package/dist/{chunk-6G5ORS5D.js.map → chunk-7QLY64AD.js.map} +0 -0
- /package/dist/{chunk-5VG4IJR7.js.map → chunk-7ZOSHEVS.js.map} +0 -0
- /package/dist/{chunk-LEJIKBBB.js.map → chunk-APHLCXVC.js.map} +0 -0
- /package/dist/{chunk-KNZB6JMR.js.map → chunk-BDEMZD4F.js.map} +0 -0
- /package/dist/{chunk-VJV7GKQK.js.map → chunk-BDPAVYGJ.js.map} +0 -0
- /package/dist/{chunk-G4JYND6L.js.map → chunk-BLUT46UP.js.map} +0 -0
- /package/dist/{chunk-J4LPNIGK.js.map → chunk-CCIR2OJH.js.map} +0 -0
- /package/dist/{chunk-5YESYH2C.js.map → chunk-CXC3JLAQ.js.map} +0 -0
- /package/dist/{chunk-XH7XP3OL.js.map → chunk-CZMCOFEA.js.map} +0 -0
- /package/dist/{chunk-WIGQB62E.js.map → chunk-DIB2BOIH.js.map} +0 -0
- /package/dist/{chunk-UF362QVH.js.map → chunk-EIZ4YOG2.js.map} +0 -0
- /package/dist/{chunk-DFVUTGT2.js.map → chunk-EVHBK7BN.js.map} +0 -0
- /package/dist/{chunk-ET67AY6B.js.map → chunk-EXGDL2UQ.js.map} +0 -0
- /package/dist/{chunk-YMVQD5Q5.js.map → chunk-F3LGBRSV.js.map} +0 -0
- /package/dist/{chunk-NUEQU36L.js.map → chunk-F44XWXOA.js.map} +0 -0
- /package/dist/{chunk-YCXCR7VG.js.map → chunk-FF7S3XDW.js.map} +0 -0
- /package/dist/{chunk-OXCSVM3B.js.map → chunk-FJTWLQV3.js.map} +0 -0
- /package/dist/{chunk-PS2NEWEX.js.map → chunk-FYNE4WLC.js.map} +0 -0
- /package/dist/{chunk-FORYWFN6.js.map → chunk-GL3JV5EV.js.map} +0 -0
- /package/dist/{chunk-VEAVKDDB.js.map → chunk-GXLZXD2W.js.map} +0 -0
- /package/dist/{chunk-3JXPAHOZ.js.map → chunk-HBBZWEC5.js.map} +0 -0
- /package/dist/{chunk-LL2NIVUR.js.map → chunk-HG76BZ6G.js.map} +0 -0
- /package/dist/{chunk-O45M6LDB.js.map → chunk-HGAB325C.js.map} +0 -0
- /package/dist/{chunk-T7WSLRAU.js.map → chunk-HK4XTXO4.js.map} +0 -0
- /package/dist/{chunk-U3WZCU7E.js.map → chunk-HYG32HCM.js.map} +0 -0
- /package/dist/{chunk-UN4FVIBH.js.map → chunk-ILF5GARW.js.map} +0 -0
- /package/dist/{chunk-BKARNZJN.js.map → chunk-INBQ43DI.js.map} +0 -0
- /package/dist/{chunk-Y3A5CB5G.js.map → chunk-IQIVD7TP.js.map} +0 -0
- /package/dist/{chunk-QA2KUPCP.js.map → chunk-J3JIYFYL.js.map} +0 -0
- /package/dist/{chunk-OVYRLHPE.js.map → chunk-JGUZMC3I.js.map} +0 -0
- /package/dist/{chunk-VWRRVE6D.js.map → chunk-JRKE5MAZ.js.map} +0 -0
- /package/dist/{chunk-XGDAPN6M.js.map → chunk-K2DLLK34.js.map} +0 -0
- /package/dist/{chunk-7BWJHO2A.js.map → chunk-KKYEZCQG.js.map} +0 -0
- /package/dist/{chunk-TWKKOM55.js.map → chunk-NAR6IDKH.js.map} +0 -0
- /package/dist/{chunk-OBKWYKYC.js.map → chunk-NEYKOESM.js.map} +0 -0
- /package/dist/{chunk-VEPTFUJY.js.map → chunk-NM3IFKBL.js.map} +0 -0
- /package/dist/{chunk-4OMCIY6F.js.map → chunk-NRYNRSGV.js.map} +0 -0
- /package/dist/{chunk-PLS64NCS.js.map → chunk-NT2ZO4KI.js.map} +0 -0
- /package/dist/{chunk-5I35DOHK.js.map → chunk-P2LJI6JE.js.map} +0 -0
- /package/dist/{chunk-QSFOZUYL.js.map → chunk-PH7G7ZI7.js.map} +0 -0
- /package/dist/{chunk-OHHKHSJP.js.map → chunk-PN5332SU.js.map} +0 -0
- /package/dist/{chunk-OT76OZL6.js.map → chunk-QF5LGMSV.js.map} +0 -0
- /package/dist/{chunk-3MATJ6O4.js.map → chunk-QG5RQQBO.js.map} +0 -0
- /package/dist/{chunk-DJ7KIPLV.js.map → chunk-QYPDYN23.js.map} +0 -0
- /package/dist/{chunk-IVLTXX4W.js.map → chunk-RNXJ2VO6.js.map} +0 -0
- /package/dist/{chunk-RW3Y22MW.js.map → chunk-RXTMLYJS.js.map} +0 -0
- /package/dist/{chunk-QOC3VYL2.js.map → chunk-S2OWPVSO.js.map} +0 -0
- /package/dist/{chunk-P33LUIML.js.map → chunk-S7TAPIRS.js.map} +0 -0
- /package/dist/{chunk-XREOISSI.js.map → chunk-SAL5X5OK.js.map} +0 -0
- /package/dist/{chunk-GNMXXTMN.js.map → chunk-SGJGWBSC.js.map} +0 -0
- /package/dist/{chunk-VQRAIPYF.js.map → chunk-SIAIYP6G.js.map} +0 -0
- /package/dist/{chunk-BQISD5ZV.js.map → chunk-TBNF5DV5.js.map} +0 -0
- /package/dist/{chunk-HPWKV3YB.js.map → chunk-TVOHSPVK.js.map} +0 -0
- /package/dist/{chunk-HY3AUMFI.js.map → chunk-TVS6BUUR.js.map} +0 -0
- /package/dist/{chunk-ZYJ55N7N.js.map → chunk-UMC5QZTX.js.map} +0 -0
- /package/dist/{chunk-2OZXVKVP.js.map → chunk-US34HTOI.js.map} +0 -0
- /package/dist/{chunk-EOXAAJTY.js.map → chunk-VCUQR6ZL.js.map} +0 -0
- /package/dist/{chunk-6P5XCKSD.js.map → chunk-WEHIQYQH.js.map} +0 -0
- /package/dist/{chunk-VWM3DAVB.js.map → chunk-WHQHTNT7.js.map} +0 -0
- /package/dist/{chunk-VRIYFLBA.js.map → chunk-X6Y5MXTH.js.map} +0 -0
- /package/dist/{chunk-3QSIU3UT.js.map → chunk-XJ47GS53.js.map} +0 -0
- /package/dist/{chunk-2OV5NVE7.js.map → chunk-XS6DLN67.js.map} +0 -0
- /package/dist/{chunk-FRP6D2DM.js.map → chunk-Y5TWPBNW.js.map} +0 -0
- /package/dist/{chunk-JJZ2LW6T.js.map → chunk-ZHOJOT6S.js.map} +0 -0
- /package/dist/{collection-facade-LVD22JLM.js.map → collection-facade-DWA735G2.js.map} +0 -0
- /package/dist/{computed-EXDMQODG.js.map → computed-ORCGM5JE.js.map} +0 -0
- /package/dist/{dead-filter-HQIE2YG7.js.map → dead-filter-OV5FGKOG.js.map} +0 -0
- /package/dist/{delegation-BJP73GAP.js.map → delegation-YVSHMIZZ.js.map} +0 -0
- /package/dist/{derive-BME7HDWO.js.map → derive-BUO555L5.js.map} +0 -0
- /package/dist/{enclave-NHORSWSF.js.map → enclave-XXFUKJC6.js.map} +0 -0
- /package/dist/{executor-FE6X4LFX.js.map → executor-6OCCE5VM.js.map} +0 -0
- /package/dist/{executor-KSHKRJXP.js.map → executor-JFVAJY42.js.map} +0 -0
- /package/dist/{executor-ZHTJJICG.js.map → executor-UPSH5O3F.js.map} +0 -0
- /package/dist/{export-accessible-DACHM5VT.js.map → export-accessible-L4A2QZA5.js.map} +0 -0
- /package/dist/{extract-partition-RNENZZ4T.js.map → extract-partition-ZHQ4RGGM.js.map} +0 -0
- /package/dist/{fanout-sidecar-OFWN3NM7.js.map → fanout-sidecar-IO2KDUWV.js.map} +0 -0
- /package/dist/{find-BNGBJNKP.js.map → find-ZFZDZQ2U.js.map} +0 -0
- /package/dist/{issue-NDI4CVZU.js.map → issue-OG4V23SQ.js.map} +0 -0
- /package/dist/{ledger-6NDS2EO4.js.map → ledger-UAQKPWNM.js.map} +0 -0
- /package/dist/{liberate-HN3RIGIP.js.map → liberate-GFUQJRK5.js.map} +0 -0
- /package/dist/{link-set-SJB2MVJV.js.map → link-set-DGYUOFVD.js.map} +0 -0
- /package/dist/{noydb-BWF6EPIR.js.map → noydb-AKH4AMCR.js.map} +0 -0
- /package/dist/{policy-WGNAG5H6.js.map → policy-5POYLI26.js.map} +0 -0
- /package/dist/{public-envelope-EJLVIFX7.js.map → public-envelope-GOG4LUM7.js.map} +0 -0
- /package/dist/{register-SBIX7TVV.js.map → register-ZI7YI7US.js.map} +0 -0
- /package/dist/{registry-3EQG6OOE.js.map → registry-DZ2T4LL7.js.map} +0 -0
- /package/dist/{registry-CA327ACV.js.map → registry-NVWEQ2GU.js.map} +0 -0
- /package/dist/{registry-E7OXOTSV.js.map → registry-SEKL74ET.js.map} +0 -0
- /package/dist/{request-withdrawal-KAH2AAXC.js.map → request-withdrawal-ZP3JIRVS.js.map} +0 -0
- /package/dist/{reveal-R3JLHMUF.js.map → reveal-NPVROV4D.js.map} +0 -0
- /package/dist/{revoke-IXLOJ3IH.js.map → revoke-VF6TAJK2.js.map} +0 -0
- /package/dist/{signer-Y46N2GJ3.js.map → signer-DRDDCCHW.js.map} +0 -0
- /package/dist/{stale-Z7IW6RIL.js.map → stale-TJXFQKOJ.js.map} +0 -0
- /package/dist/{storage-ADNP2UWI.js.map → storage-GR7KZRH4.js.map} +0 -0
- /package/dist/{store-coordination-provider-DTDMI6VL.js.map → store-coordination-provider-5KDS2RRP.js.map} +0 -0
- /package/dist/{verify-JPF2YR5E.js.map → verify-QK76NJ4G.js.map} +0 -0
- /package/dist/{walk-XYA2O3LW.js.map → walk-XQCBKSBW.js.map} +0 -0
- /package/dist/{withdraw-accessible-WLV4MTEN.js.map → withdraw-accessible-FMN4LPJZ.js.map} +0 -0
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Two-party withdrawal ceremony.
|
|
3
|
+
*
|
|
4
|
+
* The conservative counterpart to `unilateralWithdrawal`: a non-owner —
|
|
5
|
+
* including a read-only `client`/`viewer` who cannot self-serve a deletion —
|
|
6
|
+
* files a durable REQUEST; an owner/admin reviews it and either APPROVES
|
|
7
|
+
* (extract-and-dispose under firm authority) or REJECTS it. Every step is
|
|
8
|
+
* audited in the tamper-evident ledger.
|
|
9
|
+
*
|
|
10
|
+
* requester: vault.user.requestWithdrawal({ scope, disposition?, legalBasis? })
|
|
11
|
+
* owner: vault.user.listWithdrawalRequests()
|
|
12
|
+
* vault.user.approveWithdrawal(requestId, { reKey }) → { bundle, snapshot? }
|
|
13
|
+
* vault.user.rejectWithdrawal(requestId, { reason })
|
|
14
|
+
*
|
|
15
|
+
* Requests live in the reserved `_user_withdrawal_requests` namespace. The
|
|
16
|
+
* record body is plaintext metadata (collection names + disposition + legal
|
|
17
|
+
* basis — none secret in this trust model; the owner sees the data anyway) and
|
|
18
|
+
* carries NO passphrase: the re-key passphrase is supplied by the approver at
|
|
19
|
+
* approval time and conveyed to the requester out-of-band, so no secret is
|
|
20
|
+
* stored at rest.
|
|
21
|
+
*/
|
|
22
|
+
import type { Vault } from '../../kernel/vault.js';
|
|
23
|
+
import { NoydbError } from '../../kernel/errors.js';
|
|
24
|
+
import { type WithdrawResult } from './withdraw-accessible.js';
|
|
25
|
+
export declare const WITHDRAWAL_REQUESTS_COLLECTION = "_user_withdrawal_requests";
|
|
26
|
+
/** Raised when a request is missing, already decided, or expired. */
|
|
27
|
+
export declare class WithdrawalRequestError extends NoydbError {
|
|
28
|
+
constructor(message: string);
|
|
29
|
+
}
|
|
30
|
+
export type WithdrawalRequestStatus = 'pending' | 'approved' | 'rejected';
|
|
31
|
+
export interface WithdrawalRequest {
|
|
32
|
+
readonly requestId: string;
|
|
33
|
+
readonly requester: string;
|
|
34
|
+
readonly collections: readonly string[];
|
|
35
|
+
readonly disposition: 'delete' | 'freeze';
|
|
36
|
+
readonly legalBasis?: string;
|
|
37
|
+
readonly status: WithdrawalRequestStatus;
|
|
38
|
+
readonly requestedAt: string;
|
|
39
|
+
readonly expiresAt?: string;
|
|
40
|
+
readonly decidedAt?: string;
|
|
41
|
+
readonly decidedBy?: string;
|
|
42
|
+
readonly rejectReason?: string;
|
|
43
|
+
readonly snapshotSha256?: string;
|
|
44
|
+
}
|
|
45
|
+
export interface RequestWithdrawalOptions {
|
|
46
|
+
readonly scope?: {
|
|
47
|
+
readonly collections?: readonly string[];
|
|
48
|
+
};
|
|
49
|
+
readonly disposition?: 'delete' | 'freeze';
|
|
50
|
+
readonly legalBasis?: string;
|
|
51
|
+
/** Time-to-live in ms; after this the request can no longer be approved. */
|
|
52
|
+
readonly expiresInMs?: number;
|
|
53
|
+
}
|
|
54
|
+
export interface RequestWithdrawalResult {
|
|
55
|
+
readonly requestId: string;
|
|
56
|
+
readonly status: WithdrawalRequestStatus;
|
|
57
|
+
readonly expiresAt?: string;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Requester side. Files a durable request for the caller's accessible scope.
|
|
61
|
+
* Gated by `user-request-withdrawal` (checked in the UserApi wrapper).
|
|
62
|
+
*/
|
|
63
|
+
export declare function requestWithdrawal(vault: Vault, opts?: RequestWithdrawalOptions): Promise<RequestWithdrawalResult>;
|
|
64
|
+
/** Owner side. List filed requests (optionally by status). */
|
|
65
|
+
export declare function listWithdrawalRequests(vault: Vault, opts?: {
|
|
66
|
+
status?: WithdrawalRequestStatus;
|
|
67
|
+
}): Promise<WithdrawalRequest[]>;
|
|
68
|
+
export interface ApproveWithdrawalOptions {
|
|
69
|
+
/** Re-key the handed-back bundle to a passphrase the requester will use. */
|
|
70
|
+
readonly reKey?: {
|
|
71
|
+
readonly passphrase: string;
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Owner side. Extract the requester's recorded scope under firm authority,
|
|
76
|
+
* dispose of the source per the request's disposition, mark the request
|
|
77
|
+
* approved, and return the re-keyed bundle to hand back. Gated by
|
|
78
|
+
* `approve-user-withdrawal` (checked in the UserApi wrapper) + owner/admin role.
|
|
79
|
+
*/
|
|
80
|
+
export declare function approveWithdrawal(vault: Vault, requestId: string, opts?: ApproveWithdrawalOptions): Promise<WithdrawResult>;
|
|
81
|
+
export interface RejectWithdrawalOptions {
|
|
82
|
+
readonly reason?: string;
|
|
83
|
+
}
|
|
84
|
+
/** Owner side. Decline a pending request (no data is touched). */
|
|
85
|
+
export declare function rejectWithdrawal(vault: Vault, requestId: string, opts?: RejectWithdrawalOptions): Promise<WithdrawalRequest>;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Portability capability strategy — the six on-demand data-sovereignty methods
|
|
3
|
+
* the vault's `UserApi` routes through (`exportAccessibleData` /
|
|
4
|
+
* `withdrawAccessibleData` / `requestWithdrawal` / `listWithdrawalRequests` /
|
|
5
|
+
* `approveWithdrawal` / `rejectWithdrawal`). The active engine
|
|
6
|
+
* ({@link withPortability}) dynamically imports the export/withdraw/request
|
|
7
|
+
* cores (keeping them reachable only via opt-in); {@link NO_PORTABILITY} throws.
|
|
8
|
+
* The Vault always injects the closures the UserApi calls; they delegate here,
|
|
9
|
+
* so an un-opted-in caller hits `NO_PORTABILITY`'s throw.
|
|
10
|
+
* @internal
|
|
11
|
+
*/
|
|
12
|
+
import type { Vault } from '../../kernel/vault.js';
|
|
13
|
+
import type { ExportAccessibleOptions } from './export-accessible.js';
|
|
14
|
+
import type { WithdrawAccessibleOptions, WithdrawResult } from './withdraw-accessible.js';
|
|
15
|
+
import type { RequestWithdrawalOptions, RequestWithdrawalResult, WithdrawalRequest, WithdrawalRequestStatus, ApproveWithdrawalOptions, RejectWithdrawalOptions } from './request-withdrawal.js';
|
|
16
|
+
export interface PortabilityStrategy {
|
|
17
|
+
exportAccessibleData(vault: Vault, opts: ExportAccessibleOptions): Promise<Uint8Array>;
|
|
18
|
+
withdrawAccessibleData(vault: Vault, opts: WithdrawAccessibleOptions): Promise<WithdrawResult>;
|
|
19
|
+
requestWithdrawal(vault: Vault, opts: RequestWithdrawalOptions): Promise<RequestWithdrawalResult>;
|
|
20
|
+
listWithdrawalRequests(vault: Vault, opts: {
|
|
21
|
+
status?: WithdrawalRequestStatus;
|
|
22
|
+
}): Promise<WithdrawalRequest[]>;
|
|
23
|
+
approveWithdrawal(vault: Vault, requestId: string, opts: ApproveWithdrawalOptions): Promise<WithdrawResult>;
|
|
24
|
+
rejectWithdrawal(vault: Vault, requestId: string, opts: RejectWithdrawalOptions): Promise<WithdrawalRequest>;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* No-op stub — the floor default. Every capability method throws
|
|
28
|
+
* {@link PortabilityNotEnabledError}; opt in with
|
|
29
|
+
* `portabilityStrategy: withPortability()` in createNoydb. @internal
|
|
30
|
+
*/
|
|
31
|
+
export declare const NO_PORTABILITY: PortabilityStrategy;
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `unilateralWithdrawal`: a non-owner extracts their accessible scope
|
|
3
|
+
* AND disposes of the source copy. Destructive; gated by the default-off
|
|
4
|
+
* fail-closed built-in `client-unilateral-withdraw` policy (checked in the
|
|
5
|
+
* UserApi wrapper).
|
|
6
|
+
*
|
|
7
|
+
* Two source dispositions:
|
|
8
|
+
* - 'delete' — delete-closure: the records leave the source vault entirely.
|
|
9
|
+
* - 'freeze' — the firm retains a cryptographically-frozen, read-only, write-once
|
|
10
|
+
* snapshot (hash-pinned in the tamper-evident ledger) while the live
|
|
11
|
+
* records are removed.
|
|
12
|
+
*
|
|
13
|
+
* Ordering guarantees no data loss: the client's re-keyed export bundle (and the
|
|
14
|
+
* freeze snapshot) are produced BEFORE anything is deleted.
|
|
15
|
+
*
|
|
16
|
+
* The `freezeAndDeleteClosure` core is shared with the two-party approval path
|
|
17
|
+
* (`request-withdrawal.ts`).
|
|
18
|
+
*/
|
|
19
|
+
import type { Vault } from '../../kernel/vault.js';
|
|
20
|
+
export declare const FROZEN_SNAPSHOTS_COLLECTION = "_frozen_snapshots";
|
|
21
|
+
/** 24-hex-char random id (used for withdrawal ids + request ids). */
|
|
22
|
+
export declare function randomId(): string;
|
|
23
|
+
export interface FrozenSnapshotRef {
|
|
24
|
+
readonly withdrawalId: string;
|
|
25
|
+
readonly sha256: string;
|
|
26
|
+
readonly recordCount: number;
|
|
27
|
+
readonly frozenAt: string;
|
|
28
|
+
}
|
|
29
|
+
export interface WithdrawAccessibleOptions {
|
|
30
|
+
/** Legal/contractual basis recorded in the audit (e.g. 'gdpr-art-17'). */
|
|
31
|
+
readonly legalBasis: string;
|
|
32
|
+
/** Re-key the exported bundle to a new owner passphrase. */
|
|
33
|
+
readonly reKey?: {
|
|
34
|
+
readonly passphrase: string;
|
|
35
|
+
};
|
|
36
|
+
/** Source disposition. Default 'delete'. */
|
|
37
|
+
readonly disposition?: 'delete' | 'freeze';
|
|
38
|
+
readonly scope?: {
|
|
39
|
+
readonly collections?: readonly string[];
|
|
40
|
+
};
|
|
41
|
+
/** Stable id for idempotent resume (default random). */
|
|
42
|
+
readonly withdrawalId?: string;
|
|
43
|
+
}
|
|
44
|
+
export interface WithdrawResult {
|
|
45
|
+
readonly bundle: Uint8Array;
|
|
46
|
+
readonly snapshot?: FrozenSnapshotRef;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Freeze a write-once, hash-pinned snapshot of the current ciphertext for
|
|
50
|
+
* `collections` WITHOUT touching the live records. Returns the snapshot ref.
|
|
51
|
+
*
|
|
52
|
+
* This is the non-destructive core shared by two callers:
|
|
53
|
+
* - `freezeAndDeleteClosure` (withdrawal, disposition `'freeze'`) — which
|
|
54
|
+
* pins the snapshot and THEN delete-closures the live records.
|
|
55
|
+
* - FR-6 `liberateVault` (custody) — which pins a PRE-liberation evidence
|
|
56
|
+
* snapshot but PRESERVES the live data for the new owner (operational
|
|
57
|
+
* continuity; liberation transfers, it does not erase).
|
|
58
|
+
*
|
|
59
|
+
* The snapshot put is write-once (CAS expectedVersion 0) and the ledger pin is
|
|
60
|
+
* appended on success, so a crashed run re-run with the same `withdrawalId` is
|
|
61
|
+
* safe. The snapshot is taken under the vault's own firm-owned DEKs — no re-key.
|
|
62
|
+
*/
|
|
63
|
+
export declare function freezeSnapshotOnly(vault: Vault, collections: readonly string[], opts: {
|
|
64
|
+
actorUserId: string;
|
|
65
|
+
withdrawalId?: string;
|
|
66
|
+
}): Promise<FrozenSnapshotRef>;
|
|
67
|
+
/**
|
|
68
|
+
* Dispose of the source records for `collections`: optionally freeze a
|
|
69
|
+
* write-once hash-pinned snapshot of the original ciphertext, then
|
|
70
|
+
* delete-closure the live records. Returns the snapshot ref on freeze.
|
|
71
|
+
*
|
|
72
|
+
* Caller MUST have produced the portable bundle FIRST — this is destructive.
|
|
73
|
+
* The delete is best-effort + idempotent (re-deleting an absent record is a
|
|
74
|
+
* no-op) and the snapshot put is write-once (CAS expectedVersion 0), so a
|
|
75
|
+
* crashed run re-run with the same `withdrawalId` is safe.
|
|
76
|
+
*/
|
|
77
|
+
export declare function freezeAndDeleteClosure(vault: Vault, collections: readonly string[], opts: {
|
|
78
|
+
disposition: 'delete' | 'freeze';
|
|
79
|
+
actorUserId: string;
|
|
80
|
+
withdrawalId?: string;
|
|
81
|
+
}): Promise<FrozenSnapshotRef | undefined>;
|
|
82
|
+
export declare function withdrawAccessibleData(vault: Vault, opts: WithdrawAccessibleOptions): Promise<WithdrawResult>;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Enable the sealed-record (grantor-side) capability.
|
|
3
|
+
* Pass to `createNoydb({ sealedRecordStrategy: withSealedRecord() })` to make a
|
|
4
|
+
* vault's `sealRecordToHost` / `revokeSealedRecord` / `rotateRecordCek` methods
|
|
5
|
+
* live. The `record-keys` grantor engine is dynamically imported here, so it is
|
|
6
|
+
* reached only via opt-in.
|
|
7
|
+
*/
|
|
8
|
+
import type { SealedRecordStrategy } from './strategy.js';
|
|
9
|
+
export declare function withSealedRecord(): SealedRecordStrategy;
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `@noy-db/hub/sealed-record` — host-side opener for record-scoped CEK
|
|
3
|
+
* sealing.
|
|
4
|
+
*
|
|
5
|
+
* The **grantor** side (sealing a record's CEK to a host, revoking, and hard
|
|
6
|
+
* rotation) lives on `Vault` (`vault.sealRecordToHost` /
|
|
7
|
+
* `vault.revokeSealedRecord` / `vault.rotateRecordCek`) because it needs the
|
|
8
|
+
* collection DEK. This subpath exposes the **recipient host** side:
|
|
9
|
+
* {@link openSealedRecord} reconstructs a single record's plaintext from
|
|
10
|
+
* (a) the sealed-CEK delivery envelope, (b) the record's encrypted envelope
|
|
11
|
+
* body, and (c) the host's own unsealer — and **nothing else**. The host never
|
|
12
|
+
* touches a vault DEK and can decrypt exactly the one bound record.
|
|
13
|
+
*
|
|
14
|
+
* @module
|
|
15
|
+
*/
|
|
16
|
+
import type { SealedCekDeliveryEnvelope } from './types.js';
|
|
17
|
+
export type { SealedCekDeliveryEnvelope, SealedCekBinding } from './types.js';
|
|
18
|
+
export { SealedRecordExpiredError, SealedRecordMismatchError } from '../../kernel/errors.js';
|
|
19
|
+
export { withSealedRecord } from './active.js';
|
|
20
|
+
export { NO_SEALED_RECORD, type SealedRecordStrategy } from './strategy.js';
|
|
21
|
+
export { SealedRecordNotEnabledError } from '../../kernel/errors.js';
|
|
22
|
+
/**
|
|
23
|
+
* Host-side: decrypt a single record whose CEK was sealed to this host by a
|
|
24
|
+
* vault grantor via `vault.sealRecordToHost()`.
|
|
25
|
+
*
|
|
26
|
+
* Verification order (security-critical — do NOT reorder past the unseal):
|
|
27
|
+
* 1. **Fast-path expiry** — reject on the delivery envelope's clear-text
|
|
28
|
+
* `expiresAt` before doing any (potentially expensive) unseal work. This is
|
|
29
|
+
* a hint only.
|
|
30
|
+
* 2. **Unseal** the `payload` with the host's `recipientSealer.unseal` →
|
|
31
|
+
* parse the {@link SealedCekBinding}.
|
|
32
|
+
* 3. **Binding match** — the binding's `{collection, id}` MUST equal the
|
|
33
|
+
* expected pair, else {@link SealedRecordMismatchError}. This is the
|
|
34
|
+
* host-denial boundary (a CEK sealed for record A cannot open record B).
|
|
35
|
+
* 4. **Authoritative expiry** — re-check `binding.expiresAt` (the copy that
|
|
36
|
+
* cannot be forged by editing the delivery envelope), else
|
|
37
|
+
* {@link SealedRecordExpiredError}.
|
|
38
|
+
* 5. **Decrypt** the record body under the unsealed CEK. A CEK from a
|
|
39
|
+
* PRE-rotation seal applied to a POST-rotation live envelope passes (1)-(4)
|
|
40
|
+
* but fails the AES-GCM auth tag → `TamperedError` from `decrypt`.
|
|
41
|
+
*
|
|
42
|
+
* @param sealedCekEnvelope The `SealedCekDeliveryEnvelope` written by the grantor.
|
|
43
|
+
* @param recordEnvelope The record's `{ _iv, _data }` (the encrypted body).
|
|
44
|
+
* @param recipientSealer The host's unsealer (`{ unseal(bytes) }`) — e.g. a
|
|
45
|
+
* KMS-backed sealer or `MemoryRecipientSealer`.
|
|
46
|
+
* @param expectedCollection Collection the caller believes `recordEnvelope` is in.
|
|
47
|
+
* @param expectedId Record id the caller believes `recordEnvelope` is.
|
|
48
|
+
* @returns The decrypted record body as a JSON string.
|
|
49
|
+
*/
|
|
50
|
+
export declare function openSealedRecord(sealedCekEnvelope: SealedCekDeliveryEnvelope, recordEnvelope: {
|
|
51
|
+
readonly _iv: string;
|
|
52
|
+
readonly _data: string;
|
|
53
|
+
}, recipientSealer: {
|
|
54
|
+
unseal(bytes: Uint8Array): Promise<Uint8Array>;
|
|
55
|
+
}, expectedCollection: string, expectedId: string): Promise<string>;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sealed-record (grantor-side) capability strategy — the three on-demand vault
|
|
3
|
+
* methods the record-scoped CEK sealing surface routes through. The active
|
|
4
|
+
* engine ({@link withSealedRecord}) dynamically imports the `record-keys`
|
|
5
|
+
* grantor cores (keeping them reachable only via opt-in); {@link NO_SEALED_RECORD}
|
|
6
|
+
* throws. The vault always assembles the per-call {@link SealingContext} and
|
|
7
|
+
* delegates here, so an un-opted-in caller hits `NO_SEALED_RECORD`'s throw.
|
|
8
|
+
*
|
|
9
|
+
* Note: the recipient-host opener (`openSealedRecord`) is a pure decrypt
|
|
10
|
+
* function exported from this subpath and is NOT gated — it runs on a remote
|
|
11
|
+
* host with no `createNoydb` instance (the same way the attestation verifier
|
|
12
|
+
* stays ungated). Only the vault-side grantor operations are the capability.
|
|
13
|
+
* @internal
|
|
14
|
+
*/
|
|
15
|
+
import type { SealingContext } from '../../kernel/enclave/index.js';
|
|
16
|
+
import type { RecipientSealer } from '../../with-party/team/managed-passphrase.js';
|
|
17
|
+
export interface SealedRecordStrategy {
|
|
18
|
+
sealRecordToHost(ctx: SealingContext, collection: string, id: string, hostSealer: RecipientSealer, opts: {
|
|
19
|
+
expiresAt: string;
|
|
20
|
+
}): Promise<{
|
|
21
|
+
pid: string;
|
|
22
|
+
envelopeKey: string;
|
|
23
|
+
}>;
|
|
24
|
+
revokeSealedRecord(ctx: SealingContext, collection: string, id: string, pid: string, opts?: {
|
|
25
|
+
hard?: boolean;
|
|
26
|
+
}): Promise<void>;
|
|
27
|
+
rotateRecordCek(ctx: SealingContext, collection: string, id: string): Promise<void>;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* No-op stub — the floor default. Every grantor method throws
|
|
31
|
+
* {@link SealedRecordNotEnabledError}; opt in with
|
|
32
|
+
* `sealedRecordStrategy: withSealedRecord()` in createNoydb. @internal
|
|
33
|
+
*/
|
|
34
|
+
export declare const NO_SEALED_RECORD: SealedRecordStrategy;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Wire + binding types for record-scoped CEK sealing.
|
|
3
|
+
*
|
|
4
|
+
* A vault owner who holds the collection DEK can **seal a single record's
|
|
5
|
+
* content-encryption key (CEK)** to an `at-*` host (e.g. a KMS-backed
|
|
6
|
+
* {@link RecipientSealer}) so that host — and only that host — can decrypt
|
|
7
|
+
* exactly that one record, with no access to the vault DEK and no ability to
|
|
8
|
+
* read any other record. This is the record-granular counterpart to the
|
|
9
|
+
* bundle-granular sealed-credential delivery (`SealedEnvelope`).
|
|
10
|
+
*
|
|
11
|
+
* Two shapes live here:
|
|
12
|
+
*
|
|
13
|
+
* - {@link SealedCekDeliveryEnvelope} — the **thin delivery envelope** the
|
|
14
|
+
* grantor writes to `_sealed_cek/<collection>/<id>/<pid>`. It carries only
|
|
15
|
+
* routing metadata (`pid`, `expiresAt`) in the clear plus the opaque sealed
|
|
16
|
+
* `payload`. The `expiresAt` here is a *fast-path* hint; the authoritative
|
|
17
|
+
* expiry lives INSIDE the sealed payload (see below).
|
|
18
|
+
*
|
|
19
|
+
* - {@link SealedCekBinding} — the plaintext struct that is sealed for the
|
|
20
|
+
* host. It binds the CEK to its `{collection, id}` and an authoritative
|
|
21
|
+
* `expiresAt`, so a host cannot take a CEK sealed for record A and apply it
|
|
22
|
+
* to record B's envelope (mismatch is rejected), nor read past expiry. The
|
|
23
|
+
* binding is the security boundary; the delivery envelope is just transport.
|
|
24
|
+
*
|
|
25
|
+
* @module
|
|
26
|
+
*/
|
|
27
|
+
export type { SealedCekDeliveryEnvelope, SealedCekBinding } from '../../kernel/types.js';
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Enable the hierarchical-tiers capability.
|
|
3
|
+
* Pass to `createNoydb({ tiersStrategy: withTiers() })` to make a collection's
|
|
4
|
+
* `putAtTier` / `getAtTier` / `listAtTier` / `elevate` / `demote` methods live.
|
|
5
|
+
* The tier read/write/re-key engine is dynamically imported here, so it stays
|
|
6
|
+
* out of the floor bundle until opted in.
|
|
7
|
+
*/
|
|
8
|
+
import type { TiersStrategy } from './strategy.js';
|
|
9
|
+
export declare function withTiers(): TiersStrategy;
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Hierarchical access — the collection-level tier operations
|
|
3
|
+
* (`putAtTier` / `getAtTier` / `listAtTier` / `elevate` / `demote`).
|
|
4
|
+
*
|
|
5
|
+
* A collection opted into `{ tiers: [...] }` stamps `_tier: N` on each envelope
|
|
6
|
+
* and encrypts its body under the tier-N DEK. These helpers are the read/write
|
|
7
|
+
* surface for that scheme: write at a tier, read with tier-aware visibility
|
|
8
|
+
* (invisibility vs. ghost), and move a record up (`elevate`) or down (`demote`)
|
|
9
|
+
* the tier ladder by re-wrapping its body key.
|
|
10
|
+
*
|
|
11
|
+
* Each function takes a small {@link TiersContext} (the exact `this.*` the
|
|
12
|
+
* moving methods touched) instead of `this`, mirroring the `record-keys/`
|
|
13
|
+
* siblings. Behaviour is byte-identical to the inline code it replaced.
|
|
14
|
+
*
|
|
15
|
+
* The crux is `cekCache`: `elevate`/`demote`/`getAtTier` write the SAME `Lru`
|
|
16
|
+
* reference `Collection` owns (never a copy) so a per-record CEK re-wrap stays
|
|
17
|
+
* synchronous with the cache the kernel's write/read path also mutates. The
|
|
18
|
+
* cross-tier event sink stays collection-resident and is reached via the
|
|
19
|
+
* `emitCrossTierEvent` callback.
|
|
20
|
+
*
|
|
21
|
+
* Internal service — not exported as a `@noy-db/hub/*` subpath.
|
|
22
|
+
*/
|
|
23
|
+
export { withTiers } from './active.js';
|
|
24
|
+
export { NO_TIERS, type TiersStrategy } from './strategy.js';
|
|
25
|
+
export { TiersNotEnabledError } from '../../kernel/errors.js';
|
|
26
|
+
import { type RecordCodec, type EnclaveKey, type SealedShredSlot } from '../../kernel/enclave/index.js';
|
|
27
|
+
import type { UnlockedKeyring } from '../../with-party/team/keyring.js';
|
|
28
|
+
import type { Lru } from '../../kernel/cache/index.js';
|
|
29
|
+
import { type NoydbStore, type EncryptedEnvelope, type GhostRecord, type TierMode, type CrossTierAccessEvent } from '../../kernel/types.js';
|
|
30
|
+
/** Everything the moving tier methods touched on `this.*`, as a flat context. */
|
|
31
|
+
export interface TiersContext<T> {
|
|
32
|
+
/** Collection name — the crypto AAD scope and tier-DEK key prefix. */
|
|
33
|
+
readonly name: string;
|
|
34
|
+
/** Vault namespace the records live under. */
|
|
35
|
+
readonly vault: string;
|
|
36
|
+
/** The ciphertext store. */
|
|
37
|
+
readonly adapter: NoydbStore;
|
|
38
|
+
/** The caller's unlocked keyring (tier-DEK holdings + role + userId). */
|
|
39
|
+
readonly keyring: UnlockedKeyring;
|
|
40
|
+
/** The record codec — decrypts a tier-0 envelope to T. */
|
|
41
|
+
readonly codec: RecordCodec<T>;
|
|
42
|
+
/**
|
|
43
|
+
* The collection's per-record CEK cache (SHARED reference, not a copy).
|
|
44
|
+
* `elevate`/`demote`/`getAtTier` re-wrap a record's CEK and `set` it here so
|
|
45
|
+
* the move stays synchronous with the cache the kernel's read/write path
|
|
46
|
+
* owns. `null` → no caching.
|
|
47
|
+
*/
|
|
48
|
+
readonly cekCache: Lru<string, EnclaveKey> | null;
|
|
49
|
+
/** Emit `_source`/`_sourceTs` provenance fields when a source is supplied. */
|
|
50
|
+
readonly provenance: boolean;
|
|
51
|
+
/** Declared tiers, or null when the feature is off. */
|
|
52
|
+
readonly tiers: ReadonlySet<number> | null;
|
|
53
|
+
/** Above-tier read visibility mode (`'invisibility'` | `'ghost'`). */
|
|
54
|
+
readonly tierMode: TierMode;
|
|
55
|
+
/** Resolve a tier DEK by its `dekKey(name, tier)`. */
|
|
56
|
+
getDEK(key: string): Promise<EnclaveKey>;
|
|
57
|
+
/** Fire a cross-tier access event (sink stays collection-resident). */
|
|
58
|
+
emitCrossTierEvent(event: CrossTierAccessEvent): void;
|
|
59
|
+
}
|
|
60
|
+
export declare function assertTiersEnabled<T>(ctx: TiersContext<T>): void;
|
|
61
|
+
export declare function assertDeclaredTier<T>(ctx: TiersContext<T>, tier: number): void;
|
|
62
|
+
/**
|
|
63
|
+
* tier-aware put. Encrypts the record with the collection's tier-N DEK and
|
|
64
|
+
* stamps `_tier: N` on the envelope. The caller's keyring must hold the tier-N
|
|
65
|
+
* DEK (directly, by delegation, or by virtue of being the grantor); otherwise
|
|
66
|
+
* throws `TierNotGrantedError`.
|
|
67
|
+
*
|
|
68
|
+
* accepts an optional `elevation` context. When present, the emitted cross-tier
|
|
69
|
+
* event is stamped with `authorization: 'elevation'`, the elevation's reason,
|
|
70
|
+
* and the caller's pre-elevation tier. `vault.elevate(...).collection().put`
|
|
71
|
+
* threads this through; direct `putAtTier` calls leave it undefined and fall
|
|
72
|
+
* back to the inherent-write event shape.
|
|
73
|
+
*/
|
|
74
|
+
export declare function putAtTier<T>(ctx: TiersContext<T>, id: string, record: T, tier: number, opts?: {
|
|
75
|
+
elevation?: {
|
|
76
|
+
reason: string;
|
|
77
|
+
fromTier: number;
|
|
78
|
+
};
|
|
79
|
+
source?: string;
|
|
80
|
+
sourceTs?: string;
|
|
81
|
+
}): Promise<void>;
|
|
82
|
+
/**
|
|
83
|
+
* tier-aware get. When the stored record is at a tier the caller cannot
|
|
84
|
+
* decrypt:
|
|
85
|
+
* - `'invisibility'` mode (default) → returns `null`.
|
|
86
|
+
* - `'ghost'` mode → returns a `GhostRecord` placeholder with the tier and
|
|
87
|
+
* the record id (the record exists but contents are withheld).
|
|
88
|
+
*
|
|
89
|
+
* Fully-cleared reads return the plaintext record and fire a cross-tier event
|
|
90
|
+
* when `_tier > 0`.
|
|
91
|
+
*/
|
|
92
|
+
export declare function getAtTier<T>(ctx: TiersContext<T>, id: string): Promise<T | GhostRecord | null>;
|
|
93
|
+
/**
|
|
94
|
+
* list ids grouped by the caller's readability. Returns only ids whose tier the
|
|
95
|
+
* caller can read. Above-tier ids are omitted in `'invisibility'` mode and
|
|
96
|
+
* included (with tier metadata) in `'ghost'` mode.
|
|
97
|
+
*/
|
|
98
|
+
export declare function listAtTier<T>(ctx: TiersContext<T>): Promise<Array<{
|
|
99
|
+
id: string;
|
|
100
|
+
tier: number;
|
|
101
|
+
readable: boolean;
|
|
102
|
+
}>>;
|
|
103
|
+
/**
|
|
104
|
+
* elevate a record to a higher tier. Re-encrypts with the target tier's DEK.
|
|
105
|
+
* The caller must hold DEKs for both the current tier (to decrypt) and the
|
|
106
|
+
* target tier (to re-encrypt). Stamps `_elevatedBy` with the caller id so
|
|
107
|
+
* `demote()` can check the reverse operation.
|
|
108
|
+
*/
|
|
109
|
+
export declare function elevate<T>(ctx: TiersContext<T>, id: string, toTier: number): Promise<void>;
|
|
110
|
+
/**
|
|
111
|
+
* demote a record to a lower tier. Allowed only for the user who performed the
|
|
112
|
+
* last elevation or an owner.
|
|
113
|
+
*/
|
|
114
|
+
export declare function demote<T>(ctx: TiersContext<T>, id: string, toTier: number): Promise<void>;
|
|
115
|
+
/**
|
|
116
|
+
* Classify a live envelope's `_sealed` slots for crypto-shred completeness
|
|
117
|
+
* (#M-1). Thin delegate to {@link RecordCodec.classifySealedShred}; surfaced
|
|
118
|
+
* here because `vault.ts` forget() reaches in via `collection._classifySealedShred`.
|
|
119
|
+
*/
|
|
120
|
+
export declare function classifySealedShred<T>(ctx: TiersContext<T>, live: EncryptedEnvelope): Promise<{
|
|
121
|
+
readonly slots: readonly SealedShredSlot[];
|
|
122
|
+
}>;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tiers capability strategy — the five on-demand collection-level tier
|
|
3
|
+
* operations the `Collection` routes through. The active engine
|
|
4
|
+
* ({@link withTiers}) dynamically imports the tier cores (keeping them out of
|
|
5
|
+
* the floor bundle); {@link NO_TIERS} throws. Collection always builds its
|
|
6
|
+
* per-call {@link TiersContext} and delegates here, so an un-opted-in caller
|
|
7
|
+
* hits `NO_TIERS`'s throw.
|
|
8
|
+
* @internal
|
|
9
|
+
*/
|
|
10
|
+
import type { GhostRecord } from '../../kernel/types.js';
|
|
11
|
+
import type { TiersContext } from './index.js';
|
|
12
|
+
export interface TiersStrategy {
|
|
13
|
+
putAtTier<T>(ctx: TiersContext<T>, id: string, record: T, tier: number, opts?: {
|
|
14
|
+
elevation?: {
|
|
15
|
+
reason: string;
|
|
16
|
+
fromTier: number;
|
|
17
|
+
};
|
|
18
|
+
source?: string;
|
|
19
|
+
sourceTs?: string;
|
|
20
|
+
}): Promise<void>;
|
|
21
|
+
getAtTier<T>(ctx: TiersContext<T>, id: string): Promise<T | GhostRecord | null>;
|
|
22
|
+
listAtTier<T>(ctx: TiersContext<T>): Promise<Array<{
|
|
23
|
+
id: string;
|
|
24
|
+
tier: number;
|
|
25
|
+
readable: boolean;
|
|
26
|
+
}>>;
|
|
27
|
+
elevate<T>(ctx: TiersContext<T>, id: string, toTier: number): Promise<void>;
|
|
28
|
+
demote<T>(ctx: TiersContext<T>, id: string, toTier: number): Promise<void>;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* No-op stub — the floor default. Every capability method throws
|
|
32
|
+
* {@link TiersNotEnabledError}; opt in with `tiersStrategy: withTiers()` in
|
|
33
|
+
* createNoydb. @internal
|
|
34
|
+
*/
|
|
35
|
+
export declare const NO_TIERS: TiersStrategy;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Enable the cargo (partition extraction) capability.
|
|
3
|
+
* Pass to `createNoydb({ cargoStrategy: withCargo() })` to make the source-side
|
|
4
|
+
* `extractPartition(vault, ...)` free function live. The extraction crypto
|
|
5
|
+
* engine is dynamically imported here, so it stays out of the floor bundle
|
|
6
|
+
* until opted in. The recipient-side `adoptPartition` /
|
|
7
|
+
* `decryptExtractedPartition` free functions — and `diffVault` (shared
|
|
8
|
+
* import/merge infra) — are ungated and unaffected.
|
|
9
|
+
*/
|
|
10
|
+
import type { CargoStrategy } from './strategy.js';
|
|
11
|
+
export declare function withCargo(): CargoStrategy;
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Partition adoption. Recipient side: verify an extracted bundle,
|
|
3
|
+
* validate the transfer key, import the re-keyed collections into a
|
|
4
|
+
* destination store, and record an `_meta/adoption` marker. The bundle
|
|
5
|
+
* stays UNOWNED after adoption — `createOwnerOnAdoptedPartition`
|
|
6
|
+
* mints the owner; the transfer seal is then destroyed.
|
|
7
|
+
*
|
|
8
|
+
* @module
|
|
9
|
+
*/
|
|
10
|
+
import { type EnclaveKey } from '../kernel/enclave/index.js';
|
|
11
|
+
import type { NoydbStore } from '../kernel/types.js';
|
|
12
|
+
import type { SealingKeyProvider } from '../with-party/team/managed-passphrase.js';
|
|
13
|
+
import type { ShamirRecoveryProvider } from '../with-party/team/shamir-recovery-provider.js';
|
|
14
|
+
import type { RecoveryEnrollmentInput } from '../with-party/team/rotate-recover.js';
|
|
15
|
+
import type { TransferSealPayload } from '../with-pod/bundle.js';
|
|
16
|
+
/**
|
|
17
|
+
* Reverse of `sealDeks`. Imports the transfer key, decrypts the
|
|
18
|
+
* sealed `{ collection: base64(rawDEK) }` map (layout iv(12)‖ct‖tag), and
|
|
19
|
+
* re-imports each DEK as an AES-GCM key. Throws `TransferSealError` on a
|
|
20
|
+
* wrong key (AES-GCM auth-tag failure) or malformed payload.
|
|
21
|
+
*/
|
|
22
|
+
export declare function unsealDeks(seal: TransferSealPayload, transferKey: Uint8Array): Promise<Map<string, EnclaveKey>>;
|
|
23
|
+
export interface AdoptPartitionOptions {
|
|
24
|
+
readonly transferKey: Uint8Array;
|
|
25
|
+
readonly destinationStore: NoydbStore;
|
|
26
|
+
readonly vaultName: string;
|
|
27
|
+
}
|
|
28
|
+
export interface AdoptPartitionResult {
|
|
29
|
+
readonly vaultName: string;
|
|
30
|
+
readonly needsOwner: true;
|
|
31
|
+
readonly sealId: string;
|
|
32
|
+
}
|
|
33
|
+
export declare function adoptPartition(bundleBytes: Uint8Array, opts: AdoptPartitionOptions): Promise<AdoptPartitionResult>;
|
|
34
|
+
export interface CreateOwnerResult {
|
|
35
|
+
readonly vaultName: string;
|
|
36
|
+
readonly userId: string;
|
|
37
|
+
}
|
|
38
|
+
/** Standard-mode owner: recipient supplies the passphrase. */
|
|
39
|
+
export interface CreateOwnerStandardOptions {
|
|
40
|
+
readonly userId: string;
|
|
41
|
+
readonly passphrase: string;
|
|
42
|
+
readonly transferKey: Uint8Array;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Managed-mode owner: the passphrase is minted + sealed under
|
|
46
|
+
* a `SealingKeyProvider` (e.g. an `at-*` OS keychain) so the partition
|
|
47
|
+
* auto-unlocks on the recipient's device. Managed mode mandates a strong
|
|
48
|
+
* (Shamir) recovery profile at creation, which needs the
|
|
49
|
+
* `shamirRecovery` provider injected.
|
|
50
|
+
*/
|
|
51
|
+
export interface CreateOwnerManagedOptions {
|
|
52
|
+
readonly userId: string;
|
|
53
|
+
readonly passphraseMode: 'managed';
|
|
54
|
+
readonly sealingKey: SealingKeyProvider;
|
|
55
|
+
readonly recovery: ReadonlyArray<RecoveryEnrollmentInput>;
|
|
56
|
+
readonly shamirRecovery: ShamirRecoveryProvider;
|
|
57
|
+
readonly transferKey: Uint8Array;
|
|
58
|
+
}
|
|
59
|
+
export type CreateOwnerOptions = CreateOwnerStandardOptions | CreateOwnerManagedOptions;
|
|
60
|
+
/**
|
|
61
|
+
* Mint the first owner keyring on an adopted-but-unowned partition,
|
|
62
|
+
* then destroy the transfer seal.
|
|
63
|
+
*
|
|
64
|
+
* Standard mode: the recipient supplies a passphrase. Managed mode: the
|
|
65
|
+
* passphrase is minted + sealed under a `SealingKeyProvider` and a strong
|
|
66
|
+
* (Shamir) recovery profile is enrolled — orchestrated via the existing
|
|
67
|
+
* `openVaultAndEnrollRecovery` ceremony.
|
|
68
|
+
*
|
|
69
|
+
* Either way, reuses `createOwnerKeyring` to derive the KEK + write the base
|
|
70
|
+
* keyring, then wraps the partition's DEKs (recovered from the seal) under that
|
|
71
|
+
* KEK and re-persists the merged keyring file.
|
|
72
|
+
*
|
|
73
|
+
* Idempotent under retry: the seal is destroyed LAST (Stage D), after the
|
|
74
|
+
* keyring (Stage A), the ledger transition (Stage B), and — in managed mode —
|
|
75
|
+
* strong-recovery enrollment (Stage C). A failure in the fallible enrollment
|
|
76
|
+
* step leaves the seal intact, and re-running with the same `userId` +
|
|
77
|
+
* `transferKey` resumes from the first incomplete stage. (Multi-profile recovery
|
|
78
|
+
* arrays may re-enroll an already-enrolled profile on retry; managed mode's
|
|
79
|
+
* mandated single Shamir profile does not.)
|
|
80
|
+
*/
|
|
81
|
+
export declare function createOwnerOnAdoptedPartition(store: NoydbStore, vaultName: string, opts: CreateOwnerOptions): Promise<CreateOwnerResult>;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/** One decrypted record from an extracted-partition compartment. */
|
|
2
|
+
export interface DecryptedRecord {
|
|
3
|
+
readonly id: string;
|
|
4
|
+
readonly record: Record<string, unknown>;
|
|
5
|
+
/** Source envelope write timestamp (ISO) — for last-write-wins merges. */
|
|
6
|
+
readonly ts: string;
|
|
7
|
+
/** Source envelope version. */
|
|
8
|
+
readonly version: number;
|
|
9
|
+
/** Provenance source id (FR-5). Present only when the source collection had provenance:true and a source was supplied on put. */
|
|
10
|
+
readonly source?: string;
|
|
11
|
+
/** ISO-8601 timestamp the provenance source was recorded (FR-5). */
|
|
12
|
+
readonly sourceTs?: string;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Decrypt every record of an extracted-partition bundle to plaintext,
|
|
16
|
+
* grouped by collection. Throws if the bundle isn't an
|
|
17
|
+
* extracted-partition or the transfer key is wrong.
|
|
18
|
+
*/
|
|
19
|
+
export declare function decryptExtractedPartition(bundleBytes: Uint8Array, transferKey: Uint8Array): Promise<Record<string, DecryptedRecord[]>>;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Partition-extraction dry-run. Read-only preview of what an
|
|
3
|
+
* `extractPartition` would move: record counts, byte totals, and the
|
|
4
|
+
* timestamp span per collection — computed from raw encrypted
|
|
5
|
+
* envelopes WITHOUT decrypting them. Writes nothing, mutates nothing.
|
|
6
|
+
*
|
|
7
|
+
* @module
|
|
8
|
+
*/
|
|
9
|
+
import type { Vault } from '../kernel/vault.js';
|
|
10
|
+
import { type WalkClosureOptions } from './walk-closure.js';
|
|
11
|
+
export interface ExtractionPreview {
|
|
12
|
+
readonly totalRecords: number;
|
|
13
|
+
/** Sum of serialized encrypted-envelope sizes (bytes). */
|
|
14
|
+
readonly totalBytes: number;
|
|
15
|
+
readonly byCollection: ReadonlyArray<{
|
|
16
|
+
readonly name: string;
|
|
17
|
+
readonly recordCount: number;
|
|
18
|
+
readonly bytes: number;
|
|
19
|
+
/** Earliest envelope `_ts` in this collection (lexicographic). */
|
|
20
|
+
readonly oldestTs?: string;
|
|
21
|
+
readonly newestTs?: string;
|
|
22
|
+
}>;
|
|
23
|
+
readonly graph: {
|
|
24
|
+
readonly depth: number;
|
|
25
|
+
readonly cyclesDetected: boolean;
|
|
26
|
+
};
|
|
27
|
+
/** Records the walk reached but whose envelope couldn't be read. */
|
|
28
|
+
readonly inaccessible: ReadonlyArray<{
|
|
29
|
+
readonly collection: string;
|
|
30
|
+
readonly id: string;
|
|
31
|
+
}>;
|
|
32
|
+
}
|
|
33
|
+
export declare function describeExtraction(vault: Vault, opts: WalkClosureOptions): Promise<ExtractionPreview>;
|