@noy-db/hub 0.3.0-pre.9 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/aggregate/index.js +5 -5
- package/dist/api-ZGS6LCOF.js +20 -0
- package/dist/as/index.js +11 -11
- package/dist/attestation/index.js +18 -18
- package/dist/backup-BJ57IKAO.js +242 -0
- package/dist/backup-BJ57IKAO.js.map +1 -0
- package/dist/blobs/index.js +13 -11
- package/dist/blobs/index.js.map +1 -1
- package/dist/broker/index.js +92 -0
- package/dist/broker/index.js.map +1 -0
- package/dist/bundle/index.js +25 -22
- package/dist/bundle/index.js.map +1 -1
- package/dist/by/index.js +2 -2
- package/dist/cargo/index.js +31 -32
- package/dist/chunk-2NVOWNI3.js +167 -0
- package/dist/chunk-2NVOWNI3.js.map +1 -0
- package/dist/chunk-3B5VVCNY.js +71 -0
- package/dist/chunk-3LQ2YKO4.js +230 -0
- package/dist/chunk-3QCRBHCY.js +54 -0
- package/dist/chunk-454JXE57.js +1697 -0
- package/dist/chunk-454JXE57.js.map +1 -0
- package/dist/chunk-4CTHCN4J.js +480 -0
- package/dist/chunk-4CTHCN4J.js.map +1 -0
- package/dist/chunk-4GPE63GU.js +111 -0
- package/dist/chunk-4GPE63GU.js.map +1 -0
- package/dist/chunk-4JBYV75E.js +150 -0
- package/dist/chunk-4NXKCLLQ.js +97 -0
- package/dist/chunk-4VNQOLML.js +29 -0
- package/dist/chunk-4VNQOLML.js.map +1 -0
- package/dist/chunk-5M5DVGV7.js +69 -0
- package/dist/chunk-5O3XF4DV.js +150 -0
- package/dist/chunk-5O3XF4DV.js.map +1 -0
- package/dist/chunk-5YOLBEQ6.js +30 -0
- package/dist/chunk-6CRIV7DE.js +129 -0
- package/dist/chunk-6JTIAGHD.js +621 -0
- package/dist/chunk-6JTIAGHD.js.map +1 -0
- package/dist/chunk-6QTNZJBS.js +255 -0
- package/dist/chunk-6T2SCQRU.js +86 -0
- package/dist/chunk-7DSTRQIJ.js +45 -0
- package/dist/chunk-AUSTCW2X.js +589 -0
- package/dist/chunk-B3HJYUOF.js +209 -0
- package/dist/chunk-BDVFPG6Y.js +164 -0
- package/dist/chunk-BIOUI4HL.js +1554 -0
- package/dist/chunk-BIOUI4HL.js.map +1 -0
- package/dist/chunk-CAF6WOK7.js +36 -0
- package/dist/chunk-CDUQTA3Z.js +381 -0
- package/dist/chunk-CDUQTA3Z.js.map +1 -0
- package/dist/chunk-CIE2BASH.js +404 -0
- package/dist/chunk-CRI4OUV4.js +42 -0
- package/dist/chunk-DLG74CNB.js +91 -0
- package/dist/chunk-E5ZQT5KX.js +30 -0
- package/dist/chunk-E5ZQT5KX.js.map +1 -0
- package/dist/chunk-EQO2UVP4.js +247 -0
- package/dist/chunk-EQO2UVP4.js.map +1 -0
- package/dist/chunk-ERJ7FU55.js +367 -0
- package/dist/chunk-EVVGJDRQ.js +205 -0
- package/dist/chunk-EVX47VBM.js +74 -0
- package/dist/chunk-EVX47VBM.js.map +1 -0
- package/dist/chunk-EXK7QRWF.js +59 -0
- package/dist/chunk-EYZ6IQ6X.js +202 -0
- package/dist/chunk-F64IRYG3.js +45 -0
- package/dist/chunk-FHS2HQSH.js +823 -0
- package/dist/chunk-FM3G3NOY.js +206 -0
- package/dist/chunk-FM3G3NOY.js.map +1 -0
- package/dist/chunk-FUG4SFN3.js +36 -0
- package/dist/chunk-FUG4SFN3.js.map +1 -0
- package/dist/chunk-GKEWXIV5.js +80 -0
- package/dist/chunk-GTGPO5KW.js +59 -0
- package/dist/chunk-HB3RFQSC.js +95 -0
- package/dist/chunk-HDMEGAQE.js +957 -0
- package/dist/chunk-HDMEGAQE.js.map +1 -0
- package/dist/chunk-HDQIIUPH.js +135 -0
- package/dist/chunk-HDQIIUPH.js.map +1 -0
- package/dist/chunk-HTJQYHZP.js +344 -0
- package/dist/chunk-HTJQYHZP.js.map +1 -0
- package/dist/chunk-I6GALP6E.js +99 -0
- package/dist/chunk-IGJCYUT5.js +99 -0
- package/dist/chunk-IGJCYUT5.js.map +1 -0
- package/dist/chunk-IL6POWCW.js +130 -0
- package/dist/chunk-IU6SNYX6.js +117 -0
- package/dist/chunk-J2ZX2XUV.js +778 -0
- package/dist/chunk-JIF24JPM.js +495 -0
- package/dist/chunk-JIF24JPM.js.map +1 -0
- package/dist/chunk-JK733I5V.js +23 -0
- package/dist/chunk-JK733I5V.js.map +1 -0
- package/dist/chunk-JKJOGPZN.js +29 -0
- package/dist/chunk-JNAI2HN2.js +32 -0
- package/dist/chunk-JNAI2HN2.js.map +1 -0
- package/dist/chunk-JZUV47FZ.js +41 -0
- package/dist/chunk-K5IMOGHB.js +30 -0
- package/dist/chunk-KPZS5QAQ.js +151 -0
- package/dist/chunk-KPZS5QAQ.js.map +1 -0
- package/dist/chunk-KSKBRKGJ.js +291 -0
- package/dist/chunk-KSKBRKGJ.js.map +1 -0
- package/dist/chunk-LASZKVMO.js +382 -0
- package/dist/chunk-LXEXBTKL.js +515 -0
- package/dist/chunk-LXEXBTKL.js.map +1 -0
- package/dist/chunk-M4CV6BRT.js +524 -0
- package/dist/chunk-M4CV6BRT.js.map +1 -0
- package/dist/chunk-MEFJPTZ4.js +371 -0
- package/dist/chunk-MEFJPTZ4.js.map +1 -0
- package/dist/chunk-MV43JSJF.js +265 -0
- package/dist/chunk-MV43JSJF.js.map +1 -0
- package/dist/chunk-NJ4EOKMB.js +392 -0
- package/dist/chunk-NJ4EOKMB.js.map +1 -0
- package/dist/chunk-NR5LT5RY.js +135 -0
- package/dist/chunk-NWSGI5C7.js +261 -0
- package/dist/chunk-OSDB5WW3.js +739 -0
- package/dist/chunk-OSDB5WW3.js.map +1 -0
- package/dist/chunk-PN2XMATY.js +37 -0
- package/dist/chunk-PN2XMATY.js.map +1 -0
- package/dist/chunk-Q5VNKNE5.js +70 -0
- package/dist/chunk-QLWMEXCT.js +21 -0
- package/dist/chunk-QRB7NAOJ.js +123 -0
- package/dist/chunk-R4ROFEYC.js +74 -0
- package/dist/chunk-RCVJZMFE.js +164 -0
- package/dist/chunk-RCVJZMFE.js.map +1 -0
- package/dist/chunk-RIX4V2TB.js +367 -0
- package/dist/chunk-RYCTDFUX.js +40 -0
- package/dist/chunk-RZ5SVOYR.js +155 -0
- package/dist/chunk-SLFHQTTW.js +99 -0
- package/dist/chunk-SNZ6URZZ.js +2782 -0
- package/dist/chunk-SNZ6URZZ.js.map +1 -0
- package/dist/chunk-T2FFWNPK.js +75 -0
- package/dist/chunk-UNFPPVNI.js +23 -0
- package/dist/chunk-VFUPHI2Z.js +333 -0
- package/dist/chunk-VFUPHI2Z.js.map +1 -0
- package/dist/chunk-VLFCJYTL.js +235 -0
- package/dist/chunk-VN3DBQAU.js +124 -0
- package/dist/chunk-VYYM3MEN.js +98 -0
- package/dist/chunk-VYYM3MEN.js.map +1 -0
- package/dist/chunk-VZRODIM3.js +49 -0
- package/dist/chunk-W22IKJE2.js +94 -0
- package/dist/chunk-X3YYQWOQ.js +155 -0
- package/dist/chunk-X7QBD67R.js +14405 -0
- package/dist/chunk-X7QBD67R.js.map +1 -0
- package/dist/chunk-XDYREZWE.js +1128 -0
- package/dist/chunk-XDYREZWE.js.map +1 -0
- package/dist/chunk-XWZVFISC.js +720 -0
- package/dist/chunk-XWZVFISC.js.map +1 -0
- package/dist/chunk-YFXZEAYK.js +85 -0
- package/dist/chunk-ZAJAVEXY.js +50 -0
- package/dist/chunk-ZICD77GM.js +34 -0
- package/dist/chunk-ZJ2AK4V7.js +38 -0
- package/dist/chunk-ZUODRVHY.js +14 -0
- package/dist/classified/index.js +5 -5
- package/dist/classified-marker-CZKA6ITE.js +28 -0
- package/dist/classified-marker-CZKA6ITE.js.map +1 -0
- package/dist/collection-facade-TLWIPI76.js +44 -0
- package/dist/computed-ZIQTYTDI.js +11 -0
- package/dist/consent/index.js +9 -9
- package/dist/crdt/index.js +1 -1
- package/dist/dead-filter-ESOBZZP5.js +28 -0
- package/dist/delegation-W7ZV2322.js +25 -0
- package/dist/derivations/index.js +12 -12
- package/dist/derive-H2BJTLUI.js +21 -0
- package/dist/enclave-AP3I5W7O.js +141 -0
- package/dist/executor-KGWTNEQD.js +9 -0
- package/dist/executor-OVEXR6RT.js +9 -0
- package/dist/executor-UNEH5ZYH.js +25 -0
- package/dist/export-accessible-PCMXSUZS.js +23 -0
- package/dist/extract-partition-SWHFSYJO.js +38 -0
- package/dist/fanout-sidecar-A765THMX.js +74 -0
- package/dist/find-N6345CNT.js +11 -0
- package/dist/forget/index.js +10 -10
- package/dist/forget/index.js.map +1 -1
- package/dist/guards/index.js +6 -6
- package/dist/history/index.js +14 -11
- package/dist/history/index.js.map +1 -1
- package/dist/i18n/index.js +21 -19
- package/dist/i18n/index.js.map +1 -1
- package/dist/index.d.ts +307 -1493
- package/dist/index.js +309 -190
- package/dist/index.js.map +1 -1
- package/dist/indexing/index.js +7 -7
- package/dist/indexing/index.js.map +1 -1
- package/dist/issue-5OKB6I2R.js +19 -0
- package/dist/kernel/best-effort-revert.d.ts +52 -0
- package/dist/kernel/cache/index.d.ts +10 -0
- package/dist/kernel/cache/lru.d.ts +97 -0
- package/dist/kernel/cache/policy.d.ts +32 -0
- package/dist/kernel/collection-config.d.ts +809 -0
- package/dist/kernel/collection.d.ts +1522 -0
- package/dist/kernel/constants.d.ts +18 -0
- package/dist/kernel/debug.d.ts +25 -0
- package/dist/kernel/enclave/broker/proof.d.ts +154 -0
- package/dist/kernel/enclave/classify/bidx.d.ts +77 -0
- package/dist/kernel/enclave/classify/compare.d.ts +10 -0
- package/dist/kernel/enclave/classify/digest.d.ts +8 -0
- package/dist/kernel/enclave/classify/find.d.ts +36 -0
- package/dist/kernel/enclave/classify/kofn.d.ts +7 -0
- package/dist/kernel/enclave/classify/normalize.d.ts +7 -0
- package/dist/kernel/enclave/classify/reveal.d.ts +10 -0
- package/dist/kernel/enclave/classify/vdig.d.ts +39 -0
- package/dist/kernel/enclave/classify/verify.d.ts +36 -0
- package/dist/kernel/enclave/classify/write.d.ts +8 -0
- package/dist/kernel/enclave/crypto.d.ts +263 -0
- package/dist/kernel/enclave/index.d.ts +79 -0
- package/dist/kernel/enclave/record-keys/deterministic.d.ts +55 -0
- package/dist/kernel/enclave/record-keys/envelope-body.d.ts +79 -0
- package/dist/kernel/enclave/record-keys/lifecycle.d.ts +107 -0
- package/dist/kernel/enclave/record-keys/record-codec.d.ts +328 -0
- package/dist/kernel/enclave/record-keys/sealed-slot.d.ts +14 -0
- package/dist/kernel/enclave/record-keys/sealed-slots.d.ts +123 -0
- package/dist/kernel/enclave/record-keys/sealing.d.ts +70 -0
- package/dist/kernel/enclave/record-keys/tombstone.d.ts +57 -0
- package/dist/kernel/env-check.d.ts +1 -0
- package/dist/kernel/errors.d.ts +1922 -0
- package/dist/kernel/events.d.ts +11 -0
- package/dist/kernel/lazy-count.d.ts +13 -0
- package/dist/kernel/memory-store.d.ts +17 -0
- package/dist/kernel/mutation.d.ts +14 -0
- package/dist/kernel/noydb.d.ts +826 -0
- package/dist/kernel/paths.d.ts +25 -0
- package/dist/kernel/query/builder.d.ts +520 -0
- package/dist/kernel/query/index.d.ts +31 -0
- package/dist/kernel/query/join.d.ts +205 -0
- package/dist/kernel/query/live.d.ts +111 -0
- package/dist/kernel/query/predicate.d.ts +139 -0
- package/dist/kernel/query/scan-builder.d.ts +334 -0
- package/dist/kernel/refs.d.ts +205 -0
- package/dist/kernel/schema.d.ts +134 -0
- package/dist/kernel/sync-policy.d.ts +188 -0
- package/dist/kernel/tier-visibility.d.ts +54 -0
- package/dist/kernel/types.d.ts +3239 -0
- package/dist/kernel/util/discriminant.d.ts +58 -0
- package/dist/kernel/util/index.d.ts +14 -0
- package/dist/kernel/util/sanitize-filename.d.ts +75 -0
- package/dist/kernel/validation.d.ts +130 -0
- package/dist/kernel/vault.d.ts +1740 -0
- package/dist/kernel/via/compose.d.ts +144 -0
- package/dist/kernel/via/dispatch.d.ts +195 -0
- package/dist/kernel/via/graph-wiring.d.ts +145 -0
- package/dist/kernel/via/graph.d.ts +166 -0
- package/dist/kernel/via/index.d.ts +200 -0
- package/dist/kernel/via/pipeline.d.ts +266 -0
- package/dist/kernel/via/reconcile.d.ts +153 -0
- package/dist/kernel/via/taint-binding.d.ts +66 -0
- package/dist/kernel/write-queue.d.ts +46 -0
- package/dist/ledger-GFBKVPV4.js +42 -0
- package/dist/legacy/bundle.d.ts +30 -0
- package/dist/legacy/kernel.d.ts +33 -0
- package/dist/liberate-3VDOT4KO.js +24 -0
- package/dist/link-set-Z7Q2ASFX.js +31 -0
- package/dist/materialized-views/index.js +19 -17
- package/dist/noydb-ZCJOYBDI.js +68 -0
- package/dist/on/index.js +9 -9
- package/dist/overlay-views/index.js +4 -4
- package/dist/periods/index.js +12 -12
- package/dist/pod/index.js +11 -11
- package/dist/policy-Z3RUAIY2.js +41 -0
- package/dist/port/as/index.d.ts +26 -0
- package/dist/port/at/index.d.ts +18 -0
- package/dist/port/by/default-provider.d.ts +9 -0
- package/dist/port/by/index.d.ts +17 -0
- package/dist/port/by/types.d.ts +86 -0
- package/dist/port/in/index.d.ts +21 -0
- package/dist/port/on/index.d.ts +27 -0
- package/dist/port/to/index.d.ts +19 -0
- package/dist/port/ui/index.d.ts +21 -0
- package/dist/port/with/blob-strategy.d.ts +98 -0
- package/dist/port/with/broker-strategy.d.ts +84 -0
- package/dist/port/with/capabilities.d.ts +31 -0
- package/dist/port/with/classified-marker.d.ts +9 -0
- package/dist/port/with/classified-strategy.d.ts +62 -0
- package/dist/port/with/computed-strategy.d.ts +19 -0
- package/dist/port/with/i18n-strategy.d.ts +175 -0
- package/dist/port/with/index.d.ts +18 -0
- package/dist/port/with/lazy-strategy.d.ts +48 -0
- package/dist/port/with/lookup-strategy.d.ts +129 -0
- package/dist/port/with/service-bus.d.ts +156 -0
- package/dist/port/with/team-strategy.d.ts +36 -0
- package/dist/port/with/write-hooks.d.ts +34 -0
- package/dist/portability/index.js +8 -8
- package/dist/post-register-JTH76BLY.js +60 -0
- package/dist/post-register-JTH76BLY.js.map +1 -0
- package/dist/public-envelope-B4KNWVUA.js +32 -0
- package/dist/purge-scope-FGNNLWHD.js +24 -0
- package/dist/purge-scope-FGNNLWHD.js.map +1 -0
- package/dist/query/index.js +7 -7
- package/dist/read-only-facade-CHCKSEPD.js +8 -0
- package/dist/register-VAHONCID.js +23 -0
- package/dist/registry-7MLVD3VO.js +19 -0
- package/dist/registry-EPKPD5SM.js +18 -0
- package/dist/registry-P5T7PS2U.js +9 -0
- package/dist/request-withdrawal-TI3A5WPS.js +31 -0
- package/dist/reveal-DIBHLUZX.js +38 -0
- package/dist/reveal-DIBHLUZX.js.map +1 -0
- package/dist/revoke-FDRD6GRW.js +24 -0
- package/dist/satellites/index.js +1 -1
- package/dist/sealed-record/index.js +12 -12
- package/dist/seed-Q6M2IZFL.js +231 -0
- package/dist/seed-Q6M2IZFL.js.map +1 -0
- package/dist/session/index.js +9 -9
- package/dist/shadow/index.js +2 -2
- package/dist/signer-MUWEIUI6.js +25 -0
- package/dist/snapshots/index.js +10 -10
- package/dist/stale-OSQ7J3AA.js +29 -0
- package/dist/storage-MVFCGEQE.js +23 -0
- package/dist/store-coordination-provider-64OEZFGS.js +142 -0
- package/dist/sync/index.js +9 -9
- package/dist/team/index.js +15 -15
- package/dist/tiers/index.js +14 -10
- package/dist/to/index.js +1 -2
- package/dist/tx/index.js +3 -3
- package/dist/util/index.js +1 -1
- package/dist/verify-ZASTRNPR.js +140 -0
- package/dist/verify-ZASTRNPR.js.map +1 -0
- package/dist/via/blob/active.d.ts +34 -0
- package/dist/via/blob/binding.d.ts +86 -0
- package/dist/via/blob/index.d.ts +34 -0
- package/dist/via/classified/active.d.ts +3 -0
- package/dist/via/classified/binding.d.ts +83 -0
- package/dist/via/classified/config-drift.d.ts +34 -0
- package/dist/via/classified/descriptor.d.ts +66 -0
- package/dist/via/classified/errors.d.ts +19 -0
- package/dist/via/classified/guards.d.ts +23 -0
- package/dist/via/classified/index.d.ts +11 -0
- package/dist/via/classified/presets.d.ts +65 -0
- package/dist/via/classified/resolve.d.ts +9 -0
- package/dist/via/classified/strategy.d.ts +11 -0
- package/dist/via/classified/validators.d.ts +3 -0
- package/dist/via/classified/write.d.ts +4 -0
- package/dist/via/computed/binding.d.ts +34 -0
- package/dist/via/computed/descriptor.d.ts +35 -0
- package/dist/via/i18n/active.d.ts +28 -0
- package/dist/via/i18n/binding.d.ts +36 -0
- package/dist/via/i18n/core.d.ts +267 -0
- package/dist/via/i18n/densify.d.ts +24 -0
- package/dist/via/i18n/dictionary.d.ts +200 -0
- package/dist/via/i18n/index.d.ts +21 -0
- package/dist/via/i18n/policy.d.ts +44 -0
- package/dist/via/i18n/script.d.ts +26 -0
- package/dist/via/i18n/strategy.d.ts +13 -0
- package/dist/via/lookup/active.d.ts +19 -0
- package/dist/via/lookup/binding.d.ts +99 -0
- package/dist/via/lookup/descriptor.d.ts +123 -0
- package/dist/via/lookup/handle.d.ts +220 -0
- package/dist/via/lookup/index.d.ts +17 -0
- package/dist/via/lookup/registry.d.ts +228 -0
- package/dist/via/lookup/snapshot.d.ts +67 -0
- package/dist/via/money/arith.d.ts +68 -0
- package/dist/via/money/binding.d.ts +21 -0
- package/dist/via/money/branded.d.ts +61 -0
- package/dist/via/money/descriptor.d.ts +73 -0
- package/dist/via/money/fixed-point.d.ts +51 -0
- package/dist/via/money/index.d.ts +15 -0
- package/dist/via/money/iso4217.d.ts +6 -0
- package/dist/via/money/money-reducer.d.ts +33 -0
- package/dist/via/money/normalize.d.ts +105 -0
- package/dist/via/money/paths.d.ts +61 -0
- package/dist/via/money/where.d.ts +127 -0
- package/dist/walk-SVNDIZ62.js +241 -0
- package/dist/with/index.js +11 -11
- package/dist/with-audit/attestation/active.d.ts +10 -0
- package/dist/with-audit/attestation/index.d.ts +16 -0
- package/dist/with-audit/attestation/issue.d.ts +29 -0
- package/dist/with-audit/attestation/revoke.d.ts +15 -0
- package/dist/with-audit/attestation/signer.d.ts +33 -0
- package/dist/with-audit/attestation/strategy.d.ts +44 -0
- package/dist/with-audit/attestation/vault-facade.d.ts +62 -0
- package/dist/with-audit/consent/active.d.ts +14 -0
- package/dist/with-audit/consent/consent.d.ts +114 -0
- package/dist/with-audit/consent/index.d.ts +14 -0
- package/dist/with-audit/consent/strategy.d.ts +36 -0
- package/dist/with-audit/forget/active.d.ts +31 -0
- package/dist/with-audit/forget/index.d.ts +28 -0
- package/dist/with-audit/forget/purge-scope.d.ts +54 -0
- package/dist/with-audit/forget/strategy.d.ts +199 -0
- package/dist/with-audit/forget/subject-index.d.ts +83 -0
- package/dist/with-audit/guards/executor.d.ts +26 -0
- package/dist/with-audit/guards/immutable-guard.d.ts +63 -0
- package/dist/with-audit/guards/index.d.ts +10 -0
- package/dist/with-audit/guards/read-only-facade.d.ts +31 -0
- package/dist/with-audit/guards/registry.d.ts +83 -0
- package/dist/with-audit/guards/transition-guard.d.ts +82 -0
- package/dist/with-audit/guards/types.d.ts +134 -0
- package/dist/with-audit/guards/with-guard.d.ts +15 -0
- package/dist/with-audit/periods/active.d.ts +11 -0
- package/dist/with-audit/periods/index.d.ts +18 -0
- package/dist/with-audit/periods/periods.d.ts +417 -0
- package/dist/with-audit/periods/strategy.d.ts +32 -0
- package/dist/with-audit/periods/vault-facade.d.ts +95 -0
- package/dist/with-audit/portability/active.d.ts +11 -0
- package/dist/with-audit/portability/export-accessible.d.ts +46 -0
- package/dist/with-audit/portability/index.d.ts +18 -0
- package/dist/with-audit/portability/request-withdrawal.d.ts +85 -0
- package/dist/with-audit/portability/strategy.d.ts +31 -0
- package/dist/with-audit/portability/withdraw-accessible.d.ts +82 -0
- package/dist/with-audit/sealed-record/active.d.ts +9 -0
- package/dist/with-audit/sealed-record/index.d.ts +55 -0
- package/dist/with-audit/sealed-record/strategy.d.ts +34 -0
- package/dist/with-audit/sealed-record/types.d.ts +27 -0
- package/dist/with-audit/tiers/active.d.ts +9 -0
- package/dist/with-audit/tiers/index.d.ts +394 -0
- package/dist/with-audit/tiers/strategy.d.ts +36 -0
- package/dist/with-cargo/active.d.ts +11 -0
- package/dist/with-cargo/adopt-partition.d.ts +81 -0
- package/dist/with-cargo/decrypt-partition.d.ts +19 -0
- package/dist/with-cargo/describe-extraction.d.ts +41 -0
- package/dist/with-cargo/extract-partition.d.ts +155 -0
- package/dist/with-cargo/index.d.ts +33 -0
- package/dist/with-cargo/strategy.d.ts +30 -0
- package/dist/with-cargo/vault-diff.d.ts +144 -0
- package/dist/with-cargo/walk-closure.d.ts +67 -0
- package/dist/with-commit/crdt/active.d.ts +25 -0
- package/dist/with-commit/crdt/crdt.d.ts +42 -0
- package/dist/with-commit/crdt/index.d.ts +16 -0
- package/dist/with-commit/crdt/strategy.d.ts +25 -0
- package/dist/with-commit/history/active.d.ts +40 -0
- package/dist/with-commit/history/diff.d.ts +23 -0
- package/dist/with-commit/history/history.d.ts +73 -0
- package/dist/with-commit/history/index.d.ts +30 -0
- package/dist/with-commit/history/ledger/constants.d.ts +37 -0
- package/dist/with-commit/history/ledger/entry.d.ts +195 -0
- package/dist/with-commit/history/ledger/hash.d.ts +30 -0
- package/dist/with-commit/history/ledger/index.d.ts +19 -0
- package/dist/with-commit/history/ledger/patch.d.ts +99 -0
- package/dist/with-commit/history/ledger/store.d.ts +356 -0
- package/dist/with-commit/history/strategy.d.ts +136 -0
- package/dist/with-commit/history/time-machine.d.ts +202 -0
- package/dist/with-commit/numbering/descriptor.d.ts +27 -0
- package/dist/with-commit/numbering/index.d.ts +69 -0
- package/dist/with-commit/sequence/active.d.ts +10 -0
- package/dist/with-commit/sequence/index.d.ts +150 -0
- package/dist/with-commit/sequence/strategy.d.ts +26 -0
- package/dist/with-commit/tx/active.d.ts +27 -0
- package/dist/with-commit/tx/dry-run.d.ts +29 -0
- package/dist/with-commit/tx/elevated-handle.d.ts +59 -0
- package/dist/with-commit/tx/index.d.ts +13 -0
- package/dist/with-commit/tx/invariants.d.ts +68 -0
- package/dist/with-commit/tx/strategy.d.ts +23 -0
- package/dist/with-commit/tx/transaction.d.ts +212 -0
- package/dist/with-fork/archive/engine.d.ts +71 -0
- package/dist/with-fork/archive/index.d.ts +23 -0
- package/dist/with-fork/shadow/active.d.ts +6 -0
- package/dist/with-fork/shadow/index.d.ts +14 -0
- package/dist/with-fork/shadow/strategy.d.ts +28 -0
- package/dist/with-fork/shadow/vault-frame.d.ts +93 -0
- package/dist/with-fork/snapshots/active.d.ts +20 -0
- package/dist/with-fork/snapshots/engine.d.ts +36 -0
- package/dist/with-fork/snapshots/index.d.ts +5 -0
- package/dist/with-fork/snapshots/noydb-facade.d.ts +64 -0
- package/dist/with-fork/snapshots/policy.d.ts +23 -0
- package/dist/with-fork/snapshots/scheduler.d.ts +34 -0
- package/dist/with-fork/snapshots/strategy.d.ts +48 -0
- package/dist/with-formula/computed/index.d.ts +48 -0
- package/dist/with-formula/computed/lazy.d.ts +13 -0
- package/dist/with-formula/derivations/executor.d.ts +61 -0
- package/dist/with-formula/derivations/fanout-sidecar.d.ts +75 -0
- package/dist/with-formula/derivations/index.d.ts +6 -0
- package/dist/with-formula/derivations/registry.d.ts +67 -0
- package/dist/with-formula/derivations/stale.d.ts +39 -0
- package/dist/with-formula/derivations/strategy-hash.d.ts +1 -0
- package/dist/with-formula/derivations/types.d.ts +248 -0
- package/dist/with-formula/derivations/with-derivation.d.ts +10 -0
- package/dist/with-formula/derivations/with-rollup.d.ts +34 -0
- package/dist/with-formula/materialized-views/dependency-analyzer.d.ts +58 -0
- package/dist/with-formula/materialized-views/executor.d.ts +80 -0
- package/dist/with-formula/materialized-views/index.d.ts +11 -0
- package/dist/with-formula/materialized-views/query-hash.d.ts +23 -0
- package/dist/with-formula/materialized-views/registry.d.ts +99 -0
- package/dist/with-formula/materialized-views/stale.d.ts +113 -0
- package/dist/with-formula/materialized-views/types.d.ts +318 -0
- package/dist/with-formula/materialized-views/with-materialized-view.d.ts +24 -0
- package/dist/with-formula/overlay-views/index.d.ts +5 -0
- package/dist/with-formula/overlay-views/registry.d.ts +42 -0
- package/dist/with-formula/overlay-views/types.d.ts +97 -0
- package/dist/with-formula/overlay-views/virtual-collection.d.ts +90 -0
- package/dist/with-formula/overlay-views/with-overlayed-view.d.ts +9 -0
- package/dist/with-lookup/aggregate/active.d.ts +33 -0
- package/dist/with-lookup/aggregate/aggregation.d.ts +166 -0
- package/dist/with-lookup/aggregate/canonical-key.d.ts +16 -0
- package/dist/with-lookup/aggregate/groupby.d.ts +280 -0
- package/dist/with-lookup/aggregate/index.d.ts +23 -0
- package/dist/with-lookup/aggregate/reducers.d.ts +257 -0
- package/dist/with-lookup/aggregate/strategy.d.ts +59 -0
- package/dist/with-lookup/embeddings/cosine.d.ts +2 -0
- package/dist/with-lookup/embeddings/descriptor.d.ts +8 -0
- package/dist/with-lookup/embeddings/index.d.ts +4 -0
- package/dist/with-lookup/embeddings/vec-id.d.ts +47 -0
- package/dist/with-lookup/embeddings/vector-set.d.ts +19 -0
- package/dist/with-lookup/indexing/active.d.ts +30 -0
- package/dist/with-lookup/indexing/collection-facade.d.ts +157 -0
- package/dist/with-lookup/indexing/eager-indexes.d.ts +122 -0
- package/dist/with-lookup/indexing/index.d.ts +27 -0
- package/dist/with-lookup/indexing/lazy-builder.d.ts +102 -0
- package/dist/with-lookup/indexing/persisted-indexes.d.ts +229 -0
- package/dist/with-lookup/indexing/strategy.d.ts +56 -0
- package/dist/with-lookup/indexing/unique-constraints.d.ts +74 -0
- package/dist/with-lookup/search/active.d.ts +10 -0
- package/dist/with-lookup/search/build-docs.d.ts +15 -0
- package/dist/with-lookup/search/collection-facade.d.ts +163 -0
- package/dist/with-lookup/search/fuse.d.ts +22 -0
- package/dist/with-lookup/search/index-store.d.ts +19 -0
- package/dist/with-lookup/search/index.d.ts +19 -0
- package/dist/with-lookup/search/inverted-index.d.ts +47 -0
- package/dist/with-lookup/search/persisted-index-store.d.ts +121 -0
- package/dist/with-lookup/search/retrieve-types.d.ts +29 -0
- package/dist/with-lookup/search/scan.d.ts +28 -0
- package/dist/with-lookup/search/segment.d.ts +15 -0
- package/dist/with-lookup/search/serialize.d.ts +4 -0
- package/dist/with-lookup/search/snippet.d.ts +5 -0
- package/dist/with-lookup/search/strategy.d.ts +41 -0
- package/dist/with-lookup/search/tokenize.d.ts +12 -0
- package/dist/with-party/auth-introspection/index.d.ts +44 -0
- package/dist/with-party/broker/active.d.ts +23 -0
- package/dist/with-party/broker/index.d.ts +28 -0
- package/dist/with-party/broker/seed.d.ts +77 -0
- package/dist/with-party/custody/active.d.ts +10 -0
- package/dist/with-party/custody/index.d.ts +69 -0
- package/dist/with-party/custody/liberate.d.ts +64 -0
- package/dist/with-party/custody/strategy.d.ts +48 -0
- package/dist/with-party/directory/index.d.ts +11 -0
- package/dist/with-party/directory/public-envelope/index.d.ts +12 -0
- package/dist/with-party/directory/public-envelope/schema.d.ts +24 -0
- package/dist/with-party/directory/public-envelope/storage.d.ts +59 -0
- package/dist/with-party/directory/public-envelope/types.d.ts +80 -0
- package/dist/with-party/directory/storage.d.ts +33 -0
- package/dist/with-party/directory/types.d.ts +43 -0
- package/dist/with-party/directory/user-envelope/api.d.ts +201 -0
- package/dist/with-party/directory/user-envelope/index.d.ts +12 -0
- package/dist/with-party/directory/user-envelope/storage.d.ts +54 -0
- package/dist/with-party/directory/visibility.d.ts +47 -0
- package/dist/with-party/policy/engine.d.ts +60 -0
- package/dist/with-party/policy/index.d.ts +15 -0
- package/dist/with-party/policy/noydb-facade.d.ts +39 -0
- package/dist/with-party/policy/presets.d.ts +38 -0
- package/dist/with-party/policy/storage.d.ts +31 -0
- package/dist/with-party/session/active.d.ts +34 -0
- package/dist/with-party/session/dev-unlock.d.ts +128 -0
- package/dist/with-party/session/index.d.ts +23 -0
- package/dist/with-party/session/session-policy.d.ts +92 -0
- package/dist/with-party/session/session.d.ts +131 -0
- package/dist/with-party/session/strategy.d.ts +42 -0
- package/dist/with-party/session/unlock-state.d.ts +47 -0
- package/dist/with-party/sync/index.d.ts +31 -0
- package/dist/with-party/tab-coordination.d.ts +73 -0
- package/dist/with-party/tab-write-relay.d.ts +39 -0
- package/dist/with-party/team/active.d.ts +13 -0
- package/dist/with-party/team/authenticators.d.ts +95 -0
- package/dist/with-party/team/deed.d.ts +97 -0
- package/dist/with-party/team/delegation.d.ts +88 -0
- package/dist/with-party/team/index.d.ts +38 -0
- package/dist/with-party/team/keyring.d.ts +318 -0
- package/dist/with-party/team/magic-link-grant.d.ts +152 -0
- package/dist/with-party/team/managed-passphrase.d.ts +280 -0
- package/dist/with-party/team/noydb-facade.d.ts +484 -0
- package/dist/with-party/team/peer-recover.d.ts +81 -0
- package/dist/with-party/team/presence.d.ts +81 -0
- package/dist/with-party/team/recovery.d.ts +191 -0
- package/dist/with-party/team/reserved-secret-collections.d.ts +41 -0
- package/dist/with-party/team/rotate-recover.d.ts +275 -0
- package/dist/with-party/team/shamir-recovery-provider.d.ts +15 -0
- package/dist/with-party/team/strategy.d.ts +9 -0
- package/dist/with-party/team/sync-active.d.ts +33 -0
- package/dist/with-party/team/sync-credentials.d.ts +113 -0
- package/dist/with-party/team/sync-strategy.d.ts +67 -0
- package/dist/with-party/team/sync-transaction.d.ts +39 -0
- package/dist/with-party/team/sync.d.ts +174 -0
- package/dist/with-party/team/tiers.d.ts +39 -0
- package/dist/with-party/team/wrapped-deks.d.ts +86 -0
- package/dist/with-pod/backup.d.ts +74 -0
- package/dist/with-pod/bundle.d.ts +414 -0
- package/dist/with-pod/format.d.ts +203 -0
- package/dist/with-pod/index.d.ts +20 -0
- package/dist/with-pod/pod-store.d.ts +54 -0
- package/dist/with-pod/ulid.d.ts +64 -0
- package/dist/with-shape/blobs/blob-compaction.d.ts +170 -0
- package/dist/with-shape/blobs/blob-intent.d.ts +153 -0
- package/dist/with-shape/blobs/blob-set.d.ts +1286 -0
- package/dist/with-shape/blobs/export-blobs.d.ts +110 -0
- package/dist/with-shape/blobs/import-external.d.ts +50 -0
- package/dist/with-shape/blobs/mime-magic.d.ts +48 -0
- package/dist/with-shape/blobs/object-projection.d.ts +70 -0
- package/dist/with-shape/introspection/describe.d.ts +237 -0
- package/dist/with-shape/introspection/field-meta.d.ts +61 -0
- package/dist/with-shape/introspection/fields.d.ts +14 -0
- package/dist/with-shape/introspection/index.d.ts +12 -0
- package/dist/with-shape/introspection/json-schema.d.ts +13 -0
- package/dist/with-shape/introspection/meta.d.ts +22 -0
- package/dist/with-shape/introspection/projection.d.ts +13 -0
- package/dist/with-shape/introspection/types.d.ts +154 -0
- package/dist/with-shape/introspection/walk.d.ts +50 -0
- package/dist/with-shape/links/lazy-handle.d.ts +36 -0
- package/dist/with-shape/links/link-set.d.ts +67 -0
- package/dist/with-shape/links/names.d.ts +65 -0
- package/dist/with-shape/links/vault-facade.d.ts +211 -0
- package/dist/with-shape/persisted-schemas/canonicalize.d.ts +11 -0
- package/dist/with-shape/persisted-schemas/derive.d.ts +29 -0
- package/dist/with-shape/persisted-schemas/index.d.ts +21 -0
- package/dist/with-shape/persisted-schemas/register.d.ts +66 -0
- package/dist/with-shape/persisted-schemas/storage.d.ts +61 -0
- package/dist/with-shape/persisted-schemas/types.d.ts +54 -0
- package/dist/with-shape/satellites/dead-filter.d.ts +21 -0
- package/dist/with-shape/satellites/declare.d.ts +60 -0
- package/dist/with-shape/satellites/existence.d.ts +5 -0
- package/dist/with-shape/satellites/fanout.d.ts +38 -0
- package/dist/with-shape/satellites/forget.d.ts +47 -0
- package/dist/with-shape/satellites/index.d.ts +3 -0
- package/dist/with-shape/satellites/joined.d.ts +19 -0
- package/dist/with-shape/satellites/marker.d.ts +10 -0
- package/dist/with-shape/satellites/migrate-cek.d.ts +26 -0
- package/dist/with-shape/satellites/post-register.d.ts +6 -0
- package/dist/with-shape/satellites/proxy.d.ts +37 -0
- package/dist/with-shape/satellites/raw-target.d.ts +14 -0
- package/dist/with-shape/satellites/registry.d.ts +19 -0
- package/dist/with-shape/satellites/types.d.ts +37 -0
- package/dist/with-shape/satellites/validate.d.ts +17 -0
- package/dist/with-shape/schema-update/client-registry.d.ts +35 -0
- package/dist/with-shape/schema-update/cutover.d.ts +5 -0
- package/dist/with-shape/schema-update/delta.d.ts +2 -0
- package/dist/with-shape/schema-update/dispatch.d.ts +3 -0
- package/dist/with-shape/schema-update/fence-controller.d.ts +62 -0
- package/dist/with-shape/schema-update/fence-watcher.d.ts +37 -0
- package/dist/with-shape/schema-update/fence.d.ts +15 -0
- package/dist/with-shape/schema-update/gate.d.ts +16 -0
- package/dist/with-shape/schema-update/index.d.ts +6 -0
- package/dist/with-shape/schema-update/store-coordination-provider.d.ts +29 -0
- package/dist/with-shape/schema-update/strategies.d.ts +12 -0
- package/dist/with-shape/schema-update/types.d.ts +53 -0
- package/dist/with-store/index.d.ts +15 -0
- package/dist/with-store/lazy/active.d.ts +12 -0
- package/dist/with-store/lazy/index.d.ts +14 -0
- package/dist/with-store/lazy/strategy.d.ts +9 -0
- package/dist/with-store/route-store.d.ts +259 -0
- package/dist/with-store/store-middleware.d.ts +189 -0
- package/dist/withdraw-accessible-WZIEVWSR.js +28 -0
- package/package.json +47 -55
- package/dist/adapter/index.d.ts +0 -4
- package/dist/adapter/index.js +0 -15
- package/dist/aggregate/index.d.ts +0 -41
- package/dist/api-HV4PDUWF.js +0 -20
- package/dist/as/index.d.ts +0 -6
- package/dist/at/index.d.ts +0 -4
- package/dist/attestation/index.d.ts +0 -19
- package/dist/backup-ODXO7OGA.js +0 -225
- package/dist/backup-ODXO7OGA.js.map +0 -1
- package/dist/blobs/index.d.ts +0 -43
- package/dist/bundle/index.d.ts +0 -121
- package/dist/bundle-DlSxo31R.d.ts +0 -548
- package/dist/by/index.d.ts +0 -1
- package/dist/cargo/index.d.ts +0 -8
- package/dist/chunk-2644KEGW.js +0 -247
- package/dist/chunk-2644KEGW.js.map +0 -1
- package/dist/chunk-2HVUKRNE.js +0 -21
- package/dist/chunk-2KOSJTMU.js +0 -69
- package/dist/chunk-2UQ4RMHV.js +0 -167
- package/dist/chunk-2UQ4RMHV.js.map +0 -1
- package/dist/chunk-2XE6LIXT.js +0 -515
- package/dist/chunk-2XE6LIXT.js.map +0 -1
- package/dist/chunk-34RRRIC3.js +0 -71
- package/dist/chunk-3C5CKXFI.js +0 -621
- package/dist/chunk-3C5CKXFI.js.map +0 -1
- package/dist/chunk-3I4KYWNP.js +0 -30
- package/dist/chunk-42KVY3OC.js +0 -86
- package/dist/chunk-4C4WBS4V.js +0 -13822
- package/dist/chunk-4C4WBS4V.js.map +0 -1
- package/dist/chunk-4G3IT7J7.js +0 -280
- package/dist/chunk-4G3IT7J7.js.map +0 -1
- package/dist/chunk-4RQ62VSR.js +0 -53
- package/dist/chunk-4RQ62VSR.js.map +0 -1
- package/dist/chunk-4ZSGSRBI.js +0 -1221
- package/dist/chunk-4ZSGSRBI.js.map +0 -1
- package/dist/chunk-5GAX2QOH.js +0 -132
- package/dist/chunk-5GAX2QOH.js.map +0 -1
- package/dist/chunk-5SAZMBW7.js +0 -202
- package/dist/chunk-5TZZUL5X.js +0 -30
- package/dist/chunk-6CU3FN74.js +0 -777
- package/dist/chunk-6G2SCQYS.js +0 -29
- package/dist/chunk-6G2SCQYS.js.map +0 -1
- package/dist/chunk-6MWUANRF.js +0 -29
- package/dist/chunk-6S7T6WC4.js +0 -111
- package/dist/chunk-6S7T6WC4.js.map +0 -1
- package/dist/chunk-6ULCYCMU.js +0 -74
- package/dist/chunk-7HAPHVRJ.js +0 -1695
- package/dist/chunk-7HAPHVRJ.js.map +0 -1
- package/dist/chunk-7IZQTCTR.js +0 -382
- package/dist/chunk-7ZANJ6JZ.js +0 -265
- package/dist/chunk-7ZANJ6JZ.js.map +0 -1
- package/dist/chunk-A2APWS32.js +0 -150
- package/dist/chunk-A2APWS32.js.map +0 -1
- package/dist/chunk-A4MAD6PO.js +0 -99
- package/dist/chunk-ANDBBA2P.js +0 -36
- package/dist/chunk-ANDBBA2P.js.map +0 -1
- package/dist/chunk-AUR7MRHA.js +0 -404
- package/dist/chunk-AYGZMQP5.js +0 -75
- package/dist/chunk-BGIZAFY7.js +0 -1
- package/dist/chunk-CJEMA2Z6.js +0 -230
- package/dist/chunk-CTSFKDGA.js +0 -40
- package/dist/chunk-CU62BBRB.js +0 -1465
- package/dist/chunk-CU62BBRB.js.map +0 -1
- package/dist/chunk-CWCCYH34.js +0 -23
- package/dist/chunk-DEYAO3N6.js +0 -589
- package/dist/chunk-DFIBOSOQ.js +0 -85
- package/dist/chunk-E5AHO65E.js +0 -150
- package/dist/chunk-FC3XK5JT.js +0 -99
- package/dist/chunk-FGOGS7CE.js +0 -662
- package/dist/chunk-FGOGS7CE.js.map +0 -1
- package/dist/chunk-GX2BYNCT.js +0 -117
- package/dist/chunk-GZ2MOPVX.js +0 -291
- package/dist/chunk-GZ2MOPVX.js.map +0 -1
- package/dist/chunk-H57P2SJB.js +0 -126
- package/dist/chunk-H57P2SJB.js.map +0 -1
- package/dist/chunk-HBTT7YQX.js +0 -94
- package/dist/chunk-HOCEGVGQ.js +0 -36
- package/dist/chunk-ICV32FPK.js +0 -50
- package/dist/chunk-IIP5WFVT.js +0 -462
- package/dist/chunk-IIP5WFVT.js.map +0 -1
- package/dist/chunk-IUKGIB2Q.js +0 -91
- package/dist/chunk-IWTYFS3D.js +0 -129
- package/dist/chunk-JC5R7P44.js +0 -355
- package/dist/chunk-JC5R7P44.js.map +0 -1
- package/dist/chunk-K2WCO3NX.js +0 -1
- package/dist/chunk-KBBWY46Y.js +0 -14
- package/dist/chunk-KBF5GSGX.js +0 -367
- package/dist/chunk-KCG3BHFG.js +0 -99
- package/dist/chunk-KCG3BHFG.js.map +0 -1
- package/dist/chunk-KNXN47MO.js +0 -155
- package/dist/chunk-KWLD2D75.js +0 -38
- package/dist/chunk-KXKLKJW4.js +0 -49
- package/dist/chunk-KYC4LIEU.js +0 -123
- package/dist/chunk-LEOXZY36.js +0 -130
- package/dist/chunk-M5I354EE.js +0 -235
- package/dist/chunk-MK2BSS44.js +0 -34
- package/dist/chunk-MSVY7ULZ.js +0 -70
- package/dist/chunk-NNWK3PSY.js +0 -135
- package/dist/chunk-NSZ6J5DF.js +0 -59
- package/dist/chunk-NUEFXLZU.js +0 -59
- package/dist/chunk-NYVQCZ54.js +0 -261
- package/dist/chunk-OQAODTYR.js +0 -45
- package/dist/chunk-OV4CMJGR.js +0 -164
- package/dist/chunk-PEDZFFKW.js +0 -41
- package/dist/chunk-PF3FQCCF.js +0 -164
- package/dist/chunk-PF3FQCCF.js.map +0 -1
- package/dist/chunk-Q2KVKTC2.js +0 -823
- package/dist/chunk-QJR3W3MF.js +0 -23
- package/dist/chunk-QJR3W3MF.js.map +0 -1
- package/dist/chunk-QTXQ6RNZ.js +0 -255
- package/dist/chunk-RJ5522XX.js +0 -453
- package/dist/chunk-RJ5522XX.js.map +0 -1
- package/dist/chunk-RMUXPHIH.js +0 -930
- package/dist/chunk-RMUXPHIH.js.map +0 -1
- package/dist/chunk-S6AQXDN4.js +0 -155
- package/dist/chunk-SSFC3IYA.js +0 -275
- package/dist/chunk-SSFC3IYA.js.map +0 -1
- package/dist/chunk-SZCHEDML.js +0 -209
- package/dist/chunk-TDPEJINP.js +0 -188
- package/dist/chunk-TDPEJINP.js.map +0 -1
- package/dist/chunk-TQ3REHVF.js +0 -95
- package/dist/chunk-TQ3REHVF.js.map +0 -1
- package/dist/chunk-UNJU345Q.js +0 -32
- package/dist/chunk-UNJU345Q.js.map +0 -1
- package/dist/chunk-V7RNIND6.js +0 -265
- package/dist/chunk-V7RNIND6.js.map +0 -1
- package/dist/chunk-VJ3NQK4K.js +0 -205
- package/dist/chunk-WNA6T3MA.js +0 -686
- package/dist/chunk-WNA6T3MA.js.map +0 -1
- package/dist/chunk-WVCQ75OK.js +0 -124
- package/dist/chunk-X66MXMR5.js +0 -42
- package/dist/chunk-XHD3L3JO.js +0 -930
- package/dist/chunk-XHD3L3JO.js.map +0 -1
- package/dist/chunk-XJK2WIYN.js +0 -430
- package/dist/chunk-XJK2WIYN.js.map +0 -1
- package/dist/chunk-XQ7UYPVN.js +0 -95
- package/dist/chunk-Y2OCKFZ3.js +0 -80
- package/dist/chunk-YBFOBRTO.js +0 -367
- package/dist/chunk-YLN33ADH.js +0 -97
- package/dist/chunk-Z5YFRMG5.js +0 -45
- package/dist/chunk-ZWQFOXBR.js +0 -54
- package/dist/classified/index.d.ts +0 -16
- package/dist/classified-marker-IO5EBW7Q.js +0 -24
- package/dist/classified-marker-IO5EBW7Q.js.map +0 -1
- package/dist/collection-facade-3RAXG2OU.js +0 -38
- package/dist/computed-R62HGCO4.js +0 -11
- package/dist/consent/index.d.ts +0 -22
- package/dist/crdt/index.d.ts +0 -33
- package/dist/dead-filter-VNA4M3GP.js +0 -28
- package/dist/decrypt-partition-IHtxEnTi.d.ts +0 -21
- package/dist/delegation-ZKII5UBI.js +0 -25
- package/dist/derivations/index.d.ts +0 -69
- package/dist/derive-5D2C3WG4.js +0 -21
- package/dist/describe/index.d.ts +0 -4
- package/dist/describe/index.js +0 -1
- package/dist/dev-unlock-DDTafVO6.d.ts +0 -263
- package/dist/discriminant-BN9REW3o.d.ts +0 -60
- package/dist/enclave-EUBEJGPG.js +0 -125
- package/dist/executor-IL7SRNUZ.js +0 -23
- package/dist/executor-OUA2Y6YC.js +0 -9
- package/dist/executor-WAEI6PDV.js +0 -9
- package/dist/export-accessible-O55RKAGC.js +0 -23
- package/dist/extract-partition-VBGCBA6Q.js +0 -36
- package/dist/fanout-sidecar-CI5BCMQM.js +0 -74
- package/dist/find-FISGUWSK.js +0 -11
- package/dist/forget/index.d.ts +0 -36
- package/dist/guards/index.d.ts +0 -34
- package/dist/hash-DBkZfIBW.d.ts +0 -72
- package/dist/history/index.d.ts +0 -60
- package/dist/i18n/index.d.ts +0 -56
- package/dist/in/index.d.ts +0 -4
- package/dist/index-B9QdHytu.d.ts +0 -123
- package/dist/index-CyclmyDr.d.ts +0 -122
- package/dist/index-DzhNI2vE.d.ts +0 -23260
- package/dist/indexing/index.d.ts +0 -38
- package/dist/issue-EQAWIYFQ.js +0 -19
- package/dist/kernel/index.d.ts +0 -31
- package/dist/kernel/index.js +0 -60
- package/dist/lazy/index.d.ts +0 -20
- package/dist/ledger-AJA2SR3C.js +0 -42
- package/dist/liberate-SEGR4JLY.js +0 -24
- package/dist/link-set-YBAC2DQT.js +0 -31
- package/dist/materialized-views/index.d.ts +0 -182
- package/dist/mime-magic-CbV1quyp.d.ts +0 -103
- package/dist/noydb-AMEOU456.js +0 -65
- package/dist/on/index.d.ts +0 -4
- package/dist/overlay-views/index.d.ts +0 -97
- package/dist/periods/index.d.ts +0 -19
- package/dist/pod/index.d.ts +0 -62
- package/dist/policy-SDGRWVIL.js +0 -41
- package/dist/portability/index.d.ts +0 -19
- package/dist/post-register-MROIUA5O.js +0 -55
- package/dist/post-register-MROIUA5O.js.map +0 -1
- package/dist/public-envelope-J5PLQOW2.js +0 -32
- package/dist/query/index.d.ts +0 -4
- package/dist/read-only-facade-UCYNRE56.js +0 -8
- package/dist/register-OVJKW7BS.js +0 -23
- package/dist/registry-5RJSK5AJ.js +0 -9
- package/dist/registry-DQRNTWRL.js +0 -18
- package/dist/registry-LTGLERS7.js +0 -19
- package/dist/request-withdrawal-27O77D2V.js +0 -31
- package/dist/reveal-LT3I2K4P.js +0 -38
- package/dist/reveal-LT3I2K4P.js.map +0 -1
- package/dist/revoke-4N45G7D2.js +0 -24
- package/dist/revoke-4N45G7D2.js.map +0 -1
- package/dist/satellites/index.d.ts +0 -4
- package/dist/sealed-record/index.d.ts +0 -68
- package/dist/session/index.d.ts +0 -43
- package/dist/shadow/index.d.ts +0 -14
- package/dist/signer-XJCOV7JD.js +0 -25
- package/dist/signer-XJCOV7JD.js.map +0 -1
- package/dist/snapshots/index.d.ts +0 -25
- package/dist/stale-IYYXEH3U.js +0 -14
- package/dist/stale-IYYXEH3U.js.map +0 -1
- package/dist/storage-Y44CAPE6.js +0 -23
- package/dist/storage-Y44CAPE6.js.map +0 -1
- package/dist/store-coordination-provider-WKGAE2WI.js +0 -142
- package/dist/subject-index-CyOgGMJL.d.ts +0 -380
- package/dist/sync/index.d.ts +0 -40
- package/dist/team/index.d.ts +0 -154
- package/dist/tiers/index.d.ts +0 -4
- package/dist/to/index.d.ts +0 -4
- package/dist/transition-guard-BOUkzQU4.d.ts +0 -165
- package/dist/tx/index.d.ts +0 -34
- package/dist/ui/index.d.ts +0 -4
- package/dist/ulid-DRH25k3y.d.ts +0 -66
- package/dist/util/index.d.ts +0 -79
- package/dist/validators-B3SalxlJ.d.ts +0 -101
- package/dist/vault-diff-Dt9NkLzw.d.ts +0 -147
- package/dist/verify-GH6CWVSW.js +0 -139
- package/dist/verify-GH6CWVSW.js.map +0 -1
- package/dist/walk-76UCFXYV.js +0 -241
- package/dist/with/index.d.ts +0 -37
- package/dist/with-materialized-view-BP33v1Z6.d.ts +0 -27
- package/dist/with-overlayed-view-DntFpOKN.d.ts +0 -12
- package/dist/with-rollup-ClCHO6-4.d.ts +0 -47
- package/dist/withdraw-accessible-6J2UH3IN.js +0 -28
- package/dist/withdraw-accessible-6J2UH3IN.js.map +0 -1
- /package/dist/{adapter/index.js.map → api-ZGS6LCOF.js.map} +0 -0
- /package/dist/{chunk-34RRRIC3.js.map → chunk-3B5VVCNY.js.map} +0 -0
- /package/dist/{chunk-CJEMA2Z6.js.map → chunk-3LQ2YKO4.js.map} +0 -0
- /package/dist/{chunk-ZWQFOXBR.js.map → chunk-3QCRBHCY.js.map} +0 -0
- /package/dist/{chunk-E5AHO65E.js.map → chunk-4JBYV75E.js.map} +0 -0
- /package/dist/{chunk-YLN33ADH.js.map → chunk-4NXKCLLQ.js.map} +0 -0
- /package/dist/{chunk-2KOSJTMU.js.map → chunk-5M5DVGV7.js.map} +0 -0
- /package/dist/{chunk-3I4KYWNP.js.map → chunk-5YOLBEQ6.js.map} +0 -0
- /package/dist/{chunk-IWTYFS3D.js.map → chunk-6CRIV7DE.js.map} +0 -0
- /package/dist/{chunk-QTXQ6RNZ.js.map → chunk-6QTNZJBS.js.map} +0 -0
- /package/dist/{chunk-42KVY3OC.js.map → chunk-6T2SCQRU.js.map} +0 -0
- /package/dist/{chunk-Z5YFRMG5.js.map → chunk-7DSTRQIJ.js.map} +0 -0
- /package/dist/{chunk-DEYAO3N6.js.map → chunk-AUSTCW2X.js.map} +0 -0
- /package/dist/{chunk-SZCHEDML.js.map → chunk-B3HJYUOF.js.map} +0 -0
- /package/dist/{chunk-OV4CMJGR.js.map → chunk-BDVFPG6Y.js.map} +0 -0
- /package/dist/{chunk-HOCEGVGQ.js.map → chunk-CAF6WOK7.js.map} +0 -0
- /package/dist/{chunk-AUR7MRHA.js.map → chunk-CIE2BASH.js.map} +0 -0
- /package/dist/{chunk-X66MXMR5.js.map → chunk-CRI4OUV4.js.map} +0 -0
- /package/dist/{chunk-IUKGIB2Q.js.map → chunk-DLG74CNB.js.map} +0 -0
- /package/dist/{chunk-YBFOBRTO.js.map → chunk-ERJ7FU55.js.map} +0 -0
- /package/dist/{chunk-VJ3NQK4K.js.map → chunk-EVVGJDRQ.js.map} +0 -0
- /package/dist/{chunk-NSZ6J5DF.js.map → chunk-EXK7QRWF.js.map} +0 -0
- /package/dist/{chunk-5SAZMBW7.js.map → chunk-EYZ6IQ6X.js.map} +0 -0
- /package/dist/{chunk-OQAODTYR.js.map → chunk-F64IRYG3.js.map} +0 -0
- /package/dist/{chunk-Q2KVKTC2.js.map → chunk-FHS2HQSH.js.map} +0 -0
- /package/dist/{chunk-Y2OCKFZ3.js.map → chunk-GKEWXIV5.js.map} +0 -0
- /package/dist/{chunk-NUEFXLZU.js.map → chunk-GTGPO5KW.js.map} +0 -0
- /package/dist/{chunk-XQ7UYPVN.js.map → chunk-HB3RFQSC.js.map} +0 -0
- /package/dist/{chunk-FC3XK5JT.js.map → chunk-I6GALP6E.js.map} +0 -0
- /package/dist/{chunk-LEOXZY36.js.map → chunk-IL6POWCW.js.map} +0 -0
- /package/dist/{chunk-GX2BYNCT.js.map → chunk-IU6SNYX6.js.map} +0 -0
- /package/dist/{chunk-6CU3FN74.js.map → chunk-J2ZX2XUV.js.map} +0 -0
- /package/dist/{chunk-6MWUANRF.js.map → chunk-JKJOGPZN.js.map} +0 -0
- /package/dist/{chunk-PEDZFFKW.js.map → chunk-JZUV47FZ.js.map} +0 -0
- /package/dist/{chunk-5TZZUL5X.js.map → chunk-K5IMOGHB.js.map} +0 -0
- /package/dist/{chunk-7IZQTCTR.js.map → chunk-LASZKVMO.js.map} +0 -0
- /package/dist/{chunk-NNWK3PSY.js.map → chunk-NR5LT5RY.js.map} +0 -0
- /package/dist/{chunk-NYVQCZ54.js.map → chunk-NWSGI5C7.js.map} +0 -0
- /package/dist/{chunk-MSVY7ULZ.js.map → chunk-Q5VNKNE5.js.map} +0 -0
- /package/dist/{chunk-2HVUKRNE.js.map → chunk-QLWMEXCT.js.map} +0 -0
- /package/dist/{chunk-KYC4LIEU.js.map → chunk-QRB7NAOJ.js.map} +0 -0
- /package/dist/{chunk-6ULCYCMU.js.map → chunk-R4ROFEYC.js.map} +0 -0
- /package/dist/{chunk-KBF5GSGX.js.map → chunk-RIX4V2TB.js.map} +0 -0
- /package/dist/{chunk-CTSFKDGA.js.map → chunk-RYCTDFUX.js.map} +0 -0
- /package/dist/{chunk-S6AQXDN4.js.map → chunk-RZ5SVOYR.js.map} +0 -0
- /package/dist/{chunk-A4MAD6PO.js.map → chunk-SLFHQTTW.js.map} +0 -0
- /package/dist/{chunk-AYGZMQP5.js.map → chunk-T2FFWNPK.js.map} +0 -0
- /package/dist/{chunk-CWCCYH34.js.map → chunk-UNFPPVNI.js.map} +0 -0
- /package/dist/{chunk-M5I354EE.js.map → chunk-VLFCJYTL.js.map} +0 -0
- /package/dist/{chunk-WVCQ75OK.js.map → chunk-VN3DBQAU.js.map} +0 -0
- /package/dist/{chunk-KXKLKJW4.js.map → chunk-VZRODIM3.js.map} +0 -0
- /package/dist/{chunk-HBTT7YQX.js.map → chunk-W22IKJE2.js.map} +0 -0
- /package/dist/{chunk-KNXN47MO.js.map → chunk-X3YYQWOQ.js.map} +0 -0
- /package/dist/{chunk-DFIBOSOQ.js.map → chunk-YFXZEAYK.js.map} +0 -0
- /package/dist/{chunk-ICV32FPK.js.map → chunk-ZAJAVEXY.js.map} +0 -0
- /package/dist/{chunk-MK2BSS44.js.map → chunk-ZICD77GM.js.map} +0 -0
- /package/dist/{chunk-KWLD2D75.js.map → chunk-ZJ2AK4V7.js.map} +0 -0
- /package/dist/{chunk-KBBWY46Y.js.map → chunk-ZUODRVHY.js.map} +0 -0
- /package/dist/{api-HV4PDUWF.js.map → collection-facade-TLWIPI76.js.map} +0 -0
- /package/dist/{chunk-BGIZAFY7.js.map → computed-ZIQTYTDI.js.map} +0 -0
- /package/dist/{dead-filter-VNA4M3GP.js.map → dead-filter-ESOBZZP5.js.map} +0 -0
- /package/dist/{chunk-K2WCO3NX.js.map → delegation-W7ZV2322.js.map} +0 -0
- /package/dist/{collection-facade-3RAXG2OU.js.map → derive-H2BJTLUI.js.map} +0 -0
- /package/dist/{computed-R62HGCO4.js.map → enclave-AP3I5W7O.js.map} +0 -0
- /package/dist/{delegation-ZKII5UBI.js.map → executor-KGWTNEQD.js.map} +0 -0
- /package/dist/{derive-5D2C3WG4.js.map → executor-OVEXR6RT.js.map} +0 -0
- /package/dist/{describe/index.js.map → executor-UNEH5ZYH.js.map} +0 -0
- /package/dist/{enclave-EUBEJGPG.js.map → export-accessible-PCMXSUZS.js.map} +0 -0
- /package/dist/{executor-IL7SRNUZ.js.map → extract-partition-SWHFSYJO.js.map} +0 -0
- /package/dist/{fanout-sidecar-CI5BCMQM.js.map → fanout-sidecar-A765THMX.js.map} +0 -0
- /package/dist/{executor-OUA2Y6YC.js.map → find-N6345CNT.js.map} +0 -0
- /package/dist/{executor-WAEI6PDV.js.map → issue-5OKB6I2R.js.map} +0 -0
- /package/dist/{export-accessible-O55RKAGC.js.map → ledger-GFBKVPV4.js.map} +0 -0
- /package/dist/{extract-partition-VBGCBA6Q.js.map → liberate-3VDOT4KO.js.map} +0 -0
- /package/dist/{find-FISGUWSK.js.map → link-set-Z7Q2ASFX.js.map} +0 -0
- /package/dist/{issue-EQAWIYFQ.js.map → noydb-ZCJOYBDI.js.map} +0 -0
- /package/dist/{kernel/index.js.map → policy-Z3RUAIY2.js.map} +0 -0
- /package/dist/{ledger-AJA2SR3C.js.map → public-envelope-B4KNWVUA.js.map} +0 -0
- /package/dist/{liberate-SEGR4JLY.js.map → read-only-facade-CHCKSEPD.js.map} +0 -0
- /package/dist/{link-set-YBAC2DQT.js.map → register-VAHONCID.js.map} +0 -0
- /package/dist/{noydb-AMEOU456.js.map → registry-7MLVD3VO.js.map} +0 -0
- /package/dist/{policy-SDGRWVIL.js.map → registry-EPKPD5SM.js.map} +0 -0
- /package/dist/{public-envelope-J5PLQOW2.js.map → registry-P5T7PS2U.js.map} +0 -0
- /package/dist/{read-only-facade-UCYNRE56.js.map → request-withdrawal-TI3A5WPS.js.map} +0 -0
- /package/dist/{register-OVJKW7BS.js.map → revoke-FDRD6GRW.js.map} +0 -0
- /package/dist/{registry-5RJSK5AJ.js.map → signer-MUWEIUI6.js.map} +0 -0
- /package/dist/{registry-DQRNTWRL.js.map → stale-OSQ7J3AA.js.map} +0 -0
- /package/dist/{registry-LTGLERS7.js.map → storage-MVFCGEQE.js.map} +0 -0
- /package/dist/{store-coordination-provider-WKGAE2WI.js.map → store-coordination-provider-64OEZFGS.js.map} +0 -0
- /package/dist/{walk-76UCFXYV.js.map → walk-SVNDIZ62.js.map} +0 -0
- /package/dist/{request-withdrawal-27O77D2V.js.map → withdraw-accessible-WZIEVWSR.js.map} +0 -0
|
@@ -0,0 +1,394 @@
|
|
|
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 { BlobFieldsConfig } from '../../with-shape/blobs/blob-compaction.js';
|
|
30
|
+
import { type NoydbStore, type EncryptedEnvelope, type GhostRecord, type TierMode, type CrossTierAccessEvent } from '../../kernel/types.js';
|
|
31
|
+
/** Everything the moving tier methods touched on `this.*`, as a flat context. */
|
|
32
|
+
export interface TiersContext<T> {
|
|
33
|
+
/** Collection name — the crypto AAD scope and tier-DEK key prefix. */
|
|
34
|
+
readonly name: string;
|
|
35
|
+
/** Vault namespace the records live under. */
|
|
36
|
+
readonly vault: string;
|
|
37
|
+
/** The ciphertext store. */
|
|
38
|
+
readonly adapter: NoydbStore;
|
|
39
|
+
/** The caller's unlocked keyring (tier-DEK holdings + role + userId). */
|
|
40
|
+
readonly keyring: UnlockedKeyring;
|
|
41
|
+
/** The record codec — decrypts a tier-0 envelope to T. */
|
|
42
|
+
readonly codec: RecordCodec<T>;
|
|
43
|
+
/**
|
|
44
|
+
* The collection's per-record CEK cache (SHARED reference, not a copy).
|
|
45
|
+
* `elevate`/`demote`/`getAtTier` re-wrap a record's CEK and `set` it here so
|
|
46
|
+
* the move stays synchronous with the cache the kernel's read/write path
|
|
47
|
+
* owns. `null` → no caching.
|
|
48
|
+
*/
|
|
49
|
+
readonly cekCache: Lru<string, EnclaveKey> | null;
|
|
50
|
+
/**
|
|
51
|
+
* Sync the collection's decoded-record cache after a tier move rewraps the
|
|
52
|
+
* envelope (#691). The lazy LRU is evicted on EVERY call — it is never
|
|
53
|
+
* re-seeded, since a lazy `#getRaw` miss refetches and decodes the fresh
|
|
54
|
+
* envelope via its adapter fallback (a stale LRU entry after a tier-0
|
|
55
|
+
* `putAtTier` overwrite was the #702 lazy-mode gap). `null` → also evict
|
|
56
|
+
* the eager cache entry; an `entry` → set the eager cache to the given
|
|
57
|
+
* decoded record/version (used by `demote()` landing back at tier 0 and
|
|
58
|
+
* `putAtTier`'s tier-0 write, #702 — the record is tier-0, so it must stay
|
|
59
|
+
* plain-`get()`-readable in-session).
|
|
60
|
+
*/
|
|
61
|
+
syncCache(id: string, entry: {
|
|
62
|
+
record: T;
|
|
63
|
+
version: number;
|
|
64
|
+
} | null): void;
|
|
65
|
+
/**
|
|
66
|
+
* Sync the collection's indexes after a tier move rewraps the envelope
|
|
67
|
+
* (#709). Persisted `_idx/<field>/<recordId>` side-cars hold the indexed
|
|
68
|
+
* field's PLAINTEXT value and are always encrypted under the tier-0 DEK,
|
|
69
|
+
* whatever the record's own tier — the same leak class `forget()` fixed
|
|
70
|
+
* via `purgePersistedIndexes` ("forget() crypto-shreds the body but keeps
|
|
71
|
+
* the collection DEK, under which these side-cars are encrypted — so
|
|
72
|
+
* without this they leave the indexed field VALUES readable"). `null` →
|
|
73
|
+
* the record just left tier 0: purge its persisted side-cars and drop its
|
|
74
|
+
* in-memory index entries. A record → it is tier-0 again: (re)build its
|
|
75
|
+
* entries from that record. Call this BEFORE {@link syncCache} — the
|
|
76
|
+
* implementation reads the pre-write cached value as "previous" to clean
|
|
77
|
+
* up stale index buckets, so it must run while that entry is still live.
|
|
78
|
+
* `version` stamps a rebuilt side-car's own envelope version — every
|
|
79
|
+
* caller has one in scope (the envelope it just wrote), including the
|
|
80
|
+
* purge (`null`) branches, which pass it along even though it's ignored
|
|
81
|
+
* there (#720: keeps the parameter honestly required, no dead default).
|
|
82
|
+
* `priorEnvelope` (#720) — the RAW envelope read BEFORE this call's own
|
|
83
|
+
* overwrite (already in scope as `existing`/`envelope` at every record-
|
|
84
|
+
* branch call site), so a lazy same-tier value change (a `putAtTier(0)`
|
|
85
|
+
* dropping an indexed field, a `demote(0)` off an elevated record) can
|
|
86
|
+
* still be tier-gate-decoded as "previous" once the live envelope itself
|
|
87
|
+
* has already moved past it. The `null`-record branches never pass one —
|
|
88
|
+
* see the implementation's doc comment for why they don't need to.
|
|
89
|
+
*/
|
|
90
|
+
syncIndexes(id: string, record: T | null, version: number, priorEnvelope?: EncryptedEnvelope): Promise<void>;
|
|
91
|
+
/** Sync the collection's SEARCH artifacts after a tier move (#721). Both the
|
|
92
|
+
* lexical `_ftindex` blob and the `_vec/<id>` embedding are encrypted under
|
|
93
|
+
* the tier-0 DEK and hold the record's derived plaintext (full field text /
|
|
94
|
+
* a text-invertible vector), so leaving them means elevation never hid what
|
|
95
|
+
* the record was searchable by — the `forget()` precedent, unapplied to
|
|
96
|
+
* elevate. `null` → the record left tier 0: purge its `_vec`, and
|
|
97
|
+
* invalidate the `_ftindex` blob (the cache-driven rebuild then excludes
|
|
98
|
+
* it). A record → it is tier-0 again: re-embed it, and invalidate
|
|
99
|
+
* `_ftindex` (rebuild includes it). No-op fast when the collection has no
|
|
100
|
+
* search. */
|
|
101
|
+
syncSearch(id: string, record: T | null, version?: number): Promise<void>;
|
|
102
|
+
/**
|
|
103
|
+
* Sync a record's `_history` snapshots after a tier move rewraps the live
|
|
104
|
+
* envelope (#712, at-rest hardening). Each snapshot carries its own key
|
|
105
|
+
* material (a direct DEK wrap, or a per-record `_cek` itself wrapped under
|
|
106
|
+
* the tier DEK) — `elevate()`'s live-body rewrap moves only the live
|
|
107
|
+
* envelope, leaving prior versions decryptable at rest under the tier the
|
|
108
|
+
* record has moved away from (the same leak class `forget()`'s
|
|
109
|
+
* `tombstoneHistory` closed for erasure). `fromDek`/`toDek` are the SAME
|
|
110
|
+
* DEKs the caller already resolved for the live rewrap — reuse them, don't
|
|
111
|
+
* recompute. No-op when the strategy is `NO_HISTORY`.
|
|
112
|
+
*/
|
|
113
|
+
syncHistory(id: string, fromDek: EnclaveKey, toDek: EnclaveKey): Promise<void>;
|
|
114
|
+
/**
|
|
115
|
+
* Save a raw pre-move envelope as a `_history` snapshot (#728). Tier moves
|
|
116
|
+
* (`putAtTier`/`elevate`/`demote`) bump `_v` and overwrite the live
|
|
117
|
+
* envelope without ever snapshotting the version that existed just before
|
|
118
|
+
* the move — so `history()` silently lost it. The caller (`tiers/index.ts`)
|
|
119
|
+
* builds `envelope` by reusing the SAME `rewrapBodyToDek(envelope, fromDek,
|
|
120
|
+
* toDek)` result it already computed for the live write, so the snapshot
|
|
121
|
+
* lands wrapped under the DESTINATION tier's DEK — never `ctx.codec.
|
|
122
|
+
* encryptRecord`, which always resolves the tier-0 DEK and would leak the
|
|
123
|
+
* pre-move body whenever `fromTier > 0`. No-op when history is disabled
|
|
124
|
+
* (folds the `historyConfig.enabled` gate so `tiers/index.ts` stays simple).
|
|
125
|
+
*/
|
|
126
|
+
saveHistorySnapshot(id: string, envelope: EncryptedEnvelope): Promise<void>;
|
|
127
|
+
/**
|
|
128
|
+
* `true` iff a real history strategy is wired (not `NO_HISTORY`) AND not
|
|
129
|
+
* explicitly disabled via `historyConfig.enabled`. `putAtTier` checks this
|
|
130
|
+
* BEFORE decrypting `existing` to build a snapshot (#728, #737 regression
|
|
131
|
+
* fix) — unlike elevate/demote, which reuse a `body` rewrap their live
|
|
132
|
+
* write needs unconditionally, putAtTier's live write never decrypts the
|
|
133
|
+
* prior envelope, so building a snapshot is the ONLY reason it would
|
|
134
|
+
* touch (and potentially throw decrypting) `existing`'s ciphertext. A
|
|
135
|
+
* derivation-free, history-disabled collection must not pay that decode —
|
|
136
|
+
* or risk it, on a corrupted/inaccessible prior body — same law
|
|
137
|
+
* `hasDerivedOutputs` already enforces for the derived-outputs decode.
|
|
138
|
+
*/
|
|
139
|
+
readonly historyEnabled: boolean;
|
|
140
|
+
/**
|
|
141
|
+
* Rehome a record's blob attachments after a tier move (#724 Arc 10 Task
|
|
142
|
+
* 2, at-rest hardening). A blob's home tier is its owning record's tier —
|
|
143
|
+
* the `_blob` DEK is tier-scoped (`dekKey('_blob', tier)`), so a solo-
|
|
144
|
+
* owned blob's content CEK must move with the record or it stays
|
|
145
|
+
* tier-0-unwrappable at rest even once the live body has moved (the same
|
|
146
|
+
* leak class `syncHistory` closes for `_history` snapshots). Delegates to
|
|
147
|
+
* `BlobSet.rehomeForTier`; no-op fast when the collection has no blob
|
|
148
|
+
* fields. Order-independent with the other sync hooks — touches only
|
|
149
|
+
* blob side structures, not this collection's own cache/indexes.
|
|
150
|
+
*/
|
|
151
|
+
syncBlobs(id: string, fromTier: number, toTier: number): Promise<void>;
|
|
152
|
+
/**
|
|
153
|
+
* Purge a record's tier-0-era plaintext ledger deltas after a tier move
|
|
154
|
+
* lands it above tier 0 (#729). The audit ledger is a flat, vault-wide,
|
|
155
|
+
* hash-chained log — a record's reverse-JSON-Patch deltas in
|
|
156
|
+
* `_ledger_deltas` are encrypted under one collection-wide `_ledger` DEK
|
|
157
|
+
* (not the record's own tier DEK), so `elevate()`/`putAtTier()`'s live-body
|
|
158
|
+
* rewrap never moves them: they stay readable at rest to any tier-0
|
|
159
|
+
* caller, the same leak class `syncHistory` closed for `_history`
|
|
160
|
+
* snapshots. Chain-safe: `verify()` reads only `_ledger` entry fields
|
|
161
|
+
* (including `deltaHash`, which lives on the entry, not the deleted delta
|
|
162
|
+
* row), never `_ledger_deltas`, so a purge cannot break it.
|
|
163
|
+
* **Irreversible** — the deleted plaintext cannot be restored by
|
|
164
|
+
* `demote()`. **Metadata-retained** — the `_ledger` entries (that the
|
|
165
|
+
* record was mutated, at which version/timestamp/actor) are untouched;
|
|
166
|
+
* only the delta *content* is purged. No-op when the collection has no
|
|
167
|
+
* ledger (`withHistory()` not enabled).
|
|
168
|
+
*/
|
|
169
|
+
syncLedger(id: string): Promise<void>;
|
|
170
|
+
/**
|
|
171
|
+
* Sync a record's derived outputs (materialized-view rows, rollup
|
|
172
|
+
* contributions, `withDerivation` outputs) after a tier move (#722).
|
|
173
|
+
* Those outputs are computed from this record and written to OTHER
|
|
174
|
+
* (output) collections via a plain `put` at tier 0 — `elevate()`'s live-
|
|
175
|
+
* body rewrap moves only the source envelope, so the output rows keep
|
|
176
|
+
* holding the source's tier-0-era plaintext, the same leak class
|
|
177
|
+
* `syncSearch`/`syncIndexes` closed for THIS collection's own artifacts.
|
|
178
|
+
* `elevated` (landing tier > 0) reuses the SAME onDelete fanout
|
|
179
|
+
* `forgetDerivedFanout` drives for `forget()` (`kernel/via/dispatch.ts`)
|
|
180
|
+
* — minus its `'ref'` cascade edge (elevate/demote never erase a
|
|
181
|
+
* *different* record) — to recompute this record's derived outputs as
|
|
182
|
+
* REMOVED. Recompute is tier-safe: the fanout's own source scan reads
|
|
183
|
+
* the elevated-excluding cache (#701/#709/#712), so it naturally omits
|
|
184
|
+
* the now-elevated record instead of re-embedding its plaintext. Landing
|
|
185
|
+
* back at tier 0 (`elevated === false`) is the reverse (Task 2, #722):
|
|
186
|
+
* `syncDerivedOutputs` instead runs the ordinary local-write add-
|
|
187
|
+
* dispatchers (`dispatchDerivations`/`dispatchMaterializedViews`, the
|
|
188
|
+
* same ones a plain `put()` fires) to restore the contribution —
|
|
189
|
+
* reversible, since the source's plaintext survives the elevate/demote
|
|
190
|
+
* rewrap round-trip. `record` is the decoded source record (PRE-move on
|
|
191
|
+
* the remove side, POST-move on the add side); only the rollup edge
|
|
192
|
+
* consumes it on remove, both add-dispatchers require it on add; `null`
|
|
193
|
+
* (tombstone/delete-marker) skips both. `version` stamps the add-
|
|
194
|
+
* dispatchers' `_derivedFrom.sourceVersion` metadata — reuses the version
|
|
195
|
+
* the tier op already has, no re-read; unused on the remove side. No-op
|
|
196
|
+
* fast when the collection has no MV/derivation source — each dispatcher
|
|
197
|
+
* below checks its own source before doing any work.
|
|
198
|
+
*/
|
|
199
|
+
syncDerived(id: string, record: T | null, elevated: boolean, version?: number): Promise<void>;
|
|
200
|
+
/**
|
|
201
|
+
* `true` iff the collection has a materialized-view or derivation source
|
|
202
|
+
* attached. Gates the {@link syncDerived} pre-move decode on the remove
|
|
203
|
+
* direction (`elevate()`, `putAtTier(tier>0)`, `demote()`'s intermediate-
|
|
204
|
+
* tier branch): those sites decode the record SOLELY to feed
|
|
205
|
+
* `syncDerived(..., true)`, whose dispatchers no-op immediately when the
|
|
206
|
+
* collection has no MV/derivation source — so a no-derivation collection
|
|
207
|
+
* would otherwise pay a full record-body decrypt on every tier move for
|
|
208
|
+
* nothing (#722 perf regression). `false` short-circuits the decode to
|
|
209
|
+
* `null`, which `syncDerivedOutputs` already treats safely.
|
|
210
|
+
*/
|
|
211
|
+
readonly hasDerivedOutputs: boolean;
|
|
212
|
+
/** Emit `_source`/`_sourceTs` provenance fields when a source is supplied. */
|
|
213
|
+
readonly provenance: boolean;
|
|
214
|
+
/** Declared tiers, or null when the feature is off. */
|
|
215
|
+
readonly tiers: ReadonlySet<number> | null;
|
|
216
|
+
/** Above-tier read visibility mode (`'invisibility'` | `'ghost'`). */
|
|
217
|
+
readonly tierMode: TierMode;
|
|
218
|
+
/** Resolve a tier DEK by its `dekKey(name, tier)`. */
|
|
219
|
+
getDEK(key: string): Promise<EnclaveKey>;
|
|
220
|
+
/** Fire a cross-tier access event (sink stays collection-resident). */
|
|
221
|
+
emitCrossTierEvent(event: CrossTierAccessEvent): void;
|
|
222
|
+
/**
|
|
223
|
+
* Register this record's ref in the encrypted `_subject_index` (#766).
|
|
224
|
+
* `putAtTier`'s raw `ctx.adapter.put` bypasses `Collection.put()`'s write-
|
|
225
|
+
* hook pipeline — the `onAfterWrite` hook that normally does this — so a
|
|
226
|
+
* record whose FIRST persistence is `putAtTier` (sensitive from birth, a
|
|
227
|
+
* documented legitimate use) would otherwise never enter the index and
|
|
228
|
+
* stay unreachable by `vault.forget()`. Idempotent (safe on every call,
|
|
229
|
+
* including a repeat write of an already-registered record) and a no-op
|
|
230
|
+
* when the collection declares no forget-subject field.
|
|
231
|
+
*/
|
|
232
|
+
addSubjectRef(id: string, record: T): Promise<void>;
|
|
233
|
+
}
|
|
234
|
+
export declare function assertTiersEnabled<T>(ctx: TiersContext<T>): void;
|
|
235
|
+
export declare function assertDeclaredTier<T>(ctx: TiersContext<T>, tier: number): void;
|
|
236
|
+
/**
|
|
237
|
+
* Tier-composition guard (#724 / Arc 7 of the tier-invisibility campaign).
|
|
238
|
+
*
|
|
239
|
+
* Refuses `tiers` declared together with a derived-artifact feature whose
|
|
240
|
+
* crypto has not yet been made tier-aware — i.e. a feature `elevate()` /
|
|
241
|
+
* `demote()` does not re-key when a record moves tiers, so an elevated
|
|
242
|
+
* record's data for that feature would stay readable at tier 0.
|
|
243
|
+
*
|
|
244
|
+
* **Status:** the original call site (`Collection` constructor, beside
|
|
245
|
+
* `buildUniqueConstraintSet`) was removed by Arc 10 Task 1 (#724) — the
|
|
246
|
+
* `tiers + blobFields` refusal below was superseded by a runtime read gate
|
|
247
|
+
* on `collection.blob(id)` (`with-shape/blobs/blob-set.ts`), so this
|
|
248
|
+
* function currently has no caller. Relocated here from
|
|
249
|
+
* `with-lookup/indexing/unique-constraints.ts` (#733) so the tier-domain
|
|
250
|
+
* guard lives in the tier domain, rather than an indexing file it only
|
|
251
|
+
* borrowed for a grandfathered import specifier.
|
|
252
|
+
*
|
|
253
|
+
* ## #724 verified: `tiers + blobFields` leaks
|
|
254
|
+
*
|
|
255
|
+
* `collection.blob(id)` (`Collection.blob()`) never checks the live
|
|
256
|
+
* record's tier before returning a `BlobSet` handle, and `BlobSet`'s crypto
|
|
257
|
+
* is entirely orthogonal to the tier ladder:
|
|
258
|
+
* - the slot map (`_blob_slots_{collection}/{id}`) is encrypted under the
|
|
259
|
+
* collection's TIER-0 DEK (`getDEK(name)` ≡ `dekKey(name, 0)` — see
|
|
260
|
+
* `dekKey` in `with-party/team/tiers.ts`), never a tier-N DEK;
|
|
261
|
+
* - chunk content (`_blob_index` / `_blob_chunks`) is encrypted under the
|
|
262
|
+
* vault-shared `_blob` DEK (`BLOB_COLLECTION`), which has no tier
|
|
263
|
+
* dimension at all.
|
|
264
|
+
* `elevate()`/`demote()` (this file) rewrap only the live record body,
|
|
265
|
+
* `_history` snapshots (#712), and index side-cars — blob slots and chunks
|
|
266
|
+
* are untouched. A caller whose keyring never held the record's elevated
|
|
267
|
+
* tier DEK can still open `collection.blob(id).get(slot)` and read full
|
|
268
|
+
* plaintext, even though `collection.get(id)` correctly reports the same
|
|
269
|
+
* record as invisible. See `__tests__/tier-composition-guard.test.ts` for
|
|
270
|
+
* the reproduction.
|
|
271
|
+
*
|
|
272
|
+
* ## Safe today — no check needed here
|
|
273
|
+
*
|
|
274
|
+
* Field indexes, search (`textIndexes`/`embeddings`), `withHistory`
|
|
275
|
+
* (snapshot keys are rewrapped by `elevate()`/`demote()`, #712), and the
|
|
276
|
+
* decoded-record cache (evicted on tier moves) are already tier-safe. They
|
|
277
|
+
* are not enumerated below; only known-unsafe features are refused, so any
|
|
278
|
+
* combination not named here passes silently by default.
|
|
279
|
+
*
|
|
280
|
+
* ## Deliberately NOT handled here
|
|
281
|
+
*
|
|
282
|
+
* - `ledger` — `withHistory` threads a ledger writer onto every tiered
|
|
283
|
+
* collection by default in shipped usage; refusing `tiers + ledger` would
|
|
284
|
+
* break that default. A ledger-specific tier-rekey handler (rewrap ledger
|
|
285
|
+
* entries, or scope ledger visibility to tier) is a separate arc.
|
|
286
|
+
* - materialized-view (MV) output — an MV's fanout spec lives on the
|
|
287
|
+
* SOURCE collection, not on the MV collection's own config, so it is not
|
|
288
|
+
* visible at `vault.collection()` registration time and this guard cannot
|
|
289
|
+
* detect it structurally.
|
|
290
|
+
*/
|
|
291
|
+
export declare function assertTierComposition(collectionName: string, cfg: {
|
|
292
|
+
readonly tiers: boolean;
|
|
293
|
+
readonly blobFields: BlobFieldsConfig | undefined;
|
|
294
|
+
}): void;
|
|
295
|
+
/**
|
|
296
|
+
* Structural surface {@link syncDerivedOutputs} needs from the owning
|
|
297
|
+
* collection — the SAME onDelete dispatchers `forgetDerivedFanout` already
|
|
298
|
+
* drives (`kernel/via/dispatch.ts`), reused as-is (#722). Narrower than
|
|
299
|
+
* `Collection<T>` (avoids an import cycle: collection.ts constructs
|
|
300
|
+
* `TiersContext` FROM `this`, which already satisfies this shape
|
|
301
|
+
* structurally — no cast needed at the `tiersContext()` call site).
|
|
302
|
+
*/
|
|
303
|
+
export interface DerivedOutputsHost<T> {
|
|
304
|
+
dispatchMaterializedViewsOnDelete(id: string): Promise<{
|
|
305
|
+
deleted: number;
|
|
306
|
+
residueUndecodable: string[];
|
|
307
|
+
residueDeclined: string[];
|
|
308
|
+
}>;
|
|
309
|
+
dispatchArrayDerivationsOnDelete(id: string, eraseRecordShapeToo?: boolean): Promise<number>;
|
|
310
|
+
dispatchRollupsOnDelete(id: string, deleted: T): Promise<unknown>;
|
|
311
|
+
/** Task 2 (#722) add-direction: the same local-write dispatchers an ordinary `put()` fires. */
|
|
312
|
+
dispatchMaterializedViews(id: string, record: T): Promise<void>;
|
|
313
|
+
dispatchDerivations(id: string, record: T, version: number): Promise<void>;
|
|
314
|
+
}
|
|
315
|
+
/**
|
|
316
|
+
* The {@link TiersContext.syncDerived} implementation collection.ts's
|
|
317
|
+
* `tiersContext()` binds `this` into (#722). See that field's doc comment
|
|
318
|
+
* for the design; `host` is `this` — every dispatcher below is a public
|
|
319
|
+
* Collection method, already self-guarding (no-op) when the collection has
|
|
320
|
+
* no materialized-view/derivation source, so no separate fast-path check is
|
|
321
|
+
* needed here.
|
|
322
|
+
*/
|
|
323
|
+
export declare function syncDerivedOutputs<T>(host: DerivedOutputsHost<T>, id: string, record: T | null, elevated: boolean, version?: number): Promise<void>;
|
|
324
|
+
/**
|
|
325
|
+
* tier-aware put. Encrypts the record with the collection's tier-N DEK and
|
|
326
|
+
* stamps `_tier: N` on the envelope. The caller's keyring must hold the tier-N
|
|
327
|
+
* DEK (directly, by delegation, or by virtue of being the grantor); otherwise
|
|
328
|
+
* throws `TierNotGrantedError`.
|
|
329
|
+
*
|
|
330
|
+
* accepts an optional `elevation` context. When present, the emitted cross-tier
|
|
331
|
+
* event is stamped with `authorization: 'elevation'`, the elevation's reason,
|
|
332
|
+
* and the caller's pre-elevation tier. `vault.elevate(...).collection().put`
|
|
333
|
+
* threads this through; direct `putAtTier` calls leave it undefined and fall
|
|
334
|
+
* back to the inherent-write event shape.
|
|
335
|
+
*/
|
|
336
|
+
export declare function putAtTier<T>(ctx: TiersContext<T>, id: string, record: T, tier: number, opts?: {
|
|
337
|
+
elevation?: {
|
|
338
|
+
reason: string;
|
|
339
|
+
fromTier: number;
|
|
340
|
+
};
|
|
341
|
+
source?: string;
|
|
342
|
+
sourceTs?: string;
|
|
343
|
+
}): Promise<TierMoveResult>;
|
|
344
|
+
/**
|
|
345
|
+
* tier-aware get. When the stored record is at a tier the caller cannot
|
|
346
|
+
* decrypt:
|
|
347
|
+
* - `'invisibility'` mode (default) → returns `null`.
|
|
348
|
+
* - `'ghost'` mode → returns a `GhostRecord` placeholder with the tier and
|
|
349
|
+
* the record id (the record exists but contents are withheld).
|
|
350
|
+
*
|
|
351
|
+
* Fully-cleared reads return the plaintext record and fire a cross-tier event
|
|
352
|
+
* when `_tier > 0`.
|
|
353
|
+
*/
|
|
354
|
+
export declare function getAtTier<T>(ctx: TiersContext<T>, id: string): Promise<T | GhostRecord | null>;
|
|
355
|
+
/**
|
|
356
|
+
* list ids grouped by the caller's readability. Returns only ids whose tier the
|
|
357
|
+
* caller can read. Above-tier ids are omitted in `'invisibility'` mode and
|
|
358
|
+
* included (with tier metadata) in `'ghost'` mode.
|
|
359
|
+
*/
|
|
360
|
+
export declare function listAtTier<T>(ctx: TiersContext<T>): Promise<Array<{
|
|
361
|
+
id: string;
|
|
362
|
+
tier: number;
|
|
363
|
+
readable: boolean;
|
|
364
|
+
}>>;
|
|
365
|
+
/**
|
|
366
|
+
* Result of a completed `elevate()`/`demote()` (#764). The record move
|
|
367
|
+
* (put + indexes/cache/ledger/derived/history/blobs sync) always completes —
|
|
368
|
+
* `searchResidue: true` means only the search-index side (`_vec`/`_ftindex`)
|
|
369
|
+
* was left in a needs-retry state (a stuck `PersistedIndexCompensationError`),
|
|
370
|
+
* mirroring `forget()`'s `indexResidue` posture rather than aborting the move.
|
|
371
|
+
*/
|
|
372
|
+
export interface TierMoveResult {
|
|
373
|
+
readonly searchResidue: boolean;
|
|
374
|
+
}
|
|
375
|
+
/**
|
|
376
|
+
* elevate a record to a higher tier. Re-encrypts with the target tier's DEK.
|
|
377
|
+
* The caller must hold DEKs for both the current tier (to decrypt) and the
|
|
378
|
+
* target tier (to re-encrypt). Stamps `_elevatedBy` with the caller id so
|
|
379
|
+
* `demote()` can check the reverse operation.
|
|
380
|
+
*/
|
|
381
|
+
export declare function elevate<T>(ctx: TiersContext<T>, id: string, toTier: number): Promise<TierMoveResult>;
|
|
382
|
+
/**
|
|
383
|
+
* demote a record to a lower tier. Allowed only for the user who performed the
|
|
384
|
+
* last elevation or an owner.
|
|
385
|
+
*/
|
|
386
|
+
export declare function demote<T>(ctx: TiersContext<T>, id: string, toTier: number): Promise<TierMoveResult>;
|
|
387
|
+
/**
|
|
388
|
+
* Classify a live envelope's `_sealed` slots for crypto-shred completeness
|
|
389
|
+
* (#M-1). Thin delegate to {@link RecordCodec.classifySealedShred}; surfaced
|
|
390
|
+
* here because `vault.ts` forget() reaches in via `collection._classifySealedShred`.
|
|
391
|
+
*/
|
|
392
|
+
export declare function classifySealedShred<T>(ctx: TiersContext<T>, live: EncryptedEnvelope): Promise<{
|
|
393
|
+
readonly slots: readonly SealedShredSlot[];
|
|
394
|
+
}>;
|
|
@@ -0,0 +1,36 @@
|
|
|
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, TierMoveResult } from './index.js';
|
|
12
|
+
export type { TierMoveResult };
|
|
13
|
+
export interface TiersStrategy {
|
|
14
|
+
putAtTier<T>(ctx: TiersContext<T>, id: string, record: T, tier: number, opts?: {
|
|
15
|
+
elevation?: {
|
|
16
|
+
reason: string;
|
|
17
|
+
fromTier: number;
|
|
18
|
+
};
|
|
19
|
+
source?: string;
|
|
20
|
+
sourceTs?: string;
|
|
21
|
+
}): Promise<TierMoveResult>;
|
|
22
|
+
getAtTier<T>(ctx: TiersContext<T>, id: string): Promise<T | GhostRecord | null>;
|
|
23
|
+
listAtTier<T>(ctx: TiersContext<T>): Promise<Array<{
|
|
24
|
+
id: string;
|
|
25
|
+
tier: number;
|
|
26
|
+
readable: boolean;
|
|
27
|
+
}>>;
|
|
28
|
+
elevate<T>(ctx: TiersContext<T>, id: string, toTier: number): Promise<TierMoveResult>;
|
|
29
|
+
demote<T>(ctx: TiersContext<T>, id: string, toTier: number): Promise<TierMoveResult>;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* No-op stub — the floor default. Every capability method throws
|
|
33
|
+
* {@link TiersNotEnabledError}; opt in with `tiersStrategy: withTiers()` in
|
|
34
|
+
* createNoydb. @internal
|
|
35
|
+
*/
|
|
36
|
+
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,41 @@
|
|
|
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, type DanglingRefNotice } 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
|
+
* #772: outbound FK edges whose referenced parent was excluded from the
|
|
34
|
+
* closure (missing, or tier-elevated and therefore invisible) — mirrors
|
|
35
|
+
* `ExtractPartitionResult.danglingRefs` (#759) so a preview/extract pair
|
|
36
|
+
* gives the SAME signal. A parent excluded this way never appears in
|
|
37
|
+
* `byCollection` at all; this is the only preview-time indicator.
|
|
38
|
+
*/
|
|
39
|
+
readonly danglingRefs: ReadonlyArray<DanglingRefNotice>;
|
|
40
|
+
}
|
|
41
|
+
export declare function describeExtraction(vault: Vault, opts: WalkClosureOptions): Promise<ExtractionPreview>;
|