@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,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Strategy seam for the optional accounting-periods service. Core
|
|
3
|
+
* imports `PeriodsStrategy` type-only + `NO_PERIODS` stub; the real
|
|
4
|
+
* `loadPeriods` / `chainAnchor` / `assertTsWritable` /
|
|
5
|
+
* `validatePeriodName` / `appendPeriodLedgerEntry` functions are
|
|
6
|
+
* only reachable via `withPeriods()` in `./active.ts`.
|
|
7
|
+
*
|
|
8
|
+
* Applications that never call `vault.closePeriod()` /
|
|
9
|
+
* `vault.openPeriod()` ship none of the ~363 LOC.
|
|
10
|
+
*
|
|
11
|
+
* @internal
|
|
12
|
+
*/
|
|
13
|
+
import type { EncryptedEnvelope, NoydbStore } from '../../kernel/types.js';
|
|
14
|
+
import type { LedgerStore } from '../../with-commit/history/ledger/store.js';
|
|
15
|
+
import type { PeriodRecord } from './periods.js';
|
|
16
|
+
/**
|
|
17
|
+
* @internal
|
|
18
|
+
*/
|
|
19
|
+
export interface PeriodsStrategy {
|
|
20
|
+
loadPeriods(adapter: NoydbStore, vault: string, decrypt: (envelope: EncryptedEnvelope) => Promise<PeriodRecord>): Promise<PeriodRecord[]>;
|
|
21
|
+
chainAnchor(records: readonly PeriodRecord[]): Promise<{
|
|
22
|
+
priorPeriodName?: string;
|
|
23
|
+
priorPeriodHash: string;
|
|
24
|
+
}>;
|
|
25
|
+
assertTsWritable(existing: {
|
|
26
|
+
ts: string | null;
|
|
27
|
+
record: Record<string, unknown> | null;
|
|
28
|
+
} | null, incoming: Record<string, unknown> | null, periods: readonly PeriodRecord[]): void;
|
|
29
|
+
validatePeriodName(name: string, existing: readonly PeriodRecord[]): void;
|
|
30
|
+
appendPeriodLedgerEntry(ledger: LedgerStore | null, actor: string, envelope: EncryptedEnvelope, periodName: string, collection?: string): Promise<void>;
|
|
31
|
+
}
|
|
32
|
+
export declare const NO_PERIODS: PeriodsStrategy;
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { type EnclaveKey } from '../../kernel/enclave/index.js';
|
|
2
|
+
import type { NoydbStore } from '../../kernel/types.js';
|
|
3
|
+
import type { LedgerStore } from '../../with-commit/history/ledger/store.js';
|
|
4
|
+
import type { Collection } from '../../kernel/collection.js';
|
|
5
|
+
import type { PeriodsStrategy } from './strategy.js';
|
|
6
|
+
import { type PeriodRecord, type TargetPurgeCount, type ClosePeriodOptions, type OpenPeriodOptions } from './periods.js';
|
|
7
|
+
/** Everything the moving period methods touched on the vault's `this.*`. */
|
|
8
|
+
export interface VaultPeriodsDeps {
|
|
9
|
+
/** Resolved periods strategy (NO_PERIODS when not configured). */
|
|
10
|
+
readonly strategy: PeriodsStrategy;
|
|
11
|
+
/** The ciphertext store. */
|
|
12
|
+
readonly adapter: NoydbStore;
|
|
13
|
+
/** Vault namespace name. */
|
|
14
|
+
readonly vault: string;
|
|
15
|
+
/** Whether records are encrypted (vs debug-plaintext). */
|
|
16
|
+
readonly encrypted: boolean;
|
|
17
|
+
/** The invoking keyring's user id (read fresh per call). */
|
|
18
|
+
userId(): string;
|
|
19
|
+
/** Per-collection DEK resolver (bound `vault.getDEK`). */
|
|
20
|
+
getDEK(collection: string): Promise<EnclaveKey>;
|
|
21
|
+
/** The vault's ledger store, or null when history is off. */
|
|
22
|
+
getLedgerOrNull(): LedgerStore | null;
|
|
23
|
+
/** Collection accessor (used by `openPeriod`'s carry-forward writes). */
|
|
24
|
+
collection<T = unknown>(name: string): Collection<T>;
|
|
25
|
+
/** #604: physically purge delete markers with `_ts < before`. Bound to `vault._purgeDeleteMarkers`. */
|
|
26
|
+
purgeDeleteMarkers(before: string): Promise<number>;
|
|
27
|
+
/** #613: relocate a closed period's in-window records hot → cold. Bound to `vault._archiveClosedPeriod`. */
|
|
28
|
+
archiveRecords(before: string): Promise<number>;
|
|
29
|
+
/** #615: sweep delete markers off the vault's push-only sync targets. Bound to `vault._purgePeriodTargets`. */
|
|
30
|
+
purgeTargets(before: string): Promise<readonly TargetPurgeCount[]>;
|
|
31
|
+
}
|
|
32
|
+
export declare class VaultPeriods {
|
|
33
|
+
private readonly deps;
|
|
34
|
+
/**
|
|
35
|
+
* Loaded period records, lazily populated on first close/open/list/get/guard
|
|
36
|
+
* and kept in sync by the write paths. `null` until first touched — the
|
|
37
|
+
* write-guard fast-path avoids a full adapter scan for vaults that never use
|
|
38
|
+
* periods.
|
|
39
|
+
*/
|
|
40
|
+
private periodCache;
|
|
41
|
+
constructor(deps: VaultPeriodsDeps);
|
|
42
|
+
closePeriod(options: ClosePeriodOptions): Promise<PeriodRecord>;
|
|
43
|
+
openPeriod<TCollections extends Record<string, Record<string, unknown>>>(options: OpenPeriodOptions<TCollections>): Promise<PeriodRecord>;
|
|
44
|
+
/**
|
|
45
|
+
* Freeze a closed period: physically purges delete markers whose `_ts`
|
|
46
|
+
* falls inside the period's window (#604) and records the fact in a
|
|
47
|
+
* companion `_period_freezes/<name>` record. NEVER mutates the
|
|
48
|
+
* hash-chained `_periods/<name>` record's stored bytes — `frozenAt` /
|
|
49
|
+
* `frozenBy` / `purgedMarkerCount` are merged into `PeriodRecord`s on
|
|
50
|
+
* read only. Idempotent: a second call is a no-op that returns the
|
|
51
|
+
* same merged record without re-purging or re-appending a ledger entry.
|
|
52
|
+
*/
|
|
53
|
+
freezePeriod(name: string): Promise<PeriodRecord>;
|
|
54
|
+
/**
|
|
55
|
+
* Archive a closed period (#613): physically relocates its in-window
|
|
56
|
+
* records (those with `_ts < periodExclusiveUpperBound(endDate)`) from the
|
|
57
|
+
* hot store to the configured cold tier via `archiveRecords`, and records
|
|
58
|
+
* the fact in a companion `_period_archives/<name>` record. NEVER mutates
|
|
59
|
+
* the hash-chained `_periods/<name>` record. Non-destructive (reads fall
|
|
60
|
+
* through to cold) and idempotent: a second call is a no-op returning the
|
|
61
|
+
* same merged record.
|
|
62
|
+
*/
|
|
63
|
+
archivePeriod(name: string): Promise<PeriodRecord>;
|
|
64
|
+
/**
|
|
65
|
+
* Target-purge a closed period (#615): sweeps delete markers off the vault's
|
|
66
|
+
* PUSH-ONLY sync targets (`backup`/`archive`) via `purgeTargets`, recording a
|
|
67
|
+
* companion `_period_target_purges/<name>` record. `sync-peer` targets are
|
|
68
|
+
* skipped (resurrection risk). NEVER mutates the chained `_periods/<name>`
|
|
69
|
+
* record. Requires the period be frozen first (closed → frozen → target-purged).
|
|
70
|
+
* Idempotent once run; with no push-only targets it writes no companion and
|
|
71
|
+
* is re-runnable.
|
|
72
|
+
*/
|
|
73
|
+
purgePeriodTargets(name: string): Promise<PeriodRecord>;
|
|
74
|
+
/** Merge target-purge companion fields into a fresh `PeriodRecord` copy — never mutates `periodCache`. */
|
|
75
|
+
private mergeTargetPurge;
|
|
76
|
+
/** Merge archive companion fields into a fresh `PeriodRecord` copy — never mutates `periodCache`. */
|
|
77
|
+
private mergeArchive;
|
|
78
|
+
/** Merge freeze companion fields into a fresh `PeriodRecord` copy — never mutates `periodCache`. */
|
|
79
|
+
private mergeFreeze;
|
|
80
|
+
/** Return every closed / opened period in `closedAt` order, merged with any freeze + archive companions. */
|
|
81
|
+
listPeriods(): Promise<readonly PeriodRecord[]>;
|
|
82
|
+
/** Look up a single period by name, merged with its freeze + archive + target-purge companions if any. Returns `null` if not found. */
|
|
83
|
+
getPeriod(name: string): Promise<PeriodRecord | null>;
|
|
84
|
+
/** Called by the gate bus before put/delete. */
|
|
85
|
+
assertTsWritable(existing: {
|
|
86
|
+
ts: string | null;
|
|
87
|
+
record: Record<string, unknown> | null;
|
|
88
|
+
} | null, incoming: Record<string, unknown> | null): Promise<void>;
|
|
89
|
+
private loadPeriodsCache;
|
|
90
|
+
/** Generic reserved-collection writer — serves `_periods` and `_period_freezes` alike. */
|
|
91
|
+
private writeReserved;
|
|
92
|
+
/** Generic reserved-collection reader — serves `_period_freezes` companion reads. */
|
|
93
|
+
private readReserved;
|
|
94
|
+
private decryptPeriodRecord;
|
|
95
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Enable the portability capability.
|
|
3
|
+
* Pass to `createNoydb({ portabilityStrategy: withPortability() })` to make a
|
|
4
|
+
* vault's `user.exportMyAccessibleData` / `user.unilateralWithdrawal` /
|
|
5
|
+
* `user.requestWithdrawal` / `user.listWithdrawalRequests` /
|
|
6
|
+
* `user.approveWithdrawal` / `user.rejectWithdrawal` methods live. The
|
|
7
|
+
* export/withdraw/request engines are dynamically imported here, so they stay
|
|
8
|
+
* reachable only via opt-in.
|
|
9
|
+
*/
|
|
10
|
+
import type { PortabilityStrategy } from './strategy.js';
|
|
11
|
+
export declare function withPortability(): PortabilityStrategy;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `exportMyAccessibleData`: a non-owner user exports the scope they
|
|
3
|
+
* can decrypt as a portable, re-keyed `.noydb` bundle. Non-destructive and
|
|
4
|
+
* **always allowed** (the "data sovereignty by construction" property of
|
|
5
|
+
* sealing-at-dimension — the firm cannot deny it) but **audited**.
|
|
6
|
+
*
|
|
7
|
+
* Reuses the existing bundle machinery: the access boundary is the caller's DEK
|
|
8
|
+
* set (operator/client → `keyring.permissions`; owner/admin/viewer → all), so a
|
|
9
|
+
* record outside the caller's keys can never enter the bundle. Re-keying to a
|
|
10
|
+
* new owner reuses `writePod`'s `exportPassphrase` shorthand.
|
|
11
|
+
*/
|
|
12
|
+
import type { Vault } from '../../kernel/vault.js';
|
|
13
|
+
import type { UnlockedKeyring } from '../../with-party/team/keyring.js';
|
|
14
|
+
/**
|
|
15
|
+
* Resolve the collections a caller may export/withdraw: operator/client are
|
|
16
|
+
* scoped to their granted collections; owner/admin/viewer see everything
|
|
17
|
+
* (`undefined` = no allowlist). A `scope.collections` sub-scope intersects the
|
|
18
|
+
* granted set. `writableOnly` keeps only `rw` grants (for destructive ops).
|
|
19
|
+
*/
|
|
20
|
+
export declare function resolveAccessibleCollections(keyring: UnlockedKeyring, scope: {
|
|
21
|
+
collections?: readonly string[];
|
|
22
|
+
} | undefined, writableOnly?: boolean): string[] | undefined;
|
|
23
|
+
/** Produce a (optionally re-keyed, scoped) `.noydb` bundle — no audit. */
|
|
24
|
+
export declare function buildAccessibleBundle(vault: Vault, collections: string[] | undefined, reKey: {
|
|
25
|
+
passphrase: string;
|
|
26
|
+
} | undefined, compression?: 'auto' | 'brotli' | 'gzip' | 'none'): Promise<Uint8Array>;
|
|
27
|
+
export interface ExportAccessibleOptions {
|
|
28
|
+
/**
|
|
29
|
+
* Re-key the bundle so it is independently openable by a new owner with this
|
|
30
|
+
* passphrase (the receiving firm / the client themselves). Omit to inherit
|
|
31
|
+
* the source keyring (personal backup).
|
|
32
|
+
*/
|
|
33
|
+
readonly reKey?: {
|
|
34
|
+
readonly passphrase: string;
|
|
35
|
+
};
|
|
36
|
+
/** Narrow the export to a subset of the caller's accessible collections. */
|
|
37
|
+
readonly scope?: {
|
|
38
|
+
readonly collections?: readonly string[];
|
|
39
|
+
};
|
|
40
|
+
readonly compression?: 'auto' | 'brotli' | 'gzip' | 'none';
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Produce a re-keyed, access-scoped `.noydb` bundle of the caller's accessible
|
|
44
|
+
* data. Appends a tamper-evident audit entry (`reason: 'user-export:<userId>'`).
|
|
45
|
+
*/
|
|
46
|
+
export declare function exportAccessibleData(vault: Vault, opts?: ExportAccessibleOptions): Promise<Uint8Array>;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `@noy-db/hub/portability` — data-sovereignty (export + withdrawal) capability.
|
|
3
|
+
*
|
|
4
|
+
* Opt in with `createNoydb({ portabilityStrategy: withPortability() })` to
|
|
5
|
+
* enable the `vault.user.*` portability surface: `exportMyAccessibleData`,
|
|
6
|
+
* `unilateralWithdrawal`, `requestWithdrawal`, `listWithdrawalRequests`,
|
|
7
|
+
* `approveWithdrawal`, `rejectWithdrawal`. Without it every one throws
|
|
8
|
+
* `PortabilityNotEnabledError` and the export/withdraw/request engines stay out
|
|
9
|
+
* of the floor bundle.
|
|
10
|
+
*
|
|
11
|
+
* @module
|
|
12
|
+
*/
|
|
13
|
+
export { withPortability } from './active.js';
|
|
14
|
+
export { NO_PORTABILITY, type PortabilityStrategy } from './strategy.js';
|
|
15
|
+
export { PortabilityNotEnabledError } from '../../kernel/errors.js';
|
|
16
|
+
export type { ExportAccessibleOptions } from './export-accessible.js';
|
|
17
|
+
export type { WithdrawAccessibleOptions, WithdrawResult } from './withdraw-accessible.js';
|
|
18
|
+
export type { RequestWithdrawalOptions, RequestWithdrawalResult, WithdrawalRequest, WithdrawalRequestStatus, ApproveWithdrawalOptions, RejectWithdrawalOptions, } from './request-withdrawal.js';
|
|
@@ -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;
|